@sapui5/sap.fe.templates 1.102.0 → 1.103.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 (74) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/templates/.library +1 -1
  3. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.js +2 -2
  4. package/src/sap/fe/templates/AnalyticalListPage/chart/FEChartDelegate.ts +1 -1
  5. package/src/sap/fe/templates/Feedback.js +18 -18
  6. package/src/sap/fe/templates/Feedback.ts +12 -12
  7. package/src/sap/fe/templates/ListReport/ExtensionAPI.js +9 -12
  8. package/src/sap/fe/templates/ListReport/ExtensionAPI.ts +9 -12
  9. package/src/sap/fe/templates/ListReport/ListReport.view.xml +3 -1
  10. package/src/sap/fe/templates/ListReport/ListReportController.controller.js +80 -55
  11. package/src/sap/fe/templates/ListReport/ListReportController.controller.ts +95 -71
  12. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.js +1 -1
  13. package/src/sap/fe/templates/ListReport/overrides/IntentBasedNavigation.ts +2 -2
  14. package/src/sap/fe/templates/ListReport/overrides/Share.js +3 -4
  15. package/src/sap/fe/templates/ListReport/overrides/Share.ts +6 -7
  16. package/src/sap/fe/templates/ListReport/overrides/ViewState.js +4 -5
  17. package/src/sap/fe/templates/ListReport/overrides/ViewState.ts +10 -10
  18. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.js +1 -1
  19. package/src/sap/fe/templates/ListReport/view/fragments/MultipleMode.fragment.ts +1 -1
  20. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.js +12 -16
  21. package/src/sap/fe/templates/ObjectPage/ExtensionAPI.ts +17 -20
  22. package/src/sap/fe/templates/ObjectPage/ObjectPage.view.xml +4 -3
  23. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.js +148 -163
  24. package/src/sap/fe/templates/ObjectPage/ObjectPageController.controller.ts +138 -192
  25. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.js +62 -73
  26. package/src/sap/fe/templates/ObjectPage/ObjectPageTemplating.ts +75 -90
  27. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.js +2 -3
  28. package/src/sap/fe/templates/ObjectPage/controls/SubSectionBlock.ts +4 -4
  29. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.js +1 -1
  30. package/src/sap/fe/templates/ObjectPage/designtime/StashableHBox.designtime.ts +1 -1
  31. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.js +1 -1
  32. package/src/sap/fe/templates/ObjectPage/designtime/StashableVBox.designtime.ts +1 -1
  33. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.js +103 -0
  34. package/src/sap/fe/templates/ObjectPage/handler/DraftHandler.ts +97 -0
  35. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.js +1 -1
  36. package/src/sap/fe/templates/ObjectPage/overrides/IntentBasedNavigation.ts +5 -5
  37. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.js +1 -1
  38. package/src/sap/fe/templates/ObjectPage/overrides/InternalRouting.ts +2 -2
  39. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.js +1 -1
  40. package/src/sap/fe/templates/ObjectPage/overrides/MessageHandler.ts +2 -2
  41. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.js +1 -1
  42. package/src/sap/fe/templates/ObjectPage/overrides/Paginator.ts +1 -1
  43. package/src/sap/fe/templates/ObjectPage/overrides/Share.js +15 -15
  44. package/src/sap/fe/templates/ObjectPage/overrides/Share.ts +17 -28
  45. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.js +2 -2
  46. package/src/sap/fe/templates/ObjectPage/overrides/ViewState.ts +4 -4
  47. package/src/sap/fe/templates/ObjectPage/view/fragments/Actions.fragment.xml +6 -1
  48. package/src/sap/fe/templates/ObjectPage/view/fragments/EditableHeaderFacet.fragment.xml +10 -2
  49. package/src/sap/fe/templates/ObjectPage/view/fragments/FooterContent.fragment.xml +1 -1
  50. package/src/sap/fe/templates/ObjectPage/view/fragments/HeaderFacet.fragment.xml +1 -14
  51. package/src/sap/fe/templates/ObjectPage/view/fragments/HeadingTitle.fragment.xml +1 -0
  52. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderAddress.fragment.xml +7 -2
  53. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderContact.fragment.xml +26 -0
  54. package/src/sap/fe/templates/ObjectPage/view/fragments/ObjectPageHeaderForm.fragment.xml +1 -1
  55. package/src/sap/fe/templates/ObjectPage/view/fragments/Section.fragment.xml +4 -1
  56. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionContent.fragment.xml +6 -2
  57. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionFormContent.fragment.xml +1 -0
  58. package/src/sap/fe/templates/ObjectPage/view/fragments/SectionMoreFormContent.fragment.xml +1 -0
  59. package/src/sap/fe/templates/ObjectPage/view/fragments/SwitchDraftAndActiveObjectPopOver.fragment.xml +2 -2
  60. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.js +25 -28
  61. package/src/sap/fe/templates/RootContainer/controller/Fcl.controller.ts +30 -33
  62. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.js +3 -4
  63. package/src/sap/fe/templates/RootContainer/controller/NavContainer.controller.ts +4 -5
  64. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.js +140 -52
  65. package/src/sap/fe/templates/RootContainer/controller/RootContainerBaseController.ts +108 -54
  66. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.js +1 -1
  67. package/src/sap/fe/templates/RootContainer/overrides/EditFlow.ts +3 -3
  68. package/src/sap/fe/templates/TableScroller.js +3 -3
  69. package/src/sap/fe/templates/TableScroller.ts +2 -2
  70. package/src/sap/fe/templates/controls/Table.fragment.xml +1 -0
  71. package/src/sap/fe/templates/library.js +5 -2
  72. package/src/sap/fe/templates/library.ts +3 -0
  73. package/src/sap/fe/templates/messagebundle.properties +6 -18
  74. package/src/sap/fe/templates/messagebundle_pt.properties +1 -1
@@ -153,7 +153,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
153
153
  oAdditionalStates.alpContentView = TemplateContentView.Chart;
154
154
  }
155
155
 
156
- oInternalModelContext.getModel().setProperty(oInternalModelContext.getPath() + "/alpContentView", oAdditionalStates.alpContentView);
156
+ oInternalModelContext.getModel().setProperty("".concat(oInternalModelContext.getPath(), "/alpContentView"), oAdditionalStates.alpContentView);
157
157
  }
158
158
  }
159
159
  },
@@ -289,7 +289,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
289
289
  return null;
290
290
 
291
291
  default:
292
- throw new Error("unhandled variant setting: " + oViewData.variantManagement);
292
+ throw new Error("unhandled variant setting: ".concat(oViewData.variantManagement));
293
293
  }
294
294
  },
295
295
  _preventInitialSearch: function (oVariantManagement) {
@@ -315,7 +315,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
315
315
  var oConditions = {};
316
316
  var oMetaModel = oView.getModel().getMetaModel();
317
317
  var oViewData = oView.getViewData();
318
- var sContextPath = oViewData.contextPath || "/" + oViewData.entitySet;
318
+ var sContextPath = oViewData.contextPath || "/".concat(oViewData.entitySet);
319
319
  var aMandatoryFilterFields = CommonUtils.getMandatoryFilterFields(oMetaModel, sContextPath);
320
320
  var oVariant;
321
321
  var bRequiresStandardVariant = oNavigationParameter.requiresStandardVariant;
@@ -410,7 +410,6 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
410
410
  context: oPropertyContext
411
411
  })
412
412
  });
413
- return;
414
413
  }
415
414
  });
416
415
  return aPropertyInfo;
@@ -451,4 +450,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/CommonUtils", "sap/fe/core/helpers/K
451
450
  };
452
451
  return ViewStateOverride;
453
452
  }, false);
