@sapui5/sap.fe.templates 1.111.1 → 1.113.0

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.
Files changed (130) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/manifest.json +1 -1
  4. package/src/sap/fe/templates/ListComponent-dbg.js +1 -1
  5. package/src/sap/fe/templates/ListComponent.ts +2 -0
  6. package/src/sap/fe/templates/ListReport/Component-dbg.js +1 -1
  7. package/src/sap/fe/templates/ListReport/Component.ts +2 -0
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI-dbg.js +4 -1
  9. package/src/sap/fe/templates/ListReport/ExtensionAPI.js.map +1 -1
  10. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +5 -0
  11. package/src/sap/fe/templates/ListReport/LRMessageStrip-dbg.js +1 -1
  12. package/src/sap/fe/templates/ListReport/LRMessageStrip.ts +4 -0
  13. package/src/sap/fe/templates/ListReport/ListReport.view.xml +1 -1
  14. package/src/sap/fe/templates/ListReport/ListReportController-dbg.controller.js +55 -42
  15. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +1 -1
  16. package/src/sap/fe/templates/ListReport/ListReportController.controller.js.map +1 -1
  17. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +75 -61
  18. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl-dbg.js +33 -9
  19. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js +1 -1
  20. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.js.map +1 -1
  21. package/src/sap/fe/templates/ListReport/controls/MultipleModeControl.ts +39 -9
  22. package/src/sap/fe/templates/ListReport/manifest.json +1 -1
  23. package/src/sap/fe/templates/ListReport/overrides/ViewState-dbg.js +47 -7
  24. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +1 -1
  25. package/src/sap/fe/templates/ListReport/overrides/ViewState.js.map +1 -1
  26. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +49 -6
  27. package/src/sap/fe/templates/ListReport/view/fragments/MacroChart.fragment.xml +1 -1
  28. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block-dbg.js +122 -0
  29. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.js → MultipleMode.block.js} +3 -3
  30. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.block.js.map +1 -0
  31. package/src/sap/fe/templates/ListReport/view/fragments/{MultipleMode.fragment.ts → MultipleMode.block.ts} +14 -15
  32. package/src/sap/fe/templates/ObjectPage/Component-dbg.js +12 -3
  33. package/src/sap/fe/templates/ObjectPage/Component.js +1 -1
  34. package/src/sap/fe/templates/ObjectPage/Component.js.map +1 -1
  35. package/src/sap/fe/templates/ObjectPage/Component.ts +13 -1
  36. package/src/sap/fe/templates/ObjectPage/ExtensionAPI-dbg.js +10 -12
  37. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +1 -1
  38. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js.map +1 -1
  39. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +11 -12
  40. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +3 -2
  41. package/src/sap/fe/templates/ObjectPage/ObjectPageController-dbg.controller.js +144 -121
  42. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +1 -1
  43. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js.map +1 -1
  44. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +190 -143
  45. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating-dbg.js +55 -146
  46. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +1 -1
  47. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js.map +1 -1
  48. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +71 -185
  49. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block-dbg.js +145 -0
  50. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js +6 -0
  51. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.block.js.map +1 -0
  52. package/src/sap/fe/templates/ObjectPage/components/{DraftHandlerButton.tsx → DraftHandlerButton.block.tsx} +15 -12
  53. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox-dbg.js +1 -1
  54. package/src/sap/fe/templates/ObjectPage/controls/StashableHBox.ts +1 -0
  55. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock-dbg.js +2 -1
  56. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js.map +1 -1
  57. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +5 -0
  58. package/src/sap/fe/templates/ObjectPage/manifest.json +1 -1
  59. package/src/sap/fe/templates/ObjectPage/overrides/Share.js.map +1 -1
  60. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +4 -3
  61. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block-dbg.js +257 -0
  62. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js +6 -0
  63. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.js.map +1 -0
  64. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.block.tsx +280 -0
  65. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +8 -33
  66. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +189 -109
  67. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionEmbeddedComponent.fragment.xml +24 -0
  68. package/src/sap/fe/templates/library-dbg.js +6 -5
  69. package/src/sap/fe/templates/library-preload.js +27 -23
  70. package/src/sap/fe/templates/library-preload.js.map +1 -1
  71. package/src/sap/fe/templates/library.js +1 -1
  72. package/src/sap/fe/templates/library.js.map +1 -1
  73. package/src/sap/fe/templates/library.ts +6 -4
  74. package/src/sap/fe/templates/manifest.json +1 -1
  75. package/src/sap/fe/templates/messagebundle.properties +5 -0
  76. package/src/sap/fe/templates/messagebundle_ar.properties +3 -0
  77. package/src/sap/fe/templates/messagebundle_bg.properties +4 -1
  78. package/src/sap/fe/templates/messagebundle_ca.properties +3 -0
  79. package/src/sap/fe/templates/messagebundle_cs.properties +3 -0
  80. package/src/sap/fe/templates/messagebundle_cy.properties +3 -0
  81. package/src/sap/fe/templates/messagebundle_da.properties +3 -0
  82. package/src/sap/fe/templates/messagebundle_de.properties +3 -0
  83. package/src/sap/fe/templates/messagebundle_el.properties +3 -0
  84. package/src/sap/fe/templates/messagebundle_en.properties +5 -0
  85. package/src/sap/fe/templates/messagebundle_en_GB.properties +3 -0
  86. package/src/sap/fe/templates/messagebundle_en_US_sappsd.properties +3 -0
  87. package/src/sap/fe/templates/messagebundle_en_US_saprigi.properties +3 -0
  88. package/src/sap/fe/templates/messagebundle_en_US_saptrc.properties +3 -0
  89. package/src/sap/fe/templates/messagebundle_es.properties +5 -2
  90. package/src/sap/fe/templates/messagebundle_es_MX.properties +3 -0
  91. package/src/sap/fe/templates/messagebundle_et.properties +5 -2
  92. package/src/sap/fe/templates/messagebundle_fi.properties +3 -0
  93. package/src/sap/fe/templates/messagebundle_fr.properties +3 -0
  94. package/src/sap/fe/templates/messagebundle_fr_CA.properties +3 -0
  95. package/src/sap/fe/templates/messagebundle_hi.properties +3 -0
  96. package/src/sap/fe/templates/messagebundle_hr.properties +3 -0
  97. package/src/sap/fe/templates/messagebundle_hu.properties +3 -0
  98. package/src/sap/fe/templates/messagebundle_id.properties +3 -0
  99. package/src/sap/fe/templates/messagebundle_it.properties +3 -0
  100. package/src/sap/fe/templates/messagebundle_iw.properties +3 -0
  101. package/src/sap/fe/templates/messagebundle_ja.properties +3 -0
  102. package/src/sap/fe/templates/messagebundle_kk.properties +3 -0
  103. package/src/sap/fe/templates/messagebundle_ko.properties +3 -0
  104. package/src/sap/fe/templates/messagebundle_lt.properties +3 -0
  105. package/src/sap/fe/templates/messagebundle_lv.properties +3 -0
  106. package/src/sap/fe/templates/messagebundle_ms.properties +3 -0
  107. package/src/sap/fe/templates/messagebundle_nl.properties +3 -0
  108. package/src/sap/fe/templates/messagebundle_no.properties +3 -0
  109. package/src/sap/fe/templates/messagebundle_pl.properties +3 -0
  110. package/src/sap/fe/templates/messagebundle_pt.properties +3 -0
  111. package/src/sap/fe/templates/messagebundle_pt_PT.properties +3 -0
  112. package/src/sap/fe/templates/messagebundle_ro.properties +5 -2
  113. package/src/sap/fe/templates/messagebundle_ru.properties +3 -0
  114. package/src/sap/fe/templates/messagebundle_sh.properties +5 -2
  115. package/src/sap/fe/templates/messagebundle_sk.properties +3 -0
  116. package/src/sap/fe/templates/messagebundle_sl.properties +3 -0
  117. package/src/sap/fe/templates/messagebundle_sv.properties +3 -0
  118. package/src/sap/fe/templates/messagebundle_th.properties +5 -2
  119. package/src/sap/fe/templates/messagebundle_tr.properties +3 -0
  120. package/src/sap/fe/templates/messagebundle_uk.properties +3 -0
  121. package/src/sap/fe/templates/messagebundle_vi.properties +5 -2
  122. package/src/sap/fe/templates/messagebundle_zh_CN.properties +5 -2
  123. package/src/sap/fe/templates/messagebundle_zh_TW.properties +3 -0
  124. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode-dbg.fragment.js +0 -123
  125. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js.map +0 -1
  126. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton-dbg.js +0 -147
  127. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js +0 -6
  128. package/src/sap/fe/templates/ObjectPage/components/DraftHandlerButton.js.map +0 -1
  129. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +0 -125
  130. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContentLazyLoader.fragment.xml +0 -199
@@ -2,10 +2,11 @@
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/ClassSupport", "sap/fe/core/helpers/MessageStrip", "sap/fe/macros/DelegateUtil", "sap/m/IconTabFilter", "sap/ui/core/Control", "sap/ui/core/Core", "sap/ui/fl/write/api/ControlPersonalizationWriteAPI", "sap/ui/model/json/JSONModel"], function (Log, CommonUtils, ClassSupport, MessageStrip, DelegateUtil, IconTabFilter, Control, Core, ControlPersonalizationWriteAPI, JSONModel) {
5
+ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/converters/MetaModelConverter", "sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/MessageStrip", "sap/fe/core/helpers/ResourceModelHelper", "sap/m/IconTabFilter", "sap/ui/core/Control", "sap/ui/core/Core", "sap/ui/fl/write/api/ControlPersonalizationWriteAPI", "sap/ui/model/json/JSONModel"], function (Log, CommonUtils, MetaModelConverter, ClassSupport, MessageStrip, ResourceModelHelper, IconTabFilter, Control, Core, ControlPersonalizationWriteAPI, JSONModel) {
6
6
  "use strict";
7
7
 
8
8
  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;
9
+ var getResourceModel = ResourceModelHelper.getResourceModel;
9
10
  var property = ClassSupport.property;
10
11
  var event = ClassSupport.event;
11
12
  var defineUI5Class = ClassSupport.defineUI5Class;
@@ -201,9 +202,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
201
202
  /**
202
203
  * Updates the internal model with the properties that are not applicable on each IconTabFilter (containing inner control) according to the entityType of the filter control.
203
204
  *
204
- * @param oResourceBundle
205
205
  */;
206
- _proto._updateMultiTabNotApplicableFields = function _updateMultiTabNotApplicableFields(oResourceBundle) {
206
+ _proto._updateMultiTabNotApplicableFields = function _updateMultiTabNotApplicableFields() {
207
207
  const tabsModel = this.getTabsModel();
208
208
  const oFilterControl = this._getFilterControl();
209
209
  if (tabsModel && oFilterControl) {
@@ -220,17 +220,42 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
220
220
  title: this._setTabMessageStrip({
221
221
  entityTypePath: oFilterControl.data("entityType"),
222
222
  ignoredFields: mIgnoredFields,
223
- resourceBundle: oResourceBundle,
224
223
  title: oTab.getText()
225
224
  })
226
225
  }
227
226
  };
227
+ if (oMacroAPI && oMacroAPI.isA("sap.fe.macros.chart.ChartAPI")) {
228
+ results[sTabId] = this.checkNonFilterableEntitySet(oMacroAPI, sTabId, results);
229
+ }
228
230
  }
229
231
  });
230
232
  tabsModel.setData(results);
231
233
  }
232
234
  }
233
235
 
