@sapui5/sap.fe.core 1.93.3 → 1.96.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 +2 -2
- package/src/sap/fe/core/.library +1 -1
- package/src/sap/fe/core/AppComponent.js +9 -40
- package/src/sap/fe/core/BusyLocker.js +12 -0
- package/src/sap/fe/core/CommonUtils.js +430 -27
- package/src/sap/fe/core/ExtensionAPI.js +1 -1
- package/src/sap/fe/core/PageController.js +13 -2
- package/src/sap/fe/core/TemplateComponent.js +6 -0
- package/src/sap/fe/core/TransactionHelper.js +248 -170
- package/src/sap/fe/core/actions/draft.js +13 -1
- package/src/sap/fe/core/actions/operations.js +165 -45
- package/src/sap/fe/core/controllerextensions/EditFlow.js +56 -37
- package/src/sap/fe/core/controllerextensions/InternalEditFlow.js +13 -6
- package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +127 -24
- package/src/sap/fe/core/controllerextensions/InternalRouting.js +183 -164
- package/src/sap/fe/core/controllerextensions/KPIManagement.js +834 -170
- package/src/sap/fe/core/controllerextensions/KPIManagement.ts +890 -189
- package/src/sap/fe/core/controllerextensions/PageReady.js +48 -33
- package/src/sap/fe/core/controllerextensions/PageReady.ts +49 -14
- package/src/sap/fe/core/controllerextensions/Paginator.js +150 -0
- package/src/sap/fe/core/controllerextensions/Placeholder.js +133 -270
- package/src/sap/fe/core/controllerextensions/Share.js +31 -13
- package/src/sap/fe/core/controllerextensions/SideEffects.js +5 -6
- package/src/sap/fe/core/controllerextensions/SideEffects.ts +13 -12
- package/src/sap/fe/core/controllerextensions/ViewState.js +173 -6
- package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +39 -34
- package/src/sap/fe/core/controls/ActionParameterDialogValueHelp.fragment.xml +35 -0
- package/src/sap/fe/core/controls/ActionPartial.fragment.xml +1 -1
- package/src/sap/fe/core/controls/CustomQuickViewPage.js +3 -0
- package/src/sap/fe/core/controls/MultiValueParameterDelegate.js +45 -0
- package/src/sap/fe/core/controls/filterbar/FilterContainer.js +15 -4
- package/src/sap/fe/core/controls/filterbar/VisualFilter.js +250 -94
- package/src/sap/fe/core/controls/filterbar/VisualFilterContainer.js +129 -135
- package/src/sap/fe/core/controls/filterbar/utils/VisualFilterUtils.js +325 -0
- package/src/sap/fe/core/converters/ConverterContext.js +19 -5
- package/src/sap/fe/core/converters/ConverterContext.ts +13 -3
- package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
- package/src/sap/fe/core/converters/ManifestSettings.ts +9 -2
- package/src/sap/fe/core/converters/ManifestWrapper.js +9 -9
- package/src/sap/fe/core/converters/MetaModelConverter.js +858 -871
- package/src/sap/fe/core/converters/MetaModelConverter.ts +763 -826
- package/src/sap/fe/core/converters/TemplateConverter.js +4 -4
- package/src/sap/fe/core/converters/annotations/DataField.js +57 -7
- package/src/sap/fe/core/converters/annotations/DataField.ts +52 -2
- package/src/sap/fe/core/converters/common/AnnotationConverter.js +80 -46
- package/src/sap/fe/core/converters/controls/Common/Action.js +56 -54
- package/src/sap/fe/core/converters/controls/Common/Action.ts +48 -36
- package/src/sap/fe/core/converters/controls/Common/Chart.js +101 -9
- package/src/sap/fe/core/converters/controls/Common/Chart.ts +100 -5
- package/src/sap/fe/core/converters/controls/Common/Criticality.js +1 -1
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +15 -16
- package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +16 -30
- package/src/sap/fe/core/converters/controls/Common/Form.js +21 -12
- package/src/sap/fe/core/converters/controls/Common/Form.ts +28 -8
- package/src/sap/fe/core/converters/controls/Common/KPI.js +287 -109
- package/src/sap/fe/core/converters/controls/Common/KPI.ts +314 -139
- package/src/sap/fe/core/converters/controls/Common/Table.js +414 -171
- package/src/sap/fe/core/converters/controls/Common/Table.ts +412 -130
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +487 -0
- package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +541 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +364 -0
- package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +338 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.js +74 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/Avatar.ts +50 -0
- package/src/sap/fe/core/converters/controls/ObjectPage/HeaderFacet.js +11 -11
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +47 -35
- package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +45 -29
- package/src/sap/fe/core/converters/helpers/Aggregation.js +31 -32
- package/src/sap/fe/core/converters/helpers/Aggregation.ts +26 -27
- package/src/sap/fe/core/converters/helpers/BindingHelper.js +27 -2
- package/src/sap/fe/core/converters/helpers/BindingHelper.ts +22 -2
- package/src/sap/fe/core/converters/helpers/ConfigurableObject.js +1 -1
- package/src/sap/fe/core/converters/helpers/ID.js +1 -3
- package/src/sap/fe/core/converters/helpers/ID.ts +2 -3
- package/src/sap/fe/core/converters/helpers/IssueManager.js +5 -4
- package/src/sap/fe/core/converters/helpers/IssueManager.ts +4 -3
- package/src/sap/fe/core/converters/helpers/Key.js +3 -3
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.js +11 -6
- package/src/sap/fe/core/converters/helpers/SelectionVariantHelper.ts +9 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.js +18 -5
- package/src/sap/fe/core/converters/objectPage/FormMenuActions.ts +14 -14
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +91 -20
- package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +77 -5
- package/src/sap/fe/core/converters/templates/ListReportConverter.js +76 -714
- package/src/sap/fe/core/converters/templates/ListReportConverter.ts +75 -807
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +106 -17
- package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +121 -16
- package/src/sap/fe/core/formatters/CriticalityFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.js +1 -1
- package/src/sap/fe/core/formatters/FPMFormatter.ts +8 -3
- package/src/sap/fe/core/formatters/KPIFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatter.js +1 -1
- package/src/sap/fe/core/formatters/TableFormatterTypes.js +1 -1
- package/src/sap/fe/core/formatters/ValueFormatter.js +1 -1
- package/src/sap/fe/core/fpm/Component.js +1 -1
- package/src/sap/fe/core/helpers/AnnotationEnum.js +3 -3
- package/src/sap/fe/core/helpers/BindingExpression.js +6 -6
- package/src/sap/fe/core/helpers/ClassSupport.js +4 -4
- package/src/sap/fe/core/helpers/ExcelFormatHelper.js +0 -2
- package/src/sap/fe/core/helpers/ModelHelper.js +27 -0
- package/src/sap/fe/core/helpers/PasteHelper.js +6 -0
- package/src/sap/fe/core/helpers/SemanticKeyHelper.js +2 -2
- package/src/sap/fe/core/helpers/StableIdHelper.js +1 -1
- package/src/sap/fe/core/helpers/StableIdHelper.ts +1 -1
- package/src/sap/fe/core/jsx-runtime/jsx.js +2 -2
- package/src/sap/fe/core/jsx-runtime/jsxs.js +1 -1
- package/src/sap/fe/core/library.js +1 -1
- package/src/sap/fe/core/messagebundle.properties +30 -1
- package/src/sap/fe/core/messagebundle_ar.properties +43 -1
- package/src/sap/fe/core/messagebundle_bg.properties +42 -0
- package/src/sap/fe/core/messagebundle_ca.properties +44 -2
- package/src/sap/fe/core/messagebundle_cs.properties +42 -0
- package/src/sap/fe/core/messagebundle_cy.properties +42 -0
- package/src/sap/fe/core/messagebundle_da.properties +43 -1
- package/src/sap/fe/core/messagebundle_de.properties +45 -3
- package/src/sap/fe/core/messagebundle_el.properties +43 -1
- package/src/sap/fe/core/messagebundle_en.properties +42 -0
- package/src/sap/fe/core/messagebundle_en_GB.properties +43 -1
- package/src/sap/fe/core/messagebundle_en_US_sappsd.properties +43 -1
- package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +48 -0
- package/src/sap/fe/core/messagebundle_en_US_saptrc.properties +42 -0
- package/src/sap/fe/core/messagebundle_es.properties +50 -8
- package/src/sap/fe/core/messagebundle_es_MX.properties +45 -3
- package/src/sap/fe/core/messagebundle_et.properties +42 -0
- package/src/sap/fe/core/messagebundle_fi.properties +42 -0
- package/src/sap/fe/core/messagebundle_fr.properties +51 -9
- package/src/sap/fe/core/messagebundle_fr_CA.properties +42 -0
- package/src/sap/fe/core/messagebundle_hi.properties +43 -1
- package/src/sap/fe/core/messagebundle_hr.properties +43 -1
- package/src/sap/fe/core/messagebundle_hu.properties +42 -0
- package/src/sap/fe/core/messagebundle_id.properties +43 -1
- package/src/sap/fe/core/messagebundle_it.properties +43 -1
- package/src/sap/fe/core/messagebundle_iw.properties +44 -2
- package/src/sap/fe/core/messagebundle_ja.properties +43 -1
- package/src/sap/fe/core/messagebundle_kk.properties +43 -1
- package/src/sap/fe/core/messagebundle_ko.properties +43 -1
- package/src/sap/fe/core/messagebundle_lt.properties +43 -1
- package/src/sap/fe/core/messagebundle_lv.properties +43 -1
- package/src/sap/fe/core/messagebundle_ms.properties +43 -1
- package/src/sap/fe/core/messagebundle_nl.properties +47 -5
- package/src/sap/fe/core/messagebundle_no.properties +44 -2
- package/src/sap/fe/core/messagebundle_pl.properties +43 -1
- package/src/sap/fe/core/messagebundle_pt.properties +43 -1
- package/src/sap/fe/core/messagebundle_pt_PT.properties +43 -1
- package/src/sap/fe/core/messagebundle_ro.properties +43 -1
- package/src/sap/fe/core/messagebundle_ru.properties +43 -1
- package/src/sap/fe/core/messagebundle_sh.properties +43 -1
- package/src/sap/fe/core/messagebundle_sk.properties +42 -0
- package/src/sap/fe/core/messagebundle_sl.properties +43 -1
- package/src/sap/fe/core/messagebundle_sv.properties +43 -1
- package/src/sap/fe/core/messagebundle_th.properties +42 -0
- package/src/sap/fe/core/messagebundle_tr.properties +42 -0
- package/src/sap/fe/core/messagebundle_uk.properties +42 -0
- package/src/sap/fe/core/messagebundle_vi.properties +43 -1
- package/src/sap/fe/core/messagebundle_zh_CN.properties +43 -1
- package/src/sap/fe/core/messagebundle_zh_TW.properties +43 -1
- package/src/sap/fe/core/services/AsyncComponentServiceFactory.js +5 -5
- package/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -5
- package/src/sap/fe/core/services/RoutingServiceFactory.js +155 -76
- package/src/sap/fe/core/services/ShellServicesFactory.js +9 -9
- package/src/sap/fe/core/services/SideEffectsServiceFactory.js +11 -12
- package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +11 -1
- package/src/sap/fe/core/support/AnnotationIssue.support.js +2 -4
- package/src/sap/fe/core/support/CollectionFacetMissingID.support.js +2 -4
- package/src/sap/fe/core/support/CollectionFacetUnsupportedLevel.support.js +2 -4
- package/src/sap/fe/core/support/CommonHelper.js +2 -4
- package/src/sap/fe/core/support/Diagnostics.js +1 -1
- package/src/sap/fe/core/templating/CriticalityFormatters.js +4 -4
- package/src/sap/fe/core/templating/DataFieldFormatters.js +1 -1
- package/src/sap/fe/core/templating/DataModelPathHelper.js +54 -6
- package/src/sap/fe/core/templating/DataModelPathHelper.ts +54 -4
- package/src/sap/fe/core/templating/EntitySetHelper.js +13 -3
- package/src/sap/fe/core/templating/EntitySetHelper.ts +4 -0
- package/src/sap/fe/core/templating/FieldControlHelper.js +1 -1
- package/src/sap/fe/core/templating/FilterHelper.js +23 -5
- package/src/sap/fe/core/templating/FilterHelper.ts +15 -1
- package/src/sap/fe/core/templating/FilterTemplating.js +1 -1
- package/src/sap/fe/core/templating/PropertyFormatters.js +1 -1
- package/src/sap/fe/core/templating/PropertyHelper.js +8 -8
- package/src/sap/fe/core/templating/UIFormatters.js +72 -4
- package/src/sap/fe/core/templating/UIFormatters.ts +98 -3
- package/src/sap/fe/core/type/Email.js +1 -1
|
@@ -14,7 +14,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
14
14
|
var createTableVisualization = Table.createTableVisualization;
|
|
15
15
|
var createDefaultTableVisualization = Table.createDefaultTableVisualization;
|
|
16
16
|
|
|
17
|
-
var getVisualizationsFromPresentationVariant = function (presentationVariantAnnotation, visualizationPath, converterContext
|
|
17
|
+
var getVisualizationsFromPresentationVariant = function (presentationVariantAnnotation, visualizationPath, converterContext) {
|
|
18
18
|
var visualizationAnnotations = [];
|
|
19
19
|
var visualizations = presentationVariantAnnotation.Visualizations || [];
|
|
20
20
|
var baseVisualizationPath = visualizationPath.split("@")[0];
|
|
@@ -25,25 +25,24 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
25
25
|
var hasChart = false;
|
|
26
26
|
var hasVisualization = false; // used to allow only first visualization in OP
|
|
27
27
|
|
|
28
|
+
var bIsALP = converterContext.getManifestWrapper().hasMultipleVisualizations() || converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
|
|
28
29
|
visualizations.forEach(function (visualization) {
|
|
29
30
|
switch (visualization.$target.term) {
|
|
30
31
|
case "com.sap.vocabularies.UI.v1.LineItem":
|
|
31
|
-
if (!hasLineItem) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
hasVisualization = true;
|
|
40
|
-
}
|
|
32
|
+
if (!hasLineItem && (bIsALP || !hasVisualization)) {
|
|
33
|
+
visualizationAnnotations.push({
|
|
34
|
+
visualization: visualization.$target,
|
|
35
|
+
annotationPath: "".concat(baseVisualizationPath).concat(visualization.value),
|
|
36
|
+
converterContext: converterContext
|
|
37
|
+
});
|
|
38
|
+
hasLineItem = true;
|
|
39
|
+
hasVisualization = true;
|
|
41
40
|
}
|
|
42
41
|
|
|
43
42
|
break;
|
|
44
43
|
|
|
45
44
|
case "com.sap.vocabularies.UI.v1.Chart":
|
|
46
|
-
if (!hasChart && (
|
|
45
|
+
if (!hasChart && (bIsALP || !hasVisualization)) {
|
|
47
46
|
visualizationAnnotations.push({
|
|
48
47
|
visualization: visualization.$target,
|
|
49
48
|
annotationPath: "".concat(baseVisualizationPath).concat(visualization.value),
|
|
@@ -118,7 +117,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
118
117
|
return bHasChart && bHasTable;
|
|
119
118
|
} else {
|
|
120
119
|
return presentationVariant && presentationVariant.Visualizations && !!presentationVariant.Visualizations.find(function (visualization) {
|
|
121
|
-
return visualization.$target.term === "com.sap.vocabularies.UI.v1.LineItem";
|
|
120
|
+
return visualization.$target.term === "com.sap.vocabularies.UI.v1.LineItem" || visualization.$target.term === "com.sap.vocabularies.UI.v1.Chart";
|
|
122
121
|
});
|
|
123
122
|
}
|
|
124
123
|
}
|
|
@@ -199,7 +198,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
199
198
|
|
|
200
199
|
case "com.sap.vocabularies.UI.v1.PresentationVariant":
|
|
201
200
|
presentationVariantAnnotation = visualization;
|
|
202
|
-
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(visualization, visualizationPath, converterContext
|
|
201
|
+
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(visualization, visualizationPath, converterContext));
|
|
203
202
|
break;
|
|
204
203
|
|
|
205
204
|
case "com.sap.vocabularies.UI.v1.SelectionPresentationVariant":
|
|
@@ -219,7 +218,7 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
219
218
|
});
|
|
220
219
|
}
|
|
221
220
|
} else {
|
|
222
|
-
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(presentationVariantAnnotation, visualizationPath, converterContext
|
|
221
|
+
visualizationAnnotations = visualizationAnnotations.concat(getVisualizationsFromPresentationVariant(presentationVariantAnnotation, visualizationPath, converterContext));
|
|
223
222
|
}
|
|
224
223
|
|
|
225
224
|
break;
|
|
@@ -273,4 +272,4 @@ sap.ui.define(["./Table", "./Chart", "sap/fe/core/converters/helpers/IssueManage
|
|
|
273
272
|
_exports.getDataVisualizationConfiguration = getDataVisualizationConfiguration;
|
|
274
273
|
return _exports;
|
|
275
274
|
}, false);
|
|
276
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpZXdDb25maWd1cmF0aW9uIiwidmlzdWFsaXphdGlvbkFubm90YXRpb25zIiwidmlzdWFsaXphdGlvbnMiLCJWaXN1YWxpemF0aW9ucyIsImJhc2VWaXN1YWxpemF0aW9uUGF0aCIsInNwbGl0IiwiaGFzTGluZUl0ZW0iLCJoYXNDaGFydCIsImhhc1Zpc3VhbGl6YXRpb24iLCJmb3JFYWNoIiwidmlzdWFsaXphdGlvbiIsIiR0YXJnZXQiLCJ0ZXJtIiwiZ2V0VGVtcGxhdGVUeXBlIiwiVGVtcGxhdGVUeXBlIiwiT2JqZWN0UGFnZSIsInB1c2giLCJhbm5vdGF0aW9uUGF0aCIsInZhbHVlIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsIkxpc3RSZXBvcnQiLCJBbmFseXRpY2FsTGlzdFBhZ2UiLCJnZXRWaWV3Q29uZmlndXJhdGlvbiIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwiYklzQUxQIiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm1hcCIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50IiwiZG9Ob3RDaGVja0FwcGx5U3VwcG9ydGVkIiwicHJlc2VudGF0aW9uUGF0aCIsImNoYXJ0VmlzdWFsaXphdGlvbiIsInRhYmxlVmlzdWFsaXphdGlvbiIsInNUZXJtIiwiY29uY2F0IiwiZnVsbHlRdWFsaWZpZWROYW1lIiwiZ2V0RW50aXR5VHlwZSIsImRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24iLCJnZXRSZWxhdGl2ZUFubm90YXRpb25QYXRoIiwidmlzdWFsaXphdGlvbkFubm90YXRpb24iLCJjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24iLCJjcmVhdGVUYWJsZVZpc3VhbGl6YXRpb24iLCJjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uIiwiZ2V0RGlhZ25vc3RpY3MiLCJhZGRJc3N1ZSIsIklzc3VlQ2F0ZWdvcnkiLCJBbm5vdGF0aW9uIiwiSXNzdWVTZXZlcml0eSIsIk1lZGl1bSIsIklzc3VlVHlwZSIsIk1JU1NJTkdfTElORUlURU0iLCJzUGF0aCIsInVuZGVmaW5lZCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1Q0EsTUFBTUEsd0NBQXdDLEdBQUcsVUFDaERDLDZCQURnRCxFQUVoREMsaUJBRmdELEVBR2hEQyxnQkFIZ0QsRUFJaERDLGlC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e1xuXHRDaGFydCxcblx0Q2hhcnREZWZpbml0aW9uVHlwZVR5cGVzLFxuXHRFbnRpdHlUeXBlLFxuXHRMaW5lSXRlbSxcblx0UHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0U2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0VUlBbm5vdGF0aW9uVGVybXNcbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5cbmltcG9ydCB7IGNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24sIGNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vVGFibGVcIjtcbmltcG9ydCB7IENoYXJ0VmlzdWFsaXphdGlvbiwgY3JlYXRlQ2hhcnRWaXN1YWxpemF0aW9uIH0gZnJvbSBcIi4vQ2hhcnRcIjtcbmltcG9ydCB7IElzc3VlVHlwZSwgSXNzdWVTZXZlcml0eSwgSXNzdWVDYXRlZ29yeSB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2hlbHBlcnMvSXNzdWVNYW5hZ2VyXCI7XG5pbXBvcnQgQ29udmVydGVyQ29udGV4dCBmcm9tIFwiLi4vLi4vQ29udmVydGVyQ29udGV4dFwiO1xuaW1wb3J0IHsgVGVtcGxhdGVUeXBlLCBWaWV3UGF0aENvbmZpZ3VyYXRpb24gfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zID1cblx0fCBMaW5lSXRlbVxuXHR8IENoYXJ0XG5cdHwgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXNcblx0fCBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuLy8gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbmV4cG9ydCB0eXBlIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IExpbmVJdGVtIHwgQ2hhcnREZWZpbml0aW9uVHlwZVR5cGVzO1xuXG50eXBlIFZpc3VhbGl6YXRpb25BbmRQYXRoID0ge1xuXHR2aXN1YWxpemF0aW9uOiBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmc7XG5cdHNlbGVjdGlvblZhcmlhbnRQYXRoPzogc3RyaW5nO1xuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0O1xufTtcblxuZXhwb3J0IHR5cGUgRGF0YVZpc3VhbGl6YXRpb25EZWZpbml0aW9uID0ge1xuXHR2aXN1YWxpemF0aW9uczogKFRhYmxlVmlzdWFsaXphdGlvbiB8IENoYXJ0VmlzdWFsaXphdGlvbilbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcbn07XG5cbmNvbnN0IGdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQgPSBmdW5jdGlvbihcblx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMsXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHZpZXdDb25maWd1cmF0aW9uPzogVmlld1BhdGhDb25maWd1cmF0aW9uXG4pOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdIHtcblx0Y29uc3QgdmlzdWFsaXphdGlvbkFubm90YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGNvbnN0IHZpc3VhbGl6YXRpb25zID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uVmlzdWFsaXphdGlvbnMgfHwgW107XG5cdGNvbnN0IGJhc2VWaXN1YWxpemF0aW9uUGF0aCA9IHZpc3VhbGl6YXRpb25QYXRoLnNwbGl0KFwiQFwiKVswXTtcblx0aWYgKHZpc3VhbGl6YXRpb25zKSB7XG5cdFx0Ly8gT25seSBhbGxvdyBvbmUgbGluZSBpdGVtIC8gY2hhcnRcblx0XHRsZXQgaGFzTGluZUl0ZW0gPSBmYWxzZTtcblx0XHRsZXQgaGFzQ2hhcnQgPSBmYWxzZTtcblx0XHRsZXQgaGFzVmlzdWFsaXphdGlvbiA9IGZhbHNlOyAvLyB1c2VkIHRvIGFsbG93IG9ubHkgZmlyc3QgdmlzdWFsaXphdGlvbiBpbiBPUFxuXHRcdHZpc3VhbGl6YXRpb25zLmZvckVhY2godmlzdWFsaXphdGlvbiA9PiB7XG5cdFx0XHRzd2l0Y2ggKHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdFx0aWYgKCFoYXNMaW5lSXRlbSkge1xuXHRcdFx0XHRcdFx0aWYgKCEoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UgJiYgaGFzVmlzdWFsaXphdGlvbikpIHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2Jhc2VWaXN1YWxpemF0aW9uUGF0aH0ke3Zpc3VhbGl6YXRpb24udmFsdWV9YCxcblx0XHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0XHRoYXNMaW5lSXRlbSA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdGhhc1Zpc3VhbGl6YXRpb24gPSB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHQhaGFzQ2hhcnQgJiZcblx0XHRcdFx0XHRcdCgodmlld0NvbmZpZ3VyYXRpb24gJiZcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKHZpZXdDb25maWd1cmF0aW9uKSAmJlxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldFRlbXBsYXRlVHlwZSgpID09PSBUZW1wbGF0ZVR5cGUuTGlzdFJlcG9ydCkgfHxcblx0XHRcdFx0XHRcdFx0KGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2UgJiZcblx0XHRcdFx0XHRcdFx0XHQhY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXRWaWV3Q29uZmlndXJhdGlvbigpKSB8fFxuXHRcdFx0XHRcdFx0XHQoY29udmVydGVyQ29udGV4dC5nZXRUZW1wbGF0ZVR5cGUoKSA9PT0gVGVtcGxhdGVUeXBlLk9iamVjdFBhZ2UgJiYgIWhhc1Zpc3VhbGl6YXRpb24pKVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiB2aXN1YWxpemF0aW9uLiR0YXJnZXQgYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogYCR7YmFzZVZpc3VhbGl6YXRpb25QYXRofSR7dmlzdWFsaXphdGlvbi52YWx1ZX1gLFxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGhhc0NoYXJ0ID0gdHJ1ZTtcblx0XHRcdFx0XHRcdGhhc1Zpc3VhbGl6YXRpb24gPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gdmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQoXG5cdGVudGl0eVR5cGU6IEVudGl0eVR5cGUsXG5cdGFubm90YXRpb25QYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IGFueSB7XG5cdGlmIChhbm5vdGF0aW9uUGF0aCkge1xuXHRcdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihhbm5vdGF0aW9uUGF0aCk7XG5cdFx0Y29uc3Qgc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA9IHJlc29sdmVkVGFyZ2V0LmFubm90YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0XHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdFx0XHRyZXR1cm4gc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQW5ub3RhdGlvbiBQYXRoIGZvciB0aGUgU1BWIG1lbnRpb25lZCBpbiB0aGUgbWFuaWZlc3QgaXMgbm90IGZvdW5kLCBQbGVhc2UgYWRkIHRoZSBTUFYgaW4gdGhlIGFubm90YXRpb25cIik7XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudDtcblx0fVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTZWxlY3Rpb25QcmVzZW50YXRpb25Db21wbGlhbnQoXG5cdFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMsXG5cdGJJc0FMUDogQm9vbGVhblxuKTogQm9vbGVhbiB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IHByZXNlbnRhdGlvblZhcmlhbnQgPSBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ICYmIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRyZXR1cm4gaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudCwgYklzQUxQKTtcblx0fSBlbHNlIHtcblx0XHR0aHJvdyBuZXcgRXJyb3IoXCJQcmVzZW50YXRpb24gVmFyaWFudCBpcyBub3QgcHJlc2VudCBpbiB0aGUgU1BWIGFubm90YXRpb25cIik7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQ6IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMsIGJJc0FMUD86IEJvb2xlYW4pOiBCb29sZWFuIHtcblx0bGV0IGJIYXNUYWJsZSA9IGZhbHNlLFxuXHRcdGJIYXNDaGFydCA9IGZhbHNlO1xuXHRpZiAoYklzQUxQKSB7XG5cdFx0aWYgKHByZXNlbnRhdGlvblZhcmlhbnQgJiYgcHJlc2VudGF0aW9uVmFyaWFudC5WaXN1YWxpemF0aW9ucykge1xuXHRcdFx0Y29uc3QgYVZpc3VhbGl6YXRpb25zID0gcHJlc2VudGF0aW9uVmFyaWFudC5WaXN1YWxpemF0aW9ucztcblx0XHRcdGFWaXN1YWxpemF0aW9ucy5tYXAob1Zpc3VhbGl6YXRpb24gPT4ge1xuXHRcdFx0XHRpZiAob1Zpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSkge1xuXHRcdFx0XHRcdGJIYXNUYWJsZSA9IHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQpIHtcblx0XHRcdFx0XHRiSGFzQ2hhcnQgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0cmV0dXJuIGJIYXNDaGFydCAmJiBiSGFzVGFibGU7XG5cdH0gZWxzZSB7XG5cdFx0cmV0dXJuIChcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnQgJiZcblx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMgJiZcblx0XHRcdCEhcHJlc2VudGF0aW9uVmFyaWFudC5WaXN1YWxpemF0aW9ucy5maW5kKHZpc3VhbGl6YXRpb24gPT4ge1xuXHRcdFx0XHRyZXR1cm4gdmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtO1xuXHRcdFx0fSlcblx0XHQpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IExpbmVJdGVtIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnMuVUk/LkxpbmVJdGVtO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDaGFydChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogQ2hhcnQgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uQ2hhcnQ7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdFByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSk6IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlByZXNlbnRhdGlvblZhcmlhbnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uU2VsZWN0aW9uVmFyaWFudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZTogRW50aXR5VHlwZSwgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IFNlbGVjdGlvblZhcmlhbnRUeXBlVHlwZXMgfCB1bmRlZmluZWQge1xuXHRjb25zdCBhbm5vdGF0aW9uUGF0aCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCkuZ2V0RGVmYXVsdFRlbXBsYXRlQW5ub3RhdGlvblBhdGgoKTtcblx0Y29uc3Qgc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA9IGdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQoZW50aXR5VHlwZSwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpO1xuXHRsZXQgc2VsZWN0aW9uVmFyaWFudDtcblx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRjb25zdCBzZWxlY3Rpb25WYXJpYW50ID0gc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudC5TZWxlY3Rpb25WYXJpYW50O1xuXHRcdGlmIChzZWxlY3Rpb25WYXJpYW50KSB7XG5cdFx0XHRyZXR1cm4gc2VsZWN0aW9uVmFyaWFudDtcblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0c2VsZWN0aW9uVmFyaWFudCA9IGdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGUpO1xuXHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24oXG5cdHZpc3VhbGl6YXRpb25QYXRoOiBzdHJpbmcsXG5cdGlzQ29uZGVuc2VkVGFibGVMYXlvdXRDb21wbGlhbnQ6IGJvb2xlYW4sXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdHZpZXdDb25maWd1cmF0aW9uPzogVmlld1BhdGhDb25maWd1cmF0aW9uLFxuXHRkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQ/OiBib29sZWFuXG4pOiBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24ge1xuXHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24odmlzdWFsaXphdGlvblBhdGgpO1xuXHRjb25zdCB2aXN1YWxpemF0aW9uID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhcyBEYXRhVmlzdWFsaXphdGlvbkFubm90YXRpb25zO1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblx0bGV0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRsZXQgcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb246IFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdGxldCBwcmVzZW50YXRpb25QYXRoOiBzdHJpbmcgPSBcIlwiO1xuXHRsZXQgY2hhcnRWaXN1YWxpemF0aW9uLCB0YWJsZVZpc3VhbGl6YXRpb247XG5cdGNvbnN0IHNUZXJtID0gdmlzdWFsaXphdGlvbj8udGVybTtcblx0aWYgKHNUZXJtKSB7XG5cdFx0c3dpdGNoIChzVGVybSkge1xuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ6XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uOiB2aXN1YWxpemF0aW9uIGFzIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogdmlzdWFsaXphdGlvblBhdGgsXG5cdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHR9KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gdmlzdWFsaXphdGlvbiBhcyBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzO1xuXHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdGdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQoXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXMsXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHR2aWV3Q29uZmlndXJhdGlvblxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gKHZpc3VhbGl6YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcykuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdFx0Ly8gUHJlc2VudGF0aW9uIGNhbiBiZSBpbmxpbmUgb3Igb3V0c2lkZSB0aGUgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdFx0XHRwcmVzZW50YXRpb25QYXRoID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXG5cdFx0XHRcdGlmICghaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24pKSB7XG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0XHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24gPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSkgYXMgTGluZUl0ZW07XG5cdFx0XHRcdFx0aWYgKGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24sXG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0LFxuXHRcdFx0XHRcdFx0XHR2aWV3Q29uZmlndXJhdGlvblxuXHRcdFx0XHRcdFx0KVxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLm1hcCh2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiA9PiB7XG5cdFx0XHRjb25zdCB7IHZpc3VhbGl6YXRpb24sIGFubm90YXRpb25QYXRoLCBjb252ZXJ0ZXJDb250ZXh0IH0gPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbjtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi50ZXJtKSB7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ6XG5cdFx0XHRcdFx0Y2hhcnRWaXN1YWxpemF0aW9uID0gY3JlYXRlQ2hhcnRWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aCxcblx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtOlxuXHRcdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRcdHRhYmxlVmlzdWFsaXphdGlvbiA9IGNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbihcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb24gYXMgTGluZUl0ZW0sXG5cdFx0XHRcdFx0XHRhbm5vdGF0aW9uUGF0aCxcblx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQsXG5cdFx0XHRcdFx0XHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdGlzQ29uZGVuc2VkVGFibGVMYXlvdXRDb21wbGlhbnQsXG5cdFx0XHRcdFx0XHR2aWV3Q29uZmlndXJhdGlvblxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0gZWxzZSB7XG5cdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbihjb252ZXJ0ZXJDb250ZXh0KTtcblx0XHRjb252ZXJ0ZXJDb250ZXh0LmdldERpYWdub3N0aWNzKCkuYWRkSXNzdWUoSXNzdWVDYXRlZ29yeS5Bbm5vdGF0aW9uLCBJc3N1ZVNldmVyaXR5Lk1lZGl1bSwgSXNzdWVUeXBlLk1JU1NJTkdfTElORUlURU0pO1xuXHR9XG5cdGNvbnN0IGFWaXN1YWxpemF0aW9uczogYW55ID0gW107XG5cdGxldCBzUGF0aCA9XG5cdFx0c1Rlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPyBwcmVzZW50YXRpb25QYXRoIDogdmlzdWFsaXphdGlvbiAmJiB2aXN1YWxpemF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZTtcblx0aWYgKHNQYXRoID09PSB1bmRlZmluZWQpIHtcblx0XHRzUGF0aCA9IFwiL1wiO1xuXHR9XG5cdGlmIChjaGFydFZpc3VhbGl6YXRpb24pIHtcblx0XHRhVmlzdWFsaXphdGlvbnMucHVzaChjaGFydFZpc3VhbGl6YXRpb24pO1xuXHR9XG5cdGlmICh0YWJsZVZpc3VhbGl6YXRpb24pIHtcblx0XHRhVmlzdWFsaXphdGlvbnMucHVzaCh0YWJsZVZpc3VhbGl6YXRpb24pO1xuXHR9XG5cdHJldHVybiB7XG5cdFx0dmlzdWFsaXphdGlvbnM6IGFWaXN1YWxpemF0aW9ucyxcblx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKHNQYXRoKVxuXHR9O1xufVxuIl19
|
|
275
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRhdGFWaXN1YWxpemF0aW9uLnRzIl0sIm5hbWVzIjpbImdldFZpc3VhbGl6YXRpb25zRnJvbVByZXNlbnRhdGlvblZhcmlhbnQiLCJwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiIsInZpc3VhbGl6YXRpb25QYXRoIiwiY29udmVydGVyQ29udGV4dCIsInZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyIsInZpc3VhbGl6YXRpb25zIiwiVmlzdWFsaXphdGlvbnMiLCJiYXNlVmlzdWFsaXphdGlvblBhdGgiLCJzcGxpdCIsImhhc0xpbmVJdGVtIiwiaGFzQ2hhcnQiLCJoYXNWaXN1YWxpemF0aW9uIiwiYklzQUxQIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwiaGFzTXVsdGlwbGVWaXN1YWxpemF0aW9ucyIsImdldFRlbXBsYXRlVHlwZSIsIlRlbXBsYXRlVHlwZSIsIkFuYWx5dGljYWxMaXN0UGFnZSIsImZvckVhY2giLCJ2aXN1YWxpemF0aW9uIiwiJHRhcmdldCIsInRlcm0iLCJwdXNoIiwiYW5ub3RhdGlvblBhdGgiLCJ2YWx1ZSIsImdldFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJlbnRpdHlUeXBlIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsInNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQiLCJhbm5vdGF0aW9uIiwiRXJyb3IiLCJhbm5vdGF0aW9ucyIsIlVJIiwiU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCIsImlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50IiwicHJlc2VudGF0aW9uVmFyaWFudCIsIlByZXNlbnRhdGlvblZhcmlhbnQiLCJpc1ByZXNlbnRhdGlvbkNvbXBsaWFudCIsImJIYXNUYWJsZSIsImJIYXNDaGFydCIsImFWaXN1YWxpemF0aW9ucyIsIm1hcCIsIm9WaXN1YWxpemF0aW9uIiwiZmluZCIsImdldERlZmF1bHRMaW5lSXRlbSIsIkxpbmVJdGVtIiwiZ2V0RGVmYXVsdENoYXJ0IiwiQ2hhcnQiLCJnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudCIsImdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50IiwiU2VsZWN0aW9uVmFyaWFudCIsImdldFNlbGVjdGlvblZhcmlhbnQiLCJnZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCIsInNlbGVjdGlvblZhcmlhbnQiLCJnZXREYXRhVmlzdWFsaXphdGlvbkNvbmZpZ3VyYXRpb24iLCJpc0NvbmRlbnNlZFRhYmxlTGF5b3V0Q29tcGxpYW50Iiwidmlld0NvbmZpZ3VyYXRpb24iLCJkb05vdENoZWNrQXBwbHlTdXBwb3J0ZWQiLCJwcmVzZW50YXRpb25QYXRoIiwiY2hhcnRWaXN1YWxpemF0aW9uIiwidGFibGVWaXN1YWxpemF0aW9uIiwic1Rlcm0iLCJjb25jYXQiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJnZXRFbnRpdHlUeXBlIiwiZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbiIsImdldFJlbGF0aXZlQW5ub3RhdGlvblBhdGgiLCJ2aXN1YWxpemF0aW9uQW5ub3RhdGlvbiIsImNyZWF0ZUNoYXJ0VmlzdWFsaXphdGlvbiIsImNyZWF0ZVRhYmxlVmlzdWFsaXphdGlvbiIsImNyZWF0ZURlZmF1bHRUYWJsZVZpc3VhbGl6YXRpb24iLCJnZXREaWFnbm9zdGljcyIsImFkZElzc3VlIiwiSXNzdWVDYXRlZ29yeSIsIkFubm90YXRpb24iLCJJc3N1ZVNldmVyaXR5IiwiTWVkaXVtIiwiSXNzdWVUeXBlIiwiTUlTU0lOR19MSU5FSVRFTSIsInNQYXRoIiwidW5kZWZpbmVkIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7OztBQXFDQSxNQUFNQSx3Q0FBd0MsR0FBRyxVQUNoREMsNkJBRGdELEVBRWhEQyxpQkFGZ0QsRUFHaERDLGdCQUhnRCxFQUl2QjtBQUN6QixRQUFNQyx3QkFBZ0QsR0FBRyxFQUF6RDtBQUNBLFFBQU1D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LEdBQUdVLCtCQUErQixDQUFDcEUsZ0JBQUQsQ0FBcEQ7QUFDQUEsTUFBQUEsZ0JBQWdCLENBQUNxRSxjQUFqQixHQUFrQ0MsUUFBbEMsQ0FBMkNDLGFBQWEsQ0FBQ0MsVUFBekQsRUFBcUVDLGFBQWEsQ0FBQ0MsTUFBbkYsRUFBMkZDLFNBQVMsQ0FBQ0MsZ0JBQXJHO0FBQ0E7O0FBQ0QsUUFBTXRDLGVBQW9CLEdBQUcsRUFBN0I7QUFDQSxRQUFJdUMsS0FBSyxHQUNSbEIsS0FBSyw4REFBTCxHQUEyREgsZ0JBQTNELEdBQThFeEMsYUFBYSxJQUFJQSxhQUFhLENBQUM2QyxrQkFEOUc7O0FBRUEsUUFBSWdCLEtBQUssS0FBS0MsU0FBZCxFQUF5QjtBQUN4QkQsTUFBQUEsS0FBSyxHQUFHLEdBQVI7QUFDQTs7QUFDRCxRQUFJcEIsa0JBQUosRUFBd0I7QUFDdkJuQixNQUFBQSxlQUFlLENBQUNuQixJQUFoQixDQUFxQnNDLGtCQUFyQjtBQUNBOztBQUNELFFBQUlDLGtCQUFKLEVBQXdCO0FBQ3ZCcEIsTUFBQUEsZUFBZSxDQUFDbkIsSUFBaEIsQ0FBcUJ1QyxrQkFBckI7QUFDQTs7QUFDRCxXQUFPO0FBQ054RCxNQUFBQSxjQUFjLEVBQUVvQyxlQURWO0FBRU5sQixNQUFBQSxjQUFjLEVBQUVwQixnQkFBZ0IsQ0FBQytFLCtCQUFqQixDQUFpREYsS0FBakQ7QUFGVixLQUFQO0FBSUEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENoYXJ0LFxuXHRDaGFydERlZmluaXRpb25UeXBlVHlwZXMsXG5cdEVudGl0eVR5cGUsXG5cdExpbmVJdGVtLFxuXHRQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRVSUFubm90YXRpb25UZXJtc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcblxuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFRhYmxlVmlzdWFsaXphdGlvbiwgY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uLCBUYWJsZVZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9UYWJsZVwiO1xuaW1wb3J0IHsgQ2hhcnRWaXN1YWxpemF0aW9uLCBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24gfSBmcm9tIFwiLi9DaGFydFwiO1xuaW1wb3J0IHsgSXNzdWVUeXBlLCBJc3N1ZVNldmVyaXR5LCBJc3N1ZUNhdGVnb3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvaGVscGVycy9Jc3N1ZU1hbmFnZXJcIjtcbmltcG9ydCBDb252ZXJ0ZXJDb250ZXh0IGZyb20gXCIuLi8uLi9Db252ZXJ0ZXJDb250ZXh0XCI7XG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUsIFZpZXdQYXRoQ29uZmlndXJhdGlvbiB9IGZyb20gXCIuLi8uLi9NYW5pZmVzdFNldHRpbmdzXCI7XG5cbmV4cG9ydCB0eXBlIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPVxuXHR8IExpbmVJdGVtXG5cdHwgQ2hhcnRcblx0fCBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzXG5cdHwgU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlc1xuXHR8IFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG4vLyB8IENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcztcblxuZXhwb3J0IHR5cGUgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zID0gTGluZUl0ZW0gfCBDaGFydERlZmluaXRpb25UeXBlVHlwZXM7XG5cbnR5cGUgVmlzdWFsaXphdGlvbkFuZFBhdGggPSB7XG5cdHZpc3VhbGl6YXRpb246IEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0c2VsZWN0aW9uVmFyaWFudFBhdGg/OiBzdHJpbmc7XG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQ7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRhVmlzdWFsaXphdGlvbkRlZmluaXRpb24gPSB7XG5cdHZpc3VhbGl6YXRpb25zOiAoVGFibGVWaXN1YWxpemF0aW9uIHwgQ2hhcnRWaXN1YWxpemF0aW9uKVtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xufTtcblxuY29uc3QgZ2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudCA9IGZ1bmN0aW9uKFxuXHRwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dFxuKTogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSB7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uczogVmlzdWFsaXphdGlvbkFuZFBhdGhbXSA9IFtdO1xuXHRjb25zdCB2aXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLlZpc3VhbGl6YXRpb25zIHx8IFtdO1xuXHRjb25zdCBiYXNlVmlzdWFsaXphdGlvblBhdGggPSB2aXN1YWxpemF0aW9uUGF0aC5zcGxpdChcIkBcIilbMF07XG5cdGlmICh2aXN1YWxpemF0aW9ucykge1xuXHRcdC8vIE9ubHkgYWxsb3cgb25lIGxpbmUgaXRlbSAvIGNoYXJ0XG5cdFx0bGV0IGhhc0xpbmVJdGVtID0gZmFsc2U7XG5cdFx0bGV0IGhhc0NoYXJ0ID0gZmFsc2U7XG5cdFx0bGV0IGhhc1Zpc3VhbGl6YXRpb24gPSBmYWxzZTsgLy8gdXNlZCB0byBhbGxvdyBvbmx5IGZpcnN0IHZpc3VhbGl6YXRpb24gaW4gT1Bcblx0XHRjb25zdCBiSXNBTFAgPVxuXHRcdFx0Y29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5oYXNNdWx0aXBsZVZpc3VhbGl6YXRpb25zKCkgfHxcblx0XHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0VGVtcGxhdGVUeXBlKCkgPT09IFRlbXBsYXRlVHlwZS5BbmFseXRpY2FsTGlzdFBhZ2U7XG5cdFx0dmlzdWFsaXphdGlvbnMuZm9yRWFjaCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdHN3aXRjaCAodmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbTpcblx0XHRcdFx0XHRpZiAoIWhhc0xpbmVJdGVtICYmIChiSXNBTFAgfHwgIWhhc1Zpc3VhbGl6YXRpb24pKSB7XG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMucHVzaCh7XG5cdFx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24uJHRhcmdldCBhcyBBY3R1YWxWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnMsXG5cdFx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiBgJHtiYXNlVmlzdWFsaXphdGlvblBhdGh9JHt2aXN1YWxpemF0aW9uLnZhbHVlfWAsXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0aGFzTGluZUl0ZW0gPSB0cnVlO1xuXHRcdFx0XHRcdFx0aGFzVmlzdWFsaXphdGlvbiA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0OlxuXHRcdFx0XHRcdGlmICghaGFzQ2hhcnQgJiYgKGJJc0FMUCB8fCAhaGFzVmlzdWFsaXphdGlvbikpIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogdmlzdWFsaXphdGlvbi4kdGFyZ2V0IGFzIEFjdHVhbFZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyxcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGAke2Jhc2VWaXN1YWxpemF0aW9uUGF0aH0ke3Zpc3VhbGl6YXRpb24udmFsdWV9YCxcblx0XHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dDogY29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHRoYXNDaGFydCA9IHRydWU7XG5cdFx0XHRcdFx0XHRoYXNWaXN1YWxpemF0aW9uID0gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH1cblx0cmV0dXJuIHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50KFxuXHRlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLFxuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBhbnkge1xuXHRpZiAoYW5ub3RhdGlvblBhdGgpIHtcblx0XHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oYW5ub3RhdGlvblBhdGgpO1xuXHRcdGNvbnN0IHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQgPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIFNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0aWYgKHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdGlmIChzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQpIHtcblx0XHRcdFx0cmV0dXJuIHNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihcIkFubm90YXRpb24gUGF0aCBmb3IgdGhlIFNQViBtZW50aW9uZWQgaW4gdGhlIG1hbmlmZXN0IGlzIG5vdCBmb3VuZCwgUGxlYXNlIGFkZCB0aGUgU1BWIGluIHRoZSBhbm5vdGF0aW9uXCIpO1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucz8uVUk/LlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2VsZWN0aW9uUHJlc2VudGF0aW9uQ29tcGxpYW50KFxuXHRTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50OiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLFxuXHRiSXNBTFA6IEJvb2xlYW5cbik6IEJvb2xlYW4gfCB1bmRlZmluZWQge1xuXHRjb25zdCBwcmVzZW50YXRpb25WYXJpYW50ID0gU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCAmJiBTZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlByZXNlbnRhdGlvblZhcmlhbnQ7XG5cdGlmIChwcmVzZW50YXRpb25WYXJpYW50KSB7XG5cdFx0cmV0dXJuIGlzUHJlc2VudGF0aW9uQ29tcGxpYW50KHByZXNlbnRhdGlvblZhcmlhbnQsIGJJc0FMUCk7XG5cdH0gZWxzZSB7XG5cdFx0dGhyb3cgbmV3IEVycm9yKFwiUHJlc2VudGF0aW9uIFZhcmlhbnQgaXMgbm90IHByZXNlbnQgaW4gdGhlIFNQViBhbm5vdGF0aW9uXCIpO1xuXHR9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZXNlbnRhdGlvbkNvbXBsaWFudChwcmVzZW50YXRpb25WYXJpYW50OiBQcmVzZW50YXRpb25WYXJpYW50VHlwZVR5cGVzLCBiSXNBTFA/OiBCb29sZWFuKTogQm9vbGVhbiB7XG5cdGxldCBiSGFzVGFibGUgPSBmYWxzZSxcblx0XHRiSGFzQ2hhcnQgPSBmYWxzZTtcblx0aWYgKGJJc0FMUCkge1xuXHRcdGlmIChwcmVzZW50YXRpb25WYXJpYW50ICYmIHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMpIHtcblx0XHRcdGNvbnN0IGFWaXN1YWxpemF0aW9ucyA9IHByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnM7XG5cdFx0XHRhVmlzdWFsaXphdGlvbnMubWFwKG9WaXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0aWYgKG9WaXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW0pIHtcblx0XHRcdFx0XHRiSGFzVGFibGUgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChvVmlzdWFsaXphdGlvbi4kdGFyZ2V0LnRlcm0gPT09IFVJQW5ub3RhdGlvblRlcm1zLkNoYXJ0KSB7XG5cdFx0XHRcdFx0Ykhhc0NoYXJ0ID0gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdHJldHVybiBiSGFzQ2hhcnQgJiYgYkhhc1RhYmxlO1xuXHR9IGVsc2Uge1xuXHRcdHJldHVybiAoXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50ICYmXG5cdFx0XHRwcmVzZW50YXRpb25WYXJpYW50LlZpc3VhbGl6YXRpb25zICYmXG5cdFx0XHQhIXByZXNlbnRhdGlvblZhcmlhbnQuVmlzdWFsaXphdGlvbnMuZmluZCh2aXN1YWxpemF0aW9uID0+IHtcblx0XHRcdFx0cmV0dXJuIHZpc3VhbGl6YXRpb24uJHRhcmdldC50ZXJtID09PSBVSUFubm90YXRpb25UZXJtcy5MaW5lSXRlbSB8fCB2aXN1YWxpemF0aW9uLiR0YXJnZXQudGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuQ2hhcnQ7XG5cdFx0XHR9KVxuXHRcdCk7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRMaW5lSXRlbShlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogTGluZUl0ZW0gfCB1bmRlZmluZWQge1xuXHRyZXR1cm4gZW50aXR5VHlwZS5hbm5vdGF0aW9ucy5VST8uTGluZUl0ZW07XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdENoYXJ0KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBDaGFydCB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zLlVJPy5DaGFydDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0UHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlKTogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBlbnRpdHlUeXBlLmFubm90YXRpb25zPy5VST8uUHJlc2VudGF0aW9uVmFyaWFudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRTZWxlY3Rpb25WYXJpYW50KGVudGl0eVR5cGU6IEVudGl0eVR5cGUpOiBTZWxlY3Rpb25WYXJpYW50VHlwZVR5cGVzIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIGVudGl0eVR5cGUuYW5ub3RhdGlvbnM/LlVJPy5TZWxlY3Rpb25WYXJpYW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VsZWN0aW9uVmFyaWFudChlbnRpdHlUeXBlOiBFbnRpdHlUeXBlLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogU2VsZWN0aW9uVmFyaWFudFR5cGVUeXBlcyB8IHVuZGVmaW5lZCB7XG5cdGNvbnN0IGFubm90YXRpb25QYXRoID0gY29udmVydGVyQ29udGV4dC5nZXRNYW5pZmVzdFdyYXBwZXIoKS5nZXREZWZhdWx0VGVtcGxhdGVBbm5vdGF0aW9uUGF0aCgpO1xuXHRjb25zdCBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50ID0gZ2V0U2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudChlbnRpdHlUeXBlLCBhbm5vdGF0aW9uUGF0aCwgY29udmVydGVyQ29udGV4dCk7XG5cdGxldCBzZWxlY3Rpb25WYXJpYW50O1xuXHRpZiAoc2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCkge1xuXHRcdGNvbnN0IHNlbGVjdGlvblZhcmlhbnQgPSBzZWxlY3Rpb25QcmVzZW50YXRpb25WYXJpYW50LlNlbGVjdGlvblZhcmlhbnQ7XG5cdFx0aWYgKHNlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBzZWxlY3Rpb25WYXJpYW50O1xuXHRcdH1cblx0fSBlbHNlIHtcblx0XHRzZWxlY3Rpb25WYXJpYW50ID0gZ2V0RGVmYXVsdFNlbGVjdGlvblZhcmlhbnQoZW50aXR5VHlwZSk7XG5cdFx0cmV0dXJuIHNlbGVjdGlvblZhcmlhbnQ7XG5cdH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFWaXN1YWxpemF0aW9uQ29uZmlndXJhdGlvbihcblx0dmlzdWFsaXphdGlvblBhdGg6IHN0cmluZyxcblx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudDogYm9vbGVhbixcblx0Y29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCxcblx0dmlld0NvbmZpZ3VyYXRpb24/OiBWaWV3UGF0aENvbmZpZ3VyYXRpb24sXG5cdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZD86IGJvb2xlYW5cbik6IERhdGFWaXN1YWxpemF0aW9uRGVmaW5pdGlvbiB7XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbih2aXN1YWxpemF0aW9uUGF0aCk7XG5cdGNvbnN0IHZpc3VhbGl6YXRpb24gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzIERhdGFWaXN1YWxpemF0aW9uQW5ub3RhdGlvbnM7XG5cdGNvbnZlcnRlckNvbnRleHQgPSByZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0O1xuXHRsZXQgdmlzdWFsaXphdGlvbkFubm90YXRpb25zOiBWaXN1YWxpemF0aW9uQW5kUGF0aFtdID0gW107XG5cdGxldCBwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbjogUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcztcblx0bGV0IHByZXNlbnRhdGlvblBhdGg6IHN0cmluZyA9IFwiXCI7XG5cdGxldCBjaGFydFZpc3VhbGl6YXRpb24sIHRhYmxlVmlzdWFsaXphdGlvbjtcblx0Y29uc3Qgc1Rlcm0gPSB2aXN1YWxpemF0aW9uPy50ZXJtO1xuXHRpZiAoc1Rlcm0pIHtcblx0XHRzd2l0Y2ggKHNUZXJtKSB7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkxpbmVJdGVtOlxuXHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0dmlzdWFsaXphdGlvbkFubm90YXRpb25zLnB1c2goe1xuXHRcdFx0XHRcdHZpc3VhbGl6YXRpb246IHZpc3VhbGl6YXRpb24gYXMgQWN0dWFsVmlzdWFsaXphdGlvbkFubm90YXRpb25zLFxuXHRcdFx0XHRcdGFubm90YXRpb25QYXRoOiB2aXN1YWxpemF0aW9uUGF0aCxcblx0XHRcdFx0XHRjb252ZXJ0ZXJDb250ZXh0OiBjb252ZXJ0ZXJDb250ZXh0XG5cdFx0XHRcdH0pO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuUHJlc2VudGF0aW9uVmFyaWFudDpcblx0XHRcdFx0cHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24gPSB2aXN1YWxpemF0aW9uIGFzIFByZXNlbnRhdGlvblZhcmlhbnRUeXBlVHlwZXM7XG5cdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucyA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5jb25jYXQoXG5cdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb24gYXMgUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dFxuXHRcdFx0XHRcdClcblx0XHRcdFx0KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLlNlbGVjdGlvblByZXNlbnRhdGlvblZhcmlhbnQ6XG5cdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uID0gKHZpc3VhbGl6YXRpb24gYXMgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFR5cGVUeXBlcykuUHJlc2VudGF0aW9uVmFyaWFudDtcblx0XHRcdFx0Ly8gUHJlc2VudGF0aW9uIGNhbiBiZSBpbmxpbmUgb3Igb3V0c2lkZSB0aGUgU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudFxuXHRcdFx0XHRwcmVzZW50YXRpb25QYXRoID0gcHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXG5cdFx0XHRcdGlmICghaXNQcmVzZW50YXRpb25Db21wbGlhbnQocHJlc2VudGF0aW9uVmFyaWFudEFubm90YXRpb24pKSB7XG5cdFx0XHRcdFx0Y29uc3QgZW50aXR5VHlwZSA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZSgpO1xuXHRcdFx0XHRcdGNvbnN0IGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24gPSBnZXREZWZhdWx0TGluZUl0ZW0oZW50aXR5VHlwZSkgYXMgTGluZUl0ZW07XG5cdFx0XHRcdFx0aWYgKGRlZmF1bHRMaW5lSXRlbUFubm90YXRpb24pIHtcblx0XHRcdFx0XHRcdHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9ucy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbjogZGVmYXVsdExpbmVJdGVtQW5ub3RhdGlvbixcblx0XHRcdFx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0UmVsYXRpdmVBbm5vdGF0aW9uUGF0aChcblx0XHRcdFx0XHRcdFx0XHRkZWZhdWx0TGluZUl0ZW1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRcdFx0XHRcdFx0XHRlbnRpdHlUeXBlXG5cdFx0XHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0XHRcdGNvbnZlcnRlckNvbnRleHQ6IGNvbnZlcnRlckNvbnRleHRcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMgPSB2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMuY29uY2F0KFxuXHRcdFx0XHRcdFx0Z2V0VmlzdWFsaXphdGlvbnNGcm9tUHJlc2VudGF0aW9uVmFyaWFudChwcmVzZW50YXRpb25WYXJpYW50QW5ub3RhdGlvbiwgdmlzdWFsaXphdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHR2aXN1YWxpemF0aW9uQW5ub3RhdGlvbnMubWFwKHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uID0+IHtcblx0XHRcdGNvbnN0IHsgdmlzdWFsaXphdGlvbiwgYW5ub3RhdGlvblBhdGgsIGNvbnZlcnRlckNvbnRleHQgfSA9IHZpc3VhbGl6YXRpb25Bbm5vdGF0aW9uO1xuXHRcdFx0c3dpdGNoICh2aXN1YWxpemF0aW9uLnRlcm0pIHtcblx0XHRcdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5DaGFydDpcblx0XHRcdFx0XHRjaGFydFZpc3VhbGl6YXRpb24gPSBjcmVhdGVDaGFydFZpc3VhbGl6YXRpb24oXG5cdFx0XHRcdFx0XHR2aXN1YWxpemF0aW9uIGFzIENoYXJ0RGVmaW5pdGlvblR5cGVUeXBlcyxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdGRvTm90Q2hlY2tBcHBseVN1cHBvcnRlZFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuTGluZUl0ZW06XG5cdFx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdFx0dGFibGVWaXN1YWxpemF0aW9uID0gY3JlYXRlVGFibGVWaXN1YWxpemF0aW9uKFxuXHRcdFx0XHRcdFx0dmlzdWFsaXphdGlvbiBhcyBMaW5lSXRlbSxcblx0XHRcdFx0XHRcdGFubm90YXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0Y29udmVydGVyQ29udGV4dCxcblx0XHRcdFx0XHRcdHByZXNlbnRhdGlvblZhcmlhbnRBbm5vdGF0aW9uLFxuXHRcdFx0XHRcdFx0aXNDb25kZW5zZWRUYWJsZUxheW91dENvbXBsaWFudCxcblx0XHRcdFx0XHRcdHZpZXdDb25maWd1cmF0aW9uXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9KTtcblx0fSBlbHNlIHtcblx0XHR0YWJsZVZpc3VhbGl6YXRpb24gPSBjcmVhdGVEZWZhdWx0VGFibGVWaXN1YWxpemF0aW9uKGNvbnZlcnRlckNvbnRleHQpO1xuXHRcdGNvbnZlcnRlckNvbnRleHQuZ2V0RGlhZ25vc3RpY3MoKS5hZGRJc3N1ZShJc3N1ZUNhdGVnb3J5LkFubm90YXRpb24sIElzc3VlU2V2ZXJpdHkuTWVkaXVtLCBJc3N1ZVR5cGUuTUlTU0lOR19MSU5FSVRFTSk7XG5cdH1cblx0Y29uc3QgYVZpc3VhbGl6YXRpb25zOiBhbnkgPSBbXTtcblx0bGV0IHNQYXRoID1cblx0XHRzVGVybSA9PT0gVUlBbm5vdGF0aW9uVGVybXMuU2VsZWN0aW9uUHJlc2VudGF0aW9uVmFyaWFudCA/IHByZXNlbnRhdGlvblBhdGggOiB2aXN1YWxpemF0aW9uICYmIHZpc3VhbGl6YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lO1xuXHRpZiAoc1BhdGggPT09IHVuZGVmaW5lZCkge1xuXHRcdHNQYXRoID0gXCIvXCI7XG5cdH1cblx0aWYgKGNoYXJ0VmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKGNoYXJ0VmlzdWFsaXphdGlvbik7XG5cdH1cblx0aWYgKHRhYmxlVmlzdWFsaXphdGlvbikge1xuXHRcdGFWaXN1YWxpemF0aW9ucy5wdXNoKHRhYmxlVmlzdWFsaXphdGlvbik7XG5cdH1cblx0cmV0dXJuIHtcblx0XHR2aXN1YWxpemF0aW9uczogYVZpc3VhbGl6YXRpb25zLFxuXHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoc1BhdGgpXG5cdH07XG59XG4iXX0=
|
|
@@ -40,8 +40,7 @@ export type DataVisualizationDefinition = {
|
|
|
40
40
|
const getVisualizationsFromPresentationVariant = function(
|
|
41
41
|
presentationVariantAnnotation: PresentationVariantTypeTypes,
|
|
42
42
|
visualizationPath: string,
|
|
43
|
-
converterContext: ConverterContext
|
|
44
|
-
viewConfiguration?: ViewPathConfiguration
|
|
43
|
+
converterContext: ConverterContext
|
|
45
44
|
): VisualizationAndPath[] {
|
|
46
45
|
const visualizationAnnotations: VisualizationAndPath[] = [];
|
|
47
46
|
const visualizations = presentationVariantAnnotation.Visualizations || [];
|
|
@@ -51,31 +50,24 @@ const getVisualizationsFromPresentationVariant = function(
|
|
|
51
50
|
let hasLineItem = false;
|
|
52
51
|
let hasChart = false;
|
|
53
52
|
let hasVisualization = false; // used to allow only first visualization in OP
|
|
53
|
+
const bIsALP =
|
|
54
|
+
converterContext.getManifestWrapper().hasMultipleVisualizations() ||
|
|
55
|
+
converterContext.getTemplateType() === TemplateType.AnalyticalListPage;
|
|
54
56
|
visualizations.forEach(visualization => {
|
|
55
57
|
switch (visualization.$target.term) {
|
|
56
58
|
case UIAnnotationTerms.LineItem:
|
|
57
|
-
if (!hasLineItem) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
hasVisualization = true;
|
|
66
|
-
}
|
|
59
|
+
if (!hasLineItem && (bIsALP || !hasVisualization)) {
|
|
60
|
+
visualizationAnnotations.push({
|
|
61
|
+
visualization: visualization.$target as ActualVisualizationAnnotations,
|
|
62
|
+
annotationPath: `${baseVisualizationPath}${visualization.value}`,
|
|
63
|
+
converterContext: converterContext
|
|
64
|
+
});
|
|
65
|
+
hasLineItem = true;
|
|
66
|
+
hasVisualization = true;
|
|
67
67
|
}
|
|
68
68
|
break;
|
|
69
69
|
case UIAnnotationTerms.Chart:
|
|
70
|
-
if (
|
|
71
|
-
!hasChart &&
|
|
72
|
-
((viewConfiguration &&
|
|
73
|
-
converterContext.getManifestWrapper().hasMultipleVisualizations(viewConfiguration) &&
|
|
74
|
-
converterContext.getTemplateType() === TemplateType.ListReport) ||
|
|
75
|
-
(converterContext.getTemplateType() === TemplateType.AnalyticalListPage &&
|
|
76
|
-
!converterContext.getManifestWrapper().getViewConfiguration()) ||
|
|
77
|
-
(converterContext.getTemplateType() === TemplateType.ObjectPage && !hasVisualization))
|
|
78
|
-
) {
|
|
70
|
+
if (!hasChart && (bIsALP || !hasVisualization)) {
|
|
79
71
|
visualizationAnnotations.push({
|
|
80
72
|
visualization: visualization.$target as ActualVisualizationAnnotations,
|
|
81
73
|
annotationPath: `${baseVisualizationPath}${visualization.value}`,
|
|
@@ -146,7 +138,7 @@ export function isPresentationCompliant(presentationVariant: PresentationVariant
|
|
|
146
138
|
presentationVariant &&
|
|
147
139
|
presentationVariant.Visualizations &&
|
|
148
140
|
!!presentationVariant.Visualizations.find(visualization => {
|
|
149
|
-
return visualization.$target.term === UIAnnotationTerms.LineItem;
|
|
141
|
+
return visualization.$target.term === UIAnnotationTerms.LineItem || visualization.$target.term === UIAnnotationTerms.Chart;
|
|
150
142
|
})
|
|
151
143
|
);
|
|
152
144
|
}
|
|
@@ -212,8 +204,7 @@ export function getDataVisualizationConfiguration(
|
|
|
212
204
|
getVisualizationsFromPresentationVariant(
|
|
213
205
|
visualization as PresentationVariantTypeTypes,
|
|
214
206
|
visualizationPath,
|
|
215
|
-
converterContext
|
|
216
|
-
viewConfiguration
|
|
207
|
+
converterContext
|
|
217
208
|
)
|
|
218
209
|
);
|
|
219
210
|
break;
|
|
@@ -237,12 +228,7 @@ export function getDataVisualizationConfiguration(
|
|
|
237
228
|
}
|
|
238
229
|
} else {
|
|
239
230
|
visualizationAnnotations = visualizationAnnotations.concat(
|
|
240
|
-
getVisualizationsFromPresentationVariant(
|
|
241
|
-
presentationVariantAnnotation,
|
|
242
|
-
visualizationPath,
|
|
243
|
-
converterContext,
|
|
244
|
-
viewConfiguration
|
|
245
|
-
)
|
|
231
|
+
getVisualizationsFromPresentationVariant(presentationVariantAnnotation, visualizationPath, converterContext)
|
|
246
232
|
);
|
|
247
233
|
}
|
|
248
234
|
break;
|
|
@@ -15,7 +15,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
15
15
|
var Placement = ConfigurableObject.Placement;
|
|
16
16
|
var insertCustomElements = ConfigurableObject.insertCustomElements;
|
|
17
17
|
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
19
19
|
|
|
20
20
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
21
21
|
|
|
@@ -37,7 +37,6 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
37
37
|
*/
|
|
38
38
|
function getDefaultFormatOptionsForForm() {
|
|
39
39
|
return {
|
|
40
|
-
textLinesDisplay: 0,
|
|
41
40
|
textLinesEdit: 4
|
|
42
41
|
};
|
|
43
42
|
}
|
|
@@ -103,17 +102,18 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
103
102
|
var manifestFormContainer = manifestWrapper.getFormContainer(facetDefinition.Target.value);
|
|
104
103
|
var formElements = {};
|
|
105
104
|
|
|
106
|
-
if (manifestFormContainer
|
|
105
|
+
if (manifestFormContainer !== null && manifestFormContainer !== void 0 && manifestFormContainer.fields) {
|
|
107
106
|
Object.keys(manifestFormContainer === null || manifestFormContainer === void 0 ? void 0 : manifestFormContainer.fields).forEach(function (fieldId) {
|
|
108
107
|
formElements[fieldId] = {
|
|
109
108
|
key: fieldId,
|
|
109
|
+
id: "CustomFormElement::" + fieldId,
|
|
110
110
|
type: FormElementType.Default,
|
|
111
111
|
template: manifestFormContainer.fields[fieldId].template,
|
|
112
112
|
label: manifestFormContainer.fields[fieldId].label,
|
|
113
113
|
position: manifestFormContainer.fields[fieldId].position || {
|
|
114
114
|
placement: Placement.After
|
|
115
115
|
},
|
|
116
|
-
formatOptions: _objectSpread({}, getDefaultFormatOptionsForForm(),
|
|
116
|
+
formatOptions: _objectSpread(_objectSpread({}, getDefaultFormatOptionsForForm()), manifestFormContainer.fields[fieldId].formatOptions)
|
|
117
117
|
};
|
|
118
118
|
});
|
|
119
119
|
}
|
|
@@ -123,7 +123,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
123
123
|
|
|
124
124
|
_exports.getFormElementsFromManifest = getFormElementsFromManifest;
|
|
125
125
|
|
|
126
|
-
function getFormContainer(facetDefinition, converterContext) {
|
|
126
|
+
function getFormContainer(facetDefinition, converterContext, actions) {
|
|
127
127
|
var _resolvedTarget$conve;
|
|
128
128
|
|
|
129
129
|
//TODO form container id
|
|
@@ -136,6 +136,14 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
136
136
|
sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
+
actions = actions !== undefined ? actions.filter(function (action) {
|
|
140
|
+
return action.facetName == facetDefinition.fullyQualifiedName;
|
|
141
|
+
}) : [];
|
|
142
|
+
|
|
143
|
+
if (actions.length === 0) {
|
|
144
|
+
actions = undefined;
|
|
145
|
+
}
|
|
146
|
+
|
|
139
147
|
return {
|
|
140
148
|
id: generate([{
|
|
141
149
|
Facet: facetDefinition
|
|
@@ -144,13 +152,14 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
144
152
|
formatOptions: "overwrite"
|
|
145
153
|
}),
|
|
146
154
|
annotationPath: "/" + facetDefinition.fullyQualifiedName,
|
|
147
|
-
entitySet: sEntitySetPath
|
|
155
|
+
entitySet: sEntitySetPath,
|
|
156
|
+
actions: actions
|
|
148
157
|
};
|
|
149
158
|
}
|
|
150
159
|
|
|
151
160
|
_exports.getFormContainer = getFormContainer;
|
|
152
161
|
|
|
153
|
-
function getFormContainersForCollection(facetDefinition, converterContext) {
|
|
162
|
+
function getFormContainersForCollection(facetDefinition, converterContext, actions) {
|
|
154
163
|
var _facetDefinition$Face;
|
|
155
164
|
|
|
156
165
|
var formContainers = []; //TODO coll facet inside coll facet?
|
|
@@ -161,7 +170,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
161
170
|
return;
|
|
162
171
|
}
|
|
163
172
|
|
|
164
|
-
formContainers.push(getFormContainer(facet, converterContext));
|
|
173
|
+
formContainers.push(getFormContainer(facet, converterContext, actions));
|
|
165
174
|
});
|
|
166
175
|
return formContainers;
|
|
167
176
|
}
|
|
@@ -172,7 +181,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
172
181
|
|
|
173
182
|
_exports.isReferenceFacet = isReferenceFacet;
|
|
174
183
|
|
|
175
|
-
function createFormDefinition(facetDefinition, converterContext) {
|
|
184
|
+
function createFormDefinition(facetDefinition, converterContext, actions) {
|
|
176
185
|
var _facetDefinition$anno, _facetDefinition$anno2, _facetDefinition$anno3;
|
|
177
186
|
|
|
178
187
|
switch (facetDefinition.$Type) {
|
|
@@ -188,7 +197,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
188
197
|
|
|
189
198
|
return ((_childFacet$annotatio = childFacet.annotations) === null || _childFacet$annotatio === void 0 ? void 0 : (_childFacet$annotatio2 = _childFacet$annotatio.UI) === null || _childFacet$annotatio2 === void 0 ? void 0 : (_childFacet$annotatio3 = _childFacet$annotatio2.PartOfPreview) === null || _childFacet$annotatio3 === void 0 ? void 0 : _childFacet$annotatio3.valueOf()) === false;
|
|
190
199
|
}),
|
|
191
|
-
formContainers: getFormContainersForCollection(facetDefinition, converterContext)
|
|
200
|
+
formContainers: getFormContainersForCollection(facetDefinition, converterContext, actions)
|
|
192
201
|
};
|
|
193
202
|
return formCollectionDefinition;
|
|
194
203
|
|
|
@@ -199,7 +208,7 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
199
208
|
}),
|
|
200
209
|
useFormContainerLabels: false,
|
|
201
210
|
hasFacetsNotPartOfPreview: ((_facetDefinition$anno = facetDefinition.annotations) === null || _facetDefinition$anno === void 0 ? void 0 : (_facetDefinition$anno2 = _facetDefinition$anno.UI) === null || _facetDefinition$anno2 === void 0 ? void 0 : (_facetDefinition$anno3 = _facetDefinition$anno2.PartOfPreview) === null || _facetDefinition$anno3 === void 0 ? void 0 : _facetDefinition$anno3.valueOf()) === false,
|
|
202
|
-
formContainers: [getFormContainer(facetDefinition, converterContext)]
|
|
211
|
+
formContainers: [getFormContainer(facetDefinition, converterContext, actions)]
|
|
203
212
|
};
|
|
204
213
|
return formDefinition;
|
|
205
214
|
|
|
@@ -211,4 +220,4 @@ sap.ui.define(["../../helpers/ConfigurableObject", "../../helpers/ID", "../../he
|
|
|
211
220
|
_exports.createFormDefinition = createFormDefinition;
|
|
212
221
|
return _exports;
|
|
213
222
|
}, false);
|
|
214
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwibmFtZXMiOlsiRm9ybUVsZW1lbnRUeXBlIiwiZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtIiwidGV4dExpbmVzRGlzcGxheSIsInRleHRMaW5lc0VkaXQiLCJnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMiLCJmYWNldERlZmluaXRpb24iLCJjb252ZXJ0ZXJDb250ZXh0IiwiZm9ybUVsZW1lbnRzIiwicmVzb2x2ZWRUYXJnZXQiLCJnZXRFbnRpdHlUeXBlQW5ub3RhdGlvbiIsIlRhcmdldCIsInZhbHVlIiwiZm9ybUFubm90YXRpb24iLCJhbm5vdGF0aW9uIiwiZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyIsImZpZWxkIiwic2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCIsImdldFNlbWFudGljT2JqZWN0UGF0aCIsIiRUeXBlIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJwdXNoIiwia2V5IiwiS2V5SGVscGVyIiwiZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkIiwidHlwZSIsIkFubm90YXRpb24iLCJhbm5vdGF0aW9uUGF0aCIsImdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgiLCJmdWxseVF1YWxpZmllZE5hbWUiLCJzZW1hbnRpY09iamVjdFBhdGgiLCJmb3JtYXRPcHRpb25zIiwidGVybSIsIkRhdGEiLCJmb3JFYWNoIiwicXVhbGlmaWVyIiwiZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0IiwibWFuaWZlc3RXcmFwcGVyIiwiZ2V0TWFuaWZlc3RXcmFwcGVyIiwibWFuaWZlc3RGb3JtQ29udGFpbmVyIiwiZ2V0Rm9ybUNvbnRhaW5lciIsImZpZWxkcyIsIk9iamVjdCIsImtleXMiLCJmaWVsZElkIiwiRGVmYXVsdCIsInRlbXBsYXRlIiwibGFiZWwiLCJwb3NpdGlvbiIsInBsYWNlbWVudCIsIlBsYWNlbWVudCIsIkFmdGVyIiwic0VudGl0eVNldFBhdGgiLCJnZXRFbnRpdHlTZXQiLCJnZXRUYXJnZXRFbnRpdHlTZXRQYXRoIiwiZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCIsInRhcmdldE9iamVjdCIsImNvbnRhaW5zVGFyZ2V0IiwiZ2V0VGFyZ2V0T2JqZWN0UGF0aCIsImlkIiwiZ2VuZXJhdGUiLCJGYWNldCIsImluc2VydEN1c3RvbUVsZW1lbnRzIiwiZW50aXR5U2V0IiwiZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uIiwiZm9ybUNvbnRhaW5lcnMiLCJGYWNldHMiLCJmYWNldCIsImlzUmVmZXJlbmNlRmFjZXQiLCJjcmVhdGVGb3JtRGVmaW5pdGlvbiIsImZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiIsIkZvcm1JRCIsInVzZUZvcm1Db250YWluZXJMYWJlbHMiLCJoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3Iiwic29tZSIsImNoaWxkRmFjZXQiLCJQYXJ0T2ZQcmV2aWV3IiwiZm9ybURlZmluaXRpb24iLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUE0QllBLGU7O2FBQUFBLGU7QUFBQUEsSUFBQUEsZTtBQUFBQSxJQUFBQSxlO0tBQUFBLGUsS0FBQUEsZTs7OztBQW1DWjs7Ozs7QUFLQSxXQUFTQyw4QkFBVCxHQUE2RDtBQUM1RCxXQUFPO0FBQ05DLE1BQUFBLGdCQUFnQixFQUFFLENBRFo7QUFFTkMsTUFBQUEsYUFBYSxFQUFFO0FBRlQsS0FBUDtBQUlBOztBQUVELFdBQVNDLDhCQUFULENBQXdDQyxlQUF4QyxFQUE4RUMsZ0JBQTlFLEVBQTJJO0FBQzFJLFFBQU1DLFlBQXFDLEdBQUcsRUFBOUM7QUFDQSxRQUFNQyxjQUFjLEdBQUdGLGdCQUFnQixDQUFDRyx1QkFBakIsQ0FBeUNKLGVBQWUsQ0FBQ0ssTUFBaEIsQ0FBdUJDLEtBQWhFLENBQXZCO0FBQ0EsUUFBTUMsY0FBMkUsR0FBR0osY0FBYyxDQUFDSyxVQUFuRztBQUdBUCxJQUFBQSxnQkFBZ0IsR0FBR0UsY0FBYyxDQUFDRixnQkFBbEM7O0FBRUEs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dXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb2xsZWN0aW9uRmFjZXRUeXBlcyxcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcyxcblx0RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0RmFjZXRUeXBlcyxcblx0RmllbGRHcm91cCxcblx0SWRlbnRpZmljYXRpb24sXG5cdFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IEJpbmRpbmdFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IENvbmZpZ3VyYWJsZU9iamVjdCwgQ3VzdG9tRWxlbWVudCwgaW5zZXJ0Q3VzdG9tRWxlbWVudHMsIFBsYWNlbWVudCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgRm9ybUlEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHsgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiwgRm9ybWF0T3B0aW9uc1R5cGUgfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0U2VtYW50aWNPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvYW5ub3RhdGlvbnMvRGF0YUZpZWxkXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdEFubm90YXRpb24gPSBcIkFubm90YXRpb25cIlxufVxuXG5leHBvcnQgdHlwZSBCYXNlRm9ybUVsZW1lbnQgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdHR5cGU6IEZvcm1FbGVtZW50VHlwZTtcblx0bGFiZWw/OiBzdHJpbmc7XG5cdHZpc2libGU/OiBCaW5kaW5nRXhwcmVzc2lvbjxib29sZWFuPjtcblx0Zm9ybWF0T3B0aW9ucz86IEZvcm1hdE9wdGlvbnNUeXBlO1xufTtcblxuZXhwb3J0IHR5cGUgQW5ub3RhdGlvbkZvcm1FbGVtZW50ID0gQmFzZUZvcm1FbGVtZW50ICYge1xuXHRpZFByZWZpeD86IHN0cmluZztcblx0YW5ub3RhdGlvblBhdGg/OiBzdHJpbmc7XG5cdGlzVmFsdWVNdWx0aWxpbmVUZXh0PzogYm9vbGVhbjtcblx0c2VtYW50aWNPYmplY3RQYXRoPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgQ3VzdG9tRm9ybUVsZW1lbnQgPSBDdXN0b21FbGVtZW50PFxuXHRCYXNlRm9ybUVsZW1lbnQgJiB7XG5cdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQ7XG5cdFx0dGVtcGxhdGU6IHN0cmluZztcblx0fVxuPjtcblxuZXhwb3J0IHR5cGUgRm9ybUVsZW1lbnQgPSBDdXN0b21Gb3JtRWxlbWVudCB8IEFubm90YXRpb25Gb3JtRWxlbWVudDtcblxudHlwZSBGb3JtQ29udGFpbmVyID0ge1xuXHRpZD86IHN0cmluZztcblx0Zm9ybUVsZW1lbnRzOiBGb3JtRWxlbWVudFtdO1xuXHRhbm5vdGF0aW9uUGF0aDogc3RyaW5nO1xuXHRlbnRpdHlTZXQ/OiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIHtGb3JtYXRPcHRpb25zVHlwZX0gQ29sbGVjdGlvbiBvZiBmb3JtYXQgb3B0aW9ucyB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpOiBGb3JtYXRPcHRpb25zVHlwZSB7XG5cdHJldHVybiB7XG5cdFx0dGV4dExpbmVzRGlzcGxheTogMCxcblx0XHR0ZXh0TGluZXNFZGl0OiA0XG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyhmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBBbm5vdGF0aW9uRm9ybUVsZW1lbnRbXSB7XG5cdGNvbnN0IGZvcm1FbGVtZW50czogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10gPSBbXTtcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtQW5ub3RhdGlvbjogQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+IHwgQW5ub3RhdGlvblRlcm08RmllbGRHcm91cD4gPSByZXNvbHZlZFRhcmdldC5hbm5vdGF0aW9uIGFzXG5cdFx0fCBBbm5vdGF0aW9uVGVybTxJZGVudGlmaWNhdGlvbj5cblx0XHR8IEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+O1xuXHRjb252ZXJ0ZXJDb250ZXh0ID0gcmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dDtcblxuXHRmdW5jdGlvbiBnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKGZpZWxkOiBEYXRhRmllbGRBYnN0cmFjdFR5cGVzKSB7XG5cdFx0Y29uc3Qgc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCA9IGdldFNlbWFudGljT2JqZWN0UGF0aChjb252ZXJ0ZXJDb250ZXh0LCBmaWVsZCk7XG5cdFx0aWYgKFxuXHRcdFx0ZmllbGQuJFR5cGUgIT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckFjdGlvbiAmJlxuXHRcdFx0ZmllbGQuJFR5cGUgIT09IFVJQW5ub3RhdGlvblR5cGVzLkRhdGFGaWVsZEZvckludGVudEJhc2VkTmF2aWdhdGlvbiAmJlxuXHRcdFx0ZmllbGQuYW5ub3RhdGlvbnM/LlVJPy5IaWRkZW4/LnZhbHVlT2YoKSAhPT0gdHJ1ZVxuXHRcdCkge1xuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHRrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZmllbGQpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmaWVsZC5mdWxseVF1YWxpZmllZE5hbWUpICsgXCIvXCIsXG5cdFx0XHRcdHNlbWFudGljT2JqZWN0UGF0aDogc2VtYW50aWNPYmplY3RBbm5vdGF0aW9uUGF0aCxcblx0XHRcdFx0Zm9ybWF0T3B0aW9uczogZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtKClcblx0XHRcdH0pO1xuXHRcdH1cblx0fVxuXG5cdHN3aXRjaCAoZm9ybUFubm90YXRpb24/LnRlcm0pIHtcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLkZpZWxkR3JvdXA6XG5cdFx0XHQoZm9ybUFubm90YXRpb24gYXMgQW5ub3RhdGlvblRlcm08RmllbGRHcm91cD4pLkRhdGEuZm9yRWFjaChnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuSWRlbnRpZmljYXRpb246XG5cdFx0XHQoZm9ybUFubm90YXRpb24gYXMgQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+KS5mb3JFYWNoKGdldERhdGFGaWVsZHNGcm9tQW5ub3RhdGlvbnMpO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5EYXRhUG9pbnQ6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogXCJEYXRhUG9pbnQ6OlwiICsgKGZvcm1Bbm5vdGF0aW9uLnF1YWxpZmllciA/IGZvcm1Bbm5vdGF0aW9uLnF1YWxpZmllciA6IFwiXCIpLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuQW5ub3RhdGlvbixcblx0XHRcdFx0YW5ub3RhdGlvblBhdGg6IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aChmb3JtQW5ub3RhdGlvbi5mdWxseVF1YWxpZmllZE5hbWUpICsgXCIvXCJcblx0XHRcdH0pO1xuXHRcdFx0YnJlYWs7XG5cdFx0Y2FzZSBDb21tdW5pY2F0aW9uQW5ub3RhdGlvblRlcm1zLkNvbnRhY3Q6XG5cdFx0XHRmb3JtRWxlbWVudHMucHVzaCh7XG5cdFx0XHRcdC8vIGtleTogS2V5SGVscGVyLmdlbmVyYXRlS2V5RnJvbURhdGFGaWVsZChmb3JtQW5ub3RhdGlvbiksXG5cdFx0XHRcdGtleTogXCJDb250YWN0OjpcIiArIChmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwiKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZm9ybUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGRlZmF1bHQ6XG5cdFx0XHRicmVhaztcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KFxuXHRmYWNldERlZmluaXRpb246IFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHRcbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiB7XG5cdGNvbnN0IG1hbmlmZXN0V3JhcHBlciA9IGNvbnZlcnRlckNvbnRleHQuZ2V0TWFuaWZlc3RXcmFwcGVyKCk7XG5cdGNvbnN0IG1hbmlmZXN0Rm9ybUNvbnRhaW5lcjogRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiA9IG1hbmlmZXN0V3JhcHBlci5nZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUZvcm1FbGVtZW50PiA9IHt9O1xuXHRpZiAobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpIHtcblx0XHRPYmplY3Qua2V5cyhtYW5pZmVzdEZvcm1Db250YWluZXI/LmZpZWxkcykuZm9yRWFjaChmaWVsZElkID0+IHtcblx0XHRcdGZvcm1FbGVtZW50c1tmaWVsZElkXSA9IHtcblx0XHRcdFx0a2V5OiBmaWVsZElkLFxuXHRcdFx0XHR0eXBlOiBGb3JtRWxlbWVudFR5cGUuRGVmYXVsdCxcblx0XHRcdFx0dGVtcGxhdGU6IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0udGVtcGxhdGUsXG5cdFx0XHRcdGxhYmVsOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmxhYmVsLFxuXHRcdFx0XHRwb3NpdGlvbjogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5wb3NpdGlvbiB8fCB7XG5cdFx0XHRcdFx0cGxhY2VtZW50OiBQbGFjZW1lbnQuQWZ0ZXJcblx0XHRcdFx0fSxcblx0XHRcdFx0Zm9ybWF0T3B0aW9uczoge1xuXHRcdFx0XHRcdC4uLmdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpLFxuXHRcdFx0XHRcdC4uLm1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0uZm9ybWF0T3B0aW9uc1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH0pO1xuXHR9XG5cdHJldHVybiBmb3JtRWxlbWVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyKGZhY2V0RGVmaW5pdGlvbjogUmVmZXJlbmNlRmFjZXRUeXBlcywgY29udmVydGVyQ29udGV4dDogQ29udmVydGVyQ29udGV4dCk6IEZvcm1Db250YWluZXIge1xuXHQvL1RPRE8gZm9ybSBjb250YWluZXIgaWRcblx0Y29uc3QgcmVzb2x2ZWRUYXJnZXQgPSBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVR5cGVBbm5vdGF0aW9uKGZhY2V0RGVmaW5pdGlvbi5UYXJnZXQudmFsdWUpO1xuXHRsZXQgc0VudGl0eVNldFBhdGghOiBzdHJpbmc7XG5cdC8vIHJlc29sdmVkVGFyZ2V0IGRvZXNuJ3QgaGF2ZSBhIGVudGl0eVNldCBpbiBjYXNlIENvbnRhaW5tZW50cyBhbmQgUGFyYW10ZXJpemVkIHNlcnZpY2VzLlxuXHRpZiAoXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAmJlxuXHRcdHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KCkgIT09IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5U2V0KClcblx0KSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpKTtcblx0fSBlbHNlIGlmIChyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldERhdGFNb2RlbE9iamVjdFBhdGgoKS50YXJnZXRPYmplY3Q/LmNvbnRhaW5zVGFyZ2V0ID09PSB0cnVlKSB7XG5cdFx0c0VudGl0eVNldFBhdGggPSBnZXRUYXJnZXRPYmplY3RQYXRoKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLCBmYWxzZSk7XG5cdH1cblx0cmV0dXJuIHtcblx0XHRpZDogZ2VuZXJhdGUoW3sgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9XSksXG5cdFx0Zm9ybUVsZW1lbnRzOiBpbnNlcnRDdXN0b21FbGVtZW50cyhcblx0XHRcdGdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyhmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpLFxuXHRcdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbU1hbmlmZXN0KGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHR7IGZvcm1hdE9wdGlvbnM6IFwib3ZlcndyaXRlXCIgfVxuXHRcdCksXG5cdFx0YW5ub3RhdGlvblBhdGg6IFwiL1wiICsgZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSxcblx0XHRlbnRpdHlTZXQ6IHNFbnRpdHlTZXRQYXRoXG5cdH07XG59XG5cbmZ1bmN0aW9uIGdldEZvcm1Db250YWluZXJzRm9yQ29sbGVjdGlvbihmYWNldERlZmluaXRpb246IENvbGxlY3Rpb25GYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogRm9ybUNvbnRhaW5lcltdIHtcblx0Y29uc3QgZm9ybUNvbnRhaW5lcnM6IEZvcm1Db250YWluZXJbXSA9IFtdO1xuXHQvL1RPRE8gY29sbCBmYWNldCBpbnNpZGUgY29sbCBmYWNldD9cblx0ZmFjZXREZWZpbml0aW9uLkZhY2V0cz8uZm9yRWFjaChmYWNldCA9PiB7XG5cdFx0Ly8gSWdub3JlIGxldmVsIDMgY29sbGVjdGlvbiBmYWNldFxuXHRcdGlmIChmYWNldC4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuQ29sbGVjdGlvbkZhY2V0KSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGZvcm1Db250YWluZXJzLnB1c2goZ2V0Rm9ybUNvbnRhaW5lcihmYWNldCBhcyBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0KSk7XG5cdH0pO1xuXHRyZXR1cm4gZm9ybUNvbnRhaW5lcnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlZmVyZW5jZUZhY2V0KGZhY2V0RGVmaW5pdGlvbjogRmFjZXRUeXBlcyk6IGZhY2V0RGVmaW5pdGlvbiBpcyBSZWZlcmVuY2VGYWNldFR5cGVzIHtcblx0cmV0dXJuIGZhY2V0RGVmaW5pdGlvbi4kVHlwZSA9PT0gVUlBbm5vdGF0aW9uVHlwZXMuUmVmZXJlbmNlRmFjZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb3JtRGVmaW5pdGlvbihmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQpOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdGNvbnN0IGZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0aWQ6IEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IHRydWUsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5GYWNldHMuc29tZShcblx0XHRcdFx0XHRjaGlsZEZhY2V0ID0+IGNoaWxkRmFjZXQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlXG5cdFx0XHRcdCksXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtQ29sbGVjdGlvbkRlZmluaXRpb247XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDpcblx0XHRcdGNvbnN0IGZvcm1EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRpZDogRm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogZmFsc2UsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBbZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQpXVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtRGVmaW5pdGlvbjtcblx0XHRkZWZhdWx0OlxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBmb3JtIGJhc2VkIG9uIFJlZmVyZW5jZVVSTEZhY2V0XCIpO1xuXHR9XG59XG4iXX0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkZvcm0udHMiXSwibmFtZXMiOlsiRm9ybUVsZW1lbnRUeXBlIiwiZ2V0RGVmYXVsdEZvcm1hdE9wdGlvbnNGb3JGb3JtIiwidGV4dExpbmVzRWRpdCIsImdldEZvcm1FbGVtZW50c0Zyb21Bbm5vdGF0aW9ucyIsImZhY2V0RGVmaW5pdGlvbiIsImNvbnZlcnRlckNvbnRleHQiLCJmb3JtRWxlbWVudHMiLCJyZXNvbHZlZFRhcmdldCIsImdldEVudGl0eVR5cGVBbm5vdGF0aW9uIiwiVGFyZ2V0IiwidmFsdWUiLCJmb3JtQW5ub3RhdGlvbiIsImFubm90YXRpb24iLCJnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zIiwiZmllbGQiLCJzZW1hbnRpY09iamVjdEFubm90YXRpb25QYXRoIiwiZ2V0U2VtYW50aWNPYmplY3RQYXRoIiwiJFR5cGUiLCJhbm5vdGF0aW9ucyIsIlVJIiwiSGlkZGVuIiwidmFsdWVPZiIsInB1c2giLCJrZXkiLCJLZXlIZWxwZXIiLCJnZW5lcmF0ZUtleUZyb21EYXRhRmllbGQiLCJ0eXBlIiwiQW5ub3RhdGlvbiIsImFubm90YXRpb25QYXRoIiwiZ2V0RW50aXR5U2V0QmFzZWRBbm5vdGF0aW9uUGF0aCIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInNlbWFudGljT2JqZWN0UGF0aCIsImZvcm1hdE9wdGlvbnMiLCJ0ZXJtIiwiRGF0YSIsImZvckVhY2giLCJxdWFsaWZpZXIiLCJnZXRGb3JtRWxlbWVudHNGcm9tTWFuaWZlc3QiLCJtYW5pZmVzdFdyYXBwZXIiLCJnZXRNYW5pZmVzdFdyYXBwZXIiLCJtYW5pZmVzdEZvcm1Db250YWluZXIiLCJnZXRGb3JtQ29udGFpbmVyIiwiZmllbGRzIiwiT2JqZWN0Iiwia2V5cyIsImZpZWxkSWQiLCJpZCIsIkRlZmF1bHQiLCJ0ZW1wbGF0ZSIsImxhYmVsIiwicG9zaXRpb24iLCJwbGFjZW1lbnQiLCJQbGFjZW1lbnQiLCJBZnRlciIsImFjdGlvbnMiLCJzRW50aXR5U2V0UGF0aCIsImdldEVudGl0eVNldCIsImdldFRhcmdldEVudGl0eVNldFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RQYXRoIiwidGFyZ2V0T2JqZWN0IiwiY29udGFpbnNUYXJnZXQiLCJnZXRUYXJnZXRPYmplY3RQYXRoIiwidW5kZWZpbmVkIiwiZmlsdGVyIiwiYWN0aW9uIiwiZmFjZXROYW1lIiwibGVuZ3RoIiwiZ2VuZXJhdGUiLCJGYWNldCIsImluc2VydEN1c3RvbUVsZW1lbnRzIiwiZW50aXR5U2V0IiwiZ2V0Rm9ybUNvbnRhaW5lcnNGb3JDb2xsZWN0aW9uIiwiZm9ybUNvbnRhaW5lcnMiLCJGYWNldHMiLCJmYWNldCIsImlzUmVmZXJlbmNlRmFjZXQiLCJjcmVhdGVGb3JtRGVmaW5pdGlvbiIsImZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiIsIkZvcm1JRCIsInVzZUZvcm1Db250YWluZXJMYWJlbHMiLCJoYXNGYWNldHNOb3RQYXJ0T2ZQcmV2aWV3Iiwic29tZSIsImNoaWxkRmFjZXQiLCJQYXJ0T2ZQcmV2aWV3IiwiZm9ybURlZmluaXRpb24iLCJFcnJvciJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7TUEyQllBLGU7O2FBQUFBLGU7QUFBQUEsSUFBQUEsZTtBQUFBQSxJQUFBQSxlO0tBQUFBLGUsS0FBQUEsZTs7OztBQXFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBU0MsOEJBQVQsR0FBNkQ7QUFDNUQsV0FBTztBQUNOQyxNQUFBQSxhQUFhLEVBQUU7QUFEVCxLQUFQO0FBR0E7O0FBRUQsV0FBU0MsOEJBQVQsQ0FBd0NDLGVBQXhDLEVBQThFQyxnQkFBOUUsRUFBMkk7QUFDMUksUUFBTUMsWUFBcUMsR0FBRyxFQUE5QztBQUNBLFFBQU1DLGNBQWMsR0FBR0YsZ0JBQWdCLENBQUNHLHVCQUFqQixDQUF5Q0osZUFBZSxDQUFDSyxNQUFoQixDQUF1QkMsS0FBaEUsQ0FBdkI7QUFDQSxRQUFNQyxjQUEyRSxHQUFHSixjQUFjLENBQUNLLFVBQW5HO0FBR0FQLElB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QUNDLFlBQU1PLGNBQWMsR0FBRztBQUN0QnRDLFVBQUFBLEVBQUUsRUFBRWdDLE1BQU0sQ0FBQztBQUFFVixZQUFBQSxLQUFLLEVBQUVoRTtBQUFULFdBQUQsQ0FEWTtBQUV0QjJFLFVBQUFBLHNCQUFzQixFQUFFLEtBRkY7QUFHdEJDLFVBQUFBLHlCQUF5QixFQUFFLDBCQUFBNUUsZUFBZSxDQUFDYyxXQUFoQiwwR0FBNkJDLEVBQTdCLDRHQUFpQ2dFLGFBQWpDLGtGQUFnRDlELE9BQWhELFFBQThELEtBSG5FO0FBSXRCbUQsVUFBQUEsY0FBYyxFQUFFLENBQUMvQixnQkFBZ0IsQ0FBQ3JDLGVBQUQsRUFBa0JDLGdCQUFsQixFQUFvQ2lELE9BQXBDLENBQWpCO0FBSk0sU0FBdkI7QUFNQSxlQUFPOEIsY0FBUDs7QUFDRDtBQUNDLGNBQU0sSUFBSUMsS0FBSixDQUFVLCtDQUFWLENBQU47QUFyQkY7QUF1QkEiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb2xsZWN0aW9uRmFjZXRUeXBlcyxcblx0Q29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcyxcblx0RGF0YUZpZWxkQWJzdHJhY3RUeXBlcyxcblx0RmFjZXRUeXBlcyxcblx0RmllbGRHcm91cCxcblx0SWRlbnRpZmljYXRpb24sXG5cdFJlZmVyZW5jZUZhY2V0VHlwZXMsXG5cdFVJQW5ub3RhdGlvblRlcm1zLFxuXHRVSUFubm90YXRpb25UeXBlc1xufSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB7IEJpbmRpbmdFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQmluZGluZ0V4cHJlc3Npb25cIjtcbmltcG9ydCB7IENvbmZpZ3VyYWJsZU9iamVjdCwgQ3VzdG9tRWxlbWVudCwgaW5zZXJ0Q3VzdG9tRWxlbWVudHMsIFBsYWNlbWVudCB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0NvbmZpZ3VyYWJsZU9iamVjdFwiO1xuaW1wb3J0IHsgRm9ybUlEIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvSURcIjtcbmltcG9ydCB7IEtleUhlbHBlciB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL0tleVwiO1xuaW1wb3J0IHsgRm9ybU1hbmlmZXN0Q29uZmlndXJhdGlvbiwgRm9ybWF0T3B0aW9uc1R5cGUgfSBmcm9tIFwiLi4vLi4vTWFuaWZlc3RTZXR0aW5nc1wiO1xuaW1wb3J0IHsgZ2V0U2VtYW50aWNPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvYW5ub3RhdGlvbnMvRGF0YUZpZWxkXCI7XG5pbXBvcnQgeyBnZXRUYXJnZXRFbnRpdHlTZXRQYXRoLCBnZXRUYXJnZXRPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwiLi4vLi4vLi4vaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IENvbnZlcnRlckNvbnRleHQgZnJvbSBcIi4uLy4uL0NvbnZlcnRlckNvbnRleHRcIjtcbmltcG9ydCB7IEJhc2VBY3Rpb24sIENvbnZlcnRlckFjdGlvbiB9IGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL2NvbnRyb2xzL0NvbW1vbi9BY3Rpb25cIjtcblxuZXhwb3J0IHR5cGUgRm9ybURlZmluaXRpb24gPSB7XG5cdGlkOiBzdHJpbmc7XG5cdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IGJvb2xlYW47XG5cdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgZW51bSBGb3JtRWxlbWVudFR5cGUge1xuXHREZWZhdWx0ID0gXCJEZWZhdWx0XCIsXG5cdEFubm90YXRpb24gPSBcIkFubm90YXRpb25cIlxufVxuXG5leHBvcnQgdHlwZSBCYXNlRm9ybUVsZW1lbnQgPSBDb25maWd1cmFibGVPYmplY3QgJiB7XG5cdGlkPzogc3RyaW5nO1xuXHR0eXBlOiBGb3JtRWxlbWVudFR5cGU7XG5cdGxhYmVsPzogc3RyaW5nO1xuXHR2aXNpYmxlPzogQmluZGluZ0V4cHJlc3Npb248Ym9vbGVhbj47XG5cdGZvcm1hdE9wdGlvbnM/OiBGb3JtYXRPcHRpb25zVHlwZTtcbn07XG5cbmV4cG9ydCB0eXBlIEFubm90YXRpb25Gb3JtRWxlbWVudCA9IEJhc2VGb3JtRWxlbWVudCAmIHtcblx0aWRQcmVmaXg/OiBzdHJpbmc7XG5cdGFubm90YXRpb25QYXRoPzogc3RyaW5nO1xuXHRpc1ZhbHVlTXVsdGlsaW5lVGV4dD86IGJvb2xlYW47XG5cdHNlbWFudGljT2JqZWN0UGF0aD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEN1c3RvbUZvcm1FbGVtZW50ID0gQ3VzdG9tRWxlbWVudDxcblx0QmFzZUZvcm1FbGVtZW50ICYge1xuXHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5EZWZhdWx0O1xuXHRcdHRlbXBsYXRlOiBzdHJpbmc7XG5cdH1cbj47XG5cbmV4cG9ydCB0eXBlIEZvcm1FbGVtZW50ID0gQ3VzdG9tRm9ybUVsZW1lbnQgfCBBbm5vdGF0aW9uRm9ybUVsZW1lbnQ7XG5cbnR5cGUgRm9ybUNvbnRhaW5lciA9IHtcblx0aWQ/OiBzdHJpbmc7XG5cdGZvcm1FbGVtZW50czogRm9ybUVsZW1lbnRbXTtcblx0YW5ub3RhdGlvblBhdGg6IHN0cmluZztcblx0ZW50aXR5U2V0Pzogc3RyaW5nO1xuXHRhY3Rpb25zPzogQ29udmVydGVyQWN0aW9uW10gfCBCYXNlQWN0aW9uW107XG59O1xuXG4vKipcbiAqIFJldHVybnMgZGVmYXVsdCBmb3JtYXQgb3B0aW9ucyBmb3IgdGV4dCBmaWVsZHMgb24gYSBmb3JtLlxuICpcbiAqIEByZXR1cm5zIHtGb3JtYXRPcHRpb25zVHlwZX0gQ29sbGVjdGlvbiBvZiBmb3JtYXQgb3B0aW9ucyB3aXRoIGRlZmF1bHQgdmFsdWVzXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpOiBGb3JtYXRPcHRpb25zVHlwZSB7XG5cdHJldHVybiB7XG5cdFx0dGV4dExpbmVzRWRpdDogNFxuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtRWxlbWVudHNGcm9tQW5ub3RhdGlvbnMoZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLCBjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0KTogQW5ub3RhdGlvbkZvcm1FbGVtZW50W10ge1xuXHRjb25zdCBmb3JtRWxlbWVudHM6IEFubm90YXRpb25Gb3JtRWxlbWVudFtdID0gW107XG5cdGNvbnN0IHJlc29sdmVkVGFyZ2V0ID0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlUeXBlQW5ub3RhdGlvbihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUFubm90YXRpb246IEFubm90YXRpb25UZXJtPElkZW50aWZpY2F0aW9uPiB8IEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+ID0gcmVzb2x2ZWRUYXJnZXQuYW5ub3RhdGlvbiBhc1xuXHRcdHwgQW5ub3RhdGlvblRlcm08SWRlbnRpZmljYXRpb24+XG5cdFx0fCBBbm5vdGF0aW9uVGVybTxGaWVsZEdyb3VwPjtcblx0Y29udmVydGVyQ29udGV4dCA9IHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQ7XG5cblx0ZnVuY3Rpb24gZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyhmaWVsZDogRGF0YUZpZWxkQWJzdHJhY3RUeXBlcykge1xuXHRcdGNvbnN0IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGggPSBnZXRTZW1hbnRpY09iamVjdFBhdGgoY29udmVydGVyQ29udGV4dCwgZmllbGQpO1xuXHRcdGlmIChcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JBY3Rpb24gJiZcblx0XHRcdGZpZWxkLiRUeXBlICE9PSBVSUFubm90YXRpb25UeXBlcy5EYXRhRmllbGRGb3JJbnRlbnRCYXNlZE5hdmlnYXRpb24gJiZcblx0XHRcdGZpZWxkLmFubm90YXRpb25zPy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWVcblx0XHQpIHtcblx0XHRcdGZvcm1FbGVtZW50cy5wdXNoKHtcblx0XHRcdFx0a2V5OiBLZXlIZWxwZXIuZ2VuZXJhdGVLZXlGcm9tRGF0YUZpZWxkKGZpZWxkKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZmllbGQuZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiLFxuXHRcdFx0XHRzZW1hbnRpY09iamVjdFBhdGg6IHNlbWFudGljT2JqZWN0QW5ub3RhdGlvblBhdGgsXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IGdldERlZmF1bHRGb3JtYXRPcHRpb25zRm9yRm9ybSgpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRzd2l0Y2ggKGZvcm1Bbm5vdGF0aW9uPy50ZXJtKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UZXJtcy5GaWVsZEdyb3VwOlxuXHRcdFx0KGZvcm1Bbm5vdGF0aW9uIGFzIEFubm90YXRpb25UZXJtPEZpZWxkR3JvdXA+KS5EYXRhLmZvckVhY2goZ2V0RGF0YUZpZWxkc0Zyb21Bbm5vdGF0aW9ucyk7XG5cdFx0XHRicmVhaztcblx0XHRjYXNlIFVJQW5ub3RhdGlvblRlcm1zLklkZW50aWZpY2F0aW9uOlxuXHRcdFx0KGZvcm1Bbm5vdGF0aW9uIGFzIEFubm90YXRpb25UZXJtPElkZW50aWZpY2F0aW9uPikuZm9yRWFjaChnZXREYXRhRmllbGRzRnJvbUFubm90YXRpb25zKTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgVUlBbm5vdGF0aW9uVGVybXMuRGF0YVBvaW50OlxuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHQvLyBrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZm9ybUFubm90YXRpb24pLFxuXHRcdFx0XHRrZXk6IFwiRGF0YVBvaW50OjpcIiArIChmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgPyBmb3JtQW5ub3RhdGlvbi5xdWFsaWZpZXIgOiBcIlwiKSxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkFubm90YXRpb24sXG5cdFx0XHRcdGFubm90YXRpb25QYXRoOiBjb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldEJhc2VkQW5ub3RhdGlvblBhdGgoZm9ybUFubm90YXRpb24uZnVsbHlRdWFsaWZpZWROYW1lKSArIFwiL1wiXG5cdFx0XHR9KTtcblx0XHRcdGJyZWFrO1xuXHRcdGNhc2UgQ29tbXVuaWNhdGlvbkFubm90YXRpb25UZXJtcy5Db250YWN0OlxuXHRcdFx0Zm9ybUVsZW1lbnRzLnB1c2goe1xuXHRcdFx0XHQvLyBrZXk6IEtleUhlbHBlci5nZW5lcmF0ZUtleUZyb21EYXRhRmllbGQoZm9ybUFubm90YXRpb24pLFxuXHRcdFx0XHRrZXk6IFwiQ29udGFjdDo6XCIgKyAoZm9ybUFubm90YXRpb24ucXVhbGlmaWVyID8gZm9ybUFubm90YXRpb24ucXVhbGlmaWVyIDogXCJcIiksXG5cdFx0XHRcdHR5cGU6IEZvcm1FbGVtZW50VHlwZS5Bbm5vdGF0aW9uLFxuXHRcdFx0XHRhbm5vdGF0aW9uUGF0aDogY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXRCYXNlZEFubm90YXRpb25QYXRoKGZvcm1Bbm5vdGF0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgKyBcIi9cIlxuXHRcdFx0fSk7XG5cdFx0XHRicmVhaztcblx0XHRkZWZhdWx0OlxuXHRcdFx0YnJlYWs7XG5cdH1cblx0cmV0dXJuIGZvcm1FbGVtZW50cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1FbGVtZW50c0Zyb21NYW5pZmVzdChcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0XG4pOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21Gb3JtRWxlbWVudD4ge1xuXHRjb25zdCBtYW5pZmVzdFdyYXBwZXIgPSBjb252ZXJ0ZXJDb250ZXh0LmdldE1hbmlmZXN0V3JhcHBlcigpO1xuXHRjb25zdCBtYW5pZmVzdEZvcm1Db250YWluZXI6IEZvcm1NYW5pZmVzdENvbmZpZ3VyYXRpb24gPSBtYW5pZmVzdFdyYXBwZXIuZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24uVGFyZ2V0LnZhbHVlKTtcblx0Y29uc3QgZm9ybUVsZW1lbnRzOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21Gb3JtRWxlbWVudD4gPSB7fTtcblx0aWYgKG1hbmlmZXN0Rm9ybUNvbnRhaW5lcj8uZmllbGRzKSB7XG5cdFx0T2JqZWN0LmtleXMobWFuaWZlc3RGb3JtQ29udGFpbmVyPy5maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cdFx0XHRmb3JtRWxlbWVudHNbZmllbGRJZF0gPSB7XG5cdFx0XHRcdGtleTogZmllbGRJZCxcblx0XHRcdFx0aWQ6IFwiQ3VzdG9tRm9ybUVsZW1lbnQ6OlwiICsgZmllbGRJZCxcblx0XHRcdFx0dHlwZTogRm9ybUVsZW1lbnRUeXBlLkRlZmF1bHQsXG5cdFx0XHRcdHRlbXBsYXRlOiBtYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLnRlbXBsYXRlLFxuXHRcdFx0XHRsYWJlbDogbWFuaWZlc3RGb3JtQ29udGFpbmVyLmZpZWxkc1tmaWVsZElkXS5sYWJlbCxcblx0XHRcdFx0cG9zaXRpb246IG1hbmlmZXN0Rm9ybUNvbnRhaW5lci5maWVsZHNbZmllbGRJZF0ucG9zaXRpb24gfHwge1xuXHRcdFx0XHRcdHBsYWNlbWVudDogUGxhY2VtZW50LkFmdGVyXG5cdFx0XHRcdH0sXG5cdFx0XHRcdGZvcm1hdE9wdGlvbnM6IHtcblx0XHRcdFx0XHQuLi5nZXREZWZhdWx0Rm9ybWF0T3B0aW9uc0ZvckZvcm0oKSxcblx0XHRcdFx0XHQuLi5tYW5pZmVzdEZvcm1Db250YWluZXIuZmllbGRzW2ZpZWxkSWRdLmZvcm1hdE9wdGlvbnNcblx0XHRcdFx0fVxuXHRcdFx0fTtcblx0XHR9KTtcblx0fVxuXHRyZXR1cm4gZm9ybUVsZW1lbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybUNvbnRhaW5lcihcblx0ZmFjZXREZWZpbml0aW9uOiBSZWZlcmVuY2VGYWNldFR5cGVzLFxuXHRjb252ZXJ0ZXJDb250ZXh0OiBDb252ZXJ0ZXJDb250ZXh0LFxuXHRhY3Rpb25zOiBCYXNlQWN0aW9uW10gfCBDb252ZXJ0ZXJBY3Rpb25bXSB8IHVuZGVmaW5lZFxuKTogRm9ybUNvbnRhaW5lciB7XG5cdC8vVE9ETyBmb3JtIGNvbnRhaW5lciBpZFxuXHRjb25zdCByZXNvbHZlZFRhcmdldCA9IGNvbnZlcnRlckNvbnRleHQuZ2V0RW50aXR5VHlwZUFubm90YXRpb24oZmFjZXREZWZpbml0aW9uLlRhcmdldC52YWx1ZSk7XG5cdGxldCBzRW50aXR5U2V0UGF0aCE6IHN0cmluZztcblx0Ly8gcmVzb2x2ZWRUYXJnZXQgZG9lc24ndCBoYXZlIGEgZW50aXR5U2V0IGluIGNhc2UgQ29udGFpbm1lbnRzIGFuZCBQYXJhbXRlcml6ZWQgc2VydmljZXMuXG5cdGlmIChcblx0XHRyZXNvbHZlZFRhcmdldC5jb252ZXJ0ZXJDb250ZXh0LmdldEVudGl0eVNldCgpICYmXG5cdFx0cmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKSAhPT0gY29udmVydGVyQ29udGV4dC5nZXRFbnRpdHlTZXQoKVxuXHQpIHtcblx0XHRzRW50aXR5U2V0UGF0aCA9IGdldFRhcmdldEVudGl0eVNldFBhdGgocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCkpO1xuXHR9IGVsc2UgaWYgKHJlc29sdmVkVGFyZ2V0LmNvbnZlcnRlckNvbnRleHQuZ2V0RGF0YU1vZGVsT2JqZWN0UGF0aCgpLnRhcmdldE9iamVjdD8uY29udGFpbnNUYXJnZXQgPT09IHRydWUpIHtcblx0XHRzRW50aXR5U2V0UGF0aCA9IGdldFRhcmdldE9iamVjdFBhdGgocmVzb2x2ZWRUYXJnZXQuY29udmVydGVyQ29udGV4dC5nZXREYXRhTW9kZWxPYmplY3RQYXRoKCksIGZhbHNlKTtcblx0fVxuXHRhY3Rpb25zID0gYWN0aW9ucyAhPT0gdW5kZWZpbmVkID8gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IGFjdGlvbi5mYWNldE5hbWUgPT0gZmFjZXREZWZpbml0aW9uLmZ1bGx5UXVhbGlmaWVkTmFtZSkgOiBbXTtcblx0aWYgKGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG5cdFx0YWN0aW9ucyA9IHVuZGVmaW5lZDtcblx0fVxuXHRyZXR1cm4ge1xuXHRcdGlkOiBnZW5lcmF0ZShbeyBGYWNldDogZmFjZXREZWZpbml0aW9uIH1dKSxcblx0XHRmb3JtRWxlbWVudHM6IGluc2VydEN1c3RvbUVsZW1lbnRzKFxuXHRcdFx0Z2V0Rm9ybUVsZW1lbnRzRnJvbUFubm90YXRpb25zKGZhY2V0RGVmaW5pdGlvbiwgY29udmVydGVyQ29udGV4dCksXG5cdFx0XHRnZXRGb3JtRWxlbWVudHNGcm9tTWFuaWZlc3QoZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0KSxcblx0XHRcdHsgZm9ybWF0T3B0aW9uczogXCJvdmVyd3JpdGVcIiB9XG5cdFx0KSxcblx0XHRhbm5vdGF0aW9uUGF0aDogXCIvXCIgKyBmYWNldERlZmluaXRpb24uZnVsbHlRdWFsaWZpZWROYW1lLFxuXHRcdGVudGl0eVNldDogc0VudGl0eVNldFBhdGgsXG5cdFx0YWN0aW9uczogYWN0aW9uc1xuXHR9O1xufVxuXG5mdW5jdGlvbiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oXG5cdGZhY2V0RGVmaW5pdGlvbjogQ29sbGVjdGlvbkZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtQ29udGFpbmVyW10ge1xuXHRjb25zdCBmb3JtQ29udGFpbmVyczogRm9ybUNvbnRhaW5lcltdID0gW107XG5cdC8vVE9ETyBjb2xsIGZhY2V0IGluc2lkZSBjb2xsIGZhY2V0P1xuXHRmYWNldERlZmluaXRpb24uRmFjZXRzPy5mb3JFYWNoKGZhY2V0ID0+IHtcblx0XHQvLyBJZ25vcmUgbGV2ZWwgMyBjb2xsZWN0aW9uIGZhY2V0XG5cdFx0aWYgKGZhY2V0LiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Zm9ybUNvbnRhaW5lcnMucHVzaChnZXRGb3JtQ29udGFpbmVyKGZhY2V0IGFzIFJlZmVyZW5jZUZhY2V0VHlwZXMsIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpKTtcblx0fSk7XG5cdHJldHVybiBmb3JtQ29udGFpbmVycztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVmZXJlbmNlRmFjZXQoZmFjZXREZWZpbml0aW9uOiBGYWNldFR5cGVzKTogZmFjZXREZWZpbml0aW9uIGlzIFJlZmVyZW5jZUZhY2V0VHlwZXMge1xuXHRyZXR1cm4gZmFjZXREZWZpbml0aW9uLiRUeXBlID09PSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUZvcm1EZWZpbml0aW9uKFxuXHRmYWNldERlZmluaXRpb246IEZhY2V0VHlwZXMsXG5cdGNvbnZlcnRlckNvbnRleHQ6IENvbnZlcnRlckNvbnRleHQsXG5cdGFjdGlvbnM6IEJhc2VBY3Rpb25bXSB8IENvbnZlcnRlckFjdGlvbltdXG4pOiBGb3JtRGVmaW5pdGlvbiB7XG5cdHN3aXRjaCAoZmFjZXREZWZpbml0aW9uLiRUeXBlKSB7XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5Db2xsZWN0aW9uRmFjZXQ6XG5cdFx0XHQvLyBLZWVwIG9ubHkgdmFsaWQgY2hpbGRyZW5cblx0XHRcdGNvbnN0IGZvcm1Db2xsZWN0aW9uRGVmaW5pdGlvbiA9IHtcblx0XHRcdFx0aWQ6IEZvcm1JRCh7IEZhY2V0OiBmYWNldERlZmluaXRpb24gfSksXG5cdFx0XHRcdHVzZUZvcm1Db250YWluZXJMYWJlbHM6IHRydWUsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5GYWNldHMuc29tZShcblx0XHRcdFx0XHRjaGlsZEZhY2V0ID0+IGNoaWxkRmFjZXQuYW5ub3RhdGlvbnM/LlVJPy5QYXJ0T2ZQcmV2aWV3Py52YWx1ZU9mKCkgPT09IGZhbHNlXG5cdFx0XHRcdCksXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBnZXRGb3JtQ29udGFpbmVyc0ZvckNvbGxlY3Rpb24oZmFjZXREZWZpbml0aW9uLCBjb252ZXJ0ZXJDb250ZXh0LCBhY3Rpb25zKVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtQ29sbGVjdGlvbkRlZmluaXRpb247XG5cdFx0Y2FzZSBVSUFubm90YXRpb25UeXBlcy5SZWZlcmVuY2VGYWNldDpcblx0XHRcdGNvbnN0IGZvcm1EZWZpbml0aW9uID0ge1xuXHRcdFx0XHRpZDogRm9ybUlEKHsgRmFjZXQ6IGZhY2V0RGVmaW5pdGlvbiB9KSxcblx0XHRcdFx0dXNlRm9ybUNvbnRhaW5lckxhYmVsczogZmFsc2UsXG5cdFx0XHRcdGhhc0ZhY2V0c05vdFBhcnRPZlByZXZpZXc6IGZhY2V0RGVmaW5pdGlvbi5hbm5vdGF0aW9ucz8uVUk/LlBhcnRPZlByZXZpZXc/LnZhbHVlT2YoKSA9PT0gZmFsc2UsXG5cdFx0XHRcdGZvcm1Db250YWluZXJzOiBbZ2V0Rm9ybUNvbnRhaW5lcihmYWNldERlZmluaXRpb24sIGNvbnZlcnRlckNvbnRleHQsIGFjdGlvbnMpXVxuXHRcdFx0fTtcblx0XHRcdHJldHVybiBmb3JtRGVmaW5pdGlvbjtcblx0XHRkZWZhdWx0OlxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGNyZWF0ZSBmb3JtIGJhc2VkIG9uIFJlZmVyZW5jZVVSTEZhY2V0XCIpO1xuXHR9XG59XG4iXX0=
|
|
@@ -19,6 +19,7 @@ import { getSemanticObjectPath } from "sap/fe/core/converters/annotations/DataFi
|
|
|
19
19
|
import { getTargetEntitySetPath, getTargetObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
20
20
|
import { generate } from "../../../helpers/StableIdHelper";
|
|
21
21
|
import ConverterContext from "../../ConverterContext";
|
|
22
|
+
import { BaseAction, ConverterAction } from "sap/fe/core/converters/controls/Common/Action";
|
|
22
23
|
|
|
23
24
|
export type FormDefinition = {
|
|
24
25
|
id: string;
|
|
@@ -32,6 +33,7 @@ export enum FormElementType {
|
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
export type BaseFormElement = ConfigurableObject & {
|
|
36
|
+
id?: string;
|
|
35
37
|
type: FormElementType;
|
|
36
38
|
label?: string;
|
|
37
39
|
visible?: BindingExpression<boolean>;
|
|
@@ -59,6 +61,7 @@ type FormContainer = {
|
|
|
59
61
|
formElements: FormElement[];
|
|
60
62
|
annotationPath: string;
|
|
61
63
|
entitySet?: string;
|
|
64
|
+
actions?: ConverterAction[] | BaseAction[];
|
|
62
65
|
};
|
|
63
66
|
|
|
64
67
|
/**
|
|
@@ -68,7 +71,6 @@ type FormContainer = {
|
|
|
68
71
|
*/
|
|
69
72
|
function getDefaultFormatOptionsForForm(): FormatOptionsType {
|
|
70
73
|
return {
|
|
71
|
-
textLinesDisplay: 0,
|
|
72
74
|
textLinesEdit: 4
|
|
73
75
|
};
|
|
74
76
|
}
|
|
@@ -138,6 +140,7 @@ export function getFormElementsFromManifest(
|
|
|
138
140
|
Object.keys(manifestFormContainer?.fields).forEach(fieldId => {
|
|
139
141
|
formElements[fieldId] = {
|
|
140
142
|
key: fieldId,
|
|
143
|
+
id: "CustomFormElement::" + fieldId,
|
|
141
144
|
type: FormElementType.Default,
|
|
142
145
|
template: manifestFormContainer.fields[fieldId].template,
|
|
143
146
|
label: manifestFormContainer.fields[fieldId].label,
|
|
@@ -154,7 +157,11 @@ export function getFormElementsFromManifest(
|
|
|
154
157
|
return formElements;
|
|
155
158
|
}
|
|
156
159
|
|
|
157
|
-
export function getFormContainer(
|
|
160
|
+
export function getFormContainer(
|
|
161
|
+
facetDefinition: ReferenceFacetTypes,
|
|
162
|
+
converterContext: ConverterContext,
|
|
163
|
+
actions: BaseAction[] | ConverterAction[] | undefined
|
|
164
|
+
): FormContainer {
|
|
158
165
|
//TODO form container id
|
|
159
166
|
const resolvedTarget = converterContext.getEntityTypeAnnotation(facetDefinition.Target.value);
|
|
160
167
|
let sEntitySetPath!: string;
|
|
@@ -167,6 +174,10 @@ export function getFormContainer(facetDefinition: ReferenceFacetTypes, converter
|
|
|
167
174
|
} else if (resolvedTarget.converterContext.getDataModelObjectPath().targetObject?.containsTarget === true) {
|
|
168
175
|
sEntitySetPath = getTargetObjectPath(resolvedTarget.converterContext.getDataModelObjectPath(), false);
|
|
169
176
|
}
|
|
177
|
+
actions = actions !== undefined ? actions.filter(action => action.facetName == facetDefinition.fullyQualifiedName) : [];
|
|
178
|
+
if (actions.length === 0) {
|
|
179
|
+
actions = undefined;
|
|
180
|
+
}
|
|
170
181
|
return {
|
|
171
182
|
id: generate([{ Facet: facetDefinition }]),
|
|
172
183
|
formElements: insertCustomElements(
|
|
@@ -175,11 +186,16 @@ export function getFormContainer(facetDefinition: ReferenceFacetTypes, converter
|
|
|
175
186
|
{ formatOptions: "overwrite" }
|
|
176
187
|
),
|
|
177
188
|
annotationPath: "/" + facetDefinition.fullyQualifiedName,
|
|
178
|
-
entitySet: sEntitySetPath
|
|
189
|
+
entitySet: sEntitySetPath,
|
|
190
|
+
actions: actions
|
|
179
191
|
};
|
|
180
192
|
}
|
|
181
193
|
|
|
182
|
-
function getFormContainersForCollection(
|
|
194
|
+
function getFormContainersForCollection(
|
|
195
|
+
facetDefinition: CollectionFacetTypes,
|
|
196
|
+
converterContext: ConverterContext,
|
|
197
|
+
actions: BaseAction[] | ConverterAction[]
|
|
198
|
+
): FormContainer[] {
|
|
183
199
|
const formContainers: FormContainer[] = [];
|
|
184
200
|
//TODO coll facet inside coll facet?
|
|
185
201
|
facetDefinition.Facets?.forEach(facet => {
|
|
@@ -187,7 +203,7 @@ function getFormContainersForCollection(facetDefinition: CollectionFacetTypes, c
|
|
|
187
203
|
if (facet.$Type === UIAnnotationTypes.CollectionFacet) {
|
|
188
204
|
return;
|
|
189
205
|
}
|
|
190
|
-
formContainers.push(getFormContainer(facet as ReferenceFacetTypes, converterContext));
|
|
206
|
+
formContainers.push(getFormContainer(facet as ReferenceFacetTypes, converterContext, actions));
|
|
191
207
|
});
|
|
192
208
|
return formContainers;
|
|
193
209
|
}
|
|
@@ -196,7 +212,11 @@ export function isReferenceFacet(facetDefinition: FacetTypes): facetDefinition i
|
|
|
196
212
|
return facetDefinition.$Type === UIAnnotationTypes.ReferenceFacet;
|
|
197
213
|
}
|
|
198
214
|
|
|
199
|
-
export function createFormDefinition(
|
|
215
|
+
export function createFormDefinition(
|
|
216
|
+
facetDefinition: FacetTypes,
|
|
217
|
+
converterContext: ConverterContext,
|
|
218
|
+
actions: BaseAction[] | ConverterAction[]
|
|
219
|
+
): FormDefinition {
|
|
200
220
|
switch (facetDefinition.$Type) {
|
|
201
221
|
case UIAnnotationTypes.CollectionFacet:
|
|
202
222
|
// Keep only valid children
|
|
@@ -206,7 +226,7 @@ export function createFormDefinition(facetDefinition: FacetTypes, converterConte
|
|
|
206
226
|
hasFacetsNotPartOfPreview: facetDefinition.Facets.some(
|
|
207
227
|
childFacet => childFacet.annotations?.UI?.PartOfPreview?.valueOf() === false
|
|
208
228
|
),
|
|
209
|
-
formContainers: getFormContainersForCollection(facetDefinition, converterContext)
|
|
229
|
+
formContainers: getFormContainersForCollection(facetDefinition, converterContext, actions)
|
|
210
230
|
};
|
|
211
231
|
return formCollectionDefinition;
|
|
212
232
|
case UIAnnotationTypes.ReferenceFacet:
|
|
@@ -214,7 +234,7 @@ export function createFormDefinition(facetDefinition: FacetTypes, converterConte
|
|
|
214
234
|
id: FormID({ Facet: facetDefinition }),
|
|
215
235
|
useFormContainerLabels: false,
|
|
216
236
|
hasFacetsNotPartOfPreview: facetDefinition.annotations?.UI?.PartOfPreview?.valueOf() === false,
|
|
217
|
-
formContainers: [getFormContainer(facetDefinition, converterContext)]
|
|
237
|
+
formContainers: [getFormContainer(facetDefinition, converterContext, actions)]
|
|
218
238
|
};
|
|
219
239
|
return formDefinition;
|
|
220
240
|
default:
|