454
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpZXdTdGF0ZS50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwiTmF2TGlicmFyeSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvcmVMaWJyYXJ5IiwiVmFyaWFudE1hbmFnZW1lbnQiLCJUZW1wbGF0ZUNvbnRlbnRWaWV3IiwiSW5pdGlhbExvYWRNb2RlIiwiRmlsdGVyUmVzdHJpY3Rpb25zIiwiQ29tbW9uVXRpbHMiLCJDT05ESVRJT05fUEFUSF9UT19QUk9QRVJUWV9QQVRIX1JFR0VYIiwiVmlld1N0YXRlT3ZlcnJpZGUiLCJfYlNlYXJjaFRyaWdnZXJlZCIsImFwcGx5SW5pdGlhbFN0YXRlT25seSIsIm9uQmVmb3JlU3RhdGVBcHBsaWVkIiwiYVByb21pc2VzIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiYVRhYmxlcyIsIl9nZXRDb250cm9scyIsInNldFN1c3BlbmRTZWxlY3Rpb24iLCJwdXNoIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiZm9yRWFjaCIsIm9UYWJsZSIsImluaXRpYWxpemVkIiwib25BZnRlclN0YXRlQXBwbGllZCIsIl9pc0ZpbHRlckJhckhpZGRlbiIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiYUNvbnRyb2xzIiwic2V0UHJvcGVydHkiLCJfaXNNdWx0aU1vZGUiLCJfc2V0Q291bnRzT3V0RGF0ZWQiLCJzRGlzcGxheWVkQ29udHJvbElkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiZ2V0SWQiLCJvQ29udHJvbCIsImRhdGEiLCJhZGFwdEJpbmRpbmdSZWZyZXNoQ29udHJvbHMiLCJhVmlld0NvbnRyb2xzIiwiYUNvbnRyb2xzVG9SZWZyZXNoIiwiS2VlcEFsaXZlSGVscGVyIiwiZ2V0Q29udHJvbHNGb3JSZWZyZXNoIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJhcHBseSIsImFkYXB0U3RhdGVDb250cm9scyIsImFTdGF0ZUNvbnRyb2xzIiwib1ZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJiQ29udHJvbFZNIiwidmFyaWFudE1hbmFnZW1lbnQiLCJDb250cm9sIiwib0ZpbHRlckJhclZNIiwiX2dldEZpbHRlckJhclZNIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJvUXVpY2tGaWx0ZXIiLCJnZXRRdWlja0ZpbHRlciIsImdldFZhcmlhbnQiLCJvQ2hhcnQiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9nZXRTZWdtZW50ZWRCdXR0b24iLCJDaGFydCIsIlRhYmxlIiwiYnlJZCIsInJldHJpZXZlQWRkaXRpb25hbFN0YXRlcyIsIm1BZGRpdGlvbmFsU3RhdGVzIiwiYlBlbmRpbmdGaWx0ZXIiLCJnZXRQcm9wZXJ0eSIsImRhdGFMb2FkZWQiLCJzQWxwQ29udGVudFZpZXciLCJhbHBDb250ZW50VmlldyIsImFwcGx5QWRkaXRpb25hbFN0YXRlcyIsIm9BZGRpdGlvbmFsU3RhdGVzIiwidHJpZ2dlclNlYXJjaCIsInN5c3RlbSIsImRlc2t0b3AiLCJIeWJyaWQiLCJnZXRNb2RlbCIsImdldFBhdGgiLCJhcHBseU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwib05hdmlnYXRpb25QYXJhbWV0ZXIiLCJhUmVzdWx0cyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzdGFydHVwUGFyYW1ldGVycyIsIm9WYXJpYW50UHJvbWlzZSIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImJGaWx0ZXJWYXJpYW50QXBwbGllZCIsInRoZW4iLCJhVmFyaWFudHMiLCJsZW5ndGgiLCJfYXBwbHlTZWxlY3Rpb25WYXJpYW50Iiwib0R5bmFtaWNQYWdlIiwiYlByZXZlbnRJbml0aWFsU2VhcmNoIiwib0ZpbHRlckJhckNvbnRyb2wiLCJuYXZpZ2F0aW9uVHlwZSIsImluaXRpYWwiLCJyZXF1aXJlc1N0YW5kYXJkVmFyaWFudCIsImluaXRpYWxMb2FkIiwiRW5hYmxlZCIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9wcmV2ZW50SW5pdGlhbFNlYXJjaCIsInNldEhlYWRlckV4cGFuZGVkIiwiY2F0Y2giLCJMb2ciLCJlcnJvciIsIm9VcmxQYXJhbXMiLCJhUGFnZVZhcmlhbnRJZCIsImFGaWx0ZXJCYXJWYXJpYW50SWQiLCJhVGFibGVWYXJpYW50SWQiLCJvVmFyaWFudCIsInNQYWdlVmFyaWFudElkIiwic0ZpbHRlckJhclZhcmlhbnRJZCIsInNUYWJsZVZhcmlhbnRJZCIsIl9oYW5kbGVDb250cm9sVmFyaWFudElkIiwib1ZhcmlhbnRJRHMiLCJvVk0iLCJzVmFyaWFudE1hbmFnZW1lbnQiLCJnZXRWYXJpYW50cyIsImtleSIsIl9hcHBseUNvbnRyb2xWYXJpYW50IiwiZ2V0Q29udGVudCIsIm9UYWJsZVZhcmlhbnQiLCJQcm9taXNlIiwiYWxsIiwic1ZhcmlhbnRJRCIsInNWYXJpYW50UmVmZXJlbmNlIiwiX2NoZWNrSWZWYXJpYW50SWRJc0F2YWlsYWJsZSIsImdldFN0YW5kYXJkVmFyaWFudEtleSIsIkNvbnRyb2xWYXJpYW50QXBwbHlBUEkiLCJhY3RpdmF0ZVZhcmlhbnQiLCJlbGVtZW50IiwidmFyaWFudFJlZmVyZW5jZSIsIlBhZ2UiLCJOb25lIiwiRXJyb3IiLCJvVmFyaWFudE1hbmFnZW1lbnQiLCJvQ3VycmVudFZhcmlhbnQiLCJmaW5kIiwib0l0ZW0iLCJnZXRDdXJyZW50VmFyaWFudEtleSIsImV4ZWN1dGVPblNlbGVjdCIsIm9TZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJyZXNvbHZlIiwib0NvbmRpdGlvbnMiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0NvbnRleHRQYXRoIiwiY29udGV4dFBhdGgiLCJlbnRpdHlTZXQiLCJhTWFuZGF0b3J5RmlsdGVyRmllbGRzIiwiZ2V0TWFuZGF0b3J5RmlsdGVyRmllbGRzIiwiYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiZ2V0Q29uZGl0aW9ucyIsImFkZERlZmF1bHREaXNwbGF5Q3VycmVuY3kiLCJhZGRTZWxlY3Rpb25WYXJpYW50VG9Db25kaXRpb25zIiwiX2FjdGl2YXRlU2VsZWN0aW9uVmFyaWFudCIsIm9Qcm9taXNlIiwib1ZhcmlhbnRLZXkiLCJnZXREZWZhdWx0VmFyaWFudEtleSIsImJDbGVhckZpbHRlckFuZFJlcGxhY2VXaXRoQXBwU3RhdGUiLCJfZm5BcHBseUNvbmRpdGlvbnMiLCJtRmlsdGVyIiwiYUl0ZW1zIiwiZm5BZGp1c3RWYWx1ZUhlbHBDb25kaXRpb24iLCJvQ29uZGl0aW9uIiwidmFsaWRhdGVkIiwiQ29uZGl0aW9uVmFsaWRhdGVkIiwiVmFsaWRhdGVkIiwib3BlcmF0b3IiLCJ2YWx1ZXMiLCJpc0VtcHR5IiwiZm5HZXRQcm9wZXJ0eUluZm8iLCJvRmlsdGVyQ29udHJvbCIsInNFbnRpdHlUeXBlUGF0aCIsInNFbnRpdHlTZXRQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXRFbnRpdHlTZXRQYXRoIiwib0ZSIiwiZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoIiwiYU5vbkZpbHRlcmFibGVQcm9wcyIsIk5PTl9GSUxURVJBQkxFX1BST1BFUlRJRVMiLCJtRmlsdGVyRmllbGRzIiwiRmlsdGVyVXRpbHMiLCJnZXRDb252ZXJ0ZWRGaWx0ZXJGaWVsZHMiLCJhUHJvcGVydHlJbmZvIiwiT2JqZWN0Iiwia2V5cyIsInNGaWx0ZXJGaWVsZEtleSIsIm9Db252ZXJ0ZWRQcm9wZXJ0eSIsInNQcm9wZXJ0eVBhdGgiLCJjb25kaXRpb25QYXRoIiwicmVwbGFjZSIsImluZGV4T2YiLCJzQW5ub3RhdGlvblBhdGgiLCJhbm5vdGF0aW9uUGF0aCIsIm9Qcm9wZXJ0eUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInBhdGgiLCJoaWRkZW5GaWx0ZXIiLCJhdmFpbGFiaWxpdHkiLCJoYXNWYWx1ZUhlbHAiLCJQcm9wZXJ0eUZvcm1hdHRlcnMiLCJnZXRPYmplY3QiLCJjb250ZXh0IiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsImZpbHRlciIsIm9Qcm9wZXJ0eUluZm8iLCJuYW1lIiwiTm90VmFsaWRhdGVkIiwiU3RhdGVVdGlsIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiaXRlbXMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQWdCQSxNQUFNQSxPQUFPLEdBQUdDLFVBQVUsQ0FBQ0QsT0FBM0I7QUFBQSxNQUNDRSxxQkFBcUIsR0FBR0MsV0FBVyxDQUFDQyxpQkFEckM7QUFBQSxNQUVDQyxtQkFBbUIsR0FBR0YsV0FBVyxDQUFDRSxtQkFGbkM7QUFBQSxNQUdDQyxlQUFlLEdBQUdILFdBQVcsQ0FBQ0csZUFIL0I7QUFJQSxNQUFNQyxrQkFBa0IsR0FBR0MsV0FBVyxDQUFDRCxrQkFBdkM7QUFBQSxNQUNDRSxxQ0FBcUMsR0FBRyxRQUR6QztBQUdBLE1BQU1DLGlCQUFzQixHQUFHO0FBQzlCQyxJQUFBQSxpQkFBaUIsRUFBRSxLQURXO0FBRTlCQyxJQUFBQSxxQkFBcUIsRUFBRSxZQUFZO0FBQ2xDLGFBQU8sSUFBUDtBQUNBLEtBSjZCO0FBSzlCQyxJQUFBQSxvQkFBb0IsRUFBRSxVQUFzREMsU0FBdEQsRUFBc0U7QUFDM0YsVUFBTUMsS0FBSyxHQUFHLEtBQUtDLE9BQUwsRUFBZDtBQUFBLFVBQ0NDLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLEVBRGY7QUFBQSxVQUVDQyxVQUFVLEdBQUdGLFdBQVcsQ0FBQ0csb0JBQVosRUFGZDtBQUFBLFVBR0NDLE9BQU8sR0FBR0osV0FBVyxDQUFDSyxZQUFaLENBQXlCLE9BQXpCLENBSFg7O0FBSUEsVUFBSUgsVUFBSixFQUFnQjtBQUNmQSxRQUFBQSxVQUFVLENBQUNJLG1CQUFYLENBQStCLElBQS9CO0FBQ0FULFFBQUFBLFNBQVMsQ0FBQ1UsSUFBVixDQUFnQkwsVUFB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QUEsT0FBTyxDQUFDOEMsYUFBYSxDQUFDVixJQUFmLENBQVAsQ0FBNEJ2TCxPQUE1QixDQUFvQ3FKLDBCQUFwQztBQUNBLGFBRkQsTUFFTztBQUNORixjQUFBQSxPQUFPLENBQUM4QyxhQUFhLENBQUNWLElBQWYsQ0FBUCxDQUE0QnZMLE9BQTVCLENBQW9DLFVBQVVzSixVQUFWLEVBQTJCO0FBQzlEQSxnQkFBQUEsVUFBVSxDQUFDQyxTQUFYLEdBQXVCQyxrQkFBa0IsQ0FBQzJDLFlBQTFDO0FBQ0EsZUFGRDtBQUdBO0FBQ0QsV0FaRCxNQVlPO0FBQ05oRCxZQUFBQSxPQUFPLENBQUM4QyxhQUFhLENBQUNWLElBQWYsQ0FBUCxHQUE4QixFQUE5QjtBQUNBO0FBQ0QsU0FwQkY7QUFxQkEsZUFBT2EsU0FBUyxDQUFDQyxrQkFBVixDQUE2QjVNLFVBQTdCLEVBQXlDO0FBQUV1TSxVQUFBQSxNQUFNLEVBQUU3QyxPQUFWO0FBQW1CbUQsVUFBQUEsS0FBSyxFQUFFbEQ7QUFBMUIsU0FBekMsQ0FBUDtBQUNBLE9BekJNLENBQVA7QUEwQkE7QUF0WTZCLEdBQS9CO1NBeVllcEssaUIiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IENvbW1vblV0aWxzIGZyb20gXCJzYXAvZmUvY29yZS9Db21tb25VdGlsc1wiO1xuaW1wb3J0IFZpZXdTdGF0ZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvVmlld1N0YXRlXCI7XG5pbXBvcnQgS2VlcEFsaXZlSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0tlZXBBbGl2ZUhlbHBlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyLCB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBDb3JlTGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0ICogYXMgUHJvcGVydHlGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBOYXZMaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgTGlzdFJlcG9ydENvbnRyb2xsZXIgZnJvbSBcInNhcC9mZS90ZW1wbGF0ZXMvTGlzdFJlcG9ydC9MaXN0UmVwb3J0Q29udHJvbGxlci5jb250cm9sbGVyXCI7XG5pbXBvcnQgeyBzeXN0ZW0gfSBmcm9tIFwic2FwL3VpL0RldmljZVwiO1xuaW1wb3J0IENvbnRyb2xWYXJpYW50QXBwbHlBUEkgZnJvbSBcInNhcC91aS9mbC9hcHBseS9hcGkvQ29udHJvbFZhcmlhbnRBcHBseUFQSVwiO1xuaW1wb3J0IFZhcmlhbnRNYW5hZ2VtZW50IGZyb20gXCJzYXAvdWkvZmwvdmFyaWFudHMvVmFyaWFudE1hbmFnZW1lbnRcIjtcbmltcG9ydCBDb25kaXRpb25WYWxpZGF0ZWQgZnJvbSBcInNhcC91aS9tZGMvZW51bS9Db25kaXRpb25WYWxpZGF0ZWRcIjtcbmltcG9ydCBTdGF0ZVV0aWwgZnJvbSBcInNhcC91aS9tZGMvcDEzbi9TdGF0ZVV0aWxcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5jb25zdCBOYXZUeXBlID0gTmF2TGlicmFyeS5OYXZUeXBlLFxuXHRWYXJpYW50TWFuYWdlbWVudFR5cGUgPSBDb3JlTGlicmFyeS5WYXJpYW50TWFuYWdlbWVudCxcblx0VGVtcGxhdGVDb250ZW50VmlldyA9IENvcmVMaWJyYXJ5LlRlbXBsYXRlQ29udGVudFZpZXcsXG5cdEluaXRpYWxMb2FkTW9kZSA9IENvcmVMaWJyYXJ5LkluaXRpYWxMb2FkTW9kZTtcbmNvbnN0IEZpbHRlclJlc3RyaWN0aW9ucyA9IENvbW1vblV0aWxzLkZpbHRlclJlc3RyaWN0aW9ucyxcblx0Q09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCA9IC9cXCt8XFwqL2c7XG5cbmNvbnN0IFZpZXdTdGF0ZU92ZXJyaWRlOiBhbnkgPSB7XG5cdF9iU2VhcmNoVHJpZ2dlcmVkOiBmYWxzZSxcblx0YXBwbHlJbml0aWFsU3RhdGVPbmx5OiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cdG9uQmVmb3JlU3RhdGVBcHBsaWVkOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBhUHJvbWlzZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpLFxuXHRcdFx0YVRhYmxlcyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRvRmlsdGVyQmFyLnNldFN1c3BlbmRTZWxlY3Rpb24odHJ1ZSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaCgob0ZpbHRlckJhciBhcyBhbnkpLndhaXRGb3JJbml0aWFsaXphdGlvbigpKTtcblx0XHR9XG5cdFx0YVRhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uIChvVGFibGU6IGFueSkge1xuXHRcdFx0YVByb21pc2VzLnB1c2gob1RhYmxlLmluaXRpYWxpemVkKCkpO1xuXHRcdH0pO1xuXG5cdFx0ZGVsZXRlIHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdH0sXG5cdG9uQWZ0ZXJTdGF0ZUFwcGxpZWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUpIHtcblx0XHRjb25zdCBvQ29udHJvbGxlciA9IHRoaXMuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcjtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHRpZiAob0ZpbHRlckJhcikge1xuXHRcdFx0b0ZpbHRlckJhci5zZXRTdXNwZW5kU2VsZWN0aW9uKGZhbHNlKTtcblx0XHR9IGVsc2UgaWYgKG9Db250cm9sbGVyLl9pc0ZpbHRlckJhckhpZGRlbigpKSB7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0YUNvbnRyb2xzID0gb0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKCk7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJoYXNQZW5kaW5nRmlsdGVyc1wiLCBmYWxzZSk7XG5cdFx0XHRpZiAob0NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkpIHtcblx0XHRcdFx0b0NvbnRyb2xsZXIuX3NldENvdW50c091dERhdGVkKCk7XG5cdFx0XHRcdGNvbnN0IHNEaXNwbGF5ZWRDb250cm9sSWQgPSBvQ29udHJvbGxlci5fZ2V0Q3VycmVudENvbnRyb2woKS5nZXRJZCgpO1xuXHRcdFx0XHRhQ29udHJvbHMuZm9yRWFjaChmdW5jdGlvbiAob0NvbnRyb2w6IGFueSkge1xuXHRcdFx0XHRcdG9Db250cm9sLmRhdGEoXCJvdXRkYXRlZFJvd3NcIiwgb0NvbnRyb2wuZ2V0SWQoKSAhPT0gc0Rpc3BsYXllZENvbnRyb2xJZCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0YWRhcHRCaW5kaW5nUmVmcmVzaENvbnRyb2xzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlLCBhQ29udHJvbHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdGFWaWV3Q29udHJvbHMgPSBvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoKSxcblx0XHRcdGFDb250cm9sc1RvUmVmcmVzaCA9IEtlZXBBbGl2ZUhlbHBlci5nZXRDb250cm9sc0ZvclJlZnJlc2gob1ZpZXcsIGFWaWV3Q29udHJvbHMpO1xuXG5cdFx0QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYUNvbnRyb2xzLCBhQ29udHJvbHNUb1JlZnJlc2gpO1xuXHR9LFxuXHRhZGFwdFN0YXRlQ29udHJvbHM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIGFTdGF0ZUNvbnRyb2xzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpIGFzIGFueSxcblx0XHRcdGJDb250cm9sVk0gPSBvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQgPT09IFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sO1xuXG5cdFx0Y29uc3Qgb0ZpbHRlckJhclZNID0gdGhpcy5fZ2V0RmlsdGVyQmFyVk0ob1ZpZXcpO1xuXHRcdGlmIChvRmlsdGVyQmFyVk0pIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0ZpbHRlckJhclZNKTtcblx0XHR9XG5cdFx0aWYgKG9Db250cm9sbGVyLl9pc011bHRpTW9kZSgpKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9Db250cm9sbGVyLl9nZXRNdWx0aU1vZGVDb250cm9sKCkpO1xuXHRcdH1cblx0XHRvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJ0YWJsZVwiKS5mb3JFYWNoKGZ1bmN0aW9uIChvVGFibGU6IGFueSkge1xuXHRcdFx0Y29uc3Qgb1F1aWNrRmlsdGVyID0gb1RhYmxlLmdldFF1aWNrRmlsdGVyKCk7XG5cdFx0XHRpZiAob1F1aWNrRmlsdGVyKSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1F1aWNrRmlsdGVyKTtcblx0XHRcdH1cblx0XHRcdGlmIChiQ29udHJvbFZNKSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1RhYmxlLmdldFZhcmlhbnQoKSk7XG5cdFx0XHR9XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9UYWJsZSk7XG5cdFx0fSk7XG5cdFx0aWYgKG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcIkNoYXJ0XCIpKSB7XG5cdFx0XHRvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJDaGFydFwiKS5mb3JFYWNoKGZ1bmN0aW9uIChvQ2hhcnQ6IGFueSkge1xuXHRcdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9DaGFydCk7XG5cdFx0XHR9KTtcblx0XHR9XG5cdFx0aWYgKG9Db250cm9sbGVyLl9oYXNNdWx0aVZpc3VhbGl6YXRpb25zKCkpIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NvbnRyb2xsZXIuX2dldFNlZ21lbnRlZEJ1dHRvbihUZW1wbGF0ZUNvbnRlbnRWaWV3LkNoYXJ0KSk7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9Db250cm9sbGVyLl9nZXRTZWdtZW50ZWRCdXR0b24oVGVtcGxhdGVDb250ZW50Vmlldy5UYWJsZSkpO1xuXHRcdH1cblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHRpZiAob0ZpbHRlckJhcikge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvRmlsdGVyQmFyKTtcblx0XHR9XG5cdFx0YVN0YXRlQ29udHJvbHMucHVzaChvVmlldy5ieUlkKFwiZmU6Okxpc3RSZXBvcnRcIikpO1xuXHR9LFxuXHRyZXRyaWV2ZUFkZGl0aW9uYWxTdGF0ZXM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG1BZGRpdGlvbmFsU3RhdGVzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRiUGVuZGluZ0ZpbHRlciA9IChvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0KS5nZXRQcm9wZXJ0eShcImhhc1BlbmRpbmdGaWx0ZXJzXCIpO1xuXG5cdFx0bUFkZGl0aW9uYWxTdGF0ZXMuZGF0YUxvYWRlZCA9ICFiUGVuZGluZ0ZpbHRlciB8fCAhIXRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdFx0aWYgKG9Db250cm9sbGVyLl9oYXNNdWx0aVZpc3VhbGl6YXRpb25zKCkpIHtcblx0XHRcdGNvbnN0IHNBbHBDb250ZW50VmlldyA9IG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikuZ2V0UHJvcGVydHkoXCJhbHBDb250ZW50Vmlld1wiKTtcblx0XHRcdG1BZGRpdGlvbmFsU3RhdGVzLmFscENvbnRlbnRWaWV3ID0gc0FscENvbnRlbnRWaWV3O1xuXHRcdH1cblxuXHRcdGRlbGV0ZSB0aGlzLl9iU2VhcmNoVHJpZ2dlcmVkO1xuXHR9LFxuXHRhcHBseUFkZGl0aW9uYWxTdGF0ZXM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG9BZGRpdGlvbmFsU3RhdGVzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblxuXHRcdGlmIChvQWRkaXRpb25hbFN0YXRlcykge1xuXHRcdFx0Ly8gZXhwbGljaXQgY2hlY2sgZm9yIGJvb2xlYW4gdmFsdWVzIC0gJ3VuZGVmaW5lZCcgc2hvdWxkIG5vdCBhbHRlciB0aGUgdHJpZ2dlcmVkIHNlYXJjaCBwcm9wZXJ0eVxuXHRcdFx0aWYgKG9BZGRpdGlvbmFsU3RhdGVzLmRhdGFMb2FkZWQgPT09IGZhbHNlICYmIG9GaWx0ZXJCYXIpIHtcblx0XHRcdFx0Ly8gd2l0aG91dCB0aGlzLCB0aGUgZGF0YSBpcyBsb2FkZWQgb24gbmF2aWdhdGluZyBiYWNrXG5cdFx0XHRcdChvRmlsdGVyQmFyIGFzIGFueSkuX2JTZWFyY2hUcmlnZ2VyZWQgPSBmYWxzZTtcblx0XHRcdH0gZWxzZSBpZiAob0FkZGl0aW9uYWxTdGF0ZXMuZGF0YUxvYWRlZCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRpZiAob0ZpbHRlckJhcikge1xuXHRcdFx0XHRcdG9GaWx0ZXJCYXIudHJpZ2dlclNlYXJjaCgpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQgPSB0cnVlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKG9Db250cm9sbGVyLl9oYXNNdWx0aVZpc3VhbGl6YXRpb25zKCkpIHtcblx0XHRcdFx0Y29uc3Qgb0ludGVybmFsTW9kZWxDb250ZXh0ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dDtcblx0XHRcdFx0aWYgKCFzeXN0ZW0uZGVza3RvcCAmJiBvQWRkaXRpb25hbFN0YXRlcy5hbHBDb250ZW50VmlldyA9PSBUZW1wbGF0ZUNvbnRlbnRWaWV3Lkh5YnJpZCkge1xuXHRcdFx0XHRcdG9BZGRpdGlvbmFsU3RhdGVzLmFscENvbnRlbnRWaWV3ID0gVGVtcGxhdGVDb250ZW50Vmlldy5DaGFydDtcblx0XHRcdFx0fVxuXHRcdFx0XHQob0ludGVybmFsTW9kZWxDb250ZXh0LmdldE1vZGVsKCkgYXMgSlNPTk1vZGVsKS5zZXRQcm9wZXJ0eShcblx0XHRcdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UGF0aCgpICsgXCIvYWxwQ29udGVudFZpZXdcIixcblx0XHRcdFx0XHRvQWRkaXRpb25hbFN0YXRlcy5hbHBDb250ZW50Vmlld1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0YXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVyczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYVJlc3VsdHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCk7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnREYXRhID0gb0FwcENvbXBvbmVudC5nZXRDb21wb25lbnREYXRhKCk7XG5cdFx0Y29uc3Qgb1N0YXJ0dXBQYXJhbWV0ZXJzID0gKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRjb25zdCBvVmFyaWFudFByb21pc2UgPSB0aGlzLmhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyhvU3RhcnR1cFBhcmFtZXRlcnMpO1xuXHRcdGxldCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGJvb2xlYW47XG5cdFx0YVJlc3VsdHMucHVzaChcblx0XHRcdG9WYXJpYW50UHJvbWlzZVxuXHRcdFx0XHQudGhlbigoYVZhcmlhbnRzOiBhbnlbXSkgPT4ge1xuXHRcdFx0XHRcdGlmIChhVmFyaWFudHMgJiYgYVZhcmlhbnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGlmIChhVmFyaWFudHNbMF0gPT09IHRydWUgfHwgYVZhcmlhbnRzWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRcdGJGaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9hcHBseVNlbGVjdGlvblZhcmlhbnQob1ZpZXcsIG9OYXZpZ2F0aW9uUGFyYW1ldGVyLCBiRmlsdGVyVmFyaWFudEFwcGxpZWQpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0R5bmFtaWNQYWdlID0gb1ZpZXcuYnlJZChcImZlOjpMaXN0UmVwb3J0XCIpO1xuXHRcdFx0XHRcdFx0bGV0IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0ZpbHRlckJhclZNID0gdGhpcy5fZ2V0RmlsdGVyQmFyVk0ob1ZpZXcpO1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0ZpbHRlckJhckNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdFx0XHRcdFx0aWYgKG9GaWx0ZXJCYXJDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHQob05hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiBvTmF2aWdhdGlvblBhcmFtZXRlci5yZXF1aXJlc1N0YW5kYXJkVmFyaWFudCkgfHxcblx0XHRcdFx0XHRcdFx0XHQoIW9GaWx0ZXJCYXJWTSAmJiBvVmlldy5nZXRWaWV3RGF0YSgpLmluaXRpYWxMb2FkID09PSBJbml0aWFsTG9hZE1vZGUuRW5hYmxlZCkgfHxcblx0XHRcdFx0XHRcdFx0XHRvQ29udHJvbGxlci5fc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2gob0ZpbHRlckJhclZNKVxuXHRcdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0XHRvRmlsdGVyQmFyQ29udHJvbC50cmlnZ2VyU2VhcmNoKCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0YlByZXZlbnRJbml0aWFsU2VhcmNoID0gdGhpcy5fcHJldmVudEluaXRpYWxTZWFyY2gob0ZpbHRlckJhclZNKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyByZXNldCB0aGUgc3VzcGVuZCBzZWxlY3Rpb24gb24gZmlsdGVyIGJhciB0byBhbGxvdyBsb2FkaW5nIG9mIGRhdGEgd2hlbiBuZWVkZWQgKHdhcyBzZXQgb24gTFIgSW5pdClcblx0XHRcdFx0XHRcdFx0b0ZpbHRlckJhckNvbnRyb2wuc2V0U3VzcGVuZFNlbGVjdGlvbihmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQgPSAhYlByZXZlbnRJbml0aWFsU2VhcmNoO1xuXHRcdFx0XHRcdFx0XHRvRHluYW1pY1BhZ2Uuc2V0SGVhZGVyRXhwYW5kZWQoc3lzdGVtLmRlc2t0b3AgfHwgYlByZXZlbnRJbml0aWFsU2VhcmNoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoXCJWYXJpYW50IElEIGNhbm5vdCBiZSBhcHBsaWVkXCIpO1xuXHRcdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0aGFuZGxlVmFyaWFudElkUGFzc2VkVmlhVVJMUGFyYW1zOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBvVXJsUGFyYW1zOiBhbnkpIHtcblx0XHRjb25zdCBhUGFnZVZhcmlhbnRJZCA9IG9VcmxQYXJhbXNbXCJzYXAtdWktZmUtdmFyaWFudC1pZFwiXSxcblx0XHRcdGFGaWx0ZXJCYXJWYXJpYW50SWQgPSBvVXJsUGFyYW1zW1wic2FwLXVpLWZlLWZpbHRlcmJhci12YXJpYW50LWlkXCJdLFxuXHRcdFx0YVRhYmxlVmFyaWFudElkID0gb1VybFBhcmFtc1tcInNhcC11aS1mZS10YWJsZS12YXJpYW50LWlkXCJdO1xuXHRcdGxldCBvVmFyaWFudDtcblx0XHRpZiAoYVBhZ2VWYXJpYW50SWQgfHwgYUZpbHRlckJhclZhcmlhbnRJZCB8fCBhVGFibGVWYXJpYW50SWQpIHtcblx0XHRcdG9WYXJpYW50ID0ge1xuXHRcdFx0XHRzUGFnZVZhcmlhbnRJZDogYVBhZ2VWYXJpYW50SWQgJiYgYVBhZ2VWYXJpYW50SWRbMF0sXG5cdFx0XHRcdHNGaWx0ZXJCYXJWYXJpYW50SWQ6IGFGaWx0ZXJCYXJWYXJpYW50SWQgJiYgYUZpbHRlckJhclZhcmlhbnRJZFswXSxcblx0XHRcdFx0c1RhYmxlVmFyaWFudElkOiBhVGFibGVWYXJpYW50SWQgJiYgYVRhYmxlVmFyaWFudElkWzBdXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5faGFuZGxlQ29udHJvbFZhcmlhbnRJZChvVmFyaWFudCk7XG5cdH0sXG5cblx0X2hhbmRsZUNvbnRyb2xWYXJpYW50SWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG9WYXJpYW50SURzOiBhbnkpIHtcblx0XHRsZXQgb1ZNOiBWYXJpYW50TWFuYWdlbWVudDtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0YVByb21pc2VzOiBhbnlbXSA9IFtdO1xuXHRcdGNvbnN0IHNWYXJpYW50TWFuYWdlbWVudCA9IG9WaWV3LmdldFZpZXdEYXRhKCkudmFyaWFudE1hbmFnZW1lbnQ7XG5cdFx0aWYgKG9WYXJpYW50SURzICYmIG9WYXJpYW50SURzLnNQYWdlVmFyaWFudElkICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJQYWdlXCIpIHtcblx0XHRcdG9WTSA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0b1ZNLmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAob1ZhcmlhbnQua2V5ID09PSBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCkge1xuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKHRoaXMuX2FwcGx5Q29udHJvbFZhcmlhbnQob1ZNLCBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCwgdHJ1ZSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKG9WYXJpYW50SURzICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJDb250cm9sXCIpIHtcblx0XHRcdGlmIChvVmFyaWFudElEcy5zRmlsdGVyQmFyVmFyaWFudElkKSB7XG5cdFx0XHRcdG9WTSA9IG9WaWV3LmJ5SWQob1ZpZXcuZ2V0Q29udGVudCgpWzBdLmRhdGEoXCJmaWx0ZXJCYXJWYXJpYW50SWRcIikpO1xuXHRcdFx0XHRpZiAob1ZNKSB7XG5cdFx0XHRcdFx0b1ZNLmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKG9WYXJpYW50LmtleSA9PT0gb1ZhcmlhbnRJRHMuc0ZpbHRlckJhclZhcmlhbnRJZCkge1xuXHRcdFx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaCh0aGlzLl9hcHBseUNvbnRyb2xWYXJpYW50KG9WTSwgb1ZhcmlhbnRJRHMuc0ZpbHRlckJhclZhcmlhbnRJZCwgdHJ1ZSkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAob1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkKSB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLFxuXHRcdFx0XHRcdGFUYWJsZXMgPSBvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJ0YWJsZVwiKTtcblx0XHRcdFx0YVRhYmxlcy5mb3JFYWNoKChvVGFibGU6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IG9UYWJsZVZhcmlhbnQgPSBvVGFibGUuZ2V0VmFyaWFudCgpO1xuXHRcdFx0XHRcdGlmIChvVGFibGUgJiYgb1RhYmxlVmFyaWFudCkge1xuXHRcdFx0XHRcdFx0b1RhYmxlVmFyaWFudC5nZXRWYXJpYW50cygpLmZvckVhY2goKG9WYXJpYW50OiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKG9WYXJpYW50LmtleSA9PT0gb1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkKSB7XG5cdFx0XHRcdFx0XHRcdFx0YVByb21pc2VzLnB1c2godGhpcy5fYXBwbHlDb250cm9sVmFyaWFudChvVGFibGVWYXJpYW50LCBvVmFyaWFudElEcy5zVGFibGVWYXJpYW50SWQpKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG5cdH0sXG5cblx0X2FwcGx5Q29udHJvbFZhcmlhbnQ6IGZ1bmN0aW9uIChvVmFyaWFudDogYW55LCBzVmFyaWFudElEOiBhbnksIGJGaWx0ZXJWYXJpYW50QXBwbGllZDogYW55KSB7XG5cdFx0Y29uc3Qgc1ZhcmlhbnRSZWZlcmVuY2UgPSB0aGlzLl9jaGVja0lmVmFyaWFudElkSXNBdmFpbGFibGUob1ZhcmlhbnQsIHNWYXJpYW50SUQpID8gc1ZhcmlhbnRJRCA6IG9WYXJpYW50LmdldFN0YW5kYXJkVmFyaWFudEtleSgpO1xuXHRcdGNvbnN0IG9WTSA9IENvbnRyb2xWYXJpYW50QXBwbHlBUEkuYWN0aXZhdGVWYXJpYW50KHtcblx0XHRcdGVsZW1lbnQ6IG9WYXJpYW50LFxuXHRcdFx0dmFyaWFudFJlZmVyZW5jZTogc1ZhcmlhbnRSZWZlcmVuY2Vcblx0XHR9KTtcblx0XHRyZXR1cm4gb1ZNLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGJGaWx0ZXJWYXJpYW50QXBwbGllZDtcblx0XHR9KTtcblx0fSxcblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogcHJpdmF0ZSBoZWxwZXIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0X2dldEZpbHRlckJhclZNOiBmdW5jdGlvbiAob1ZpZXc6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCk7XG5cdFx0c3dpdGNoIChvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQpIHtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLlBhZ2U6XG5cdFx0XHRcdHJldHVybiBvVmlldy5ieUlkKFwiZmU6OlBhZ2VWYXJpYW50TWFuYWdlbWVudFwiKTtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w6XG5cdFx0XHRcdHJldHVybiBvVmlldy5ieUlkKG9WaWV3LmdldENvbnRlbnQoKVswXS5kYXRhKFwiZmlsdGVyQmFyVmFyaWFudElkXCIpKTtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLk5vbmU6XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFwidW5oYW5kbGVkIHZhcmlhbnQgc2V0dGluZzogXCIgKyBvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQpO1xuXHRcdH1cblx0fSxcblxuXHRfcHJldmVudEluaXRpYWxTZWFyY2g6IGZ1bmN0aW9uIChvVmFyaWFudE1hbmFnZW1lbnQ6IGFueSkge1xuXHRcdGlmICghb1ZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgYVZhcmlhbnRzID0gb1ZhcmlhbnRNYW5hZ2VtZW50LmdldFZhcmlhbnRzKCk7XG5cdFx0Y29uc3Qgb0N1cnJlbnRWYXJpYW50ID0gYVZhcmlhbnRzLmZpbmQoZnVuY3Rpb24gKG9JdGVtOiBhbnkpIHtcblx0XHRcdHJldHVybiBvSXRlbS5rZXkgPT09IG9WYXJpYW50TWFuYWdlbWVudC5nZXRDdXJyZW50VmFyaWFudEtleSgpO1xuXHRcdH0pO1xuXHRcdHJldHVybiAhb0N1cnJlbnRWYXJpYW50LmV4ZWN1dGVPblNlbGVjdDtcblx0fSxcblxuXHRfYXBwbHlTZWxlY3Rpb25WYXJpYW50OiBmdW5jdGlvbiAob1ZpZXc6IGFueSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYkZpbHRlclZhcmlhbnRBcHBsaWVkOiBhbnkpIHtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLl9nZXRGaWx0ZXJCYXJDb250cm9sKCksXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudCA9IG9OYXZpZ2F0aW9uUGFyYW1ldGVyLnNlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzID0gb05hdmlnYXRpb25QYXJhbWV0ZXIuc2VsZWN0aW9uVmFyaWFudERlZmF1bHRzO1xuXHRcdGlmICghb0ZpbHRlckJhciB8fCAhb1NlbGVjdGlvblZhcmlhbnQpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cdFx0bGV0IG9Db25kaXRpb25zID0ge307XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IG9WaWV3LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0Y29uc3Qgb1ZpZXdEYXRhID0gb1ZpZXcuZ2V0Vmlld0RhdGEoKTtcblx0XHRjb25zdCBzQ29udGV4dFBhdGggPSBvVmlld0RhdGEuY29udGV4dFBhdGggfHwgXCIvXCIgKyBvVmlld0RhdGEuZW50aXR5U2V0O1xuXHRcdGNvbnN0IGFNYW5kYXRvcnlGaWx0ZXJGaWVsZHMgPSBDb21tb25VdGlscy5nZXRNYW5kYXRvcnlGaWx0ZXJGaWVsZHMob01ldGFNb2RlbCwgc0NvbnRleHRQYXRoKTtcblx0XHRsZXQgb1ZhcmlhbnQ7XG5cdFx0Y29uc3QgYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50ID0gb05hdmlnYXRpb25QYXJhbWV0ZXIucmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ7XG5cblx0XHRpZiAoYkZpbHRlclZhcmlhbnRBcHBsaWVkKSB7XG5cdFx0XHRvQ29uZGl0aW9ucyA9IG9GaWx0ZXJCYXIuZ2V0Q29uZGl0aW9ucygpO1xuXHRcdH1cblx0XHRDb21tb25VdGlscy5hZGREZWZhdWx0RGlzcGxheUN1cnJlbmN5KGFNYW5kYXRvcnlGaWx0ZXJGaWVsZHMsIG9TZWxlY3Rpb25WYXJpYW50LCBvU2VsZWN0aW9uVmFyaWFudERlZmF1bHRzKTtcblx0XHRDb21tb25VdGlscy5hZGRTZWxlY3Rpb25WYXJpYW50VG9Db25kaXRpb25zKG9TZWxlY3Rpb25WYXJpYW50LCBvQ29uZGl0aW9ucywgb01ldGFNb2RlbCwgc0NvbnRleHRQYXRoKTtcblx0XHRzd2l0Y2ggKG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCkge1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudFR5cGUuUGFnZTpcblx0XHRcdFx0b1ZhcmlhbnQgPSBvVmlldy5ieUlkKFwiZmU6OlBhZ2VWYXJpYW50TWFuYWdlbWVudFwiKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5Db250cm9sOlxuXHRcdFx0XHRvVmFyaWFudCA9IG9WaWV3LmJ5SWQob1ZpZXcuZ2V0Q29udGVudCgpWzBdLmRhdGEoXCJmaWx0ZXJCYXJWYXJpYW50SWRcIikpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLk5vbmU6XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2FjdGl2YXRlU2VsZWN0aW9uVmFyaWFudChvRmlsdGVyQmFyLCBvQ29uZGl0aW9ucywgb1ZhcmlhbnQsIGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudCwgYkZpbHRlclZhcmlhbnRBcHBsaWVkKTtcblx0fSxcblx0X2FjdGl2YXRlU2VsZWN0aW9uVmFyaWFudDogZnVuY3Rpb24gKFxuXHRcdG9GaWx0ZXJCYXI6IGFueSxcblx0XHRvQ29uZGl0aW9uczogYW55LFxuXHRcdG9WYXJpYW50OiBhbnksXG5cdFx0YlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50OiBhbnksXG5cdFx0YkZpbHRlclZhcmlhbnRBcHBsaWVkOiBhbnlcblx0KSB7XG5cdFx0bGV0IG9Qcm9taXNlO1xuXG5cdFx0aWYgKG9WYXJpYW50ICYmICFiRmlsdGVyVmFyaWFudEFwcGxpZWQpIHtcblx0XHRcdGxldCBvVmFyaWFudEtleSA9IGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudCA/IG9WYXJpYW50LmdldFN0YW5kYXJkVmFyaWFudEtleSgpIDogb1ZhcmlhbnQuZ2V0RGVmYXVsdFZhcmlhbnRLZXkoKTtcblx0XHRcdGlmIChvVmFyaWFudEtleSA9PT0gbnVsbCkge1xuXHRcdFx0XHRvVmFyaWFudEtleSA9IG9WYXJpYW50LmdldElkKCk7XG5cdFx0XHR9XG5cdFx0XHRvUHJvbWlzZSA9IENvbnRyb2xWYXJpYW50QXBwbHlBUEkuYWN0aXZhdGVWYXJpYW50KHtcblx0XHRcdFx0ZWxlbWVudDogb1ZhcmlhbnQsXG5cdFx0XHRcdHZhcmlhbnRSZWZlcmVuY2U6IG9WYXJpYW50S2V5XG5cdFx0XHR9KS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0cmV0dXJuIGJSZXF1aXJlc1N0YW5kYXJkVmFyaWFudCB8fCBvVmFyaWFudC5nZXREZWZhdWx0VmFyaWFudEtleSgpID09PSBvVmFyaWFudC5nZXRTdGFuZGFyZFZhcmlhbnRLZXkoKTtcblx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh0cnVlKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9Qcm9taXNlLnRoZW4oKGJDbGVhckZpbHRlckFuZFJlcGxhY2VXaXRoQXBwU3RhdGU6IGFueSkgPT4ge1xuXHRcdFx0aWYgKGJDbGVhckZpbHRlckFuZFJlcGxhY2VXaXRoQXBwU3RhdGUpIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuX2ZuQXBwbHlDb25kaXRpb25zKG9GaWx0ZXJCYXIsIG9Db25kaXRpb25zKTtcblx0XHRcdH1cblx0XHR9KTtcblx0fSxcblx0X2ZuQXBwbHlDb25kaXRpb25zOiBmdW5jdGlvbiAob0ZpbHRlckJhcjogYW55LCBvQ29uZGl0aW9uczogYW55KSB7XG5cdFx0Y29uc3QgbUZpbHRlcjogYW55ID0ge30sXG5cdFx0XHRhSXRlbXM6IGFueVtdID0gW10sXG5cdFx0XHRmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbiA9IGZ1bmN0aW9uIChvQ29uZGl0aW9uOiBhbnkpIHtcblx0XHRcdFx0Ly8gaW4gY2FzZSB0aGUgY29uZGl0aW9uIGlzIG1lYW50IGZvciBhIGZpZWxkIGhhdmluZyBhIFZILCB0aGUgZm9ybWF0IHJlcXVpcmVkIGJ5IE1EQyBkaWZmZXJzXG5cdFx0XHRcdG9Db25kaXRpb24udmFsaWRhdGVkID0gQ29uZGl0aW9uVmFsaWRhdGVkLlZhbGlkYXRlZDtcblx0XHRcdFx0aWYgKG9Db25kaXRpb24ub3BlcmF0b3IgPT09IFwiRW1wdHlcIikge1xuXHRcdFx0XHRcdG9Db25kaXRpb24ub3BlcmF0b3IgPSBcIkVRXCI7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi52YWx1ZXMgPSBbXCJcIl07XG5cdFx0XHRcdH0gZWxzZSBpZiAob0NvbmRpdGlvbi5vcGVyYXRvciA9PT0gXCJOb3RFbXB0eVwiKSB7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi5vcGVyYXRvciA9IFwiTkVcIjtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLnZhbHVlcyA9IFtcIlwiXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkZWxldGUgb0NvbmRpdGlvbi5pc0VtcHR5O1xuXHRcdFx0fTtcblx0XHRjb25zdCBmbkdldFByb3BlcnR5SW5mbyA9IGZ1bmN0aW9uIChvRmlsdGVyQ29udHJvbDogYW55LCBzRW50aXR5VHlwZVBhdGg6IGFueSkge1xuXHRcdFx0Y29uc3Qgc0VudGl0eVNldFBhdGggPSBNb2RlbEhlbHBlci5nZXRFbnRpdHlTZXRQYXRoKHNFbnRpdHlUeXBlUGF0aCksXG5cdFx0XHRcdG9NZXRhTW9kZWwgPSBvRmlsdGVyQ29udHJvbC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpLFxuXHRcdFx0XHRvRlIgPSBDb21tb25VdGlscy5nZXRGaWx0ZXJSZXN0cmljdGlvbnNCeVBhdGgoc0VudGl0eVNldFBhdGgsIG9NZXRhTW9kZWwpLFxuXHRcdFx0XHRhTm9uRmlsdGVyYWJsZVByb3BzID0gb0ZSW0ZpbHRlclJlc3RyaWN0aW9ucy5OT05fRklMVEVSQUJMRV9QUk9QRVJUSUVTXSxcblx0XHRcdFx0bUZpbHRlckZpZWxkcyA9IEZpbHRlclV0aWxzLmdldENvbnZlcnRlZEZpbHRlckZpZWxkcyhvRmlsdGVyQ29udHJvbCwgc0VudGl0eVR5cGVQYXRoKSxcblx0XHRcdFx0YVByb3BlcnR5SW5mbzogYW55W10gPSBbXTtcblx0XHRcdE9iamVjdC5rZXlzKG1GaWx0ZXJGaWVsZHMpLmZvckVhY2goZnVuY3Rpb24gKHNGaWx0ZXJGaWVsZEtleTogc3RyaW5nKSB7XG5cdFx0XHRcdGNvbnN0IG9Db252ZXJ0ZWRQcm9wZXJ0eSA9IG1GaWx0ZXJGaWVsZHNbc0ZpbHRlckZpZWxkS2V5XTtcblx0XHRcdFx0Y29uc3Qgc1Byb3BlcnR5UGF0aCA9IG9Db252ZXJ0ZWRQcm9wZXJ0eS5jb25kaXRpb25QYXRoLnJlcGxhY2UoQ09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCwgXCJcIik7XG5cdFx0XHRcdGlmIChhTm9uRmlsdGVyYWJsZVByb3BzLmluZGV4T2Yoc1Byb3BlcnR5UGF0aCkgPT09IC0xKSB7XG5cdFx0XHRcdFx0Y29uc3Qgc0Fubm90YXRpb25QYXRoID0gb0NvbnZlcnRlZFByb3BlcnR5LmFubm90YXRpb25QYXRoO1xuXHRcdFx0XHRcdGNvbnN0IG9Qcm9wZXJ0eUNvbnRleHQgPSBvTWV0YU1vZGVsLmNyZWF0ZUJpbmRpbmdDb250ZXh0KHNBbm5vdGF0aW9uUGF0aCk7XG5cdFx0XHRcdFx0YVByb3BlcnR5SW5mby5wdXNoKHtcblx0XHRcdFx0XHRcdHBhdGg6IG9Db252ZXJ0ZWRQcm9wZXJ0eS5jb25kaXRpb25QYXRoLFxuXHRcdFx0XHRcdFx0aGlkZGVuRmlsdGVyOiBvQ29udmVydGVkUHJvcGVydHkuYXZhaWxhYmlsaXR5ID09PSBcIkhpZGRlblwiLFxuXHRcdFx0XHRcdFx0aGFzVmFsdWVIZWxwOiAhc0Fubm90YXRpb25QYXRoXG5cdFx0XHRcdFx0XHRcdD8gZmFsc2Vcblx0XHRcdFx0XHRcdFx0OiBQcm9wZXJ0eUZvcm1hdHRlcnMuaGFzVmFsdWVIZWxwKG9Qcm9wZXJ0eUNvbnRleHQuZ2V0T2JqZWN0KCksIHsgY29udGV4dDogb1Byb3BlcnR5Q29udGV4dCB9KVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gYVByb3BlcnR5SW5mbztcblx0XHR9O1xuXHRcdHJldHVybiBvRmlsdGVyQmFyLndhaXRGb3JJbml0aWFsaXphdGlvbigpLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0Y29uc3Qgc0VudGl0eVR5cGVQYXRoID0gRGVsZWdhdGVVdGlsLmdldEN1c3RvbURhdGEob0ZpbHRlckJhciwgXCJlbnRpdHlUeXBlXCIpO1xuXHRcdFx0Y29uc3QgYVByb3BlcnR5SW5mbyA9IGZuR2V0UHJvcGVydHlJbmZvKG9GaWx0ZXJCYXIsIHNFbnRpdHlUeXBlUGF0aCk7XG5cdFx0XHRhUHJvcGVydHlJbmZvXG5cdFx0XHRcdC5maWx0ZXIoZnVuY3Rpb24gKG9Qcm9wZXJ0eUluZm86IGFueSkge1xuXHRcdFx0XHRcdHJldHVybiBvUHJvcGVydHlJbmZvLnBhdGggIT09IFwiJGVkaXRTdGF0ZVwiICYmIG9Qcm9wZXJ0eUluZm8ucGF0aCAhPT0gXCIkc2VhcmNoXCI7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5mb3JFYWNoKGZ1bmN0aW9uIChvUHJvcGVydHlJbmZvOiBhbnkpIHtcblx0XHRcdFx0XHRpZiAob1Byb3BlcnR5SW5mby5wYXRoIGluIG9Db25kaXRpb25zKSB7XG5cdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0gPSBvQ29uZGl0aW9uc1tvUHJvcGVydHlJbmZvLnBhdGhdO1xuXHRcdFx0XHRcdFx0aWYgKCFvUHJvcGVydHlJbmZvLmhpZGRlbkZpbHRlcikge1xuXHRcdFx0XHRcdFx0XHRhSXRlbXMucHVzaCh7IG5hbWU6IG9Qcm9wZXJ0eUluZm8ucGF0aCB9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdGlmIChvUHJvcGVydHlJbmZvLmhhc1ZhbHVlSGVscCkge1xuXHRcdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0uZm9yRWFjaChmbkFkanVzdFZhbHVlSGVscENvbmRpdGlvbik7XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRtRmlsdGVyW29Qcm9wZXJ0eUluZm8ucGF0aF0uZm9yRWFjaChmdW5jdGlvbiAob0NvbmRpdGlvbjogYW55KSB7XG5cdFx0XHRcdFx0XHRcdFx0b0NvbmRpdGlvbi52YWxpZGF0ZWQgPSBDb25kaXRpb25WYWxpZGF0ZWQuTm90VmFsaWRhdGVkO1xuXHRcdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0bUZpbHRlcltvUHJvcGVydHlJbmZvLnBhdGhdID0gW107XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdHJldHVybiBTdGF0ZVV0aWwuYXBwbHlFeHRlcm5hbFN0YXRlKG9GaWx0ZXJCYXIsIHsgZmlsdGVyOiBtRmlsdGVyLCBpdGVtczogYUl0ZW1zIH0pO1xuXHRcdH0pO1xuXHR9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBWaWV3U3RhdGVPdmVycmlkZTtcbiJdfQ==
453
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlZpZXdTdGF0ZS50cyJdLCJuYW1lcyI6WyJOYXZUeXBlIiwiTmF2TGlicmFyeSIsIlZhcmlhbnRNYW5hZ2VtZW50VHlwZSIsIkNvcmVMaWJyYXJ5IiwiVmFyaWFudE1hbmFnZW1lbnQiLCJUZW1wbGF0ZUNvbnRlbnRWaWV3IiwiSW5pdGlhbExvYWRNb2RlIiwiRmlsdGVyUmVzdHJpY3Rpb25zIiwiQ29tbW9uVXRpbHMiLCJDT05ESVRJT05fUEFUSF9UT19QUk9QRVJUWV9QQVRIX1JFR0VYIiwiVmlld1N0YXRlT3ZlcnJpZGUiLCJfYlNlYXJjaFRyaWdnZXJlZCIsImFwcGx5SW5pdGlhbFN0YXRlT25seSIsIm9uQmVmb3JlU3RhdGVBcHBsaWVkIiwiYVByb21pc2VzIiwib1ZpZXciLCJnZXRWaWV3Iiwib0NvbnRyb2xsZXIiLCJnZXRDb250cm9sbGVyIiwib0ZpbHRlckJhciIsIl9nZXRGaWx0ZXJCYXJDb250cm9sIiwiYVRhYmxlcyIsIl9nZXRDb250cm9scyIsInNldFN1c3BlbmRTZWxlY3Rpb24iLCJwdXNoIiwid2FpdEZvckluaXRpYWxpemF0aW9uIiwiZm9yRWFjaCIsIm9UYWJsZSIsImluaXRpYWxpemVkIiwib25BZnRlclN0YXRlQXBwbGllZCIsIl9pc0ZpbHRlckJhckhpZGRlbiIsIm9JbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiYUNvbnRyb2xzIiwic2V0UHJvcGVydHkiLCJfaXNNdWx0aU1vZGUiLCJfc2V0Q291bnRzT3V0RGF0ZWQiLCJzRGlzcGxheWVkQ29udHJvbElkIiwiX2dldEN1cnJlbnRDb250cm9sIiwiZ2V0SWQiLCJvQ29udHJvbCIsImRhdGEiLCJhZGFwdEJpbmRpbmdSZWZyZXNoQ29udHJvbHMiLCJhVmlld0NvbnRyb2xzIiwiYUNvbnRyb2xzVG9SZWZyZXNoIiwiS2VlcEFsaXZlSGVscGVyIiwiZ2V0Q29udHJvbHNGb3JSZWZyZXNoIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJhcHBseSIsImFkYXB0U3RhdGVDb250cm9scyIsImFTdGF0ZUNvbnRyb2xzIiwib1ZpZXdEYXRhIiwiZ2V0Vmlld0RhdGEiLCJiQ29udHJvbFZNIiwidmFyaWFudE1hbmFnZW1lbnQiLCJDb250cm9sIiwib0ZpbHRlckJhclZNIiwiX2dldEZpbHRlckJhclZNIiwiX2dldE11bHRpTW9kZUNvbnRyb2wiLCJvUXVpY2tGaWx0ZXIiLCJnZXRRdWlja0ZpbHRlciIsImdldFZhcmlhbnQiLCJvQ2hhcnQiLCJfaGFzTXVsdGlWaXN1YWxpemF0aW9ucyIsIl9nZXRTZWdtZW50ZWRCdXR0b24iLCJDaGFydCIsIlRhYmxlIiwiYnlJZCIsInJldHJpZXZlQWRkaXRpb25hbFN0YXRlcyIsIm1BZGRpdGlvbmFsU3RhdGVzIiwiYlBlbmRpbmdGaWx0ZXIiLCJnZXRQcm9wZXJ0eSIsImRhdGFMb2FkZWQiLCJzQWxwQ29udGVudFZpZXciLCJhbHBDb250ZW50VmlldyIsImFwcGx5QWRkaXRpb25hbFN0YXRlcyIsIm9BZGRpdGlvbmFsU3RhdGVzIiwidHJpZ2dlclNlYXJjaCIsInN5c3RlbSIsImRlc2t0b3AiLCJIeWJyaWQiLCJnZXRNb2RlbCIsImdldFBhdGgiLCJhcHBseU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwib05hdmlnYXRpb25QYXJhbWV0ZXIiLCJhUmVzdWx0cyIsIm9BcHBDb21wb25lbnQiLCJnZXRBcHBDb21wb25lbnQiLCJvQ29tcG9uZW50RGF0YSIsImdldENvbXBvbmVudERhdGEiLCJvU3RhcnR1cFBhcmFtZXRlcnMiLCJzdGFydHVwUGFyYW1ldGVycyIsIm9WYXJpYW50UHJvbWlzZSIsImhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyIsImJGaWx0ZXJWYXJpYW50QXBwbGllZCIsInRoZW4iLCJhVmFyaWFudHMiLCJsZW5ndGgiLCJfYXBwbHlTZWxlY3Rpb25WYXJpYW50Iiwib0R5bmFtaWNQYWdlIiwiYlByZXZlbnRJbml0aWFsU2VhcmNoIiwib0ZpbHRlckJhckNvbnRyb2wiLCJuYXZpZ2F0aW9uVHlwZSIsImluaXRpYWwiLCJyZXF1aXJlc1N0YW5kYXJkVmFyaWFudCIsImluaXRpYWxMb2FkIiwiRW5hYmxlZCIsIl9zaG91bGRBdXRvVHJpZ2dlclNlYXJjaCIsIl9wcmV2ZW50SW5pdGlhbFNlYXJjaCIsInNldEhlYWRlckV4cGFuZGVkIiwiY2F0Y2giLCJMb2ciLCJlcnJvciIsIm9VcmxQYXJhbXMiLCJhUGFnZVZhcmlhbnRJZCIsImFGaWx0ZXJCYXJWYXJpYW50SWQiLCJhVGFibGVWYXJpYW50SWQiLCJvVmFyaWFudCIsInNQYWdlVmFyaWFudElkIiwic0ZpbHRlckJhclZhcmlhbnRJZCIsInNUYWJsZVZhcmlhbnRJZCIsIl9oYW5kbGVDb250cm9sVmFyaWFudElkIiwib1ZhcmlhbnRJRHMiLCJvVk0iLCJzVmFyaWFudE1hbmFnZW1lbnQiLCJnZXRWYXJpYW50cyIsImtleSIsIl9hcHBseUNvbnRyb2xWYXJpYW50IiwiZ2V0Q29udGVudCIsIm9UYWJsZVZhcmlhbnQiLCJQcm9taXNlIiwiYWxsIiwic1ZhcmlhbnRJRCIsInNWYXJpYW50UmVmZXJlbmNlIiwiX2NoZWNrSWZWYXJpYW50SWRJc0F2YWlsYWJsZSIsImdldFN0YW5kYXJkVmFyaWFudEtleSIsIkNvbnRyb2xWYXJpYW50QXBwbHlBUEkiLCJhY3RpdmF0ZVZhcmlhbnQiLCJlbGVtZW50IiwidmFyaWFudFJlZmVyZW5jZSIsIlBhZ2UiLCJOb25lIiwiRXJyb3IiLCJvVmFyaWFudE1hbmFnZW1lbnQiLCJvQ3VycmVudFZhcmlhbnQiLCJmaW5kIiwib0l0ZW0iLCJnZXRDdXJyZW50VmFyaWFudEtleSIsImV4ZWN1dGVPblNlbGVjdCIsIm9TZWxlY3Rpb25WYXJpYW50Iiwic2VsZWN0aW9uVmFyaWFudCIsIm9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJyZXNvbHZlIiwib0NvbmRpdGlvbnMiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwic0NvbnRleHRQYXRoIiwiY29udGV4dFBhdGgiLCJlbnRpdHlTZXQiLCJhTWFuZGF0b3J5RmlsdGVyRmllbGRzIiwiZ2V0TWFuZGF0b3J5RmlsdGVyRmllbGRzIiwiYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiZ2V0Q29uZGl0aW9ucyIsImFkZERlZmF1bHREaXNwbGF5Q3VycmVuY3kiLCJhZGRTZWxlY3Rpb25WYXJpYW50VG9Db25kaXRpb25zIiwiX2FjdGl2YXRlU2VsZWN0aW9uVmFyaWFudCIsIm9Qcm9taXNlIiwib1ZhcmlhbnRLZXkiLCJnZXREZWZhdWx0VmFyaWFudEtleSIsImJDbGVhckZpbHRlckFuZFJlcGxhY2VXaXRoQXBwU3RhdGUiLCJfZm5BcHBseUNvbmRpdGlvbnMiLCJtRmlsdGVyIiwiYUl0ZW1zIiwiZm5BZGp1c3RWYWx1ZUhlbHBDb25kaXRpb24iLCJvQ29uZGl0aW9uIiwidmFsaWRhdGVkIiwiQ29uZGl0aW9uVmFsaWRhdGVkIiwiVmFsaWRhdGVkIiwib3BlcmF0b3IiLCJ2YWx1ZXMiLCJpc0VtcHR5IiwiZm5HZXRQcm9wZXJ0eUluZm8iLCJvRmlsdGVyQ29udHJvbCIsInNFbnRpdHlUeXBlUGF0aCIsInNFbnRpdHlTZXRQYXRoIiwiTW9kZWxIZWxwZXIiLCJnZXRFbnRpdHlTZXRQYXRoIiwib0ZSIiwiZ2V0RmlsdGVyUmVzdHJpY3Rpb25zQnlQYXRoIiwiYU5vbkZpbHRlcmFibGVQcm9wcyIsIk5PTl9GSUxURVJBQkxFX1BST1BFUlRJRVMiLCJtRmlsdGVyRmllbGRzIiwiRmlsdGVyVXRpbHMiLCJnZXRDb252ZXJ0ZWRGaWx0ZXJGaWVsZHMiLCJhUHJvcGVydHlJbmZvIiwiT2JqZWN0Iiwia2V5cyIsInNGaWx0ZXJGaWVsZEtleSIsIm9Db252ZXJ0ZWRQcm9wZXJ0eSIsInNQcm9wZXJ0eVBhdGgiLCJjb25kaXRpb25QYXRoIiwicmVwbGFjZSIsImluZGV4T2YiLCJzQW5ub3RhdGlvblBhdGgiLCJhbm5vdGF0aW9uUGF0aCIsIm9Qcm9wZXJ0eUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInBhdGgiLCJoaWRkZW5GaWx0ZXIiLCJhdmFpbGFiaWxpdHkiLCJoYXNWYWx1ZUhlbHAiLCJQcm9wZXJ0eUZvcm1hdHRlcnMiLCJnZXRPYmplY3QiLCJjb250ZXh0IiwiRGVsZWdhdGVVdGlsIiwiZ2V0Q3VzdG9tRGF0YSIsImZpbHRlciIsIm9Qcm9wZXJ0eUluZm8iLCJuYW1lIiwiTm90VmFsaWRhdGVkIiwiU3RhdGVVdGlsIiwiYXBwbHlFeHRlcm5hbFN0YXRlIiwiaXRlbXMiXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7Ozs7OztBQWlCQSxNQUFNQSxPQUFPLEdBQUdDLFVBQVUsQ0FBQ0QsT0FBM0I7QUFBQSxNQUNDRSxxQkFBcUIsR0FBR0MsV0FBVyxDQUFDQyxpQkFEckM7QUFBQSxNQUVDQyxtQkFBbUIsR0FBR0YsV0FBVyxDQUFDRSxtQkFGbkM7QUFBQSxNQUdDQyxlQUFlLEdBQUdILFdBQVcsQ0FBQ0csZUFIL0I7QUFJQSxNQUFNQyxrQkFBa0IsR0FBR0MsV0FBVyxDQUFDRCxrQkFBdkM7QUFBQSxNQUNDRSxxQ0FBcUMsR0FBRyxRQUR6QztBQUdBLE1BQU1DLGlCQUFzQixHQUFHO0FBQzlCQyxJQUFBQSxpQkFBaUIsRUFBRSxLQURXO0FBRTlCQyxJQUFBQSxxQkFBcUIsRUFBRSxZQUFZO0FBQ2xDLGFBQU8sSUFBUDtBQUNBLEtBSjZCO0FBSzlCQyxJQUFBQSxvQkFBb0IsRUFBRSxVQUFzREMsU0FBdEQsRUFBc0U7QUFDM0YsVUFBTUMsS0FBSyxHQUFHLEtBQUtDLE9BQUwsRUFBZDtBQUFBLFVBQ0NDLFdBQVcsR0FBR0YsS0FBSyxDQUFDRyxhQUFOLEVBRGY7QUFBQSxVQUVDQyxVQUFVLEdBQUdGLFdBQVcsQ0FBQ0csb0JBQVosRUFGZDtBQUFBLFVBR0NDLE9BQU8sR0FBR0osV0FBVyxDQUFDSyxZQUFaLENBQXlCLE9BQXpCLENBSFg7O0FBSUEsVUFBSUgsVUFBSixFQUFnQjtBQUNmQSxRQUFBQSxVQUFVLENBQUNJLG1CQUFYLENBQStCLElBQS9CO0FBQ0FULFFBQUFBLFNBQVMsQ0FBQ1UsSUFBVixDQUFnQkwsVUFB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QWEsQ0FBQ1YsSUFBZixDQUFQLENBQTRCdkwsT0FBNUIsQ0FBb0NxSiwwQkFBcEM7QUFDQSxhQUZELE1BRU87QUFDTkYsY0FBQUEsT0FBTyxDQUFDOEMsYUFBYSxDQUFDVixJQUFmLENBQVAsQ0FBNEJ2TCxPQUE1QixDQUFvQyxVQUFVc0osVUFBVixFQUEyQjtBQUM5REEsZ0JBQUFBLFVBQVUsQ0FBQ0MsU0FBWCxHQUF1QkMsa0JBQWtCLENBQUMyQyxZQUExQztBQUNBLGVBRkQ7QUFHQTtBQUNELFdBWkQsTUFZTztBQUNOaEQsWUFBQUEsT0FBTyxDQUFDOEMsYUFBYSxDQUFDVixJQUFmLENBQVAsR0FBOEIsRUFBOUI7QUFDQTtBQUNELFNBcEJGO0FBcUJBLGVBQU9hLFNBQVMsQ0FBQ0Msa0JBQVYsQ0FBNkI1TSxVQUE3QixFQUF5QztBQUFFdU0sVUFBQUEsTUFBTSxFQUFFN0MsT0FBVjtBQUFtQm1ELFVBQUFBLEtBQUssRUFBRWxEO0FBQTFCLFNBQXpDLENBQVA7QUFDQSxPQXpCTSxDQUFQO0FBMEJBO0FBclk2QixHQUEvQjtTQXdZZXBLLGlCIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB0eXBlIFZpZXdTdGF0ZSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvVmlld1N0YXRlXCI7XG5pbXBvcnQgS2VlcEFsaXZlSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0tlZXBBbGl2ZUhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBJbnRlcm5hbE1vZGVsQ29udGV4dCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgTW9kZWxIZWxwZXIgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCBDb3JlTGlicmFyeSBmcm9tIFwic2FwL2ZlL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0ICogYXMgUHJvcGVydHlGb3JtYXR0ZXJzIGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL1Byb3BlcnR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IERlbGVnYXRlVXRpbCBmcm9tIFwic2FwL2ZlL21hY3Jvcy9EZWxlZ2F0ZVV0aWxcIjtcbmltcG9ydCBGaWx0ZXJVdGlscyBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWx0ZXIvRmlsdGVyVXRpbHNcIjtcbmltcG9ydCBOYXZMaWJyYXJ5IGZyb20gXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBMaXN0UmVwb3J0Q29udHJvbGxlciBmcm9tIFwic2FwL2ZlL3RlbXBsYXRlcy9MaXN0UmVwb3J0L0xpc3RSZXBvcnRDb250cm9sbGVyLmNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IHN5c3RlbSB9IGZyb20gXCJzYXAvdWkvRGV2aWNlXCI7XG5pbXBvcnQgQ29udHJvbFZhcmlhbnRBcHBseUFQSSBmcm9tIFwic2FwL3VpL2ZsL2FwcGx5L2FwaS9Db250cm9sVmFyaWFudEFwcGx5QVBJXCI7XG5pbXBvcnQgdHlwZSBWYXJpYW50TWFuYWdlbWVudCBmcm9tIFwic2FwL3VpL2ZsL3ZhcmlhbnRzL1ZhcmlhbnRNYW5hZ2VtZW50XCI7XG5pbXBvcnQgQ29uZGl0aW9uVmFsaWRhdGVkIGZyb20gXCJzYXAvdWkvbWRjL2VudW0vQ29uZGl0aW9uVmFsaWRhdGVkXCI7XG5pbXBvcnQgU3RhdGVVdGlsIGZyb20gXCJzYXAvdWkvbWRjL3AxM24vU3RhdGVVdGlsXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuXG5jb25zdCBOYXZUeXBlID0gTmF2TGlicmFyeS5OYXZUeXBlLFxuXHRWYXJpYW50TWFuYWdlbWVudFR5cGUgPSBDb3JlTGlicmFyeS5WYXJpYW50TWFuYWdlbWVudCxcblx0VGVtcGxhdGVDb250ZW50VmlldyA9IENvcmVMaWJyYXJ5LlRlbXBsYXRlQ29udGVudFZpZXcsXG5cdEluaXRpYWxMb2FkTW9kZSA9IENvcmVMaWJyYXJ5LkluaXRpYWxMb2FkTW9kZTtcbmNvbnN0IEZpbHRlclJlc3RyaWN0aW9ucyA9IENvbW1vblV0aWxzLkZpbHRlclJlc3RyaWN0aW9ucyxcblx0Q09ORElUSU9OX1BBVEhfVE9fUFJPUEVSVFlfUEFUSF9SRUdFWCA9IC9cXCt8XFwqL2c7XG5cbmNvbnN0IFZpZXdTdGF0ZU92ZXJyaWRlOiBhbnkgPSB7XG5cdF9iU2VhcmNoVHJpZ2dlcmVkOiBmYWxzZSxcblx0YXBwbHlJbml0aWFsU3RhdGVPbmx5OiBmdW5jdGlvbiAoKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH0sXG5cdG9uQmVmb3JlU3RhdGVBcHBsaWVkOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBhUHJvbWlzZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpLFxuXHRcdFx0YVRhYmxlcyA9IG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRvRmlsdGVyQmFyLnNldFN1c3BlbmRTZWxlY3Rpb24odHJ1ZSk7XG5cdFx0XHRhUHJvbWlzZXMucHVzaCgob0ZpbHRlckJhciBhcyBhbnkpLndhaXRGb3JJbml0aWFsaXphdGlvbigpKTtcblx0XHR9XG5cdFx0YVRhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uIChvVGFibGU6IGFueSkge1xuXHRcdFx0YVByb21pc2VzLnB1c2gob1RhYmxlLmluaXRpYWxpemVkKCkpO1xuXHRcdH0pO1xuXG5cdFx0ZGVsZXRlIHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdH0sXG5cdG9uQWZ0ZXJTdGF0ZUFwcGxpZWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUpIHtcblx0XHRjb25zdCBvQ29udHJvbGxlciA9IHRoaXMuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcjtcblx0XHRjb25zdCBvRmlsdGVyQmFyID0gb0NvbnRyb2xsZXIuX2dldEZpbHRlckJhckNvbnRyb2woKTtcblx0XHRpZiAob0ZpbHRlckJhcikge1xuXHRcdFx0b0ZpbHRlckJhci5zZXRTdXNwZW5kU2VsZWN0aW9uKGZhbHNlKTtcblx0XHR9IGVsc2UgaWYgKG9Db250cm9sbGVyLl9pc0ZpbHRlckJhckhpZGRlbigpKSB7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvQ29udHJvbGxlci5nZXRWaWV3KCkuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKSBhcyBJbnRlcm5hbE1vZGVsQ29udGV4dCxcblx0XHRcdFx0YUNvbnRyb2xzID0gb0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKCk7XG5cdFx0XHRvSW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJoYXNQZW5kaW5nRmlsdGVyc1wiLCBmYWxzZSk7XG5cdFx0XHRpZiAob0NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkpIHtcblx0XHRcdFx0b0NvbnRyb2xsZXIuX3NldENvdW50c091dERhdGVkKCk7XG5cdFx0XHRcdGNvbnN0IHNEaXNwbGF5ZWRDb250cm9sSWQgPSBvQ29udHJvbGxlci5fZ2V0Q3VycmVudENvbnRyb2woKS5nZXRJZCgpO1xuXHRcdFx0XHRhQ29udHJvbHMuZm9yRWFjaChmdW5jdGlvbiAob0NvbnRyb2w6IGFueSkge1xuXHRcdFx0XHRcdG9Db250cm9sLmRhdGEoXCJvdXRkYXRlZFJvd3NcIiwgb0NvbnRyb2wuZ2V0SWQoKSAhPT0gc0Rpc3BsYXllZENvbnRyb2xJZCk7XG5cdFx0XHRcdH0pO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0YWRhcHRCaW5kaW5nUmVmcmVzaENvbnRyb2xzOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlLCBhQ29udHJvbHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdGFWaWV3Q29udHJvbHMgPSBvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoKSxcblx0XHRcdGFDb250cm9sc1RvUmVmcmVzaCA9IEtlZXBBbGl2ZUhlbHBlci5nZXRDb250cm9sc0ZvclJlZnJlc2gob1ZpZXcsIGFWaWV3Q29udHJvbHMpO1xuXG5cdFx0QXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoYUNvbnRyb2xzLCBhQ29udHJvbHNUb1JlZnJlc2gpO1xuXHR9LFxuXHRhZGFwdFN0YXRlQ29udHJvbHM6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIGFTdGF0ZUNvbnRyb2xzOiBhbnkpIHtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0b0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXIsXG5cdFx0XHRvVmlld0RhdGEgPSBvVmlldy5nZXRWaWV3RGF0YSgpLFxuXHRcdFx0YkNvbnRyb2xWTSA9IG9WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudCA9PT0gVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w7XG5cblx0XHRjb25zdCBvRmlsdGVyQmFyVk0gPSB0aGlzLl9nZXRGaWx0ZXJCYXJWTShvVmlldyk7XG5cdFx0aWYgKG9GaWx0ZXJCYXJWTSkge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvRmlsdGVyQmFyVk0pO1xuXHRcdH1cblx0XHRpZiAob0NvbnRyb2xsZXIuX2lzTXVsdGlNb2RlKCkpIHtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NvbnRyb2xsZXIuX2dldE11bHRpTW9kZUNvbnRyb2woKSk7XG5cdFx0fVxuXHRcdG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcInRhYmxlXCIpLmZvckVhY2goZnVuY3Rpb24gKG9UYWJsZTogYW55KSB7XG5cdFx0XHRjb25zdCBvUXVpY2tGaWx0ZXIgPSBvVGFibGUuZ2V0UXVpY2tGaWx0ZXIoKTtcblx0XHRcdGlmIChvUXVpY2tGaWx0ZXIpIHtcblx0XHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvUXVpY2tGaWx0ZXIpO1xuXHRcdFx0fVxuXHRcdFx0aWYgKGJDb250cm9sVk0pIHtcblx0XHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvVGFibGUuZ2V0VmFyaWFudCgpKTtcblx0XHRcdH1cblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob1RhYmxlKTtcblx0XHR9KTtcblx0XHRpZiAob0NvbnRyb2xsZXIuX2dldENvbnRyb2xzKFwiQ2hhcnRcIikpIHtcblx0XHRcdG9Db250cm9sbGVyLl9nZXRDb250cm9scyhcIkNoYXJ0XCIpLmZvckVhY2goZnVuY3Rpb24gKG9DaGFydDogYW55KSB7XG5cdFx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NoYXJ0KTtcblx0XHRcdH0pO1xuXHRcdH1cblx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0YVN0YXRlQ29udHJvbHMucHVzaChvQ29udHJvbGxlci5fZ2V0U2VnbWVudGVkQnV0dG9uKFRlbXBsYXRlQ29udGVudFZpZXcuQ2hhcnQpKTtcblx0XHRcdGFTdGF0ZUNvbnRyb2xzLnB1c2gob0NvbnRyb2xsZXIuX2dldFNlZ21lbnRlZEJ1dHRvbihUZW1wbGF0ZUNvbnRlbnRWaWV3LlRhYmxlKSk7XG5cdFx0fVxuXHRcdGNvbnN0IG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9GaWx0ZXJCYXIpO1xuXHRcdH1cblx0XHRhU3RhdGVDb250cm9scy5wdXNoKG9WaWV3LmJ5SWQoXCJmZTo6TGlzdFJlcG9ydFwiKSk7XG5cdH0sXG5cdHJldHJpZXZlQWRkaXRpb25hbFN0YXRlczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgbUFkZGl0aW9uYWxTdGF0ZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdGJQZW5kaW5nRmlsdGVyID0gKG9WaWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpLmdldFByb3BlcnR5KFwiaGFzUGVuZGluZ0ZpbHRlcnNcIik7XG5cblx0XHRtQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID0gIWJQZW5kaW5nRmlsdGVyIHx8ICEhdGhpcy5fYlNlYXJjaFRyaWdnZXJlZDtcblx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0Y29uc3Qgc0FscENvbnRlbnRWaWV3ID0gb1ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoXCJpbnRlcm5hbFwiKS5nZXRQcm9wZXJ0eShcImFscENvbnRlbnRWaWV3XCIpO1xuXHRcdFx0bUFkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPSBzQWxwQ29udGVudFZpZXc7XG5cdFx0fVxuXG5cdFx0ZGVsZXRlIHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQ7XG5cdH0sXG5cdGFwcGx5QWRkaXRpb25hbFN0YXRlczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb0FkZGl0aW9uYWxTdGF0ZXM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCksXG5cdFx0XHRvQ29udHJvbGxlciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKSBhcyBMaXN0UmVwb3J0Q29udHJvbGxlcixcblx0XHRcdG9GaWx0ZXJCYXIgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXG5cdFx0aWYgKG9BZGRpdGlvbmFsU3RhdGVzKSB7XG5cdFx0XHQvLyBleHBsaWNpdCBjaGVjayBmb3IgYm9vbGVhbiB2YWx1ZXMgLSAndW5kZWZpbmVkJyBzaG91bGQgbm90IGFsdGVyIHRoZSB0cmlnZ2VyZWQgc2VhcmNoIHByb3BlcnR5XG5cdFx0XHRpZiAob0FkZGl0aW9uYWxTdGF0ZXMuZGF0YUxvYWRlZCA9PT0gZmFsc2UgJiYgb0ZpbHRlckJhcikge1xuXHRcdFx0XHQvLyB3aXRob3V0IHRoaXMsIHRoZSBkYXRhIGlzIGxvYWRlZCBvbiBuYXZpZ2F0aW5nIGJhY2tcblx0XHRcdFx0KG9GaWx0ZXJCYXIgYXMgYW55KS5fYlNlYXJjaFRyaWdnZXJlZCA9IGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmIChvQWRkaXRpb25hbFN0YXRlcy5kYXRhTG9hZGVkID09PSB0cnVlKSB7XG5cdFx0XHRcdGlmIChvRmlsdGVyQmFyKSB7XG5cdFx0XHRcdFx0b0ZpbHRlckJhci50cmlnZ2VyU2VhcmNoKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0dGhpcy5fYlNlYXJjaFRyaWdnZXJlZCA9IHRydWU7XG5cdFx0XHR9XG5cdFx0XHRpZiAob0NvbnRyb2xsZXIuX2hhc011bHRpVmlzdWFsaXphdGlvbnMoKSkge1xuXHRcdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbENvbnRleHQgPSBvVmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0O1xuXHRcdFx0XHRpZiAoIXN5c3RlbS5kZXNrdG9wICYmIG9BZGRpdGlvbmFsU3RhdGVzLmFscENvbnRlbnRWaWV3ID09IFRlbXBsYXRlQ29udGVudFZpZXcuSHlicmlkKSB7XG5cdFx0XHRcdFx0b0FkZGl0aW9uYWxTdGF0ZXMuYWxwQ29udGVudFZpZXcgPSBUZW1wbGF0ZUNvbnRlbnRWaWV3LkNoYXJ0O1xuXHRcdFx0XHR9XG5cdFx0XHRcdChvSW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0TW9kZWwoKSBhcyBKU09OTW9kZWwpLnNldFByb3BlcnR5KFxuXHRcdFx0XHRcdGAke29JbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQYXRoKCl9L2FscENvbnRlbnRWaWV3YCxcblx0XHRcdFx0XHRvQWRkaXRpb25hbFN0YXRlcy5hbHBDb250ZW50Vmlld1xuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0YXBwbHlOYXZpZ2F0aW9uUGFyYW1ldGVyczogZnVuY3Rpb24gKHRoaXM6IFZpZXdTdGF0ZSAmIHR5cGVvZiBWaWV3U3RhdGVPdmVycmlkZSwgb05hdmlnYXRpb25QYXJhbWV0ZXI6IGFueSwgYVJlc3VsdHM6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3ID0gdGhpcy5nZXRWaWV3KCk7XG5cdFx0Y29uc3Qgb0NvbnRyb2xsZXIgPSBvVmlldy5nZXRDb250cm9sbGVyKCkgYXMgTGlzdFJlcG9ydENvbnRyb2xsZXI7XG5cdFx0Y29uc3Qgb0FwcENvbXBvbmVudCA9IG9Db250cm9sbGVyLmdldEFwcENvbXBvbmVudCgpO1xuXHRcdGNvbnN0IG9Db21wb25lbnREYXRhID0gb0FwcENvbXBvbmVudC5nZXRDb21wb25lbnREYXRhKCk7XG5cdFx0Y29uc3Qgb1N0YXJ0dXBQYXJhbWV0ZXJzID0gKG9Db21wb25lbnREYXRhICYmIG9Db21wb25lbnREYXRhLnN0YXJ0dXBQYXJhbWV0ZXJzKSB8fCB7fTtcblx0XHRjb25zdCBvVmFyaWFudFByb21pc2UgPSB0aGlzLmhhbmRsZVZhcmlhbnRJZFBhc3NlZFZpYVVSTFBhcmFtcyhvU3RhcnR1cFBhcmFtZXRlcnMpO1xuXHRcdGxldCBiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGJvb2xlYW47XG5cdFx0YVJlc3VsdHMucHVzaChcblx0XHRcdG9WYXJpYW50UHJvbWlzZVxuXHRcdFx0XHQudGhlbigoYVZhcmlhbnRzOiBhbnlbXSkgPT4ge1xuXHRcdFx0XHRcdGlmIChhVmFyaWFudHMgJiYgYVZhcmlhbnRzLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdGlmIChhVmFyaWFudHNbMF0gPT09IHRydWUgfHwgYVZhcmlhbnRzWzFdID09PSB0cnVlKSB7XG5cdFx0XHRcdFx0XHRcdGJGaWx0ZXJWYXJpYW50QXBwbGllZCA9IHRydWU7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9hcHBseVNlbGVjdGlvblZhcmlhbnQob1ZpZXcsIG9OYXZpZ2F0aW9uUGFyYW1ldGVyLCBiRmlsdGVyVmFyaWFudEFwcGxpZWQpLnRoZW4oKCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0R5bmFtaWNQYWdlID0gb1ZpZXcuYnlJZChcImZlOjpMaXN0UmVwb3J0XCIpO1xuXHRcdFx0XHRcdFx0bGV0IGJQcmV2ZW50SW5pdGlhbFNlYXJjaCA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0ZpbHRlckJhclZNID0gdGhpcy5fZ2V0RmlsdGVyQmFyVk0ob1ZpZXcpO1xuXHRcdFx0XHRcdFx0Y29uc3Qgb0ZpbHRlckJhckNvbnRyb2wgPSBvQ29udHJvbGxlci5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpO1xuXHRcdFx0XHRcdFx0aWYgKG9GaWx0ZXJCYXJDb250cm9sKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChcblx0XHRcdFx0XHRcdFx0XHQob05hdmlnYXRpb25QYXJhbWV0ZXIubmF2aWdhdGlvblR5cGUgIT09IE5hdlR5cGUuaW5pdGlhbCAmJiBvTmF2aWdhdGlvblBhcmFtZXRlci5yZXF1aXJlc1N0YW5kYXJkVmFyaWFudCkgfHxcblx0XHRcdFx0XHRcdFx0XHQoIW9GaWx0ZXJCYXJWTSAmJiBvVmlldy5nZXRWaWV3RGF0YSgpLmluaXRpYWxMb2FkID09PSBJbml0aWFsTG9hZE1vZGUuRW5hYmxlZCkgfHxcblx0XHRcdFx0XHRcdFx0XHRvQ29udHJvbGxlci5fc2hvdWxkQXV0b1RyaWdnZXJTZWFyY2gob0ZpbHRlckJhclZNKVxuXHRcdFx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdFx0XHRvRmlsdGVyQmFyQ29udHJvbC50cmlnZ2VyU2VhcmNoKCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0YlByZXZlbnRJbml0aWFsU2VhcmNoID0gdGhpcy5fcHJldmVudEluaXRpYWxTZWFyY2gob0ZpbHRlckJhclZNKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHQvLyByZXNldCB0aGUgc3VzcGVuZCBzZWxlY3Rpb24gb24gZmlsdGVyIGJhciB0byBhbGxvdyBsb2FkaW5nIG9mIGRhdGEgd2hlbiBuZWVkZWQgKHdhcyBzZXQgb24gTFIgSW5pdClcblx0XHRcdFx0XHRcdFx0b0ZpbHRlckJhckNvbnRyb2wuc2V0U3VzcGVuZFNlbGVjdGlvbihmYWxzZSk7XG5cdFx0XHRcdFx0XHRcdHRoaXMuX2JTZWFyY2hUcmlnZ2VyZWQgPSAhYlByZXZlbnRJbml0aWFsU2VhcmNoO1xuXHRcdFx0XHRcdFx0XHRvRHluYW1pY1BhZ2Uuc2V0SGVhZGVyRXhwYW5kZWQoc3lzdGVtLmRlc2t0b3AgfHwgYlByZXZlbnRJbml0aWFsU2VhcmNoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRMb2cuZXJyb3IoXCJWYXJpYW50IElEIGNhbm5vdCBiZSBhcHBsaWVkXCIpO1xuXHRcdFx0XHR9KVxuXHRcdCk7XG5cdH0sXG5cblx0aGFuZGxlVmFyaWFudElkUGFzc2VkVmlhVVJMUGFyYW1zOiBmdW5jdGlvbiAodGhpczogVmlld1N0YXRlICYgdHlwZW9mIFZpZXdTdGF0ZU92ZXJyaWRlLCBvVXJsUGFyYW1zOiBhbnkpIHtcblx0XHRjb25zdCBhUGFnZVZhcmlhbnRJZCA9IG9VcmxQYXJhbXNbXCJzYXAtdWktZmUtdmFyaWFudC1pZFwiXSxcblx0XHRcdGFGaWx0ZXJCYXJWYXJpYW50SWQgPSBvVXJsUGFyYW1zW1wic2FwLXVpLWZlLWZpbHRlcmJhci12YXJpYW50LWlkXCJdLFxuXHRcdFx0YVRhYmxlVmFyaWFudElkID0gb1VybFBhcmFtc1tcInNhcC11aS1mZS10YWJsZS12YXJpYW50LWlkXCJdO1xuXHRcdGxldCBvVmFyaWFudDtcblx0XHRpZiAoYVBhZ2VWYXJpYW50SWQgfHwgYUZpbHRlckJhclZhcmlhbnRJZCB8fCBhVGFibGVWYXJpYW50SWQpIHtcblx0XHRcdG9WYXJpYW50ID0ge1xuXHRcdFx0XHRzUGFnZVZhcmlhbnRJZDogYVBhZ2VWYXJpYW50SWQgJiYgYVBhZ2VWYXJpYW50SWRbMF0sXG5cdFx0XHRcdHNGaWx0ZXJCYXJWYXJpYW50SWQ6IGFGaWx0ZXJCYXJWYXJpYW50SWQgJiYgYUZpbHRlckJhclZhcmlhbnRJZFswXSxcblx0XHRcdFx0c1RhYmxlVmFyaWFudElkOiBhVGFibGVWYXJpYW50SWQgJiYgYVRhYmxlVmFyaWFudElkWzBdXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5faGFuZGxlQ29udHJvbFZhcmlhbnRJZChvVmFyaWFudCk7XG5cdH0sXG5cblx0X2hhbmRsZUNvbnRyb2xWYXJpYW50SWQ6IGZ1bmN0aW9uICh0aGlzOiBWaWV3U3RhdGUgJiB0eXBlb2YgVmlld1N0YXRlT3ZlcnJpZGUsIG9WYXJpYW50SURzOiBhbnkpIHtcblx0XHRsZXQgb1ZNOiBWYXJpYW50TWFuYWdlbWVudDtcblx0XHRjb25zdCBvVmlldyA9IHRoaXMuZ2V0VmlldygpLFxuXHRcdFx0YVByb21pc2VzOiBhbnlbXSA9IFtdO1xuXHRcdGNvbnN0IHNWYXJpYW50TWFuYWdlbWVudCA9IG9WaWV3LmdldFZpZXdEYXRhKCkudmFyaWFudE1hbmFnZW1lbnQ7XG5cdFx0aWYgKG9WYXJpYW50SURzICYmIG9WYXJpYW50SURzLnNQYWdlVmFyaWFudElkICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJQYWdlXCIpIHtcblx0XHRcdG9WTSA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0b1ZNLmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRpZiAob1ZhcmlhbnQua2V5ID09PSBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCkge1xuXHRcdFx0XHRcdGFQcm9taXNlcy5wdXNoKHRoaXMuX2FwcGx5Q29udHJvbFZhcmlhbnQob1ZNLCBvVmFyaWFudElEcy5zUGFnZVZhcmlhbnRJZCwgdHJ1ZSkpO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9IGVsc2UgaWYgKG9WYXJpYW50SURzICYmIHNWYXJpYW50TWFuYWdlbWVudCA9PT0gXCJDb250cm9sXCIpIHtcblx0XHRcdGlmIChvVmFyaWFudElEcy5zRmlsdGVyQmFyVmFyaWFudElkKSB7XG5cdFx0XHRcdG9WTSA9IG9WaWV3LmJ5SWQob1ZpZXcuZ2V0Q29udGVudCgpWzBdLmRhdGEoXCJmaWx0ZXJCYXJWYXJpYW50SWRcIikpO1xuXHRcdFx0XHRpZiAob1ZNKSB7XG5cdFx0XHRcdFx0b1ZNLmdldFZhcmlhbnRzKCkuZm9yRWFjaCgob1ZhcmlhbnQ6IGFueSkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKG9WYXJpYW50LmtleSA9PT0gb1ZhcmlhbnRJRHMuc0ZpbHRlckJhclZhcmlhbnRJZCkge1xuXHRcdFx0XHRcdFx0XHRhUHJvbWlzZXMucHVzaCh0aGlzLl9hcHBseUNvbnRyb2xWYXJpYW50KG9WTSwgb1ZhcmlhbnRJRHMuc0ZpbHRlckJhclZhcmlhbnRJZCwgdHJ1ZSkpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAob1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkKSB7XG5cdFx0XHRcdGNvbnN0IG9Db250cm9sbGVyID0gb1ZpZXcuZ2V0Q29udHJvbGxlcigpLFxuXHRcdFx0XHRcdGFUYWJsZXMgPSBvQ29udHJvbGxlci5fZ2V0Q29udHJvbHMoXCJ0YWJsZVwiKTtcblx0XHRcdFx0YVRhYmxlcy5mb3JFYWNoKChvVGFibGU6IGFueSkgPT4ge1xuXHRcdFx0XHRcdGNvbnN0IG9UYWJsZVZhcmlhbnQgPSBvVGFibGUuZ2V0VmFyaWFudCgpO1xuXHRcdFx0XHRcdGlmIChvVGFibGUgJiYgb1RhYmxlVmFyaWFudCkge1xuXHRcdFx0XHRcdFx0b1RhYmxlVmFyaWFudC5nZXRWYXJpYW50cygpLmZvckVhY2goKG9WYXJpYW50OiBhbnkpID0+IHtcblx0XHRcdFx0XHRcdFx0aWYgKG9WYXJpYW50LmtleSA9PT0gb1ZhcmlhbnRJRHMuc1RhYmxlVmFyaWFudElkKSB7XG5cdFx0XHRcdFx0XHRcdFx0YVByb21pc2VzLnB1c2godGhpcy5fYXBwbHlDb250cm9sVmFyaWFudChvVGFibGVWYXJpYW50LCBvVmFyaWFudElEcy5zVGFibGVWYXJpYW50SWQpKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIFByb21pc2UuYWxsKGFQcm9taXNlcyk7XG5cdH0sXG5cblx0X2FwcGx5Q29udHJvbFZhcmlhbnQ6IGZ1bmN0aW9uIChvVmFyaWFudDogYW55LCBzVmFyaWFudElEOiBhbnksIGJGaWx0ZXJWYXJpYW50QXBwbGllZDogYW55KSB7XG5cdFx0Y29uc3Qgc1ZhcmlhbnRSZWZlcmVuY2UgPSB0aGlzLl9jaGVja0lmVmFyaWFudElkSXNBdmFpbGFibGUob1ZhcmlhbnQsIHNWYXJpYW50SUQpID8gc1ZhcmlhbnRJRCA6IG9WYXJpYW50LmdldFN0YW5kYXJkVmFyaWFudEtleSgpO1xuXHRcdGNvbnN0IG9WTSA9IENvbnRyb2xWYXJpYW50QXBwbHlBUEkuYWN0aXZhdGVWYXJpYW50KHtcblx0XHRcdGVsZW1lbnQ6IG9WYXJpYW50LFxuXHRcdFx0dmFyaWFudFJlZmVyZW5jZTogc1ZhcmlhbnRSZWZlcmVuY2Vcblx0XHR9KTtcblx0XHRyZXR1cm4gb1ZNLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0cmV0dXJuIGJGaWx0ZXJWYXJpYW50QXBwbGllZDtcblx0XHR9KTtcblx0fSxcblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogcHJpdmF0ZSBoZWxwZXIgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0X2dldEZpbHRlckJhclZNOiBmdW5jdGlvbiAob1ZpZXc6IGFueSkge1xuXHRcdGNvbnN0IG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCk7XG5cdFx0c3dpdGNoIChvVmlld0RhdGEudmFyaWFudE1hbmFnZW1lbnQpIHtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLlBhZ2U6XG5cdFx0XHRcdHJldHVybiBvVmlldy5ieUlkKFwiZmU6OlBhZ2VWYXJpYW50TWFuYWdlbWVudFwiKTtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w6XG5cdFx0XHRcdHJldHVybiBvVmlldy5ieUlkKG9WaWV3LmdldENvbnRlbnQoKVswXS5kYXRhKFwiZmlsdGVyQmFyVmFyaWFudElkXCIpKTtcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLk5vbmU6XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0ZGVmYXVsdDpcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGB1bmhhbmRsZWQgdmFyaWFudCBzZXR0aW5nOiAke29WaWV3RGF0YS52YXJpYW50TWFuYWdlbWVudH1gKTtcblx0XHR9XG5cdH0sXG5cblx0X3ByZXZlbnRJbml0aWFsU2VhcmNoOiBmdW5jdGlvbiAob1ZhcmlhbnRNYW5hZ2VtZW50OiBhbnkpIHtcblx0XHRpZiAoIW9WYXJpYW50TWFuYWdlbWVudCkge1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXHRcdGNvbnN0IGFWYXJpYW50cyA9IG9WYXJpYW50TWFuYWdlbWVudC5nZXRWYXJpYW50cygpO1xuXHRcdGNvbnN0IG9DdXJyZW50VmFyaWFudCA9IGFWYXJpYW50cy5maW5kKGZ1bmN0aW9uIChvSXRlbTogYW55KSB7XG5cdFx0XHRyZXR1cm4gb0l0ZW0ua2V5ID09PSBvVmFyaWFudE1hbmFnZW1lbnQuZ2V0Q3VycmVudFZhcmlhbnRLZXkoKTtcblx0XHR9KTtcblx0XHRyZXR1cm4gIW9DdXJyZW50VmFyaWFudC5leGVjdXRlT25TZWxlY3Q7XG5cdH0sXG5cblx0X2FwcGx5U2VsZWN0aW9uVmFyaWFudDogZnVuY3Rpb24gKG9WaWV3OiBhbnksIG9OYXZpZ2F0aW9uUGFyYW1ldGVyOiBhbnksIGJGaWx0ZXJWYXJpYW50QXBwbGllZDogYW55KSB7XG5cdFx0Y29uc3Qgb0ZpbHRlckJhciA9IG9WaWV3LmdldENvbnRyb2xsZXIoKS5fZ2V0RmlsdGVyQmFyQ29udHJvbCgpLFxuXHRcdFx0b1NlbGVjdGlvblZhcmlhbnQgPSBvTmF2aWdhdGlvblBhcmFtZXRlci5zZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0b1NlbGVjdGlvblZhcmlhbnREZWZhdWx0cyA9IG9OYXZpZ2F0aW9uUGFyYW1ldGVyLnNlbGVjdGlvblZhcmlhbnREZWZhdWx0cztcblx0XHRpZiAoIW9GaWx0ZXJCYXIgfHwgIW9TZWxlY3Rpb25WYXJpYW50KSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXHRcdGxldCBvQ29uZGl0aW9ucyA9IHt9O1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSBvVmlldy5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdGNvbnN0IG9WaWV3RGF0YSA9IG9WaWV3LmdldFZpZXdEYXRhKCk7XG5cdFx0Y29uc3Qgc0NvbnRleHRQYXRoID0gb1ZpZXdEYXRhLmNvbnRleHRQYXRoIHx8IGAvJHtvVmlld0RhdGEuZW50aXR5U2V0fWA7XG5cdFx0Y29uc3QgYU1hbmRhdG9yeUZpbHRlckZpZWxkcyA9IENvbW1vblV0aWxzLmdldE1hbmRhdG9yeUZpbHRlckZpZWxkcyhvTWV0YU1vZGVsLCBzQ29udGV4dFBhdGgpO1xuXHRcdGxldCBvVmFyaWFudDtcblx0XHRjb25zdCBiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQgPSBvTmF2aWdhdGlvblBhcmFtZXRlci5yZXF1aXJlc1N0YW5kYXJkVmFyaWFudDtcblxuXHRcdGlmIChiRmlsdGVyVmFyaWFudEFwcGxpZWQpIHtcblx0XHRcdG9Db25kaXRpb25zID0gb0ZpbHRlckJhci5nZXRDb25kaXRpb25zKCk7XG5cdFx0fVxuXHRcdENvbW1vblV0aWxzLmFkZERlZmF1bHREaXNwbGF5Q3VycmVuY3koYU1hbmRhdG9yeUZpbHRlckZpZWxkcywgb1NlbGVjdGlvblZhcmlhbnQsIG9TZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMpO1xuXHRcdENvbW1vblV0aWxzLmFkZFNlbGVjdGlvblZhcmlhbnRUb0NvbmRpdGlvbnMob1NlbGVjdGlvblZhcmlhbnQsIG9Db25kaXRpb25zLCBvTWV0YU1vZGVsLCBzQ29udGV4dFBhdGgpO1xuXHRcdHN3aXRjaCAob1ZpZXdEYXRhLnZhcmlhbnRNYW5hZ2VtZW50KSB7XG5cdFx0XHRjYXNlIFZhcmlhbnRNYW5hZ2VtZW50VHlwZS5QYWdlOlxuXHRcdFx0XHRvVmFyaWFudCA9IG9WaWV3LmJ5SWQoXCJmZTo6UGFnZVZhcmlhbnRNYW5hZ2VtZW50XCIpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdGNhc2UgVmFyaWFudE1hbmFnZW1lbnRUeXBlLkNvbnRyb2w6XG5cdFx0XHRcdG9WYXJpYW50ID0gb1ZpZXcuYnlJZChvVmlldy5nZXRDb250ZW50KClbMF0uZGF0YShcImZpbHRlckJhclZhcmlhbnRJZFwiKSk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSBWYXJpYW50TWFuYWdlbWVudFR5cGUuTm9uZTpcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdGJyZWFrO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5fYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50KG9GaWx0ZXJCYXIsIG9Db25kaXRpb25zLCBvVmFyaWFudCwgYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50LCBiRmlsdGVyVmFyaWFudEFwcGxpZWQpO1xuXHR9LFxuXHRfYWN0aXZhdGVTZWxlY3Rpb25WYXJpYW50OiBmdW5jdGlvbiAoXG5cdFx0b0ZpbHRlckJhcjogYW55LFxuXHRcdG9Db25kaXRpb25zOiBhbnksXG5cdFx0b1ZhcmlhbnQ6IGFueSxcblx0XHRiUmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6IGFueSxcblx0XHRiRmlsdGVyVmFyaWFudEFwcGxpZWQ6IGFueVxuXHQpIHtcblx0XHRsZXQgb1Byb21pc2U7XG5cblx0XHRpZiAob1ZhcmlhbnQgJiYgIWJGaWx0ZXJWYXJpYW50QXBwbGllZCkge1xuXHRcdFx0bGV0IG9WYXJpYW50S2V5ID0gYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50ID8gb1ZhcmlhbnQuZ2V0U3RhbmRhcmRWYXJpYW50S2V5KCkgOiBvVmFyaWFudC5nZXREZWZhdWx0VmFyaWFudEtleSgpO1xuXHRcdFx0aWYgKG9WYXJpYW50S2V5ID09PSBudWxsKSB7XG5cdFx0XHRcdG9WYXJpYW50S2V5ID0gb1ZhcmlhbnQuZ2V0SWQoKTtcblx0XHRcdH1cblx0XHRcdG9Qcm9taXNlID0gQ29udHJvbFZhcmlhbnRBcHBseUFQSS5hY3RpdmF0ZVZhcmlhbnQoe1xuXHRcdFx0XHRlbGVtZW50OiBvVmFyaWFudCxcblx0XHRcdFx0dmFyaWFudFJlZmVyZW5jZTogb1ZhcmlhbnRLZXlcblx0XHRcdH0pLnRoZW4oZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRyZXR1cm4gYlJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IHx8IG9WYXJpYW50LmdldERlZmF1bHRWYXJpYW50S2V5KCkgPT09IG9WYXJpYW50LmdldFN0YW5kYXJkVmFyaWFudEtleSgpO1xuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdG9Qcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKHRydWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1Byb21pc2UudGhlbigoYkNsZWFyRmlsdGVyQW5kUmVwbGFjZVdpdGhBcHBTdGF0ZTogYW55KSA9PiB7XG5cdFx0XHRpZiAoYkNsZWFyRmlsdGVyQW5kUmVwbGFjZVdpdGhBcHBTdGF0ZSkge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5fZm5BcHBseUNvbmRpdGlvbnMob0ZpbHRlckJhciwgb0NvbmRpdGlvbnMpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9LFxuXHRfZm5BcHBseUNvbmRpdGlvbnM6IGZ1bmN0aW9uIChvRmlsdGVyQmFyOiBhbnksIG9Db25kaXRpb25zOiBhbnkpIHtcblx0XHRjb25zdCBtRmlsdGVyOiBhbnkgPSB7fSxcblx0XHRcdGFJdGVtczogYW55W10gPSBbXSxcblx0XHRcdGZuQWRqdXN0VmFsdWVIZWxwQ29uZGl0aW9uID0gZnVuY3Rpb24gKG9Db25kaXRpb246IGFueSkge1xuXHRcdFx0XHQvLyBpbiBjYXNlIHRoZSBjb25kaXRpb24gaXMgbWVhbnQgZm9yIGEgZmllbGQgaGF2aW5nIGEgVkgsIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgTURDIGRpZmZlcnNcblx0XHRcdFx0b0NvbmRpdGlvbi52YWxpZGF0ZWQgPSBDb25kaXRpb25WYWxpZGF0ZWQuVmFsaWRhdGVkO1xuXHRcdFx0XHRpZiAob0NvbmRpdGlvbi5vcGVyYXRvciA9PT0gXCJFbXB0eVwiKSB7XG5cdFx0XHRcdFx0b0NvbmRpdGlvbi5vcGVyYXRvciA9IFwiRVFcIjtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLnZhbHVlcyA9IFtcIlwiXTtcblx0XHRcdFx0fSBlbHNlIGlmIChvQ29uZGl0aW9uLm9wZXJhdG9yID09PSBcIk5vdEVtcHR5XCIpIHtcblx0XHRcdFx0XHRvQ29uZGl0aW9uLm9wZXJhdG9yID0gXCJORVwiO1xuXHRcdFx0XHRcdG9Db25kaXRpb24udmFsdWVzID0gW1wiXCJdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRlbGV0ZSBvQ29uZGl0aW9uLmlzRW1wdHk7XG5cdFx0XHR9O1xuXHRcdGNvbnN0IGZuR2V0UHJvcGVydHlJbmZvID0gZnVuY3Rpb24gKG9GaWx0ZXJDb250cm9sOiBhbnksIHNFbnRpdHlUeXBlUGF0aDogYW55KSB7XG5cdFx0XHRjb25zdCBzRW50aXR5U2V0UGF0aCA9IE1vZGVsSGVscGVyLmdldEVudGl0eVNldFBhdGgoc0VudGl0eVR5cGVQYXRoKSxcblx0XHRcdFx0b01ldGFNb2RlbCA9IG9GaWx0ZXJDb250cm9sLmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCksXG5cdFx0XHRcdG9GUiA9IENvbW1vblV0aWxzLmdldEZpbHRlclJlc3RyaWN0aW9uc0J5UGF0aChzRW50aXR5U2V0UGF0aCwgb01ldGFNb2RlbCksXG5cdFx0XHRcdGFOb25GaWx0ZXJhYmxlUHJvcHMgPSBvRlJbRmlsdGVyUmVzdHJpY3Rpb25zLk5PTl9GSUxURVJBQkxFX1BST1BFUlRJRVNdLFxuXHRcdFx0XHRtRmlsdGVyRmllbGRzID0gRmlsdGVyVXRpbHMuZ2V0Q29udmVydGVkRmlsdGVyRmllbGRzKG9GaWx0ZXJDb250cm9sLCBzRW50aXR5VHlwZVBhdGgpLFxuXHRcdFx0XHRhUHJvcGVydHlJbmZvOiBhbnlbXSA9IFtdO1xuXHRcdFx0T2JqZWN0LmtleXMobUZpbHRlckZpZWxkcykuZm9yRWFjaChmdW5jdGlvbiAoc0ZpbHRlckZpZWxkS2V5OiBzdHJpbmcpIHtcblx0XHRcdFx0Y29uc3Qgb0NvbnZlcnRlZFByb3BlcnR5ID0gbUZpbHRlckZpZWxkc1tzRmlsdGVyRmllbGRLZXldO1xuXHRcdFx0XHRjb25zdCBzUHJvcGVydHlQYXRoID0gb0NvbnZlcnRlZFByb3BlcnR5LmNvbmRpdGlvblBhdGgucmVwbGFjZShDT05ESVRJT05fUEFUSF9UT19QUk9QRVJUWV9QQVRIX1JFR0VYLCBcIlwiKTtcblx0XHRcdFx0aWYgKGFOb25GaWx0ZXJhYmxlUHJvcHMuaW5kZXhPZihzUHJvcGVydHlQYXRoKSA9PT0gLTEpIHtcblx0XHRcdFx0XHRjb25zdCBzQW5ub3RhdGlvblBhdGggPSBvQ29udmVydGVkUHJvcGVydHkuYW5ub3RhdGlvblBhdGg7XG5cdFx0XHRcdFx0Y29uc3Qgb1Byb3BlcnR5Q29udGV4dCA9IG9NZXRhTW9kZWwuY3JlYXRlQmluZGluZ0NvbnRleHQoc0Fubm90YXRpb25QYXRoKTtcblx0XHRcdFx0XHRhUHJvcGVydHlJbmZvLnB1c2goe1xuXHRcdFx0XHRcdFx0cGF0aDogb0NvbnZlcnRlZFByb3BlcnR5LmNvbmRpdGlvblBhdGgsXG5cdFx0XHRcdFx0XHRoaWRkZW5GaWx0ZXI6IG9Db252ZXJ0ZWRQcm9wZXJ0eS5hdmFpbGFiaWxpdHkgPT09IFwiSGlkZGVuXCIsXG5cdFx0XHRcdFx0XHRoYXNWYWx1ZUhlbHA6ICFzQW5ub3RhdGlvblBhdGhcblx0XHRcdFx0XHRcdFx0PyBmYWxzZVxuXHRcdFx0XHRcdFx0XHQ6IFByb3BlcnR5Rm9ybWF0dGVycy5oYXNWYWx1ZUhlbHAob1Byb3BlcnR5Q29udGV4dC5nZXRPYmplY3QoKSwgeyBjb250ZXh0OiBvUHJvcGVydHlDb250ZXh0IH0pXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH1cblx0XHRcdH0pO1xuXHRcdFx0cmV0dXJuIGFQcm9wZXJ0eUluZm87XG5cdFx0fTtcblx0XHRyZXR1cm4gb0ZpbHRlckJhci53YWl0Rm9ySW5pdGlhbGl6YXRpb24oKS50aGVuKGZ1bmN0aW9uICgpIHtcblx0XHRcdGNvbnN0IHNFbnRpdHlUeXBlUGF0aCA9IERlbGVnYXRlVXRpbC5nZXRDdXN0b21EYXRhKG9GaWx0ZXJCYXIsIFwiZW50aXR5VHlwZVwiKTtcblx0XHRcdGNvbnN0IGFQcm9wZXJ0eUluZm8gPSBmbkdldFByb3BlcnR5SW5mbyhvRmlsdGVyQmFyLCBzRW50aXR5VHlwZVBhdGgpO1xuXHRcdFx0YVByb3BlcnR5SW5mb1xuXHRcdFx0XHQuZmlsdGVyKGZ1bmN0aW9uIChvUHJvcGVydHlJbmZvOiBhbnkpIHtcblx0XHRcdFx0XHRyZXR1cm4gb1Byb3BlcnR5SW5mby5wYXRoICE9PSBcIiRlZGl0U3RhdGVcIiAmJiBvUHJvcGVydHlJbmZvLnBhdGggIT09IFwiJHNlYXJjaFwiO1xuXHRcdFx0XHR9KVxuXHRcdFx0XHQuZm9yRWFjaChmdW5jdGlvbiAob1Byb3BlcnR5SW5mbzogYW55KSB7XG5cdFx0XHRcdFx0aWYgKG9Qcm9wZXJ0eUluZm8ucGF0aCBpbiBvQ29uZGl0aW9ucykge1xuXHRcdFx0XHRcdFx0bUZpbHRlcltvUHJvcGVydHlJbmZvLnBhdGhdID0gb0NvbmRpdGlvbnNbb1Byb3BlcnR5SW5mby5wYXRoXTtcblx0XHRcdFx0XHRcdGlmICghb1Byb3BlcnR5SW5mby5oaWRkZW5GaWx0ZXIpIHtcblx0XHRcdFx0XHRcdFx0YUl0ZW1zLnB1c2goeyBuYW1lOiBvUHJvcGVydHlJbmZvLnBhdGggfSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRpZiAob1Byb3BlcnR5SW5mby5oYXNWYWx1ZUhlbHApIHtcblx0XHRcdFx0XHRcdFx0bUZpbHRlcltvUHJvcGVydHlJbmZvLnBhdGhdLmZvckVhY2goZm5BZGp1c3RWYWx1ZUhlbHBDb25kaXRpb24pO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0bUZpbHRlcltvUHJvcGVydHlJbmZvLnBhdGhdLmZvckVhY2goZnVuY3Rpb24gKG9Db25kaXRpb246IGFueSkge1xuXHRcdFx0XHRcdFx0XHRcdG9Db25kaXRpb24udmFsaWRhdGVkID0gQ29uZGl0aW9uVmFsaWRhdGVkLk5vdFZhbGlkYXRlZDtcblx0XHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdG1GaWx0ZXJbb1Byb3BlcnR5SW5mby5wYXRoXSA9IFtdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHRyZXR1cm4gU3RhdGVVdGlsLmFwcGx5RXh0ZXJuYWxTdGF0ZShvRmlsdGVyQmFyLCB7IGZpbHRlcjogbUZpbHRlciwgaXRlbXM6IGFJdGVtcyB9KTtcblx0XHR9KTtcblx0fVxufTtcblxuZXhwb3J0IGRlZmF1bHQgVmlld1N0YXRlT3ZlcnJpZGU7XG4iXX0=
@@ -1,20 +1,21 @@
1
1
  import Log from "sap/base/Log";
