@sapui5/sap.fe.templates 1.114.0 → 1.114.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/sap/fe/templates/.library +1 -1
- package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +18 -2
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
- package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +18 -1
- package/src/sap/fe/templates/ListReport/manifest.json +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +1 -14
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
- package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +0 -13
- package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +89 -36
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
- package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +94 -37
- package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
- package/src/sap/fe/templates/library-dbg.js +1 -1
- package/src/sap/fe/templates/library-preload.js +8 -8
- package/src/sap/fe/templates/library-preload.js.map +1 -1
- package/src/sap/fe/templates/library.js +1 -1
- package/src/sap/fe/templates/manifest.json +1 -1
- package/src/sap/fe/templates/messagebundle_ar.properties +3 -1
- package/src/sap/fe/templates/messagebundle_bg.properties +4 -2
- package/src/sap/fe/templates/messagebundle_ca.properties +3 -1
- package/src/sap/fe/templates/messagebundle_cs.properties +3 -1
- package/src/sap/fe/templates/messagebundle_cy.properties +3 -1
- package/src/sap/fe/templates/messagebundle_da.properties +3 -1
- package/src/sap/fe/templates/messagebundle_de.properties +3 -1
- package/src/sap/fe/templates/messagebundle_el.properties +3 -1
- package/src/sap/fe/templates/messagebundle_en.properties +3 -1
- package/src/sap/fe/templates/messagebundle_en_GB.properties +3 -1
- package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +3 -1
- package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +3 -1
- package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +3 -1
- package/src/sap/fe/templates/messagebundle_es.properties +3 -1
- package/src/sap/fe/templates/messagebundle_es_MX.properties +3 -1
- package/src/sap/fe/templates/messagebundle_et.properties +3 -1
- package/src/sap/fe/templates/messagebundle_fi.properties +6 -4
- package/src/sap/fe/templates/messagebundle_fr.properties +3 -1
- package/src/sap/fe/templates/messagebundle_fr_CA.properties +4 -2
- package/src/sap/fe/templates/messagebundle_hi.properties +3 -1
- package/src/sap/fe/templates/messagebundle_hr.properties +3 -1
- package/src/sap/fe/templates/messagebundle_hu.properties +3 -1
- package/src/sap/fe/templates/messagebundle_id.properties +3 -1
- package/src/sap/fe/templates/messagebundle_it.properties +6 -4
- package/src/sap/fe/templates/messagebundle_iw.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ja.properties +5 -3
- package/src/sap/fe/templates/messagebundle_kk.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ko.properties +3 -1
- package/src/sap/fe/templates/messagebundle_lt.properties +3 -1
- package/src/sap/fe/templates/messagebundle_lv.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ms.properties +3 -1
- package/src/sap/fe/templates/messagebundle_nl.properties +3 -1
- package/src/sap/fe/templates/messagebundle_no.properties +3 -1
- package/src/sap/fe/templates/messagebundle_pl.properties +3 -1
- package/src/sap/fe/templates/messagebundle_pt.properties +3 -1
- package/src/sap/fe/templates/messagebundle_pt_PT.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ro.properties +3 -1
- package/src/sap/fe/templates/messagebundle_ru.properties +3 -1
- package/src/sap/fe/templates/messagebundle_sh.properties +3 -1
- package/src/sap/fe/templates/messagebundle_sk.properties +3 -1
- package/src/sap/fe/templates/messagebundle_sl.properties +3 -1
- package/src/sap/fe/templates/messagebundle_sv.properties +3 -1
- package/src/sap/fe/templates/messagebundle_th.properties +3 -1
- package/src/sap/fe/templates/messagebundle_tr.properties +3 -1
- package/src/sap/fe/templates/messagebundle_uk.properties +3 -1
- package/src/sap/fe/templates/messagebundle_vi.properties +3 -1
- package/src/sap/fe/templates/messagebundle_zh_CN.properties +3 -1
- package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListReportController.controller.js","names":["sap","ui","define","Log","ObjectPath","ActionRuntime","CommonUtils","IntentBasedNavigation","InternalIntentBasedNavigation","InternalRouting","KPIManagement","MassEdit","Placeholder","Share","SideEffects","ViewState","ClassSupport","DeleteHelper","EditState","MessageStrip","ResourceModelHelper","StableIdHelper","CoreLibrary","PageController","ChartUtils","CommonHelper","DelegateUtil","FilterUtils","ExtensionAPI","TableScroller","ManagedObject","OverrideExecution","Device","StateUtil","hasher","ListReportTemplating","IntentBasedNavigationOverride","ShareOverrides","ViewStateOverrides","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_descriptor9","system","bindingParser","getResourceModel","usingExtension","publicExtension","privateExtension","finalExtension","extensible","defineUI5Class","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","TemplateContentView","InitialLoadMode","ListReportController","override","onAfterBinding","this","getView","getController","_onAfterBinding","getEntitySet","base","getCurrentEntitySet","After","_PageController","_this","_len","arguments","length","args","Array","_key","formatters","setALPControlMessageStrip","aIgnoredFields","bIsChart","oApplySupported","sText","oFilterBar","_getFilterBarControl","isArray","aIgnoredLabels","getLabels","data","bIsSearchIgnored","enableSearch","getALPText","getText","handlers","onFilterSearch","triggerSearch","onFiltersChanged","oEvent","oInternalModelContext","getBindingContext","onPendingFilters","appliedFiltersText","getAssignedFiltersText","filtersText","appliedFilterBinding","_this$getView$byId","byId","bindText","_this$getView$byId2","setText","getParameter","setProperty","onVariantSelected","oVM","getSource","currentVariantKey","oMultiModeControl","_getMultiModeControl","getParent","isA","invalidateContent","setFreezeContent","setTimeout","_shouldAutoTriggerSearch","_getApplyAutomaticallyOnVariant","getExtensionAPI","updateAppState","onVariantSaved","onSearch","oMdcChart","getChartControl","bHideDraft","getEditStateIsHideDraft","getConditions","_updateALPNotApplicableFields","oPageInternalModelContext","sTemplateContentView","getProperty","getPath","Chart","hasPendingChartChanges","Table","hasPendingTableChanges","retrieveExternalState","then","oExternalState","filterBarConditions","filter","catch","oError","error","getViewData","liveMode","phone","oDynamicPage","_getDynamicListReportControl","setHeaderExpanded","onChevronPressNavigateOutBound","oController","sOutboundTarget","oContext","sCreatePath","_intentBasedNavigation","onChartSelectionChanged","getContent","oTable","_getTable","aData","setChartFilters","rebind","onSegmentedButtonPressed","sSelectedKey","mParameters","oChart","oSegmentedButtonDelegate","onAfterRendering","aItems","oSegmentedButton","getItems","oItem","getKey","focus","removeEventDelegate","_getSegmentedButton","addEventDelegate","_updateTable","_updateChart","Hybrid","onFiltersSegmentedButtonPressed","isCompact","setVisible","_getVisualFilterBarControl","onStateChange","onDynamicPageTitleStateChanged","filterBar","getSegmentedButton","_proto","extensionAPI","onInit","apply","_hasMultiVisualizations","alpContentView","_getDefaultPath","desktop","getAppComponent","getRouterProxy","waitForRouteMatchBeforeNavigation","_setInitLoad","onExit","destroy","aTables","_getControls","isEditStateDirty","_this$_getMultiModeCo","_this$_getTable","oTableBinding","getRowBinding","_isFclEnabled","refresh","sUpdateTimer","fnUpdateTableActions","_updateTableActions","detachDataReceived","attachDataReceived","setEditStateProcessed","internalModelContext","viewId","getId","pageReady","waitFor","getAppStateHandler","applyAppState","onBeforeRendering","onPageReady","forceFocus","_setInitialFocus","getShellServices","setBackNavigation","onViewNeedsRefresh","_this$_getTable2","onAfterClear","aIBNActions","getIBNActions","oActionOperationAvailableMap","JSON","parse","parseCustomData","getCustomData","aSelectedContexts","getSelectedContexts","updateDeleteInfoForSelectedContexts","setActionEnablement","updateDataFieldForIBNButtonsVisibility","_scrollTablesToRow","sRowPath","scrollTableToRow","dynamicPage","isHeaderExpanded","getHeaderExpanded","getShowMessages","setShowMessages","firstEmptyMandatoryField","getFilterItems","find","oFilterItem","getRequired","_isInitLoadEnabled","_this$getView$byId3","_getFilterBarControlId","_this$_getTable3","focusRow","_this$_getTable4","_getPageTitleInformation","oManifestEntry","getManifestEntry","title","subtitle","subTitle","intent","icon","_getDynamicListReportControlId","_getAdaptationFilterBarControl","adaptationFilterBar","getInbuiltFilter","sControl","_ref","sSegmentedButtonId","_getControlFromPageModelProperty","sPath","_this$_getPageModel","controlId","_getPageModel","_this$_getPageModel2","_this$_getPageModel3","sVisualFilterBarId","generate","_getFilterBarVariantControl","_isMultiMode","_this$_getMultiModeCo2","_this$_getMultiModeCo3","oControl","getSelectedInnerControl","content","sKey","aControls","oTabMultiMode","indexOf","push","_this$_getPageModel4","defaultPath","getDefaultPath","_this$_getPageModel5","initLoadMode","initialLoad","Enabled","_this$_getPageModel6","_disableInitLoad","setSuspendSelection","_applyAutomaticallyOnStandardVariant","_this$_getPageModel7","variantManagementId","getVariantBackReference","getData","variantManagement","registerApplyAutomaticallyOnStandardVariant","_setShareModel","fnGetUser","get","oShareInfo","bookmarkTitle","document","bookmarkCustomUrl","sHash","getHash","window","location","href","isShareInJamActive","isJamActive","oTemplatePrivateModel","getOwnerComponent","getModel","mCache","ignoredFields","aCharts","sChartEntityPath","sChartEntitySet","sCacheKey","getNotApplicableFilters","_isFilterBarHidden","hideFilterBar","VariantManagement","variants","getVariants","currentVariant","variant","executeOnSelect","Auto","getStandardVariantKey","getCurrentVariantKey","oConditions","startsWith","standardVariant","isTableBound","oInnerChart","getControlDelegate","_getChart","isBound","getBindingInfo","sEntitySet","entitySet","setNoData","getOwnPropertyDescriptor"],"sources":["ListReportController-dbg.controller.js"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ListReportController.controller.js","names":["sap","ui","define","Log","ObjectPath","ActionRuntime","CommonUtils","IntentBasedNavigation","InternalIntentBasedNavigation","InternalRouting","KPIManagement","MassEdit","Placeholder","Share","SideEffects","ViewState","ClassSupport","DeleteHelper","EditState","MessageStrip","ResourceModelHelper","StableIdHelper","CoreLibrary","PageController","ChartUtils","CommonHelper","DelegateUtil","FilterUtils","ExtensionAPI","TableScroller","ManagedObject","OverrideExecution","Device","StateUtil","hasher","ListReportTemplating","IntentBasedNavigationOverride","ShareOverrides","ViewStateOverrides","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_dec9","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_dec18","_dec19","_dec20","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","_descriptor8","_descriptor9","system","bindingParser","getResourceModel","usingExtension","publicExtension","privateExtension","finalExtension","extensible","defineUI5Class","_initializerDefineProperty","target","property","descriptor","context","Object","defineProperty","enumerable","configurable","writable","value","initializer","call","_assertThisInitialized","self","ReferenceError","_inheritsLoose","subClass","superClass","prototype","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","_applyDecoratedDescriptor","decorators","desc","keys","forEach","key","slice","reverse","reduce","decorator","undefined","_initializerWarningHelper","Error","TemplateContentView","InitialLoadMode","ListReportController","override","onAfterBinding","this","getView","getController","_onAfterBinding","getEntitySet","base","getCurrentEntitySet","After","_PageController","_this","_len","arguments","length","args","Array","_key","formatters","setALPControlMessageStrip","aIgnoredFields","bIsChart","oApplySupported","sText","oFilterBar","_getFilterBarControl","isArray","aIgnoredLabels","getLabels","data","bIsSearchIgnored","enableSearch","getALPText","getText","handlers","onFilterSearch","triggerSearch","onFiltersChanged","oEvent","oInternalModelContext","getBindingContext","onPendingFilters","appliedFiltersText","getAssignedFiltersText","filtersText","appliedFilterBinding","_this$getView$byId","byId","bindText","_this$getView$byId2","setText","getParameter","setProperty","onVariantSelected","oVM","getSource","currentVariantKey","oMultiModeControl","_getMultiModeControl","getParent","isA","invalidateContent","setFreezeContent","setTimeout","_shouldAutoTriggerSearch","_getApplyAutomaticallyOnVariant","getExtensionAPI","updateAppState","onVariantSaved","onSearch","oMdcChart","getChartControl","bHideDraft","getEditStateIsHideDraft","getConditions","_updateALPNotApplicableFields","oPageInternalModelContext","sTemplateContentView","getProperty","getPath","Chart","hasPendingChartChanges","Table","hasPendingTableChanges","retrieveExternalState","then","oExternalState","filterBarConditions","filter","catch","oError","error","getViewData","liveMode","phone","oDynamicPage","_getDynamicListReportControl","setHeaderExpanded","onChevronPressNavigateOutBound","oController","sOutboundTarget","oContext","sCreatePath","_intentBasedNavigation","onChartSelectionChanged","getContent","oTable","_getTable","aData","setChartFilters","rebind","onSegmentedButtonPressed","sSelectedKey","mParameters","oChart","oSegmentedButtonDelegate","onAfterRendering","aItems","oSegmentedButton","getItems","oItem","getKey","focus","removeEventDelegate","_getSegmentedButton","addEventDelegate","_updateTable","_updateChart","Hybrid","onFiltersSegmentedButtonPressed","isCompact","setVisible","_getVisualFilterBarControl","onStateChange","onDynamicPageTitleStateChanged","filterBar","getSegmentedButton","_proto","extensionAPI","onInit","apply","_hasMultiVisualizations","alpContentView","_getDefaultPath","desktop","getAppComponent","getRouterProxy","waitForRouteMatchBeforeNavigation","_setInitLoad","onExit","destroy","aTables","_getControls","isEditStateDirty","_this$_getMultiModeCo","_this$_getTable","oTableBinding","getRowBinding","_isFclEnabled","refresh","sUpdateTimer","fnUpdateTableActions","_updateTableActions","detachDataReceived","attachDataReceived","setEditStateProcessed","internalModelContext","viewId","getId","pageReady","waitFor","_applyAppState","capablities","getEnvironmentCapabilities","getCapabilities","InsightsSupported","onBeforeRendering","onPageReady","forceFocus","_setInitialFocus","getShellServices","setBackNavigation","onViewNeedsRefresh","_this$_getTable2","onAfterClear","aIBNActions","getIBNActions","oActionOperationAvailableMap","JSON","parse","parseCustomData","getCustomData","aSelectedContexts","getSelectedContexts","updateDeleteInfoForSelectedContexts","setActionEnablement","updateDataFieldForIBNButtonsVisibility","_scrollTablesToRow","sRowPath","scrollTableToRow","dynamicPage","isHeaderExpanded","getHeaderExpanded","getShowMessages","setShowMessages","firstEmptyMandatoryField","getFilterItems","find","oFilterItem","getRequired","_isInitLoadEnabled","_this$getView$byId3","_getFilterBarControlId","_this$_getTable3","focusRow","_this$_getTable4","_getPageTitleInformation","oManifestEntry","getManifestEntry","title","subtitle","subTitle","intent","icon","_getDynamicListReportControlId","_getAdaptationFilterBarControl","adaptationFilterBar","getInbuiltFilter","async","getAppStateHandler","applyAppState","setSuspendSelection","_isFilterBarHidden","_isMultiMode","setCountsOutDated","sControl","_ref","sSegmentedButtonId","_getControlFromPageModelProperty","sPath","_this$_getPageModel","controlId","_getPageModel","_this$_getPageModel2","_this$_getPageModel3","sVisualFilterBarId","generate","_getFilterBarVariantControl","_this$_getMultiModeCo2","_this$_getMultiModeCo3","oControl","getSelectedInnerControl","content","sKey","aControls","oTabMultiMode","indexOf","push","_this$_getPageModel4","defaultPath","getDefaultPath","_this$_getPageModel5","initLoadMode","initialLoad","Enabled","_this$_getPageModel6","_disableInitLoad","_applyAutomaticallyOnStandardVariant","_this$_getPageModel7","variantManagementId","getVariantBackReference","getData","variantManagement","registerApplyAutomaticallyOnStandardVariant","_setShareModel","fnGetUser","get","oShareInfo","bookmarkTitle","document","bookmarkCustomUrl","sHash","getHash","window","location","href","isShareInJamActive","isJamActive","oTemplatePrivateModel","getOwnerComponent","getModel","mCache","ignoredFields","aCharts","sChartEntityPath","sChartEntitySet","sCacheKey","getNotApplicableFilters","hideFilterBar","VariantManagement","variants","getVariants","currentVariant","variant","executeOnSelect","Auto","getStandardVariantKey","getCurrentVariantKey","oConditions","startsWith","standardVariant","isTableBound","oInnerChart","getControlDelegate","_getChart","isBound","getBindingInfo","sEntitySet","entitySet","setNoData","getOwnPropertyDescriptor"],"sources":["ListReportController-dbg.controller.js"],"mappings":"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"}
|
|
@@ -139,6 +139,7 @@ class ListReportController extends PageController {
|
|
|
139
139
|
oInternalModelContext.setProperty("scalefactor", {});
|
|
140
140
|
oInternalModelContext.setProperty("scalefactorNumber", {});
|
|
141
141
|
oInternalModelContext.setProperty("currency", {});
|
|
142
|
+
oInternalModelContext.setProperty("isInsightsSupported", false);
|
|
142
143
|
|
|
143
144
|
if (this._hasMultiVisualizations()) {
|
|
144
145
|
let alpContentView = this._getDefaultPath();
|
|
@@ -203,9 +204,11 @@ class ListReportController extends PageController {
|
|
|
203
204
|
const internalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
|
|
204
205
|
if (!internalModelContext.getProperty("initialVariantApplied")) {
|
|
205
206
|
const viewId = this.getView().getId();
|
|
206
|
-
this.pageReady.waitFor(this.
|
|
207
|
+
this.pageReady.waitFor(this._applyAppState(viewId));
|
|
207
208
|
internalModelContext.setProperty("initialVariantApplied", true);
|
|
208
209
|
}
|
|
210
|
+
const capablities = CommonUtils.getAppComponent(this.getView()).getEnvironmentCapabilities().getCapabilities();
|
|
211
|
+
internalModelContext.setProperty("isInsightsSupported", capablities?.InsightsSupported);
|
|
209
212
|
}
|
|
210
213
|
|
|
211
214
|
onBeforeRendering() {
|
|
@@ -418,6 +421,20 @@ class ListReportController extends PageController {
|
|
|
418
421
|
return adaptationFilterBar?.getParent() ? adaptationFilterBar : undefined;
|
|
419
422
|
}
|
|
420
423
|
|
|
424
|
+
async _applyAppState(viewId: string): Promise<void> {
|
|
425
|
+
await this.getAppComponent().getAppStateHandler().applyAppState(viewId, this.getView());
|
|
426
|
+
const oFilterBar = this._getFilterBarControl();
|
|
427
|
+
if (oFilterBar) {
|
|
428
|
+
oFilterBar.setSuspendSelection(false);
|
|
429
|
+
} else if (this._isFilterBarHidden()) {
|
|
430
|
+
const oInternalModelContext = this.getView().getBindingContext("internal") as InternalModelContext;
|
|
431
|
+
oInternalModelContext.setProperty("hasPendingFilters", false);
|
|
432
|
+
if (this._isMultiMode()) {
|
|
433
|
+
this._getMultiModeControl().setCountsOutDated(true);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
421
438
|
_getSegmentedButton(sControl: any) {
|
|
422
439
|
const sSegmentedButtonId = (sControl === "Chart" ? this.getChartControl() : this._getTable())?.data("segmentedButtonId");
|
|
423
440
|
return this.getView().byId(sSegmentedButtonId);
|
|
@@ -34,19 +34,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
|
|
|
34
34
|
});
|
|
35
35
|
delete this._bSearchTriggered;
|
|
36
36
|
},
|
|
37
|
-
onAfterStateApplied: function () {
|
|
38
|
-
const oController = this.getView().getController();
|
|
39
|
-
const oFilterBar = oController._getFilterBarControl();
|
|
40
|
-
if (oFilterBar) {
|
|
41
|
-
oFilterBar.setSuspendSelection(false);
|
|
42
|
-
} else if (oController._isFilterBarHidden()) {
|
|
43
|
-
const oInternalModelContext = oController.getView().getBindingContext("internal");
|
|
44
|
-
oInternalModelContext.setProperty("hasPendingFilters", false);
|
|
45
|
-
if (oController._isMultiMode()) {
|
|
46
|
-
oController._getMultiModeControl().setCountsOutDated(true);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
},
|
|
50
37
|
adaptBindingRefreshControls: function (aControls) {
|
|
51
38
|
const oView = this.getView(),
|
|
52
39
|
oController = oView.getController(),
|
|
@@ -493,4 +480,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
|
|
|
493
480
|
};
|
|
494
481
|
return ViewStateOverride;
|
|
495
482
|
}, false);
|
|
496
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwiTmF2TGlicmFyeSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvcmVMaWJyYXJ5IiwiVmFyaWFudE1hbmFnZW1lbnQiLCJUZW1wbGF0ZUNvbnRlbnRWaWV3IiwiSW5pdGlhbExvYWRNb2RlIiwiQ09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCIsIlZpZXdTdGF0ZU92ZXJyaWRlIiwiX2JTZWFyY2hUcmlnZ2VyZWQiLCJhcHBseUluaXRpYWxTdGF0ZU9ubHkiLCJvbkJlZm9yZVN0YXRlQXBwbGllZCIsImFQcm9taXNlcyIsIm5hdmlnYXRpb25UeXBlIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiYVRhYmxlcyIsIl9nZXRDb250cm9scyIsInNldFN1c3BlbmRTZWxlY3Rpb24iLCJwdXNoIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiaHlicmlkIiwiX2NsZWFyRmlsdGVyQ29uZGl0aW9ucyIsImZvckVhY2giLCJvVGFibGUiLCJpbml0aWFsaXplZCIsIm9uQWZ0ZXJTdGF0ZUFwcGxpZWQiLCJfaXNGaWx0ZXJCYXJIaWRkZW4iLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJnZXRCaW5kaW5nQ29udGV4dCIsInNldFByb3BlcnR5IiwiX2lzTXVsdGlNb2RlIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsImFkYXB0QmluZGluZ1JlZnJlc2hDb250cm9scyIsImFDb250cm9scyIsImFWaWV3Q29udHJvbHMiLCJhQ29udHJvbHNUb1JlZnJlc2giLCJLZWVwQWxpdmVIZWxwZXIiLCJnZXRDb250cm9sc0ZvclJlZnJlc2giLCJBcnJheSIsInByb3RvdHlwZSIsImFwcGx5IiwiYWRhcHRTdGF0ZUNvbnRyb2xzIiwiYVN0YXRlQ29udHJvbHMiLCJvVmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsImJDb250cm9sVk0iLCJ2YXJpYW50TWFuYWdlbWVudCIsIkNvbnRyb2wiLCJvRmlsdGVyQmFyVk0iLCJfZ2V0RmlsdGVyQmFyVk0iLCJvUXVpY2tGaWx0ZXIiLCJnZXRRdWlja0ZpbHRlciIsImdldFZhcmlhbnQiLCJvQ2hhcnQiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9nZXRTZWdtZW50ZWRCdXR0b24iLCJDaGFydCIsIlRhYmxlIiwiYnlJZCIsInJldHJpZXZlQWRkaXRpb25hbFN0YXRlcyIsIm1BZGRpdGlvbmFsU3RhdGVzIiwiYlBlbmRpbmdGaWx0ZXIiLCJnZXRQcm9wZXJ0eSIsImRhdGFMb2FkZWQiLCJzQWxwQ29udGVudFZpZXciLCJhbHBDb250ZW50VmlldyIsImFwcGx5QWRkaXRpb25hbFN0YXRlcyIsIm9BZGRpdGlvbmFsU3RhdGVzIiwidHJpZ2dlclNlYXJjaCIsInN5c3RlbSIsImRlc2t0b3AiLCJIeWJyaWQiLCJnZXRNb2RlbCIsImdldFBhdGgiLCJfYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVyc1RvRmlsdGVyYmFyIiwib05hdmlnYXRpb25QYXJhbWV0ZXIiLCJhUmVzdWx0cyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzdGFydHVwUGFyYW1ldGVycyIsIm9WYXJpYW50UHJvbWlzZSIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImJGaWx0ZXJWYXJpYW50QXBwbGllZCIsInRoZW4iLCJhVmFyaWFudHMiLCJsZW5ndGgiLCJfYXBwbHlTZWxlY3Rpb25WYXJpYW50Iiwib0R5bmFtaWNQYWdlIiwiX2dldER5bmFtaWNMaXN0UmVwb3J0Q29udHJvbCIsImJQcmV2ZW50SW5pdGlhbFNlYXJjaCIsIm9GaWx0ZXJCYXJDb250cm9sIiwiaW5pdGlhbCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiaW5pdGlhbExvYWQiLCJFbmFibGVkIiwiX3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoIiwiX3ByZXZlbnRJbml0aWFsU2VhcmNoIiwic2V0SGVhZGVyRXhwYW5kZWQiLCJjYXRjaCIsIkxvZyIsImVycm9yIiwib1VybFBhcmFtcyIsImFQYWdlVmFyaWFudElkIiwiYUZpbHRlckJhclZhcmlhbnRJZCIsImFUYWJsZVZhcmlhbnRJZCIsImFDaGFydFZhcmlhbnRJZCIsIm9WYXJpYW50SURzIiwic1BhZ2VWYXJpYW50SWQiLCJzRmlsdGVyQmFyVmFyaWFudElkIiwic1RhYmxlVmFyaWFudElkIiwic0NoYXJ0VmFyaWFudElkIiwiX2hhbmRsZUNvbnRyb2xWYXJpYW50SWQiLCJvVk0iLCJzVmFyaWFudE1hbmFnZW1lbnQiLCJfaGFuZGxlUGFnZVZhcmlhbnRJZCIsIl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCIsIl9oYW5kbGVGaWx0ZXJCYXJWYXJpYW50Q29udHJvbElkIiwiX2hhbmRsZVRhYmxlQ29udHJvbFZhcmlhbnRJZCIsIl9oYW5kbGVDaGFydENvbnRyb2xWYXJpYW50SWQiLCJQcm9taXNlIiwiYWxsIiwiZ2V0VmFyaWFudHMiLCJvVmFyaWFudCIsIl9maW5kQW5kUHVzaFZhcmlhbnRUb1Byb21pc2UiLCJvVGFibGVWYXJpYW50IiwiYUNoYXJ0cyIsIm9DaGFydFZhcmlhbnQiLCJzVmFyaWFudElkIiwia2V5IiwiX2FwcGx5Q29udHJvbFZhcmlhbnQiLCJzVmFyaWFudElEIiwic1ZhcmlhbnRSZWZlcmVuY2UiLCJfY2hlY2tJZlZhcmlhbnRJZElzQXZhaWxhYmxlIiwiZ2V0U3RhbmRhcmRWYXJpYW50S2V5IiwiQ29udHJvbFZhcmlhbnRBcHBseUFQSSIsImFjdGl2YXRlVmFyaWFudCIsImVsZW1lbnQiLCJ2YXJpYW50UmVmZXJlbmNlIiwiUGFnZSIsIk5vbmUiLCJFcnJvciIsIm9WYXJpYW50TWFuYWdlbWVudCIsIm9DdXJyZW50VmFyaWFudCIsImZpbmQiLCJvSXRlbSIsImdldEN1cnJlbnRWYXJpYW50S2V5IiwiZXhlY3V0ZU9uU2VsZWN0Iiwib1NlbGVjdGlvblZhcmlhbnQiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1NlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsInNlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsInJlc29sdmUiLCJvQ29uZGl0aW9ucyIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzQ29udGV4dFBhdGgiLCJjb250ZXh0UGF0aCIsImVudGl0eVNldCIsImFNYW5kYXRvcnlGaWx0ZXJGaWVsZHMiLCJDb21tb25VdGlscyIsImdldE1hbmRhdG9yeUZpbHRlckZpZWxkcyIsImJVc2VTZW1hbnRpY0RhdGVSYW5nZSIsImRhdGEiLCJiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJiSXNGTFBWYWx1ZVByZXNlbnQiLCJnZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcyIsImdldERlZmF1bHRWYXJpYW50S2V5IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsImdldENvbmRpdGlvbnMiLCJhZGREZWZhdWx0RGlzcGxheUN1cnJlbmN5IiwiYWRkU2VsZWN0aW9uVmFyaWFudFRvQ29uZGl0aW9ucyIsIl9hY3RpdmF0ZVNlbGVjdGlvblZhcmlhbnQiLCJvUHJvbWlzZSIsIm9WYXJpYW50S2V5IiwiZ2V0SWQiLCJiQ2xlYXJGaWx0ZXJBbmRSZXBsYWNlV2l0aEFwcFN0YXRlIiwiX2ZuQXBwbHlDb25kaXRpb25zIiwiX2ZuQ2xlYXJTdGF0ZUJlZm9yZXhBcHBOYXYiLCJTdGF0ZVV0aWwiLCJyZXRyaWV2ZUV4dGVybmFsU3RhdGUiLCJvRXh0ZXJuYWxTdGF0ZSIsIm9Db25kaXRpb24iLCJmaWx0ZXIiLCJmaWVsZCIsImNvbmRpdGlvbiIsIm9FcnJvciIsIm1GaWx0ZXIiLCJhSXRlbXMiLCJmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbiIsInZhbGlkYXRlZCIsIkNvbmRpdGlvblZhbGlkYXRlZCIsIlZhbGlkYXRlZCIsIm9wZXJhdG9yIiwidmFsdWVzIiwiaXNFbXB0eSIsImZuR2V0UHJvcGVydHlJbmZvIiwib0ZpbHRlckNvbnRyb2wiLCJzRW50aXR5VHlwZVBhdGgiLCJzRW50aXR5U2V0UGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0RW50aXR5U2V0UGF0aCIsIm9GUiIsImdldEZpbHRlclJlc3RyaWN0aW9uc0J5UGF0aCIsImFOb25GaWx0ZXJhYmxlUHJvcHMiLCJOb25GaWx0ZXJhYmxlUHJvcGVydGllcyIsIm1GaWx0ZXJGaWVsZHMiLCJGaWx0ZXJVdGlscyIsImdldENvbnZlcnRlZEZpbHRlckZpZWxkcyIsImFQcm9wZXJ0eUluZm8iLCJvQ29udmVydGVkUHJvcGVydHkiLCJzUHJvcGVydHlQYXRoIiwiY29uZGl0aW9uUGF0aCIsInJlcGxhY2UiLCJpbmRleE9mIiwic0Fubm90YXRpb25QYXRoIiwiYW5ub3RhdGlvblBhdGgiLCJvUHJvcGVydHlDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJwYXRoIiwiaGlkZGVuRmlsdGVyIiwiYXZhaWxhYmlsaXR5IiwiaGFzVmFsdWVIZWxwIiwiUHJvcGVydHlGb3JtYXR0ZXJzIiwiZ2V0T2JqZWN0IiwiY29udGV4dCIsIkRlbGVnYXRlVXRpbCIsImdldEN1c3RvbURhdGEiLCJvQ2xlYXJDb25kaXRpb25zIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiaXRlbXMiLCJvUHJvcGVydHlJbmZvIiwibmFtZSIsImZpbHRlcmVkIiwiTm90VmFsaWRhdGVkIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaWV3U3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBWaWV3U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IEtlZXBBbGl2ZUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9LZWVwQWxpdmVIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29yZUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCAqIGFzIFByb3BlcnR5Rm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwsIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgTmF2TGlicmFyeSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBzeXN0ZW0gfSBmcm9tIFwic2FwL3VpL0RldmljZVwiO1xuaW1wb3J0IENvbnRyb2xWYXJpYW50QXBwbHlBUEkgZnJvbSBcInNhcC91aS9mbC9hcHBseS9hcGkvQ29udHJvbFZhcmlhbnRBcHBseUFQSVwiO1xuaW1wb3J0IHR5cGUgVmFyaWFudE1hbmFnZW1lbnQgZnJvbSBcInNhcC91aS9mbC92YXJpYW50cy9WYXJpYW50TWFuYWdlbWVudFwiO1xuaW1wb3J0IENoYXJ0IGZyb20gXCJzYXAvdWkvbWRjL0NoYXJ0XCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IFN0YXRlVXRpbCBmcm9tIFwic2FwL3VpL21kYy9wMTNuL1N0YXRlVXRpbFwiO1xuaW1wb3J0IFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5cbnR5cGUgVmFyaWFudE9iamVjdCA9IHtcblx0YXV0aG9yOiBTdHJpbmc7XG5cdGNoYW5nZTogYm9vbGVhbjtcblx0Y29udGV4dHM6IG9iamVjdDtcblx0ZXhlY3V0ZU9uU2VsZWN0OiBib29sZWFuO1xuXHRmYXZvcml0ZTogYm9vbGVhbjtcblx0a2V5OiBTdHJpbmc7XG5cdG9yaWdpbmFsQ29udGV4dHM6IG9iamVjdDtcblx0b3JpZ2luYWxFeGVjdXRlT25TZWxlY3Q6IGJvb2xlYW47XG5cdG9yaWdpbmFsRmF2b3JpdGU6IGJvb2xlYW47XG5cdG9yaWdpbmFsVGl0bGU6IFN0cmluZztcblx0b3JpZ2luYWxWaXNpYmxlOiBib29sZWFuO1xuXHRyZW1vdmU6IGJvb2xlYW47XG5cdHJlbmFtZTogYm9vbGVhbjtcblx0c2hhcmluZzogU3RyaW5nO1xuXHR0aXRsZTogU3RyaW5nO1xuXHR2aXNpYmxlOiBib29sZWFuO1xufTtcblxudHlwZSBWYXJpYW50SURzID0ge1xuXHRzUGFnZVZhcmlhbnRJZDogU3RyaW5nO1xuXHRzRmlsdGVyQmFyVmFyaWFudElkOiBTdHJpbmc7XG5cdHNUYWJsZVZhcmlhbnRJZDogU3RyaW5nO1xuXHRzQ2hhcnRWYXJpYW50SWQ6IFN0cmluZztcbn07XG5cbmNvbnN0IE5hdlR5cGUgPSBOYXZMaWJyYXJ5Lk5hdlR5cGUsXG5cdFZhcmlhbnRNYW5hZ2VtZW50VHlwZSA9IENvcmVMaWJyYXJ5LlZhcmlhbnRNYW5hZ2VtZW50LFxuXHRUZW1wbGF0ZUNvbnRlbnRWaWV3ID0gQ29yZUxpYnJhcnkuVGVtcGxhdGVDb250ZW50Vmlldyxcblx0SW5pdGlhbExvYWRNb2RlID0gQ29yZUxpYnJhcnkuSW5pdGlhbExvYWRNb2RlLFxuXHRDT05ESVRJT05fUEFUSF9UT19QUk9QRVJUWV9QQVRIX1JFR0VYID0gL1xcK3xcXCovZztcblxuY29uc3QgVmlld1N0YXRlT3ZlcnJpZGU6IGFueSA9IHtcblx0X2JTZWFyY2hUcmlnZ2VyZWQ6IGZhbHNlLFxuXHRhcHBseUluaXRpYWxTdGF0ZU9ubHk6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblx0b25CZWZvcmVTdGF0ZUFwcGxpZWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIGFQcm9taXNlczogYW55LCBuYXZpZ2F0aW9uVHlwZT86IHN0cmluZykge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpLFxuXHRcdFx0YVRhYmxlcyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRvRmlsdGVyQmFyLnNldFN1c3BlbmRTZWxlY3Rpb24odHJ1ZSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaCgob0ZpbHRlckJhciBhcyBhbnkpLndhaXRGb3JJbml0aWFsaXphdGlvbigpKTtcblx0XHRcdC8vVGhpcyBpcyByZXF1aXJlZCB0byByZW1vdmUgYW55IGV4aXN0aW5nIG9yIGRlZmF1bHQgZmlsdGVyIGNvbmRpdGlvbnMgYmVmb3JlIHJlc3RvcmluZyB0aGUgZmlsdGVyIGJhciBzdGF0ZSBpbiBoeWJyaWQgbmF2aWdhdGlvbiBtb2RlLlxuXHRcdFx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZUeXBlLmh5YnJpZCkge1xuXHRcdFx0XHR0aGlzLl9jbGVhckZpbHRlckNvbmRpdGlvbnMob0ZpbHRlckJhcik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGFUYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAob1RhYmxlOiBhbnkpIHtcblx0XHRcdGFQcm9taXNlcy5wdXNoKG9UYWJsZS5pbml0aWFsaXplZCgpKTtcblx0XHR9KTtcblxuXHRcdGRlbGV0ZSB0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkO1xuXHR9LFxuXHRvbkFmdGVyU3RhdGVBcHBsaWVkOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlKSB7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSB0aGlzLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0aWYgKG9GaWx0ZXJCYXIpIHtcblx0XHRcdG9GaWx0ZXJCYXIuc2V0U3VzcGVuZFNlbGVjdGlvbihmYWxzZSk7XG5cdFx0fSBlbHNlIGlmIChvQ29udHJvbGxlci5faXNGaWx0ZXJCYXJIaWRkZW4oKSkge1xuXHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb0NvbnRyb2xsZXIuZ2V0VmlldygpLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJoYXNQZW5kaW5nRmlsdGVyc1wiLCBmYWxzZSk7XG5cdFx0XHRpZiAob0NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkpIHtcblx0XHRcdFx0b0NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKS5zZXRDb3VudHNPdXREYXRlZCh0cnVlKTtcblx0XHRcdH1cblx0XHR9XG5cdH0sXG5cdGFkYXB0QmluZGluZ1JlZnJlc2hDb250cm9sczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSwgYUNvbnRyb2xzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRhVmlld0NvbnRyb2xzID0gb0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKCksXG5cdFx0XHRhQ29udHJvbHNUb1JlZnJlc2ggPSBLZWVwQWxpdmVIZWxwZXIuZ2V0Q29udHJvbHNGb3JSZWZyZXNoKG9WaWV3LCBhVmlld0NvbnRyb2xzKTtcblxuXHRcdEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KGFDb250cm9scywgYUNvbnRyb2xzVG9SZWZyZXNoKTtcblx0fSxcblx0YWRhcHRTdGF0ZUNvbnRyb2xzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBhU3RhdGVDb250cm9sczogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b1ZpZXdEYXRhID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKSxcblx0XHRcdGJDb250cm9sVk0gPSBvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQgPT09IFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sO1xuXG5cdFx0Y29uc3Qgb0ZpbHRlckJhclZNID0gdGhpcy5fZ2V0RmlsdGVyQmFyVk0ob1ZpZXcpO1xuXHRcdGlmIChvRmlsdGVyQmFyVk0pIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0ZpbHRlckJhclZNKTtcblx0XHR9XG5cdFx0aWYgKG9Db250cm9sbGVyLl9pc011bHRpTW9kZSgpKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9Db250cm9sbGVyLl9nZXRNdWx0aU1vZGVDb250cm9sKCkpO1xuXHRcdH1cblx0XHRvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJ0YWJsZVwiKS5mb3JFYWNoKGZ1bmN0aW9uIChvVGFibGU6IGFueSkge1xuXHRcdFx0Y29uc3Qgb1F1aWNrRmlsdGVyID0gb1RhYmxlLmdldFF1aWNrRmlsdGVyKCk7XG5cdFx0XHRpZiAob1F1aWNrRmlsdGVyKSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1F1aWNrRmlsdGVyKTtcblx0XHRcdH1cblx0XHRcdGlmIChiQ29udHJvbFZNKSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1RhYmxlLmdldFZhcmlhbnQoKSk7XG5cdFx0XHR9XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9UYWJsZSk7XG5cdFx0fSk7XG5cdFx0aWYgKG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcIkNoYXJ0XCIpKSB7XG5cdFx0XHRvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJDaGFydFwiKS5mb3JFYWNoKGZ1bmN0aW9uIChvQ2hhcnQ6IGFueSkge1xuXHRcdFx0XHRpZiAoYkNvbnRyb2xWTSkge1xuXHRcdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NoYXJ0LmdldFZhcmlhbnQoKSk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvQ2hhcnQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHRcdGlmIChvQ29udHJvbGxlci5faGFzTXVsdGlWaXN1YWxpemF0aW9ucygpKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9Db250cm9sbGVyLl9nZXRTZWdtZW50ZWRCdXR0b24oVGVtcGxhdGVDb250ZW50Vmlldy5DaGFydCkpO1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvQ29udHJvbGxlci5fZ2V0U2VnbWVudGVkQnV0dG9uKFRlbXBsYXRlQ29udGVudFZpZXcuVGFibGUpKTtcblx0XHR9XG5cdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0aWYgKG9GaWx0ZXJCYXIpIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0ZpbHRlckJhcik7XG5cdFx0fVxuXHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1ZpZXcuYnlJZChcImZlOjpMaXN0UmVwb3J0XCIpKTtcblx0fSxcblx0cmV0cmlldmVBZGRpdGlvbmFsU3RhdGVzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBtQWRkaXRpb25hbFN0YXRlczogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0YlBlbmRpbmdGaWx0ZXIgPSAob1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCkuZ2V0UHJvcGVydHkoXCJoYXNQZW5kaW5nRmlsdGVyc1wiKTtcblxuXHRcdG1BZGRpdGlvbmFsU3RhdGVzLmRhdGFMb2FkZWQgPSAhYlBlbmRpbmdGaWx0ZXIgfHwgISF0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkO1xuXHRcdGlmIChvQ29udHJvbGxlci5faGFzTXVsdGlWaXN1YWxpemF0aW9ucygpKSB7XG5cdFx0XHRjb25zdCBzQWxwQ29udGVudFZpZXcgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpLmdldFByb3BlcnR5KFwiYWxwQ29udGVudFZpZXdcIik7XG5cdFx0XHRtQWRkaXRpb25hbFN0YXRlcy5hbHBDb250ZW50VmlldyA9IHNBbHBDb250ZW50Vmlldztcblx0XHR9XG5cblx0XHRkZWxldGUgdGhpcy5fYlNlYXJjaFRyaWdnZXJlZDtcblx0fSxcblx0YXBwbHlBZGRpdGlvbmFsU3RhdGVzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBvQWRkaXRpb25hbFN0YXRlczogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0b0ZpbHRlckJhciA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cblx0XHRpZiAob0FkZGl0aW9uYWxTdGF0ZXMpIHtcblx0XHRcdC8vIGV4cGxpY2l0IGNoZWNrIGZvciBib29sZWFuIHZhbHVlcyAtICd1bmRlZmluZWQnIHNob3VsZCBub3QgYWx0ZXIgdGhlIHRyaWdnZXJlZCBzZWFyY2ggcHJvcGVydHlcblx0XHRcdGlmIChvQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID09PSBmYWxzZSAmJiBvRmlsdGVyQmFyKSB7XG5cdFx0XHRcdC8vIHdpdGhvdXQgdGhpcywgdGhlIGRhdGEgaXMgbG9hZGVkIG9uIG5hdmlnYXRpbmcgYmFja1xuXHRcdFx0XHQob0ZpbHRlckJhciBhcyBhbnkpLl9iU2VhcmNoVHJpZ2dlcmVkID0gZmFsc2U7XG5cdFx0XHR9IGVsc2UgaWYgKG9BZGRpdGlvbmFsU3RhdGVzLmRhdGFMb2FkZWQgPT09IHRydWUpIHtcblx0XHRcdFx0aWYgKG9GaWx0ZXJCYXIpIHtcblx0XHRcdFx0XHRvRmlsdGVyQmFyLnRyaWdnZXJTZWFyY2goKTtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkID0gdHJ1ZTtcblx0XHRcdH1cblx0XHRcdGlmIChvQ29udHJvbGxlci5faGFzTXVsdGlWaXN1YWxpemF0aW9ucygpKSB7XG5cdFx0XHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsQ29udGV4dCA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQ7XG5cdFx0XHRcdGlmICghc3lzdGVtLmRlc2t0b3AgJiYgb0FkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPT0gVGVtcGxhdGVDb250ZW50Vmlldy5IeWJyaWQpIHtcblx0XHRcdFx0XHRvQWRkaXRpb25hbFN0YXRlcy5hbHBDb250ZW50VmlldyA9IFRlbXBsYXRlQ29udGVudFZpZXcuQ2hhcnQ7XG5cdFx0XHRcdH1cblx0XHRcdFx0b0ludGVybmFsTW9kZWxDb250ZXh0XG5cdFx0XHRcdFx0LmdldE1vZGVsKClcblx0XHRcdFx0XHQuc2V0UHJvcGVydHkoYCR7b0ludGVybmFsTW9kZWxDb250ZXh0LmdldFBhdGgoKX0vYWxwQ29udGVudFZpZXdgLCBvQWRkaXRpb25hbFN0YXRlcy5hbHBDb250ZW50Vmlldyk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXHRfYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVyc1RvRmlsdGVyYmFyOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBvTmF2aWdhdGlvblBhcmFtZXRlcjogYW55LCBhUmVzdWx0czogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKTtcblx0XHRjb25zdCBvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcjtcblx0XHRjb25zdCBvQXBwQ29tcG9uZW50ID0gb0NvbnRyb2xsZXIuZ2V0QXBwQ29tcG9uZW50KCk7XG5cdFx0Y29uc3Qgb0NvbXBvbmVudERhdGEgPSBvQXBwQ29tcG9uZW50LmdldENvbXBvbmVudERhdGEoKTtcblx0XHRjb25zdCBvU3RhcnR1cFBhcmFtZXRlcnMgPSAob0NvbXBvbmVudERhdGEgJiYgb0NvbXBvbmVudERhdGEuc3RhcnR1cFBhcmFtZXRlcnMpIHx8IHt9O1xuXHRcdGNvbnN0IG9WYXJpYW50UHJvbWlzZSA9IHRoaXMuaGFuZGxlVmFyaWFudElkUGFzc2VkVmlhVVJMUGFyYW1zKG9TdGFydHVwUGFyYW1ldGVycyk7XG5cdFx0bGV0IGJGaWx0ZXJWYXJpYW50QXBwbGllZDogYm9vbGVhbjtcblx0XHRhUmVzdWx0cy5wdXNoKFxuXHRcdFx0b1ZhcmlhbnRQcm9taXNlXG5cdFx0XHRcdC50aGVuKChhVmFyaWFudHM6IGFueVtdKSA9PiB7XG5cdFx0XHRcdFx0aWYgKGFWYXJpYW50cyAmJiBhVmFyaWFudHMubGVuZ3RoID4gMCkge1xuXHRcdFx0XHRcdFx0aWYgKGFWYXJpYW50c1swXSA9PT0gdHJ1ZSB8fCBhVmFyaWFudHNbMV0gPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdFx0YkZpbHRlclZhcmlhbnRBcHBsaWVkID0gdHJ1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX2FwcGx5U2VsZWN0aW9uVmFyaWFudChvVmlldywgb05hdmlnYXRpb25QYXJhbWV0ZXIsIGJGaWx0ZXJWYXJpYW50QXBwbGllZCk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC50aGVuKCgpID0+IHtcblx0XHRcdFx0XHRjb25zdCBvRHluYW1pY1BhZ2UgPSBvQ29udHJvbGxlci5fZ2V0RHluYW1pY0xpc3RSZXBvcnRDb250cm9sKCk7XG5cdFx0XHRcdFx0bGV0IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCA9IGZhbHNlO1xuXHRcdFx0XHRcdGNvbnN0IG9GaWx0ZXJCYXJWTSA9IHRoaXMuX2dldEZpbHRlckJhclZNKG9WaWV3KTtcblx0XHRcdFx0XHRjb25zdCBvRmlsdGVyQmFyQ29udHJvbCA9IG9Db250cm9sbGVyLl9nZXRGaWx0ZXJCYXJDb250cm9sKCk7XG5cdFx0XHRcdFx0aWYgKG9GaWx0ZXJCYXJDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHRcdChvTmF2aWdhdGlvblBhcmFtZXRlci5uYXZpZ2F0aW9uVHlwZSAhPT0gTmF2VHlwZS5pbml0aWFsICYmIG9OYXZpZ2F0aW9uUGFyYW1ldGVyLnJlcXVpcmVzU3RhbmRhcmRWYXJpYW50KSB8fFxuXHRcdFx0XHRcdFx0XHQoIW9GaWx0ZXJCYXJWTSAmJiBvVmlldy5nZXRWaWV3RGF0YSgpLmluaXRpYWxMb2FkID09PSBJbml0aWFsTG9hZE1vZGUuRW5hYmxlZCkgfHxcblx0XHRcdFx0XHRcdFx0b0NvbnRyb2xsZXIuX3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoKG9GaWx0ZXJCYXJWTSlcblx0XHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0XHRvRmlsdGVyQmFyQ29udHJvbC50cmlnZ2VyU2VhcmNoKCk7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRiUHJldmVudEluaXRpYWxTZWFyY2ggPSB0aGlzLl9wcmV2ZW50SW5pdGlhbFNlYXJjaChvRmlsdGVyQmFyVk0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0Ly8gcmVzZXQgdGhlIHN1c3BlbmQgc2VsZWN0aW9uIG9uIGZpbHRlciBiYXIgdG8gYWxsb3cgbG9hZGluZyBvZiBkYXRhIHdoZW4gbmVlZGVkICh3YXMgc2V0IG9uIExSIEluaXQpXG5cdFx0XHRcdFx0XHRvRmlsdGVyQmFyQ29udHJvbC5zZXRTdXNwZW5kU2VsZWN0aW9uKGZhbHNlKTtcblx0XHRcdFx0XHRcdHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQgPSAhYlByZXZlbnRJbml0aWFsU2VhcmNoO1xuXHRcdFx0XHRcdFx0b0R5bmFtaWNQYWdlLnNldEhlYWRlckV4cGFuZGVkKHN5c3RlbS5kZXNrdG9wIHx8IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KVxuXHRcdFx0XHQuY2F0Y2goZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdExvZy5lcnJvcihcIlZhcmlhbnQgSUQgY2Fubm90IGJlIGFwcGxpZWRcIik7XG5cdFx0XHRcdH0pXG5cdFx0KTtcblx0fSxcblxuXHRoYW5kbGVWYXJpYW50SWRQYXNzZWRWaWFVUkxQYXJhbXM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG9VcmxQYXJhbXM6IGFueSkge1xuXHRcdGNvbnN0IGFQYWdlVmFyaWFudElkID0gb1VybFBhcmFtc1tcInNhcC11aS1mZS12YXJpYW50LWlkXCJdLFxuXHRcdFx0YUZpbHRlckJhclZhcmlhbnRJZCA9IG9VcmxQYXJhbXNbXCJzYXAtdWktZmUtZmlsdGVyYmFyLXZhcmlhbnQtaWRcIl0sXG5cdFx0XHRhVGFibGVWYXJpYW50SWQgPSBvVXJsUGFyYW1zW1wic2FwLXVpLWZlLXRhYmxlLXZhcmlhbnQtaWRcIl0sXG5cdFx0XHRhQ2hhcnRWYXJpYW50SWQgPSBvVXJsUGFyYW1zW1wic2FwLXVpLWZlLWNoYXJ0LXZhcmlhbnQtaWRcIl07XG5cdFx0bGV0IG9WYXJpYW50SURzO1xuXHRcdGlmIChhUGFnZVZhcmlhbnRJZCB8fCBhRmlsdGVyQmFyVmFyaWFudElkIHx8IGFUYWJsZVZhcmlhbnRJZCB8fCBhQ2hhcnRWYXJpYW50SWQpIHtcblx0XHRcdG9WYXJpYW50SURzID0ge1xuXHRcdFx0XHRzUGFnZVZhcmlhbnRJZDogYVBhZ2VWYXJpYW50SWQgJiYgYVBhZ2VWYXJpYW50SWRbMF0sXG5cdFx0XHRcdHNGaWx0ZXJCYXJWYXJpYW50SWQ6IGFGaWx0ZXJCYXJWYXJpYW50SWQgJiYgYUZpbHRlckJhclZhcmlhbnRJZFswXSxcblx0XHRcdFx0c1RhYmxlVmFyaWFudElkOiBhVGFibGVWYXJpYW50SWQgJiYgYVRhYmxlVmFyaWFudElkWzBdLFxuXHRcdFx0XHRzQ2hhcnRWYXJpYW50SWQ6IGFDaGFydFZhcmlhbnRJZCAmJiBhQ2hhcnRWYXJpYW50SWRbMF1cblx0XHRcdH07XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLl9oYW5kbGVDb250cm9sVmFyaWFudElkKG9WYXJpYW50SURzKTtcblx0fSxcblxuXHRfaGFuZGxlQ29udHJvbFZhcmlhbnRJZDogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb1ZhcmlhbnRJRHM6IFZhcmlhbnRJRHMpIHtcblx0XHRsZXQgb1ZNOiBWYXJpYW50TWFuYWdlbWVudDtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0YVByb21pc2VzOiBWYXJpYW50TWFuYWdlbWVudFtdID0gW107XG5cdFx0Y29uc3Qgc1ZhcmlhbnRNYW5hZ2VtZW50ID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKS52YXJpYW50TWFuYWdlbWVudDtcblx0XHRpZiAob1ZhcmlhbnRJRHMgJiYgb1ZhcmlhbnRJRHMuc1BhZ2VWYXJpYW50SWQgJiYgc1ZhcmlhbnRNYW5hZ2VtZW50ID09PSBcIlBhZ2VcIikge1xuXHRcdFx0b1ZNID0gb1ZpZXcuYnlJZChcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIik7XG5cdFx0XHR0aGlzLl9oYW5kbGVQYWdlVmFyaWFudElkKG9WYXJpYW50SURzLCBvVk0sIGFQcm9taXNlcyk7XG5cdFx0fSBlbHNlIGlmIChvVmFyaWFudElEcyAmJiBzVmFyaWFudE1hbmFnZW1lbnQgPT09IFwiQ29udHJvbFwiKSB7XG5cdFx0XHRpZiAob1ZhcmlhbnRJRHMuc0ZpbHRlckJhclZhcmlhbnRJZCkge1xuXHRcdFx0XHRvVk0gPSBvVmlldy5nZXRDb250cm9sbGVyKCkuX2dldEZpbHRlckJhclZhcmlhbnRDb250cm9sKCk7XG5cdFx0XHRcdHRoaXMuX2hhbmRsZUZpbHRlckJhclZhcmlhbnRDb250cm9sSWQob1ZhcmlhbnRJRHMsIG9WTSwgYVByb21pc2VzKTtcblx0XHRcdH1cblx0XHRcdGlmIChvVmFyaWFudElEcy5zVGFibGVWYXJpYW50SWQpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0XHRcdHRoaXMuX2hhbmRsZVRhYmxlQ29udHJvbFZhcmlhbnRJZChvVmFyaWFudElEcywgb0NvbnRyb2xsZXIsIGFQcm9taXNlcyk7XG5cdFx0XHR9XG5cblx0XHRcdGlmIChvVmFyaWFudElEcy5zQ2hhcnRWYXJpYW50SWQpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0XHRcdHRoaXMuX2hhbmRsZUNoYXJ0Q29udHJvbFZhcmlhbnRJZChvVmFyaWFudElEcywgb0NvbnRyb2xsZXIsIGFQcm9taXNlcyk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBQcm9taXNlLmFsbChhUHJvbWlzZXMpO1xuXHR9LFxuXHQvKlxuXHQgKiBIYW5kbGVzIHBhZ2UgbGV2ZWwgdmFyaWFudCBhbmQgcGFzc2VzIHRoZSB2YXJpYW50IHRvIHRoZSBmdW5jdGlvbiB0aGF0IHB1c2hlcyB0aGUgcHJvbWlzZSB0byB0aGUgcHJvbWlzZSBhcnJheVxuXHQgKlxuXHQgKiBAcGFyYW0gb1ZhcmluYXRJRHMgY29udGFpbnMgYW4gb2JqZWN0IG9mIGFsbCB2YXJpYW50IElEc1xuXHQgKiBAcGFyYW0gb1ZNIGNvbnRhaW5zIHRoZSB2YWlyYW50IG1hbmFnZW1lbnQgb2JqZWN0IGZvciB0aGUgcGFnZSB2YXJpYW50XG5cdCAqIEBwYXJhbSBhUHJvbWlzZXMgaXMgYW4gYXJyYXkgb2YgYWxsIHByb21pc2VzXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfaGFuZGxlUGFnZVZhcmlhbnRJZDogZnVuY3Rpb24gKFxuXHRcdHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSxcblx0XHRvVmFyaWFudElEczogVmFyaWFudElEcyxcblx0XHRvVk06IFZhcmlhbnRNYW5hZ2VtZW50LFxuXHRcdGFQcm9taXNlczogVmFyaWFudE1hbmFnZW1lbnRbXVxuXHQpIHtcblx0XHRvVk0uZ2V0VmFyaWFudHMoKS5mb3JFYWNoKChvVmFyaWFudDogVmFyaWFudE9iamVjdCkgPT4ge1xuXHRcdFx0dGhpcy5fZmluZEFuZFB1c2hWYXJpYW50VG9Qcm9taXNlKG9WYXJpYW50LCBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCwgb1ZNLCBhUHJvbWlzZXMsIHRydWUpO1xuXHRcdH0pO1xuXHR9LFxuXG5cdC8qXG5cdCAqIEhhbmRsZXMgY29udHJvbCBsZXZlbCB2YXJpYW50IGZvciBmaWx0ZXIgYmFyIGFuZCBwYXNzZXMgdGhlIHZhcmlhbnQgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgcHVzaGVzIHRoZSBwcm9taXNlIHRvIHRoZSBwcm9taXNlIGFycmF5XG5cdCAqXG5cdCAqIEBwYXJhbSBvVmFyaW5hdElEcyBjb250YWlucyBhbiBvYmplY3Qgb2YgYWxsIHZhcmlhbnQgSURzXG5cdCAqIEBwYXJhbSBvVk0gY29udGFpbnMgdGhlIHZhaXJhbnQgbWFuYWdlbWVudCBvYmplY3QgZm9yIHRoZSBmaWx0ZXIgYmFyXG5cdCAqIEBwYXJhbSBhUHJvbWlzZXMgaXMgYW4gYXJyYXkgb2YgYWxsIHByb21pc2VzXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXG5cdF9oYW5kbGVGaWx0ZXJCYXJWYXJpYW50Q29udHJvbElkOiBmdW5jdGlvbiAoXG5cdFx0dGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLFxuXHRcdG9WYXJpYW50SURzOiBWYXJpYW50SURzLFxuXHRcdG9WTTogVmFyaWFudE1hbmFnZW1lbnQsXG5cdFx0YVByb21pc2VzOiBWYXJpYW50TWFuYWdlbWVudFtdXG5cdCkge1xuXHRcdGlmIChvVk0pIHtcblx0XHRcdG9WTS5nZXRWYXJpYW50cygpLmZvckVhY2goKG9WYXJpYW50OiBWYXJpYW50T2JqZWN0KSA9PiB7XG5cdFx0XHRcdHRoaXMuX2ZpbmRBbmRQdXNoVmFyaWFudFRvUHJvbWlzZShvVmFyaWFudCwgb1ZhcmlhbnRJRHMuc0ZpbHRlckJhclZhcmlhbnRJZCwgb1ZNLCBhUHJvbWlzZXMsIHRydWUpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9LFxuXG5cdC8qXG5cdCAqIEhhbmRsZXMgY29udHJvbCBsZXZlbCB2YXJpYW50IGZvciB0YWJsZSBhbmQgcGFzc2VzIHRoZSB2YXJpYW50IHRvIHRoZSBmdW5jdGlvbiB0aGF0IHB1c2hlcyB0aGUgcHJvbWlzZSB0byB0aGUgcHJvbWlzZSBhcnJheVxuXHQgKlxuXHQgKiBAcGFyYW0gb1ZhcmluYXRJRHMgY29udGFpbnMgYW4gb2JqZWN0IG9mIGFsbCB2YXJpYW50IElEc1xuXHQgKiBAcGFyYW0gb0NvbnRyb2xsZXIgaGFzIHRoZSBsaXN0IHJlcG9ydCBjb250cm9sbGVyIG9iamVjdFxuXHQgKiBAcGFyYW0gYVByb21pc2VzIGlzIGFuIGFycmF5IG9mIGFsbCBwcm9taXNlc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2hhbmRsZVRhYmxlQ29udHJvbFZhcmlhbnRJZDogZnVuY3Rpb24gKFxuXHRcdHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSxcblx0XHRvVmFyaWFudElEczogVmFyaWFudElEcyxcblx0XHRvQ29udHJvbGxlcjogTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0YVByb21pc2VzOiBWYXJpYW50TWFuYWdlbWVudFtdXG5cdCkge1xuXHRcdGNvbnN0IGFUYWJsZXMgPSBvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJ0YWJsZVwiKTtcblx0XHRhVGFibGVzLmZvckVhY2goKG9UYWJsZTogVGFibGUpID0+IHtcblx0XHRcdGNvbnN0IG9UYWJsZVZhcmlhbnQgPSBvVGFibGUuZ2V0VmFyaWFudCgpO1xuXHRcdFx0aWYgKG9UYWJsZSAmJiBvVGFibGVWYXJpYW50KSB7XG5cdFx0XHRcdG9UYWJsZVZhcmlhbnQuZ2V0VmFyaWFudHMoKS5mb3JFYWNoKChvVmFyaWFudDogVmFyaWFudE9iamVjdCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX2ZpbmRBbmRQdXNoVmFyaWFudFRvUHJvbWlzZShvVmFyaWFudCwgb1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkLCBvVGFibGVWYXJpYW50LCBhUHJvbWlzZXMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHQvKlxuXHQgKiBIYW5kbGVzIGNvbnRyb2wgbGV2ZWwgdmFyaWFudCBmb3IgY2hhcnQgYW5kIHBhc3NlcyB0aGUgdmFyaWFudCB0byB0aGUgZnVuY3Rpb24gdGhhdCBwdXNoZXMgdGhlIHByb21pc2UgdG8gdGhlIHByb21pc2UgYXJyYXlcblx0ICpcblx0ICogQHBhcmFtIG9WYXJpbmF0SURzIGNvbnRhaW5zIGFuIG9iamVjdCBvZiBhbGwgdmFyaWFudCBJRHNcblx0ICogQHBhcmFtIG9Db250cm9sbGVyIGhhcyB0aGUgbGlzdCByZXBvcnQgY29udHJvbGxlciBvYmplY3Rcblx0ICogQHBhcmFtIGFQcm9taXNlcyBpcyBhbiBhcnJheSBvZiBhbGwgcHJvbWlzZXNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9oYW5kbGVDaGFydENvbnRyb2xWYXJpYW50SWQ6IGZ1bmN0aW9uIChcblx0XHR0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsXG5cdFx0b1ZhcmlhbnRJRHM6IFZhcmlhbnRJRHMsXG5cdFx0b0NvbnRyb2xsZXI6IExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdGFQcm9taXNlczogVmFyaWFudE1hbmFnZW1lbnRbXVxuXHQpIHtcblx0XHRjb25zdCBhQ2hhcnRzID0gb0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwiQ2hhcnRcIik7XG5cdFx0YUNoYXJ0cy5mb3JFYWNoKChvQ2hhcnQ6IENoYXJ0KSA9PiB7XG5cdFx0XHRjb25zdCBvQ2hhcnRWYXJpYW50ID0gb0NoYXJ0LmdldFZhcmlhbnQoKTtcblx0XHRcdGNvbnN0IGFWYXJpYW50cyA9IG9DaGFydFZhcmlhbnQuZ2V0VmFyaWFudHMoKTtcblx0XHRcdGlmIChhVmFyaWFudHMpIHtcblx0XHRcdFx0YVZhcmlhbnRzLmZvckVhY2goKG9WYXJpYW50OiBWYXJpYW50T2JqZWN0KSA9PiB7XG5cdFx0XHRcdFx0dGhpcy5fZmluZEFuZFB1c2hWYXJpYW50VG9Qcm9taXNlKG9WYXJpYW50LCBvVmFyaWFudElEcy5zQ2hhcnRWYXJpYW50SWQsIG9DaGFydFZhcmlhbnQsIGFQcm9taXNlcyk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXHQvKlxuXHQgKiBNYXRjaGVzIHRoZSB2YXJpYW50IElEIHByb3ZpZGVkIGluIHRoZSB1cmwgdG8gdGhlIGF2YWlsYWJsZSB2YWlyYW50IElEcyBhbmQgcHVzaGVzIHRoZSBhcHByb3ByaWF0ZSBwcm9taXNlIHRvIHRoZSBwcm9taXNlIGFycmF5XG5cdCAqXG5cdCAqIEBwYXJhbSBvVmFyaWFudCBpcyBhbiBvYmplY3QgZm9yIGEgc3BlY2lmaWMgdmFyaWFudFxuXHQgKiBAcGFyYW0gc1ZhcmlhbnRJZCBpcyB0aGUgdmFyaWFudCBJRCBwcm92aWRlZCBpbiB0aGUgdXJsXG5cdCAqIEBwYXJhbSBvVk0gaXMgdGhlIHZhcmlhbnQgbWFuYWdlbWVudCBvYmplY3QgZm9yIHRoZSBzcGVjZmljIHZhcmlhbnRcblx0ICogQHBhcmFtIGFQcm9taXNlcyBpcyBhbiBhcnJheSBvZiBwcm9taXNlc1xuXHQgKiBAcGFyYW0gYkZpbHRlclZhcmlhbnRBcHBsaWVkIGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlciB3aGljaCBpcyBzZXQgdG8gdHVyZSBpbiBjYXNlIHRoZSBmaWx0ZXIgdmFyaWFudCBpcyBhcHBsaWVkXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZmluZEFuZFB1c2hWYXJpYW50VG9Qcm9taXNlOiBmdW5jdGlvbiAoXG5cdFx0Ly9UaGlzIGZ1bmN0aW9uIGZpbmRzIHRoZSBzdWl0YWJsZSB2YXJpYW50IGZvciB0aGUgdmFyaWFudElEIHByb3ZpZGVkIGluIHRoZSB1cmwgYW5kIHB1c2hlcyB0aGVtIHRvIHRoZSBwcm9taXNlIGFycmF5XG5cdFx0dGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLFxuXHRcdG9WYXJpYW50OiBWYXJpYW50T2JqZWN0LFxuXHRcdHNWYXJpYW50SWQ6IFN0cmluZyxcblx0XHRvVk06IFZhcmlhbnRNYW5hZ2VtZW50LFxuXHRcdGFQcm9taXNlczogVmFyaWFudE1hbmFnZW1lbnRbXSxcblx0XHRiRmlsdGVyVmFyaWFudEFwcGxpZWQ/OiBib29sZWFuXG5cdCkge1xuXHRcdGlmIChvVmFyaWFudC5rZXkgPT09IHNWYXJpYW50SWQpIHtcblx0XHRcdGFQcm9taXNlcy5wdXNoKHRoaXMuX2FwcGx5Q29udHJvbFZhcmlhbnQob1ZNLCBzVmFyaWFudElkLCBiRmlsdGVyVmFyaWFudEFwcGxpZWQpKTtcblx0XHR9XG5cdH0sXG5cblx0X2FwcGx5Q29udHJvbFZhcmlhbnQ6IGZ1bmN0aW9uIChvVmFyaWFudDogYW55LCBzVmFyaWFudElEOiBhbnksIGJGaWx0ZXJWYXJpYW50QXBwbGllZDogYW55KSB7XG5cdFx0Y29uc3Qgc1ZhcmlhbnRSZWZlcmVuY2UgPSB0aGlzLl9jaGVja0lmVmFyaWFudElkSXNBdmFpbGFibGUob1ZhcmlhbnQsIHNWYXJpYW50SUQpID8gc1ZhcmlhbnRJRCA6IG9WYXJpYW50LmdldFN0YW5kYXJkVmFyaWFudEtleSgpO1xuXHRcdGNvbnN0IG9WTSA9IENvbnRyb2xWYXJpYW50QXBwbHlBUEkuYWN0aXZhdGVWYXJpYW50KHtcblx0XHRcdGVsZW1lbnQ6IG9WYXJpYW50LFxuXHRcdFx0dmFyaWFudFJlZmVyZW5jZTogc1ZhcmlhbnRSZWZlcmVuY2Vcblx0XHR9KTtcblx0XHRyZXR1cm4gb1ZNLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGJGaWx0ZXJWYXJpYW50QXBwbGllZDtcblx0XHR9KTtcblx0fSxcblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogcHJpdmF0ZSBoZWxwZXIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0X2dldEZpbHRlckJhclZNOiBmdW5jdGlvbiAob1ZpZXc6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCk7XG5cdFx0c3dpdGNoIChvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQpIHtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLlBhZ2U6XG5cdFx0XHRcdHJldHVybiBvVmlldy5ieUlkKFwiZmU6OlBhZ2VWYXJpYW50TWFuYWdlbWVudFwiKTtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w6XG5cdFx0XHRcdHJldHVybiBvVmlldy5nZXRDb250cm9sbGVyKCkuX2dldEZpbHRlckJhclZhcmlhbnRDb250cm9sKCk7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Ob25lOlxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcihgdW5oYW5kbGVkIHZhcmlhbnQgc2V0dGluZzogJHtvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnR9YCk7XG5cdFx0fVxuXHR9LFxuXG5cdF9wcmV2ZW50SW5pdGlhbFNlYXJjaDogZnVuY3Rpb24gKG9WYXJpYW50TWFuYWdlbWVudDogYW55KSB7XG5cdFx0aWYgKCFvVmFyaWFudE1hbmFnZW1lbnQpIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblx0XHRjb25zdCBhVmFyaWFudHMgPSBvVmFyaWFudE1hbmFnZW1lbnQuZ2V0VmFyaWFudHMoKTtcblx0XHRjb25zdCBvQ3VycmVudFZhcmlhbnQgPSBhVmFyaWFudHMuZmluZChmdW5jdGlvbiAob0l0ZW06IGFueSkge1xuXHRcdFx0cmV0dXJuIG9JdGVtLmtleSA9PT0gb1ZhcmlhbnRNYW5hZ2VtZW50LmdldEN1cnJlbnRWYXJpYW50S2V5KCk7XG5cdFx0fSk7XG5cdFx0cmV0dXJuICFvQ3VycmVudFZhcmlhbnQuZXhlY3V0ZU9uU2VsZWN0O1xuXHR9LFxuXG5cdF9hcHBseVNlbGVjdGlvblZhcmlhbnQ6IGZ1bmN0aW9uIChvVmlldzogYW55LCBvTmF2aWdhdGlvblBhcmFtZXRlcjogYW55LCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGFueSkge1xuXHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkuX2dldEZpbHRlckJhckNvbnRyb2woKSxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50ID0gb05hdmlnYXRpb25QYXJhbWV0ZXIuc2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMgPSBvTmF2aWdhdGlvblBhcmFtZXRlci5zZWxlY3Rpb25WYXJpYW50RGVmYXVsdHM7XG5cdFx0aWYgKCFvRmlsdGVyQmFyIHx8ICFvU2VsZWN0aW9uVmFyaWFudCkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblx0XHRsZXQgb0NvbmRpdGlvbnMgPSB7fTtcblx0XHRjb25zdCBvTWV0YU1vZGVsID0gb1ZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpO1xuXHRcdGNvbnN0IHNDb250ZXh0UGF0aCA9IG9WaWV3RGF0YS5jb250ZXh0UGF0aCB8fCBgLyR7b1ZpZXdEYXRhLmVudGl0eVNldH1gO1xuXHRcdGNvbnN0IGFNYW5kYXRvcnlGaWx0ZXJGaWVsZHMgPSBDb21tb25VdGlscy5nZXRNYW5kYXRvcnlGaWx0ZXJGaWVsZHMob01ldGFNb2RlbCwgc0NvbnRleHRQYXRoKTtcblx0XHRjb25zdCBiVXNlU2VtYW50aWNEYXRlUmFuZ2UgPSBvRmlsdGVyQmFyLmRhdGEoXCJ1c2VTZW1hbnRpY0RhdGVSYW5nZVwiKTtcblx0XHRsZXQgb1ZhcmlhbnQ7XG5cdFx0c3dpdGNoIChvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQpIHtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLlBhZ2U6XG5cdFx0XHRcdG9WYXJpYW50ID0gb1ZpZXcuYnlJZChcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIik7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudFR5cGUuQ29udHJvbDpcblx0XHRcdFx0b1ZhcmlhbnQgPSBvVmlldy5nZXRDb250cm9sbGVyKCkuX2dldEZpbHRlckJhclZhcmlhbnRDb250cm9sKCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudFR5cGUuTm9uZTpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRjb25zdCBiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQgPSBvTmF2aWdhdGlvblBhcmFtZXRlci5yZXF1aXJlc1N0YW5kYXJkVmFyaWFudDtcblx0XHQvLyBjaGVjayBpZiBGTFAgZGVmYXVsdCB2YWx1ZXMgYXJlIHRoZXJlIGFuZCBpcyBpdCBzdGFuZGFyZCB2YXJpYW50XG5cdFx0Y29uc3QgYklzRkxQVmFsdWVQcmVzZW50OiBib29sZWFuID1cblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMgJiZcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMuZ2V0U2VsZWN0T3B0aW9uc1Byb3BlcnR5TmFtZXMoKS5sZW5ndGggPiAwICYmXG5cdFx0XHRvVmFyaWFudC5nZXREZWZhdWx0VmFyaWFudEtleSgpID09PSBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKSAmJlxuXHRcdFx0b05hdmlnYXRpb25QYXJhbWV0ZXIuYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seTtcblxuXHRcdC8vIGdldCBjb25kaXRpb25zIHdoZW4gRkxQIHZhbHVlIGlzIHByZXNlbnRcblx0XHRpZiAoYkZpbHRlclZhcmlhbnRBcHBsaWVkIHx8IGJJc0ZMUFZhbHVlUHJlc2VudCkge1xuXHRcdFx0b0NvbmRpdGlvbnMgPSBvRmlsdGVyQmFyLmdldENvbmRpdGlvbnMoKTtcblx0XHR9XG5cdFx0Q29tbW9uVXRpbHMuYWRkRGVmYXVsdERpc3BsYXlDdXJyZW5jeShhTWFuZGF0b3J5RmlsdGVyRmllbGRzLCBvU2VsZWN0aW9uVmFyaWFudCwgb1NlbGVjdGlvblZhcmlhbnREZWZhdWx0cyk7XG5cdFx0Q29tbW9uVXRpbHMuYWRkU2VsZWN0aW9uVmFyaWFudFRvQ29uZGl0aW9ucyhcblx0XHRcdG9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0b0NvbmRpdGlvbnMsXG5cdFx0XHRvTWV0YU1vZGVsLFxuXHRcdFx0c0NvbnRleHRQYXRoLFxuXHRcdFx0YklzRkxQVmFsdWVQcmVzZW50LFxuXHRcdFx0YlVzZVNlbWFudGljRGF0ZVJhbmdlLFxuXHRcdFx0b1ZpZXdEYXRhXG5cdFx0KTtcblxuXHRcdHJldHVybiB0aGlzLl9hY3RpdmF0ZVNlbGVjdGlvblZhcmlhbnQoXG5cdFx0XHRvRmlsdGVyQmFyLFxuXHRcdFx0b0NvbmRpdGlvbnMsXG5cdFx0XHRvVmFyaWFudCxcblx0XHRcdGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudCxcblx0XHRcdGJGaWx0ZXJWYXJpYW50QXBwbGllZCxcblx0XHRcdGJJc0ZMUFZhbHVlUHJlc2VudFxuXHRcdCk7XG5cdH0sXG5cdF9hY3RpdmF0ZVNlbGVjdGlvblZhcmlhbnQ6IGZ1bmN0aW9uIChcblx0XHRvRmlsdGVyQmFyOiBhbnksXG5cdFx0b0NvbmRpdGlvbnM6IGFueSxcblx0XHRvVmFyaWFudDogYW55LFxuXHRcdGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudDogYW55LFxuXHRcdGJGaWx0ZXJWYXJpYW50QXBwbGllZDogYW55LFxuXHRcdGJJc0ZMUFZhbHVlUHJlc2VudD86IGJvb2xlYW5cblx0KSB7XG5cdFx0bGV0IG9Qcm9taXNlO1xuXG5cdFx0aWYgKG9WYXJpYW50ICYmICFiRmlsdGVyVmFyaWFudEFwcGxpZWQpIHtcblx0XHRcdGxldCBvVmFyaWFudEtleSA9IGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudCA/IG9WYXJpYW50LmdldFN0YW5kYXJkVmFyaWFudEtleSgpIDogb1ZhcmlhbnQuZ2V0RGVmYXVsdFZhcmlhbnRLZXkoKTtcblx0XHRcdGlmIChvVmFyaWFudEtleSA9PT0gbnVsbCkge1xuXHRcdFx0XHRvVmFyaWFudEtleSA9IG9WYXJpYW50LmdldElkKCk7XG5cdFx0XHR9XG5cdFx0XHRvUHJvbWlzZSA9IENvbnRyb2xWYXJpYW50QXBwbHlBUEkuYWN0aXZhdGVWYXJpYW50KHtcblx0XHRcdFx0ZWxlbWVudDogb1ZhcmlhbnQsXG5cdFx0XHRcdHZhcmlhbnRSZWZlcmVuY2U6IG9WYXJpYW50S2V5XG5cdFx0XHR9KS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudCB8fCBvVmFyaWFudC5nZXREZWZhdWx0VmFyaWFudEtleSgpID09PSBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Qcm9taXNlLnRoZW4oKGJDbGVhckZpbHRlckFuZFJlcGxhY2VXaXRoQXBwU3RhdGU6IGFueSkgPT4ge1xuXHRcdFx0aWYgKGJDbGVhckZpbHRlckFuZFJlcGxhY2VXaXRoQXBwU3RhdGUpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX2ZuQXBwbHlDb25kaXRpb25zKG9GaWx0ZXJCYXIsIG9Db25kaXRpb25zLCBiSXNGTFBWYWx1ZVByZXNlbnQpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXG5cdC8qXG5cdCAqIFNldHMgZmlsdGVyZWQ6IGZhbHNlIGZsYWcgdG8gZXZlcnkgZmllbGQgc28gdGhhdCBpdCBjYW4gYmUgY2xlYXJlZCBvdXRcblx0ICpcblx0ICogQHBhcmFtIG9GaWx0ZXJCYXIgZmlsdGVyYmFyIGNvbnRyb2wgaXMgdXNlZCB0byBkaXNwbGF5IGZpbHRlciBwcm9wZXJ0aWVzIGluIGEgdXNlci1mcmllbmRseSBtYW5uZXIgdG8gcG9wdWxhdGUgdmFsdWVzIGZvciBhIHF1ZXJ5XG5cdCAqIEByZXR1cm5zIHByb21pc2Ugd2hpY2ggd2lsbCBiZSByZXNvbHZlZCB0byBvYmplY3Rcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9mbkNsZWFyU3RhdGVCZWZvcmV4QXBwTmF2OiBhc3luYyBmdW5jdGlvbiAob0ZpbHRlckJhcjogRmlsdGVyQmFyKSB7XG5cdFx0cmV0dXJuIGF3YWl0IFN0YXRlVXRpbC5yZXRyaWV2ZUV4dGVybmFsU3RhdGUob0ZpbHRlckJhcilcblx0XHRcdC50aGVuKChvRXh0ZXJuYWxTdGF0ZTogYW55KSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9Db25kaXRpb24gPSBvRXh0ZXJuYWxTdGF0ZS5maWx0ZXI7XG5cdFx0XHRcdGZvciAoY29uc3QgZmllbGQgaW4gb0NvbmRpdGlvbikge1xuXHRcdFx0XHRcdGlmIChmaWVsZCAhPT0gXCIkZWRpdFN0YXRlXCIgJiYgZmllbGQgIT09IFwiJHNlYXJjaFwiICYmIG9Db25kaXRpb25bZmllbGRdKSB7XG5cdFx0XHRcdFx0XHRvQ29uZGl0aW9uW2ZpZWxkXS5mb3JFYWNoKChjb25kaXRpb246IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+KSA9PiB7XG5cdFx0XHRcdFx0XHRcdGNvbmRpdGlvbltcImZpbHRlcmVkXCJdID0gZmFsc2U7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShvQ29uZGl0aW9uKTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogYW55KSB7XG5cdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIHJldHJpZXZpbmcgdGhlIGV4dGVybmFsIHN0YXRlXCIsIG9FcnJvcik7XG5cdFx0XHR9KTtcblx0fSxcblxuXHRfZm5BcHBseUNvbmRpdGlvbnM6IGFzeW5jIGZ1bmN0aW9uIChvRmlsdGVyQmFyOiBhbnksIG9Db25kaXRpb25zOiBhbnksIGJJc0ZMUFZhbHVlUHJlc2VudD86IGJvb2xlYW4pIHtcblx0XHRjb25zdCBtRmlsdGVyOiBhbnkgPSB7fSxcblx0XHRcdGFJdGVtczogYW55W10gPSBbXSxcblx0XHRcdGZuQWRqdXN0VmFsdWVIZWxwQ29uZGl0aW9uID0gZnVuY3Rpb24gKG9Db25kaXRpb246IGFueSkge1xuXHRcdFx0XHQvLyBpbiBjYXNlIHRoZSBjb25kaXRpb24gaXMgbWVhbnQgZm9yIGEgZmllbGQgaGF2aW5nIGEgVkgsIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgTURDIGRpZmZlcnNcblx0XHRcdFx0b0NvbmRpdGlvbi52YWxpZGF0ZWQgPSBDb25kaXRpb25WYWxpZGF0ZWQuVmFsaWRhdGVkO1xuXHRcdFx0XHRpZiAob0NvbmRpdGlvbi5vcGVyYXRvciA9PT0gXCJFbXB0eVwiKSB7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi5vcGVyYXRvciA9IFwiRVFcIjtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLnZhbHVlcyA9IFtcIlwiXTtcblx0XHRcdFx0fSBlbHNlIGlmIChvQ29uZGl0aW9uLm9wZXJhdG9yID09PSBcIk5vdEVtcHR5XCIpIHtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLm9wZXJhdG9yID0gXCJORVwiO1xuXHRcdFx0XHRcdG9Db25kaXRpb24udmFsdWVzID0gW1wiXCJdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRlbGV0ZSBvQ29uZGl0aW9uLmlzRW1wdHk7XG5cdFx0XHR9O1xuXHRcdGNvbnN0IGZuR2V0UHJvcGVydHlJbmZvID0gZnVuY3Rpb24gKG9GaWx0ZXJDb250cm9sOiBhbnksIHNFbnRpdHlUeXBlUGF0aDogYW55KSB7XG5cdFx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldEVudGl0eVNldFBhdGgoc0VudGl0eVR5cGVQYXRoKSxcblx0XHRcdFx0b01ldGFNb2RlbCA9IG9GaWx0ZXJDb250cm9sLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdG9GUiA9IENvbW1vblV0aWxzLmdldEZpbHRlclJlc3RyaWN0aW9uc0J5UGF0aChzRW50aXR5U2V0UGF0aCwgb01ldGFNb2RlbCksXG5cdFx0XHRcdGFOb25GaWx0ZXJhYmxlUHJvcHMgPSBvRlIuTm9uRmlsdGVyYWJsZVByb3BlcnRpZXMsXG5cdFx0XHRcdG1GaWx0ZXJGaWVsZHMgPSBGaWx0ZXJVdGlscy5nZXRDb252ZXJ0ZWRGaWx0ZXJGaWVsZHMob0ZpbHRlckNvbnRyb2wsIHNFbnRpdHlUeXBlUGF0aCksXG5cdFx0XHRcdGFQcm9wZXJ0eUluZm86IGFueVtdID0gW107XG5cdFx0XHRtRmlsdGVyRmllbGRzLmZvckVhY2goZnVuY3Rpb24gKG9Db252ZXJ0ZWRQcm9wZXJ0eSkge1xuXHRcdFx0XHRjb25zdCBzUHJvcGVydHlQYXRoID0gb0NvbnZlcnRlZFByb3BlcnR5LmNvbmRpdGlvblBhdGgucmVwbGFjZShDT05ESVRJT05fUEFUSF9UT19QUk9QRVJUWV9QQVRIX1JFR0VYLCBcIlwiKTtcblx0XHRcdFx0aWYgKGFOb25GaWx0ZXJhYmxlUHJvcHMuaW5kZXhPZihzUHJvcGVydHlQYXRoKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRjb25zdCBzQW5ub3RhdGlvblBhdGggPSBvQ29udmVydGVkUHJvcGVydHkuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRcdFx0Y29uc3Qgb1Byb3BlcnR5Q29udGV4dCA9IG9NZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoc0Fubm90YXRpb25QYXRoKTtcblx0XHRcdFx0XHRhUHJvcGVydHlJbmZvLnB1c2goe1xuXHRcdFx0XHRcdFx0cGF0aDogb0NvbnZlcnRlZFByb3BlcnR5LmNvbmRpdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRoaWRkZW5GaWx0ZXI6IG9Db252ZXJ0ZWRQcm9wZXJ0eS5hdmFpbGFiaWxpdHkgPT09IFwiSGlkZGVuXCIsXG5cdFx0XHRcdFx0XHRoYXNWYWx1ZUhlbHA6ICFzQW5ub3RhdGlvblBhdGhcblx0XHRcdFx0XHRcdFx0PyBmYWxzZVxuXHRcdFx0XHRcdFx0XHQ6IFByb3BlcnR5Rm9ybWF0dGVycy5oYXNWYWx1ZUhlbHAob1Byb3BlcnR5Q29udGV4dC5nZXRPYmplY3QoKSwgeyBjb250ZXh0OiBvUHJvcGVydHlDb250ZXh0IH0pXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGFQcm9wZXJ0eUluZm87XG5cdFx0fTtcblxuXHRcdHJldHVybiBvRmlsdGVyQmFyLndhaXRGb3JJbml0aWFsaXphdGlvbigpLnRoZW4oYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgc0VudGl0eVR5cGVQYXRoID0gRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGEob0ZpbHRlckJhciwgXCJlbnRpdHlUeXBlXCIpO1xuXHRcdFx0Ly8gRHVyaW5nIGV4dGVybmFsIGFwcCBuYXZpZ2F0aW9uLCB3ZSBoYXZlIHRvIGNsZWFyIHRoZSBleGlzdGluZyBjb25kaXRpb25zIHRvIGF2b2lkIG1lcmdpbmcgb2YgdmFsdWVzIGNvbWluZyBmcm9tIGFubm90YXRpb24gYW5kIGNvbnRleHRcblx0XHRcdC8vIENvbmRpdGlvbiAhYklzRkxQVmFsdWVQcmVzZW50IGluZGljYXRlcyBpdCdzIGV4dGVybmFsIGFwcCBuYXZpZ2F0aW9uXG5cdFx0XHRpZiAoIWJJc0ZMUFZhbHVlUHJlc2VudCkge1xuXHRcdFx0XHRjb25zdCBvQ2xlYXJDb25kaXRpb25zID0gYXdhaXQgdGhpcy5fZm5DbGVhclN0YXRlQmVmb3JleEFwcE5hdihvRmlsdGVyQmFyKTtcblx0XHRcdFx0YXdhaXQgU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZShvRmlsdGVyQmFyLCB7XG5cdFx0XHRcdFx0ZmlsdGVyOiBvQ2xlYXJDb25kaXRpb25zLFxuXHRcdFx0XHRcdGl0ZW1zOiBhSXRlbXNcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHRjb25zdCBhUHJvcGVydHlJbmZvID0gZm5HZXRQcm9wZXJ0eUluZm8ob0ZpbHRlckJhciwgc0VudGl0eVR5cGVQYXRoKTtcblx0XHRcdGFQcm9wZXJ0eUluZm9cblx0XHRcdFx0LmZpbHRlcihmdW5jdGlvbiAob1Byb3BlcnR5SW5mbzogYW55KSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9Qcm9wZXJ0eUluZm8ucGF0aCAhPT0gXCIkZWRpdFN0YXRlXCIgJiYgb1Byb3BlcnR5SW5mby5wYXRoICE9PSBcIiRzZWFyY2hcIjtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmZvckVhY2goKG9Qcm9wZXJ0eUluZm86IGFueSkgPT4ge1xuXHRcdFx0XHRcdGlmIChvUHJvcGVydHlJbmZvLnBhdGggaW4gb0NvbmRpdGlvbnMpIHtcblx0XHRcdFx0XHRcdG1GaWx0ZXJbb1Byb3BlcnR5SW5mby5wYXRoXSA9IG9Db25kaXRpb25zW29Qcm9wZXJ0eUluZm8ucGF0aF07XG5cdFx0XHRcdFx0XHRpZiAoIW9Qcm9wZXJ0eUluZm8uaGlkZGVuRmlsdGVyKSB7XG5cdFx0XHRcdFx0XHRcdGFJdGVtcy5wdXNoKHsgbmFtZTogb1Byb3BlcnR5SW5mby5wYXRoIH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKG9Qcm9wZXJ0eUluZm8uaGFzVmFsdWVIZWxwKSB7XG5cdFx0XHRcdFx0XHRcdG1GaWx0ZXJbb1Byb3BlcnR5SW5mby5wYXRoXS5mb3JFYWNoKGZuQWRqdXN0VmFsdWVIZWxwQ29uZGl0aW9uKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdG1GaWx0ZXJbb1Byb3BlcnR5SW5mby5wYXRoXS5mb3JFYWNoKGZ1bmN0aW9uIChvQ29uZGl0aW9uOiBhbnkpIHtcblx0XHRcdFx0XHRcdFx0XHRvQ29uZGl0aW9uLnZhbGlkYXRlZCA9IG9Db25kaXRpb24uZmlsdGVyZWQgPyBDb25kaXRpb25WYWxpZGF0ZWQuTm90VmFsaWRhdGVkIDogb0NvbmRpdGlvbi52YWxpZGF0ZWQ7XG5cdFx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0gPSBbXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUob0ZpbHRlckJhciwgeyBmaWx0ZXI6IG1GaWx0ZXIsIGl0ZW1zOiBhSXRlbXMgfSk7XG5cdFx0fSk7XG5cdH0sXG5cdF9jbGVhckZpbHRlckNvbmRpdGlvbnM6IGFzeW5jIGZ1bmN0aW9uIChvRmlsdGVyQmFyOiBGaWx0ZXJCYXIpIHtcblx0XHRjb25zdCBhSXRlbXM6IFByb3BlcnR5SW5mb1tdID0gW107XG5cdFx0cmV0dXJuIG9GaWx0ZXJCYXIud2FpdEZvckluaXRpYWxpemF0aW9uKCkudGhlbihhc3luYyAoKSA9PiB7XG5cdFx0XHRjb25zdCBvQ2xlYXJDb25kaXRpb25zID0gYXdhaXQgdGhpcy5fZm5DbGVhclN0YXRlQmVmb3JleEFwcE5hdihvRmlsdGVyQmFyKTtcblx0XHRcdHJldHVybiBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKG9GaWx0ZXJCYXIsIHtcblx0XHRcdFx0ZmlsdGVyOiBvQ2xlYXJDb25kaXRpb25zLFxuXHRcdFx0XHRpdGVtczogYUl0ZW1zXG5cdFx0XHR9KTtcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVmlld1N0YXRlT3ZlcnJpZGU7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7O0VBK0NBLE1BQU1BLE9BQU8sR0FBR0MsVUFBVSxDQUFDRCxPQUFPO0lBQ2pDRSxxQkFBcUIsR0FBR0MsV0FBVyxDQUFDQyxpQkFBaUI7SUFDckRDLG1CQUFtQixHQUFHRixXQUFXLENBQUNFLG1CQUFtQjtJQUNyREMsZUFBZSxHQUFHSCxXQUFXLENBQUNHLGVBQWU7SUFDN0NDLHFDQUFxQyxHQUFHLFFBQVE7RUFFakQsTUFBTUMsaUJBQXNCLEdBQUc7SUFDOUJDLGlCQUFpQixFQUFFLEtBQUs7SUFDeEJDLHFCQUFxQixFQUFFLFlBQVk7TUFDbEMsT0FBTyxJQUFJO0lBQ1osQ0FBQztJQUNEQyxvQkFBb0IsRUFBRSxVQUFzREMsU0FBYyxFQUFFQyxjQUF1QixFQUFFO01BQ3BILE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLE9BQU8sRUFBRTtRQUMzQkMsV0FBVyxHQUFHRixLQUFLLENBQUNHLGFBQWEsRUFBMEI7UUFDM0RDLFVBQVUsR0FBR0YsV0FBVyxDQUFDRyxvQkFBb0IsRUFBRTtRQUMvQ0MsT0FBTyxHQUFHSixXQUFXLENBQUNLLFlBQVksQ0FBQyxPQUFPLENBQUM7TUFDNUMsSUFBSUgsVUFBVSxFQUFFO1FBQ2ZBLFVBQVUsQ0FBQ0ksbUJBQW1CLENBQUMsSUFBSSxDQUFD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
|
|
483
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwiTmF2TGlicmFyeSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvcmVMaWJyYXJ5IiwiVmFyaWFudE1hbmFnZW1lbnQiLCJUZW1wbGF0ZUNvbnRlbnRWaWV3IiwiSW5pdGlhbExvYWRNb2RlIiwiQ09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCIsIlZpZXdTdGF0ZU92ZXJyaWRlIiwiX2JTZWFyY2hUcmlnZ2VyZWQiLCJhcHBseUluaXRpYWxTdGF0ZU9ubHkiLCJvbkJlZm9yZVN0YXRlQXBwbGllZCIsImFQcm9taXNlcyIsIm5hdmlnYXRpb25UeXBlIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiYVRhYmxlcyIsIl9nZXRDb250cm9scyIsInNldFN1c3BlbmRTZWxlY3Rpb24iLCJwdXNoIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiaHlicmlkIiwiX2NsZWFyRmlsdGVyQ29uZGl0aW9ucyIsImZvckVhY2giLCJvVGFibGUiLCJpbml0aWFsaXplZCIsImFkYXB0QmluZGluZ1JlZnJlc2hDb250cm9scyIsImFDb250cm9scyIsImFWaWV3Q29udHJvbHMiLCJhQ29udHJvbHNUb1JlZnJlc2giLCJLZWVwQWxpdmVIZWxwZXIiLCJnZXRDb250cm9sc0ZvclJlZnJlc2giLCJBcnJheSIsInByb3RvdHlwZSIsImFwcGx5IiwiYWRhcHRTdGF0ZUNvbnRyb2xzIiwiYVN0YXRlQ29udHJvbHMiLCJvVmlld0RhdGEiLCJnZXRWaWV3RGF0YSIsImJDb250cm9sVk0iLCJ2YXJpYW50TWFuYWdlbWVudCIsIkNvbnRyb2wiLCJvRmlsdGVyQmFyVk0iLCJfZ2V0RmlsdGVyQmFyVk0iLCJfaXNNdWx0aU1vZGUiLCJfZ2V0TXVsdGlNb2RlQ29udHJvbCIsIm9RdWlja0ZpbHRlciIsImdldFF1aWNrRmlsdGVyIiwiZ2V0VmFyaWFudCIsIm9DaGFydCIsIl9oYXNNdWx0aVZpc3VhbGl6YXRpb25zIiwiX2dldFNlZ21lbnRlZEJ1dHRvbiIsIkNoYXJ0IiwiVGFibGUiLCJieUlkIiwicmV0cmlldmVBZGRpdGlvbmFsU3RhdGVzIiwibUFkZGl0aW9uYWxTdGF0ZXMiLCJiUGVuZGluZ0ZpbHRlciIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJkYXRhTG9hZGVkIiwic0FscENvbnRlbnRWaWV3IiwiYWxwQ29udGVudFZpZXciLCJhcHBseUFkZGl0aW9uYWxTdGF0ZXMiLCJvQWRkaXRpb25hbFN0YXRlcyIsInRyaWdnZXJTZWFyY2giLCJvSW50ZXJuYWxNb2RlbENvbnRleHQiLCJzeXN0ZW0iLCJkZXNrdG9wIiwiSHlicmlkIiwiZ2V0TW9kZWwiLCJzZXRQcm9wZXJ0eSIsImdldFBhdGgiLCJfYXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVyc1RvRmlsdGVyYmFyIiwib05hdmlnYXRpb25QYXJhbWV0ZXIiLCJhUmVzdWx0cyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzdGFydHVwUGFyYW1ldGVycyIsIm9WYXJpYW50UHJvbWlzZSIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImJGaWx0ZXJWYXJpYW50QXBwbGllZCIsInRoZW4iLCJhVmFyaWFudHMiLCJsZW5ndGgiLCJfYXBwbHlTZWxlY3Rpb25WYXJpYW50Iiwib0R5bmFtaWNQYWdlIiwiX2dldER5bmFtaWNMaXN0UmVwb3J0Q29udHJvbCIsImJQcmV2ZW50SW5pdGlhbFNlYXJjaCIsIm9GaWx0ZXJCYXJDb250cm9sIiwiaW5pdGlhbCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiaW5pdGlhbExvYWQiLCJFbmFibGVkIiwiX3Nob3VsZEF1dG9UcmlnZ2VyU2VhcmNoIiwiX3ByZXZlbnRJbml0aWFsU2VhcmNoIiwic2V0SGVhZGVyRXhwYW5kZWQiLCJjYXRjaCIsIkxvZyIsImVycm9yIiwib1VybFBhcmFtcyIsImFQYWdlVmFyaWFudElkIiwiYUZpbHRlckJhclZhcmlhbnRJZCIsImFUYWJsZVZhcmlhbnRJZCIsImFDaGFydFZhcmlhbnRJZCIsIm9WYXJpYW50SURzIiwic1BhZ2VWYXJpYW50SWQiLCJzRmlsdGVyQmFyVmFyaWFudElkIiwic1RhYmxlVmFyaWFudElkIiwic0NoYXJ0VmFyaWFudElkIiwiX2hhbmRsZUNvbnRyb2xWYXJpYW50SWQiLCJvVk0iLCJzVmFyaWFudE1hbmFnZW1lbnQiLCJfaGFuZGxlUGFnZVZhcmlhbnRJZCIsIl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCIsIl9oYW5kbGVGaWx0ZXJCYXJWYXJpYW50Q29udHJvbElkIiwiX2hhbmRsZVRhYmxlQ29udHJvbFZhcmlhbnRJZCIsIl9oYW5kbGVDaGFydENvbnRyb2xWYXJpYW50SWQiLCJQcm9taXNlIiwiYWxsIiwiZ2V0VmFyaWFudHMiLCJvVmFyaWFudCIsIl9maW5kQW5kUHVzaFZhcmlhbnRUb1Byb21pc2UiLCJvVGFibGVWYXJpYW50IiwiYUNoYXJ0cyIsIm9DaGFydFZhcmlhbnQiLCJzVmFyaWFudElkIiwia2V5IiwiX2FwcGx5Q29udHJvbFZhcmlhbnQiLCJzVmFyaWFudElEIiwic1ZhcmlhbnRSZWZlcmVuY2UiLCJfY2hlY2tJZlZhcmlhbnRJZElzQXZhaWxhYmxlIiwiZ2V0U3RhbmRhcmRWYXJpYW50S2V5IiwiQ29udHJvbFZhcmlhbnRBcHBseUFQSSIsImFjdGl2YXRlVmFyaWFudCIsImVsZW1lbnQiLCJ2YXJpYW50UmVmZXJlbmNlIiwiUGFnZSIsIk5vbmUiLCJFcnJvciIsIm9WYXJpYW50TWFuYWdlbWVudCIsIm9DdXJyZW50VmFyaWFudCIsImZpbmQiLCJvSXRlbSIsImdldEN1cnJlbnRWYXJpYW50S2V5IiwiZXhlY3V0ZU9uU2VsZWN0Iiwib1NlbGVjdGlvblZhcmlhbnQiLCJzZWxlY3Rpb25WYXJpYW50Iiwib1NlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsInNlbGVjdGlvblZhcmlhbnREZWZhdWx0cyIsInJlc29sdmUiLCJvQ29uZGl0aW9ucyIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJzQ29udGV4dFBhdGgiLCJjb250ZXh0UGF0aCIsImVudGl0eVNldCIsImFNYW5kYXRvcnlGaWx0ZXJGaWVsZHMiLCJDb21tb25VdGlscyIsImdldE1hbmRhdG9yeUZpbHRlckZpZWxkcyIsImJVc2VTZW1hbnRpY0RhdGVSYW5nZSIsImRhdGEiLCJiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQiLCJiSXNGTFBWYWx1ZVByZXNlbnQiLCJnZXRTZWxlY3RPcHRpb25zUHJvcGVydHlOYW1lcyIsImdldERlZmF1bHRWYXJpYW50S2V5IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsImdldENvbmRpdGlvbnMiLCJhZGREZWZhdWx0RGlzcGxheUN1cnJlbmN5IiwiYWRkU2VsZWN0aW9uVmFyaWFudFRvQ29uZGl0aW9ucyIsIl9hY3RpdmF0ZVNlbGVjdGlvblZhcmlhbnQiLCJvUHJvbWlzZSIsIm9WYXJpYW50S2V5IiwiZ2V0SWQiLCJiQ2xlYXJGaWx0ZXJBbmRSZXBsYWNlV2l0aEFwcFN0YXRlIiwiX2ZuQXBwbHlDb25kaXRpb25zIiwiX2ZuQ2xlYXJTdGF0ZUJlZm9yZXhBcHBOYXYiLCJTdGF0ZVV0aWwiLCJyZXRyaWV2ZUV4dGVybmFsU3RhdGUiLCJvRXh0ZXJuYWxTdGF0ZSIsIm9Db25kaXRpb24iLCJmaWx0ZXIiLCJmaWVsZCIsImNvbmRpdGlvbiIsIm9FcnJvciIsIm1GaWx0ZXIiLCJhSXRlbXMiLCJmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbiIsInZhbGlkYXRlZCIsIkNvbmRpdGlvblZhbGlkYXRlZCIsIlZhbGlkYXRlZCIsIm9wZXJhdG9yIiwidmFsdWVzIiwiaXNFbXB0eSIsImZuR2V0UHJvcGVydHlJbmZvIiwib0ZpbHRlckNvbnRyb2wiLCJzRW50aXR5VHlwZVBhdGgiLCJzRW50aXR5U2V0UGF0aCIsIk1vZGVsSGVscGVyIiwiZ2V0RW50aXR5U2V0UGF0aCIsIm9GUiIsImdldEZpbHRlclJlc3RyaWN0aW9uc0J5UGF0aCIsImFOb25GaWx0ZXJhYmxlUHJvcHMiLCJOb25GaWx0ZXJhYmxlUHJvcGVydGllcyIsIm1GaWx0ZXJGaWVsZHMiLCJGaWx0ZXJVdGlscyIsImdldENvbnZlcnRlZEZpbHRlckZpZWxkcyIsImFQcm9wZXJ0eUluZm8iLCJvQ29udmVydGVkUHJvcGVydHkiLCJzUHJvcGVydHlQYXRoIiwiY29uZGl0aW9uUGF0aCIsInJlcGxhY2UiLCJpbmRleE9mIiwic0Fubm90YXRpb25QYXRoIiwiYW5ub3RhdGlvblBhdGgiLCJvUHJvcGVydHlDb250ZXh0IiwiY3JlYXRlQmluZGluZ0NvbnRleHQiLCJwYXRoIiwiaGlkZGVuRmlsdGVyIiwiYXZhaWxhYmlsaXR5IiwiaGFzVmFsdWVIZWxwIiwiUHJvcGVydHlGb3JtYXR0ZXJzIiwiZ2V0T2JqZWN0IiwiY29udGV4dCIsIkRlbGVnYXRlVXRpbCIsImdldEN1c3RvbURhdGEiLCJvQ2xlYXJDb25kaXRpb25zIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiaXRlbXMiLCJvUHJvcGVydHlJbmZvIiwibmFtZSIsImZpbHRlcmVkIiwiTm90VmFsaWRhdGVkIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJWaWV3U3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBWaWV3U3RhdGUgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1ZpZXdTdGF0ZVwiO1xuaW1wb3J0IEtlZXBBbGl2ZUhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9LZWVwQWxpdmVIZWxwZXJcIjtcbmltcG9ydCB0eXBlIHsgSW50ZXJuYWxNb2RlbENvbnRleHQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29yZUxpYnJhcnkgZnJvbSBcInNhcC9mZS9jb3JlL2xpYnJhcnlcIjtcbmltcG9ydCAqIGFzIFByb3BlcnR5Rm9ybWF0dGVycyBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwsIHsgUHJvcGVydHlJbmZvIH0gZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgRmlsdGVyVXRpbHMgZnJvbSBcInNhcC9mZS9tYWNyb3MvZmlsdGVyL0ZpbHRlclV0aWxzXCI7XG5pbXBvcnQgTmF2TGlicmFyeSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBzeXN0ZW0gfSBmcm9tIFwic2FwL3VpL0RldmljZVwiO1xuaW1wb3J0IENvbnRyb2xWYXJpYW50QXBwbHlBUEkgZnJvbSBcInNhcC91aS9mbC9hcHBseS9hcGkvQ29udHJvbFZhcmlhbnRBcHBseUFQSVwiO1xuaW1wb3J0IHR5cGUgVmFyaWFudE1hbmFnZW1lbnQgZnJvbSBcInNhcC91aS9mbC92YXJpYW50cy9WYXJpYW50TWFuYWdlbWVudFwiO1xuaW1wb3J0IENoYXJ0IGZyb20gXCJzYXAvdWkvbWRjL0NoYXJ0XCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgRmlsdGVyQmFyIGZyb20gXCJzYXAvdWkvbWRjL0ZpbHRlckJhclwiO1xuaW1wb3J0IFN0YXRlVXRpbCBmcm9tIFwic2FwL3VpL21kYy9wMTNuL1N0YXRlVXRpbFwiO1xuaW1wb3J0IFRhYmxlIGZyb20gXCJzYXAvdWkvbWRjL1RhYmxlXCI7XG5cbnR5cGUgVmFyaWFudE9iamVjdCA9IHtcblx0YXV0aG9yOiBTdHJpbmc7XG5cdGNoYW5nZTogYm9vbGVhbjtcblx0Y29udGV4dHM6IG9iamVjdDtcblx0ZXhlY3V0ZU9uU2VsZWN0OiBib29sZWFuO1xuXHRmYXZvcml0ZTogYm9vbGVhbjtcblx0a2V5OiBTdHJpbmc7XG5cdG9yaWdpbmFsQ29udGV4dHM6IG9iamVjdDtcblx0b3JpZ2luYWxFeGVjdXRlT25TZWxlY3Q6IGJvb2xlYW47XG5cdG9yaWdpbmFsRmF2b3JpdGU6IGJvb2xlYW47XG5cdG9yaWdpbmFsVGl0bGU6IFN0cmluZztcblx0b3JpZ2luYWxWaXNpYmxlOiBib29sZWFuO1xuXHRyZW1vdmU6IGJvb2xlYW47XG5cdHJlbmFtZTogYm9vbGVhbjtcblx0c2hhcmluZzogU3RyaW5nO1xuXHR0aXRsZTogU3RyaW5nO1xuXHR2aXNpYmxlOiBib29sZWFuO1xufTtcblxudHlwZSBWYXJpYW50SURzID0ge1xuXHRzUGFnZVZhcmlhbnRJZDogU3RyaW5nO1xuXHRzRmlsdGVyQmFyVmFyaWFudElkOiBTdHJpbmc7XG5cdHNUYWJsZVZhcmlhbnRJZDogU3RyaW5nO1xuXHRzQ2hhcnRWYXJpYW50SWQ6IFN0cmluZztcbn07XG5cbmNvbnN0IE5hdlR5cGUgPSBOYXZMaWJyYXJ5Lk5hdlR5cGUsXG5cdFZhcmlhbnRNYW5hZ2VtZW50VHlwZSA9IENvcmVMaWJyYXJ5LlZhcmlhbnRNYW5hZ2VtZW50LFxuXHRUZW1wbGF0ZUNvbnRlbnRWaWV3ID0gQ29yZUxpYnJhcnkuVGVtcGxhdGVDb250ZW50Vmlldyxcblx0SW5pdGlhbExvYWRNb2RlID0gQ29yZUxpYnJhcnkuSW5pdGlhbExvYWRNb2RlLFxuXHRDT05ESVRJT05fUEFUSF9UT19QUk9QRVJUWV9QQVRIX1JFR0VYID0gL1xcK3xcXCovZztcblxuY29uc3QgVmlld1N0YXRlT3ZlcnJpZGU6IGFueSA9IHtcblx0X2JTZWFyY2hUcmlnZ2VyZWQ6IGZhbHNlLFxuXHRhcHBseUluaXRpYWxTdGF0ZU9ubHk6IGZ1bmN0aW9uICgpIHtcblx0XHRyZXR1cm4gdHJ1ZTtcblx0fSxcblx0b25CZWZvcmVTdGF0ZUFwcGxpZWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIGFQcm9taXNlczogYW55LCBuYXZpZ2F0aW9uVHlwZT86IHN0cmluZykge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpLFxuXHRcdFx0YVRhYmxlcyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRvRmlsdGVyQmFyLnNldFN1c3BlbmRTZWxlY3Rpb24odHJ1ZSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaCgob0ZpbHRlckJhciBhcyBhbnkpLndhaXRGb3JJbml0aWFsaXphdGlvbigpKTtcblx0XHRcdC8vVGhpcyBpcyByZXF1aXJlZCB0byByZW1vdmUgYW55IGV4aXN0aW5nIG9yIGRlZmF1bHQgZmlsdGVyIGNvbmRpdGlvbnMgYmVmb3JlIHJlc3RvcmluZyB0aGUgZmlsdGVyIGJhciBzdGF0ZSBpbiBoeWJyaWQgbmF2aWdhdGlvbiBtb2RlLlxuXHRcdFx0aWYgKG5hdmlnYXRpb25UeXBlID09PSBOYXZUeXBlLmh5YnJpZCkge1xuXHRcdFx0XHR0aGlzLl9jbGVhckZpbHRlckNvbmRpdGlvbnMob0ZpbHRlckJhcik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGFUYWJsZXMuZm9yRWFjaChmdW5jdGlvbiAob1RhYmxlOiBhbnkpIHtcblx0XHRcdGFQcm9taXNlcy5wdXNoKG9UYWJsZS5pbml0aWFsaXplZCgpKTtcblx0XHR9KTtcblxuXHRcdGRlbGV0ZSB0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkO1xuXHR9LFxuXHRhZGFwdEJpbmRpbmdSZWZyZXNoQ29udHJvbHM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUsIGFDb250cm9sczogYW55KSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdFx0YVZpZXdDb250cm9scyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scygpLFxuXHRcdFx0YUNvbnRyb2xzVG9SZWZyZXNoID0gS2VlcEFsaXZlSGVscGVyLmdldENvbnRyb2xzRm9yUmVmcmVzaChvVmlldywgYVZpZXdDb250cm9scyk7XG5cblx0XHRBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShhQ29udHJvbHMsIGFDb250cm9sc1RvUmVmcmVzaCk7XG5cdH0sXG5cdGFkYXB0U3RhdGVDb250cm9sczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgYVN0YXRlQ29udHJvbHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCksXG5cdFx0XHRiQ29udHJvbFZNID0gb1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50ID09PSBWYXJpYW50TWFuYWdlbWVudFR5cGUuQ29udHJvbDtcblxuXHRcdGNvbnN0IG9GaWx0ZXJCYXJWTSA9IHRoaXMuX2dldEZpbHRlckJhclZNKG9WaWV3KTtcblx0XHRpZiAob0ZpbHRlckJhclZNKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9GaWx0ZXJCYXJWTSk7XG5cdFx0fVxuXHRcdGlmIChvQ29udHJvbGxlci5faXNNdWx0aU1vZGUoKSkge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvQ29udHJvbGxlci5fZ2V0TXVsdGlNb2RlQ29udHJvbCgpKTtcblx0XHR9XG5cdFx0b0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwidGFibGVcIikuZm9yRWFjaChmdW5jdGlvbiAob1RhYmxlOiBhbnkpIHtcblx0XHRcdGNvbnN0IG9RdWlja0ZpbHRlciA9IG9UYWJsZS5nZXRRdWlja0ZpbHRlcigpO1xuXHRcdFx0aWYgKG9RdWlja0ZpbHRlcikge1xuXHRcdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9RdWlja0ZpbHRlcik7XG5cdFx0XHR9XG5cdFx0XHRpZiAoYkNvbnRyb2xWTSkge1xuXHRcdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9UYWJsZS5nZXRWYXJpYW50KCkpO1xuXHRcdFx0fVxuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvVGFibGUpO1xuXHRcdH0pO1xuXHRcdGlmIChvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJDaGFydFwiKSkge1xuXHRcdFx0b0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwiQ2hhcnRcIikuZm9yRWFjaChmdW5jdGlvbiAob0NoYXJ0OiBhbnkpIHtcblx0XHRcdFx0aWYgKGJDb250cm9sVk0pIHtcblx0XHRcdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9DaGFydC5nZXRWYXJpYW50KCkpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NoYXJ0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvQ29udHJvbGxlci5fZ2V0U2VnbWVudGVkQnV0dG9uKFRlbXBsYXRlQ29udGVudFZpZXcuQ2hhcnQpKTtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NvbnRyb2xsZXIuX2dldFNlZ21lbnRlZEJ1dHRvbihUZW1wbGF0ZUNvbnRlbnRWaWV3LlRhYmxlKSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9GaWx0ZXJCYXIpO1xuXHRcdH1cblx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9WaWV3LmJ5SWQoXCJmZTo6TGlzdFJlcG9ydFwiKSk7XG5cdH0sXG5cdHJldHJpZXZlQWRkaXRpb25hbFN0YXRlczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgbUFkZGl0aW9uYWxTdGF0ZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdGJQZW5kaW5nRmlsdGVyID0gKG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpLmdldFByb3BlcnR5KFwiaGFzUGVuZGluZ0ZpbHRlcnNcIik7XG5cblx0XHRtQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID0gIWJQZW5kaW5nRmlsdGVyIHx8ICEhdGhpcy5fYlNlYXJjaFRyaWdnZXJlZDtcblx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0Y29uc3Qgc0FscENvbnRlbnRWaWV3ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKS5nZXRQcm9wZXJ0eShcImFscENvbnRlbnRWaWV3XCIpO1xuXHRcdFx0bUFkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPSBzQWxwQ29udGVudFZpZXc7XG5cdFx0fVxuXG5cdFx0ZGVsZXRlIHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdH0sXG5cdGFwcGx5QWRkaXRpb25hbFN0YXRlczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb0FkZGl0aW9uYWxTdGF0ZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXG5cdFx0aWYgKG9BZGRpdGlvbmFsU3RhdGVzKSB7XG5cdFx0XHQvLyBleHBsaWNpdCBjaGVjayBmb3IgYm9vbGVhbiB2YWx1ZXMgLSAndW5kZWZpbmVkJyBzaG91bGQgbm90IGFsdGVyIHRoZSB0cmlnZ2VyZWQgc2VhcmNoIHByb3BlcnR5XG5cdFx0XHRpZiAob0FkZGl0aW9uYWxTdGF0ZXMuZGF0YUxvYWRlZCA9PT0gZmFsc2UgJiYgb0ZpbHRlckJhcikge1xuXHRcdFx0XHQvLyB3aXRob3V0IHRoaXMsIHRoZSBkYXRhIGlzIGxvYWRlZCBvbiBuYXZpZ2F0aW5nIGJhY2tcblx0XHRcdFx0KG9GaWx0ZXJCYXIgYXMgYW55KS5fYlNlYXJjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmIChvQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID09PSB0cnVlKSB7XG5cdFx0XHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRcdFx0b0ZpbHRlckJhci50cmlnZ2VyU2VhcmNoKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fYlNlYXJjaFRyaWdnZXJlZCA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRpZiAoIXN5c3RlbS5kZXNrdG9wICYmIG9BZGRpdGlvbmFsU3RhdGVzLmFscENvbnRlbnRWaWV3ID09IFRlbXBsYXRlQ29udGVudFZpZXcuSHlicmlkKSB7XG5cdFx0XHRcdFx0b0FkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPSBUZW1wbGF0ZUNvbnRlbnRWaWV3LkNoYXJ0O1xuXHRcdFx0XHR9XG5cdFx0XHRcdG9JbnRlcm5hbE1vZGVsQ29udGV4dFxuXHRcdFx0XHRcdC5nZXRNb2RlbCgpXG5cdFx0XHRcdFx0LnNldFByb3BlcnR5KGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2FscENvbnRlbnRWaWV3YCwgb0FkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0X2FwcGx5TmF2aWdhdGlvblBhcmFtZXRlcnNUb0ZpbHRlcmJhcjogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYVJlc3VsdHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCk7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnREYXRhID0gb0FwcENvbXBvbmVudC5nZXRDb21wb25lbnREYXRhKCk7XG5cdFx0Y29uc3Qgb1N0YXJ0dXBQYXJhbWV0ZXJzID0gKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRjb25zdCBvVmFyaWFudFByb21pc2UgPSB0aGlzLmhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyhvU3RhcnR1cFBhcmFtZXRlcnMpO1xuXHRcdGxldCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGJvb2xlYW47XG5cdFx0YVJlc3VsdHMucHVzaChcblx0XHRcdG9WYXJpYW50UHJvbWlzZVxuXHRcdFx0XHQudGhlbigoYVZhcmlhbnRzOiBhbnlbXSkgPT4ge1xuXHRcdFx0XHRcdGlmIChhVmFyaWFudHMgJiYgYVZhcmlhbnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGlmIChhVmFyaWFudHNbMF0gPT09IHRydWUgfHwgYVZhcmlhbnRzWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRcdGJGaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9hcHBseVNlbGVjdGlvblZhcmlhbnQob1ZpZXcsIG9OYXZpZ2F0aW9uUGFyYW1ldGVyLCBiRmlsdGVyVmFyaWFudEFwcGxpZWQpO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQudGhlbigoKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgb0R5bmFtaWNQYWdlID0gb0NvbnRyb2xsZXIuX2dldER5bmFtaWNMaXN0UmVwb3J0Q29udHJvbCgpO1xuXHRcdFx0XHRcdGxldCBiUHJldmVudEluaXRpYWxTZWFyY2ggPSBmYWxzZTtcblx0XHRcdFx0XHRjb25zdCBvRmlsdGVyQmFyVk0gPSB0aGlzLl9nZXRGaWx0ZXJCYXJWTShvVmlldyk7XG5cdFx0XHRcdFx0Y29uc3Qgb0ZpbHRlckJhckNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdFx0XHRcdGlmIChvRmlsdGVyQmFyQ29udHJvbCkge1xuXHRcdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0XHQob05hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiBvTmF2aWdhdGlvblBhcmFtZXRlci5yZXF1aXJlc1N0YW5kYXJkVmFyaWFudCkgfHxcblx0XHRcdFx0XHRcdFx0KCFvRmlsdGVyQmFyVk0gJiYgb1ZpZXcuZ2V0Vmlld0RhdGEoKS5pbml0aWFsTG9hZCA9PT0gSW5pdGlhbExvYWRNb2RlLkVuYWJsZWQpIHx8XG5cdFx0XHRcdFx0XHRcdG9Db250cm9sbGVyLl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaChvRmlsdGVyQmFyVk0pXG5cdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0b0ZpbHRlckJhckNvbnRyb2wudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0YlByZXZlbnRJbml0aWFsU2VhcmNoID0gdGhpcy5fcHJldmVudEluaXRpYWxTZWFyY2gob0ZpbHRlckJhclZNKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdC8vIHJlc2V0IHRoZSBzdXNwZW5kIHNlbGVjdGlvbiBvbiBmaWx0ZXIgYmFyIHRvIGFsbG93IGxvYWRpbmcgb2YgZGF0YSB3aGVuIG5lZWRlZCAod2FzIHNldCBvbiBMUiBJbml0KVxuXHRcdFx0XHRcdFx0b0ZpbHRlckJhckNvbnRyb2wuc2V0U3VzcGVuZFNlbGVjdGlvbihmYWxzZSk7XG5cdFx0XHRcdFx0XHR0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkID0gIWJQcmV2ZW50SW5pdGlhbFNlYXJjaDtcblx0XHRcdFx0XHRcdG9EeW5hbWljUGFnZS5zZXRIZWFkZXJFeHBhbmRlZChzeXN0ZW0uZGVza3RvcCB8fCBiUHJldmVudEluaXRpYWxTZWFyY2gpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoXCJWYXJpYW50IElEIGNhbm5vdCBiZSBhcHBsaWVkXCIpO1xuXHRcdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0aGFuZGxlVmFyaWFudElkUGFzc2VkVmlhVVJMUGFyYW1zOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBvVXJsUGFyYW1zOiBhbnkpIHtcblx0XHRjb25zdCBhUGFnZVZhcmlhbnRJZCA9IG9VcmxQYXJhbXNbXCJzYXAtdWktZmUtdmFyaWFudC1pZFwiXSxcblx0XHRcdGFGaWx0ZXJCYXJWYXJpYW50SWQgPSBvVXJsUGFyYW1zW1wic2FwLXVpLWZlLWZpbHRlcmJhci12YXJpYW50LWlkXCJdLFxuXHRcdFx0YVRhYmxlVmFyaWFudElkID0gb1VybFBhcmFtc1tcInNhcC11aS1mZS10YWJsZS12YXJpYW50LWlkXCJdLFxuXHRcdFx0YUNoYXJ0VmFyaWFudElkID0gb1VybFBhcmFtc1tcInNhcC11aS1mZS1jaGFydC12YXJpYW50LWlkXCJdO1xuXHRcdGxldCBvVmFyaWFudElEcztcblx0XHRpZiAoYVBhZ2VWYXJpYW50SWQgfHwgYUZpbHRlckJhclZhcmlhbnRJZCB8fCBhVGFibGVWYXJpYW50SWQgfHwgYUNoYXJ0VmFyaWFudElkKSB7XG5cdFx0XHRvVmFyaWFudElEcyA9IHtcblx0XHRcdFx0c1BhZ2VWYXJpYW50SWQ6IGFQYWdlVmFyaWFudElkICYmIGFQYWdlVmFyaWFudElkWzBdLFxuXHRcdFx0XHRzRmlsdGVyQmFyVmFyaWFudElkOiBhRmlsdGVyQmFyVmFyaWFudElkICYmIGFGaWx0ZXJCYXJWYXJpYW50SWRbMF0sXG5cdFx0XHRcdHNUYWJsZVZhcmlhbnRJZDogYVRhYmxlVmFyaWFudElkICYmIGFUYWJsZVZhcmlhbnRJZFswXSxcblx0XHRcdFx0c0NoYXJ0VmFyaWFudElkOiBhQ2hhcnRWYXJpYW50SWQgJiYgYUNoYXJ0VmFyaWFudElkWzBdXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5faGFuZGxlQ29udHJvbFZhcmlhbnRJZChvVmFyaWFudElEcyk7XG5cdH0sXG5cblx0X2hhbmRsZUNvbnRyb2xWYXJpYW50SWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG9WYXJpYW50SURzOiBWYXJpYW50SURzKSB7XG5cdFx0bGV0IG9WTTogVmFyaWFudE1hbmFnZW1lbnQ7XG5cdFx0Y29uc3Qgb1ZpZXcgPSB0aGlzLmdldFZpZXcoKSxcblx0XHRcdGFQcm9taXNlczogVmFyaWFudE1hbmFnZW1lbnRbXSA9IFtdO1xuXHRcdGNvbnN0IHNWYXJpYW50TWFuYWdlbWVudCA9IG9WaWV3LmdldFZpZXdEYXRhKCkudmFyaWFudE1hbmFnZW1lbnQ7XG5cdFx0aWYgKG9WYXJpYW50SURzICYmIG9WYXJpYW50SURzLnNQYWdlVmFyaWFudElkICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJQYWdlXCIpIHtcblx0XHRcdG9WTSA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0dGhpcy5faGFuZGxlUGFnZVZhcmlhbnRJZChvVmFyaWFudElEcywgb1ZNLCBhUHJvbWlzZXMpO1xuXHRcdH0gZWxzZSBpZiAob1ZhcmlhbnRJRHMgJiYgc1ZhcmlhbnRNYW5hZ2VtZW50ID09PSBcIkNvbnRyb2xcIikge1xuXHRcdFx0aWYgKG9WYXJpYW50SURzLnNGaWx0ZXJCYXJWYXJpYW50SWQpIHtcblx0XHRcdFx0b1ZNID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCgpO1xuXHRcdFx0XHR0aGlzLl9oYW5kbGVGaWx0ZXJCYXJWYXJpYW50Q29udHJvbElkKG9WYXJpYW50SURzLCBvVk0sIGFQcm9taXNlcyk7XG5cdFx0XHR9XG5cdFx0XHRpZiAob1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkKSB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyO1xuXHRcdFx0XHR0aGlzLl9oYW5kbGVUYWJsZUNvbnRyb2xWYXJpYW50SWQob1ZhcmlhbnRJRHMsIG9Db250cm9sbGVyLCBhUHJvbWlzZXMpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAob1ZhcmlhbnRJRHMuc0NoYXJ0VmFyaWFudElkKSB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpIGFzIExpc3RSZXBvcnRDb250cm9sbGVyO1xuXHRcdFx0XHR0aGlzLl9oYW5kbGVDaGFydENvbnRyb2xWYXJpYW50SWQob1ZhcmlhbnRJRHMsIG9Db250cm9sbGVyLCBhUHJvbWlzZXMpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoYVByb21pc2VzKTtcblx0fSxcblx0Lypcblx0ICogSGFuZGxlcyBwYWdlIGxldmVsIHZhcmlhbnQgYW5kIHBhc3NlcyB0aGUgdmFyaWFudCB0byB0aGUgZnVuY3Rpb24gdGhhdCBwdXNoZXMgdGhlIHByb21pc2UgdG8gdGhlIHByb21pc2UgYXJyYXlcblx0ICpcblx0ICogQHBhcmFtIG9WYXJpbmF0SURzIGNvbnRhaW5zIGFuIG9iamVjdCBvZiBhbGwgdmFyaWFudCBJRHNcblx0ICogQHBhcmFtIG9WTSBjb250YWlucyB0aGUgdmFpcmFudCBtYW5hZ2VtZW50IG9iamVjdCBmb3IgdGhlIHBhZ2UgdmFyaWFudFxuXHQgKiBAcGFyYW0gYVByb21pc2VzIGlzIGFuIGFycmF5IG9mIGFsbCBwcm9taXNlc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2hhbmRsZVBhZ2VWYXJpYW50SWQ6IGZ1bmN0aW9uIChcblx0XHR0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsXG5cdFx0b1ZhcmlhbnRJRHM6IFZhcmlhbnRJRHMsXG5cdFx0b1ZNOiBWYXJpYW50TWFuYWdlbWVudCxcblx0XHRhUHJvbWlzZXM6IFZhcmlhbnRNYW5hZ2VtZW50W11cblx0KSB7XG5cdFx0b1ZNLmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IFZhcmlhbnRPYmplY3QpID0+IHtcblx0XHRcdHRoaXMuX2ZpbmRBbmRQdXNoVmFyaWFudFRvUHJvbWlzZShvVmFyaWFudCwgb1ZhcmlhbnRJRHMuc1BhZ2VWYXJpYW50SWQsIG9WTSwgYVByb21pc2VzLCB0cnVlKTtcblx0XHR9KTtcblx0fSxcblxuXHQvKlxuXHQgKiBIYW5kbGVzIGNvbnRyb2wgbGV2ZWwgdmFyaWFudCBmb3IgZmlsdGVyIGJhciBhbmQgcGFzc2VzIHRoZSB2YXJpYW50IHRvIHRoZSBmdW5jdGlvbiB0aGF0IHB1c2hlcyB0aGUgcHJvbWlzZSB0byB0aGUgcHJvbWlzZSBhcnJheVxuXHQgKlxuXHQgKiBAcGFyYW0gb1ZhcmluYXRJRHMgY29udGFpbnMgYW4gb2JqZWN0IG9mIGFsbCB2YXJpYW50IElEc1xuXHQgKiBAcGFyYW0gb1ZNIGNvbnRhaW5zIHRoZSB2YWlyYW50IG1hbmFnZW1lbnQgb2JqZWN0IGZvciB0aGUgZmlsdGVyIGJhclxuXHQgKiBAcGFyYW0gYVByb21pc2VzIGlzIGFuIGFycmF5IG9mIGFsbCBwcm9taXNlc1xuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblxuXHRfaGFuZGxlRmlsdGVyQmFyVmFyaWFudENvbnRyb2xJZDogZnVuY3Rpb24gKFxuXHRcdHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSxcblx0XHRvVmFyaWFudElEczogVmFyaWFudElEcyxcblx0XHRvVk06IFZhcmlhbnRNYW5hZ2VtZW50LFxuXHRcdGFQcm9taXNlczogVmFyaWFudE1hbmFnZW1lbnRbXVxuXHQpIHtcblx0XHRpZiAob1ZNKSB7XG5cdFx0XHRvVk0uZ2V0VmFyaWFudHMoKS5mb3JFYWNoKChvVmFyaWFudDogVmFyaWFudE9iamVjdCkgPT4ge1xuXHRcdFx0XHR0aGlzLl9maW5kQW5kUHVzaFZhcmlhbnRUb1Byb21pc2Uob1ZhcmlhbnQsIG9WYXJpYW50SURzLnNGaWx0ZXJCYXJWYXJpYW50SWQsIG9WTSwgYVByb21pc2VzLCB0cnVlKTtcblx0XHRcdH0pO1xuXHRcdH1cblx0fSxcblxuXHQvKlxuXHQgKiBIYW5kbGVzIGNvbnRyb2wgbGV2ZWwgdmFyaWFudCBmb3IgdGFibGUgYW5kIHBhc3NlcyB0aGUgdmFyaWFudCB0byB0aGUgZnVuY3Rpb24gdGhhdCBwdXNoZXMgdGhlIHByb21pc2UgdG8gdGhlIHByb21pc2UgYXJyYXlcblx0ICpcblx0ICogQHBhcmFtIG9WYXJpbmF0SURzIGNvbnRhaW5zIGFuIG9iamVjdCBvZiBhbGwgdmFyaWFudCBJRHNcblx0ICogQHBhcmFtIG9Db250cm9sbGVyIGhhcyB0aGUgbGlzdCByZXBvcnQgY29udHJvbGxlciBvYmplY3Rcblx0ICogQHBhcmFtIGFQcm9taXNlcyBpcyBhbiBhcnJheSBvZiBhbGwgcHJvbWlzZXNcblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9oYW5kbGVUYWJsZUNvbnRyb2xWYXJpYW50SWQ6IGZ1bmN0aW9uIChcblx0XHR0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsXG5cdFx0b1ZhcmlhbnRJRHM6IFZhcmlhbnRJRHMsXG5cdFx0b0NvbnRyb2xsZXI6IExpc3RSZXBvcnRDb250cm9sbGVyLFxuXHRcdGFQcm9taXNlczogVmFyaWFudE1hbmFnZW1lbnRbXVxuXHQpIHtcblx0XHRjb25zdCBhVGFibGVzID0gb0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwidGFibGVcIik7XG5cdFx0YVRhYmxlcy5mb3JFYWNoKChvVGFibGU6IFRhYmxlKSA9PiB7XG5cdFx0XHRjb25zdCBvVGFibGVWYXJpYW50ID0gb1RhYmxlLmdldFZhcmlhbnQoKTtcblx0XHRcdGlmIChvVGFibGUgJiYgb1RhYmxlVmFyaWFudCkge1xuXHRcdFx0XHRvVGFibGVWYXJpYW50LmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IFZhcmlhbnRPYmplY3QpID0+IHtcblx0XHRcdFx0XHR0aGlzLl9maW5kQW5kUHVzaFZhcmlhbnRUb1Byb21pc2Uob1ZhcmlhbnQsIG9WYXJpYW50SURzLnNUYWJsZVZhcmlhbnRJZCwgb1RhYmxlVmFyaWFudCwgYVByb21pc2VzKTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0sXG5cblx0Lypcblx0ICogSGFuZGxlcyBjb250cm9sIGxldmVsIHZhcmlhbnQgZm9yIGNoYXJ0IGFuZCBwYXNzZXMgdGhlIHZhcmlhbnQgdG8gdGhlIGZ1bmN0aW9uIHRoYXQgcHVzaGVzIHRoZSBwcm9taXNlIHRvIHRoZSBwcm9taXNlIGFycmF5XG5cdCAqXG5cdCAqIEBwYXJhbSBvVmFyaW5hdElEcyBjb250YWlucyBhbiBvYmplY3Qgb2YgYWxsIHZhcmlhbnQgSURzXG5cdCAqIEBwYXJhbSBvQ29udHJvbGxlciBoYXMgdGhlIGxpc3QgcmVwb3J0IGNvbnRyb2xsZXIgb2JqZWN0XG5cdCAqIEBwYXJhbSBhUHJvbWlzZXMgaXMgYW4gYXJyYXkgb2YgYWxsIHByb21pc2VzXG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfaGFuZGxlQ2hhcnRDb250cm9sVmFyaWFudElkOiBmdW5jdGlvbiAoXG5cdFx0dGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLFxuXHRcdG9WYXJpYW50SURzOiBWYXJpYW50SURzLFxuXHRcdG9Db250cm9sbGVyOiBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRhUHJvbWlzZXM6IFZhcmlhbnRNYW5hZ2VtZW50W11cblx0KSB7XG5cdFx0Y29uc3QgYUNoYXJ0cyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcIkNoYXJ0XCIpO1xuXHRcdGFDaGFydHMuZm9yRWFjaCgob0NoYXJ0OiBDaGFydCkgPT4ge1xuXHRcdFx0Y29uc3Qgb0NoYXJ0VmFyaWFudCA9IG9DaGFydC5nZXRWYXJpYW50KCk7XG5cdFx0XHRjb25zdCBhVmFyaWFudHMgPSBvQ2hhcnRWYXJpYW50LmdldFZhcmlhbnRzKCk7XG5cdFx0XHRpZiAoYVZhcmlhbnRzKSB7XG5cdFx0XHRcdGFWYXJpYW50cy5mb3JFYWNoKChvVmFyaWFudDogVmFyaWFudE9iamVjdCkgPT4ge1xuXHRcdFx0XHRcdHRoaXMuX2ZpbmRBbmRQdXNoVmFyaWFudFRvUHJvbWlzZShvVmFyaWFudCwgb1ZhcmlhbnRJRHMuc0NoYXJ0VmFyaWFudElkLCBvQ2hhcnRWYXJpYW50LCBhUHJvbWlzZXMpO1xuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblx0Lypcblx0ICogTWF0Y2hlcyB0aGUgdmFyaWFudCBJRCBwcm92aWRlZCBpbiB0aGUgdXJsIHRvIHRoZSBhdmFpbGFibGUgdmFpcmFudCBJRHMgYW5kIHB1c2hlcyB0aGUgYXBwcm9wcmlhdGUgcHJvbWlzZSB0byB0aGUgcHJvbWlzZSBhcnJheVxuXHQgKlxuXHQgKiBAcGFyYW0gb1ZhcmlhbnQgaXMgYW4gb2JqZWN0IGZvciBhIHNwZWNpZmljIHZhcmlhbnRcblx0ICogQHBhcmFtIHNWYXJpYW50SWQgaXMgdGhlIHZhcmlhbnQgSUQgcHJvdmlkZWQgaW4gdGhlIHVybFxuXHQgKiBAcGFyYW0gb1ZNIGlzIHRoZSB2YXJpYW50IG1hbmFnZW1lbnQgb2JqZWN0IGZvciB0aGUgc3BlY2ZpYyB2YXJpYW50XG5cdCAqIEBwYXJhbSBhUHJvbWlzZXMgaXMgYW4gYXJyYXkgb2YgcHJvbWlzZXNcblx0ICogQHBhcmFtIGJGaWx0ZXJWYXJpYW50QXBwbGllZCBpcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgd2hpY2ggaXMgc2V0IHRvIHR1cmUgaW4gY2FzZSB0aGUgZmlsdGVyIHZhcmlhbnQgaXMgYXBwbGllZFxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2ZpbmRBbmRQdXNoVmFyaWFudFRvUHJvbWlzZTogZnVuY3Rpb24gKFxuXHRcdC8vVGhpcyBmdW5jdGlvbiBmaW5kcyB0aGUgc3VpdGFibGUgdmFyaWFudCBmb3IgdGhlIHZhcmlhbnRJRCBwcm92aWRlZCBpbiB0aGUgdXJsIGFuZCBwdXNoZXMgdGhlbSB0byB0aGUgcHJvbWlzZSBhcnJheVxuXHRcdHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSxcblx0XHRvVmFyaWFudDogVmFyaWFudE9iamVjdCxcblx0XHRzVmFyaWFudElkOiBTdHJpbmcsXG5cdFx0b1ZNOiBWYXJpYW50TWFuYWdlbWVudCxcblx0XHRhUHJvbWlzZXM6IFZhcmlhbnRNYW5hZ2VtZW50W10sXG5cdFx0YkZpbHRlclZhcmlhbnRBcHBsaWVkPzogYm9vbGVhblxuXHQpIHtcblx0XHRpZiAob1ZhcmlhbnQua2V5ID09PSBzVmFyaWFudElkKSB7XG5cdFx0XHRhUHJvbWlzZXMucHVzaCh0aGlzLl9hcHBseUNvbnRyb2xWYXJpYW50KG9WTSwgc1ZhcmlhbnRJZCwgYkZpbHRlclZhcmlhbnRBcHBsaWVkKSk7XG5cdFx0fVxuXHR9LFxuXG5cdF9hcHBseUNvbnRyb2xWYXJpYW50OiBmdW5jdGlvbiAob1ZhcmlhbnQ6IGFueSwgc1ZhcmlhbnRJRDogYW55LCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGFueSkge1xuXHRcdGNvbnN0IHNWYXJpYW50UmVmZXJlbmNlID0gdGhpcy5fY2hlY2tJZlZhcmlhbnRJZElzQXZhaWxhYmxlKG9WYXJpYW50LCBzVmFyaWFudElEKSA/IHNWYXJpYW50SUQgOiBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKTtcblx0XHRjb25zdCBvVk0gPSBDb250cm9sVmFyaWFudEFwcGx5QVBJLmFjdGl2YXRlVmFyaWFudCh7XG5cdFx0XHRlbGVtZW50OiBvVmFyaWFudCxcblx0XHRcdHZhcmlhbnRSZWZlcmVuY2U6IHNWYXJpYW50UmVmZXJlbmNlXG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9WTS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdHJldHVybiBiRmlsdGVyVmFyaWFudEFwcGxpZWQ7XG5cdFx0fSk7XG5cdH0sXG5cdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIHByaXZhdGUgaGVscGVyICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdF9nZXRGaWx0ZXJCYXJWTTogZnVuY3Rpb24gKG9WaWV3OiBhbnkpIHtcblx0XHRjb25zdCBvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpO1xuXHRcdHN3aXRjaCAob1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5QYWdlOlxuXHRcdFx0XHRyZXR1cm4gb1ZpZXcuYnlJZChcImZlOjpQYWdlVmFyaWFudE1hbmFnZW1lbnRcIik7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sOlxuXHRcdFx0XHRyZXR1cm4gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCgpO1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudFR5cGUuTm9uZTpcblx0XHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHVuaGFuZGxlZCB2YXJpYW50IHNldHRpbmc6ICR7b1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50fWApO1xuXHRcdH1cblx0fSxcblxuXHRfcHJldmVudEluaXRpYWxTZWFyY2g6IGZ1bmN0aW9uIChvVmFyaWFudE1hbmFnZW1lbnQ6IGFueSkge1xuXHRcdGlmICghb1ZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgYVZhcmlhbnRzID0gb1ZhcmlhbnRNYW5hZ2VtZW50LmdldFZhcmlhbnRzKCk7XG5cdFx0Y29uc3Qgb0N1cnJlbnRWYXJpYW50ID0gYVZhcmlhbnRzLmZpbmQoZnVuY3Rpb24gKG9JdGVtOiBhbnkpIHtcblx0XHRcdHJldHVybiBvSXRlbS5rZXkgPT09IG9WYXJpYW50TWFuYWdlbWVudC5nZXRDdXJyZW50VmFyaWFudEtleSgpO1xuXHRcdH0pO1xuXHRcdHJldHVybiAhb0N1cnJlbnRWYXJpYW50LmV4ZWN1dGVPblNlbGVjdDtcblx0fSxcblxuXHRfYXBwbHlTZWxlY3Rpb25WYXJpYW50OiBmdW5jdGlvbiAob1ZpZXc6IGFueSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYkZpbHRlclZhcmlhbnRBcHBsaWVkOiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJDb250cm9sKCksXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IG9OYXZpZ2F0aW9uUGFyYW1ldGVyLnNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzID0gb05hdmlnYXRpb25QYXJhbWV0ZXIuc2VsZWN0aW9uVmFyaWFudERlZmF1bHRzO1xuXHRcdGlmICghb0ZpbHRlckJhciB8fCAhb1NlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0bGV0IG9Db25kaXRpb25zID0ge307XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9WaWV3LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3Qgb1ZpZXdEYXRhID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKTtcblx0XHRjb25zdCBzQ29udGV4dFBhdGggPSBvVmlld0RhdGEuY29udGV4dFBhdGggfHwgYC8ke29WaWV3RGF0YS5lbnRpdHlTZXR9YDtcblx0XHRjb25zdCBhTWFuZGF0b3J5RmlsdGVyRmllbGRzID0gQ29tbW9uVXRpbHMuZ2V0TWFuZGF0b3J5RmlsdGVyRmllbGRzKG9NZXRhTW9kZWwsIHNDb250ZXh0UGF0aCk7XG5cdFx0Y29uc3QgYlVzZVNlbWFudGljRGF0ZVJhbmdlID0gb0ZpbHRlckJhci5kYXRhKFwidXNlU2VtYW50aWNEYXRlUmFuZ2VcIik7XG5cdFx0bGV0IG9WYXJpYW50O1xuXHRcdHN3aXRjaCAob1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5QYWdlOlxuXHRcdFx0XHRvVmFyaWFudCA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w6XG5cdFx0XHRcdG9WYXJpYW50ID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJWYXJpYW50Q29udHJvbCgpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLk5vbmU6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0Y29uc3QgYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50ID0gb05hdmlnYXRpb25QYXJhbWV0ZXIucmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ7XG5cdFx0Ly8gY2hlY2sgaWYgRkxQIGRlZmF1bHQgdmFsdWVzIGFyZSB0aGVyZSBhbmQgaXMgaXQgc3RhbmRhcmQgdmFyaWFudFxuXHRcdGNvbnN0IGJJc0ZMUFZhbHVlUHJlc2VudDogYm9vbGVhbiA9XG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzICYmXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzLmdldFNlbGVjdE9wdGlvbnNQcm9wZXJ0eU5hbWVzKCkubGVuZ3RoID4gMCAmJlxuXHRcdFx0b1ZhcmlhbnQuZ2V0RGVmYXVsdFZhcmlhbnRLZXkoKSA9PT0gb1ZhcmlhbnQuZ2V0U3RhbmRhcmRWYXJpYW50S2V5KCkgJiZcblx0XHRcdG9OYXZpZ2F0aW9uUGFyYW1ldGVyLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHk7XG5cblx0XHQvLyBnZXQgY29uZGl0aW9ucyB3aGVuIEZMUCB2YWx1ZSBpcyBwcmVzZW50XG5cdFx0aWYgKGJGaWx0ZXJWYXJpYW50QXBwbGllZCB8fCBiSXNGTFBWYWx1ZVByZXNlbnQpIHtcblx0XHRcdG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdFx0fVxuXHRcdENvbW1vblV0aWxzLmFkZERlZmF1bHREaXNwbGF5Q3VycmVuY3koYU1hbmRhdG9yeUZpbHRlckZpZWxkcywgb1NlbGVjdGlvblZhcmlhbnQsIG9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMpO1xuXHRcdENvbW1vblV0aWxzLmFkZFNlbGVjdGlvblZhcmlhbnRUb0NvbmRpdGlvbnMoXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdG9Db25kaXRpb25zLFxuXHRcdFx0b01ldGFNb2RlbCxcblx0XHRcdHNDb250ZXh0UGF0aCxcblx0XHRcdGJJc0ZMUFZhbHVlUHJlc2VudCxcblx0XHRcdGJVc2VTZW1hbnRpY0RhdGVSYW5nZSxcblx0XHRcdG9WaWV3RGF0YVxuXHRcdCk7XG5cblx0XHRyZXR1cm4gdGhpcy5fYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50KFxuXHRcdFx0b0ZpbHRlckJhcixcblx0XHRcdG9Db25kaXRpb25zLFxuXHRcdFx0b1ZhcmlhbnQsXG5cdFx0XHRiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQsXG5cdFx0XHRiRmlsdGVyVmFyaWFudEFwcGxpZWQsXG5cdFx0XHRiSXNGTFBWYWx1ZVByZXNlbnRcblx0XHQpO1xuXHR9LFxuXHRfYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50OiBmdW5jdGlvbiAoXG5cdFx0b0ZpbHRlckJhcjogYW55LFxuXHRcdG9Db25kaXRpb25zOiBhbnksXG5cdFx0b1ZhcmlhbnQ6IGFueSxcblx0XHRiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6IGFueSxcblx0XHRiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGFueSxcblx0XHRiSXNGTFBWYWx1ZVByZXNlbnQ/OiBib29sZWFuXG5cdCkge1xuXHRcdGxldCBvUHJvbWlzZTtcblxuXHRcdGlmIChvVmFyaWFudCAmJiAhYkZpbHRlclZhcmlhbnRBcHBsaWVkKSB7XG5cdFx0XHRsZXQgb1ZhcmlhbnRLZXkgPSBiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQgPyBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKSA6IG9WYXJpYW50LmdldERlZmF1bHRWYXJpYW50S2V5KCk7XG5cdFx0XHRpZiAob1ZhcmlhbnRLZXkgPT09IG51bGwpIHtcblx0XHRcdFx0b1ZhcmlhbnRLZXkgPSBvVmFyaWFudC5nZXRJZCgpO1xuXHRcdFx0fVxuXHRcdFx0b1Byb21pc2UgPSBDb250cm9sVmFyaWFudEFwcGx5QVBJLmFjdGl2YXRlVmFyaWFudCh7XG5cdFx0XHRcdGVsZW1lbnQ6IG9WYXJpYW50LFxuXHRcdFx0XHR2YXJpYW50UmVmZXJlbmNlOiBvVmFyaWFudEtleVxuXHRcdFx0fSkudGhlbihmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdHJldHVybiBiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQgfHwgb1ZhcmlhbnQuZ2V0RGVmYXVsdFZhcmlhbnRLZXkoKSA9PT0gb1ZhcmlhbnQuZ2V0U3RhbmRhcmRWYXJpYW50S2V5KCk7XG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b1Byb21pc2UgPSBQcm9taXNlLnJlc29sdmUodHJ1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiBvUHJvbWlzZS50aGVuKChiQ2xlYXJGaWx0ZXJBbmRSZXBsYWNlV2l0aEFwcFN0YXRlOiBhbnkpID0+IHtcblx0XHRcdGlmIChiQ2xlYXJGaWx0ZXJBbmRSZXBsYWNlV2l0aEFwcFN0YXRlKSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLl9mbkFwcGx5Q29uZGl0aW9ucyhvRmlsdGVyQmFyLCBvQ29uZGl0aW9ucywgYklzRkxQVmFsdWVQcmVzZW50KTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblxuXHQvKlxuXHQgKiBTZXRzIGZpbHRlcmVkOiBmYWxzZSBmbGFnIHRvIGV2ZXJ5IGZpZWxkIHNvIHRoYXQgaXQgY2FuIGJlIGNsZWFyZWQgb3V0XG5cdCAqXG5cdCAqIEBwYXJhbSBvRmlsdGVyQmFyIGZpbHRlcmJhciBjb250cm9sIGlzIHVzZWQgdG8gZGlzcGxheSBmaWx0ZXIgcHJvcGVydGllcyBpbiBhIHVzZXItZnJpZW5kbHkgbWFubmVyIHRvIHBvcHVsYXRlIHZhbHVlcyBmb3IgYSBxdWVyeVxuXHQgKiBAcmV0dXJucyBwcm9taXNlIHdoaWNoIHdpbGwgYmUgcmVzb2x2ZWQgdG8gb2JqZWN0XG5cdCAqIEBwcml2YXRlXG5cdCAqL1xuXHRfZm5DbGVhclN0YXRlQmVmb3JleEFwcE5hdjogYXN5bmMgZnVuY3Rpb24gKG9GaWx0ZXJCYXI6IEZpbHRlckJhcikge1xuXHRcdHJldHVybiBhd2FpdCBTdGF0ZVV0aWwucmV0cmlldmVFeHRlcm5hbFN0YXRlKG9GaWx0ZXJCYXIpXG5cdFx0XHQudGhlbigob0V4dGVybmFsU3RhdGU6IGFueSkgPT4ge1xuXHRcdFx0XHRjb25zdCBvQ29uZGl0aW9uID0gb0V4dGVybmFsU3RhdGUuZmlsdGVyO1xuXHRcdFx0XHRmb3IgKGNvbnN0IGZpZWxkIGluIG9Db25kaXRpb24pIHtcblx0XHRcdFx0XHRpZiAoZmllbGQgIT09IFwiJGVkaXRTdGF0ZVwiICYmIGZpZWxkICE9PSBcIiRzZWFyY2hcIiAmJiBvQ29uZGl0aW9uW2ZpZWxkXSkge1xuXHRcdFx0XHRcdFx0b0NvbmRpdGlvbltmaWVsZF0uZm9yRWFjaCgoY29uZGl0aW9uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPikgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25kaXRpb25bXCJmaWx0ZXJlZFwiXSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUob0NvbmRpdGlvbik7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSByZXRyaWV2aW5nIHRoZSBleHRlcm5hbCBzdGF0ZVwiLCBvRXJyb3IpO1xuXHRcdFx0fSk7XG5cdH0sXG5cblx0X2ZuQXBwbHlDb25kaXRpb25zOiBhc3luYyBmdW5jdGlvbiAob0ZpbHRlckJhcjogYW55LCBvQ29uZGl0aW9uczogYW55LCBiSXNGTFBWYWx1ZVByZXNlbnQ/OiBib29sZWFuKSB7XG5cdFx0Y29uc3QgbUZpbHRlcjogYW55ID0ge30sXG5cdFx0XHRhSXRlbXM6IGFueVtdID0gW10sXG5cdFx0XHRmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbiA9IGZ1bmN0aW9uIChvQ29uZGl0aW9uOiBhbnkpIHtcblx0XHRcdFx0Ly8gaW4gY2FzZSB0aGUgY29uZGl0aW9uIGlzIG1lYW50IGZvciBhIGZpZWxkIGhhdmluZyBhIFZILCB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IE1EQyBkaWZmZXJzXG5cdFx0XHRcdG9Db25kaXRpb24udmFsaWRhdGVkID0gQ29uZGl0aW9uVmFsaWRhdGVkLlZhbGlkYXRlZDtcblx0XHRcdFx0aWYgKG9Db25kaXRpb24ub3BlcmF0b3IgPT09IFwiRW1wdHlcIikge1xuXHRcdFx0XHRcdG9Db25kaXRpb24ub3BlcmF0b3IgPSBcIkVRXCI7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi52YWx1ZXMgPSBbXCJcIl07XG5cdFx0XHRcdH0gZWxzZSBpZiAob0NvbmRpdGlvbi5vcGVyYXRvciA9PT0gXCJOb3RFbXB0eVwiKSB7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi5vcGVyYXRvciA9IFwiTkVcIjtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLnZhbHVlcyA9IFtcIlwiXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkZWxldGUgb0NvbmRpdGlvbi5pc0VtcHR5O1xuXHRcdFx0fTtcblx0XHRjb25zdCBmbkdldFByb3BlcnR5SW5mbyA9IGZ1bmN0aW9uIChvRmlsdGVyQ29udHJvbDogYW55LCBzRW50aXR5VHlwZVBhdGg6IGFueSkge1xuXHRcdFx0Y29uc3Qgc0VudGl0eVNldFBhdGggPSBNb2RlbEhlbHBlci5nZXRFbnRpdHlTZXRQYXRoKHNFbnRpdHlUeXBlUGF0aCksXG5cdFx0XHRcdG9NZXRhTW9kZWwgPSBvRmlsdGVyQ29udHJvbC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRvRlIgPSBDb21tb25VdGlscy5nZXRGaWx0ZXJSZXN0cmljdGlvbnNCeVBhdGgoc0VudGl0eVNldFBhdGgsIG9NZXRhTW9kZWwpLFxuXHRcdFx0XHRhTm9uRmlsdGVyYWJsZVByb3BzID0gb0ZSLk5vbkZpbHRlcmFibGVQcm9wZXJ0aWVzLFxuXHRcdFx0XHRtRmlsdGVyRmllbGRzID0gRmlsdGVyVXRpbHMuZ2V0Q29udmVydGVkRmlsdGVyRmllbGRzKG9GaWx0ZXJDb250cm9sLCBzRW50aXR5VHlwZVBhdGgpLFxuXHRcdFx0XHRhUHJvcGVydHlJbmZvOiBhbnlbXSA9IFtdO1xuXHRcdFx0bUZpbHRlckZpZWxkcy5mb3JFYWNoKGZ1bmN0aW9uIChvQ29udmVydGVkUHJvcGVydHkpIHtcblx0XHRcdFx0Y29uc3Qgc1Byb3BlcnR5UGF0aCA9IG9Db252ZXJ0ZWRQcm9wZXJ0eS5jb25kaXRpb25QYXRoLnJlcGxhY2UoQ09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCwgXCJcIik7XG5cdFx0XHRcdGlmIChhTm9uRmlsdGVyYWJsZVByb3BzLmluZGV4T2Yoc1Byb3BlcnR5UGF0aCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc0Fubm90YXRpb25QYXRoID0gb0NvbnZlcnRlZFByb3BlcnR5LmFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdGNvbnN0IG9Qcm9wZXJ0eUNvbnRleHQgPSBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNBbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRcdFx0YVByb3BlcnR5SW5mby5wdXNoKHtcblx0XHRcdFx0XHRcdHBhdGg6IG9Db252ZXJ0ZWRQcm9wZXJ0eS5jb25kaXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0aGlkZGVuRmlsdGVyOiBvQ29udmVydGVkUHJvcGVydHkuYXZhaWxhYmlsaXR5ID09PSBcIkhpZGRlblwiLFxuXHRcdFx0XHRcdFx0aGFzVmFsdWVIZWxwOiAhc0Fubm90YXRpb25QYXRoXG5cdFx0XHRcdFx0XHRcdD8gZmFsc2Vcblx0XHRcdFx0XHRcdFx0OiBQcm9wZXJ0eUZvcm1hdHRlcnMuaGFzVmFsdWVIZWxwKG9Qcm9wZXJ0eUNvbnRleHQuZ2V0T2JqZWN0KCksIHsgY29udGV4dDogb1Byb3BlcnR5Q29udGV4dCB9KVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHRcdHJldHVybiBhUHJvcGVydHlJbmZvO1xuXHRcdH07XG5cblx0XHRyZXR1cm4gb0ZpbHRlckJhci53YWl0Rm9ySW5pdGlhbGl6YXRpb24oKS50aGVuKGFzeW5jICgpID0+IHtcblx0XHRcdGNvbnN0IHNFbnRpdHlUeXBlUGF0aCA9IERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhKG9GaWx0ZXJCYXIsIFwiZW50aXR5VHlwZVwiKTtcblx0XHRcdC8vIER1cmluZyBleHRlcm5hbCBhcHAgbmF2aWdhdGlvbiwgd2UgaGF2ZSB0byBjbGVhciB0aGUgZXhpc3RpbmcgY29uZGl0aW9ucyB0byBhdm9pZCBtZXJnaW5nIG9mIHZhbHVlcyBjb21pbmcgZnJvbSBhbm5vdGF0aW9uIGFuZCBjb250ZXh0XG5cdFx0XHQvLyBDb25kaXRpb24gIWJJc0ZMUFZhbHVlUHJlc2VudCBpbmRpY2F0ZXMgaXQncyBleHRlcm5hbCBhcHAgbmF2aWdhdGlvblxuXHRcdFx0aWYgKCFiSXNGTFBWYWx1ZVByZXNlbnQpIHtcblx0XHRcdFx0Y29uc3Qgb0NsZWFyQ29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuX2ZuQ2xlYXJTdGF0ZUJlZm9yZXhBcHBOYXYob0ZpbHRlckJhcik7XG5cdFx0XHRcdGF3YWl0IFN0YXRlVXRpbC5hcHBseUV4dGVybmFsU3RhdGUob0ZpbHRlckJhciwge1xuXHRcdFx0XHRcdGZpbHRlcjogb0NsZWFyQ29uZGl0aW9ucyxcblx0XHRcdFx0XHRpdGVtczogYUl0ZW1zXG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdFx0Y29uc3QgYVByb3BlcnR5SW5mbyA9IGZuR2V0UHJvcGVydHlJbmZvKG9GaWx0ZXJCYXIsIHNFbnRpdHlUeXBlUGF0aCk7XG5cdFx0XHRhUHJvcGVydHlJbmZvXG5cdFx0XHRcdC5maWx0ZXIoZnVuY3Rpb24gKG9Qcm9wZXJ0eUluZm86IGFueSkge1xuXHRcdFx0XHRcdHJldHVybiBvUHJvcGVydHlJbmZvLnBhdGggIT09IFwiJGVkaXRTdGF0ZVwiICYmIG9Qcm9wZXJ0eUluZm8ucGF0aCAhPT0gXCIkc2VhcmNoXCI7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5mb3JFYWNoKChvUHJvcGVydHlJbmZvOiBhbnkpID0+IHtcblx0XHRcdFx0XHRpZiAob1Byb3BlcnR5SW5mby5wYXRoIGluIG9Db25kaXRpb25zKSB7XG5cdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0gPSBvQ29uZGl0aW9uc1tvUHJvcGVydHlJbmZvLnBhdGhdO1xuXHRcdFx0XHRcdFx0aWYgKCFvUHJvcGVydHlJbmZvLmhpZGRlbkZpbHRlcikge1xuXHRcdFx0XHRcdFx0XHRhSXRlbXMucHVzaCh7IG5hbWU6IG9Qcm9wZXJ0eUluZm8ucGF0aCB9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChvUHJvcGVydHlJbmZvLmhhc1ZhbHVlSGVscCkge1xuXHRcdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0uZm9yRWFjaChmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbik7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0uZm9yRWFjaChmdW5jdGlvbiAob0NvbmRpdGlvbjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdFx0b0NvbmRpdGlvbi52YWxpZGF0ZWQgPSBvQ29uZGl0aW9uLmZpbHRlcmVkID8gQ29uZGl0aW9uVmFsaWRhdGVkLk5vdFZhbGlkYXRlZCA6IG9Db25kaXRpb24udmFsaWRhdGVkO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0bUZpbHRlcltvUHJvcGVydHlJbmZvLnBhdGhdID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdHJldHVybiBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKG9GaWx0ZXJCYXIsIHsgZmlsdGVyOiBtRmlsdGVyLCBpdGVtczogYUl0ZW1zIH0pO1xuXHRcdH0pO1xuXHR9LFxuXHRfY2xlYXJGaWx0ZXJDb25kaXRpb25zOiBhc3luYyBmdW5jdGlvbiAob0ZpbHRlckJhcjogRmlsdGVyQmFyKSB7XG5cdFx0Y29uc3QgYUl0ZW1zOiBQcm9wZXJ0eUluZm9bXSA9IFtdO1xuXHRcdHJldHVybiBvRmlsdGVyQmFyLndhaXRGb3JJbml0aWFsaXphdGlvbigpLnRoZW4oYXN5bmMgKCkgPT4ge1xuXHRcdFx0Y29uc3Qgb0NsZWFyQ29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuX2ZuQ2xlYXJTdGF0ZUJlZm9yZXhBcHBOYXYob0ZpbHRlckJhcik7XG5cdFx0XHRyZXR1cm4gU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZShvRmlsdGVyQmFyLCB7XG5cdFx0XHRcdGZpbHRlcjogb0NsZWFyQ29uZGl0aW9ucyxcblx0XHRcdFx0aXRlbXM6IGFJdGVtc1xuXHRcdFx0fSk7XG5cdFx0fSk7XG5cdH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IFZpZXdTdGF0ZU92ZXJyaWRlO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7OztFQStDQSxNQUFNQSxPQUFPLEdBQUdDLFVBQVUsQ0FBQ0QsT0FBTztJQUNqQ0UscUJBQXFCLEdBQUdDLFdBQVcsQ0FBQ0MsaUJBQWlCO0lBQ3JEQyxtQkFBbUIsR0FBR0YsV0FBVyxDQUFDRSxtQkFBbUI7SUFDckRDLGVBQWUsR0FBR0gsV0FBVyxDQUFDRyxlQUFlO0lBQzdDQyxxQ0FBcUMsR0FBRyxRQUFRO0VBRWpELE1BQU1DLGlCQUFzQixHQUFHO0lBQzlCQyxpQkFBaUIsRUFBRSxLQUFLO0lBQ3hCQyxxQkFBcUIsRUFBRSxZQUFZO01BQ2xDLE9BQU8sSUFBSTtJQUNaLENBQUM7SUFDREMsb0JBQW9CLEVBQUUsVUFBc0RDLFNBQWMsRUFBRUMsY0FBdUIsRUFBRTtNQUNwSCxNQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFD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
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
3
|
* (c) Copyright 2009-2023 SAP SE. All rights reserved
|
|
4
4
|
*/
|
|
5
|
-
sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/helpers/KeepAliveHelper","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/fe/core/templating/PropertyFormatters","sap/fe/macros/DelegateUtil","sap/fe/macros/filter/FilterUtils","sap/fe/navigation/library","sap/ui/Device","sap/ui/fl/apply/api/ControlVariantApplyAPI","sap/ui/mdc/enum/ConditionValidated","sap/ui/mdc/p13n/StateUtil"],function(t,e,a,n,i,r,o,s,
|
|
5
|
+
sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/helpers/KeepAliveHelper","sap/fe/core/helpers/ModelHelper","sap/fe/core/library","sap/fe/core/templating/PropertyFormatters","sap/fe/macros/DelegateUtil","sap/fe/macros/filter/FilterUtils","sap/fe/navigation/library","sap/ui/Device","sap/ui/fl/apply/api/ControlVariantApplyAPI","sap/ui/mdc/enum/ConditionValidated","sap/ui/mdc/p13n/StateUtil"],function(t,e,a,n,i,r,o,l,s,c,d,f,h){"use strict";var g=c.system;const u=s.NavType,p=i.VariantManagement,V=i.TemplateContentView,C=i.InitialLoadMode,_=/\+|\*/g;const y={_bSearchTriggered:false,applyInitialStateOnly:function(){return true},onBeforeStateApplied:function(t,e){const a=this.getView(),n=a.getController(),i=n._getFilterBarControl(),r=n._getControls("table");if(i){i.setSuspendSelection(true);t.push(i.waitForInitialization());if(e===u.hybrid){this._clearFilterConditions(i)}}r.forEach(function(e){t.push(e.initialized())});delete this._bSearchTriggered},adaptBindingRefreshControls:function(t){const e=this.getView(),n=e.getController(),i=n._getControls(),r=a.getControlsForRefresh(e,i);Array.prototype.push.apply(t,r)},adaptStateControls:function(t){const e=this.getView(),a=e.getController(),n=e.getViewData(),i=n.variantManagement===p.Control;const r=this._getFilterBarVM(e);if(r){t.push(r)}if(a._isMultiMode()){t.push(a._getMultiModeControl())}a._getControls("table").forEach(function(e){const a=e.getQuickFilter();if(a){t.push(a)}if(i){t.push(e.getVariant())}t.push(e)});if(a._getControls("Chart")){a._getControls("Chart").forEach(function(e){if(i){t.push(e.getVariant())}t.push(e)})}if(a._hasMultiVisualizations()){t.push(a._getSegmentedButton(V.Chart));t.push(a._getSegmentedButton(V.Table))}const o=a._getFilterBarControl();if(o){t.push(o)}t.push(e.byId("fe::ListReport"))},retrieveAdditionalStates:function(t){const e=this.getView(),a=e.getController(),n=e.getBindingContext("internal").getProperty("hasPendingFilters");t.dataLoaded=!n||!!this._bSearchTriggered;if(a._hasMultiVisualizations()){const a=e.getBindingContext("internal").getProperty("alpContentView");t.alpContentView=a}delete this._bSearchTriggered},applyAdditionalStates:function(t){const e=this.getView(),a=e.getController(),n=a._getFilterBarControl();if(t){if(t.dataLoaded===false&&n){n._bSearchTriggered=false}else if(t.dataLoaded===true){if(n){n.triggerSearch()}this._bSearchTriggered=true}if(a._hasMultiVisualizations()){const a=e.getBindingContext("internal");if(!g.desktop&&t.alpContentView==V.Hybrid){t.alpContentView=V.Chart}a.getModel().setProperty(`${a.getPath()}/alpContentView`,t.alpContentView)}}},_applyNavigationParametersToFilterbar:function(e,a){const n=this.getView();const i=n.getController();const r=i.getAppComponent();const o=r.getComponentData();const l=o&&o.startupParameters||{};const s=this.handleVariantIdPassedViaURLParams(l);let c;a.push(s.then(t=>{if(t&&t.length>0){if(t[0]===true||t[1]===true){c=true}}return this._applySelectionVariant(n,e,c)}).then(()=>{const t=i._getDynamicListReportControl();let a=false;const r=this._getFilterBarVM(n);const o=i._getFilterBarControl();if(o){if(e.navigationType!==u.initial&&e.requiresStandardVariant||!r&&n.getViewData().initialLoad===C.Enabled||i._shouldAutoTriggerSearch(r)){o.triggerSearch()}else{a=this._preventInitialSearch(r)}o.setSuspendSelection(false);this._bSearchTriggered=!a;t.setHeaderExpanded(g.desktop||a)}}).catch(function(){t.error("Variant ID cannot be applied")}))},handleVariantIdPassedViaURLParams:function(t){const e=t["sap-ui-fe-variant-id"],a=t["sap-ui-fe-filterbar-variant-id"],n=t["sap-ui-fe-table-variant-id"],i=t["sap-ui-fe-chart-variant-id"];let r;if(e||a||n||i){r={sPageVariantId:e&&e[0],sFilterBarVariantId:a&&a[0],sTableVariantId:n&&n[0],sChartVariantId:i&&i[0]}}return this._handleControlVariantId(r)},_handleControlVariantId:function(t){let e;const a=this.getView(),n=[];const i=a.getViewData().variantManagement;if(t&&t.sPageVariantId&&i==="Page"){e=a.byId("fe::PageVariantManagement");this._handlePageVariantId(t,e,n)}else if(t&&i==="Control"){if(t.sFilterBarVariantId){e=a.getController()._getFilterBarVariantControl();this._handleFilterBarVariantControlId(t,e,n)}if(t.sTableVariantId){const e=a.getController();this._handleTableControlVariantId(t,e,n)}if(t.sChartVariantId){const e=a.getController();this._handleChartControlVariantId(t,e,n)}}return Promise.all(n)},_handlePageVariantId:function(t,e,a){e.getVariants().forEach(n=>{this._findAndPushVariantToPromise(n,t.sPageVariantId,e,a,true)})},_handleFilterBarVariantControlId:function(t,e,a){if(e){e.getVariants().forEach(n=>{this._findAndPushVariantToPromise(n,t.sFilterBarVariantId,e,a,true)})}},_handleTableControlVariantId:function(t,e,a){const n=e._getControls("table");n.forEach(e=>{const n=e.getVariant();if(e&&n){n.getVariants().forEach(e=>{this._findAndPushVariantToPromise(e,t.sTableVariantId,n,a)})}})},_handleChartControlVariantId:function(t,e,a){const n=e._getControls("Chart");n.forEach(e=>{const n=e.getVariant();const i=n.getVariants();if(i){i.forEach(e=>{this._findAndPushVariantToPromise(e,t.sChartVariantId,n,a)})}})},_findAndPushVariantToPromise:function(t,e,a,n,i){if(t.key===e){n.push(this._applyControlVariant(a,e,i))}},_applyControlVariant:function(t,e,a){const n=this._checkIfVariantIdIsAvailable(t,e)?e:t.getStandardVariantKey();const i=d.activateVariant({element:t,variantReference:n});return i.then(function(){return a})},_getFilterBarVM:function(t){const e=t.getViewData();switch(e.variantManagement){case p.Page:return t.byId("fe::PageVariantManagement");case p.Control:return t.getController()._getFilterBarVariantControl();case p.None:return null;default:throw new Error(`unhandled variant setting: ${e.variantManagement}`)}},_preventInitialSearch:function(t){if(!t){return true}const e=t.getVariants();const a=e.find(function(e){return e.key===t.getCurrentVariantKey()});return!a.executeOnSelect},_applySelectionVariant:function(t,a,n){const i=t.getController()._getFilterBarControl(),r=a.selectionVariant,o=a.selectionVariantDefaults;if(!i||!r){return Promise.resolve()}let l={};const s=t.getModel().getMetaModel();const c=t.getViewData();const d=c.contextPath||`/${c.entitySet}`;const f=e.getMandatoryFilterFields(s,d);const h=i.data("useSemanticDateRange");let g;switch(c.variantManagement){case p.Page:g=t.byId("fe::PageVariantManagement");break;case p.Control:g=t.getController()._getFilterBarVariantControl();break;case p.None:default:break}const u=a.requiresStandardVariant;const V=o&&o.getSelectOptionsPropertyNames().length>0&&g.getDefaultVariantKey()===g.getStandardVariantKey()&&a.bNavSelVarHasDefaultsOnly;if(n||V){l=i.getConditions()}e.addDefaultDisplayCurrency(f,r,o);e.addSelectionVariantToConditions(r,l,s,d,V,h,c);return this._activateSelectionVariant(i,l,g,u,n,V)},_activateSelectionVariant:function(t,e,a,n,i,r){let o;if(a&&!i){let t=n?a.getStandardVariantKey():a.getDefaultVariantKey();if(t===null){t=a.getId()}o=d.activateVariant({element:a,variantReference:t}).then(function(){return n||a.getDefaultVariantKey()===a.getStandardVariantKey()})}else{o=Promise.resolve(true)}return o.then(a=>{if(a){return this._fnApplyConditions(t,e,r)}})},_fnClearStateBeforexAppNav:async function(e){return await h.retrieveExternalState(e).then(t=>{const e=t.filter;for(const t in e){if(t!=="$editState"&&t!=="$search"&&e[t]){e[t].forEach(t=>{t["filtered"]=false})}}return Promise.resolve(e)}).catch(function(e){t.error("Error while retrieving the external state",e)})},_fnApplyConditions:async function(t,a,i){const s={},c=[],d=function(t){t.validated=f.Validated;if(t.operator==="Empty"){t.operator="EQ";t.values=[""]}else if(t.operator==="NotEmpty"){t.operator="NE";t.values=[""]}delete t.isEmpty};const g=function(t,a){const i=n.getEntitySetPath(a),o=t.getModel().getMetaModel(),s=e.getFilterRestrictionsByPath(i,o),c=s.NonFilterableProperties,d=l.getConvertedFilterFields(t,a),f=[];d.forEach(function(t){const e=t.conditionPath.replace(_,"");if(c.indexOf(e)===-1){const e=t.annotationPath;const a=o.createBindingContext(e);f.push({path:t.conditionPath,hiddenFilter:t.availability==="Hidden",hasValueHelp:!e?false:r.hasValueHelp(a.getObject(),{context:a})})}});return f};return t.waitForInitialization().then(async()=>{const e=o.getCustomData(t,"entityType");if(!i){const e=await this._fnClearStateBeforexAppNav(t);await h.applyExternalState(t,{filter:e,items:c})}const n=g(t,e);n.filter(function(t){return t.path!=="$editState"&&t.path!=="$search"}).forEach(t=>{if(t.path in a){s[t.path]=a[t.path];if(!t.hiddenFilter){c.push({name:t.path})}if(t.hasValueHelp){s[t.path].forEach(d)}else{s[t.path].forEach(function(t){t.validated=t.filtered?f.NotValidated:t.validated})}}else{s[t.path]=[]}});return h.applyExternalState(t,{filter:s,items:c})})},_clearFilterConditions:async function(t){const e=[];return t.waitForInitialization().then(async()=>{const a=await this._fnClearStateBeforexAppNav(t);return h.applyExternalState(t,{filter:a,items:e})})}};return y},false);
|
|
6
6
|
//# sourceMappingURL=ViewState.js.map
|