236
+ /**
237
+ * Modifies the messagestrip message based on entity set is filerable or not.
238
+ *
239
+ * @param {InnerControlType} oMacroAPI Macro chart api
240
+ * @param {string} sTabId Tab key ID
241
+ * @param {object} results Should contain fields and title
242
+ * @returns {object} An object of modified fields and title
243
+ */;
244
+ _proto.checkNonFilterableEntitySet = function checkNonFilterableEntitySet(oMacroAPI, sTabId, results) {
245
+ var _MetaModelConverter$g, _MetaModelConverter$g2, _MetaModelConverter$g3, _MetaModelConverter$g4, _MetaModelConverter$g5;
246
+ const resourceModel = getResourceModel(oMacroAPI);
247
+ const oChart = oMacroAPI !== null && oMacroAPI !== void 0 && oMacroAPI.getContent ? oMacroAPI.getContent() : undefined;
248
+ const bEntitySetFilerable = oChart && ((_MetaModelConverter$g = MetaModelConverter.getInvolvedDataModelObjects(oChart.getModel().getMetaModel().getContext(`${oChart.data("targetCollectionPath")}`))) === null || _MetaModelConverter$g === void 0 ? void 0 : (_MetaModelConverter$g2 = _MetaModelConverter$g.targetObject) === null || _MetaModelConverter$g2 === void 0 ? void 0 : (_MetaModelConverter$g3 = _MetaModelConverter$g2.annotations) === null || _MetaModelConverter$g3 === void 0 ? void 0 : (_MetaModelConverter$g4 = _MetaModelConverter$g3.Capabilities) === null || _MetaModelConverter$g4 === void 0 ? void 0 : (_MetaModelConverter$g5 = _MetaModelConverter$g4.FilterRestrictions) === null || _MetaModelConverter$g5 === void 0 ? void 0 : _MetaModelConverter$g5.Filterable);
249
+ if (bEntitySetFilerable !== undefined && !bEntitySetFilerable) {
250
+ if (results[sTabId].notApplicable.fields.indexOf("$search") > -1) {
251
+ results[sTabId].notApplicable.title += " " + resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
252
+ } else {
253
+ results[sTabId].notApplicable.fields = ["nonFilterable"];
254
+ results[sTabId].notApplicable.title = resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
255
+ }
256
+ }
257
+ return results[sTabId];
258
+ }
234
259
  /**
235
260
  * Gets the inner controls.
236
261
  *
@@ -312,8 +337,8 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
312
337
  const aIgnoredFields = properties.ignoredFields;
313
338
  const oFilterControl = this._getFilterControl();
314
339
  if (oFilterControl && Array.isArray(aIgnoredFields) && aIgnoredFields.length > 0 && properties.title) {
315
- const aIgnoredLabels = MessageStrip.getLabels(aIgnoredFields, properties.entityTypePath, oFilterControl, properties.resourceBundle);
316
- sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title, DelegateUtil.getLocalizedText);
340
+ const aIgnoredLabels = MessageStrip.getLabels(aIgnoredFields, properties.entityTypePath, oFilterControl, getResourceModel(oFilterControl));
341
+ sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title);
317
342
  return sText;
318
343
  }
319
344
  };
@@ -321,8 +346,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
321
346
  this.setCountsOutDated(true);
322
347
  this.setFreezeContent(false);
323
348
  if (this.getSelectedInnerControl()) {
324
- var _this$_getViewControl3;
325
- this._updateMultiTabNotApplicableFields((_this$_getViewControl3 = this._getViewController()) === null || _this$_getViewControl3 === void 0 ? void 0 : _this$_getViewControl3.oResourceBundle);
349
+ this._updateMultiTabNotApplicableFields();
326
350
  } else {
327
351
  // custom tab
328
352
  this._refreshCustomView(oEvent.getParameter("conditions"), "search");
@@ -372,4 +396,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/C
372
396
  })), _class2)) || _class);
373
397
  return MultipleModeControl;
374
398
  }, false);
375
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJDb250cm9sIiwiX2dldEZpbHRlckNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsIm9GaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJiVmFsdWUiLCJzZXRQcm9wZXJ0eSIsInNldEZyZWV6ZUNvbnRlbnQiLCJfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzIiwib1Jlc291cmNlQnVuZGxlIiwidGFic01vZGVsIiwicmVzdWx0cyIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJyZXNvdXJjZUJ1bmRsZSIsImdldFRleHQiLCJzZXREYXRhIiwiYk9ubHlGb3JWaXNpYmxlVGFiIiwiaW5uZXJDb250cm9scyIsInJlZHVjZSIsImFJbm5lckNvbnRyb2xzIiwic0lubmVyQ29udHJvbCIsIkNvcmUiLCJieUlkIiwicHVzaCIsImZpbHRlciIsIm9Jbm5lckNvbnRyb2wiLCJnZXRWaXNpYmxlIiwiZmlsdGVyQ29udHJvbCIsInNTdXBwb3J0ZWRDbGFzcyIsIkljb25UYWJGaWx0ZXIiLCJnZXRNZXRhZGF0YSIsImdldE5hbWUiLCJpc0EiLCJvVmlldyIsIkNvbW1vblV0aWxzIiwiZ2V0VGFyZ2V0VmlldyIsImdldENvbnRyb2xsZXIiLCJvRmlsdGVyQ29uZGl0aW9ucyIsInNSZWZyZXNoQ2F1c2UiLCJvblZpZXdOZWVkc1JlZnJlc2giLCJmaWx0ZXJDb25kaXRpb25zIiwiY3VycmVudFRhYklkIiwicmVmcmVzaENhdXNlIiwidGFibGVFdmVudCIsImV2ZW50TWFjcm9BUEkiLCJ0YXJnZXRLZXkiLCJvSWNvblRhYkZpbHRlciIsImdldENvdW50cyIsImNvdW50c091dERhdGVkIiwic2V0Q291bnQiLCJ0aGVuIiwiaUNvdW50IiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCIsImJJc1NlbGVjdGVkS2V5Iiwic0FjdGlvbiIsIlJlc3VtZSIsIlN1c3BlbmQiLCJwcm9wZXJ0aWVzIiwic1RleHQiLCJhSWdub3JlZEZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImFJZ25vcmVkTGFiZWxzIiwiTWVzc2FnZVN0cmlwIiwiZ2V0TGFiZWxzIiwiRGVsZWdhdGVVdGlsIiwiZ2V0TG9jYWxpemVkVGV4dCIsImdldFBhcmFtZXRlciIsIkNvbnRyb2wiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZUNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgUmVzb3VyY2VCdW5kbGUgZnJvbSBcInNhcC9iYXNlL2kxOG4vUmVzb3VyY2VCdW5kbGVcIjtcbmltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IHR5cGUgRmlsdGVyQmFyIGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9scy9GaWx0ZXJCYXJcIjtcbmltcG9ydCB7IGFnZ3JlZ2F0aW9uLCBhc3NvY2lhdGlvbiwgZGVmaW5lVUk1Q2xhc3MsIGV2ZW50LCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IE1lc3NhZ2VTdHJpcCBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9NZXNzYWdlU3RyaXBcIjtcbmltcG9ydCBEZWxlZ2F0ZVV0aWwgZnJvbSBcInNhcC9mZS9tYWNyb3MvRGVsZWdhdGVVdGlsXCI7XG5pbXBvcnQgTWFjcm9BUEkgZnJvbSBcInNhcC9mZS9tYWNyb3MvTWFjcm9BUElcIjtcbmltcG9ydCBJY29uVGFiQmFyIGZyb20gXCJzYXAvbS9JY29uVGFiQmFyXCI7XG5pbXBvcnQgSWNvblRhYkZpbHRlciBmcm9tIFwic2FwL20vSWNvblRhYkZpbHRlclwiO1xuaW1wb3J0IHR5cGUgQ29yZUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBDb3JlIGZyb20gXCJzYXAvdWkvY29yZS9Db3JlXCI7XG5pbXBvcnQgUmVuZGVyTWFuYWdlciBmcm9tIFwic2FwL3VpL2NvcmUvUmVuZGVyTWFuYWdlclwiO1xuaW1wb3J0IENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSSBmcm9tIFwic2FwL3VpL2ZsL3dyaXRlL2FwaS9Db250cm9sUGVyc29uYWxpemF0aW9uV3JpdGVBUElcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IE1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvTW9kZWxcIjtcblxuZXhwb3J0IHR5cGUgSW5uZXJDb250cm9sVHlwZSA9IE1hY3JvQVBJICZcblx0UGFydGlhbDx7XG5cdFx0cmVzdW1lQmluZGluZzogRnVuY3Rpb247XG5cdFx0c3VzcGVuZEJpbmRpbmc6IEZ1bmN0aW9uO1xuXHRcdGdldENvdW50czogRnVuY3Rpb247XG5cdFx0cmVmcmVzaE5vdEFwcGxpY2FibGVGaWVsZHM6IEZ1bmN0aW9uO1xuXHRcdGludmFsaWRhdGVDb250ZW50OiBGdW5jdGlvbjtcblx0fT47XG5cbnR5cGUgTWVzc2FnZVN0cmlwUHJvcGVydGllcyA9IHtcblx0ZW50aXR5VHlwZVBhdGg6IHN0cmluZztcblx0aWdub3JlZEZpZWxkczogYW55W107XG5cdHJlc291cmNlQnVuZGxlOiBSZXNvdXJjZUJ1bmRsZTtcblx0dGl0bGU6IHN0cmluZztcbn07XG5cbmVudW0gQmluZGluZ0FjdGlvbiB7XG5cdFN1c3BlbmQgPSBcInN1c3BlbmRCaW5kaW5nXCIsXG5cdFJlc3VtZSA9IFwicmVzdW1lQmluZGluZ1wiXG59XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5jb250cm9scy5NdWx0aXBsZU1vZGVDb250cm9sXCIpXG5jbGFzcyBNdWx0aXBsZU1vZGVDb250cm9sIGV4dGVuZHMgQ29udHJvbCB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHNob3dDb3VudHMhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGZyZWV6ZUNvbnRlbnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGNvdW50c091dERhdGVkITogYm9vbGVhbjtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkljb25UYWJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IEljb25UYWJCYXI7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGlubmVyQ29udHJvbHMhOiBzdHJpbmdbXTtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0ZmlsdGVyQ29udHJvbCE6IHN0cmluZztcblxuXHRAZXZlbnQoKVxuXHRzZWxlY3QhOiBGdW5jdGlvbjtcblxuXHRvbkJlZm9yZVJlbmRlcmluZygpIHtcblx0XHR0aGlzLmdldFRhYnNNb2RlbCgpOyAvLyBHZW5lcmF0ZSB0aGUgbW9kZWwgd2hpY2ggaXMgbWFuZGF0b3J5IGZvciBzb21lIGJpbmRpbmdzXG5cblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRpZiAoIW9GaWx0ZXJDb250cm9sKSB7XG5cdFx0XHQvLyBJbiBjYXNlIHRoZXJlJ3Mgbm8gZmlsdGVyYmFyLCB3ZSBoYXZlIHRvIHVwZGF0ZSB0aGUgY291bnRzIGluIHRoZSB0YWJzIGltbWVkaWF0ZWx5XG5cdFx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdH1cblx0XHRjb25zdCBvRmlsdGVyQmFyQVBJID0gb0ZpbHRlckNvbnRyb2w/LmdldFBhcmVudCgpO1xuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvd0NvdW50cykge1xuXHRcdFx0XHRvTWFjcm9BUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcIiwgdGhpcy5fcmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5yZXN1bWVCaW5kaW5nPy4oIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCkge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWwgfCB1bmRlZmluZWR9IFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IE1vZGVsIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzVGFic01vZGVsID0gXCJ0YWJzSW50ZXJuYWxcIjtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRpZiAoIW9Db250ZW50KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRsZXQgb01vZGVsID0gb0NvbnRlbnQuZ2V0TW9kZWwoc1RhYnNNb2RlbCk7XG5cdFx0aWYgKCFvTW9kZWwpIHtcblx0XHRcdG9Nb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pO1xuXHRcdFx0b0NvbnRlbnQuc2V0TW9kZWwob01vZGVsLCBzVGFic01vZGVsKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpbm5lciBjb250cm9sIG9mIHRoZSBkaXNwbGF5ZWQgdGFiLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7SW5uZXJDb250cm9sVHlwZSB8IHVuZGVmaW5lZH0gVGhlIGNvbnRyb2xcblx0ICovXG5cdGdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk6IElubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9TZWxlY3RlZFRhYiA9IHRoaXMuY29udGVudD8uZ2V0SXRlbXMoKS5maW5kKChvSXRlbSkgPT4gKG9JdGVtIGFzIEljb25UYWJGaWx0ZXIpLmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSk7XG5cdFx0cmV0dXJuIG9TZWxlY3RlZFRhYlxuXHRcdFx0PyB0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5maW5kKChvTWFjcm9BUEkpID0+IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKSA9PT0gb1NlbGVjdGVkVGFiKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUgYmluZGluZyBvZiBhbGwgaW5uZXIgY29udHJvbHMgd2hlbiB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3NhcC51aS5iYXNlLkV2ZW50fSBvRXZlbnQgRXZlbnQgZmlyZWQgYnkgdGhlIEljb25UYWJCYXJcblx0ICovXG5cdHN0YXRpYyBoYW5kbGVUYWJDaGFuZ2Uob0V2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCk7XG5cblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCk7XG5cdFx0b011bHRpQ29udHJvbC5fc2V0SW5uZXJCaW5kaW5nKHRydWUpO1xuXHRcdGNvbnN0IHNQcmV2aW91c1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnByZXZpb3VzS2V5O1xuXHRcdGNvbnN0IHNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5zZWxlY3RlZEtleTtcblxuXHRcdGlmIChzU2VsZWN0ZWRLZXkgJiYgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgIT09IHNTZWxlY3RlZEtleSkge1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9NdWx0aUNvbnRyb2wuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRcdGlmIChvRmlsdGVyQmFyICYmICFvTXVsdGlDb250cm9sLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSkge1xuXHRcdFx0XHRpZiAoIW9NdWx0aUNvbnRyb2wuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0XHRcdC8vY3VzdG9tIHRhYlxuXHRcdFx0XHRcdG9NdWx0aUNvbnRyb2wuX3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpLCBcInRhYkNoYW5nZWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSS5hZGQoe1xuXHRcdFx0XHRjaGFuZ2VzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y2hhbmdlU3BlY2lmaWNEYXRhOiB7XG5cdFx0XHRcdFx0XHRcdGNoYW5nZVR5cGU6IFwic2VsZWN0SWNvblRhYkJhckZpbHRlclwiLFxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c1NlbGVjdGVkS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0c2VsZWN0b3JFbGVtZW50OiBvSWNvblRhYkJhclxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0b011bHRpQ29udHJvbC5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8uZ2V0RXh0ZW5zaW9uQVBJKCk/LnVwZGF0ZUFwcFN0YXRlKCk7XG5cblx0XHRvTXVsdGlDb250cm9sLmZpcmVFdmVudChcInNlbGVjdFwiLCB7XG5cdFx0XHRpY29uVGFiQmFyOiBvSWNvblRhYkJhcixcblx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRwcmV2aW91c0tleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbnZhbGlkYXRlcyB0aGUgY29udGVudCBvZiBhbGwgaW5uZXIgY29udHJvbHMuXG5cdCAqL1xuXHRpbnZhbGlkYXRlQ29udGVudCgpIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0b01hY3JvQVBJLmludmFsaWRhdGVDb250ZW50Py4oKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBjb3VudHMgdG8gb3V0IG9mIGRhdGUgb3IgdXAgdG8gZGF0ZVxuXHQgKiBJZiB0aGUgY291bnRzIGFyZSBzZXQgdG8gXCJvdXQgb2YgZGF0ZVwiIGFuZCB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBkb2Vzbid0IGNvbnRhaW4gYW4gaW5uZXIgY29udHJvbCBhbGwgaW5uZXIgY29udHJvbHMgYXJlIHJlcXVlc3RlZCB0byBnZXQgdGhlIG5ldyBjb3VudHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYlZhbHVlIEZyZWV6ZSBvciBub3QgdGhlIGNvbnRyb2xcblx0ICovXG5cdHNldENvdW50c091dERhdGVkKGJWYWx1ZSA9IHRydWUpIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiY291bnRzT3V0RGF0ZWRcIiwgYlZhbHVlKTtcblx0XHQvLyBpZiB0aGUgY3VycmVudCB0YWIgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBubyBpbm5lciBDb250cm9sXG5cdFx0Ly8gdGhlIHRhYiBjb3VudHMgbXVzdCBiZSBtYW51YWxseSByZWZyZXNoZWQgc2luY2Ugbm8gTWFjcm8gQVBJIHdpbGwgc2VudCBldmVudCBpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcblx0XHRpZiAoYlZhbHVlICYmICF0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuX3JlZnJlc2hUYWJzQ291bnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRnJlZXplcyB0aGUgY29udGVudCA6XG5cdCAqICAtIGNvbnRlbnQgaXMgZnJvemVuOiB0aGUgYmluZGluZyBvZiB0aGUgaW5uZXIgY29udHJvbHMgYXJlIHN1c3BlbmRlZC5cblx0ICogIC0gY29udGVudCBpcyB1bmZyb3plbjogdGhlIGJpbmRpbmcgb2YgaW5uZXIgY29udHJvbCByZWxhdGVkIHRvIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGlzIHJlc3VtZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYlZhbHVlIEZyZWV6ZSBvciBub3QgdGhlIGNvbnRyb2xcblx0ICovXG5cdHNldEZyZWV6ZUNvbnRlbnQoYlZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIiwgYlZhbHVlKTtcblx0XHR0aGlzLl9zZXRJbm5lckJpbmRpbmcoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBpbnRlcm5hbCBtb2RlbCB3aXRoIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBhcHBsaWNhYmxlIG9uIGVhY2ggSWNvblRhYkZpbHRlciAoY29udGFpbmluZyBpbm5lciBjb250cm9sKSBhY2NvcmRpbmcgdG8gdGhlIGVudGl0eVR5cGUgb2YgdGhlIGZpbHRlciBjb250cm9sLlxuXHQgKlxuXHQgKiBAcGFyYW0gb1Jlc291cmNlQnVuZGxlXG5cdCAqL1xuXHRfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKG9SZXNvdXJjZUJ1bmRsZTogUmVzb3VyY2VCdW5kbGUpIHtcblx0XHRjb25zdCB0YWJzTW9kZWwgPSB0aGlzLmdldFRhYnNNb2RlbCgpO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKHRhYnNNb2RlbCAmJiBvRmlsdGVyQ29udHJvbCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0czogYW55ID0ge307XG5cdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb1RhYiA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0aWYgKG9UYWIpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdGNvbnN0IG1JZ25vcmVkRmllbGRzID0gb01hY3JvQVBJLnJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzPy4ob0ZpbHRlckNvbnRyb2wpIHx8IFtdO1xuXHRcdFx0XHRcdHJlc3VsdHNbc1RhYklkXSA9IHtcblx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0ZmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuX3NldFRhYk1lc3NhZ2VTdHJpcCh7XG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdGlnbm9yZWRGaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHJlc291cmNlQnVuZGxlOiBvUmVzb3VyY2VCdW5kbGUsXG5cdFx0XHRcdFx0XHRcdFx0dGl0bGU6IG9UYWIuZ2V0VGV4dCgpXG5cdFx0XHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQodGFic01vZGVsIGFzIGFueSkuc2V0RGF0YShyZXN1bHRzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgaW5uZXIgY29udHJvbHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYk9ubHlGb3JWaXNpYmxlVGFiIFNob3VsZCBkaXNwbGF5IG9ubHkgdGhlIHZpc2libGUgY29udHJvbHNcblx0ICogQHJldHVybnMge0lubmVyQ29udHJvbFR5cGVbXX0gQW4gYXJyYXkgb2YgY29udHJvbHNcblx0ICovXG5cdGdldEFsbElubmVyQ29udHJvbHMoYk9ubHlGb3JWaXNpYmxlVGFiID0gZmFsc2UpOiBJbm5lckNvbnRyb2xUeXBlW10ge1xuXHRcdHJldHVybiAoXG5cdFx0XHR0aGlzLmlubmVyQ29udHJvbHMucmVkdWNlKChhSW5uZXJDb250cm9sczogSW5uZXJDb250cm9sVHlwZVtdLCBzSW5uZXJDb250cm9sOiBzdHJpbmcpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbnRyb2wgPSBDb3JlLmJ5SWQoc0lubmVyQ29udHJvbCkgYXMgSW5uZXJDb250cm9sVHlwZTtcblx0XHRcdFx0aWYgKG9Db250cm9sKSB7XG5cdFx0XHRcdFx0YUlubmVyQ29udHJvbHMucHVzaChvQ29udHJvbCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIGFJbm5lckNvbnRyb2xzLmZpbHRlcihcblx0XHRcdFx0XHQob0lubmVyQ29udHJvbCkgPT4gIWJPbmx5Rm9yVmlzaWJsZVRhYiB8fCB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9Jbm5lckNvbnRyb2wpPy5nZXRWaXNpYmxlKClcblx0XHRcdFx0KTtcblx0XHRcdH0sIFtdKSB8fCBbXVxuXHRcdCk7XG5cdH1cblxuXHRfZ2V0RmlsdGVyQ29udHJvbCgpOiBGaWx0ZXJCYXIgfCB1bmRlZmluZWQge1xuXHRcdHJldHVybiBDb3JlLmJ5SWQodGhpcy5maWx0ZXJDb250cm9sKSBhcyBGaWx0ZXJCYXIgfCB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvQ29udHJvbDogQ29udHJvbCk6IEljb25UYWJGaWx0ZXIgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHNTdXBwb3J0ZWRDbGFzcyA9IEljb25UYWJGaWx0ZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCk7XG5cdFx0bGV0IG9UYWI6IGFueSA9IG9Db250cm9sO1xuXHRcdGlmIChvVGFiICYmICFvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpICYmIG9UYWIuZ2V0UGFyZW50KSB7XG5cdFx0XHRvVGFiID0gb0NvbnRyb2wuZ2V0UGFyZW50KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvVGFiICYmIG9UYWIuaXNBKHNTdXBwb3J0ZWRDbGFzcykgPyAob1RhYiBhcyBJY29uVGFiRmlsdGVyKSA6IHVuZGVmaW5lZDtcblx0fVxuXG5cdF9nZXRWaWV3Q29udHJvbGxlcigpIHtcblx0XHRjb25zdCBvVmlldyA9IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyk7XG5cdFx0cmV0dXJuIG9WaWV3ICYmIG9WaWV3LmdldENvbnRyb2xsZXIoKTtcblx0fVxuXG5cdF9yZWZyZXNoQ3VzdG9tVmlldyhvRmlsdGVyQ29uZGl0aW9uczogYW55LCBzUmVmcmVzaENhdXNlOiBzdHJpbmcpIHtcblx0XHQodGhpcy5fZ2V0Vmlld0NvbnRyb2xsZXIoKSBhcyBhbnkpPy5vblZpZXdOZWVkc1JlZnJlc2g/Lih7XG5cdFx0XHRmaWx0ZXJDb25kaXRpb25zOiBvRmlsdGVyQ29uZGl0aW9ucyxcblx0XHRcdGN1cnJlbnRUYWJJZDogdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCksXG5cdFx0XHRyZWZyZXNoQ2F1c2U6IHNSZWZyZXNoQ2F1c2Vcblx0XHR9KTtcblx0fVxuXG5cdF9yZWZyZXNoVGFic0NvdW50KHRhYmxlRXZlbnQ/OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHQvLyBJZiB0aGUgcmVmcmVzaCBpcyB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgKGludGVybmFsRGF0YVJlcXVlc3RlZClcblx0XHQvLyB3ZSBjYW5ub3QgdXNlIHRoZSBzZWxlY3RlZCBrZXkgYXMgcmVmZXJlbmNlIHNpbmNlIHRhYmxlIGNhbiBiZSByZWZyZXNoZWQgYnkgU2lkZUVmZmVjdHNcblx0XHQvLyBzbyB0aGUgdGFibGUgY291bGQgYmUgaW50byBhIGRpZmZlcmVudCB0YWIgLT4gd2UgdXNlIHRoZSBzb3VyY2Ugb2YgdGhlIGV2ZW50IHRvIGZpbmQgdGhlIHRhcmdldGVkIHRhYlxuXHRcdC8vIElmIG5vdCB0cmlnZ2VyZWQgYnkgYW4gZXZlbnQgLT4gcmVmcmVzaCBhdCBsZWFzdCB0aGUgY291bnRzIG9mIHRoZSBjdXJyZW50IE1hY3JvQVBJXG5cdFx0Ly8gSW4gYW55IGNhc2UgaWYgdGhlIGNvdW50cyBhcmUgc2V0IHRvIE91dGRhdGVkIGZvciB0aGUgTXVsdGlwbGVNb2RlQ29udHJvbCBhbGwgdGhlIGNvdW50cyBhcmUgcmVmcmVzaGVkXG5cdFx0Y29uc3QgZXZlbnRNYWNyb0FQSSA9IHRhYmxlRXZlbnQ/LmdldFNvdXJjZSgpIGFzIE1hY3JvQVBJO1xuXHRcdGNvbnN0IHRhcmdldEtleSA9IGV2ZW50TWFjcm9BUEkgPyB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKGV2ZW50TWFjcm9BUEkpPy5nZXRLZXkoKSA6IHRoaXMuY29udGVudD8uZ2V0U2VsZWN0ZWRLZXkoKTtcblxuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scyh0cnVlKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0aWYgKG9NYWNyb0FQST8uZ2V0Q291bnRzICYmICh0aGlzLmNvdW50c091dERhdGVkIHx8IHRhcmdldEtleSA9PT0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpKSkge1xuXHRcdFx0XHRpZiAob0ljb25UYWJGaWx0ZXIgJiYgb0ljb25UYWJGaWx0ZXIuc2V0Q291bnQpIHtcblx0XHRcdFx0XHRvSWNvblRhYkZpbHRlci5zZXRDb3VudChcIi4uLlwiKTtcblx0XHRcdFx0XHRvTWFjcm9BUElcblx0XHRcdFx0XHRcdC5nZXRDb3VudHMoKVxuXHRcdFx0XHRcdFx0LnRoZW4oKGlDb3VudDogc3RyaW5nKSA9PiBvSWNvblRhYkZpbHRlci5zZXRDb3VudChpQ291bnQgfHwgXCIwXCIpKVxuXHRcdFx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IGFueSkge1xuXHRcdFx0XHRcdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSByZXF1ZXN0aW5nIENvdW50cyBmb3IgQ29udHJvbFwiLCBvRXJyb3IpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKGZhbHNlKTtcblx0fVxuXG5cdF9zZXRJbm5lckJpbmRpbmcoYlJlcXVlc3RJZk5vdEluaXRpYWxpemVkID0gZmFsc2UpIHtcblx0XHRpZiAodGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb0ljb25UYWJGaWx0ZXIgPSB0aGlzLl9nZXRUYWJGcm9tSW5uZXJDb250cm9sKG9NYWNyb0FQSSk7XG5cdFx0XHRcdGNvbnN0IGJJc1NlbGVjdGVkS2V5ID0gb0ljb25UYWJGaWx0ZXI/LmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKTtcblx0XHRcdFx0Y29uc3Qgc0FjdGlvbiA9IGJJc1NlbGVjdGVkS2V5ICYmICF0aGlzLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSA/IEJpbmRpbmdBY3Rpb24uUmVzdW1lIDogQmluZGluZ0FjdGlvbi5TdXNwZW5kO1xuXHRcdFx0XHRvTWFjcm9BUElbc0FjdGlvbl0/LihzQWN0aW9uID09PSBCaW5kaW5nQWN0aW9uLlJlc3VtZSA/IGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCAmJiBiSXNTZWxlY3RlZEtleSA6IHVuZGVmaW5lZCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRfc2V0VGFiTWVzc2FnZVN0cmlwKHByb3BlcnRpZXM6IE1lc3NhZ2VTdHJpcFByb3BlcnRpZXMpIHtcblx0XHRsZXQgc1RleHQgPSBcIlwiO1xuXHRcdGNvbnN0IGFJZ25vcmVkRmllbGRzID0gcHJvcGVydGllcy5pZ25vcmVkRmllbGRzO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKG9GaWx0ZXJDb250cm9sICYmIEFycmF5LmlzQXJyYXkoYUlnbm9yZWRGaWVsZHMpICYmIGFJZ25vcmVkRmllbGRzLmxlbmd0aCA+IDAgJiYgcHJvcGVydGllcy50aXRsZSkge1xuXHRcdFx0Y29uc3QgYUlnbm9yZWRMYWJlbHMgPSBNZXNzYWdlU3RyaXAuZ2V0TGFiZWxzKFxuXHRcdFx0XHRhSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0cHJvcGVydGllcy5lbnRpdHlUeXBlUGF0aCxcblx0XHRcdFx0b0ZpbHRlckNvbnRyb2wsXG5cdFx0XHRcdHByb3BlcnRpZXMucmVzb3VyY2VCdW5kbGVcblx0XHRcdCk7XG5cdFx0XHRzVGV4dCA9IE1lc3NhZ2VTdHJpcC5nZXRUZXh0KGFJZ25vcmVkTGFiZWxzLCBvRmlsdGVyQ29udHJvbCwgcHJvcGVydGllcy50aXRsZSwgRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQpO1xuXHRcdFx0cmV0dXJuIHNUZXh0O1xuXHRcdH1cblx0fVxuXG5cdF9vblNlYXJjaChvRXZlbnQ6IENvcmVFdmVudCk6IHZvaWQge1xuXHRcdHRoaXMuc2V0Q291bnRzT3V0RGF0ZWQodHJ1ZSk7XG5cdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KGZhbHNlKTtcblx0XHRpZiAodGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpKSB7XG5cdFx0XHR0aGlzLl91cGRhdGVNdWx0aVRhYk5vdEFwcGxpY2FibGVGaWVsZHMoKHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCkgYXMgYW55KT8ub1Jlc291cmNlQnVuZGxlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Ly8gY3VzdG9tIHRhYlxuXHRcdFx0dGhpcy5fcmVmcmVzaEN1c3RvbVZpZXcob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNcIiksIFwic2VhcmNoXCIpO1xuXHRcdH1cblx0fVxuXG5cdF9vbkZpbHRlckNoYW5nZWQob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImNvbmRpdGlvbnNCYXNlZFwiKSkge1xuXHRcdFx0dGhpcy5zZXRGcmVlemVDb250ZW50KHRydWUpO1xuXHRcdH1cblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBNdWx0aXBsZU1vZGVDb250cm9sO1xuIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFBQTtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7O01Ba0NLQSxhQUFhO0VBQUEsV0FBYkEsYUFBYTtJQUFiQSxhQUFhO0lBQWJBLGFBQWE7RUFBQSxHQUFiQSxhQUFhLEtBQWJBLGFBQWE7RUFBQSxJQU1aQyxtQkFBbUIsV0FEeEJDLGNBQWMsQ0FBQywwREFBMEQsQ0FBQyxVQUV6RUMsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRTtFQUFVLENBQUMsQ0FBQyxVQUc3QkQsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxVQUdsREYsUUFBUSxDQUFDO0lBQUVDLElBQUksRUFBRSxTQUFTO0lBQUVDLFlBQVksRUFBRTtFQUFNLENBQUMsQ0FBQyxVQUdsREMsV0FBVyxDQUFDO0lBQUVGLElBQUksRUFBRSxrQkFBa0I7SUFBRUcsUUFBUSxFQUFFLEtBQUs7SUFBRUMsU0FBUyxFQUFFO0VBQUssQ0FBQyxDQUFDLFVBRzNFQyxXQUFXLENBQUM7SUFBRUwsSUFBSSxFQUFFLHFCQUFxQjtJQUFFRyxRQUFRLEVBQUU7RUFBSyxDQUFDLENBQUMsVUFHNURFLFdBQVcsQ0FBQztJQUFFTCxJQUFJLEVBQUUsZ0NBQWdDO0lBQUVHLFFBQVEsRUFBRTtFQUFNLENBQUMsQ0FBQyxVQUd4RUcsS0FBSyxFQUFFO0lBQUE7SUFBQTtNQUFBO01BQUE7UUFBQTtNQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQTtNQUFBO0lBQUE7SUFBQTtJQUFBLE9BR1JDLGlCQUFpQixHQUFqQiw2QkFBb0I7TUFDbkIsSUFBSSxDQUFDQyxZQUFZLEVBQUUsQ0FBQyxDQUFDOztNQUVyQixNQUFNQyxjQUFjLEdBQUcsSUFBSSxDQUFDQyxpQkFBaUIsRUFBRTtNQUMvQyxJQUFJLENBQUNELGNBQWMsRUFBRTtRQUNwQjtRQUNBLElBQUksQ0FBQ0UsaUJBQWlCLENBQUMsSUFBSSxDQUFDO01BQzdCO01BQ0EsTUFBTUMsYUFBYSxHQUFHSCxjQUFjLGFBQWRBLGNBQWMsdUJBQWRBLGNBQWMsQ0FBRUksU0FBUyxFQUFFO01BQ2pELElBQUksQ0FBQ0MsbUJBQW1CLEVBQUUsQ0FBQ0MsT0FBTyxDQUFFQyxTQUFTLElBQUs7UUFBQTtRQUNqRCxJQUFJLElBQUksQ0FBQ0MsVUFBVSxFQUFFO1VBQ3BCRCxTQUFTLENBQUNFLFdBQVcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUNDLGlCQUFpQixDQUFDQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEY7UUFDQSx5QkFBQUosU0FBUyxDQUFDSyxjQUFjLDBEQUF4QiwyQkFBQUwsU0FBUyxDQUFtQjtNQUM3QixDQUFDLENBQUM7TUFDRixJQUFJSixhQUFhLEVBQUU7UUFDbEJBLGFBQWEsQ0FBQ00sV0FBVyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQ0ksU0FBUyxDQUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEVSLGFBQWEsQ0FBQ00sV0FBVyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQ0ssZ0JBQWdCLENBQUNILElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztNQUNyRjtJQUNELENBQUM7SUFBQSxPQUVESSxnQkFBZ0IsR0FBaEIsNEJBQW1CO01BQUE7TUFDbEIsNkJBQUksQ0FBQ0MsdUJBQXVCLEVBQUUsb0ZBQTlCLHNCQUFnQ0MsYUFBYSwyREFBN0MsbURBQWdELENBQUMsSUFBSSxDQUFDQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUFBLG9CQUVNQyxNQUFNLEdBQWIsZ0JBQWNDLEdBQWtCLEVBQUVDLFFBQTZCLEVBQUU7TUFDaEVELEdBQUcsQ0FBQ0UsYUFBYSxDQUFDRCxRQUFRLENBQUNFLE9BQU8sQ0FBQztJQUNwQzs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQSxPQUtBeEIsWUFBWSxHQUFaLHdCQUFrQztNQUNqQyxNQUFNeUIsVUFBVSxHQUFHLGNBQWM7TUFDakMsTUFBTUMsUUFBUSxHQUFHLElBQUksQ0FBQ0YsT0FBTztNQUM3QixJQUFJLENBQUNFLFFBQVEsRUFBRTtRQUNkLE9BQU9DLFNBQVM7TUFDakI7TUFDQSxJQUFJQyxNQUFNLEdBQUdGLFFBQVEsQ0FBQ0csUUFBUSxDQUFDSixVQUFVLENBQUM7TUFDMUMsSUFBSSxDQUFDRyxNQUFNLEVBQUU7UUFDWkEsTUFBTSxHQUFHLElBQUlFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQkosUUFBUSxDQUFDSyxRQUFRLENBQUNILE1BQU0sRUFBRUgsVUFBVSxDQUFDO01BQ3RDO01BQ0EsT0FBT0csTUFBTTtJQUNkOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBLE9BS0FYLHVCQUF1QixHQUF2QixtQ0FBd0Q7TUFBQTtNQUN2RCxNQUFNZSxZQUFZLG9CQUFHLElBQUksQ0FBQ1IsT0FBTyxrREFBWixjQUFjUyxRQUFRLEVBQUUsQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQU1BLEtBQUssQ0FBbUJDLE1BQU0sRUFBRSxLQUFLLElBQUksQ0FBQ1osT0FBTyxDQUFDYSxjQUFjLEVBQUUsQ0FBQztNQUNsSSxPQUFPTCxZQUFZLEdBQ2hCLElBQUksQ0FBQzFCLG1CQUFtQixFQUFFLENBQUM0QixJQUFJLENBQUUxQixTQUFTLElBQUssSUFBSSxDQUFDOEIsdUJBQXVCLENBQUM5QixTQUFTLENBQUMsS0FBS3dCLFlBQVksQ0FBQyxHQUN4R0wsU0FBUztJQUNiOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsT0FKQztJQUFBLG9CQUtPWSxlQUFlLEdBQXRCLHlCQUF1QkMsTUFBVyxFQUFRO01BQUE7TUFDekMsTUFBTUMsV0FBVyxHQUFHRCxNQUFNLENBQUNFLFNBQVMsRUFBRTtNQUN0QyxNQUFNQyxhQUFhLEdBQUdGLFdBQVcsQ0FBQ3BDLFNBQVMsRUFBRTtNQUU3QyxNQUFNdUMsV0FBVyxHQUFHSixNQUFNLENBQUNLLGFBQWEsRUFBRTtNQUMxQ0YsYUFBYSxDQUFDRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7TUFDcEMsTUFBTUMsb0JBQW9CLEdBQUdILFdBQVcsYUFBWEEsV0FBVyx1QkFBWEEsV0FBVyxDQUFFSSxXQUFXO01BQ3JELE1BQU1DLFlBQVksR0FBR0wsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVNLFdBQVc7TUFFN0MsSUFBSUQsWUFBWSxJQUFJRixvQkFBb0IsS0FBS0UsWUFBWSxFQUFFO1FBQzFELE1BQU1FLFVBQVUsR0FBR1IsYUFBYSxDQUFDekMsaUJBQWlCLEVBQUU7UUFDcEQsSUFBSWlELFVBQVUsSUFBSSxDQUFDUixhQUFhLENBQUN4QixXQUFXLENBQUMsZUFBZSxDQUFDLEVBQUU7VUFDOUQsSUFBSSxDQUFDd0IsYUFBYSxDQUFDMUIsdUJBQXVCLEVBQUUsRUFBRTtZQUM3QztZQUNBMEIsYUFBYSxDQUFDUyxrQkFBa0IsQ0FBQ0QsVUFBVSxDQUFDRSxtQkFBbUIsRUFBRSxFQUFFLFlBQVksQ0FBQztVQUNqRjtRQUNEO1FBQ0FDLDhCQUE4QixDQUFDQyxHQUFHLENBQUM7VUFDbENDLE9BQU8sRUFBRSxDQUNSO1lBQ0NDLGtCQUFrQixFQUFFO2NBQ25CQyxVQUFVLEVBQUUsd0JBQXdCO2NBQ3BDbEMsT0FBTyxFQUFFO2dCQUNSMEIsV0FBVyxFQUFFRCxZQUFZO2dCQUN6QlUsbUJBQW1CLEVBQUVaO2NBQ3RCO1lBQ0QsQ0FBQztZQUNEYSxlQUFlLEVBQUVuQjtVQUNsQixDQUFDO1FBRUgsQ0FBQyxDQUFDO01BQ0g7TUFFQSx5QkFBQUUsYUFBYSxDQUFDa0Isa0JBQWtCLEVBQUUsb0ZBQWxDLHNCQUFvQ0MsZUFBZSxFQUFFLDJEQUFyRCx1QkFBdURDLGNBQWMsRUFBRTtNQUV2RXBCLGFBQWEsQ0FBQ3FCLFNBQVMsQ0FBQyxRQUFRLEVBQUU7UUFDakNDLFVBQVUsRUFBRXhCLFdBQVc7UUFDdkJTLFdBQVcsRUFBRUQsWUFBWTtRQUN6QkQsV0FBVyxFQUFFRDtNQUNkLENBQUMsQ0FBQztJQUNIOztJQUVBO0FBQ0Q7QUFDQSxPQUZDO0lBQUEsT0FHQW1CLGlCQUFpQixHQUFqQiw2QkFBb0I7TUFDbkIsSUFBSSxDQUFDL0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDO01BQzVCLElBQUksQ0FBQ0csbUJBQW1CLEVBQUUsQ0FBQ0MsT0FBTyxDQUFFQyxTQUFTLElBQUs7UUFBQTtRQUNqRCx5QkFBQUEsU0FBUyxDQUFDMEQsaUJBQWlCLDBEQUEzQiwyQkFBQTFELFNBQVMsQ0FBc0I7TUFDaEMsQ0FBQyxDQUFDO0lBQ0g7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BTEM7SUFBQSxPQU1BTCxpQkFBaUIsR0FBakIsNkJBQWlDO01BQUEsSUFBZmdFLE1BQU0sdUVBQUcsSUFBSTtNQUM5QixJQUFJLENBQUNDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRUQsTUFBTSxDQUFDO01BQzFDO01BQ0E7TUFDQSxJQUFJQSxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUNsRCx1QkFBdUIsRUFBRSxFQUFFO1FBQzlDLElBQUksQ0FBQ04saUJBQWlCLEVBQUU7TUFDekI7SUFDRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQU5DO0lBQUEsT0FPQTBELGdCQUFnQixHQUFoQiwwQkFBaUJGLE1BQWUsRUFBRTtNQUNqQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxlQUFlLEVBQUVELE1BQU0sQ0FBQztNQUN6QyxJQUFJLENBQUNyQixnQkFBZ0IsRUFBRTtJQUN4Qjs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQSxPQUtBd0Isa0NBQWtDLEdBQWxDLDRDQUFtQ0MsZUFBK0IsRUFBRTtNQUNuRSxNQUFNQyxTQUFTLEdBQUcsSUFBSSxDQUFDeEUsWUFBWSxFQUFFO01BQ3JDLE1BQU1DLGNBQWMsR0FBRyxJQUFJLENBQUNDLGlCQUFpQixFQUFhO01BQzFELElBQUlzRSxTQUFTLElBQUl2RSxjQUFjLEVBQUU7UUFDaEMsTUFBTXdFLE9BQVksR0FBRyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDbkUsbUJBQW1CLEVBQUUsQ0FBQ0MsT0FBTyxDQUFFQyxTQUFTLElBQUs7VUFDakQsTUFBTWtFLElBQUksR0FBRyxJQUFJLENBQUNwQyx1QkFBdUIsQ0FBQzlCLFNBQVMsQ0FBQztVQUNwRCxJQUFJa0UsSUFBSSxFQUFFO1lBQUE7WUFDVCxNQUFNQyxNQUFNLEdBQUdELElBQUksQ0FBQ3RDLE1BQU0sRUFBRTtZQUM1QixNQUFNd0MsY0FBYyxHQUFHLDBCQUFBcEUsU0FBUyxDQUFDcUUsMEJBQTBCLDBEQUFwQywyQkFBQXJFLFNBQVMsRUFBOEJQLGNBQWMsQ0FBQyxLQUFJLEVBQUU7WUFDbkZ3RSxPQUFPLENBQUNFLE1BQU0sQ0FBQyxHQUFHO2NBQ2pCRyxhQUFhLEVBQUU7Z0JBQ2RDLE1BQU0sRUFBRUgsY0FBYztnQkFDdEJJLEtBQUssRUFBRSxJQUFJLENBQUNDLG1CQUFtQixDQUFDO2tCQUMvQkMsY0FBYyxFQUFFakYsY0FBYyxDQUFDa0YsSUFBSSxDQUFDLFlBQVksQ0FBQztrQkFDakRDLGFBQWEsRUFBRVIsY0FBYztrQkFDN0JTLGNBQWMsRUFBRWQsZUFBZTtrQkFDL0JTLEtBQUssRUFBRU4sSUFBSSxDQUFDWSxPQUFPO2dCQUNwQixDQUFDO2NBQ0Y7WUFDRCxDQUFDO1VBQ0Y7UUFDRCxDQUFDLENBQUM7UUFDRGQsU0FBUyxDQUFTZSxPQUFPLENBQUNkLE9BQU8sQ0FBQztNQUNwQztJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxDO0lBQUEsT0FNQW5FLG1CQUFtQixHQUFuQiwrQkFBb0U7TUFBQSxJQUFoRGtGLGtCQUFrQix1RUFBRyxLQUFLO01BQzdDLE9BQ0MsSUFBSSxDQUFDQyxhQUFhLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxjQUFrQyxFQUFFQyxhQUFxQixLQUFLO1FBQ3hGLE1BQU10RSxRQUFRLEdBQUd1RSxJQUFJLENBQUNDLElBQUksQ0FBQ0YsYUFBYSxDQUFxQjtRQUM3RCxJQUFJdEUsUUFBUSxFQUFFO1VBQ2JxRSxjQUFjLENBQUNJLElBQUksQ0FBQ3pFLFFBQVEsQ0FBQztRQUM5QjtRQUNBLE9BQU9xRSxjQUFjLENBQUNLLE1BQU0sQ0FDMUJDLGFBQWE7VUFBQTtVQUFBLE9BQUssQ0FBQ1Qsa0JBQWtCLDhCQUFJLElBQUksQ0FBQ2xELHVCQUF1QixDQUFDMkQsYUFBYSxDQUFDLDBEQUEzQyxzQkFBNkNDLFVBQVUsRUFBRTtRQUFBLEVBQ25HO01BQ0YsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7SUFFZCxDQUFDO0lBQUEsT0FFRGhHLGlCQUFpQixHQUFqQiw2QkFBMkM7TUFDMUMsT0FBTzJGLElBQUksQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQ0ssYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFBQSxPQUVEN0QsdUJBQXVCLEdBQXZCLGlDQUF3QmhCLFFBQWlCLEVBQTZCO01BQ3JFLE1BQU04RSxlQUFlLEdBQUdDLGFBQWEsQ0FBQ0MsV0FBVyxFQUFFLENBQUNDLE9BQU8sRUFBRTtNQUM3RCxJQUFJN0IsSUFBUyxHQUFHcEQsUUFBUTtNQUN4QixJQUFJb0QsSUFBSSxJQUFJLENBQUNBLElBQUksQ0FBQzhCLEdBQUcsQ0FBQ0osZUFBZSxDQUFDLElBQUkxQixJQUFJLENBQUNyRSxTQUFTLEVBQUU7UUFDekRxRSxJQUFJLEdBQUdwRCxRQUFRLENBQUNqQixTQUFTLEVBQUU7TUFDNUI7TUFDQSxPQUFPcUUsSUFBSSxJQUFJQSxJQUFJLENBQUM4QixHQUFHLENBQUNKLGVBQWUsQ0FBQyxHQUFJMUIsSUFBSSxHQUFxQi9DLFNBQVM7SUFDL0UsQ0FBQztJQUFBLE9BRURrQyxrQkFBa0IsR0FBbEIsOEJBQXFCO01BQ3BCLE1BQU00QyxLQUFLLEdBQUdDLFdBQVcsQ0FBQ0MsYUFBYSxDQUFDLElBQUksQ0FBQztNQUM3QyxPQUFPRixLQUFLLElBQUlBLEtBQUssQ0FBQ0csYUFBYSxFQUFFO0lBQ3RDLENBQUM7SUFBQSxPQUVEeEQsa0JBQWtCLEdBQWxCLDRCQUFtQnlELGlCQUFzQixFQUFFQyxhQUFxQixFQUFFO01BQUE7TUFDakUseUJBQUMsSUFBSSxDQUFDakQsa0JBQWtCLEVBQUUsb0ZBQTFCLHNCQUFvQ2tELGtCQUFrQiwyREFBdEQsbURBQXlEO1FBQ3hEQyxnQkFBZ0IsRUFBRUgsaUJBQWlCO1FBQ25DSSxZQUFZLEVBQUUsSUFBSSxDQUFDekYsT0FBTyxDQUFDYSxjQUFjLEVBQUU7UUFDM0M2RSxZQUFZLEVBQUVKO01BQ2YsQ0FBQyxDQUFDO0lBQ0gsQ0FBQztJQUFBLE9BRURuRyxpQkFBaUIsR0FBakIsMkJBQWtCd0csVUFBc0IsRUFBUTtNQUFBO01BQy9DO01BQ0E7TUFDQTtNQUNBO01BQ0E7TUFDQSxNQUFNQyxhQUFhLEdBQUdELFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFekUsU0FBUyxFQUFjO01BQ3pELE1BQU0yRSxTQUFTLEdBQUdELGFBQWEsNkJBQUcsSUFBSSxDQUFDOUUsdUJBQXVCLENBQUM4RSxhQUFhLENBQUMsMkRBQTNDLHVCQUE2Q2hGLE1BQU0sRUFBRSxxQkFBRyxJQUFJLENBQUNaLE9BQU8sbURBQVosZUFBY2EsY0FBYyxFQUFFO01BRXhILElBQUksQ0FBQy9CLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDQyxPQUFPLENBQUVDLFNBQVMsSUFBSztRQUNyRCxNQUFNOEcsY0FBYyxHQUFHLElBQUksQ0FBQ2hGLHVCQUF1QixDQUFDOUIsU0FBUyxDQUFDO1FBQzlELElBQUlBLFNBQVMsYUFBVEEsU0FBUyxlQUFUQSxTQUFTLENBQUUrRyxTQUFTLEtBQUssSUFBSSxDQUFDQyxjQUFjLElBQUlILFNBQVMsTUFBS0MsY0FBYyxhQUFkQSxjQUFjLHVCQUFkQSxjQUFjLENBQUVsRixNQUFNLEVBQUUsRUFBQyxFQUFFO1VBQzVGLElBQUlrRixjQUFjLElBQUlBLGNBQWMsQ0FBQ0csUUFBUSxFQUFFO1lBQzlDSCxjQUFjLENBQUNHLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDOUJqSCxTQUFTLENBQ1ArRyxTQUFTLEVBQUUsQ0FDWEcsSUFBSSxDQUFFQyxNQUFjLElBQUtMLGNBQWMsQ0FBQ0csUUFBUSxDQUFDRSxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FDaEVDLEtBQUssQ0FBQyxVQUFVQyxNQUFXLEVBQUU7Y0FDN0JDLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLDJDQUEyQyxFQUFFRixNQUFNLENBQUM7WUFDL0QsQ0FBQyxDQUFDO1VBQ0o7UUFDRDtNQUNELENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQzFILGlCQUFpQixDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQUEsT0FFRDJDLGdCQUFnQixHQUFoQiw0QkFBbUQ7TUFBQSxJQUFsQ2tGLHdCQUF3Qix1RUFBRyxLQUFLO01BQ2hELElBQUksSUFBSSxDQUFDeEcsT0FBTyxFQUFFO1FBQ2pCLElBQUksQ0FBQ2xCLG1CQUFtQixFQUFFLENBQUNDLE9BQU8sQ0FBRUMsU0FBUyxJQUFLO1VBQUE7VUFDakQsTUFBTThHLGNBQWMsR0FBRyxJQUFJLENBQUNoRix1QkFBdUIsQ0FBQzlCLFNBQVMsQ0FBQztVQUM5RCxNQUFNeUgsY0FBYyxHQUFHLENBQUFYLGNBQWMsYUFBZEEsY0FBYyx1QkFBZEEsY0FBYyxDQUFFbEYsTUFBTSxFQUFFLE1BQUssSUFBSSxDQUFDWixPQUFPLENBQUNhLGNBQWMsRUFBRTtVQUNqRixNQUFNNkYsT0FBTyxHQUFHRCxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUM5RyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcvQixhQUFhLENBQUMrSSxNQUFNLEdBQUcvSSxhQUFhLENBQUNnSixPQUFPO1VBQ25ILHNCQUFBNUgsU0FBUyxDQUFDMEgsT0FBTyxDQUFDLHVEQUFsQix3QkFBQTFILFNBQVMsRUFBWTBILE9BQU8sS0FBSzlJLGFBQWEsQ0FBQytJLE1BQU0sR0FBR0gsd0JBQXdCLElBQUlDLGNBQWMsR0FBR3RHLFNBQVMsQ0FBQztRQUNoSCxDQUFDLENBQUM7TUFDSDtJQUNELENBQUM7SUFBQSxPQUVEc0QsbUJBQW1CLEdBQW5CLDZCQUFvQm9ELFVBQWtDLEVBQUU7TUFDdkQsSUFBSUMsS0FBSyxHQUFHLEVBQUU7TUFDZCxNQUFNQyxjQUFjLEdBQUdGLFVBQVUsQ0FBQ2pELGFBQWE7TUFDL0MsTUFBTW5GLGNBQWMsR0FBRyxJQUFJLENBQUNDLGlCQUFpQixFQUFhO01BQzFELElBQUlELGNBQWMsSUFBSXVJLEtBQUssQ0FBQ0MsT0FBTyxDQUFDRixjQUFjLENBQUMsSUFBSUEsY0FBYyxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxJQUFJTCxVQUFVLENBQUNyRCxLQUFLLEVBQUU7UUFDckcsTUFBTTJELGNBQWMsR0FBR0MsWUFBWSxDQUFDQyxTQUFTLENBQzVDTixjQUFjLEVBQ2RGLFVBQVUsQ0FBQ25ELGNBQWMsRUFDekJqRixjQUFjLEVBQ2RvSSxVQUFVLENBQUNoRCxjQUFjLENBQ3pCO1FBQ0RpRCxLQUFLLEdBQUdNLFlBQVksQ0FBQ3RELE9BQU8sQ0FBQ3FELGNBQWMsRUFBRTFJLGNBQWMsRUFBRW9JLFVBQVUsQ0FBQ3JELEtBQUssRUFBRThELFlBQVksQ0FBQ0MsZ0JBQWdCLENBQUM7UUFDN0csT0FBT1QsS0FBSztNQUNiO0lBQ0QsQ0FBQztJQUFBLE9BRUR4SCxTQUFTLEdBQVQsbUJBQVUwQixNQUFpQixFQUFRO01BQ2xDLElBQUksQ0FBQ3JDLGlCQUFpQixDQUFDLElBQUksQ0FBQztNQUM1QixJQUFJLENBQUNrRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7TUFDNUIsSUFBSSxJQUFJLENBQUNwRCx1QkFBdUIsRUFBRSxFQUFFO1FBQUE7UUFDbkMsSUFBSSxDQUFDcUQsa0NBQWtDLDJCQUFFLElBQUksQ0FBQ1Qsa0JBQWtCLEVBQUUsMkRBQTFCLHVCQUFvQ1UsZUFBZSxDQUFDO01BQzdGLENBQUMsTUFBTTtRQUNOO1FBQ0EsSUFBSSxDQUFDbkIsa0JBQWtCLENBQUNaLE1BQU0sQ0FBQ3dHLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxRQUFRLENBQUM7TUFDckU7SUFDRCxDQUFDO0lBQUEsT0FFRGpJLGdCQUFnQixHQUFoQiwwQkFBaUJ5QixNQUFpQixFQUFRO01BQ3pDLElBQUlBLE1BQU0sQ0FBQ3dHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1FBQzNDLElBQUksQ0FBQzNFLGdCQUFnQixDQUFDLElBQUksQ0FBQztNQUM1QjtJQUNELENBQUM7SUFBQTtFQUFBLEVBeFRnQzRFLE9BQU87SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0lBQUE7SUFBQTtJQUFBO0lBQUE7RUFBQTtJQUFBO0lBQUE7SUFBQTtJQUFBO0VBQUE7SUFBQTtJQUFBO0lBQUE7SUFBQTtFQUFBO0VBQUEsT0EyVDFCNUosbUJBQW1CO0FBQUEifQ==
399
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCaW5kaW5nQWN0aW9uIiwiTXVsdGlwbGVNb2RlQ29udHJvbCIsImRlZmluZVVJNUNsYXNzIiwicHJvcGVydHkiLCJ0eXBlIiwiZGVmYXVsdFZhbHVlIiwiYWdncmVnYXRpb24iLCJtdWx0aXBsZSIsImlzRGVmYXVsdCIsImFzc29jaWF0aW9uIiwiZXZlbnQiLCJvbkJlZm9yZVJlbmRlcmluZyIsImdldFRhYnNNb2RlbCIsIm9GaWx0ZXJDb250cm9sIiwiX2dldEZpbHRlckNvbnRyb2wiLCJzZXRDb3VudHNPdXREYXRlZCIsIm9GaWx0ZXJCYXJBUEkiLCJnZXRQYXJlbnQiLCJnZXRBbGxJbm5lckNvbnRyb2xzIiwiZm9yRWFjaCIsIm9NYWNyb0FQSSIsInNob3dDb3VudHMiLCJhdHRhY2hFdmVudCIsIl9yZWZyZXNoVGFic0NvdW50IiwiYmluZCIsInN1c3BlbmRCaW5kaW5nIiwiX29uU2VhcmNoIiwiX29uRmlsdGVyQ2hhbmdlZCIsIm9uQWZ0ZXJSZW5kZXJpbmciLCJnZXRTZWxlY3RlZElubmVyQ29udHJvbCIsInJlc3VtZUJpbmRpbmciLCJnZXRQcm9wZXJ0eSIsInJlbmRlciIsIm9SbSIsIm9Db250cm9sIiwicmVuZGVyQ29udHJvbCIsImNvbnRlbnQiLCJzVGFic01vZGVsIiwib0NvbnRlbnQiLCJ1bmRlZmluZWQiLCJvTW9kZWwiLCJnZXRNb2RlbCIsIkpTT05Nb2RlbCIsInNldE1vZGVsIiwib1NlbGVjdGVkVGFiIiwiZ2V0SXRlbXMiLCJmaW5kIiwib0l0ZW0iLCJnZXRLZXkiLCJnZXRTZWxlY3RlZEtleSIsIl9nZXRUYWJGcm9tSW5uZXJDb250cm9sIiwiaGFuZGxlVGFiQ2hhbmdlIiwib0V2ZW50Iiwib0ljb25UYWJCYXIiLCJnZXRTb3VyY2UiLCJvTXVsdGlDb250cm9sIiwibVBhcmFtZXRlcnMiLCJnZXRQYXJhbWV0ZXJzIiwiX3NldElubmVyQmluZGluZyIsInNQcmV2aW91c1NlbGVjdGVkS2V5IiwicHJldmlvdXNLZXkiLCJzU2VsZWN0ZWRLZXkiLCJzZWxlY3RlZEtleSIsIm9GaWx0ZXJCYXIiLCJfcmVmcmVzaEN1c3RvbVZpZXciLCJnZXRGaWx0ZXJDb25kaXRpb25zIiwiQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIiwiYWRkIiwiY2hhbmdlcyIsImNoYW5nZVNwZWNpZmljRGF0YSIsImNoYW5nZVR5cGUiLCJwcmV2aW91c1NlbGVjdGVkS2V5Iiwic2VsZWN0b3JFbGVtZW50IiwiX2dldFZpZXdDb250cm9sbGVyIiwiZ2V0RXh0ZW5zaW9uQVBJIiwidXBkYXRlQXBwU3RhdGUiLCJmaXJlRXZlbnQiLCJpY29uVGFiQmFyIiwiaW52YWxpZGF0ZUNvbnRlbnQiLCJiVmFsdWUiLCJzZXRQcm9wZXJ0eSIsInNldEZyZWV6ZUNvbnRlbnQiLCJfdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzIiwidGFic01vZGVsIiwicmVzdWx0cyIsIm9UYWIiLCJzVGFiSWQiLCJtSWdub3JlZEZpZWxkcyIsInJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzIiwibm90QXBwbGljYWJsZSIsImZpZWxkcyIsInRpdGxlIiwiX3NldFRhYk1lc3NhZ2VTdHJpcCIsImVudGl0eVR5cGVQYXRoIiwiZGF0YSIsImlnbm9yZWRGaWVsZHMiLCJnZXRUZXh0IiwiaXNBIiwiY2hlY2tOb25GaWx0ZXJhYmxlRW50aXR5U2V0Iiwic2V0RGF0YSIsInJlc291cmNlTW9kZWwiLCJnZXRSZXNvdXJjZU1vZGVsIiwib0NoYXJ0IiwiZ2V0Q29udGVudCIsImJFbnRpdHlTZXRGaWxlcmFibGUiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJnZXRNZXRhTW9kZWwiLCJnZXRDb250ZXh0IiwidGFyZ2V0T2JqZWN0IiwiYW5ub3RhdGlvbnMiLCJDYXBhYmlsaXRpZXMiLCJGaWx0ZXJSZXN0cmljdGlvbnMiLCJGaWx0ZXJhYmxlIiwiaW5kZXhPZiIsImJPbmx5Rm9yVmlzaWJsZVRhYiIsImlubmVyQ29udHJvbHMiLCJyZWR1Y2UiLCJhSW5uZXJDb250cm9scyIsInNJbm5lckNvbnRyb2wiLCJDb3JlIiwiYnlJZCIsInB1c2giLCJmaWx0ZXIiLCJvSW5uZXJDb250cm9sIiwiZ2V0VmlzaWJsZSIsImZpbHRlckNvbnRyb2wiLCJzU3VwcG9ydGVkQ2xhc3MiLCJJY29uVGFiRmlsdGVyIiwiZ2V0TWV0YWRhdGEiLCJnZXROYW1lIiwib1ZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckNvbmRpdGlvbnMiLCJzUmVmcmVzaENhdXNlIiwib25WaWV3TmVlZHNSZWZyZXNoIiwiZmlsdGVyQ29uZGl0aW9ucyIsImN1cnJlbnRUYWJJZCIsInJlZnJlc2hDYXVzZSIsInRhYmxlRXZlbnQiLCJldmVudE1hY3JvQVBJIiwidGFyZ2V0S2V5Iiwib0ljb25UYWJGaWx0ZXIiLCJnZXRDb3VudHMiLCJjb3VudHNPdXREYXRlZCIsInNldENvdW50IiwidGhlbiIsImlDb3VudCIsImNhdGNoIiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQiLCJiSXNTZWxlY3RlZEtleSIsInNBY3Rpb24iLCJSZXN1bWUiLCJTdXNwZW5kIiwicHJvcGVydGllcyIsInNUZXh0IiwiYUlnbm9yZWRGaWVsZHMiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJhSWdub3JlZExhYmVscyIsIk1lc3NhZ2VTdHJpcCIsImdldExhYmVscyIsImdldFBhcmFtZXRlciIsIkNvbnRyb2wiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZUNvbnRyb2wudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgdHlwZSBGaWx0ZXJCYXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xzL0ZpbHRlckJhclwiO1xuaW1wb3J0ICogYXMgTWV0YU1vZGVsQ29udmVydGVyIGZyb20gXCJzYXAvZmUvY29yZS9jb252ZXJ0ZXJzL01ldGFNb2RlbENvbnZlcnRlclwiO1xuaW1wb3J0IHsgYWdncmVnYXRpb24sIGFzc29jaWF0aW9uLCBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIHByb3BlcnR5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgTWVzc2FnZVN0cmlwIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IHsgZ2V0UmVzb3VyY2VNb2RlbCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1Jlc291cmNlTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBNYWNyb0FQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9NYWNyb0FQSVwiO1xuaW1wb3J0IEljb25UYWJCYXIgZnJvbSBcInNhcC9tL0ljb25UYWJCYXJcIjtcbmltcG9ydCBJY29uVGFiRmlsdGVyIGZyb20gXCJzYXAvbS9JY29uVGFiRmlsdGVyXCI7XG5pbXBvcnQgdHlwZSBDb3JlRXZlbnQgZnJvbSBcInNhcC91aS9iYXNlL0V2ZW50XCI7XG5pbXBvcnQgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IENvcmUgZnJvbSBcInNhcC91aS9jb3JlL0NvcmVcIjtcbmltcG9ydCBSZW5kZXJNYW5hZ2VyIGZyb20gXCJzYXAvdWkvY29yZS9SZW5kZXJNYW5hZ2VyXCI7XG5pbXBvcnQgQ29udHJvbFBlcnNvbmFsaXphdGlvbldyaXRlQVBJIGZyb20gXCJzYXAvdWkvZmwvd3JpdGUvYXBpL0NvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSVwiO1xuaW1wb3J0IEpTT05Nb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL2pzb24vSlNPTk1vZGVsXCI7XG5pbXBvcnQgTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9Nb2RlbFwiO1xuXG5leHBvcnQgdHlwZSBJbm5lckNvbnRyb2xUeXBlID0gTWFjcm9BUEkgJlxuXHRQYXJ0aWFsPHtcblx0XHRyZXN1bWVCaW5kaW5nOiBGdW5jdGlvbjtcblx0XHRzdXNwZW5kQmluZGluZzogRnVuY3Rpb247XG5cdFx0Z2V0Q291bnRzOiBGdW5jdGlvbjtcblx0XHRyZWZyZXNoTm90QXBwbGljYWJsZUZpZWxkczogRnVuY3Rpb247XG5cdFx0aW52YWxpZGF0ZUNvbnRlbnQ6IEZ1bmN0aW9uO1xuXHRcdGdldENvbnRlbnQ6IEZ1bmN0aW9uO1xuXHR9PjtcblxudHlwZSBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzID0ge1xuXHRlbnRpdHlUeXBlUGF0aDogc3RyaW5nO1xuXHRpZ25vcmVkRmllbGRzOiBhbnlbXTtcblx0dGl0bGU6IHN0cmluZztcbn07XG5cbmVudW0gQmluZGluZ0FjdGlvbiB7XG5cdFN1c3BlbmQgPSBcInN1c3BlbmRCaW5kaW5nXCIsXG5cdFJlc3VtZSA9IFwicmVzdW1lQmluZGluZ1wiXG59XG5cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC5jb250cm9scy5NdWx0aXBsZU1vZGVDb250cm9sXCIpXG5jbGFzcyBNdWx0aXBsZU1vZGVDb250cm9sIGV4dGVuZHMgQ29udHJvbCB7XG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHNob3dDb3VudHMhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGZyZWV6ZUNvbnRlbnQhOiBib29sZWFuO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGNvdW50c091dERhdGVkITogYm9vbGVhbjtcblxuXHRAYWdncmVnYXRpb24oeyB0eXBlOiBcInNhcC5tLkljb25UYWJCYXJcIiwgbXVsdGlwbGU6IGZhbHNlLCBpc0RlZmF1bHQ6IHRydWUgfSlcblx0Y29udGVudCE6IEljb25UYWJCYXI7XG5cblx0QGFzc29jaWF0aW9uKHsgdHlwZTogXCJzYXAudWkuY29yZS5Db250cm9sXCIsIG11bHRpcGxlOiB0cnVlIH0pXG5cdGlubmVyQ29udHJvbHMhOiBzdHJpbmdbXTtcblxuXHRAYXNzb2NpYXRpb24oeyB0eXBlOiBcInNhcC5mZS5jb3JlLmNvbnRyb2xzLkZpbHRlckJhclwiLCBtdWx0aXBsZTogZmFsc2UgfSlcblx0ZmlsdGVyQ29udHJvbCE6IHN0cmluZztcblxuXHRAZXZlbnQoKVxuXHRzZWxlY3QhOiBGdW5jdGlvbjtcblxuXHRvbkJlZm9yZVJlbmRlcmluZygpIHtcblx0XHR0aGlzLmdldFRhYnNNb2RlbCgpOyAvLyBHZW5lcmF0ZSB0aGUgbW9kZWwgd2hpY2ggaXMgbWFuZGF0b3J5IGZvciBzb21lIGJpbmRpbmdzXG5cblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRpZiAoIW9GaWx0ZXJDb250cm9sKSB7XG5cdFx0XHQvLyBJbiBjYXNlIHRoZXJlJ3Mgbm8gZmlsdGVyYmFyLCB3ZSBoYXZlIHRvIHVwZGF0ZSB0aGUgY291bnRzIGluIHRoZSB0YWJzIGltbWVkaWF0ZWx5XG5cdFx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdH1cblx0XHRjb25zdCBvRmlsdGVyQmFyQVBJID0gb0ZpbHRlckNvbnRyb2w/LmdldFBhcmVudCgpO1xuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0aWYgKHRoaXMuc2hvd0NvdW50cykge1xuXHRcdFx0XHRvTWFjcm9BUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcIiwgdGhpcy5fcmVmcmVzaFRhYnNDb3VudC5iaW5kKHRoaXMpKTtcblx0XHRcdH1cblx0XHRcdG9NYWNyb0FQSS5zdXNwZW5kQmluZGluZz8uKCk7XG5cdFx0fSk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJBUEkpIHtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbFNlYXJjaFwiLCB0aGlzLl9vblNlYXJjaC5iaW5kKHRoaXMpKTtcblx0XHRcdG9GaWx0ZXJCYXJBUEkuYXR0YWNoRXZlbnQoXCJpbnRlcm5hbEZpbHRlckNoYW5nZWRcIiwgdGhpcy5fb25GaWx0ZXJDaGFuZ2VkLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fVxuXG5cdG9uQWZ0ZXJSZW5kZXJpbmcoKSB7XG5cdFx0dGhpcy5nZXRTZWxlY3RlZElubmVyQ29udHJvbCgpPy5yZXN1bWVCaW5kaW5nPy4oIXRoaXMuZ2V0UHJvcGVydHkoXCJmcmVlemVDb250ZW50XCIpKTtcblx0fVxuXG5cdHN0YXRpYyByZW5kZXIob1JtOiBSZW5kZXJNYW5hZ2VyLCBvQ29udHJvbDogTXVsdGlwbGVNb2RlQ29udHJvbCkge1xuXHRcdG9SbS5yZW5kZXJDb250cm9sKG9Db250cm9sLmNvbnRlbnQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIG1vZGVsIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gcmVsYXRlZCB0byB0aGUgSWNvblRhYkZpbHRlcnMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwuTW9kZWwgfCB1bmRlZmluZWR9IFRoZSBtb2RlbFxuXHQgKi9cblx0Z2V0VGFic01vZGVsKCk6IE1vZGVsIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzVGFic01vZGVsID0gXCJ0YWJzSW50ZXJuYWxcIjtcblx0XHRjb25zdCBvQ29udGVudCA9IHRoaXMuY29udGVudDtcblx0XHRpZiAoIW9Db250ZW50KSB7XG5cdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRsZXQgb01vZGVsID0gb0NvbnRlbnQuZ2V0TW9kZWwoc1RhYnNNb2RlbCk7XG5cdFx0aWYgKCFvTW9kZWwpIHtcblx0XHRcdG9Nb2RlbCA9IG5ldyBKU09OTW9kZWwoe30pO1xuXHRcdFx0b0NvbnRlbnQuc2V0TW9kZWwob01vZGVsLCBzVGFic01vZGVsKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Nb2RlbDtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBpbm5lciBjb250cm9sIG9mIHRoZSBkaXNwbGF5ZWQgdGFiLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7SW5uZXJDb250cm9sVHlwZSB8IHVuZGVmaW5lZH0gVGhlIGNvbnRyb2xcblx0ICovXG5cdGdldFNlbGVjdGVkSW5uZXJDb250cm9sKCk6IElubmVyQ29udHJvbFR5cGUgfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IG9TZWxlY3RlZFRhYiA9IHRoaXMuY29udGVudD8uZ2V0SXRlbXMoKS5maW5kKChvSXRlbSkgPT4gKG9JdGVtIGFzIEljb25UYWJGaWx0ZXIpLmdldEtleSgpID09PSB0aGlzLmNvbnRlbnQuZ2V0U2VsZWN0ZWRLZXkoKSk7XG5cdFx0cmV0dXJuIG9TZWxlY3RlZFRhYlxuXHRcdFx0PyB0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5maW5kKChvTWFjcm9BUEkpID0+IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKSA9PT0gb1NlbGVjdGVkVGFiKVxuXHRcdFx0OiB1bmRlZmluZWQ7XG5cdH1cblxuXHQvKipcblx0ICogTWFuYWdlcyB0aGUgYmluZGluZyBvZiBhbGwgaW5uZXIgY29udHJvbHMgd2hlbiB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBpcyBjaGFuZ2VkLlxuXHQgKlxuXHQgKiBAcGFyYW0ge3NhcC51aS5iYXNlLkV2ZW50fSBvRXZlbnQgRXZlbnQgZmlyZWQgYnkgdGhlIEljb25UYWJCYXJcblx0ICovXG5cdHN0YXRpYyBoYW5kbGVUYWJDaGFuZ2Uob0V2ZW50OiBhbnkpOiB2b2lkIHtcblx0XHRjb25zdCBvSWNvblRhYkJhciA9IG9FdmVudC5nZXRTb3VyY2UoKTtcblx0XHRjb25zdCBvTXVsdGlDb250cm9sID0gb0ljb25UYWJCYXIuZ2V0UGFyZW50KCk7XG5cblx0XHRjb25zdCBtUGFyYW1ldGVycyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCk7XG5cdFx0b011bHRpQ29udHJvbC5fc2V0SW5uZXJCaW5kaW5nKHRydWUpO1xuXHRcdGNvbnN0IHNQcmV2aW91c1NlbGVjdGVkS2V5ID0gbVBhcmFtZXRlcnM/LnByZXZpb3VzS2V5O1xuXHRcdGNvbnN0IHNTZWxlY3RlZEtleSA9IG1QYXJhbWV0ZXJzPy5zZWxlY3RlZEtleTtcblxuXHRcdGlmIChzU2VsZWN0ZWRLZXkgJiYgc1ByZXZpb3VzU2VsZWN0ZWRLZXkgIT09IHNTZWxlY3RlZEtleSkge1xuXHRcdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9NdWx0aUNvbnRyb2wuX2dldEZpbHRlckNvbnRyb2woKTtcblx0XHRcdGlmIChvRmlsdGVyQmFyICYmICFvTXVsdGlDb250cm9sLmdldFByb3BlcnR5KFwiZnJlZXplQ29udGVudFwiKSkge1xuXHRcdFx0XHRpZiAoIW9NdWx0aUNvbnRyb2wuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0XHRcdC8vY3VzdG9tIHRhYlxuXHRcdFx0XHRcdG9NdWx0aUNvbnRyb2wuX3JlZnJlc2hDdXN0b21WaWV3KG9GaWx0ZXJCYXIuZ2V0RmlsdGVyQ29uZGl0aW9ucygpLCBcInRhYkNoYW5nZWRcIik7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdENvbnRyb2xQZXJzb25hbGl6YXRpb25Xcml0ZUFQSS5hZGQoe1xuXHRcdFx0XHRjaGFuZ2VzOiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0Y2hhbmdlU3BlY2lmaWNEYXRhOiB7XG5cdFx0XHRcdFx0XHRcdGNoYW5nZVR5cGU6IFwic2VsZWN0SWNvblRhYkJhckZpbHRlclwiLFxuXHRcdFx0XHRcdFx0XHRjb250ZW50OiB7XG5cdFx0XHRcdFx0XHRcdFx0c2VsZWN0ZWRLZXk6IHNTZWxlY3RlZEtleSxcblx0XHRcdFx0XHRcdFx0XHRwcmV2aW91c1NlbGVjdGVkS2V5OiBzUHJldmlvdXNTZWxlY3RlZEtleVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0c2VsZWN0b3JFbGVtZW50OiBvSWNvblRhYkJhclxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XVxuXHRcdFx0fSk7XG5cdFx0fVxuXG5cdFx0b011bHRpQ29udHJvbC5fZ2V0Vmlld0NvbnRyb2xsZXIoKT8uZ2V0RXh0ZW5zaW9uQVBJKCk/LnVwZGF0ZUFwcFN0YXRlKCk7XG5cblx0XHRvTXVsdGlDb250cm9sLmZpcmVFdmVudChcInNlbGVjdFwiLCB7XG5cdFx0XHRpY29uVGFiQmFyOiBvSWNvblRhYkJhcixcblx0XHRcdHNlbGVjdGVkS2V5OiBzU2VsZWN0ZWRLZXksXG5cdFx0XHRwcmV2aW91c0tleTogc1ByZXZpb3VzU2VsZWN0ZWRLZXlcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbnZhbGlkYXRlcyB0aGUgY29udGVudCBvZiBhbGwgaW5uZXIgY29udHJvbHMuXG5cdCAqL1xuXHRpbnZhbGlkYXRlQ29udGVudCgpIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuZ2V0QWxsSW5uZXJDb250cm9scygpLmZvckVhY2goKG9NYWNyb0FQSSkgPT4ge1xuXHRcdFx0b01hY3JvQVBJLmludmFsaWRhdGVDb250ZW50Py4oKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBjb3VudHMgdG8gb3V0IG9mIGRhdGUgb3IgdXAgdG8gZGF0ZVxuXHQgKiBJZiB0aGUgY291bnRzIGFyZSBzZXQgdG8gXCJvdXQgb2YgZGF0ZVwiIGFuZCB0aGUgc2VsZWN0ZWQgSWNvblRhYkZpbHRlciBkb2Vzbid0IGNvbnRhaW4gYW4gaW5uZXIgY29udHJvbCBhbGwgaW5uZXIgY29udHJvbHMgYXJlIHJlcXVlc3RlZCB0byBnZXQgdGhlIG5ldyBjb3VudHMuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYlZhbHVlIEZyZWV6ZSBvciBub3QgdGhlIGNvbnRyb2xcblx0ICovXG5cdHNldENvdW50c091dERhdGVkKGJWYWx1ZSA9IHRydWUpIHtcblx0XHR0aGlzLnNldFByb3BlcnR5KFwiY291bnRzT3V0RGF0ZWRcIiwgYlZhbHVlKTtcblx0XHQvLyBpZiB0aGUgY3VycmVudCB0YWIgaXMgbm90IGNvbmZpZ3VyZWQgd2l0aCBubyBpbm5lciBDb250cm9sXG5cdFx0Ly8gdGhlIHRhYiBjb3VudHMgbXVzdCBiZSBtYW51YWxseSByZWZyZXNoZWQgc2luY2Ugbm8gTWFjcm8gQVBJIHdpbGwgc2VudCBldmVudCBpbnRlcm5hbERhdGFSZXF1ZXN0ZWRcblx0XHRpZiAoYlZhbHVlICYmICF0aGlzLmdldFNlbGVjdGVkSW5uZXJDb250cm9sKCkpIHtcblx0XHRcdHRoaXMuX3JlZnJlc2hUYWJzQ291bnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRnJlZXplcyB0aGUgY29udGVudCA6XG5cdCAqICAtIGNvbnRlbnQgaXMgZnJvemVuOiB0aGUgYmluZGluZyBvZiB0aGUgaW5uZXIgY29udHJvbHMgYXJlIHN1c3BlbmRlZC5cblx0ICogIC0gY29udGVudCBpcyB1bmZyb3plbjogdGhlIGJpbmRpbmcgb2YgaW5uZXIgY29udHJvbCByZWxhdGVkIHRvIHRoZSBzZWxlY3RlZCBJY29uVGFiRmlsdGVyIGlzIHJlc3VtZWQuXG5cdCAqXG5cdCAqIEBwYXJhbSB7Ym9vbGVhbn0gYlZhbHVlIEZyZWV6ZSBvciBub3QgdGhlIGNvbnRyb2xcblx0ICovXG5cdHNldEZyZWV6ZUNvbnRlbnQoYlZhbHVlOiBib29sZWFuKSB7XG5cdFx0dGhpcy5zZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIiwgYlZhbHVlKTtcblx0XHR0aGlzLl9zZXRJbm5lckJpbmRpbmcoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGVzIHRoZSBpbnRlcm5hbCBtb2RlbCB3aXRoIHRoZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBhcHBsaWNhYmxlIG9uIGVhY2ggSWNvblRhYkZpbHRlciAoY29udGFpbmluZyBpbm5lciBjb250cm9sKSBhY2NvcmRpbmcgdG8gdGhlIGVudGl0eVR5cGUgb2YgdGhlIGZpbHRlciBjb250cm9sLlxuXHQgKlxuXHQgKi9cblx0X3VwZGF0ZU11bHRpVGFiTm90QXBwbGljYWJsZUZpZWxkcygpIHtcblx0XHRjb25zdCB0YWJzTW9kZWwgPSB0aGlzLmdldFRhYnNNb2RlbCgpO1xuXHRcdGNvbnN0IG9GaWx0ZXJDb250cm9sID0gdGhpcy5fZ2V0RmlsdGVyQ29udHJvbCgpIGFzIENvbnRyb2w7XG5cdFx0aWYgKHRhYnNNb2RlbCAmJiBvRmlsdGVyQ29udHJvbCkge1xuXHRcdFx0Y29uc3QgcmVzdWx0czogYW55ID0ge307XG5cdFx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHMoKS5mb3JFYWNoKChvTWFjcm9BUEkpID0+IHtcblx0XHRcdFx0Y29uc3Qgb1RhYiA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdFx0aWYgKG9UYWIpIHtcblx0XHRcdFx0XHRjb25zdCBzVGFiSWQgPSBvVGFiLmdldEtleSgpO1xuXHRcdFx0XHRcdGNvbnN0IG1JZ25vcmVkRmllbGRzID0gb01hY3JvQVBJLnJlZnJlc2hOb3RBcHBsaWNhYmxlRmllbGRzPy4ob0ZpbHRlckNvbnRyb2wpIHx8IFtdO1xuXHRcdFx0XHRcdHJlc3VsdHNbc1RhYklkXSA9IHtcblx0XHRcdFx0XHRcdG5vdEFwcGxpY2FibGU6IHtcblx0XHRcdFx0XHRcdFx0ZmllbGRzOiBtSWdub3JlZEZpZWxkcyxcblx0XHRcdFx0XHRcdFx0dGl0bGU6IHRoaXMuX3NldFRhYk1lc3NhZ2VTdHJpcCh7XG5cdFx0XHRcdFx0XHRcdFx0ZW50aXR5VHlwZVBhdGg6IG9GaWx0ZXJDb250cm9sLmRhdGEoXCJlbnRpdHlUeXBlXCIpLFxuXHRcdFx0XHRcdFx0XHRcdGlnbm9yZWRGaWVsZHM6IG1JZ25vcmVkRmllbGRzLFxuXHRcdFx0XHRcdFx0XHRcdHRpdGxlOiBvVGFiLmdldFRleHQoKVxuXHRcdFx0XHRcdFx0XHR9KVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH07XG5cdFx0XHRcdFx0aWYgKG9NYWNyb0FQSSAmJiBvTWFjcm9BUEkuaXNBKFwic2FwLmZlLm1hY3Jvcy5jaGFydC5DaGFydEFQSVwiKSkge1xuXHRcdFx0XHRcdFx0cmVzdWx0c1tzVGFiSWRdID0gdGhpcy5jaGVja05vbkZpbHRlcmFibGVFbnRpdHlTZXQob01hY3JvQVBJLCBzVGFiSWQsIHJlc3VsdHMpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHQodGFic01vZGVsIGFzIGFueSkuc2V0RGF0YShyZXN1bHRzKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogTW9kaWZpZXMgdGhlIG1lc3NhZ2VzdHJpcCBtZXNzYWdlIGJhc2VkIG9uIGVudGl0eSBzZXQgaXMgZmlsZXJhYmxlIG9yIG5vdC5cblx0ICpcblx0ICogQHBhcmFtIHtJbm5lckNvbnRyb2xUeXBlfSBvTWFjcm9BUEkgTWFjcm8gY2hhcnQgYXBpXG5cdCAqIEBwYXJhbSB7c3RyaW5nfSBzVGFiSWQgVGFiIGtleSBJRFxuXHQgKiBAcGFyYW0ge29iamVjdH0gcmVzdWx0cyBTaG91bGQgY29udGFpbiBmaWVsZHMgYW5kIHRpdGxlXG5cdCAqIEByZXR1cm5zIHtvYmplY3R9IEFuIG9iamVjdCBvZiBtb2RpZmllZCBmaWVsZHMgYW5kIHRpdGxlXG5cdCAqL1xuXHRjaGVja05vbkZpbHRlcmFibGVFbnRpdHlTZXQob01hY3JvQVBJOiBJbm5lckNvbnRyb2xUeXBlLCBzVGFiSWQ6IHN0cmluZywgcmVzdWx0czogYW55KSB7XG5cdFx0Y29uc3QgcmVzb3VyY2VNb2RlbCA9IGdldFJlc291cmNlTW9kZWwob01hY3JvQVBJKTtcblx0XHRjb25zdCBvQ2hhcnQgPSBvTWFjcm9BUEk/LmdldENvbnRlbnQgPyBvTWFjcm9BUEkuZ2V0Q29udGVudCgpIDogdW5kZWZpbmVkO1xuXHRcdGNvbnN0IGJFbnRpdHlTZXRGaWxlcmFibGUgPVxuXHRcdFx0b0NoYXJ0ICYmXG5cdFx0XHRNZXRhTW9kZWxDb252ZXJ0ZXIuZ2V0SW52b2x2ZWREYXRhTW9kZWxPYmplY3RzKFxuXHRcdFx0XHRvQ2hhcnRcblx0XHRcdFx0XHQuZ2V0TW9kZWwoKVxuXHRcdFx0XHRcdC5nZXRNZXRhTW9kZWwoKVxuXHRcdFx0XHRcdC5nZXRDb250ZXh0KGAke29DaGFydC5kYXRhKFwidGFyZ2V0Q29sbGVjdGlvblBhdGhcIil9YClcblx0XHRcdCk/LnRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LkNhcGFiaWxpdGllcz8uRmlsdGVyUmVzdHJpY3Rpb25zPy5GaWx0ZXJhYmxlO1xuXHRcdGlmIChiRW50aXR5U2V0RmlsZXJhYmxlICE9PSB1bmRlZmluZWQgJiYgIWJFbnRpdHlTZXRGaWxlcmFibGUpIHtcblx0XHRcdGlmIChyZXN1bHRzW3NUYWJJZF0ubm90QXBwbGljYWJsZS5maWVsZHMuaW5kZXhPZihcIiRzZWFyY2hcIikgPiAtMSkge1xuXHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0ubm90QXBwbGljYWJsZS50aXRsZSArPSBcIiBcIiArIHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfTFJfTVVMVElWSVpfQ0hBUlRfTVVMVElfTk9OX0ZJTFRFUkFCTEVcIik7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0ubm90QXBwbGljYWJsZS5maWVsZHMgPSBbXCJub25GaWx0ZXJhYmxlXCJdO1xuXHRcdFx0XHRyZXN1bHRzW3NUYWJJZF0ubm90QXBwbGljYWJsZS50aXRsZSA9IHJlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfTFJfTVVMVElWSVpfQ0hBUlRfTVVMVElfTk9OX0ZJTFRFUkFCTEVcIik7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHRzW3NUYWJJZF07XG5cdH1cblx0LyoqXG5cdCAqIEdldHMgdGhlIGlubmVyIGNvbnRyb2xzLlxuXHQgKlxuXHQgKiBAcGFyYW0ge2Jvb2xlYW59IGJPbmx5Rm9yVmlzaWJsZVRhYiBTaG91bGQgZGlzcGxheSBvbmx5IHRoZSB2aXNpYmxlIGNvbnRyb2xzXG5cdCAqIEByZXR1cm5zIHtJbm5lckNvbnRyb2xUeXBlW119IEFuIGFycmF5IG9mIGNvbnRyb2xzXG5cdCAqL1xuXHRnZXRBbGxJbm5lckNvbnRyb2xzKGJPbmx5Rm9yVmlzaWJsZVRhYiA9IGZhbHNlKTogSW5uZXJDb250cm9sVHlwZVtdIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0dGhpcy5pbm5lckNvbnRyb2xzLnJlZHVjZSgoYUlubmVyQ29udHJvbHM6IElubmVyQ29udHJvbFR5cGVbXSwgc0lubmVyQ29udHJvbDogc3RyaW5nKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sID0gQ29yZS5ieUlkKHNJbm5lckNvbnRyb2wpIGFzIElubmVyQ29udHJvbFR5cGU7XG5cdFx0XHRcdGlmIChvQ29udHJvbCkge1xuXHRcdFx0XHRcdGFJbm5lckNvbnRyb2xzLnB1c2gob0NvbnRyb2wpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBhSW5uZXJDb250cm9scy5maWx0ZXIoXG5cdFx0XHRcdFx0KG9Jbm5lckNvbnRyb2wpID0+ICFiT25seUZvclZpc2libGVUYWIgfHwgdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvSW5uZXJDb250cm9sKT8uZ2V0VmlzaWJsZSgpXG5cdFx0XHRcdCk7XG5cdFx0XHR9LCBbXSkgfHwgW11cblx0XHQpO1xuXHR9XG5cblx0X2dldEZpbHRlckNvbnRyb2woKTogRmlsdGVyQmFyIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gQ29yZS5ieUlkKHRoaXMuZmlsdGVyQ29udHJvbCkgYXMgRmlsdGVyQmFyIHwgdW5kZWZpbmVkO1xuXHR9XG5cblx0X2dldFRhYkZyb21Jbm5lckNvbnRyb2wob0NvbnRyb2w6IENvbnRyb2wpOiBJY29uVGFiRmlsdGVyIHwgdW5kZWZpbmVkIHtcblx0XHRjb25zdCBzU3VwcG9ydGVkQ2xhc3MgPSBJY29uVGFiRmlsdGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpO1xuXHRcdGxldCBvVGFiOiBhbnkgPSBvQ29udHJvbDtcblx0XHRpZiAob1RhYiAmJiAhb1RhYi5pc0Eoc1N1cHBvcnRlZENsYXNzKSAmJiBvVGFiLmdldFBhcmVudCkge1xuXHRcdFx0b1RhYiA9IG9Db250cm9sLmdldFBhcmVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1RhYiAmJiBvVGFiLmlzQShzU3VwcG9ydGVkQ2xhc3MpID8gKG9UYWIgYXMgSWNvblRhYkZpbHRlcikgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHRfZ2V0Vmlld0NvbnRyb2xsZXIoKSB7XG5cdFx0Y29uc3Qgb1ZpZXcgPSBDb21tb25VdGlscy5nZXRUYXJnZXRWaWV3KHRoaXMpO1xuXHRcdHJldHVybiBvVmlldyAmJiBvVmlldy5nZXRDb250cm9sbGVyKCk7XG5cdH1cblxuXHRfcmVmcmVzaEN1c3RvbVZpZXcob0ZpbHRlckNvbmRpdGlvbnM6IGFueSwgc1JlZnJlc2hDYXVzZTogc3RyaW5nKSB7XG5cdFx0KHRoaXMuX2dldFZpZXdDb250cm9sbGVyKCkgYXMgYW55KT8ub25WaWV3TmVlZHNSZWZyZXNoPy4oe1xuXHRcdFx0ZmlsdGVyQ29uZGl0aW9uczogb0ZpbHRlckNvbmRpdGlvbnMsXG5cdFx0XHRjdXJyZW50VGFiSWQ6IHRoaXMuY29udGVudC5nZXRTZWxlY3RlZEtleSgpLFxuXHRcdFx0cmVmcmVzaENhdXNlOiBzUmVmcmVzaENhdXNlXG5cdFx0fSk7XG5cdH1cblxuXHRfcmVmcmVzaFRhYnNDb3VudCh0YWJsZUV2ZW50PzogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0Ly8gSWYgdGhlIHJlZnJlc2ggaXMgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50IChpbnRlcm5hbERhdGFSZXF1ZXN0ZWQpXG5cdFx0Ly8gd2UgY2Fubm90IHVzZSB0aGUgc2VsZWN0ZWQga2V5IGFzIHJlZmVyZW5jZSBzaW5jZSB0YWJsZSBjYW4gYmUgcmVmcmVzaGVkIGJ5IFNpZGVFZmZlY3RzXG5cdFx0Ly8gc28gdGhlIHRhYmxlIGNvdWxkIGJlIGludG8gYSBkaWZmZXJlbnQgdGFiIC0+IHdlIHVzZSB0aGUgc291cmNlIG9mIHRoZSBldmVudCB0byBmaW5kIHRoZSB0YXJnZXRlZCB0YWJcblx0XHQvLyBJZiBub3QgdHJpZ2dlcmVkIGJ5IGFuIGV2ZW50IC0+IHJlZnJlc2ggYXQgbGVhc3QgdGhlIGNvdW50cyBvZiB0aGUgY3VycmVudCBNYWNyb0FQSVxuXHRcdC8vIEluIGFueSBjYXNlIGlmIHRoZSBjb3VudHMgYXJlIHNldCB0byBPdXRkYXRlZCBmb3IgdGhlIE11bHRpcGxlTW9kZUNvbnRyb2wgYWxsIHRoZSBjb3VudHMgYXJlIHJlZnJlc2hlZFxuXHRcdGNvbnN0IGV2ZW50TWFjcm9BUEkgPSB0YWJsZUV2ZW50Py5nZXRTb3VyY2UoKSBhcyBNYWNyb0FQSTtcblx0XHRjb25zdCB0YXJnZXRLZXkgPSBldmVudE1hY3JvQVBJID8gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChldmVudE1hY3JvQVBJKT8uZ2V0S2V5KCkgOiB0aGlzLmNvbnRlbnQ/LmdldFNlbGVjdGVkS2V5KCk7XG5cblx0XHR0aGlzLmdldEFsbElubmVyQ29udHJvbHModHJ1ZSkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRjb25zdCBvSWNvblRhYkZpbHRlciA9IHRoaXMuX2dldFRhYkZyb21Jbm5lckNvbnRyb2wob01hY3JvQVBJKTtcblx0XHRcdGlmIChvTWFjcm9BUEk/LmdldENvdW50cyAmJiAodGhpcy5jb3VudHNPdXREYXRlZCB8fCB0YXJnZXRLZXkgPT09IG9JY29uVGFiRmlsdGVyPy5nZXRLZXkoKSkpIHtcblx0XHRcdFx0aWYgKG9JY29uVGFiRmlsdGVyICYmIG9JY29uVGFiRmlsdGVyLnNldENvdW50KSB7XG5cdFx0XHRcdFx0b0ljb25UYWJGaWx0ZXIuc2V0Q291bnQoXCIuLi5cIik7XG5cdFx0XHRcdFx0b01hY3JvQVBJXG5cdFx0XHRcdFx0XHQuZ2V0Q291bnRzKClcblx0XHRcdFx0XHRcdC50aGVuKChpQ291bnQ6IHN0cmluZykgPT4gb0ljb25UYWJGaWx0ZXIuc2V0Q291bnQoaUNvdW50IHx8IFwiMFwiKSlcblx0XHRcdFx0XHRcdC5jYXRjaChmdW5jdGlvbiAob0Vycm9yOiBhbnkpIHtcblx0XHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcmVxdWVzdGluZyBDb3VudHMgZm9yIENvbnRyb2xcIiwgb0Vycm9yKTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdFx0dGhpcy5zZXRDb3VudHNPdXREYXRlZChmYWxzZSk7XG5cdH1cblxuXHRfc2V0SW5uZXJCaW5kaW5nKGJSZXF1ZXN0SWZOb3RJbml0aWFsaXplZCA9IGZhbHNlKSB7XG5cdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0dGhpcy5nZXRBbGxJbm5lckNvbnRyb2xzKCkuZm9yRWFjaCgob01hY3JvQVBJKSA9PiB7XG5cdFx0XHRcdGNvbnN0IG9JY29uVGFiRmlsdGVyID0gdGhpcy5fZ2V0VGFiRnJvbUlubmVyQ29udHJvbChvTWFjcm9BUEkpO1xuXHRcdFx0XHRjb25zdCBiSXNTZWxlY3RlZEtleSA9IG9JY29uVGFiRmlsdGVyPy5nZXRLZXkoKSA9PT0gdGhpcy5jb250ZW50LmdldFNlbGVjdGVkS2V5KCk7XG5cdFx0XHRcdGNvbnN0IHNBY3Rpb24gPSBiSXNTZWxlY3RlZEtleSAmJiAhdGhpcy5nZXRQcm9wZXJ0eShcImZyZWV6ZUNvbnRlbnRcIikgPyBCaW5kaW5nQWN0aW9uLlJlc3VtZSA6IEJpbmRpbmdBY3Rpb24uU3VzcGVuZDtcblx0XHRcdFx0b01hY3JvQVBJW3NBY3Rpb25dPy4oc0FjdGlvbiA9PT0gQmluZGluZ0FjdGlvbi5SZXN1bWUgPyBiUmVxdWVzdElmTm90SW5pdGlhbGl6ZWQgJiYgYklzU2VsZWN0ZWRLZXkgOiB1bmRlZmluZWQpO1xuXHRcdFx0fSk7XG5cdFx0fVxuXHR9XG5cblx0X3NldFRhYk1lc3NhZ2VTdHJpcChwcm9wZXJ0aWVzOiBNZXNzYWdlU3RyaXBQcm9wZXJ0aWVzKSB7XG5cdFx0bGV0IHNUZXh0ID0gXCJcIjtcblx0XHRjb25zdCBhSWdub3JlZEZpZWxkcyA9IHByb3BlcnRpZXMuaWdub3JlZEZpZWxkcztcblx0XHRjb25zdCBvRmlsdGVyQ29udHJvbCA9IHRoaXMuX2dldEZpbHRlckNvbnRyb2woKSBhcyBDb250cm9sO1xuXHRcdGlmIChvRmlsdGVyQ29udHJvbCAmJiBBcnJheS5pc0FycmF5KGFJZ25vcmVkRmllbGRzKSAmJiBhSWdub3JlZEZpZWxkcy5sZW5ndGggPiAwICYmIHByb3BlcnRpZXMudGl0bGUpIHtcblx0XHRcdGNvbnN0IGFJZ25vcmVkTGFiZWxzID0gTWVzc2FnZVN0cmlwLmdldExhYmVscyhcblx0XHRcdFx0YUlnbm9yZWRGaWVsZHMsXG5cdFx0XHRcdHByb3BlcnRpZXMuZW50aXR5VHlwZVBhdGgsXG5cdFx0XHRcdG9GaWx0ZXJDb250cm9sLFxuXHRcdFx0XHRnZXRSZXNvdXJjZU1vZGVsKG9GaWx0ZXJDb250cm9sKVxuXHRcdFx0KTtcblx0XHRcdHNUZXh0ID0gTWVzc2FnZVN0cmlwLmdldFRleHQoYUlnbm9yZWRMYWJlbHMsIG9GaWx0ZXJDb250cm9sLCBwcm9wZXJ0aWVzLnRpdGxlKTtcblx0XHRcdHJldHVybiBzVGV4dDtcblx0XHR9XG5cdH1cblxuXHRfb25TZWFyY2gob0V2ZW50OiBDb3JlRXZlbnQpOiB2b2lkIHtcblx0XHR0aGlzLnNldENvdW50c091dERhdGVkKHRydWUpO1xuXHRcdHRoaXMuc2V0RnJlZXplQ29udGVudChmYWxzZSk7XG5cdFx0aWYgKHRoaXMuZ2V0U2VsZWN0ZWRJbm5lckNvbnRyb2woKSkge1xuXHRcdFx0dGhpcy5fdXBkYXRlTXVsdGlUYWJOb3RBcHBsaWNhYmxlRmllbGRzKCk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdC8vIGN1c3RvbSB0YWJcblx0XHRcdHRoaXMuX3JlZnJlc2hDdXN0b21WaWV3KG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zXCIpLCBcInNlYXJjaFwiKTtcblx0XHR9XG5cdH1cblxuXHRfb25GaWx0ZXJDaGFuZ2VkKG9FdmVudDogQ29yZUV2ZW50KTogdm9pZCB7XG5cdFx0aWYgKG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJjb25kaXRpb25zQmFzZWRcIikpIHtcblx0XHRcdHRoaXMuc2V0RnJlZXplQ29udGVudCh0cnVlKTtcblx0XHR9XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTXVsdGlwbGVNb2RlQ29udHJvbDtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7TUFrQ0tBLGFBQWE7RUFBQSxXQUFiQSxhQUFhO0lBQWJBLGFBQWE7SUFBYkEsYUFBYTtFQUFBLEdBQWJBLGFBQWEsS0FBYkEsYUFBYTtFQUFBLElBTVpDLG1CQUFtQixXQUR4QkMsY0FBYyxDQUFDLDBEQUEwRCxDQUFDLFVBRXpFQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFO0VBQVUsQ0FBQyxDQUFDLFVBRzdCRCxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR2xERixRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFNBQVM7SUFBRUMsWUFBWSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR2xEQyxXQUFXLENBQUM7SUFBRUYsSUFBSSxFQUFFLGtCQUFrQjtJQUFFRyxRQUFRLEVBQUUsS0FBSztJQUFFQyxTQUFTLEVBQUU7RUFBSyxDQUFDLENBQUMsVUFHM0VDLFdBQVcsQ0FBQztJQUFFTCxJQUFJLEVBQUUscUJBQXFCO0lBQUVHLFFBQVEsRUFBRTtFQUFLLENBQUMsQ0FBQyxVQUc1REUsV0FBVyxDQUFDO0lBQUVMLElBQUksRUFBRSxnQ0FBZ0M7SUFBRUcsUUFBUSxFQUFFO0VBQU0sQ0FBQyxDQUFDLFVBR3hFRyxLQUFLLEVBQUU7SUFBQTtJQUFBO01BQUE7TUFBQTtRQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7TUFBQTtNQUFBO01BQUE7SUFBQTtJQUFBO0lBQUEsT0FHUkMsaUJBQWlCLEdBQWpCLDZCQUFvQjtNQUNuQixJQUFJLENBQUNDLFlBQVksRUFBRSxDQUFDLENBQUM7O01BRXJCLE1B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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/ClassSupport","sap/fe/core/helpers/MessageStrip","sap/fe/macros/DelegateUtil","sap/m/IconTabFilter","sap/ui/core/Control","sap/ui/core/Core","sap/ui/fl/write/api/ControlPersonalizationWriteAPI","sap/ui/model/json/JSONModel"],function(e,t,n,r,i,o,l,s,a,u){"use strict";var c,d,f,g,h,p,v,C,b,y,m,_,I,T,w,F,z;var S=n.property;var P=n.event;var A=n.defineUI5Class;var O=n.association;var B=n.aggregation;function D(e,t,n,r){if(!n)return;Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function E(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function K(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;M(e,t)}function M(e,t){M=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return M(e,t)}function V(e,t,n,r,i){var o={};Object.keys(r).forEach(function(e){o[e]=r[e]});o.enumerable=!!o.enumerable;o.configurable=!!o.configurable;if("value"in o||o.initializer){o.writable=true}o=n.slice().reverse().reduce(function(n,r){return r(e,t,n)||n},o);if(i&&o.initializer!==void 0){o.value=o.initializer?o.initializer.call(i):void 0;o.initializer=undefined}if(o.initializer===void 0){Object.defineProperty(e,t,o);o=null}return o}function R(e,t){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}var j;(function(e){e["Suspend"]="suspendBinding";e["Resume"]="resumeBinding"})(j||(j={}));let N=(c=A("sap.fe.templates.ListReport.controls.MultipleModeControl"),d=S({type:"boolean"}),f=S({type:"boolean",defaultValue:false}),g=S({type:"boolean",defaultValue:false}),h=B({type:"sap.m.IconTabBar",multiple:false,isDefault:true}),p=O({type:"sap.ui.core.Control",multiple:true}),v=O({type:"sap.fe.core.controls.FilterBar",multiple:false}),C=P(),c(b=(y=function(n){K(l,n);function l(){var e;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++){r[i]=arguments[i]}e=n.call(this,...r)||this;D(e,"showCounts",m,E(e));D(e,"freezeContent",_,E(e));D(e,"countsOutDated",I,E(e));D(e,"content",T,E(e));D(e,"innerControls",w,E(e));D(e,"filterControl",F,E(e));D(e,"select",z,E(e));return e}var c=l.prototype;c.onBeforeRendering=function e(){this.getTabsModel();const t=this._getFilterControl();if(!t){this.setCountsOutDated(true)}const n=t===null||t===void 0?void 0:t.getParent();this.getAllInnerControls().forEach(e=>{var t;if(this.showCounts){e.attachEvent("internalDataRequested",this._refreshTabsCount.bind(this))}(t=e.suspendBinding)===null||t===void 0?void 0:t.call(e)});if(n){n.attachEvent("internalSearch",this._onSearch.bind(this));n.attachEvent("internalFilterChanged",this._onFilterChanged.bind(this))}};c.onAfterRendering=function e(){var t,n;(t=this.getSelectedInnerControl())===null||t===void 0?void 0:(n=t.resumeBinding)===null||n===void 0?void 0:n.call(t,!this.getProperty("freezeContent"))};l.render=function e(t,n){t.renderControl(n.content)};c.getTabsModel=function e(){const t="tabsInternal";const n=this.content;if(!n){return undefined}let r=n.getModel(t);if(!r){r=new u({});n.setModel(r,t)}return r};c.getSelectedInnerControl=function e(){var t;const n=(t=this.content)===null||t===void 0?void 0:t.getItems().find(e=>e.getKey()===this.content.getSelectedKey());return n?this.getAllInnerControls().find(e=>this._getTabFromInnerControl(e)===n):undefined};l.handleTabChange=function e(t){var n,r;const i=t.getSource();const o=i.getParent();const l=t.getParameters();o._setInnerBinding(true);const s=l===null||l===void 0?void 0:l.previousKey;const u=l===null||l===void 0?void 0:l.selectedKey;if(u&&s!==u){const e=o._getFilterControl();if(e&&!o.getProperty("freezeContent")){if(!o.getSelectedInnerControl()){o._refreshCustomView(e.getFilterConditions(),"tabChanged")}}a.add({changes:[{changeSpecificData:{changeType:"selectIconTabBarFilter",content:{selectedKey:u,previousSelectedKey:s}},selectorElement:i}]})}(n=o._getViewController())===null||n===void 0?void 0:(r=n.getExtensionAPI())===null||r===void 0?void 0:r.updateAppState();o.fireEvent("select",{iconTabBar:i,selectedKey:u,previousKey:s})};c.invalidateContent=function e(){this.setCountsOutDated(true);this.getAllInnerControls().forEach(e=>{var t;(t=e.invalidateContent)===null||t===void 0?void 0:t.call(e)})};c.setCountsOutDated=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.setProperty("countsOutDated",t);if(t&&!this.getSelectedInnerControl()){this._refreshTabsCount()}};c.setFreezeContent=function e(t){this.setProperty("freezeContent",t);this._setInnerBinding()};c._updateMultiTabNotApplicableFields=function e(t){const n=this.getTabsModel();const r=this._getFilterControl();if(n&&r){const e={};this.getAllInnerControls().forEach(n=>{const i=this._getTabFromInnerControl(n);if(i){var o;const l=i.getKey();const s=((o=n.refreshNotApplicableFields)===null||o===void 0?void 0:o.call(n,r))||[];e[l]={notApplicable:{fields:s,title:this._setTabMessageStrip({entityTypePath:r.data("entityType"),ignoredFields:s,resourceBundle:t,title:i.getText()})}}}});n.setData(e)}};c.getAllInnerControls=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this.innerControls.reduce((e,n)=>{const r=s.byId(n);if(r){e.push(r)}return e.filter(e=>{var n;return!t||((n=this._getTabFromInnerControl(e))===null||n===void 0?void 0:n.getVisible())})},[])||[]};c._getFilterControl=function e(){return s.byId(this.filterControl)};c._getTabFromInnerControl=function e(t){const n=o.getMetadata().getName();let r=t;if(r&&!r.isA(n)&&r.getParent){r=t.getParent()}return r&&r.isA(n)?r:undefined};c._getViewController=function e(){const n=t.getTargetView(this);return n&&n.getController()};c._refreshCustomView=function e(t,n){var r,i;(r=this._getViewController())===null||r===void 0?void 0:(i=r.onViewNeedsRefresh)===null||i===void 0?void 0:i.call(r,{filterConditions:t,currentTabId:this.content.getSelectedKey(),refreshCause:n})};c._refreshTabsCount=function t(n){var r,i;const o=n===null||n===void 0?void 0:n.getSource();const l=o?(r=this._getTabFromInnerControl(o))===null||r===void 0?void 0:r.getKey():(i=this.content)===null||i===void 0?void 0:i.getSelectedKey();this.getAllInnerControls(true).forEach(t=>{const n=this._getTabFromInnerControl(t);if(t!==null&&t!==void 0&&t.getCounts&&(this.countsOutDated||l===(n===null||n===void 0?void 0:n.getKey()))){if(n&&n.setCount){n.setCount("...");t.getCounts().then(e=>n.setCount(e||"0")).catch(function(t){e.error("Error while requesting Counts for Control",t)})}}});this.setCountsOutDated(false)};c._setInnerBinding=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.content){this.getAllInnerControls().forEach(e=>{var n;const r=this._getTabFromInnerControl(e);const i=(r===null||r===void 0?void 0:r.getKey())===this.content.getSelectedKey();const o=i&&!this.getProperty("freezeContent")?j.Resume:j.Suspend;(n=e[o])===null||n===void 0?void 0:n.call(e,o===j.Resume?t&&i:undefined)})}};c._setTabMessageStrip=function e(t){let n="";const o=t.ignoredFields;const l=this._getFilterControl();if(l&&Array.isArray(o)&&o.length>0&&t.title){const e=r.getLabels(o,t.entityTypePath,l,t.resourceBundle);n=r.getText(e,l,t.title,i.getLocalizedText);return n}};c._onSearch=function e(t){this.setCountsOutDated(true);this.setFreezeContent(false);if(this.getSelectedInnerControl()){var n;this._updateMultiTabNotApplicableFields((n=this._getViewController())===null||n===void 0?void 0:n.oResourceBundle)}else{this._refreshCustomView(t.getParameter("conditions"),"search")}};c._onFilterChanged=function e(t){if(t.getParameter("conditionsBased")){this.setFreezeContent(true)}};return l}(l),m=V(y.prototype,"showCounts",[d],{configurable:true,enumerable:true,writable:true,initializer:null}),_=V(y.prototype,"freezeContent",[f],{configurable:true,enumerable:true,writable:true,initializer:null}),I=V(y.prototype,"countsOutDated",[g],{configurable:true,enumerable:true,writable:true,initializer:null}),T=V(y.prototype,"content",[h],{configurable:true,enumerable:true,writable:true,initializer:null}),w=V(y.prototype,"innerControls",[p],{configurable:true,enumerable:true,writable:true,initializer:null}),F=V(y.prototype,"filterControl",[v],{configurable:true,enumerable:true,writable:true,initializer:null}),z=V(y.prototype,"select",[C],{configurable:true,enumerable:true,writable:true,initializer:null}),y))||b);return N},false);
5
+ sap.ui.define(["sap/base/Log","sap/fe/core/CommonUtils","sap/fe/core/converters/MetaModelConverter","sap/fe/core/helpers/ClassSupport","sap/fe/core/helpers/MessageStrip","sap/fe/core/helpers/ResourceModelHelper","sap/m/IconTabFilter","sap/ui/core/Control","sap/ui/core/Core","sap/ui/fl/write/api/ControlPersonalizationWriteAPI","sap/ui/model/json/JSONModel"],function(e,t,n,i,o,r,l,s,a,u,c){"use strict";var d,f,g,h,p,v,C,b,y,_,m,I,T,F,A,w,M;var S=r.getResourceModel;var z=i.property;var P=i.event;var O=i.defineUI5Class;var E=i.association;var R=i.aggregation;function B(e,t,n,i){if(!n)return;Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(i):void 0})}function D(e){if(e===void 0){throw new ReferenceError("this hasn't been initialised - super() hasn't been called")}return e}function K(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;L(e,t)}function L(e,t){L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function e(t,n){t.__proto__=n;return t};return L(e,t)}function V(e,t,n,i,o){var r={};Object.keys(i).forEach(function(e){r[e]=i[e]});r.enumerable=!!r.enumerable;r.configurable=!!r.configurable;if("value"in r||r.initializer){r.writable=true}r=n.slice().reverse().reduce(function(n,i){return i(e,t,n)||n},r);if(o&&r.initializer!==void 0){r.value=r.initializer?r.initializer.call(o):void 0;r.initializer=undefined}if(r.initializer===void 0){Object.defineProperty(e,t,r);r=null}return r}function N(e,t){throw new Error("Decorating class property failed. Please ensure that "+"proposal-class-properties is enabled and runs after the decorators transform.")}var j;(function(e){e["Suspend"]="suspendBinding";e["Resume"]="resumeBinding"})(j||(j={}));let x=(d=O("sap.fe.templates.ListReport.controls.MultipleModeControl"),f=z({type:"boolean"}),g=z({type:"boolean",defaultValue:false}),h=z({type:"boolean",defaultValue:false}),p=R({type:"sap.m.IconTabBar",multiple:false,isDefault:true}),v=E({type:"sap.ui.core.Control",multiple:true}),C=E({type:"sap.fe.core.controls.FilterBar",multiple:false}),b=P(),d(y=(_=function(i){K(r,i);function r(){var e;for(var t=arguments.length,n=new Array(t),o=0;o<t;o++){n[o]=arguments[o]}e=i.call(this,...n)||this;B(e,"showCounts",m,D(e));B(e,"freezeContent",I,D(e));B(e,"countsOutDated",T,D(e));B(e,"content",F,D(e));B(e,"innerControls",A,D(e));B(e,"filterControl",w,D(e));B(e,"select",M,D(e));return e}var s=r.prototype;s.onBeforeRendering=function e(){this.getTabsModel();const t=this._getFilterControl();if(!t){this.setCountsOutDated(true)}const n=t===null||t===void 0?void 0:t.getParent();this.getAllInnerControls().forEach(e=>{var t;if(this.showCounts){e.attachEvent("internalDataRequested",this._refreshTabsCount.bind(this))}(t=e.suspendBinding)===null||t===void 0?void 0:t.call(e)});if(n){n.attachEvent("internalSearch",this._onSearch.bind(this));n.attachEvent("internalFilterChanged",this._onFilterChanged.bind(this))}};s.onAfterRendering=function e(){var t,n;(t=this.getSelectedInnerControl())===null||t===void 0?void 0:(n=t.resumeBinding)===null||n===void 0?void 0:n.call(t,!this.getProperty("freezeContent"))};r.render=function e(t,n){t.renderControl(n.content)};s.getTabsModel=function e(){const t="tabsInternal";const n=this.content;if(!n){return undefined}let i=n.getModel(t);if(!i){i=new c({});n.setModel(i,t)}return i};s.getSelectedInnerControl=function e(){var t;const n=(t=this.content)===null||t===void 0?void 0:t.getItems().find(e=>e.getKey()===this.content.getSelectedKey());return n?this.getAllInnerControls().find(e=>this._getTabFromInnerControl(e)===n):undefined};r.handleTabChange=function e(t){var n,i;const o=t.getSource();const r=o.getParent();const l=t.getParameters();r._setInnerBinding(true);const s=l===null||l===void 0?void 0:l.previousKey;const a=l===null||l===void 0?void 0:l.selectedKey;if(a&&s!==a){const e=r._getFilterControl();if(e&&!r.getProperty("freezeContent")){if(!r.getSelectedInnerControl()){r._refreshCustomView(e.getFilterConditions(),"tabChanged")}}u.add({changes:[{changeSpecificData:{changeType:"selectIconTabBarFilter",content:{selectedKey:a,previousSelectedKey:s}},selectorElement:o}]})}(n=r._getViewController())===null||n===void 0?void 0:(i=n.getExtensionAPI())===null||i===void 0?void 0:i.updateAppState();r.fireEvent("select",{iconTabBar:o,selectedKey:a,previousKey:s})};s.invalidateContent=function e(){this.setCountsOutDated(true);this.getAllInnerControls().forEach(e=>{var t;(t=e.invalidateContent)===null||t===void 0?void 0:t.call(e)})};s.setCountsOutDated=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:true;this.setProperty("countsOutDated",t);if(t&&!this.getSelectedInnerControl()){this._refreshTabsCount()}};s.setFreezeContent=function e(t){this.setProperty("freezeContent",t);this._setInnerBinding()};s._updateMultiTabNotApplicableFields=function e(){const t=this.getTabsModel();const n=this._getFilterControl();if(t&&n){const e={};this.getAllInnerControls().forEach(t=>{const i=this._getTabFromInnerControl(t);if(i){var o;const r=i.getKey();const l=((o=t.refreshNotApplicableFields)===null||o===void 0?void 0:o.call(t,n))||[];e[r]={notApplicable:{fields:l,title:this._setTabMessageStrip({entityTypePath:n.data("entityType"),ignoredFields:l,title:i.getText()})}};if(t&&t.isA("sap.fe.macros.chart.ChartAPI")){e[r]=this.checkNonFilterableEntitySet(t,r,e)}}});t.setData(e)}};s.checkNonFilterableEntitySet=function e(t,i,o){var r,l,s,a,u;const c=S(t);const d=t!==null&&t!==void 0&&t.getContent?t.getContent():undefined;const f=d&&((r=n.getInvolvedDataModelObjects(d.getModel().getMetaModel().getContext(`${d.data("targetCollectionPath")}`)))===null||r===void 0?void 0:(l=r.targetObject)===null||l===void 0?void 0:(s=l.annotations)===null||s===void 0?void 0:(a=s.Capabilities)===null||a===void 0?void 0:(u=a.FilterRestrictions)===null||u===void 0?void 0:u.Filterable);if(f!==undefined&&!f){if(o[i].notApplicable.fields.indexOf("$search")>-1){o[i].notApplicable.title+=" "+c.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE")}else{o[i].notApplicable.fields=["nonFilterable"];o[i].notApplicable.title=c.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE")}}return o[i]};s.getAllInnerControls=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;return this.innerControls.reduce((e,n)=>{const i=a.byId(n);if(i){e.push(i)}return e.filter(e=>{var n;return!t||((n=this._getTabFromInnerControl(e))===null||n===void 0?void 0:n.getVisible())})},[])||[]};s._getFilterControl=function e(){return a.byId(this.filterControl)};s._getTabFromInnerControl=function e(t){const n=l.getMetadata().getName();let i=t;if(i&&!i.isA(n)&&i.getParent){i=t.getParent()}return i&&i.isA(n)?i:undefined};s._getViewController=function e(){const n=t.getTargetView(this);return n&&n.getController()};s._refreshCustomView=function e(t,n){var i,o;(i=this._getViewController())===null||i===void 0?void 0:(o=i.onViewNeedsRefresh)===null||o===void 0?void 0:o.call(i,{filterConditions:t,currentTabId:this.content.getSelectedKey(),refreshCause:n})};s._refreshTabsCount=function t(n){var i,o;const r=n===null||n===void 0?void 0:n.getSource();const l=r?(i=this._getTabFromInnerControl(r))===null||i===void 0?void 0:i.getKey():(o=this.content)===null||o===void 0?void 0:o.getSelectedKey();this.getAllInnerControls(true).forEach(t=>{const n=this._getTabFromInnerControl(t);if(t!==null&&t!==void 0&&t.getCounts&&(this.countsOutDated||l===(n===null||n===void 0?void 0:n.getKey()))){if(n&&n.setCount){n.setCount("...");t.getCounts().then(e=>n.setCount(e||"0")).catch(function(t){e.error("Error while requesting Counts for Control",t)})}}});this.setCountsOutDated(false)};s._setInnerBinding=function e(){let t=arguments.length>0&&arguments[0]!==undefined?arguments[0]:false;if(this.content){this.getAllInnerControls().forEach(e=>{var n;const i=this._getTabFromInnerControl(e);const o=(i===null||i===void 0?void 0:i.getKey())===this.content.getSelectedKey();const r=o&&!this.getProperty("freezeContent")?j.Resume:j.Suspend;(n=e[r])===null||n===void 0?void 0:n.call(e,r===j.Resume?t&&o:undefined)})}};s._setTabMessageStrip=function e(t){let n="";const i=t.ignoredFields;const r=this._getFilterControl();if(r&&Array.isArray(i)&&i.length>0&&t.title){const e=o.getLabels(i,t.entityTypePath,r,S(r));n=o.getText(e,r,t.title);return n}};s._onSearch=function e(t){this.setCountsOutDated(true);this.setFreezeContent(false);if(this.getSelectedInnerControl()){this._updateMultiTabNotApplicableFields()}else{this._refreshCustomView(t.getParameter("conditions"),"search")}};s._onFilterChanged=function e(t){if(t.getParameter("conditionsBased")){this.setFreezeContent(true)}};return r}(s),m=V(_.prototype,"showCounts",[f],{configurable:true,enumerable:true,writable:true,initializer:null}),I=V(_.prototype,"freezeContent",[g],{configurable:true,enumerable:true,writable:true,initializer:null}),T=V(_.prototype,"countsOutDated",[h],{configurable:true,enumerable:true,writable:true,initializer:null}),F=V(_.prototype,"content",[p],{configurable:true,enumerable:true,writable:true,initializer:null}),A=V(_.prototype,"innerControls",[v],{configurable:true,enumerable:true,writable:true,initializer:null}),w=V(_.prototype,"filterControl",[C],{configurable:true,enumerable:true,writable:true,initializer:null}),M=V(_.prototype,"select",[b],{configurable:true,enumerable:true,writable:true,initializer:null}),_))||y);return x},false);
6
6
  //# sourceMappingURL=MultipleModeControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultipleModeControl.js","names":["sap","ui","define","Log","CommonUtils","ClassSupport","MessageStrip","DelegateUtil","IconTabFilter","Control","Core","ControlPersonalizationWriteAPI","JSONModel","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","property","event","defineUI5Class","association","aggregation","_initializerDefineProperty","target","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","BindingAction","MultipleModeControl","type","defaultValue","multiple","isDefault","_Control","_this","_len","arguments","length","args","Array","_key","this","_proto","onBeforeRendering","getTabsModel","oFilterControl","_getFilterControl","setCountsOutDated","oFilterBarAPI","getParent","getAllInnerControls","oMacroAPI","_oMacroAPI$suspendBin","showCounts","attachEvent","_refreshTabsCount","suspendBinding","_onSearch","_onFilterChanged","onAfterRendering","_this$getSelectedInne","_this$getSelectedInne2","getSelectedInnerControl","resumeBinding","getProperty","render","oRm","oControl","renderControl","content","sTabsModel","oContent","oModel","getModel","setModel","_this$content","oSelectedTab","getItems","find","oItem","getKey","getSelectedKey","_getTabFromInnerControl","handleTabChange","oEvent","_oMultiControl$_getVi","_oMultiControl$_getVi2","oIconTabBar","getSource","oMultiControl","mParameters","getParameters","_setInnerBinding","sPreviousSelectedKey","previousKey","sSelectedKey","selectedKey","oFilterBar","_refreshCustomView","getFilterConditions","add","changes","changeSpecificData","changeType","previousSelectedKey","selectorElement","_getViewController","getExtensionAPI","updateAppState","fireEvent","iconTabBar","invalidateContent","_oMacroAPI$invalidate","bValue","setProperty","setFreezeContent","_updateMultiTabNotApplicableFields","oResourceBundle","tabsModel","results","oTab","_oMacroAPI$refreshNot","sTabId","mIgnoredFields","refreshNotApplicableFields","notApplicable","fields","title","_setTabMessageStrip","entityTypePath","data","ignoredFields","resourceBundle","getText","setData","bOnlyForVisibleTab","innerControls","aInnerControls","sInnerControl","byId","push","filter","oInnerControl","_this$_getTabFromInne","getVisible","filterControl","sSupportedClass","getMetadata","getName","isA","oView","getTargetView","getController","oFilterConditions","sRefreshCause","_this$_getViewControl","_this$_getViewControl2","onViewNeedsRefresh","filterConditions","currentTabId","refreshCause","tableEvent","_this$_getTabFromInne2","_this$content2","eventMacroAPI","targetKey","oIconTabFilter","getCounts","countsOutDated","setCount","then","iCount","catch","oError","error","bRequestIfNotInitialized","_oMacroAPI$sAction","bIsSelectedKey","sAction","Resume","Suspend","properties","sText","aIgnoredFields","isArray","aIgnoredLabels","getLabels","getLocalizedText","_this$_getViewControl3","getParameter"],"sources":["MultipleModeControl-dbg.js"],"mappings":"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"}
1
+ {"version":3,"file":"MultipleModeControl.js","names":["sap","ui","define","Log","CommonUtils","MetaModelConverter","ClassSupport","MessageStrip","ResourceModelHelper","IconTabFilter","Control","Core","ControlPersonalizationWriteAPI","JSONModel","_dec","_dec2","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","_class","_class2","_descriptor","_descriptor2","_descriptor3","_descriptor4","_descriptor5","_descriptor6","_descriptor7","getResourceModel","property","event","defineUI5Class","association","aggregation","_initializerDefineProperty","target","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","BindingAction","MultipleModeControl","type","defaultValue","multiple","isDefault","_Control","_this","_len","arguments","length","args","Array","_key","this","_proto","onBeforeRendering","getTabsModel","oFilterControl","_getFilterControl","setCountsOutDated","oFilterBarAPI","getParent","getAllInnerControls","oMacroAPI","_oMacroAPI$suspendBin","showCounts","attachEvent","_refreshTabsCount","suspendBinding","_onSearch","_onFilterChanged","onAfterRendering","_this$getSelectedInne","_this$getSelectedInne2","getSelectedInnerControl","resumeBinding","getProperty","render","oRm","oControl","renderControl","content","sTabsModel","oContent","oModel","getModel","setModel","_this$content","oSelectedTab","getItems","find","oItem","getKey","getSelectedKey","_getTabFromInnerControl","handleTabChange","oEvent","_oMultiControl$_getVi","_oMultiControl$_getVi2","oIconTabBar","getSource","oMultiControl","mParameters","getParameters","_setInnerBinding","sPreviousSelectedKey","previousKey","sSelectedKey","selectedKey","oFilterBar","_refreshCustomView","getFilterConditions","add","changes","changeSpecificData","changeType","previousSelectedKey","selectorElement","_getViewController","getExtensionAPI","updateAppState","fireEvent","iconTabBar","invalidateContent","_oMacroAPI$invalidate","bValue","setProperty","setFreezeContent","_updateMultiTabNotApplicableFields","tabsModel","results","oTab","_oMacroAPI$refreshNot","sTabId","mIgnoredFields","refreshNotApplicableFields","notApplicable","fields","title","_setTabMessageStrip","entityTypePath","data","ignoredFields","getText","isA","checkNonFilterableEntitySet","setData","_MetaModelConverter$g","_MetaModelConverter$g2","_MetaModelConverter$g3","_MetaModelConverter$g4","_MetaModelConverter$g5","resourceModel","oChart","getContent","bEntitySetFilerable","getInvolvedDataModelObjects","getMetaModel","getContext","targetObject","annotations","Capabilities","FilterRestrictions","Filterable","indexOf","bOnlyForVisibleTab","innerControls","aInnerControls","sInnerControl","byId","push","filter","oInnerControl","_this$_getTabFromInne","getVisible","filterControl","sSupportedClass","getMetadata","getName","oView","getTargetView","getController","oFilterConditions","sRefreshCause","_this$_getViewControl","_this$_getViewControl2","onViewNeedsRefresh","filterConditions","currentTabId","refreshCause","tableEvent","_this$_getTabFromInne2","_this$content2","eventMacroAPI","targetKey","oIconTabFilter","getCounts","countsOutDated","setCount","then","iCount","catch","oError","error","bRequestIfNotInitialized","_oMacroAPI$sAction","bIsSelectedKey","sAction","Resume","Suspend","properties","sText","aIgnoredFields","isArray","aIgnoredLabels","getLabels","getParameter"],"sources":["MultipleModeControl-dbg.js"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
- import type ResourceBundle from "sap/base/i18n/ResourceBundle";
2
1
  import Log from "sap/base/Log";
3
2
  import CommonUtils from "sap/fe/core/CommonUtils";
4
3
  import type FilterBar from "sap/fe/core/controls/FilterBar";
4
+ import * as MetaModelConverter from "sap/fe/core/converters/MetaModelConverter";
5
5
  import { aggregation, association, defineUI5Class, event, property } from "sap/fe/core/helpers/ClassSupport";
6
6
  import MessageStrip from "sap/fe/core/helpers/MessageStrip";
7
- import DelegateUtil from "sap/fe/macros/DelegateUtil";
7
+ import { getResourceModel } from "sap/fe/core/helpers/ResourceModelHelper";
8
8
  import MacroAPI from "sap/fe/macros/MacroAPI";
9
9
  import IconTabBar from "sap/m/IconTabBar";
10
10
  import IconTabFilter from "sap/m/IconTabFilter";
@@ -23,12 +23,12 @@ export type InnerControlType = MacroAPI &
23
23
  getCounts: Function;
24
24
  refreshNotApplicableFields: Function;
25
25
  invalidateContent: Function;
26
+ getContent: Function;
26
27
  }>;
27
28
 
28
29
  type MessageStripProperties = {
29
30
  entityTypePath: string;
30
31
  ignoredFields: any[];
31
- resourceBundle: ResourceBundle;
32
32
  title: string;
33
33
  };
34
34
 
@@ -207,9 +207,8 @@ class MultipleModeControl extends Control {
207
207
  /**
208
208
  * Updates the internal model with the properties that are not applicable on each IconTabFilter (containing inner control) according to the entityType of the filter control.
209
209
  *
210
- * @param oResourceBundle
211
210
  */