2
2
  import CommonUtils from "sap/fe/core/CommonUtils";
3
- import ViewState from "sap/fe/core/controllerextensions/ViewState";
3
+ import type ViewState from "sap/fe/core/controllerextensions/ViewState";
4
4
  import KeepAliveHelper from "sap/fe/core/helpers/KeepAliveHelper";
5
- import ModelHelper, { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
5
+ import type { InternalModelContext } from "sap/fe/core/helpers/ModelHelper";
6
+ import ModelHelper from "sap/fe/core/helpers/ModelHelper";
6
7
  import CoreLibrary from "sap/fe/core/library";
7
8
  import * as PropertyFormatters from "sap/fe/core/templating/PropertyFormatters";
8
9
  import DelegateUtil from "sap/fe/macros/DelegateUtil";
9
10
  import FilterUtils from "sap/fe/macros/filter/FilterUtils";
10
11
  import NavLibrary from "sap/fe/navigation/library";
11
- import ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
12
+ import type ListReportController from "sap/fe/templates/ListReport/ListReportController.controller";
12
13
  import { system } from "sap/ui/Device";
13
14
  import ControlVariantApplyAPI from "sap/ui/fl/apply/api/ControlVariantApplyAPI";
14
- import VariantManagement from "sap/ui/fl/variants/VariantManagement";
15
+ import type VariantManagement from "sap/ui/fl/variants/VariantManagement";
15
16
  import ConditionValidated from "sap/ui/mdc/enum/ConditionValidated";
16
17
  import StateUtil from "sap/ui/mdc/p13n/StateUtil";
17
- import JSONModel from "sap/ui/model/json/JSONModel";
18
+ import type JSONModel from "sap/ui/model/json/JSONModel";
18
19
 
19
20
  const NavType = NavLibrary.NavType,
20
21
  VariantManagementType = CoreLibrary.VariantManagement,
@@ -72,7 +73,7 @@ const ViewStateOverride: any = {
72
73
  adaptStateControls: function (this: ViewState & typeof ViewStateOverride, aStateControls: any) {
73
74
  const oView = this.getView(),
74
75
  oController = oView.getController() as ListReportController,
75
- oViewData = oView.getViewData() as any,
76
+ oViewData = oView.getViewData(),
76
77
  bControlVM = oViewData.variantManagement === VariantManagementType.Control;
77
78
 
78
79
  const oFilterBarVM = this._getFilterBarVM(oView);
@@ -142,7 +143,7 @@ const ViewStateOverride: any = {
142
143
  oAdditionalStates.alpContentView = TemplateContentView.Chart;
143
144
  }
144
145
  (oInternalModelContext.getModel() as JSONModel).setProperty(
145
- oInternalModelContext.getPath() + "/alpContentView",
146
+ `${oInternalModelContext.getPath()}/alpContentView`,
146
147
  oAdditionalStates.alpContentView
147
148
  );
148
149
  }
@@ -270,7 +271,7 @@ const ViewStateOverride: any = {
270
271
  case VariantManagementType.None:
271
272
  return null;
272
273
  default:
273
- throw new Error("unhandled variant setting: " + oViewData.variantManagement);
274
+ throw new Error(`unhandled variant setting: ${oViewData.variantManagement}`);
274
275
  }
275
276
  },
276
277
 
@@ -295,7 +296,7 @@ const ViewStateOverride: any = {
295
296
  let oConditions = {};
296
297
  const oMetaModel = oView.getModel().getMetaModel();
297
298
  const oViewData = oView.getViewData();
298
- const sContextPath = oViewData.contextPath || "/" + oViewData.entitySet;
299
+ const sContextPath = oViewData.contextPath || `/${oViewData.entitySet}`;
299
300
  const aMandatoryFilterFields = CommonUtils.getMandatoryFilterFields(oMetaModel, sContextPath);
300
301
  let oVariant;
301
302
  const bRequiresStandardVariant = oNavigationParameter.requiresStandardVariant;
@@ -382,7 +383,6 @@ const ViewStateOverride: any = {
382
383
  ? false
383
384
  : PropertyFormatters.hasValueHelp(oPropertyContext.getObject(), { context: oPropertyContext })
384
385
  });
385
- return;
386
386
  }
387
387
  });
388
388
  return aPropertyInfo;
@@ -69,4 +69,4 @@ sap.ui.define(["sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/building
69
69
  _exports = MultipleMode;
70
70
  return _exports;
71
71
  }, false);
72
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZS5mcmFnbWVudC50cyJdLCJuYW1lcyI6WyJNdWx0aXBsZU1vZGUiLCJkZWZpbmVCdWlsZGluZ0Jsb2NrIiwibmFtZSIsIm5hbWVzcGFjZSIsImlzT3BlbiIsInhtbEF0dHJpYnV0ZSIsInR5cGUiLCJnZXRUZW1wbGF0ZSIsInhtbCIsImNvbnZlcnRlckNvbnRleHQiLCJpY29uVGFiQmFySWQiLCJzaG93VGFiQ291bnRzIiwidmlld3MiLCJtYXAiLCJ2aWV3Iiwidmlld0lkeCIsInRpdGxlIiwiam9pbiIsIkJ1aWxkaW5nQmxvY2tCYXNlIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUdxQkEsWSxXQURwQkMsbUJBQW1CLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLGNBQVI7QUFBd0JDLElBQUFBLFNBQVMsRUFBRSw0Q0FBbkM7QUFBaUZDLElBQUFBLE1BQU0sRUFBRTtBQUF6RixHQUFELEMsVUFFbEJDLFlBQVksQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUU7QUFBUixHQUFELEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBR2JDLFcsR0FBQSx1QkFBYztBQUNiLGFBQU9DLEdBQVAsc2ZBT1EsS0FBS0MsZ0JBQUwsQ0FBc0JDLFlBUDlCLEVBVTJCLEtBQUtELGdCQUFMLENBQXNCRSxhQVZqRCxFQWFJLEtBQUtGLGdCQUFMLENBQXNCRyxLQUF0QixDQUNBQyxHQURBLENBQ0ksVUFBQ0MsSUFBRCxFQUFPQyxPQUFQLEVBQW1CO0FBQ3ZCLHNFQUFzREEsT0FBdEQsOFRBS1VELElBQUksQ0FBQ0UsS0FMZjtBQStCQSxPQWpDQSxFQWtDQUMsSUFsQ0EsQ0FrQ0ssRUFsQ0wsQ0FiSjtBQWtEQSxLOzs7SUF2RHdDQyxpQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRpbmdCbG9ja0Jhc2UsIGRlZmluZUJ1aWxkaW5nQmxvY2ssIHhtbEF0dHJpYnV0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgeyB4bWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1J1bnRpbWVcIjtcbmltcG9ydCB7IExpc3RSZXBvcnREZWZpbml0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvdGVtcGxhdGVzL0xpc3RSZXBvcnRDb252ZXJ0ZXJcIjtcblxuQGRlZmluZUJ1aWxkaW5nQmxvY2soeyBuYW1lOiBcIk11bHRpcGxlTW9kZVwiLCBuYW1lc3BhY2U6IFwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LnZpZXcuZnJhZ21lbnRzXCIsIGlzT3BlbjogdHJ1ZSB9KVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTXVsdGlwbGVNb2RlIGV4dGVuZHMgQnVpbGRpbmdCbG9ja0Jhc2Uge1xuXHRAeG1sQXR0cmlidXRlKHsgdHlwZTogXCJzYXAudWkubW9kZWwuQ29udGV4dFwiIH0pXG5cdGNvbnZlcnRlckNvbnRleHQhOiBMaXN0UmVwb3J0RGVmaW5pdGlvbjtcblxuXHRnZXRUZW1wbGF0ZSgpIHtcblx0XHRyZXR1cm4geG1sYFxuXHRcdFx0PEljb25UYWJCYXJcblx0XHRcdFx0eG1sbnM9XCJzYXAubVwiXG5cblx0XHRcdFx0eG1sbnM6Y3VzdG9tRGF0YT1cImh0dHA6Ly9zY2hlbWFzLnNhcC5jb20vc2FwdWk1L2V4dGVuc2lvbi9zYXAudWkuY29yZS5DdXN0b21EYXRhLzFcIlxuXHRcdFx0XHRleHBhbmRhYmxlPVwiZmFsc2VcIlxuXHRcdFx0XHRoZWFkZXJNb2RlPVwiSW5saW5lXCJcblx0XHRcdFx0aWQ9XCIke3RoaXMuY29udmVydGVyQ29udGV4dC5pY29uVGFiQmFySWR9XCJcblx0XHRcdFx0c2VsZWN0PVwiLmhhbmRsZXJzLm9uVGFiTXVsdGlNb2RlQ2hhbmdlXCJcblx0XHRcdFx0c3RyZXRjaENvbnRlbnRIZWlnaHQ9XCJ0cnVlXCJcblx0XHRcdFx0Y3VzdG9tRGF0YTpzaG93Q291bnRzPVwiJHt0aGlzLmNvbnZlcnRlckNvbnRleHQuc2hvd1RhYkNvdW50c31cIlxuXHRcdFx0PlxuXHRcdFx0XHQ8aXRlbXM+XG5cdFx0XHRcdCR7dGhpcy5jb252ZXJ0ZXJDb250ZXh0LnZpZXdzXG5cdFx0XHRcdFx0Lm1hcCgodmlldywgdmlld0lkeCkgPT4ge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGA8dGVtcGxhdGU6d2l0aCBwYXRoPVwiY29udmVydGVyQ29udGV4dD52aWV3cy8ke3ZpZXdJZHh9L1wiIHZhcj1cInZpZXdcIlxuXHRcdFx0XHRcdFx0XHRcdFx0eG1sbnM6Y29yZT1cInNhcC51aS5jb3JlXCJcblx0XHRcdFx0XHRcdFx0XHRcdHhtbG5zOnRlbXBsYXRlPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLnRlbXBsYXRlLzFcIj5cblx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlOndpdGggcGF0aD1cInZpZXc+cHJlc2VudGF0aW9uXCIgdmFyPVwicHJlc2VudGF0aW9uQ29udGV4dFwiPlxuXHRcdFx0XHRcdFx0XHQ8SWNvblRhYkZpbHRlclxuXHRcdFx0XHRcdFx0XHRcdHRleHQ9XCIke3ZpZXcudGl0bGV9XCJcblx0XHRcdFx0XHRcdFx0XHRrZXk9XCJ7PSBcXCR7dmlldz50YWJsZUNvbnRyb2xJZH0gfHwgXFwke3ZpZXc+Y3VzdG9tVGFiSWR9IHx8IFxcJHt2aWV3PmNoYXJ0Q29udHJvbElkfX1cIlxuXHRcdFx0XHRcdFx0XHRcdGN1c3RvbURhdGE6c2VsZWN0aW9uVmFyaWFudD1cInt2aWV3PnNlbGVjdGlvblZhcmlhbnRQYXRofVwiXG5cdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT1cInt2aWV3PnZpc2libGV9XCJcblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDxjb250ZW50PlxuXHRcdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlOmlmIHRlc3Q9XCJ7PSBcXCR7dmlldz50eXBlfSA9PT0gJ0N1c3RvbSd9XCI+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDx0ZW1wbGF0ZTp0aGVuPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxjb3JlOkZyYWdtZW50IGZyYWdtZW50TmFtZT1cInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC52aWV3LmZyYWdtZW50cy5DdXN0b21WaWV3XCIgdHlwZT1cIlhNTFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU6dGhlbj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlOmVsc2U+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PE1lc3NhZ2VTdHJpcFxuXHRcdFx0XHRcdFx0XHRcdFx0XHQgICAgICAgIHRleHQ9XCJ7PSAnez0gKFxcJHtpbnRlcm5hbD50YWJzL2lnbm9yZWRGaWVsZHNUaXRsZS8nICsgKFxcJHt2aWV3PnRhYmxlQ29udHJvbElkfSB8fCBcXCR7dmlldz5jaGFydENvbnRyb2xJZH0pICsgJ30gKSB9JyB9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJJbmZvcm1hdGlvblwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaG93SWNvbj1cInRydWVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0c2hvd0Nsb3NlQnV0dG9uPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz1cInNhcFVpU21hbGxNYXJnaW5cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT1cIns9ICd7PSAoXFwke2ludGVybmFsPnRhYnMvaWdub3JlZEZpZWxkcy8nICsoXFwke3ZpZXc+dGFibGVDb250cm9sSWR9IHx8IFxcJHt2aWV3PmNoYXJ0Q29udHJvbElkfSkgKyAnfSB8fCBbXSkubGVuZ3RoPjAgfScgfVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDwvTWVzc2FnZVN0cmlwPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdDxjb3JlOkZyYWdtZW50IGZyYWdtZW50TmFtZT1cInNhcC5mZS50ZW1wbGF0ZXMuTGlzdFJlcG9ydC52aWV3LmZyYWdtZW50cy5Db2xsZWN0aW9uVmlzdWFsaXphdGlvblwiIHR5cGU9XCJYTUxcIiAvPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8L3RlbXBsYXRlOmVsc2U+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8L3RlbXBsYXRlOmlmPlxuXHRcdFx0XHRcdFx0XHRcdDwvY29udGVudD5cblx0XHRcdFx0XHRcdFx0PC9JY29uVGFiRmlsdGVyPlxuXHRcdFx0XHRcdFx0PC90ZW1wbGF0ZTp3aXRoPjwvdGVtcGxhdGU6d2l0aD5gO1xuXHRcdFx0XHRcdH0pXG5cdFx0XHRcdFx0LmpvaW4oXCJcIil9XG5cdFx0XHRcdDwvaXRlbXM+XG5cdFx0XHQ8L0ljb25UYWJCYXI+YDtcblx0fVxufVxuIl19
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk11bHRpcGxlTW9kZS5mcmFnbWVudC50cyJdLCJuYW1lcyI6WyJNdWx0aXBsZU1vZGUiLCJkZWZpbmVCdWlsZGluZ0Jsb2NrIiwibmFtZSIsIm5hbWVzcGFjZSIsImlzT3BlbiIsInhtbEF0dHJpYnV0ZSIsInR5cGUiLCJnZXRUZW1wbGF0ZSIsInhtbCIsImNvbnZlcnRlckNvbnRleHQiLCJpY29uVGFiQmFySWQiLCJzaG93VGFiQ291bnRzIiwidmlld3MiLCJtYXAiLCJ2aWV3Iiwidmlld0lkeCIsInRpdGxlIiwiam9pbiIsIkJ1aWxkaW5nQmxvY2tCYXNlIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQUdxQkEsWSxXQURwQkMsbUJBQW1CLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLGNBQVI7QUFBd0JDLElBQUFBLFNBQVMsRUFBRSw0Q0FBbkM7QUFBaUZDLElBQUFBLE1BQU0sRUFBRTtBQUF6RixHQUFELEMsVUFFbEJDLFlBQVksQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUU7QUFBUixHQUFELEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1dBR2JDLFcsR0FBQSx1QkFBYztBQUNiLGFBQU9DLEdBQVAsc2ZBT1EsS0FBS0MsZ0JBQUwsQ0FBc0JDLFlBUDlCLEVBVTJCLEtBQUtELGdCQUFMLENBQXNCRSxhQVZqRCxFQWFJLEtBQUtGLGdCQUFMLENBQXNCRyxLQUF0QixDQUNBQyxHQURBLENBQ0ksVUFBQ0MsSUFBRCxFQUFPQyxPQUFQLEVBQW1CO0FBQ3ZCLHNFQUFzREEsT0FBdEQsOFRBS1VELElBQUksQ0FBQ0UsS0FMZjtBQStCQSxPQWpDQSxFQWtDQUMsSUFsQ0EsQ0FrQ0ssRUFsQ0wsQ0FiSjtBQWtEQSxLOzs7SUF2RHdDQyxpQiIsInNvdXJjZVJvb3QiOiIuIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVpbGRpbmdCbG9ja0Jhc2UsIGRlZmluZUJ1aWxkaW5nQmxvY2ssIHhtbEF0dHJpYnV0ZSB9IGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgeyB4bWwgfSBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1J1bnRpbWVcIjtcbmltcG9ydCB0eXBlIHsgTGlzdFJlcG9ydERlZmluaXRpb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy90ZW1wbGF0ZXMvTGlzdFJlcG9ydENvbnZlcnRlclwiO1xuXG5AZGVmaW5lQnVpbGRpbmdCbG9jayh7IG5hbWU6IFwiTXVsdGlwbGVNb2RlXCIsIG5hbWVzcGFjZTogXCJzYXAuZmUudGVtcGxhdGVzLkxpc3RSZXBvcnQudmlldy5mcmFnbWVudHNcIiwgaXNPcGVuOiB0cnVlIH0pXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNdWx0aXBsZU1vZGUgZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrQmFzZSB7XG5cdEB4bWxBdHRyaWJ1dGUoeyB0eXBlOiBcInNhcC51aS5tb2RlbC5Db250ZXh0XCIgfSlcblx0Y29udmVydGVyQ29udGV4dCE6IExpc3RSZXBvcnREZWZpbml0aW9uO1xuXG5cdGdldFRlbXBsYXRlKCkge1xuXHRcdHJldHVybiB4bWxgXG5cdFx0XHQ8SWNvblRhYkJhclxuXHRcdFx0XHR4bWxucz1cInNhcC5tXCJcblxuXHRcdFx0XHR4bWxuczpjdXN0b21EYXRhPVwiaHR0cDovL3NjaGVtYXMuc2FwLmNvbS9zYXB1aTUvZXh0ZW5zaW9uL3NhcC51aS5jb3JlLkN1c3RvbURhdGEvMVwiXG5cdFx0XHRcdGV4cGFuZGFibGU9XCJmYWxzZVwiXG5cdFx0XHRcdGhlYWRlck1vZGU9XCJJbmxpbmVcIlxuXHRcdFx0XHRpZD1cIiR7dGhpcy5jb252ZXJ0ZXJDb250ZXh0Lmljb25UYWJCYXJJZH1cIlxuXHRcdFx0XHRzZWxlY3Q9XCIuaGFuZGxlcnMub25UYWJNdWx0aU1vZGVDaGFuZ2VcIlxuXHRcdFx0XHRzdHJldGNoQ29udGVudEhlaWdodD1cInRydWVcIlxuXHRcdFx0XHRjdXN0b21EYXRhOnNob3dDb3VudHM9XCIke3RoaXMuY29udmVydGVyQ29udGV4dC5zaG93VGFiQ291bnRzfVwiXG5cdFx0XHQ+XG5cdFx0XHRcdDxpdGVtcz5cblx0XHRcdFx0JHt0aGlzLmNvbnZlcnRlckNvbnRleHQudmlld3Ncblx0XHRcdFx0XHQubWFwKCh2aWV3LCB2aWV3SWR4KSA9PiB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gYDx0ZW1wbGF0ZTp3aXRoIHBhdGg9XCJjb252ZXJ0ZXJDb250ZXh0PnZpZXdzLyR7dmlld0lkeH0vXCIgdmFyPVwidmlld1wiXG5cdFx0XHRcdFx0XHRcdFx0XHR4bWxuczpjb3JlPVwic2FwLnVpLmNvcmVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0eG1sbnM6dGVtcGxhdGU9XCJodHRwOi8vc2NoZW1hcy5zYXAuY29tL3NhcHVpNS9leHRlbnNpb24vc2FwLnVpLmNvcmUudGVtcGxhdGUvMVwiPlxuXHRcdFx0XHRcdFx0XHQ8dGVtcGxhdGU6d2l0aCBwYXRoPVwidmlldz5wcmVzZW50YXRpb25cIiB2YXI9XCJwcmVzZW50YXRpb25Db250ZXh0XCI+XG5cdFx0XHRcdFx0XHRcdDxJY29uVGFiRmlsdGVyXG5cdFx0XHRcdFx0XHRcdFx0dGV4dD1cIiR7dmlldy50aXRsZX1cIlxuXHRcdFx0XHRcdFx0XHRcdGtleT1cIns9IFxcJHt2aWV3PnRhYmxlQ29udHJvbElkfSB8fCBcXCR7dmlldz5jdXN0b21UYWJJZH0gfHwgXFwke3ZpZXc+Y2hhcnRDb250cm9sSWR9fVwiXG5cdFx0XHRcdFx0XHRcdFx0Y3VzdG9tRGF0YTpzZWxlY3Rpb25WYXJpYW50PVwie3ZpZXc+c2VsZWN0aW9uVmFyaWFudFBhdGh9XCJcblx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPVwie3ZpZXc+dmlzaWJsZX1cIlxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0PGNvbnRlbnQ+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8dGVtcGxhdGU6aWYgdGVzdD1cIns9IFxcJHt2aWV3PnR5cGV9ID09PSAnQ3VzdG9tJ31cIj5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PHRlbXBsYXRlOnRoZW4+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGNvcmU6RnJhZ21lbnQgZnJhZ21lbnROYW1lPVwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LnZpZXcuZnJhZ21lbnRzLkN1c3RvbVZpZXdcIiB0eXBlPVwiWE1MXCIgLz5cblx0XHRcdFx0XHRcdFx0XHRcdFx0PC90ZW1wbGF0ZTp0aGVuPlxuXHRcdFx0XHRcdFx0XHRcdFx0XHQ8dGVtcGxhdGU6ZWxzZT5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCAgICAgICAgdGV4dD1cIns9ICd7PSAoXFwke2ludGVybmFsPnRhYnMvaWdub3JlZEZpZWxkc1RpdGxlLycgKyAoXFwke3ZpZXc+dGFibGVDb250cm9sSWR9IHx8IFxcJHt2aWV3PmNoYXJ0Q29udHJvbElkfSkgKyAnfSApIH0nIH1cIlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZT1cIkluZm9ybWF0aW9uXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHNob3dJY29uPVwidHJ1ZVwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRzaG93Q2xvc2VCdXR0b249XCJ0cnVlXCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPVwic2FwVWlTbWFsbE1hcmdpblwiXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPVwiez0gJ3s9IChcXCR7aW50ZXJuYWw+dGFicy9pZ25vcmVkRmllbGRzLycgKyhcXCR7dmlldz50YWJsZUNvbnRyb2xJZH0gfHwgXFwke3ZpZXc+Y2hhcnRDb250cm9sSWR9KSArICd9IHx8IFtdKS5sZW5ndGg+MCB9JyB9XCJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9NZXNzYWdlU3RyaXA+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PGNvcmU6RnJhZ21lbnQgZnJhZ21lbnROYW1lPVwic2FwLmZlLnRlbXBsYXRlcy5MaXN0UmVwb3J0LnZpZXcuZnJhZ21lbnRzLkNvbGxlY3Rpb25WaXN1YWxpemF0aW9uXCIgdHlwZT1cIlhNTFwiIC8+XG5cdFx0XHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU6ZWxzZT5cblx0XHRcdFx0XHRcdFx0XHRcdDwvdGVtcGxhdGU6aWY+XG5cdFx0XHRcdFx0XHRcdFx0PC9jb250ZW50PlxuXHRcdFx0XHRcdFx0XHQ8L0ljb25UYWJGaWx0ZXI+XG5cdFx0XHRcdFx0XHQ8L3RlbXBsYXRlOndpdGg+PC90ZW1wbGF0ZTp3aXRoPmA7XG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0XHQuam9pbihcIlwiKX1cblx0XHRcdFx0PC9pdGVtcz5cblx0XHRcdDwvSWNvblRhYkJhcj5gO1xuXHR9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { BuildingBlockBase, defineBuildingBlock, xmlAttribute } from "sap/fe/core/buildingBlocks/BuildingBlock";
2
2
  import { xml } from "sap/fe/core/buildingBlocks/BuildingBlockRuntime";