212
- _updateMultiTabNotApplicableFields(oResourceBundle: ResourceBundle) {
211
+ _updateMultiTabNotApplicableFields() {
213
212
  const tabsModel = this.getTabsModel();
214
213
  const oFilterControl = this._getFilterControl() as Control;
215
214
  if (tabsModel && oFilterControl) {
@@ -225,17 +224,48 @@ class MultipleModeControl extends Control {
225
224
  title: this._setTabMessageStrip({
226
225
  entityTypePath: oFilterControl.data("entityType"),
227
226
  ignoredFields: mIgnoredFields,
228
- resourceBundle: oResourceBundle,
229
227
  title: oTab.getText()
230
228
  })
231
229
  }
232
230
  };
231
+ if (oMacroAPI && oMacroAPI.isA("sap.fe.macros.chart.ChartAPI")) {
232
+ results[sTabId] = this.checkNonFilterableEntitySet(oMacroAPI, sTabId, results);
233
+ }
233
234
  }
234
235
  });
235
236
  (tabsModel as any).setData(results);
236
237
  }
237
238
  }
238
239
 
240
+ /**
241
+ * Modifies the messagestrip message based on entity set is filerable or not.
242
+ *
243
+ * @param {InnerControlType} oMacroAPI Macro chart api
244
+ * @param {string} sTabId Tab key ID
245
+ * @param {object} results Should contain fields and title
246
+ * @returns {object} An object of modified fields and title
247
+ */
248
+ checkNonFilterableEntitySet(oMacroAPI: InnerControlType, sTabId: string, results: any) {
249
+ const resourceModel = getResourceModel(oMacroAPI);
250
+ const oChart = oMacroAPI?.getContent ? oMacroAPI.getContent() : undefined;
251
+ const bEntitySetFilerable =
252
+ oChart &&
253
+ MetaModelConverter.getInvolvedDataModelObjects(
254
+ oChart
255
+ .getModel()
256
+ .getMetaModel()
257
+ .getContext(`${oChart.data("targetCollectionPath")}`)
258
+ )?.targetObject?.annotations?.Capabilities?.FilterRestrictions?.Filterable;
259
+ if (bEntitySetFilerable !== undefined && !bEntitySetFilerable) {
260
+ if (results[sTabId].notApplicable.fields.indexOf("$search") > -1) {
261
+ results[sTabId].notApplicable.title += " " + resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
262
+ } else {
263
+ results[sTabId].notApplicable.fields = ["nonFilterable"];
264
+ results[sTabId].notApplicable.title = resourceModel.getText("C_LR_MULTIVIZ_CHART_MULTI_NON_FILTERABLE");
265
+ }
266
+ }
267
+ return results[sTabId];
268
+ }
239
269
  /**
240
270
  * Gets the inner controls.
241
271
  *
@@ -328,9 +358,9 @@ class MultipleModeControl extends Control {
328
358
  aIgnoredFields,
329
359
  properties.entityTypePath,
330
360
  oFilterControl,
331
- properties.resourceBundle
361
+ getResourceModel(oFilterControl)
332
362
  );
333
- sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title, DelegateUtil.getLocalizedText);
363
+ sText = MessageStrip.getText(aIgnoredLabels, oFilterControl, properties.title);
334
364
  return sText;
335
365
  }
336
366
  }
@@ -339,7 +369,7 @@ class MultipleModeControl extends Control {
339
369
  this.setCountsOutDated(true);
340
370
  this.setFreezeContent(false);
341
371
  if (this.getSelectedInnerControl()) {
342
- this._updateMultiTabNotApplicableFields((this._getViewController() as any)?.oResourceBundle);
372
+ this._updateMultiTabNotApplicableFields();
343
373
  } else {
344
374
  // custom tab
345
375
  this._refreshCustomView(oEvent.getParameter("conditions"), "search");
@@ -4,7 +4,7 @@
4
4
  "id": "sap.fe.templates.ListReport",
5
5
  "type": "component",
6
6
  "applicationVersion": {
7
- "version": "1.111.1"
7
+ "version": "1.113.0"
8
8
  },
9
9
  "title": "List Report",
10
10
  "tags": {