3
- import { ListReportDefinition } from "sap/fe/core/converters/templates/ListReportConverter";
3
+ import type { ListReportDefinition } from "sap/fe/core/converters/templates/ListReportConverter";
4
4
 
5
5
  @defineBuildingBlock({ name: "MultipleMode", namespace: "sap.fe.templates.ListReport.view.fragments", isOpen: true })
6
6
  export default class MultipleMode extends BuildingBlockBase {
@@ -6,7 +6,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
6
6
  "use strict";
7
7
 
8
8
  var defineUI5Class = ClassSupport.defineUI5Class;
9
- var SideContentLayoutID = ID.SideContentLayoutID;
9
+ var getSideContentLayoutID = ID.getSideContentLayoutID;
10
10
 
11
11
  function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
12
12
 
@@ -27,11 +27,10 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
27
27
  * Refreshes either the whole object page or only parts of it.
28
28
  *
29
29
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#refresh
30
- * @param {string | string[]} [vPath] Path or array of paths referring to entities or properties to be refreshed.
30
+ * @param [vPath] Path or array of paths referring to entities or properties to be refreshed.
31
31
  * If omitted, the whole object page is refreshed. The path "" refreshes the entity assigned to the object page
32
32
  * without navigations
33
- * @returns {Promise} Resolved once the data is refreshed or rejected if the request failed
34
- *
33
+ * @returns Resolved once the data is refreshed or rejected if the request failed
35
34
  * @public
36
35
  */
37
36
  _proto.refresh = function refresh(vPath) {
@@ -64,7 +63,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
64
63
  $PropertyPath: "*"
65
64
  });
66
65
  } else {
67
- sKind = oMetaModel.getObject("/" + sBaseEntitySet + "/" + sPath + "/$kind");
66
+ sKind = oMetaModel.getObject("/".concat(sBaseEntitySet, "/").concat(sPath, "/$kind"));
68
67
 
69
68
  if (sKind === "NavigationProperty") {
70
69
  oSideEffects.TargetEntities.push({
@@ -75,7 +74,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
75
74
  $PropertyPath: sPath
76
75
  });
77
76
  } else {
78
- return Promise.reject(sPath + " is not a valid path to be refreshed");
77
+ return Promise.reject("".concat(sPath, " is not a valid path to be refreshed"));
79
78
  }
80
79
  }
81
80
  }
@@ -87,9 +86,8 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
87
86
  * Gets the list entries currently selected for the table.
88
87
  *
89
88
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#getSelectedContexts
90
- * @param {string} sTableId The ID identifying the table the selected context is requested for
91
- * @returns {sap.ui.model.odata.v4.Context[]} Array containing the selected contexts
92
- *
89
+ * @param sTableId The ID identifying the table the selected context is requested for
90
+ * @returns Array containing the selected contexts
93
91
  * @public
94
92
  */
95
93
  ;
@@ -107,15 +105,14 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
107
105
  * Displays or hides the side content of an object page block.
108
106
  *
109
107
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#showSideContent
110
- * @param {string} sSubSectionKey Key of the side content fragment as defined in the manifest.json
111
- * @param {boolean} [bShow] Optional Boolean flag to show or hide the side content
112
- *
108
+ * @param sSubSectionKey Key of the side content fragment as defined in the manifest.json
109
+ * @param [bShow] Optional Boolean flag to show or hide the side content
113
110
  * @public
114
111
  */
115
112
  ;
116
113
 
117
114
  _proto.showSideContent = function showSideContent(sSubSectionKey, bShow) {
118
- var sBlockID = SideContentLayoutID(sSubSectionKey),
115
+ var sBlockID = getSideContentLayoutID(sSubSectionKey),
119
116
  oBlock = this._view.byId(sBlockID),
120
117
  bBlockState = bShow === undefined ? !oBlock.getShowSideContent() : bShow;
121
118
 
@@ -125,8 +122,7 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
125
122
  * Gets the bound context of the current object page.
126
123
  *
127
124
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#getBindingContext
128
- * @returns {sap.ui.model.odata.v4.Context} Context bound to the object page
129
- *
125
+ * @returns Context bound to the object page
130
126
  * @public
131
127
  */
132
128
  ;
@@ -140,4 +136,4 @@ sap.ui.define(["sap/fe/core/CommonUtils", "sap/fe/core/converters/helpers/ID", "
140
136
 
141
137
  return ObjectPageExtensionAPI;
142
138
  }, false);
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4dGVuc2lvbkFQSS50cyJdLCJuYW1lcyI6WyJkZWZpbmVVSTVDbGFzcyIsIk9iamVjdFBhZ2VFeHRlbnNpb25BUEkiLCJyZWZyZXNoIiwidlBhdGgiLCJvQmluZGluZ0NvbnRleHQiLCJfdmlldyIsImdldEJpbmRpbmdDb250ZXh0Iiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50Iiwib1NpZGVFZmZlY3RzU2VydmljZSIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm9TaWRlRWZmZWN0cyIsIlRhcmdldFByb3BlcnRpZXMiLCJUYXJnZXRFbnRpdGllcyIsImFQYXRocyIsInNQYXRoIiwic0Jhc2VFbnRpdHlTZXQiLCJzS2luZCIsInVuZGVmaW5lZCIsInB1c2giLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsIkFycmF5IiwiaXNBcnJheSIsIl9jb250cm9sbGVyIiwiZ2V0T3duZXJDb21wb25lbnQiLCJnZXRFbnRpdHlTZXQiLCJpIiwibGVuZ3RoIiwiJFByb3BlcnR5UGF0aCIsImdldE9iamVjdCIsIlByb21pc2UiLCJyZWplY3QiLCJyZXF1ZXN0U2lkZUVmZmVjdHMiLCJjb25jYXQiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwic1RhYmxlSWQiLCJvVGFibGUiLCJieUlkIiwiaXNBIiwiZ2V0Q29udGVudCIsInNob3dTaWRlQ29udGVudCIsInNTdWJTZWN0aW9uS2V5IiwiYlNob3ciLCJzQmxvY2tJRCIsIlNpZGVDb250ZW50TGF5b3V0SUQiLCJvQmxvY2siLCJiQmxvY2tTdGF0ZSIsImdldFNob3dTaWRlQ29udGVudCIsInNldFNob3dTaWRlQ29udGVudCIsIkV4dGVuc2lvbkFQSSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUFNQUEsRUFBQUEsY0FBYyxDQUFDLDBDQUFELENBQWQ7O01BRU1DLHNCOzs7Ozs7Ozs7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O0FBQ25ERixRQUFBQSxNQUFNLEdBQUlBLE1BQUQsQ0FBcUNHLFVBQXJDLEVBQVQ7QUFDQTs7QUFDRCxhQUFRSCxNQUFNLElBQUlBLE1BQU0sQ0FBQ0UsR0FBUCxDQUFXLGtCQUFYLENBQVYsSUFBNkNGLE1BQUQsQ0FBZ0JGLG1CQUFoQixFQUE3QyxJQUF1RixFQUE5RjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7V0FDQ00sZSxHQUFBLHlCQUFnQkMsY0FBaEIsRUFBd0NDLEtBQXhDLEVBQW9FO0FBQ25FLFVBQU1DLFFBQVEsR0FBR0MsbUJBQW1CLENBQUNILGNBQUQsQ0FBcEM7QUFBQSxVQUNDSSxNQUFNLEdBQUcsS0FBSzVDLEtBQUwsQ0FBV29DLElBQVgsQ0FBZ0JNLFFBQWhCLENBRFY7QUFBQSxVQUVDRyxXQUFXLEdBQUdKLEtBQUssS0FBS3hCLFNBQVYsR0FBc0IsQ0FBRTJCLE1BQUQsQ0FBK0JFLGtCQUEvQixFQUF2QixHQUE2RUwsS0FGNUY7O0FBR0NHLE1BQUFBLE1BQUQsQ0FBK0JHLGtCQUEvQixDQUFrREYsV0FBbEQsRUFBK0QsS0FBL0Q7QUFDQTtBQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDNUMsaUIsR0FBQSw2QkFBb0I7QUFDbkIsYUFBTyxLQUFLRCxLQUFMLENBQVdDLGlCQUFYLEVBQVA7QUFDQSxLOzs7SUF0R21DK0MsWTs7U0F5R3RCcEQsc0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IFNpZGVDb250ZW50TGF5b3V0SUQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBFbmhhbmNlV2l0aFVJNSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IFRhYmxlQVBJIGZyb20gXCJzYXAvZmUvbWFjcm9zL1RhYmxlQVBJXCI7XG5pbXBvcnQgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5pbXBvcnQgT0RhdGFNZXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1ldGFNb2RlbFwiO1xuZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJXCIpO1xuXG5jbGFzcyBPYmplY3RQYWdlRXh0ZW5zaW9uQVBJIGV4dGVuZHMgRXh0ZW5zaW9uQVBJIHtcblx0LyoqXG5cdCAqIFJlZnJlc2hlcyBlaXRoZXIgdGhlIHdob2xlIG9iamVjdCBwYWdlIG9yIG9ubHkgcGFydHMgb2YgaXQuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI3JlZnJlc2hcblx0ICogQHBhcmFtIHtzdHJpbmcgfCBzdHJpbmdbXX0gW3ZQYXRoXSBQYXRoIG9yIGFycmF5IG9mIHBhdGhzIHJlZmVycmluZyB0byBlbnRpdGllcyBvciBwcm9wZXJ0aWVzIHRvIGJlIHJlZnJlc2hlZC5cblx0ICogSWYgb21pdHRlZCwgdGhlIHdob2xlIG9iamVjdCBwYWdlIGlzIHJlZnJlc2hlZC4gVGhlIHBhdGggXCJcIiByZWZyZXNoZXMgdGhlIGVudGl0eSBhc3NpZ25lZCB0byB0aGUgb2JqZWN0IHBhZ2Vcblx0ICogd2l0aG91dCBuYXZpZ2F0aW9uc1xuXHQgKiBAcmV0dXJucyB7UHJvbWlzZX0gUmVzb2x2ZWQgb25jZSB0aGUgZGF0YSBpcyByZWZyZXNoZWQgb3IgcmVqZWN0ZWQgaWYgdGhlIHJlcXVlc3QgZmFpbGVkXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHJlZnJlc2godlBhdGg6IHN0cmluZyB8IHN0cmluZ1tdIHwgdW5kZWZpbmVkKSB7XG5cdFx0Y29uc3Qgb0JpbmRpbmdDb250ZXh0ID0gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQsXG5cdFx0XHRvQXBwQ29tcG9uZW50ID0gQ29tbW9uVXRpbHMuZ2V0QXBwQ29tcG9uZW50KHRoaXMuX3ZpZXcpLFxuXHRcdFx0b1NpZGVFZmZlY3RzU2VydmljZSA9IG9BcHBDb21wb25lbnQuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCksXG5cdFx0XHRvTWV0YU1vZGVsID0gb0JpbmRpbmdDb250ZXh0LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCkgYXMgT0RhdGFNZXRhTW9kZWwsXG5cdFx0XHRvU2lkZUVmZmVjdHM6IGFueSA9IHtcblx0XHRcdFx0VGFyZ2V0UHJvcGVydGllczogW10sXG5cdFx0XHRcdFRhcmdldEVudGl0aWVzOiBbXVxuXHRcdFx0fTtcblx0XHRsZXQgYVBhdGhzLCBzUGF0aCwgc0Jhc2VFbnRpdHlTZXQsIHNLaW5kO1xuXG5cdFx0aWYgKHZQYXRoID09PSB1bmRlZmluZWQgfHwgdlBhdGggPT09IG51bGwpIHtcblx0XHRcdC8vIHdlIGp1c3QgYWRkIGFuIGVtcHR5IHBhdGggd2hpY2ggc2hvdWxkIHJlZnJlc2ggdGhlIHBhZ2Ugd2l0aCBhbGwgZGVwZW5kZW50IGJpbmRpbmdzXG5cdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0RW50aXRpZXMucHVzaCh7XG5cdFx0XHRcdCROYXZpZ2F0aW9uUHJvcGVydHlQYXRoOiBcIlwiXG5cdFx0XHR9KTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0YVBhdGhzID0gQXJyYXkuaXNBcnJheSh2UGF0aCkgPyB2UGF0aCA6IFt2UGF0aF07XG5cdFx0XHRzQmFzZUVudGl0eVNldCA9ICh0aGlzLl9jb250cm9sbGVyLmdldE93bmVyQ29tcG9uZW50KCkgYXMgYW55KS5nZXRFbnRpdHlTZXQoKTtcblxuXHRcdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBhUGF0aHMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0c1BhdGggPSBhUGF0aHNbaV07XG5cdFx0XHRcdGlmIChzUGF0aCA9PT0gXCJcIikge1xuXHRcdFx0XHRcdC8vIGFuIGVtcHR5IHBhdGggc2hhbGwgcmVmcmVzaCB0aGUgZW50aXR5IHdpdGhvdXQgZGVwZW5kZW5jaWVzIHdoaWNoIG1lYW5zICogZm9yIHRoZSBtb2RlbFxuXHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRQcm9wZXJ0aWVzLnB1c2goe1xuXHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogXCIqXCJcblx0XHRcdFx0XHR9KTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzS2luZCA9IG9NZXRhTW9kZWwuZ2V0T2JqZWN0KFwiL1wiICsgc0Jhc2VFbnRpdHlTZXQgKyBcIi9cIiArIHNQYXRoICsgXCIvJGtpbmRcIik7XG5cblx0XHRcdFx0XHRpZiAoc0tpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRFbnRpdGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IHNQYXRoXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHNLaW5kKSB7XG5cdFx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogc1BhdGhcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3Qoc1BhdGggKyBcIiBpcyBub3QgYSB2YWxpZCBwYXRoIHRvIGJlIHJlZnJlc2hlZFwiKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0cmV0dXJuIG9TaWRlRWZmZWN0c1NlcnZpY2UucmVxdWVzdFNpZGVFZmZlY3RzKG9TaWRlRWZmZWN0cy5UYXJnZXRFbnRpdGllcy5jb25jYXQob1NpZGVFZmZlY3RzLlRhcmdldFByb3BlcnRpZXMpLCBvQmluZGluZ0NvbnRleHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGxpc3QgZW50cmllcyBjdXJyZW50bHkgc2VsZWN0ZWQgZm9yIHRoZSB0YWJsZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjZ2V0U2VsZWN0ZWRDb250ZXh0c1xuXHQgKiBAcGFyYW0ge3N0cmluZ30gc1RhYmxlSWQgVGhlIElEIGlkZW50aWZ5aW5nIHRoZSB0YWJsZSB0aGUgc2VsZWN0ZWQgY29udGV4dCBpcyByZXF1ZXN0ZWQgZm9yXG5cdCAqIEByZXR1cm5zIHtzYXAudWkubW9kZWwub2RhdGEudjQuQ29udGV4dFtdfSBBcnJheSBjb250YWluaW5nIHRoZSBzZWxlY3RlZCBjb250ZXh0c1xuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRTZWxlY3RlZENvbnRleHRzKHNUYWJsZUlkOiBzdHJpbmcpIHtcblx0XHRsZXQgb1RhYmxlID0gdGhpcy5fdmlldy5ieUlkKHNUYWJsZUlkKTtcblx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0EoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpKSB7XG5cdFx0XHRvVGFibGUgPSAob1RhYmxlIGFzIEVuaGFuY2VXaXRoVUk1PFRhYmxlQVBJPikuZ2V0Q29udGVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKG9UYWJsZSAmJiBvVGFibGUuaXNBKFwic2FwLnVpLm1kYy5UYWJsZVwiKSAmJiAob1RhYmxlIGFzIGFueSkuZ2V0U2VsZWN0ZWRDb250ZXh0cygpKSB8fCBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBvciBoaWRlcyB0aGUgc2lkZSBjb250ZW50IG9mIGFuIG9iamVjdCBwYWdlIGJsb2NrLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNzaG93U2lkZUNvbnRlbnRcblx0ICogQHBhcmFtIHtzdHJpbmd9IHNTdWJTZWN0aW9uS2V5IEtleSBvZiB0aGUgc2lkZSBjb250ZW50IGZyYWdtZW50IGFzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0Lmpzb25cblx0ICogQHBhcmFtIHtib29sZWFufSBbYlNob3ddIE9wdGlvbmFsIEJvb2xlYW4gZmxhZyB0byBzaG93IG9yIGhpZGUgdGhlIHNpZGUgY29udGVudFxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRzaG93U2lkZUNvbnRlbnQoc1N1YlNlY3Rpb25LZXk6IHN0cmluZywgYlNob3c6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcblx0XHRjb25zdCBzQmxvY2tJRCA9IFNpZGVDb250ZW50TGF5b3V0SUQoc1N1YlNlY3Rpb25LZXkpLFxuXHRcdFx0b0Jsb2NrID0gdGhpcy5fdmlldy5ieUlkKHNCbG9ja0lEKSxcblx0XHRcdGJCbG9ja1N0YXRlID0gYlNob3cgPT09IHVuZGVmaW5lZCA/ICEob0Jsb2NrIGFzIER5bmFtaWNTaWRlQ29udGVudCkuZ2V0U2hvd1NpZGVDb250ZW50KCkgOiBiU2hvdztcblx0XHQob0Jsb2NrIGFzIER5bmFtaWNTaWRlQ29udGVudCkuc2V0U2hvd1NpZGVDb250ZW50KGJCbG9ja1N0YXRlLCBmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogR2V0cyB0aGUgYm91bmQgY29udGV4dCBvZiB0aGUgY3VycmVudCBvYmplY3QgcGFnZS5cblx0ICpcblx0ICogQGFsaWFzIHNhcC5mZS50ZW1wbGF0ZXMuT2JqZWN0UGFnZS5FeHRlbnNpb25BUEkjZ2V0QmluZGluZ0NvbnRleHRcblx0ICogQHJldHVybnMge3NhcC51aS5tb2RlbC5vZGF0YS52NC5Db250ZXh0fSBDb250ZXh0IGJvdW5kIHRvIHRoZSBvYmplY3QgcGFnZVxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRCaW5kaW5nQ29udGV4dCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9iamVjdFBhZ2VFeHRlbnNpb25BUEk7XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkV4dGVuc2lvbkFQSS50cyJdLCJuYW1lcyI6WyJkZWZpbmVVSTVDbGFzcyIsIk9iamVjdFBhZ2VFeHRlbnNpb25BUEkiLCJyZWZyZXNoIiwidlBhdGgiLCJvQmluZGluZ0NvbnRleHQiLCJfdmlldyIsImdldEJpbmRpbmdDb250ZXh0Iiwib0FwcENvbXBvbmVudCIsIkNvbW1vblV0aWxzIiwiZ2V0QXBwQ29tcG9uZW50Iiwib1NpZGVFZmZlY3RzU2VydmljZSIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsIm9NZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm9TaWRlRWZmZWN0cyIsIlRhcmdldFByb3BlcnRpZXMiLCJUYXJnZXRFbnRpdGllcyIsImFQYXRocyIsInNQYXRoIiwic0Jhc2VFbnRpdHlTZXQiLCJzS2luZCIsInVuZGVmaW5lZCIsInB1c2giLCIkTmF2aWdhdGlvblByb3BlcnR5UGF0aCIsIkFycmF5IiwiaXNBcnJheSIsIl9jb250cm9sbGVyIiwiZ2V0T3duZXJDb21wb25lbnQiLCJnZXRFbnRpdHlTZXQiLCJpIiwibGVuZ3RoIiwiJFByb3BlcnR5UGF0aCIsImdldE9iamVjdCIsIlByb21pc2UiLCJyZWplY3QiLCJyZXF1ZXN0U2lkZUVmZmVjdHMiLCJjb25jYXQiLCJnZXRTZWxlY3RlZENvbnRleHRzIiwic1RhYmxlSWQiLCJvVGFibGUiLCJieUlkIiwiaXNBIiwiZ2V0Q29udGVudCIsInNob3dTaWRlQ29udGVudCIsInNTdWJTZWN0aW9uS2V5IiwiYlNob3ciLCJzQmxvY2tJRCIsImdldFNpZGVDb250ZW50TGF5b3V0SUQiLCJvQmxvY2siLCJiQmxvY2tTdGF0ZSIsImdldFNob3dTaWRlQ29udGVudCIsInNldFNob3dTaWRlQ29udGVudCIsIkV4dGVuc2lvbkFQSSJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTs7Ozs7Ozs7Ozs7QUFPQUEsRUFBQUEsY0FBYyxDQUFDLDBDQUFELENBQWQ7O01BRU1DLHNCOzs7Ozs7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QUFUO0FBQ0E7O0FBQ0QsYUFBUUgsTUFBTSxJQUFJQSxNQUFNLENBQUNFLEdBQVAsQ0FBVyxrQkFBWCxDQUFWLElBQTZDRixNQUFELENBQWdCRixtQkFBaEIsRUFBN0MsSUFBdUYsRUFBOUY7QUFDQTtBQUVEO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDTSxlLEdBQUEseUJBQWdCQyxjQUFoQixFQUF3Q0MsS0FBeEMsRUFBb0U7QUFDbkUsVUFBTUMsUUFBUSxHQUFHQyxzQkFBc0IsQ0FBQ0gsY0FBRCxDQUF2QztBQUFBLFVBQ0NJLE1BQU0sR0FBRyxLQUFLNUMsS0FBTCxDQUFXb0MsSUFBWCxDQUFnQk0sUUFBaEIsQ0FEVjtBQUFBLFVBRUNHLFdBQVcsR0FBR0osS0FBSyxLQUFLeEIsU0FBVixHQUFzQixDQUFFMkIsTUFBRCxDQUErQkUsa0JBQS9CLEVBQXZCLEdBQTZFTCxLQUY1Rjs7QUFHQ0csTUFBQUEsTUFBRCxDQUErQkcsa0JBQS9CLENBQWtERixXQUFsRCxFQUErRCxLQUEvRDtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztXQUNDNUMsaUIsR0FBQSw2QkFBb0I7QUFDbkIsYUFBTyxLQUFLRCxLQUFMLENBQVdDLGlCQUFYLEVBQVA7QUFDQSxLOzs7SUFsR21DK0MsWTs7U0FxR3RCcEQsc0IiLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCB7IGdldFNpZGVDb250ZW50TGF5b3V0SUQgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udmVydGVycy9oZWxwZXJzL0lEXCI7XG5pbXBvcnQgRXh0ZW5zaW9uQVBJIGZyb20gXCJzYXAvZmUvY29yZS9FeHRlbnNpb25BUElcIjtcbmltcG9ydCB0eXBlIHsgRW5oYW5jZVdpdGhVSTUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBUYWJsZUFQSSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9UYWJsZUFQSVwiO1xuaW1wb3J0IHR5cGUgRHluYW1pY1NpZGVDb250ZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L0R5bmFtaWNTaWRlQ29udGVudFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTWV0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNZXRhTW9kZWxcIjtcbmRlZmluZVVJNUNsYXNzKFwic2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSVwiKTtcblxuY2xhc3MgT2JqZWN0UGFnZUV4dGVuc2lvbkFQSSBleHRlbmRzIEV4dGVuc2lvbkFQSSB7XG5cdC8qKlxuXHQgKiBSZWZyZXNoZXMgZWl0aGVyIHRoZSB3aG9sZSBvYmplY3QgcGFnZSBvciBvbmx5IHBhcnRzIG9mIGl0LlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNyZWZyZXNoXG5cdCAqIEBwYXJhbSBbdlBhdGhdIFBhdGggb3IgYXJyYXkgb2YgcGF0aHMgcmVmZXJyaW5nIHRvIGVudGl0aWVzIG9yIHByb3BlcnRpZXMgdG8gYmUgcmVmcmVzaGVkLlxuXHQgKiBJZiBvbWl0dGVkLCB0aGUgd2hvbGUgb2JqZWN0IHBhZ2UgaXMgcmVmcmVzaGVkLiBUaGUgcGF0aCBcIlwiIHJlZnJlc2hlcyB0aGUgZW50aXR5IGFzc2lnbmVkIHRvIHRoZSBvYmplY3QgcGFnZVxuXHQgKiB3aXRob3V0IG5hdmlnYXRpb25zXG5cdCAqIEByZXR1cm5zIFJlc29sdmVkIG9uY2UgdGhlIGRhdGEgaXMgcmVmcmVzaGVkIG9yIHJlamVjdGVkIGlmIHRoZSByZXF1ZXN0IGZhaWxlZFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRyZWZyZXNoKHZQYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IG9CaW5kaW5nQ29udGV4dCA9IHRoaXMuX3ZpZXcuZ2V0QmluZGluZ0NvbnRleHQoKSBhcyBDb250ZXh0LFxuXHRcdFx0b0FwcENvbXBvbmVudCA9IENvbW1vblV0aWxzLmdldEFwcENvbXBvbmVudCh0aGlzLl92aWV3KSxcblx0XHRcdG9TaWRlRWZmZWN0c1NlcnZpY2UgPSBvQXBwQ29tcG9uZW50LmdldFNpZGVFZmZlY3RzU2VydmljZSgpLFxuXHRcdFx0b01ldGFNb2RlbCA9IG9CaW5kaW5nQ29udGV4dC5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpIGFzIE9EYXRhTWV0YU1vZGVsLFxuXHRcdFx0b1NpZGVFZmZlY3RzOiBhbnkgPSB7XG5cdFx0XHRcdFRhcmdldFByb3BlcnRpZXM6IFtdLFxuXHRcdFx0XHRUYXJnZXRFbnRpdGllczogW11cblx0XHRcdH07XG5cdFx0bGV0IGFQYXRocywgc1BhdGgsIHNCYXNlRW50aXR5U2V0LCBzS2luZDtcblxuXHRcdGlmICh2UGF0aCA9PT0gdW5kZWZpbmVkIHx8IHZQYXRoID09PSBudWxsKSB7XG5cdFx0XHQvLyB3ZSBqdXN0IGFkZCBhbiBlbXB0eSBwYXRoIHdoaWNoIHNob3VsZCByZWZyZXNoIHRoZSBwYWdlIHdpdGggYWxsIGRlcGVuZGVudCBiaW5kaW5nc1xuXHRcdFx0b1NpZGVFZmZlY3RzLlRhcmdldEVudGl0aWVzLnB1c2goe1xuXHRcdFx0XHQkTmF2aWdhdGlvblByb3BlcnR5UGF0aDogXCJcIlxuXHRcdFx0fSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFQYXRocyA9IEFycmF5LmlzQXJyYXkodlBhdGgpID8gdlBhdGggOiBbdlBhdGhdO1xuXHRcdFx0c0Jhc2VFbnRpdHlTZXQgPSAodGhpcy5fY29udHJvbGxlci5nZXRPd25lckNvbXBvbmVudCgpIGFzIGFueSkuZ2V0RW50aXR5U2V0KCk7XG5cblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgYVBhdGhzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdHNQYXRoID0gYVBhdGhzW2ldO1xuXHRcdFx0XHRpZiAoc1BhdGggPT09IFwiXCIpIHtcblx0XHRcdFx0XHQvLyBhbiBlbXB0eSBwYXRoIHNoYWxsIHJlZnJlc2ggdGhlIGVudGl0eSB3aXRob3V0IGRlcGVuZGVuY2llcyB3aGljaCBtZWFucyAqIGZvciB0aGUgbW9kZWxcblx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdCRQcm9wZXJ0eVBhdGg6IFwiKlwiXG5cdFx0XHRcdFx0fSk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c0tpbmQgPSBvTWV0YU1vZGVsLmdldE9iamVjdChgLyR7c0Jhc2VFbnRpdHlTZXR9LyR7c1BhdGh9LyRraW5kYCk7XG5cblx0XHRcdFx0XHRpZiAoc0tpbmQgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCIpIHtcblx0XHRcdFx0XHRcdG9TaWRlRWZmZWN0cy5UYXJnZXRFbnRpdGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JE5hdmlnYXRpb25Qcm9wZXJ0eVBhdGg6IHNQYXRoXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9IGVsc2UgaWYgKHNLaW5kKSB7XG5cdFx0XHRcdFx0XHRvU2lkZUVmZmVjdHMuVGFyZ2V0UHJvcGVydGllcy5wdXNoKHtcblx0XHRcdFx0XHRcdFx0JFByb3BlcnR5UGF0aDogc1BhdGhcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZWplY3QoYCR7c1BhdGh9IGlzIG5vdCBhIHZhbGlkIHBhdGggdG8gYmUgcmVmcmVzaGVkYCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBvU2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhvU2lkZUVmZmVjdHMuVGFyZ2V0RW50aXRpZXMuY29uY2F0KG9TaWRlRWZmZWN0cy5UYXJnZXRQcm9wZXJ0aWVzKSwgb0JpbmRpbmdDb250ZXh0KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBsaXN0IGVudHJpZXMgY3VycmVudGx5IHNlbGVjdGVkIGZvciB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBhbGlhcyBzYXAuZmUudGVtcGxhdGVzLk9iamVjdFBhZ2UuRXh0ZW5zaW9uQVBJI2dldFNlbGVjdGVkQ29udGV4dHNcblx0ICogQHBhcmFtIHNUYWJsZUlkIFRoZSBJRCBpZGVudGlmeWluZyB0aGUgdGFibGUgdGhlIHNlbGVjdGVkIGNvbnRleHQgaXMgcmVxdWVzdGVkIGZvclxuXHQgKiBAcmV0dXJucyBBcnJheSBjb250YWluaW5nIHRoZSBzZWxlY3RlZCBjb250ZXh0c1xuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRTZWxlY3RlZENvbnRleHRzKHNUYWJsZUlkOiBzdHJpbmcpIHtcblx0XHRsZXQgb1RhYmxlID0gdGhpcy5fdmlldy5ieUlkKHNUYWJsZUlkKTtcblx0XHRpZiAob1RhYmxlICYmIG9UYWJsZS5pc0EoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpKSB7XG5cdFx0XHRvVGFibGUgPSAob1RhYmxlIGFzIEVuaGFuY2VXaXRoVUk1PFRhYmxlQVBJPikuZ2V0Q29udGVudCgpO1xuXHRcdH1cblx0XHRyZXR1cm4gKG9UYWJsZSAmJiBvVGFibGUuaXNBKFwic2FwLnVpLm1kYy5UYWJsZVwiKSAmJiAob1RhYmxlIGFzIGFueSkuZ2V0U2VsZWN0ZWRDb250ZXh0cygpKSB8fCBbXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEaXNwbGF5cyBvciBoaWRlcyB0aGUgc2lkZSBjb250ZW50IG9mIGFuIG9iamVjdCBwYWdlIGJsb2NrLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNzaG93U2lkZUNvbnRlbnRcblx0ICogQHBhcmFtIHNTdWJTZWN0aW9uS2V5IEtleSBvZiB0aGUgc2lkZSBjb250ZW50IGZyYWdtZW50IGFzIGRlZmluZWQgaW4gdGhlIG1hbmlmZXN0Lmpzb25cblx0ICogQHBhcmFtIFtiU2hvd10gT3B0aW9uYWwgQm9vbGVhbiBmbGFnIHRvIHNob3cgb3IgaGlkZSB0aGUgc2lkZSBjb250ZW50XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHNob3dTaWRlQ29udGVudChzU3ViU2VjdGlvbktleTogc3RyaW5nLCBiU2hvdzogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xuXHRcdGNvbnN0IHNCbG9ja0lEID0gZ2V0U2lkZUNvbnRlbnRMYXlvdXRJRChzU3ViU2VjdGlvbktleSksXG5cdFx0XHRvQmxvY2sgPSB0aGlzLl92aWV3LmJ5SWQoc0Jsb2NrSUQpLFxuXHRcdFx0YkJsb2NrU3RhdGUgPSBiU2hvdyA9PT0gdW5kZWZpbmVkID8gIShvQmxvY2sgYXMgRHluYW1pY1NpZGVDb250ZW50KS5nZXRTaG93U2lkZUNvbnRlbnQoKSA6IGJTaG93O1xuXHRcdChvQmxvY2sgYXMgRHluYW1pY1NpZGVDb250ZW50KS5zZXRTaG93U2lkZUNvbnRlbnQoYkJsb2NrU3RhdGUsIGZhbHNlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBib3VuZCBjb250ZXh0IG9mIHRoZSBjdXJyZW50IG9iamVjdCBwYWdlLlxuXHQgKlxuXHQgKiBAYWxpYXMgc2FwLmZlLnRlbXBsYXRlcy5PYmplY3RQYWdlLkV4dGVuc2lvbkFQSSNnZXRCaW5kaW5nQ29udGV4dFxuXHQgKiBAcmV0dXJucyBDb250ZXh0IGJvdW5kIHRvIHRoZSBvYmplY3QgcGFnZVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRnZXRCaW5kaW5nQ29udGV4dCgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE9iamVjdFBhZ2VFeHRlbnNpb25BUEk7XG4iXX0=
@@ -1,11 +1,12 @@
1
1
  import CommonUtils from "sap/fe/core/CommonUtils";
2
- import { SideContentLayoutID } from "sap/fe/core/converters/helpers/ID";
2
+ import { getSideContentLayoutID } from "sap/fe/core/converters/helpers/ID";
3
3
  import ExtensionAPI from "sap/fe/core/ExtensionAPI";
4
- import { defineUI5Class, EnhanceWithUI5 } from "sap/fe/core/helpers/ClassSupport";
5
- import TableAPI from "sap/fe/macros/TableAPI";
6
- import DynamicSideContent from "sap/ui/layout/DynamicSideContent";
7
- import Context from "sap/ui/model/odata/v4/Context";
8
- import ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
4
+ import type { EnhanceWithUI5 } from "sap/fe/core/helpers/ClassSupport";
5
+ import { defineUI5Class } from "sap/fe/core/helpers/ClassSupport";
6
+ import type TableAPI from "sap/fe/macros/TableAPI";
7
+ import type DynamicSideContent from "sap/ui/layout/DynamicSideContent";
8
+ import type Context from "sap/ui/model/odata/v4/Context";
9
+ import type ODataMetaModel from "sap/ui/model/odata/v4/ODataMetaModel";
9
10
  defineUI5Class("sap.fe.templates.ObjectPage.ExtensionAPI");
10
11
 
11
12
  class ObjectPageExtensionAPI extends ExtensionAPI {
@@ -13,11 +14,10 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
13
14
  * Refreshes either the whole object page or only parts of it.
14
15
  *
15
16
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#refresh
16
- * @param {string | string[]} [vPath] Path or array of paths referring to entities or properties to be refreshed.
17
+ * @param [vPath] Path or array of paths referring to entities or properties to be refreshed.
17
18
  * If omitted, the whole object page is refreshed. The path "" refreshes the entity assigned to the object page
18
19
  * without navigations
19
- * @returns {Promise} Resolved once the data is refreshed or rejected if the request failed
20
- *
20
+ * @returns Resolved once the data is refreshed or rejected if the request failed
21
21
  * @public
22
22
  */
23
23
  refresh(vPath: string | string[] | undefined) {
@@ -48,7 +48,7 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
48
48
  $PropertyPath: "*"
49
49
  });
50
50
  } else {
51
- sKind = oMetaModel.getObject("/" + sBaseEntitySet + "/" + sPath + "/$kind");
51
+ sKind = oMetaModel.getObject(`/${sBaseEntitySet}/${sPath}/$kind`);
52
52
 
53
53
  if (sKind === "NavigationProperty") {
54
54
  oSideEffects.TargetEntities.push({
@@ -59,7 +59,7 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
59
59
  $PropertyPath: sPath
60
60
  });
61
61
  } else {
62
- return Promise.reject(sPath + " is not a valid path to be refreshed");
62
+ return Promise.reject(`${sPath} is not a valid path to be refreshed`);
63
63
  }
64
64
  }
65
65
  }
@@ -71,9 +71,8 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
71
71
  * Gets the list entries currently selected for the table.
72
72
  *
73
73
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#getSelectedContexts
74
- * @param {string} sTableId The ID identifying the table the selected context is requested for
75
- * @returns {sap.ui.model.odata.v4.Context[]} Array containing the selected contexts
76
- *
74
+ * @param sTableId The ID identifying the table the selected context is requested for
75
+ * @returns Array containing the selected contexts
77
76
  * @public
78
77
  */
79
78
  getSelectedContexts(sTableId: string) {
@@ -88,13 +87,12 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
88
87
  * Displays or hides the side content of an object page block.
89
88
  *
90
89
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#showSideContent
91
- * @param {string} sSubSectionKey Key of the side content fragment as defined in the manifest.json
92
- * @param {boolean} [bShow] Optional Boolean flag to show or hide the side content
93
- *
90
+ * @param sSubSectionKey Key of the side content fragment as defined in the manifest.json
91
+ * @param [bShow] Optional Boolean flag to show or hide the side content
94
92
  * @public
95
93
  */
96
94
  showSideContent(sSubSectionKey: string, bShow: boolean | undefined) {
97
- const sBlockID = SideContentLayoutID(sSubSectionKey),
95
+ const sBlockID = getSideContentLayoutID(sSubSectionKey),
98
96
  oBlock = this._view.byId(sBlockID),
99
97
  bBlockState = bShow === undefined ? !(oBlock as DynamicSideContent).getShowSideContent() : bShow;
100
98
  (oBlock as DynamicSideContent).setShowSideContent(bBlockState, false);
@@ -104,8 +102,7 @@ class ObjectPageExtensionAPI extends ExtensionAPI {
104
102
  * Gets the bound context of the current object page.
105
103
  *
106
104
  * @alias sap.fe.templates.ObjectPage.ExtensionAPI#getBindingContext
107
- * @returns {sap.ui.model.odata.v4.Context} Context bound to the object page
108
- *
105
+ * @returns Context bound to the object page
109
106
  * @public
110
107
  */
111
108
  getBindingContext() {