@sapui5/sap.fe.core 1.130.1 → 1.131.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 (154) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/ActionRuntime.js +3 -3
  4. package/src/sap/fe/core/ActionRuntime.ts +1 -1
  5. package/src/sap/fe/core/AppComponent.js +4 -11
  6. package/src/sap/fe/core/AppComponent.ts +3 -12
  7. package/src/sap/fe/core/CommonUtils.js +13 -13
  8. package/src/sap/fe/core/CommonUtils.ts +16 -16
  9. package/src/sap/fe/core/TemplateComponent.js +4 -1
  10. package/src/sap/fe/core/TemplateComponent.ts +2 -0
  11. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +248 -0
  12. package/src/sap/fe/core/buildingBlocks/{BuildingBlockBase.ts → BuildingBlock.ts} +73 -132
  13. package/src/sap/fe/core/controllerextensions/EditFlow.js +17 -7
  14. package/src/sap/fe/core/controllerextensions/EditFlow.ts +17 -6
  15. package/src/sap/fe/core/controllerextensions/InternalRouting.js +5 -2
  16. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +4 -0
  17. package/src/sap/fe/core/controllerextensions/KPIManagement.js +47 -19
  18. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +57 -19
  19. package/src/sap/fe/core/controllerextensions/PageReady.js +20 -18
  20. package/src/sap/fe/core/controllerextensions/PageReady.ts +19 -18
  21. package/src/sap/fe/core/controllerextensions/Placeholder.js +5 -1
  22. package/src/sap/fe/core/controllerextensions/Placeholder.ts +5 -0
  23. package/src/sap/fe/core/controllerextensions/Routing.js +2 -2
  24. package/src/sap/fe/core/controllerextensions/Routing.ts +1 -1
  25. package/src/sap/fe/core/controllerextensions/Share.js +3 -2
  26. package/src/sap/fe/core/controllerextensions/Share.ts +2 -1
  27. package/src/sap/fe/core/controllerextensions/ViewState.js +5 -1
  28. package/src/sap/fe/core/controllerextensions/ViewState.ts +4 -0
  29. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +1 -2
  30. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +0 -1
  31. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +4 -4
  32. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +3 -0
  33. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +3 -4
  34. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +2 -2
  35. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.js +16 -19
  36. package/src/sap/fe/core/controllerextensions/editFlow/operations/facade.ts +29 -28
  37. package/src/sap/fe/core/controllerextensions/editFlow/sticky.js +5 -5
  38. package/src/sap/fe/core/controllerextensions/editFlow/sticky.ts +4 -1
  39. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +77 -35
  40. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +88 -43
  41. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.js +3 -7
  42. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributor.ts +0 -4
  43. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.js +70 -0
  44. package/src/sap/fe/core/controllerextensions/viewState/IViewStateContributorMixin.ts +99 -0
  45. package/src/sap/fe/core/controls/FormElementWrapper.js +1 -1
  46. package/src/sap/fe/core/controls/FormElementWrapper.ts +1 -1
  47. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.js +14 -2
  48. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.block.tsx +20 -6
  49. package/src/sap/fe/core/converters/ConverterContext.js +10 -3
  50. package/src/sap/fe/core/converters/ConverterContext.ts +8 -1
  51. package/src/sap/fe/core/converters/ManifestSettings.js +1 -1
  52. package/src/sap/fe/core/converters/ManifestSettings.ts +2 -1
  53. package/src/sap/fe/core/converters/controls/Common/Action.js +2 -2
  54. package/src/sap/fe/core/converters/controls/Common/Action.ts +5 -1
  55. package/src/sap/fe/core/converters/controls/Common/Chart.js +1 -1
  56. package/src/sap/fe/core/converters/controls/Common/Chart.ts +10 -5
  57. package/src/sap/fe/core/converters/controls/Common/KPI.js +26 -9
  58. package/src/sap/fe/core/converters/controls/Common/KPI.ts +48 -5
  59. package/src/sap/fe/core/converters/controls/Common/Table.js +43 -46
  60. package/src/sap/fe/core/converters/controls/Common/Table.ts +68 -57
  61. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +2 -1
  62. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +1 -0
  63. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +2 -3
  64. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +2 -2
  65. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.js +12 -8
  66. package/src/sap/fe/core/converters/controls/ListReport/VisualFilters.ts +10 -6
  67. package/src/sap/fe/core/fpm/manifest.json +1 -1
  68. package/src/sap/fe/core/helpers/AppStartupHelper.js +7 -9
  69. package/src/sap/fe/core/helpers/AppStartupHelper.ts +6 -13
  70. package/src/sap/fe/core/helpers/BindingHelper.js +2 -2
  71. package/src/sap/fe/core/helpers/BindingHelper.ts +1 -1
  72. package/src/sap/fe/core/helpers/DeleteHelper.js +3 -2
  73. package/src/sap/fe/core/helpers/DeleteHelper.ts +2 -1
  74. package/src/sap/fe/core/helpers/MetaPath.js +16 -2
  75. package/src/sap/fe/core/helpers/MetaPath.ts +19 -1
  76. package/src/sap/fe/core/helpers/RecommendationHelper.js +2 -2
  77. package/src/sap/fe/core/helpers/RecommendationHelper.ts +1 -1
  78. package/src/sap/fe/core/helpers/ResourceModelHelper.js +8 -3
  79. package/src/sap/fe/core/helpers/ResourceModelHelper.ts +9 -2
  80. package/src/sap/fe/core/library.js +5 -2
  81. package/src/sap/fe/core/library.support.js +3 -3
  82. package/src/sap/fe/core/library.support.ts +2 -1
  83. package/src/sap/fe/core/library.ts +4 -0
  84. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.js +17 -8
  85. package/src/sap/fe/core/manifestMerger/ChangePageConfiguration.ts +16 -14
  86. package/src/sap/fe/core/messagebundle.properties +6 -0
  87. package/src/sap/fe/core/messagebundle_ar.properties +11 -3
  88. package/src/sap/fe/core/messagebundle_bg.properties +14 -6
  89. package/src/sap/fe/core/messagebundle_ca.properties +10 -2
  90. package/src/sap/fe/core/messagebundle_cnr.properties +10 -2
  91. package/src/sap/fe/core/messagebundle_cs.properties +10 -2
  92. package/src/sap/fe/core/messagebundle_cy.properties +10 -2
  93. package/src/sap/fe/core/messagebundle_da.properties +10 -2
  94. package/src/sap/fe/core/messagebundle_de.properties +12 -4
  95. package/src/sap/fe/core/messagebundle_el.properties +10 -2
  96. package/src/sap/fe/core/messagebundle_en.properties +9 -1
  97. package/src/sap/fe/core/messagebundle_en_GB.properties +10 -2
  98. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +10 -2
  99. package/src/sap/fe/core/messagebundle_es.properties +12 -4
  100. package/src/sap/fe/core/messagebundle_es_MX.properties +10 -2
  101. package/src/sap/fe/core/messagebundle_et.properties +10 -2
  102. package/src/sap/fe/core/messagebundle_fi.properties +10 -2
  103. package/src/sap/fe/core/messagebundle_fr.properties +10 -2
  104. package/src/sap/fe/core/messagebundle_fr_CA.properties +11 -3
  105. package/src/sap/fe/core/messagebundle_hi.properties +10 -2
  106. package/src/sap/fe/core/messagebundle_hr.properties +11 -3
  107. package/src/sap/fe/core/messagebundle_hu.properties +11 -3
  108. package/src/sap/fe/core/messagebundle_id.properties +10 -2
  109. package/src/sap/fe/core/messagebundle_it.properties +10 -2
  110. package/src/sap/fe/core/messagebundle_iw.properties +11 -3
  111. package/src/sap/fe/core/messagebundle_ja.properties +10 -2
  112. package/src/sap/fe/core/messagebundle_kk.properties +10 -2
  113. package/src/sap/fe/core/messagebundle_ko.properties +10 -2
  114. package/src/sap/fe/core/messagebundle_lt.properties +10 -2
  115. package/src/sap/fe/core/messagebundle_lv.properties +10 -2
  116. package/src/sap/fe/core/messagebundle_mk.properties +10 -2
  117. package/src/sap/fe/core/messagebundle_ms.properties +10 -2
  118. package/src/sap/fe/core/messagebundle_nl.properties +12 -4
  119. package/src/sap/fe/core/messagebundle_no.properties +11 -3
  120. package/src/sap/fe/core/messagebundle_pl.properties +10 -2
  121. package/src/sap/fe/core/messagebundle_pt.properties +10 -2
  122. package/src/sap/fe/core/messagebundle_pt_PT.properties +10 -2
  123. package/src/sap/fe/core/messagebundle_ro.properties +10 -2
  124. package/src/sap/fe/core/messagebundle_ru.properties +10 -2
  125. package/src/sap/fe/core/messagebundle_sh.properties +10 -2
  126. package/src/sap/fe/core/messagebundle_sk.properties +10 -2
  127. package/src/sap/fe/core/messagebundle_sl.properties +10 -2
  128. package/src/sap/fe/core/messagebundle_sr.properties +10 -2
  129. package/src/sap/fe/core/messagebundle_sv.properties +10 -2
  130. package/src/sap/fe/core/messagebundle_th.properties +12 -4
  131. package/src/sap/fe/core/messagebundle_tr.properties +12 -4
  132. package/src/sap/fe/core/messagebundle_uk.properties +10 -2
  133. package/src/sap/fe/core/messagebundle_vi.properties +11 -3
  134. package/src/sap/fe/core/messagebundle_zh_CN.properties +10 -2
  135. package/src/sap/fe/core/messagebundle_zh_TW.properties +10 -2
  136. package/src/sap/fe/core/operationsHelper.js +4 -4
  137. package/src/sap/fe/core/operationsHelper.ts +4 -4
  138. package/src/sap/fe/core/rootView/Fcl.controller.js +2 -2
  139. package/src/sap/fe/core/rootView/Fcl.controller.ts +4 -1
  140. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +5 -5
  141. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +4 -3
  142. package/src/sap/fe/core/services/NavigationServiceFactory.js +1 -28
  143. package/src/sap/fe/core/services/NavigationServiceFactory.ts +3 -35
  144. package/src/sap/fe/core/services/RoutingServiceFactory.js +2 -4
  145. package/src/sap/fe/core/services/RoutingServiceFactory.ts +1 -3
  146. package/src/sap/fe/core/services/ShellServicesFactory.js +2 -13
  147. package/src/sap/fe/core/services/ShellServicesFactory.ts +1 -17
  148. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +5 -3
  149. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +3 -1
  150. package/src/sap/fe/core/templating/DataFieldFormatters.js +13 -6
  151. package/src/sap/fe/core/templating/DataFieldFormatters.ts +13 -6
  152. package/src/sap/fe/core/templating/UIFormatters.js +3 -3
  153. package/src/sap/fe/core/templating/UIFormatters.ts +4 -3
  154. package/src/sap/fe/core/buildingBlocks/BuildingBlockBase.js +0 -326
@@ -43,7 +43,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/helpers/ModelHelper", "s
43
43
  */
44
44
  _proto.onBeforeNavigation = async function onBeforeNavigation(mNavigationParameters) {
45
45
  // to be overriden by the application
46
- return false;
46
+ return Promise.resolve(false);
47
47
  }
48
48
 
49
49
  /**
@@ -117,4 +117,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/helpers/ModelHelper", "s
117
117
  }(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "onBeforeNavigation", [_dec2, _dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeNavigation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "navigate", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "navigate"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeBinding", [_dec6, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onAfterBinding", [_dec8, _dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "onAfterBinding"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "navigateToRoute", [_dec10, _dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "navigateToRoute"), _class2.prototype)), _class2)) || _class);
118
118
  return Routing;
119
119
  }, false);
120
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3V0aW5nIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwdWJsaWNFeHRlbnNpb24iLCJfZGVjMyIsImV4dGVuc2libGUiLCJfZGVjNCIsIl9kZWM1IiwiZmluYWxFeHRlbnNpb24iLCJfZGVjNiIsIl9kZWM3IiwiT3ZlcnJpZGVFeGVjdXRpb24iLCJBZnRlciIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0NvbnRyb2xsZXJFeHRlbnNpb24iLCJfaW5oZXJpdHNMb29zZSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25CZWZvcmVOYXZpZ2F0aW9uIiwibU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwibmF2aWdhdGUiLCJvQ29udGV4dCIsInBhcmFtZXRlcnMiLCJpbnRlcm5hbE1vZGVsIiwiYmFzZSIsImdldE1vZGVsIiwic2V0UHJvcGVydHkiLCJfcm91dGluZyIsIm5hdmlnYXRlVG9Db250ZXh0Iiwib25CZWZvcmVCaW5kaW5nIiwib25BZnRlckJpbmRpbmciLCJuYXZpZ2F0ZVRvUm91dGUiLCJzVGFyZ2V0Um91dGVOYW1lIiwib1BhcmFtZXRlcnMiLCJvTWV0YU1vZGVsIiwiZ2V0TWV0YU1vZGVsIiwiYklzU3RpY2t5TW9kZSIsIk1vZGVsSGVscGVyIiwiaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkIiwiQ29udHJvbGxlckV4dGVuc2lvbiIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlJvdXRpbmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGV4dGVuc2libGUsIGZpbmFsRXh0ZW5zaW9uLCBwdWJsaWNFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwic2FwL2ZlL2NvcmUvUGFnZUNvbnRyb2xsZXJcIjtcbmltcG9ydCBNb2RlbEhlbHBlciBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9Nb2RlbEhlbHBlclwiO1xuaW1wb3J0IENvbnRyb2xsZXJFeHRlbnNpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9Db250cm9sbGVyRXh0ZW5zaW9uXCI7XG5pbXBvcnQgT3ZlcnJpZGVFeGVjdXRpb24gZnJvbSBcInNhcC91aS9jb3JlL212Yy9PdmVycmlkZUV4ZWN1dGlvblwiO1xuaW1wb3J0IHR5cGUgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5cbi8qKlxuICogQSBjb250cm9sbGVyIGV4dGVuc2lvbiBvZmZlcmluZyBob29rcyBpbnRvIHRoZSByb3V0aW5nIGZsb3cgb2YgdGhlIGFwcGxpY2F0aW9uXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS44Ni4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLlJvdXRpbmdcIilcbmNsYXNzIFJvdXRpbmcgZXh0ZW5kcyBDb250cm9sbGVyRXh0ZW5zaW9uIHtcblx0cHJpdmF0ZSBiYXNlITogUGFnZUNvbnRyb2xsZXI7XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gY2FuIGJlIHVzZWQgdG8gaW50ZXJjZXB0IHRoZSByb3V0aW5nIGV2ZW50IGhhcHBlbmluZyBkdXJpbmcgdGhlIG5vcm1hbCBwcm9jZXNzIG9mIG5hdmlnYXRpbmcgZnJvbSBvbmUgcGFnZSB0byBhbm90aGVyIChsaWtlIGNsaWNraW5nIG9uIHRoZSB0YWJsZSByb3cgdG8gbmF2aWdhdGUsIG9yIHdoZW4gcGFnaW5hdGlvbiBidXR0b25zIGFyZSBjbGlja2VkKS5cblx0ICpcblx0ICogVGhlIGZ1bmN0aW9uIGlzIE5PVCBjYWxsZWQgZHVyaW5nIG90aGVyIG1lYW5zIG9mIGV4dGVybmFsIG91dGJvdW5kIG5hdmlnYXRpb24gKGxpa2UgYSBuYXZpZ2F0aW9uIGNvbmZpZ3VyZWQgdmlhIGEgbGluaywgb3IgYnkgdXNpbmcgbmF2aWdhdGlvbiBidXR0b25zKS5cblx0ICpcblx0ICogSWYgZGVjbGFyZWQgYXMgYW4gZXh0ZW5zaW9uLCBpdCBhbGxvd3MgeW91IHRvIGludGVyY2VwdCBhbmQgY2hhbmdlIHRoZSBub3JtYWwgbmF2aWdhdGlvbiBmbG93LlxuXHQgKiBJZiB5b3UgZGVjaWRlIHRvIGRvIHlvdXIgb3duIG5hdmlnYXRpb24gcHJvY2Vzc2luZywgeW91IGNhbiByZXR1cm4gYHRydWVgIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgcm91dGluZyBiZWhhdmlvci5cblx0ICpcblx0ICogVGhpcyBmdW5jdGlvbiBpcyBtZWFudCB0byBiZSBpbmRpdmlkdWFsbHkgb3ZlcnJpZGRlbiBieSBjb25zdW1pbmcgY29udHJvbGxlcnMsIGJ1dCBub3QgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LlxuXHQgKiBUaGUgb3ZlcnJpZGUgZXhlY3V0aW9uIGlzOiB7QGxpbmsgc2FwLnVpLmNvcmUubXZjLk92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyfS5cblx0ICogQHBhcmFtIG1OYXZpZ2F0aW9uUGFyYW1ldGVycyBPYmplY3QgY29udGFpbmluZyByb3cgY29udGV4dCBhbmQgcGFnZSBjb250ZXh0XG5cdCAqIEBwYXJhbSBtTmF2aWdhdGlvblBhcmFtZXRlcnMuYmluZGluZ0NvbnRleHQgVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBjb250ZXh0XG5cdCAqIEByZXR1cm5zIGB0cnVlYCB0byBwcmV2ZW50IHRoZSBkZWZhdWx0IGV4ZWN1dGlvbiwgZmFsc2UgdG8ga2VlcCB0aGUgc3RhbmRhcmQgYmVoYXZpb3Jcblx0ICogQHB1YmxpY1xuXHQgKiBAc2luY2UgMS44Ni4wXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGV4dGVuc2libGUoXCJBZnRlckFzeW5jXCIpXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcblx0YXN5bmMgb25CZWZvcmVOYXZpZ2F0aW9uKG1OYXZpZ2F0aW9uUGFyYW1ldGVyczogeyBiaW5kaW5nQ29udGV4dDogQ29udGV4dCB9KTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0Ly8gdG8gYmUgb3ZlcnJpZGVuIGJ5IHRoZSBhcHBsaWNhdGlvblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBbGxvd3MgbmF2aWdhdGlvbiB0byBhIHNwZWNpZmljIGNvbnRleHQuXG5cdCAqIEBwYXJhbSBvQ29udGV4dCBPYmplY3QgY29udGFpbmluZyB0aGUgY29udGV4dCB0byBiZSBuYXZpZ2F0ZWQgdG9cblx0ICogQHBhcmFtIHBhcmFtZXRlcnMgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBuYXZpZ2F0aW9uXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzLnByZXNlcnZlSGlzdG9yeSAgQnkgZGVmYXVsdCwgdGhlIGludGVybmFsIGFsZ29yaXRobSBkZWNpZGVzIHdoZXRoZXIgdGhlIG5hdmlnYXRpb24gcHJlc2VydmVzIHRoZSBwcmV2aW91cyBlbnRyeS4gVGhpcyBwYXJhbWV0ZXIgYWxsb3dzIHlvdSB0byBvdmVycmlkZSB0aGlzIGJlaGF2aW9yLlxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRuYXZpZ2F0ZShvQ29udGV4dDogQ29udGV4dCwgcGFyYW1ldGVycz86IHsgcHJlc2VydmVIaXN0b3J5OiBib29sZWFuIH0pOiB2b2lkIHtcblx0XHRjb25zdCBpbnRlcm5hbE1vZGVsID0gdGhpcy5iYXNlLmdldE1vZGVsKFwiaW50ZXJuYWxcIikgYXMgSlNPTk1vZGVsO1xuXHRcdC8vIFdlIGhhdmUgdG8gZGVsZXRlIHRoZSBpbnRlcm5hbCBtb2RlbCB2YWx1ZSBmb3IgXCJwYWdpbmF0b3JDdXJyZW50Q29udGV4dFwiIHRvIGVuc3VyZSBpdCBpcyByZS1ldmFsdWF0ZWQgYnkgdGhlIG5hdmlnYXRlVG9Db250ZXh0IGZ1bmN0aW9uXG5cdFx0Ly8gQkNQOiAyMjcwMTIzODIwXG5cdFx0aW50ZXJuYWxNb2RlbC5zZXRQcm9wZXJ0eShcIi9wYWdpbmF0b3JDdXJyZW50Q29udGV4dFwiLCBudWxsKTtcblx0XHR0aGlzLmJhc2UuX3JvdXRpbmcubmF2aWdhdGVUb0NvbnRleHQob0NvbnRleHQsIHBhcmFtZXRlcnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbnRlcmNlcHQgdGhlIHJvdXRpbmcgZXZlbnQgYmVmb3JlIGJpbmRpbmcgYSBwYWdlLlxuXHQgKlxuXHQgKiBJZiBpdCBpcyBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBmbG93IG9mIGJpbmRpbmcuXG5cdCAqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBkaXJlY3RseSwgYnV0IG92ZXJyaWRkZW4gc2VwYXJhdGVseSBieSBjb25zdW1pbmcgY29udHJvbGxlcnMuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgZm9yIHRoZSBuYXZpZ2F0aW9uXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTAuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdG9uQmVmb3JlQmluZGluZyhvQ29udGV4dDogb2JqZWN0IHwgbnVsbCk6IHZvaWQge1xuXHRcdC8vIHRvIGJlIG92ZXJyaWRlbiBieSB0aGUgYXBwbGljYXRpb25cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW50ZXJjZXB0IHRoZSByb3V0aW5nIGV2ZW50IGFmdGVyIGJpbmRpbmcgYSBwYWdlLlxuXHQgKlxuXHQgKiBJZiBpdCBpcyBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBmbG93IG9mIGJpbmRpbmcuXG5cdCAqXG5cdCAqIFRoaXMgZnVuY3Rpb24gaXMgbm90IGNhbGxlZCBkaXJlY3RseSwgYnV0IG92ZXJyaWRkZW4gc2VwYXJhdGVseSBieSBjb25zdW1pbmcgY29udHJvbGxlcnMuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgdG8gYmUgbmF2aWdhdGVkXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTAuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG5cdG9uQWZ0ZXJCaW5kaW5nKG9Db250ZXh0OiBvYmplY3QgfCBudWxsKTogdm9pZCB7XG5cdFx0Ly8gdG8gYmUgb3ZlcnJpZGVuIGJ5IHRoZSBhcHBsaWNhdGlvblxuXHR9XG5cblx0LyoqXG5cdCAqIE5hdmlnYXRlIHRvIGFub3RoZXIgdGFyZ2V0LlxuXHQgKiBAcGFyYW0gc1RhcmdldFJvdXRlTmFtZSBOYW1lIG9mIHRoZSB0YXJnZXQgcm91dGVcblx0ICogQHBhcmFtIG9QYXJhbWV0ZXJzIFBhcmFtZXRlcnMgdG8gYmUgdXNlZCB3aXRoIHJvdXRlIHRvIGNyZWF0ZSB0aGUgdGFyZ2V0IGhhc2hcblx0ICogQHBhcmFtIG9QYXJhbWV0ZXJzLmJJc1N0aWNreU1vZGUgUFJJVkFURVxuXHQgKiBAcmV0dXJucyBQcm9taXNlIHRoYXQgaXMgcmVzb2x2ZWQgd2hlbiB0aGUgbmF2aWdhdGlvbiBpcyBmaW5hbGl6ZWRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdGFzeW5jIG5hdmlnYXRlVG9Sb3V0ZShzVGFyZ2V0Um91dGVOYW1lOiBzdHJpbmcsIG9QYXJhbWV0ZXJzPzogeyBiSXNTdGlja3lNb2RlPzogYm9vbGVhbiB9KTogUHJvbWlzZTxib29sZWFuPiB7XG5cdFx0Y29uc3Qgb01ldGFNb2RlbCA9IHRoaXMuYmFzZS5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdGNvbnN0IGJJc1N0aWNreU1vZGUgPSBNb2RlbEhlbHBlci5pc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQob01ldGFNb2RlbCk7XG5cdFx0aWYgKCFvUGFyYW1ldGVycykge1xuXHRcdFx0b1BhcmFtZXRlcnMgPSB7fTtcblx0XHR9XG5cdFx0b1BhcmFtZXRlcnMuYklzU3RpY2t5TW9kZSA9IGJJc1N0aWNreU1vZGU7XG5cdFx0cmV0dXJuIHRoaXMuYmFzZS5fcm91dGluZy5uYXZpZ2F0ZVRvUm91dGUoc1RhcmdldFJvdXRlTmFtZSwgb1BhcmFtZXRlcnMpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJvdXRpbmc7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztFQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUxBLElBT01BLE9BQU8sSUFBQUMs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
120
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3V0aW5nIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJwdWJsaWNFeHRlbnNpb24iLCJfZGVjMyIsImV4dGVuc2libGUiLCJfZGVjNCIsIl9kZWM1IiwiZmluYWxFeHRlbnNpb24iLCJfZGVjNiIsIl9kZWM3IiwiT3ZlcnJpZGVFeGVjdXRpb24iLCJBZnRlciIsIl9kZWM4IiwiX2RlYzkiLCJfZGVjMTAiLCJfZGVjMTEiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0NvbnRyb2xsZXJFeHRlbnNpb24iLCJfaW5oZXJpdHNMb29zZSIsImFwcGx5IiwiYXJndW1lbnRzIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25CZWZvcmVOYXZpZ2F0aW9uIiwibU5hdmlnYXRpb25QYXJhbWV0ZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJuYXZpZ2F0ZSIsIm9Db250ZXh0IiwicGFyYW1ldGVycyIsImludGVybmFsTW9kZWwiLCJiYXNlIiwiZ2V0TW9kZWwiLCJzZXRQcm9wZXJ0eSIsIl9yb3V0aW5nIiwibmF2aWdhdGVUb0NvbnRleHQiLCJvbkJlZm9yZUJpbmRpbmciLCJvbkFmdGVyQmluZGluZyIsIm5hdmlnYXRlVG9Sb3V0ZSIsInNUYXJnZXRSb3V0ZU5hbWUiLCJvUGFyYW1ldGVycyIsIm9NZXRhTW9kZWwiLCJnZXRNZXRhTW9kZWwiLCJiSXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJDb250cm9sbGVyRXh0ZW5zaW9uIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsIk9iamVjdCIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiUm91dGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIHB1YmxpY0V4dGVuc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIFBhZ2VDb250cm9sbGVyIGZyb20gXCJzYXAvZmUvY29yZS9QYWdlQ29udHJvbGxlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL01vZGVsSGVscGVyXCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJFeHRlbnNpb25cIjtcbmltcG9ydCBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5pbXBvcnQgdHlwZSBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuLyoqXG4gKiBBIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG9mZmVyaW5nIGhvb2tzIGludG8gdGhlIHJvdXRpbmcgZmxvdyBvZiB0aGUgYXBwbGljYXRpb25cbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg2LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuUm91dGluZ1wiKVxuY2xhc3MgUm91dGluZyBleHRlbmRzIENvbnRyb2xsZXJFeHRlbnNpb24ge1xuXHRwcml2YXRlIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBjYW4gYmUgdXNlZCB0byBpbnRlcmNlcHQgdGhlIHJvdXRpbmcgZXZlbnQgaGFwcGVuaW5nIGR1cmluZyB0aGUgbm9ybWFsIHByb2Nlc3Mgb2YgbmF2aWdhdGluZyBmcm9tIG9uZSBwYWdlIHRvIGFub3RoZXIgKGxpa2UgY2xpY2tpbmcgb24gdGhlIHRhYmxlIHJvdyB0byBuYXZpZ2F0ZSwgb3Igd2hlbiBwYWdpbmF0aW9uIGJ1dHRvbnMgYXJlIGNsaWNrZWQpLlxuXHQgKlxuXHQgKiBUaGUgZnVuY3Rpb24gaXMgTk9UIGNhbGxlZCBkdXJpbmcgb3RoZXIgbWVhbnMgb2YgZXh0ZXJuYWwgb3V0Ym91bmQgbmF2aWdhdGlvbiAobGlrZSBhIG5hdmlnYXRpb24gY29uZmlndXJlZCB2aWEgYSBsaW5rLCBvciBieSB1c2luZyBuYXZpZ2F0aW9uIGJ1dHRvbnMpLlxuXHQgKlxuXHQgKiBJZiBkZWNsYXJlZCBhcyBhbiBleHRlbnNpb24sIGl0IGFsbG93cyB5b3UgdG8gaW50ZXJjZXB0IGFuZCBjaGFuZ2UgdGhlIG5vcm1hbCBuYXZpZ2F0aW9uIGZsb3cuXG5cdCAqIElmIHlvdSBkZWNpZGUgdG8gZG8geW91ciBvd24gbmF2aWdhdGlvbiBwcm9jZXNzaW5nLCB5b3UgY2FuIHJldHVybiBgdHJ1ZWAgdG8gcHJldmVudCB0aGUgZGVmYXVsdCByb3V0aW5nIGJlaGF2aW9yLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG1lYW50IHRvIGJlIGluZGl2aWR1YWxseSBvdmVycmlkZGVuIGJ5IGNvbnN1bWluZyBjb250cm9sbGVycywgYnV0IG5vdCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuXG5cdCAqIFRoZSBvdmVycmlkZSBleGVjdXRpb24gaXM6IHtAbGluayBzYXAudWkuY29yZS5tdmMuT3ZlcnJpZGVFeGVjdXRpb24uQWZ0ZXJ9LlxuXHQgKiBAcGFyYW0gbU5hdmlnYXRpb25QYXJhbWV0ZXJzIE9iamVjdCBjb250YWluaW5nIHJvdyBjb250ZXh0IGFuZCBwYWdlIGNvbnRleHRcblx0ICogQHBhcmFtIG1OYXZpZ2F0aW9uUGFyYW1ldGVycy5iaW5kaW5nQ29udGV4dCBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGNvbnRleHRcblx0ICogQHJldHVybnMgYHRydWVgIHRvIHByZXZlbnQgdGhlIGRlZmF1bHQgZXhlY3V0aW9uLCBmYWxzZSB0byBrZWVwIHRoZSBzdGFuZGFyZCBiZWhhdmlvclxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjg2LjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShcIkFmdGVyQXN5bmNcIilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRhc3luYyBvbkJlZm9yZU5hdmlnYXRpb24obU5hdmlnYXRpb25QYXJhbWV0ZXJzOiB7IGJpbmRpbmdDb250ZXh0OiBDb250ZXh0IH0pOiBQcm9taXNlPGJvb2xlYW4+IHtcblx0XHQvLyB0byBiZSBvdmVycmlkZW4gYnkgdGhlIGFwcGxpY2F0aW9uXG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5cdH1cblxuXHQvKipcblx0ICogQWxsb3dzIG5hdmlnYXRpb24gdG8gYSBzcGVjaWZpYyBjb250ZXh0LlxuXHQgKiBAcGFyYW0gb0NvbnRleHQgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGNvbnRleHQgdG8gYmUgbmF2aWdhdGVkIHRvXG5cdCAqIEBwYXJhbSBwYXJhbWV0ZXJzIE9iamVjdCBjb250YWluaW5nIHRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgbmF2aWdhdGlvblxuXHQgKiBAcGFyYW0gcGFyYW1ldGVycy5wcmVzZXJ2ZUhpc3RvcnkgIEJ5IGRlZmF1bHQsIHRoZSBpbnRlcm5hbCBhbGdvcml0aG0gZGVjaWRlcyB3aGV0aGVyIHRoZSBuYXZpZ2F0aW9uIHByZXNlcnZlcyB0aGUgcHJldmlvdXMgZW50cnkuIFRoaXMgcGFyYW1ldGVyIGFsbG93cyB5b3UgdG8gb3ZlcnJpZGUgdGhpcyBiZWhhdmlvci5cblx0ICogQHB1YmxpY1xuXHQgKiBAc2luY2UgMS45MC4wXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0bmF2aWdhdGUob0NvbnRleHQ6IENvbnRleHQsIHBhcmFtZXRlcnM/OiB7IHByZXNlcnZlSGlzdG9yeTogYm9vbGVhbiB9KTogdm9pZCB7XG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbCA9IHRoaXMuYmFzZS5nZXRNb2RlbChcImludGVybmFsXCIpIGFzIEpTT05Nb2RlbDtcblx0XHQvLyBXZSBoYXZlIHRvIGRlbGV0ZSB0aGUgaW50ZXJuYWwgbW9kZWwgdmFsdWUgZm9yIFwicGFnaW5hdG9yQ3VycmVudENvbnRleHRcIiB0byBlbnN1cmUgaXQgaXMgcmUtZXZhbHVhdGVkIGJ5IHRoZSBuYXZpZ2F0ZVRvQ29udGV4dCBmdW5jdGlvblxuXHRcdC8vIEJDUDogMjI3MDEyMzgyMFxuXHRcdGludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoXCIvcGFnaW5hdG9yQ3VycmVudENvbnRleHRcIiwgbnVsbCk7XG5cdFx0dGhpcy5iYXNlLl9yb3V0aW5nLm5hdmlnYXRlVG9Db250ZXh0KG9Db250ZXh0LCBwYXJhbWV0ZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW50ZXJjZXB0IHRoZSByb3V0aW5nIGV2ZW50IGJlZm9yZSBiaW5kaW5nIGEgcGFnZS5cblx0ICpcblx0ICogSWYgaXQgaXMgZGVjbGFyZWQgYXMgYW4gZXh0ZW5zaW9uLCBpdCBhbGxvd3MgeW91IHRvIGludGVyY2VwdCBhbmQgY2hhbmdlIHRoZSBub3JtYWwgZmxvdyBvZiBiaW5kaW5nLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgZGlyZWN0bHksIGJ1dCBvdmVycmlkZGVuIHNlcGFyYXRlbHkgYnkgY29uc3VtaW5nIGNvbnRyb2xsZXJzLlxuXHQgKiBUaGUgb3ZlcnJpZGUgZXhlY3V0aW9uIGlzOiB7QGxpbmsgc2FwLnVpLmNvcmUubXZjLk92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyfS5cblx0ICogQHBhcmFtIG9Db250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IGZvciB0aGUgbmF2aWdhdGlvblxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5BZnRlcilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRvbkJlZm9yZUJpbmRpbmcob0NvbnRleHQ6IG9iamVjdCB8IG51bGwpOiB2b2lkIHtcblx0XHQvLyB0byBiZSBvdmVycmlkZW4gYnkgdGhlIGFwcGxpY2F0aW9uXG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGludGVyY2VwdCB0aGUgcm91dGluZyBldmVudCBhZnRlciBiaW5kaW5nIGEgcGFnZS5cblx0ICpcblx0ICogSWYgaXQgaXMgZGVjbGFyZWQgYXMgYW4gZXh0ZW5zaW9uLCBpdCBhbGxvd3MgeW91IHRvIGludGVyY2VwdCBhbmQgY2hhbmdlIHRoZSBub3JtYWwgZmxvdyBvZiBiaW5kaW5nLlxuXHQgKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBjYWxsZWQgZGlyZWN0bHksIGJ1dCBvdmVycmlkZGVuIHNlcGFyYXRlbHkgYnkgY29uc3VtaW5nIGNvbnRyb2xsZXJzLlxuXHQgKiBUaGUgb3ZlcnJpZGUgZXhlY3V0aW9uIGlzOiB7QGxpbmsgc2FwLnVpLmNvcmUubXZjLk92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyfS5cblx0ICogQHBhcmFtIG9Db250ZXh0IE9iamVjdCBjb250YWluaW5nIHRoZSBjb250ZXh0IHRvIGJlIG5hdmlnYXRlZFxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkwLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5BZnRlcilcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuXHRvbkFmdGVyQmluZGluZyhvQ29udGV4dDogb2JqZWN0IHwgbnVsbCk6IHZvaWQge1xuXHRcdC8vIHRvIGJlIG92ZXJyaWRlbiBieSB0aGUgYXBwbGljYXRpb25cblx0fVxuXG5cdC8qKlxuXHQgKiBOYXZpZ2F0ZSB0byBhbm90aGVyIHRhcmdldC5cblx0ICogQHBhcmFtIHNUYXJnZXRSb3V0ZU5hbWUgTmFtZSBvZiB0aGUgdGFyZ2V0IHJvdXRlXG5cdCAqIEBwYXJhbSBvUGFyYW1ldGVycyBQYXJhbWV0ZXJzIHRvIGJlIHVzZWQgd2l0aCByb3V0ZSB0byBjcmVhdGUgdGhlIHRhcmdldCBoYXNoXG5cdCAqIEBwYXJhbSBvUGFyYW1ldGVycy5iSXNTdGlja3lNb2RlIFBSSVZBVEVcblx0ICogQHJldHVybnMgUHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIG5hdmlnYXRpb24gaXMgZmluYWxpemVkXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRhc3luYyBuYXZpZ2F0ZVRvUm91dGUoc1RhcmdldFJvdXRlTmFtZTogc3RyaW5nLCBvUGFyYW1ldGVycz86IHsgYklzU3RpY2t5TW9kZT86IGJvb2xlYW4gfSk6IFByb21pc2U8Ym9vbGVhbj4ge1xuXHRcdGNvbnN0IG9NZXRhTW9kZWwgPSB0aGlzLmJhc2UuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBiSXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKG9NZXRhTW9kZWwpO1xuXHRcdGlmICghb1BhcmFtZXRlcnMpIHtcblx0XHRcdG9QYXJhbWV0ZXJzID0ge307XG5cdFx0fVxuXHRcdG9QYXJhbWV0ZXJzLmJJc1N0aWNreU1vZGUgPSBiSXNTdGlja3lNb2RlO1xuXHRcdHJldHVybiB0aGlzLmJhc2UuX3JvdXRpbmcubmF2aWdhdGVUb1JvdXRlKHNUYXJnZXRSb3V0ZU5hbWUsIG9QYXJhbWV0ZXJzKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBSb3V0aW5nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7RUFRQTtBQUNBO0FBQ0E7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
@@ -37,7 +37,7 @@ class Routing extends ControllerExtension {
37
37
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
38
38
  async onBeforeNavigation(mNavigationParameters: { bindingContext: Context }): Promise<boolean> {
39
39
  // to be overriden by the application
40
- return false;
40
+ return Promise.resolve(false);
41
41
  }
42
42
 
43
43
  /**
@@ -60,9 +60,10 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/base/util/extend
60
60
 
61
61
  /**
62
62
  * Get adaptive card definition.
63
+ * @returns Adaptive card definition or a Promise resolving the Adaptive card definition
63
64
  */;
64
65
  _proto.getCardDefinition = async function getCardDefinition() {
65
- return;
66
+ return Promise.resolve(undefined);
66
67
  }
67
68
 
68
69
  /**
@@ -360,4 +361,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/ObjectPath", "sap/base/util/extend
360
361
  }(ControllerExtension), (_applyDecoratedDescriptor(_class2.prototype, "onInit", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "onInit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onExit", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "onExit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "openShareSheet", [_dec4, _dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "openShareSheet"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "getCardDefinition", [_dec6, _dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "getCardDefinition"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "adaptShareMetadata", [_dec8, _dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "adaptShareMetadata"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "_triggerEmail", [_dec10, _dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "_triggerEmail"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "_triggerShareToJam", [_dec12, _dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "_triggerShareToJam"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "_saveAsTile", [_dec14, _dec15], Object.getOwnPropertyDescriptor(_class2.prototype, "_saveAsTile"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "_adaptShareMetadata", [_dec16, _dec17], Object.getOwnPropertyDescriptor(_class2.prototype, "_adaptShareMetadata"), _class2.prototype)), _class2)) || _class);
361
362
  return ShareUtils;
362
363
  }, false);
363
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvTGFzdEZvY3VzZWRDb250cm9sIiwiU2hhcmVVdGlscyIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwibWV0aG9kT3ZlcnJpZGUiLCJfZGVjMyIsIl9kZWM0IiwicHVibGljRXh0ZW5zaW9uIiwiX2RlYzUiLCJmaW5hbEV4dGVuc2lvbiIsIl9kZWM2IiwiX2RlYzciLCJleHRlbnNpYmxlIiwiX2RlYzgiLCJfZGVjOSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiQWZ0ZXIiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0NvbnRyb2xsZXJFeHRlbnNpb24iLCJfaW5oZXJpdHNMb29zZSIsImNhbGwiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbkluaXQiLCJzaGFyZUluZm9Nb2RlbCIsIkpTT05Nb2RlbCIsInNhdmVBc1RpbGVDbGlja2VkIiwiY29sbGFib3JhdGlvbkluZm8iLCJ1cmwiLCJhcHBUaXRsZSIsInN1YlRpdGxlIiwibWluaWZ5VXJsRm9yQ2hhdCIsImFwcElkIiwiYmFzZSIsImdldFZpZXciLCJzZXRNb2RlbCIsIm9uRXhpdCIsIl90aGlzJGJhc2UiLCJfdGhpcyRiYXNlJGdldFZpZXciLCJnZXRNb2RlbCIsImRlc3Ryb3kiLCJvcGVuU2hhcmVTaGVldCIsIm9Db250cm9sIiwiX29wZW5TaGFyZVNoZWV0SW1wbCIsImdldENhcmREZWZpbml0aW9uIiwiYWRhcHRTaGFyZU1ldGFkYXRhIiwib1NoYXJlTWV0YWRhdGEiLCJfdGhpcyRiYXNlMiIsIl90aGlzJGJhc2UyJGdldFZpZXciLCJfbWFuaWZlc3Qkc2FwQXBwIiwiX21hbmlmZXN0JHNhcEFwcDIiLCJtYW5pZmVzdCIsImdldEFwcENvbXBvbmVudCIsImdldE1hbmlmZXN0IiwiaWQiLCJ0aXRsZSIsImRvY3VtZW50Iiwic2V0UHJvcGVydHkiLCJieSIsIl90aGlzJGJhc2UkZ2V0QXBwQ29tcCIsIl90aGlzJGJhc2UkZ2V0QXBwQ29tcDIiLCJvU2hhcmVBY3Rpb25TaGVldCIsImhhc2hDaGFuZ2VySW5zdGFuY2UiLCJIYXNoQ2hhbmdlciIsImdldEluc3RhbmNlIiwic0hhc2giLCJnZXRIYXNoIiwic0Jhc2VQYXRoIiwiaHJlZkZvckFwcFNwZWNpZmljSGFzaCIsIndpbmRvdyIsImxvY2F0aW9uIiwib3JpZ2luIiwicGF0aG5hbWUiLCJzZWFyY2giLCJoYXNoIiwiZ2V0U2hlbGxTZXJ2aWNlcyIsImdldFRpdGxlIiwiZW1haWwiLCJqYW0iLCJ0aWxlIiwic3VidGl0bGUiLCJpY29uIiwicXVlcnlVcmwiLCJzZXRTaGFyZUVtYWlsRGF0YSIsInNoYXJlQWN0aW9uU2hlZXQiLCJvTW9kZWxEYXRhIiwib1NoYXJlTWFpbE1vZGVsIiwib05ld01haWxEYXRhIiwiZXh0ZW5kIiwiZ2V0RGF0YSIsInNldERhdGEiLCJfdGhpcyRiYXNlJGdldFZpZXckZ2UiLCJfdGhpcyRiYXNlJGdldFZpZXckZ2UyIiwiX29Nb2RlbERhdGEkdGlsZSIsIl9vTW9kZWxEYXRhJHRpbGUyIiwiX29Nb2RlbERhdGEkdGlsZTMiLCJfb01vZGVsRGF0YSR0aWxlNCIsIl9vTW9kZWxEYXRhJHRpbGU1IiwiZ2V0Q29udHJvbGxlciIsInNoYXJlIiwiZnJhZ21lbnRDb250cm9sbGVyIiwic2hhcmVFbWFpbFByZXNzZWQiLCJvTWFpbE1vZGVsIiwib01haWxEYXRhIiwib1Jlc291cmNlIiwiTGlicmFyeSIsImdldFJlc291cmNlQnVuZGxlRm9yIiwic0VtYWlsU3ViamVjdCIsImdldFRleHQiLCJsaWJyYXJ5IiwiVVJMSGVscGVyIiwidHJpZ2dlckVtYWlsIiwidW5kZWZpbmVkIiwic2hhcmVNU1RlYW1zUHJlc3NlZCIsIm1zVGVhbXNNb2RlbCIsIm1zVGVhbXNEYXRhIiwibWVzc2FnZSIsIm5ld1dpbmRvd09wZW4iLCJvcGVuIiwib3BlbmVyIiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwib25TYXZlVGlsZVByZXNzIiwic2V0VGltZW91dCIsIl9FbGVtZW50JGdldEVsZW1lbnRCeSIsIkVsZW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImF0dGFjaEFmdGVyQ2xvc2UiLCJmb2N1cyIsInNoYXJlSmFtUHJlc3NlZCIsIl9vTW9kZWxEYXRhJGphbSIsIl9vTW9kZWxEYXRhJGphbTIiLCJfZG9PcGVuSmFtU2hhcmVEaWFsb2ciLCJvbkNhbmNlbFByZXNzZWQiLCJjbG9zZSIsInNldFNoYXJlU2hlZXQiLCJvU2hhcmVTaGVldCIsInNoYXJlU2hlZXQiLCJvVGhpcyIsIm9QcmVwcm9jZXNzb3JTZXR0aW5ncyIsImJpbmRpbmdDb250ZXh0cyIsInRoaXMiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsIm1vZGVscyIsIm9UaWxlRGF0YSIsInN1YnN0cmluZyIsImluZGV4T2YiLCJvU2hhcmVNb2RlbCIsIl9zZXRTdGF0aWNTaGFyZURhdGEiLCJvTmV3RGF0YSIsIm9wZW5CeSIsInNGcmFnbWVudE5hbWUiLCJvUG9wb3ZlckZyYWdtZW50IiwiWE1MVGVtcGxhdGVQcm9jZXNzb3IiLCJsb2FkVGVtcGxhdGUiLCJvRnJhZ21lbnQiLCJYTUxQcmVwcm9jZXNzb3IiLCJwcm9jZXNzIiwibmFtZSIsIkZyYWdtZW50IiwibG9hZCIsImRlZmluaXRpb24iLCJjb250cm9sbGVyIiwiYWRkRGVwZW5kZW50Iiwib0Vycm9yIiwiTG9nIiwiZXJyb3IiLCJnZXRUZWFtc1VybCIsInNoYXJlVXJsIiwiX3RoaXMkYmFzZSRnZXRBcHBDb21wMyIsImFwcFVybCIsImdldEluZnJhbWVVcmwiLCJzaGFyZU1vZGVsIiwiT2JqZWN0UGF0aCIsImdldCIsImZuR2V0VXNlciIsImlzSmFtQWN0aXZlIiwic2FwIiwidWkiLCJyZXF1aXJlIiwidGV4dCIsInNVcmwiLCJvU2hhcmVEaWFsb2ciLCJDb21wb25lbnQiLCJjcmVhdGUiLCJzZXR0aW5ncyIsIm9iamVjdCIsIl90cmlnZ2VyRW1haWwiLCJzaGFyZU1ldGFkYXRhIiwiX2FkYXB0U2hhcmVNZXRhZGF0YSIsIl90cmlnZ2VyU2hhcmVUb0phbSIsIl9zYXZlQXNUaWxlIiwic291cmNlIiwiX3RoaXMkYmFzZTMiLCJfdGhpcyRiYXNlMyRnZXRWaWV3IiwiaW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbiIsImdldERlcGVuZGVudHMiLCJzZXRUaXRsZSIsInNldFN1YnRpdGxlIiwic2V0VGlsZUljb24iLCJzZXRDdXN0b21VcmwiLCJzZXRTZXJ2aWNlVXJsIiwic2V0RGF0YVNvdXJjZSIsInR5cGUiLCJvZGF0YVZlcnNpb24iLCJmaXJlUHJlc3MiLCJfdGhpcyRiYXNlJGdldEFwcENvbXA0IiwiX3RoaXMkYmFzZSRnZXRBcHBDb21wNSIsIkNvbnRyb2xsZXJFeHRlbnNpb24iLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTaGFyZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBPYmplY3RQYXRoIGZyb20gXCJzYXAvYmFzZS91dGlsL09iamVjdFBhdGhcIjtcbmltcG9ydCBleHRlbmQgZnJvbSBcInNhcC9iYXNlL3V0aWwvZXh0ZW5kXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXh0ZW5zaWJsZSwgZmluYWxFeHRlbnNpb24sIG1ldGhvZE92ZXJyaWRlLCBwdWJsaWNFeHRlbnNpb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSBBY3Rpb25TaGVldCBmcm9tIFwic2FwL20vQWN0aW9uU2hlZXRcIjtcbmltcG9ydCB0eXBlIERpYWxvZyBmcm9tIFwic2FwL20vRGlhbG9nXCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyAkQ29tcG9uZW50U2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29tcG9uZW50XCI7XG5pbXBvcnQgQ29tcG9uZW50IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRyb2wgZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgRnJhZ21lbnQgZnJvbSBcInNhcC91aS9jb3JlL0ZyYWdtZW50XCI7XG5pbXBvcnQgdHlwZSBJdGVtIGZyb20gXCJzYXAvdWkvY29yZS9JdGVtXCI7XG5pbXBvcnQgTGlicmFyeSBmcm9tIFwic2FwL3VpL2NvcmUvTGliXCI7XG5pbXBvcnQgWE1MVGVtcGxhdGVQcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL1hNTFRlbXBsYXRlUHJvY2Vzc29yXCI7XG5pbXBvcnQgQ29udHJvbGxlckV4dGVuc2lvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL0NvbnRyb2xsZXJFeHRlbnNpb25cIjtcbmltcG9ydCBPdmVycmlkZUV4ZWN1dGlvbiBmcm9tIFwic2FwL3VpL2NvcmUvbXZjL092ZXJyaWRlRXhlY3V0aW9uXCI7XG5pbXBvcnQgSGFzaENoYW5nZXIgZnJvbSBcInNhcC91aS9jb3JlL3JvdXRpbmcvSGFzaENoYW5nZXJcIjtcbmltcG9ydCBYTUxQcmVwcm9jZXNzb3IgZnJvbSBcInNhcC91aS9jb3JlL3V0aWwvWE1MUHJlcHJvY2Vzc29yXCI7XG5pbXBvcnQgSlNPTk1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvanNvbi9KU09OTW9kZWxcIjtcbmltcG9ydCB0eXBlIEFkZEJvb2ttYXJrQnV0dG9uIGZyb20gXCJzYXAvdXNoZWxsL3VpL2Zvb3RlcmJhci9BZGRCb29rbWFya0J1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBJQWRhcHRpdmVDYXJkIH0gZnJvbSBcInR5cGVzL2FkYXB0aXZlQ2FyZF90eXBlc1wiO1xuaW1wb3J0IHR5cGUgUGFnZUNvbnRyb2xsZXIgZnJvbSBcIi4uL1BhZ2VDb250cm9sbGVyXCI7XG5cbmxldCBvTGFzdEZvY3VzZWRDb250cm9sOiBDb250cm9sO1xuXG5leHBvcnQgdHlwZSBTaGFyZU1ldGFkYXRhID0ge1xuXHR1cmw6IHN0cmluZztcblx0dGl0bGU6IHN0cmluZztcblx0ZW1haWw6IHsgdXJsOiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfTtcblx0amFtOiB7IHVybD86IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9O1xuXHR0aWxlOiB7IHVybD86IHN0cmluZzsgdGl0bGU6IHN0cmluZzsgc3VidGl0bGU6IHN0cmluZzsgaWNvbj86IHN0cmluZzsgcXVlcnlVcmw/OiBzdHJpbmcgfTtcbn07XG5cbi8qKlxuICogQSBjb250cm9sbGVyIGV4dGVuc2lvbiBvZmZlcmluZyBob29rcyBpbnRvIHRoZSByb3V0aW5nIGZsb3cgb2YgdGhlIGFwcGxpY2F0aW9uXG4gKiBAaGlkZWNvbnN0cnVjdG9yXG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS44Ni4wXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5jb3JlLmNvbnRyb2xsZXJleHRlbnNpb25zLlNoYXJlXCIpXG5jbGFzcyBTaGFyZVV0aWxzIGV4dGVuZHMgQ29udHJvbGxlckV4dGVuc2lvbiB7XG5cdHByb3RlY3RlZCBiYXNlITogUGFnZUNvbnRyb2xsZXI7XG5cblx0Y29uc3RydWN0b3IoKSB7XG5cdFx0c3VwZXIoKTtcblx0fVxuXG5cdEBtZXRob2RPdmVycmlkZSgpXG5cdG9uSW5pdCgpOiB2b2lkIHtcblx0XHRjb25zdCBzaGFyZUluZm9Nb2RlbDogSlNPTk1vZGVsID0gbmV3IEpTT05Nb2RlbCh7XG5cdFx0XHRzYXZlQXNUaWxlQ2xpY2tlZDogZmFsc2UsXG5cdFx0XHRjb2xsYWJvcmF0aW9uSW5mbzoge1xuXHRcdFx0XHR1cmw6IFwiXCIsXG5cdFx0XHRcdGFwcFRpdGxlOiBcIlwiLFxuXHRcdFx0XHRzdWJUaXRsZTogXCJcIixcblx0XHRcdFx0bWluaWZ5VXJsRm9yQ2hhdDogdHJ1ZSxcblx0XHRcdFx0YXBwSWQ6IFwiXCJcblx0XHRcdH1cblx0XHR9KTtcblx0XHR0aGlzLmJhc2UuZ2V0VmlldygpLnNldE1vZGVsKHNoYXJlSW5mb01vZGVsLCBcInNoYXJlSW5mb1wiKTtcblx0fVxuXG5cdEBtZXRob2RPdmVycmlkZSgpXG5cdG9uRXhpdCgpOiB2b2lkIHtcblx0XHRjb25zdCBzaGFyZUluZm9Nb2RlbCA9IHRoaXMuYmFzZT8uZ2V0VmlldygpPy5nZXRNb2RlbChcInNoYXJlSW5mb1wiKSBhcyBKU09OTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHNoYXJlSW5mb01vZGVsKSB7XG5cdFx0XHRzaGFyZUluZm9Nb2RlbC5kZXN0cm95KCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIE9wZW5zIHRoZSBzaGFyZSBzaGVldC5cblx0ICogQHBhcmFtIG9Db250cm9sIFRoZSBjb250cm9sIHRvIHdoaWNoIHRoZSBBY3Rpb25TaGVldCBpcyBvcGVuZWQuXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTMuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdG9wZW5TaGFyZVNoZWV0KG9Db250cm9sOiBDb250cm9sKTogdm9pZCB7XG5cdFx0dGhpcy5fb3BlblNoYXJlU2hlZXRJbXBsKG9Db250cm9sKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXQgYWRhcHRpdmUgY2FyZCBkZWZpbml0aW9uLlxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKFwiQWZ0ZXJBc3luY1wiKVxuXHRhc3luYyBnZXRDYXJkRGVmaW5pdGlvbigpOiBQcm9taXNlPElBZGFwdGl2ZUNhcmQgfCB1bmRlZmluZWQ+IHtcblx0XHRyZXR1cm47XG5cdH1cblxuXHQvKipcblx0ICogQWRhcHRzIHRoZSBtZXRhZGF0YSB1c2VkIHdoaWxlIHNoYXJpbmcgdGhlIHBhZ2UgVVJMIHZpYSAnU2VuZCBFbWFpbCcsICdTaGFyZSBpbiBTQVAgSmFtJywgYW5kICdTYXZlIGFzIFRpbGUnLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIHNoYXJlIG1ldGFkYXRhLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEudXJsIERlZmF1bHQgVVJMIHRoYXQgd2lsbCBiZSB1c2VkIHZpYSAnU2VuZCBFbWFpbCcsICdTaGFyZSBpbiBTQVAgSmFtJywgYW5kICdTYXZlIGFzIFRpbGUnXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS50aXRsZSBEZWZhdWx0IHRpdGxlIHRoYXQgd2lsbCBiZSB1c2VkIGFzICdlbWFpbCBzdWJqZWN0JyBpbiAnU2VuZCBFbWFpbCcsICdzaGFyZSB0ZXh0JyBpbiAnU2hhcmUgaW4gU0FQIEphbScgYW5kICd0aXRsZScgaW4gJ1NhdmUgYXMgVGlsZSdcblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLmVtYWlsIEVtYWlsLXNwZWNpZmljIG1ldGFkYXRhLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEuZW1haWwudXJsIFVSTCB0aGF0IHdpbGwgYmUgdXNlZCBzcGVjaWZpY2FsbHkgZm9yICdTZW5kIEVtYWlsJy4gVGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb1NoYXJlTWV0YWRhdGEudXJsLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEuZW1haWwudGl0bGUgVGl0bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXMgXCJlbWFpbCBzdWJqZWN0XCIgaW4gJ1NlbmQgRW1haWwnLiBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvU2hhcmVNZXRhZGF0YS50aXRsZS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLmphbSBTQVAgSmFtLXNwZWNpZmljIG1ldGFkYXRhLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEuamFtLnVybCBVUkwgdGhhdCB3aWxsIGJlIHVzZWQgc3BlY2lmaWNhbGx5IGZvciAnU2hhcmUgaW4gU0FQIEphbScuIFRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9TaGFyZU1ldGFkYXRhLnVybC5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLmphbS50aXRsZSBUaXRsZSB0aGF0IHdpbGwgYmUgdXNlZCBhcyAnc2hhcmUgdGV4dCcgaW4gJ1NoYXJlIGluIFNBUCBKYW0nLiBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvU2hhcmVNZXRhZGF0YS50aXRsZS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnRpbGUgU2F2ZSBhcyBUaWxlLXNwZWNpZmljIG1ldGFkYXRhLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEudGlsZS51cmwgVVJMIHRoYXQgd2lsbCBiZSB1c2VkIHNwZWNpZmljYWxseSBmb3IgJ1NhdmUgYXMgVGlsZScuIFRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9TaGFyZU1ldGFkYXRhLnVybC5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnRpbGUudGl0bGUgVGl0bGUgdG8gYmUgdXNlZCBmb3IgdGhlIHRpbGUuIFRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9TaGFyZU1ldGFkYXRhLnRpdGxlLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEudGlsZS5zdWJ0aXRsZSBTdWJ0aXRsZSB0byBiZSB1c2VkIGZvciB0aGUgdGlsZS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnRpbGUuaWNvbiBJY29uIHRvIGJlIHVzZWQgZm9yIHRoZSB0aWxlLlxuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEudGlsZS5xdWVyeVVybCBRdWVyeSBVUkwgb2YgYW4gT0RhdGEgc2VydmljZSBmcm9tIHdoaWNoIGRhdGEgZm9yIGEgZHluYW1pYyB0aWxlIGlzIHJlYWQuXG5cdCAqIEByZXR1cm5zIFNoYXJlIE1ldGFkYXRhIG9yIGEgUHJvbWlzZSByZXNvbHZpbmcgdGhlIFNoYXJlIE1ldGFkYXRhXG5cdCAqIEBwdWJsaWNcblx0ICogQHNpbmNlIDEuOTMuMFxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBleHRlbnNpYmxlKE92ZXJyaWRlRXhlY3V0aW9uLkFmdGVyKVxuXHRhZGFwdFNoYXJlTWV0YWRhdGEob1NoYXJlTWV0YWRhdGE6IHtcblx0XHR1cmw6IHN0cmluZztcblx0XHR0aXRsZTogc3RyaW5nO1xuXHRcdGVtYWlsOiB7IHVybDogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH07XG5cdFx0amFtOiB7IHVybD86IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9O1xuXHRcdHRpbGU6IHsgdXJsPzogc3RyaW5nOyB0aXRsZTogc3RyaW5nOyBzdWJ0aXRsZTogc3RyaW5nOyBpY29uPzogc3RyaW5nOyBxdWVyeVVybD86IHN0cmluZyB9O1xuXHR9KTogU2hhcmVNZXRhZGF0YSB8IFByb21pc2U8U2hhcmVNZXRhZGF0YT4ge1xuXHRcdGNvbnN0IHNoYXJlSW5mb01vZGVsID0gdGhpcy5iYXNlPy5nZXRWaWV3KCk/LmdldE1vZGVsKFwic2hhcmVJbmZvXCIpIGFzIEpTT05Nb2RlbCB8IHVuZGVmaW5lZDtcblx0XHRjb25zdCBtYW5pZmVzdCA9IHRoaXMuYmFzZS5nZXRBcHBDb21wb25lbnQoKS5nZXRNYW5pZmVzdCgpO1xuXHRcdGNvbnN0IGFwcElkID0gbWFuaWZlc3Q/LltcInNhcC5hcHBcIl0/LmlkO1xuXHRcdGNvbnN0IGFwcFRpdGxlID0gbWFuaWZlc3Q/LltcInNhcC5hcHBcIl0/LnRpdGxlIHx8IGRvY3VtZW50LnRpdGxlO1xuXHRcdGlmIChzaGFyZUluZm9Nb2RlbCkge1xuXHRcdFx0c2hhcmVJbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbkluZm8vYXBwSWRcIiwgYXBwSWQpO1xuXHRcdFx0c2hhcmVJbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbkluZm8vdXJsXCIsIG9TaGFyZU1ldGFkYXRhLnVybCk7XG5cdFx0XHRzaGFyZUluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9jb2xsYWJvcmF0aW9uSW5mby9hcHBUaXRsZVwiLCBhcHBUaXRsZSk7XG5cdFx0fVxuXHRcdHJldHVybiBvU2hhcmVNZXRhZGF0YTtcblx0fVxuXG5cdGFzeW5jIF9vcGVuU2hhcmVTaGVldEltcGwoYnk6IENvbnRyb2wgJiB7IHNoYXJlU2hlZXQ/OiBBY3Rpb25TaGVldCB9KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0bGV0IG9TaGFyZUFjdGlvblNoZWV0OiBBY3Rpb25TaGVldDtcblx0XHRjb25zdCBoYXNoQ2hhbmdlckluc3RhbmNlID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKTtcblx0XHRjb25zdCBzSGFzaCA9IGhhc2hDaGFuZ2VySW5zdGFuY2UuZ2V0SGFzaCgpO1xuXHRcdGNvbnN0IHNCYXNlUGF0aCA9IGhhc2hDaGFuZ2VySW5zdGFuY2UuaHJlZkZvckFwcFNwZWNpZmljSGFzaCA/IGhhc2hDaGFuZ2VySW5zdGFuY2UuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKSA6IFwiXCI7XG5cdFx0Y29uc3Qgb1NoYXJlTWV0YWRhdGEgPSB7XG5cdFx0XHR1cmw6XG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gK1xuXHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgK1xuXHRcdFx0XHR3aW5kb3cubG9jYXRpb24uc2VhcmNoICtcblx0XHRcdFx0KHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaCksXG5cdFx0XHR0aXRsZTogYXdhaXQgdGhpcy5iYXNlLmdldEFwcENvbXBvbmVudCgpPy5nZXRTaGVsbFNlcnZpY2VzKCk/LmdldFRpdGxlKCksXG5cdFx0XHRlbWFpbDoge1xuXHRcdFx0XHR1cmw6IFwiXCIsXG5cdFx0XHRcdHRpdGxlOiBcIlwiXG5cdFx0XHR9LFxuXHRcdFx0amFtOiB7XG5cdFx0XHRcdHVybDogXCJcIixcblx0XHRcdFx0dGl0bGU6IFwiXCJcblx0XHRcdH0sXG5cdFx0XHR0aWxlOiB7XG5cdFx0XHRcdHVybDogXCJcIixcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHN1YnRpdGxlOiBcIlwiLFxuXHRcdFx0XHRpY29uOiBcIlwiLFxuXHRcdFx0XHRxdWVyeVVybDogXCJcIlxuXHRcdFx0fVxuXHRcdH07XG5cdFx0b0xhc3RGb2N1c2VkQ29udHJvbCA9IGJ5O1xuXG5cdFx0Y29uc3Qgc2V0U2hhcmVFbWFpbERhdGEgPSBmdW5jdGlvbiAoc2hhcmVBY3Rpb25TaGVldDogQWN0aW9uU2hlZXQsIG9Nb2RlbERhdGE6IG9iamVjdCk6IHZvaWQge1xuXHRcdFx0Y29uc3Qgb1NoYXJlTWFpbE1vZGVsID0gc2hhcmVBY3Rpb25TaGVldC5nZXRNb2RlbChcInNoYXJlRGF0YVwiKSBhcyBKU09OTW9kZWw7XG5cdFx0XHRjb25zdCBvTmV3TWFpbERhdGEgPSBleHRlbmQob1NoYXJlTWFpbE1vZGVsLmdldERhdGEoKSwgb01vZGVsRGF0YSk7XG5cdFx0XHRvU2hhcmVNYWlsTW9kZWwuc2V0RGF0YShvTmV3TWFpbERhdGEpO1xuXHRcdH07XG5cblx0XHR0cnkge1xuXHRcdFx0Y29uc3Qgb01vZGVsRGF0YTogU2hhcmVNZXRhZGF0YSA9IGF3YWl0IHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpPy5zaGFyZT8uYWRhcHRTaGFyZU1ldGFkYXRhKG9TaGFyZU1ldGFkYXRhKTtcblx0XHRcdGNvbnN0IGZyYWdtZW50Q29udHJvbGxlcjogUmVjb3JkPHN0cmluZywgRnVuY3Rpb24+ID0ge1xuXHRcdFx0XHRzaGFyZUVtYWlsUHJlc3NlZDogZnVuY3Rpb24gKCk6IHZvaWQge1xuXHRcdFx0XHRcdGNvbnN0IG9NYWlsTW9kZWwgPSBvU2hhcmVBY3Rpb25TaGVldC5nZXRNb2RlbChcInNoYXJlRGF0YVwiKSBhcyBKU09OTW9kZWw7XG5cdFx0XHRcdFx0Y29uc3Qgb01haWxEYXRhID0gb01haWxNb2RlbC5nZXREYXRhKCk7XG5cdFx0XHRcdFx0Y29uc3Qgb1Jlc291cmNlID0gTGlicmFyeS5nZXRSZXNvdXJjZUJ1bmRsZUZvcihcInNhcC5mZS5jb3JlXCIpITtcblx0XHRcdFx0XHRjb25zdCBzRW1haWxTdWJqZWN0ID0gb01haWxEYXRhLmVtYWlsLnRpdGxlXG5cdFx0XHRcdFx0XHQ/IG9NYWlsRGF0YS5lbWFpbC50aXRsZVxuXHRcdFx0XHRcdFx0OiBvUmVzb3VyY2UuZ2V0VGV4dChcIlRfU0hBUkVfVVRJTF9IRUxQRVJfU0FQRkVfRU1BSUxfU1VCSkVDVFwiLCBbb01haWxEYXRhLnRpdGxlXSk7XG5cdFx0XHRcdFx0bGlicmFyeS5VUkxIZWxwZXIudHJpZ2dlckVtYWlsKHVuZGVmaW5lZCwgc0VtYWlsU3ViamVjdCwgb01haWxEYXRhLmVtYWlsLnVybCA/IG9NYWlsRGF0YS5lbWFpbC51cmwgOiBvTWFpbERhdGEudXJsKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hhcmVNU1RlYW1zUHJlc3NlZDogZnVuY3Rpb24gKCk6IHZvaWQge1xuXHRcdFx0XHRcdGNvbnN0IG1zVGVhbXNNb2RlbCA9IG9TaGFyZUFjdGlvblNoZWV0LmdldE1vZGVsKFwic2hhcmVEYXRhXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRcdFx0XHRjb25zdCBtc1RlYW1zRGF0YSA9IG1zVGVhbXNNb2RlbC5nZXREYXRhKCk7XG5cdFx0XHRcdFx0Y29uc3QgbWVzc2FnZSA9IG1zVGVhbXNEYXRhLmVtYWlsLnRpdGxlID8gbXNUZWFtc0RhdGEuZW1haWwudGl0bGUgOiBtc1RlYW1zRGF0YS50aXRsZTtcblx0XHRcdFx0XHRjb25zdCB1cmwgPSBtc1RlYW1zRGF0YS5lbWFpbC51cmwgPyBtc1RlYW1zRGF0YS5lbWFpbC51cmwgOiBtc1RlYW1zRGF0YS51cmw7XG5cdFx0XHRcdFx0Y29uc3QgbmV3V2luZG93T3BlbiA9IHdpbmRvdy5vcGVuKFwiXCIsIFwibXMtdGVhbXMtc2hhcmUtcG9wdXBcIiwgXCJ3aWR0aD03MDAsaGVpZ2h0PTYwMFwiKTtcblx0XHRcdFx0XHRuZXdXaW5kb3dPcGVuIS5vcGVuZXIgPSBudWxsO1xuXHRcdFx0XHRcdG5ld1dpbmRvd09wZW4hLmxvY2F0aW9uID0gYGh0dHBzOi8vdGVhbXMubWljcm9zb2Z0LmNvbS9zaGFyZT9tc2dUZXh0PSR7ZW5jb2RlVVJJQ29tcG9uZW50KFxuXHRcdFx0XHRcdFx0bWVzc2FnZVxuXHRcdFx0XHRcdCl9JmhyZWY9JHtlbmNvZGVVUklDb21wb25lbnQodXJsKX1gO1xuXHRcdFx0XHR9LFxuXHRcdFx0XHRvblNhdmVUaWxlUHJlc3M6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0XHQvLyBUT0RPIGl0IHNlZW1zIHRoYXQgdGhlIHByZXNzIGV2ZW50IGlzIGV4ZWN1dGVkIGJlZm9yZSB0aGUgZGlhbG9nIGlzIGF2YWlsYWJsZSAtIGFkZGluZyBhIHRpbWVvdXQgaXMgYSBjaGVhcCB3b3JrYXJvdW5kXG5cdFx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHQoRWxlbWVudC5nZXRFbGVtZW50QnlJZChcImJvb2ttYXJrRGlhbG9nXCIpIGFzIERpYWxvZyB8IHVuZGVmaW5lZCk/LmF0dGFjaEFmdGVyQ2xvc2UoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0XHRvTGFzdEZvY3VzZWRDb250cm9sLmZvY3VzKCk7XG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHR9LCAwKTtcblx0XHRcdFx0fSxcblx0XHRcdFx0c2hhcmVKYW1QcmVzc2VkOiBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHRcdFx0YXdhaXQgdGhpcy5fZG9PcGVuSmFtU2hhcmVEaWFsb2coXG5cdFx0XHRcdFx0XHRvTW9kZWxEYXRhPy5qYW0/LnRpdGxlID8gb01vZGVsRGF0YS5qYW0udGl0bGUgOiBvTW9kZWxEYXRhLnRpdGxlLFxuXHRcdFx0XHRcdFx0b01vZGVsRGF0YT8uamFtPy51cmwgPyBvTW9kZWxEYXRhLmphbS51cmwgOiBvTW9kZWxEYXRhLnVybFxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRcdGZyYWdtZW50Q29udHJvbGxlci5vbkNhbmNlbFByZXNzZWQgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG5cdFx0XHRcdG9TaGFyZUFjdGlvblNoZWV0LmNsb3NlKCk7XG5cdFx0XHR9O1xuXG5cdFx0XHRmcmFnbWVudENvbnRyb2xsZXIuc2V0U2hhcmVTaGVldCA9IGZ1bmN0aW9uIChvU2hhcmVTaGVldDogQWN0aW9uU2hlZXQpOiB2b2lkIHtcblx0XHRcdFx0Ynkuc2hhcmVTaGVldCA9IG9TaGFyZVNoZWV0O1xuXHRcdFx0fTtcblxuXHRcdFx0Y29uc3Qgb1RoaXMgPSBuZXcgSlNPTk1vZGVsKHt9KTtcblx0XHRcdGNvbnN0IG9QcmVwcm9jZXNzb3JTZXR0aW5ncyA9IHtcblx0XHRcdFx0YmluZGluZ0NvbnRleHRzOiB7XG5cdFx0XHRcdFx0dGhpczogb1RoaXMuY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvXCIpXG5cdFx0XHRcdH0sXG5cdFx0XHRcdG1vZGVsczoge1xuXHRcdFx0XHRcdHRoaXM6IG9UaGlzXG5cdFx0XHRcdH1cblx0XHRcdH07XG5cdFx0XHRjb25zdCBvVGlsZURhdGEgPSB7XG5cdFx0XHRcdHRpdGxlOiBvTW9kZWxEYXRhPy50aWxlPy50aXRsZSA/IG9Nb2RlbERhdGEudGlsZS50aXRsZSA6IG9Nb2RlbERhdGEudGl0bGUsXG5cdFx0XHRcdHN1YnRpdGxlOiBvTW9kZWxEYXRhPy50aWxlPy5zdWJ0aXRsZSxcblx0XHRcdFx0aWNvbjogb01vZGVsRGF0YT8udGlsZT8uaWNvbixcblx0XHRcdFx0dXJsOiBvTW9kZWxEYXRhPy50aWxlPy51cmwgPyBvTW9kZWxEYXRhLnRpbGUudXJsIDogb01vZGVsRGF0YS51cmwuc3Vic3RyaW5nKG9Nb2RlbERhdGEudXJsLmluZGV4T2YoXCIjXCIpKSxcblx0XHRcdFx0cXVlcnlVcmw6IG9Nb2RlbERhdGE/LnRpbGU/LnF1ZXJ5VXJsXG5cdFx0XHR9O1xuXHRcdFx0aWYgKGJ5LnNoYXJlU2hlZXQpIHtcblx0XHRcdFx0b1NoYXJlQWN0aW9uU2hlZXQgPSBieS5zaGFyZVNoZWV0O1xuXG5cdFx0XHRcdGNvbnN0IG9TaGFyZU1vZGVsID0gb1NoYXJlQWN0aW9uU2hlZXQuZ2V0TW9kZWwoXCJzaGFyZVwiKSBhcyBKU09OTW9kZWw7XG5cdFx0XHRcdHRoaXMuX3NldFN0YXRpY1NoYXJlRGF0YShvU2hhcmVNb2RlbCk7XG5cdFx0XHRcdGNvbnN0IG9OZXdEYXRhID0gZXh0ZW5kKG9TaGFyZU1vZGVsLmdldERhdGEoKSwgb1RpbGVEYXRhKTtcblx0XHRcdFx0b1NoYXJlTW9kZWwuc2V0RGF0YShvTmV3RGF0YSk7XG5cdFx0XHRcdHNldFNoYXJlRW1haWxEYXRhKG9TaGFyZUFjdGlvblNoZWV0LCBvTW9kZWxEYXRhKTtcblx0XHRcdFx0b1NoYXJlQWN0aW9uU2hlZXQub3BlbkJ5KGJ5KTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGNvbnN0IHNGcmFnbWVudE5hbWUgPSBcInNhcC5mZS5tYWNyb3Muc2hhcmUuU2hhcmVTaGVldFwiO1xuXHRcdFx0XHRjb25zdCBvUG9wb3ZlckZyYWdtZW50ID0gWE1MVGVtcGxhdGVQcm9jZXNzb3IubG9hZFRlbXBsYXRlKHNGcmFnbWVudE5hbWUsIFwiZnJhZ21lbnRcIik7XG5cblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRjb25zdCBvRnJhZ21lbnQgPSBhd2FpdCBYTUxQcmVwcm9jZXNzb3IucHJvY2VzcyhvUG9wb3ZlckZyYWdtZW50LCB7IG5hbWU6IHNGcmFnbWVudE5hbWUgfSwgb1ByZXByb2Nlc3NvclNldHRpbmdzKTtcblx0XHRcdFx0XHRvU2hhcmVBY3Rpb25TaGVldCA9IChhd2FpdCBGcmFnbWVudC5sb2FkKHtcblx0XHRcdFx0XHRcdGRlZmluaXRpb246IG9GcmFnbWVudCBhcyB1bmtub3duIGFzIHN0cmluZyxcblx0XHRcdFx0XHRcdGNvbnRyb2xsZXI6IGZyYWdtZW50Q29udHJvbGxlclxuXHRcdFx0XHRcdH0pKSBhcyBBY3Rpb25TaGVldDtcblxuXHRcdFx0XHRcdG9TaGFyZUFjdGlvblNoZWV0LnNldE1vZGVsKG5ldyBKU09OTW9kZWwob1RpbGVEYXRhIHx8IHt9KSwgXCJzaGFyZVwiKTtcblx0XHRcdFx0XHRjb25zdCBvU2hhcmVNb2RlbCA9IG9TaGFyZUFjdGlvblNoZWV0LmdldE1vZGVsKFwic2hhcmVcIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0XHRcdHRoaXMuX3NldFN0YXRpY1NoYXJlRGF0YShvU2hhcmVNb2RlbCk7XG5cdFx0XHRcdFx0Y29uc3Qgb05ld0RhdGEgPSBleHRlbmQob1NoYXJlTW9kZWwuZ2V0RGF0YSgpLCBvVGlsZURhdGEpO1xuXHRcdFx0XHRcdG9TaGFyZU1vZGVsLnNldERhdGEob05ld0RhdGEpO1xuXG5cdFx0XHRcdFx0b1NoYXJlQWN0aW9uU2hlZXQuc2V0TW9kZWwobmV3IEpTT05Nb2RlbChvTW9kZWxEYXRhIHx8IHt9KSwgXCJzaGFyZURhdGFcIik7XG5cdFx0XHRcdFx0c2V0U2hhcmVFbWFpbERhdGEob1NoYXJlQWN0aW9uU2hlZXQsIG9Nb2RlbERhdGEpO1xuXG5cdFx0XHRcdFx0YnkuYWRkRGVwZW5kZW50KG9TaGFyZUFjdGlvblNoZWV0KTtcblx0XHRcdFx0XHRvU2hhcmVBY3Rpb25TaGVldC5vcGVuQnkoYnkpO1xuXHRcdFx0XHRcdGZyYWdtZW50Q29udHJvbGxlci5zZXRTaGFyZVNoZWV0KG9TaGFyZUFjdGlvblNoZWV0KTtcblx0XHRcdFx0fSBjYXRjaCAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgb3BlbmluZyB0aGUgc2hhcmUgZnJhZ21lbnRcIiwgb0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGNhdGNoIChvRXJyb3I6IHVua25vd24pIHtcblx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIGZldGNoaW5nIHRoZSBzaGFyZSBtb2RlbCBkYXRhXCIsIG9FcnJvciBhcyBzdHJpbmcpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHVybCBiYXNlZCBvbiBpZnJhbWUgYW5kIG5vbi1pZnJhbWUgYXBwbGljYXRpb25zLlxuXHQgKiBAcGFyYW0gc2hhcmVVcmwgVGhlIHVybCB0byBiZSBzaGFyZWQuXG5cdCAqIEByZXR1cm5zIFVybC5cblx0ICovXG5cdGFzeW5jIGdldFRlYW1zVXJsKHNoYXJlVXJsOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuXHRcdGNvbnN0IGFwcFVybCA9IGF3YWl0IHRoaXMuYmFzZS5nZXRBcHBDb21wb25lbnQoKT8uZ2V0U2hlbGxTZXJ2aWNlcygpLmdldEluZnJhbWVVcmwoKTtcblx0XHRyZXR1cm4gYXBwVXJsID8gYXBwVXJsIDogc2hhcmVVcmw7XG5cdH1cblxuXHRfc2V0U3RhdGljU2hhcmVEYXRhKHNoYXJlTW9kZWw6IEpTT05Nb2RlbCk6IHZvaWQge1xuXHRcdGNvbnN0IG9SZXNvdXJjZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSE7XG5cdFx0c2hhcmVNb2RlbC5zZXRQcm9wZXJ0eShcIi9qYW1CdXR0b25UZXh0XCIsIG9SZXNvdXJjZS5nZXRUZXh0KFwiVF9DT01NT05fU0FQRkVfU0hBUkVfSkFNXCIpKTtcblx0XHRzaGFyZU1vZGVsLnNldFByb3BlcnR5KFwiL2VtYWlsQnV0dG9uVGV4dFwiLCBvUmVzb3VyY2UuZ2V0VGV4dChcIlRfU0VNQU5USUNfQ09OVFJPTF9TRU5EX0VNQUlMXCIpKTtcblx0XHRzaGFyZU1vZGVsLnNldFByb3BlcnR5KFwiL21zVGVhbXNTaGFyZUJ1dHRvblRleHRcIiwgb1Jlc291cmNlLmdldFRleHQoXCJUX0NPTU1PTl9TQVBGRV9TSEFSRV9NU1RFQU1TXCIpKTtcblx0XHQvLyBTaGFyZSB0byBNaWNyb3NvZnQgVGVhbXMgaXMgZmVhdHVyZSB3aGljaCBmb3Igbm93IG9ubHkgZ2V0cyBlbmFibGVkIGZvciBzZWxlY3RlZCBjdXN0b21lcnMuXG5cdFx0Ly8gVGhlIHN3aXRjaCBcInNhcEhvcml6b25FbmFibGVkXCIgYW5kIGNoZWNrIGZvciBpdCB3YXMgYWxpZ25lZCB3aXRoIHRoZSBGaW9yaSBsYXVuY2hwYWQgdGVhbS5cblx0XHRpZiAoT2JqZWN0UGF0aC5nZXQoXCJzYXAtdXNoZWxsLWNvbmZpZy5yZW5kZXJlcnMuZmlvcmkyLmNvbXBvbmVudERhdGEuY29uZmlnLnNhcEhvcml6b25FbmFibGVkXCIpID09PSB0cnVlKSB7XG5cdFx0XHRzaGFyZU1vZGVsLnNldFByb3BlcnR5KFwiL21zVGVhbXNWaXNpYmxlXCIsIHRydWUpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRzaGFyZU1vZGVsLnNldFByb3BlcnR5KFwiL21zVGVhbXNWaXNpYmxlXCIsIGZhbHNlKTtcblx0XHR9XG5cdFx0Y29uc3QgZm5HZXRVc2VyID0gT2JqZWN0UGF0aC5nZXQoXCJzYXAudXNoZWxsLkNvbnRhaW5lci5nZXRVc2VyXCIpO1xuXHRcdHNoYXJlTW9kZWwuc2V0UHJvcGVydHkoXCIvamFtVmlzaWJsZVwiLCAhIWZuR2V0VXNlciAmJiBmbkdldFVzZXIoKS5pc0phbUFjdGl2ZSgpKTtcblx0XHRzaGFyZU1vZGVsLnNldFByb3BlcnR5KFwiL3NhdmVBc1RpbGVWaXNpYmxlXCIsICEhc2FwLnVpLnJlcXVpcmUoXCJzYXAvdXNoZWxsL0NvbnRhaW5lclwiKSk7XG5cdH1cblxuXHQvL3RoZSBhY3R1YWwgb3BlbmluZyBvZiB0aGUgSkFNIHNoYXJlIGRpYWxvZ1xuXHRhc3luYyBfZG9PcGVuSmFtU2hhcmVEaWFsb2codGV4dDogc3RyaW5nLCBzVXJsPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3Qgb1NoYXJlRGlhbG9nID0gYXdhaXQgQ29tcG9uZW50LmNyZWF0ZSh7XG5cdFx0XHRuYW1lOiBcInNhcC5jb2xsYWJvcmF0aW9uLmNvbXBvbmVudHMuZmlvcmkuc2hhcmluZy5kaWFsb2dcIixcblx0XHRcdHNldHRpbmdzOiB7XG5cdFx0XHRcdG9iamVjdDoge1xuXHRcdFx0XHRcdGlkOiBzVXJsLFxuXHRcdFx0XHRcdHNoYXJlOiB0ZXh0XG5cdFx0XHRcdH1cblx0XHRcdH0gYXMgJENvbXBvbmVudFNldHRpbmdzXG5cdFx0fSk7XG5cdFx0KG9TaGFyZURpYWxvZyBhcyB1bmtub3duIGFzIHsgb3BlbjogRnVuY3Rpb24gfSkub3BlbigpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyaWdnZXJzIHRoZSBlbWFpbCBmbG93LlxuXHQgKlxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdGFzeW5jIF90cmlnZ2VyRW1haWwoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3Qgc2hhcmVNZXRhZGF0YTogU2hhcmVNZXRhZGF0YSA9IGF3YWl0IHRoaXMuX2FkYXB0U2hhcmVNZXRhZGF0YSgpO1xuXHRcdGNvbnN0IG9SZXNvdXJjZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSE7XG5cdFx0Y29uc3Qgc0VtYWlsU3ViamVjdCA9IHNoYXJlTWV0YWRhdGEuZW1haWwudGl0bGVcblx0XHRcdD8gc2hhcmVNZXRhZGF0YS5lbWFpbC50aXRsZVxuXHRcdFx0OiBvUmVzb3VyY2UuZ2V0VGV4dChcIlRfU0hBUkVfVVRJTF9IRUxQRVJfU0FQRkVfRU1BSUxfU1VCSkVDVFwiLCBbc2hhcmVNZXRhZGF0YS50aXRsZV0pO1xuXHRcdGxpYnJhcnkuVVJMSGVscGVyLnRyaWdnZXJFbWFpbCh1bmRlZmluZWQsIHNFbWFpbFN1YmplY3QsIHNoYXJlTWV0YWRhdGEuZW1haWwudXJsID8gc2hhcmVNZXRhZGF0YS5lbWFpbC51cmwgOiBzaGFyZU1ldGFkYXRhLnVybCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgdGhlIHNoYXJlIHRvIGphbSBmbG93LlxuXHQgKlxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdGFzeW5jIF90cmlnZ2VyU2hhcmVUb0phbSgpOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBzaGFyZU1ldGFkYXRhOiBTaGFyZU1ldGFkYXRhID0gYXdhaXQgdGhpcy5fYWRhcHRTaGFyZU1ldGFkYXRhKCk7XG5cdFx0YXdhaXQgdGhpcy5fZG9PcGVuSmFtU2hhcmVEaWFsb2coXG5cdFx0XHRzaGFyZU1ldGFkYXRhLmphbS50aXRsZSA/IHNoYXJlTWV0YWRhdGEuamFtLnRpdGxlIDogc2hhcmVNZXRhZGF0YS50aXRsZSxcblx0XHRcdHNoYXJlTWV0YWRhdGEuamFtLnVybCA/IHNoYXJlTWV0YWRhdGEuamFtLnVybCA6IHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gKyB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgKyBzaGFyZU1ldGFkYXRhLnVybFxuXHRcdCk7XG5cdH1cblxuXHQvKipcblx0ICogVHJpZ2dlcnMgdGhlIHNhdmUgYXMgdGlsZSBmbG93LlxuXHQgKiBAcGFyYW0gW3NvdXJjZV1cblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRhc3luYyBfc2F2ZUFzVGlsZShzb3VyY2U6IEl0ZW0pOiBQcm9taXNlPHZvaWQ+IHtcblx0XHRjb25zdCBzaGFyZUluZm9Nb2RlbCA9IHRoaXMuYmFzZT8uZ2V0VmlldygpPy5nZXRNb2RlbChcInNoYXJlSW5mb1wiKSBhcyBKU09OTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0aWYgKHNoYXJlSW5mb01vZGVsKSB7XG5cdFx0XHQvLyBzZXQgdGhlIHNhdmVBc1RpbGVDbGlja2VkIGZsYWcgdG8gdHJ1ZSB3aGVuIHNhdmUgYXMgdGlsZSBpcyBjbGlja2VkXG5cdFx0XHRzaGFyZUluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9zYXZlQXNUaWxlQ2xpY2tlZFwiLCB0cnVlKTtcblx0XHR9XG5cdFx0Y29uc3Qgc2hhcmVNZXRhZGF0YTogU2hhcmVNZXRhZGF0YSA9IGF3YWl0IHRoaXMuX2FkYXB0U2hhcmVNZXRhZGF0YSgpLFxuXHRcdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbiA9IHNvdXJjZS5nZXREZXBlbmRlbnRzKClbMF0gYXMgQWRkQm9va21hcmtCdXR0b24sXG5cdFx0XHRoYXNoQ2hhbmdlckluc3RhbmNlID0gSGFzaENoYW5nZXIuZ2V0SW5zdGFuY2UoKSxcblx0XHRcdHNIYXNoID0gaGFzaENoYW5nZXJJbnN0YW5jZS5nZXRIYXNoKCksXG5cdFx0XHRzQmFzZVBhdGggPSBoYXNoQ2hhbmdlckluc3RhbmNlLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2ggPyBoYXNoQ2hhbmdlckluc3RhbmNlLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIikgOiBcIlwiO1xuXHRcdHNoYXJlTWV0YWRhdGEudXJsID0gc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoO1xuXG5cdFx0Ly8gc2V0IEFkZEJvb2ttYXJrQnV0dG9uIHByb3BlcnRpZXNcblx0XHRpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uLnNldFRpdGxlKHNoYXJlTWV0YWRhdGEudGlsZS50aXRsZSA/IHNoYXJlTWV0YWRhdGEudGlsZS50aXRsZSA6IHNoYXJlTWV0YWRhdGEudGl0bGUpO1xuXHRcdGludGVybmFsQWRkQm9va21hcmtCdXR0b24uc2V0U3VidGl0bGUoc2hhcmVNZXRhZGF0YS50aWxlLnN1YnRpdGxlKTtcblx0XHRpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uLnNldFRpbGVJY29uKHNoYXJlTWV0YWRhdGEudGlsZS5pY29uKTtcblx0XHRpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uLnNldEN1c3RvbVVybChzaGFyZU1ldGFkYXRhLnRpbGUudXJsID8gc2hhcmVNZXRhZGF0YS50aWxlLnVybCA6IHNoYXJlTWV0YWRhdGEudXJsKTtcblx0XHRpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uLnNldFNlcnZpY2VVcmwoc2hhcmVNZXRhZGF0YS50aWxlLnF1ZXJ5VXJsKTtcblx0XHRpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uLnNldERhdGFTb3VyY2Uoe1xuXHRcdFx0dHlwZTogXCJPRGF0YVwiLFxuXHRcdFx0c2V0dGluZ3M6IHtcblx0XHRcdFx0b2RhdGFWZXJzaW9uOiBcIjQuMFwiXG5cdFx0XHR9XG5cdFx0fSk7XG5cblx0XHQvLyBvbmNlIHRoZSBzZXJ2aWNlIHVybCBpcyByZWFkLCBzZXQgdGhlIHNhdmVBc1RpbGVDbGlja2VkIGZsYWcgdG8gZmFsc2Vcblx0XHRpZiAoc2hhcmVJbmZvTW9kZWwpIHtcblx0XHRcdHNoYXJlSW5mb01vZGVsLnNldFByb3BlcnR5KFwiL3NhdmVBc1RpbGVDbGlja2VkXCIsIGZhbHNlKTtcblx0XHR9XG5cblx0XHQvLyBhZGRCb29rbWFya0J1dHRvbiBmaXJlIHByZXNzXG5cdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbi5maXJlUHJlc3MoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDYWxsIHRoZSBhZGFwdFNoYXJlTWV0YWRhdGEgZXh0ZW5zaW9uLlxuXHQgKiBAcmV0dXJucyBTaGFyZSBNZXRhZGF0YVxuXHQgKi9cblx0QHB1YmxpY0V4dGVuc2lvbigpXG5cdEBmaW5hbEV4dGVuc2lvbigpXG5cdGFzeW5jIF9hZGFwdFNoYXJlTWV0YWRhdGEoKTogUHJvbWlzZTxTaGFyZU1ldGFkYXRhPiB7XG5cdFx0Y29uc3QgaGFzaENoYW5nZXJJbnN0YW5jZSA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCk7XG5cdFx0Y29uc3Qgc0hhc2ggPSBlbmNvZGVVUklDb21wb25lbnQoaGFzaENoYW5nZXJJbnN0YW5jZS5nZXRIYXNoKCkpO1xuXHRcdGNvbnN0IHNCYXNlUGF0aCA9IGhhc2hDaGFuZ2VySW5zdGFuY2UuaHJlZkZvckFwcFNwZWNpZmljSGFzaCA/IGhhc2hDaGFuZ2VySW5zdGFuY2UuaHJlZkZvckFwcFNwZWNpZmljSGFzaChcIlwiKSA6IFwiXCI7XG5cblx0XHRjb25zdCBvU2hhcmVNZXRhZGF0YTogU2hhcmVNZXRhZGF0YSA9IHtcblx0XHRcdHVybDpcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLm9yaWdpbiArXG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSArXG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggK1xuXHRcdFx0XHQoc0hhc2ggPyBzQmFzZVBhdGggKyBzSGFzaCA6IHdpbmRvdy5sb2NhdGlvbi5oYXNoKSxcblx0XHRcdHRpdGxlOiBhd2FpdCB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCk/LmdldFNoZWxsU2VydmljZXMoKT8uZ2V0VGl0bGUoKSxcblx0XHRcdGVtYWlsOiB7XG5cdFx0XHRcdHVybDogXCJcIixcblx0XHRcdFx0dGl0bGU6IFwiXCJcblx0XHRcdH0sXG5cdFx0XHRqYW06IHtcblx0XHRcdFx0dXJsOiBcIlwiLFxuXHRcdFx0XHR0aXRsZTogXCJcIlxuXHRcdFx0fSxcblx0XHRcdHRpbGU6IHtcblx0XHRcdFx0dXJsOiBcIlwiLFxuXHRcdFx0XHR0aXRsZTogXCJcIixcblx0XHRcdFx0c3VidGl0bGU6IFwiXCIsXG5cdFx0XHRcdGljb246IFwiXCIsXG5cdFx0XHRcdHF1ZXJ5VXJsOiBcIlwiXG5cdFx0XHR9XG5cdFx0fTtcblx0XHRyZXR1cm4gdGhpcy5iYXNlLmdldFZpZXcoKS5nZXRDb250cm9sbGVyKCkuc2hhcmUuYWRhcHRTaGFyZU1ldGFkYXRhKG9TaGFyZU1ldGFkYXRhKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBTaGFyZVV0aWxzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0VBd0JBLElBQUlBLG1CQUE0QjtFQVVoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQSxJQU9NQyxVQUFVLElBQUFDLElBQUEsR0FEZkMsY0FBYyxDQUFDLHdDQUF3QyxDQUFDLEVBQUFDLEtBQUEsR0FRdkRDLGNBQWMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FlaEJELGNBQWMsQ0FBQyxDQUFDLEVBQUFFLEtBQUEsR0FjaEJDLGVBQWUsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FDakJDLGNBQWMsQ0FBQyxDQUFDLEVBQUFDLEtBQUEsR0FRaEJILGVBQWUsQ0FBQyxDQUFDLEVBQUFJLEtBQUEsR0FDakJDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBQUMsS0FBQSxHQTBCeEJOLGVBQWUsQ0FBQyxDQUFDLEVBQUFPLEtBQUEsR0FDakJGLFVBQVUsQ0FBQ0csaUJBQWlCLENBQUNDLEtBQUssQ0FBQyxF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
364
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJvTGFzdEZvY3VzZWRDb250cm9sIiwiU2hhcmVVdGlscyIsIl9kZWMiLCJkZWZpbmVVSTVDbGFzcyIsIl9kZWMyIiwibWV0aG9kT3ZlcnJpZGUiLCJfZGVjMyIsIl9kZWM0IiwicHVibGljRXh0ZW5zaW9uIiwiX2RlYzUiLCJmaW5hbEV4dGVuc2lvbiIsIl9kZWM2IiwiX2RlYzciLCJleHRlbnNpYmxlIiwiX2RlYzgiLCJfZGVjOSIsIk92ZXJyaWRlRXhlY3V0aW9uIiwiQWZ0ZXIiLCJfZGVjMTAiLCJfZGVjMTEiLCJfZGVjMTIiLCJfZGVjMTMiLCJfZGVjMTQiLCJfZGVjMTUiLCJfZGVjMTYiLCJfZGVjMTciLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0NvbnRyb2xsZXJFeHRlbnNpb24iLCJfaW5oZXJpdHNMb29zZSIsImNhbGwiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbkluaXQiLCJzaGFyZUluZm9Nb2RlbCIsIkpTT05Nb2RlbCIsInNhdmVBc1RpbGVDbGlja2VkIiwiY29sbGFib3JhdGlvbkluZm8iLCJ1cmwiLCJhcHBUaXRsZSIsInN1YlRpdGxlIiwibWluaWZ5VXJsRm9yQ2hhdCIsImFwcElkIiwiYmFzZSIsImdldFZpZXciLCJzZXRNb2RlbCIsIm9uRXhpdCIsIl90aGlzJGJhc2UiLCJfdGhpcyRiYXNlJGdldFZpZXciLCJnZXRNb2RlbCIsImRlc3Ryb3kiLCJvcGVuU2hhcmVTaGVldCIsIm9Db250cm9sIiwiX29wZW5TaGFyZVNoZWV0SW1wbCIsImdldENhcmREZWZpbml0aW9uIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bmRlZmluZWQiLCJhZGFwdFNoYXJlTWV0YWRhdGEiLCJvU2hhcmVNZXRhZGF0YSIsIl90aGlzJGJhc2UyIiwiX3RoaXMkYmFzZTIkZ2V0VmlldyIsIl9tYW5pZmVzdCRzYXBBcHAiLCJfbWFuaWZlc3Qkc2FwQXBwMiIsIm1hbmlmZXN0IiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0TWFuaWZlc3QiLCJpZCIsInRpdGxlIiwiZG9jdW1lbnQiLCJzZXRQcm9wZXJ0eSIsImJ5IiwiX3RoaXMkYmFzZSRnZXRBcHBDb21wIiwiX3RoaXMkYmFzZSRnZXRBcHBDb21wMiIsIm9TaGFyZUFjdGlvblNoZWV0IiwiaGFzaENoYW5nZXJJbnN0YW5jZSIsIkhhc2hDaGFuZ2VyIiwiZ2V0SW5zdGFuY2UiLCJzSGFzaCIsImdldEhhc2giLCJzQmFzZVBhdGgiLCJocmVmRm9yQXBwU3BlY2lmaWNIYXNoIiwid2luZG93IiwibG9jYXRpb24iLCJvcmlnaW4iLCJwYXRobmFtZSIsInNlYXJjaCIsImhhc2giLCJnZXRTaGVsbFNlcnZpY2VzIiwiZ2V0VGl0bGUiLCJlbWFpbCIsImphbSIsInRpbGUiLCJzdWJ0aXRsZSIsImljb24iLCJxdWVyeVVybCIsInNldFNoYXJlRW1haWxEYXRhIiwic2hhcmVBY3Rpb25TaGVldCIsIm9Nb2RlbERhdGEiLCJvU2hhcmVNYWlsTW9kZWwiLCJvTmV3TWFpbERhdGEiLCJleHRlbmQiLCJnZXREYXRhIiwic2V0RGF0YSIsIl90aGlzJGJhc2UkZ2V0VmlldyRnZSIsIl90aGlzJGJhc2UkZ2V0VmlldyRnZTIiLCJfb01vZGVsRGF0YSR0aWxlIiwiX29Nb2RlbERhdGEkdGlsZTIiLCJfb01vZGVsRGF0YSR0aWxlMyIsIl9vTW9kZWxEYXRhJHRpbGU0IiwiX29Nb2RlbERhdGEkdGlsZTUiLCJnZXRDb250cm9sbGVyIiwic2hhcmUiLCJmcmFnbWVudENvbnRyb2xsZXIiLCJzaGFyZUVtYWlsUHJlc3NlZCIsIm9NYWlsTW9kZWwiLCJvTWFpbERhdGEiLCJvUmVzb3VyY2UiLCJMaWJyYXJ5IiwiZ2V0UmVzb3VyY2VCdW5kbGVGb3IiLCJzRW1haWxTdWJqZWN0IiwiZ2V0VGV4dCIsImxpYnJhcnkiLCJVUkxIZWxwZXIiLCJ0cmlnZ2VyRW1haWwiLCJzaGFyZU1TVGVhbXNQcmVzc2VkIiwibXNUZWFtc01vZGVsIiwibXNUZWFtc0RhdGEiLCJtZXNzYWdlIiwibmV3V2luZG93T3BlbiIsIm9wZW4iLCJvcGVuZXIiLCJlbmNvZGVVUklDb21wb25lbnQiLCJvblNhdmVUaWxlUHJlc3MiLCJzZXRUaW1lb3V0IiwiX0VsZW1lbnQkZ2V0RWxlbWVudEJ5IiwiRWxlbWVudCIsImdldEVsZW1lbnRCeUlkIiwiYXR0YWNoQWZ0ZXJDbG9zZSIsImZvY3VzIiwic2hhcmVKYW1QcmVzc2VkIiwiX29Nb2RlbERhdGEkamFtIiwiX29Nb2RlbERhdGEkamFtMiIsIl9kb09wZW5KYW1TaGFyZURpYWxvZyIsIm9uQ2FuY2VsUHJlc3NlZCIsImNsb3NlIiwic2V0U2hhcmVTaGVldCIsIm9TaGFyZVNoZWV0Iiwic2hhcmVTaGVldCIsIm9UaGlzIiwib1ByZXByb2Nlc3NvclNldHRpbmdzIiwiYmluZGluZ0NvbnRleHRzIiwidGhpcyIsImNyZWF0ZUJpbmRpbmdDb250ZXh0IiwibW9kZWxzIiwib1RpbGVEYXRhIiwic3Vic3RyaW5nIiwiaW5kZXhPZiIsIm9TaGFyZU1vZGVsIiwiX3NldFN0YXRpY1NoYXJlRGF0YSIsIm9OZXdEYXRhIiwib3BlbkJ5Iiwic0ZyYWdtZW50TmFtZSIsIm9Qb3BvdmVyRnJhZ21lbnQiLCJYTUxUZW1wbGF0ZVByb2Nlc3NvciIsImxvYWRUZW1wbGF0ZSIsIm9GcmFnbWVudCIsIlhNTFByZXByb2Nlc3NvciIsInByb2Nlc3MiLCJuYW1lIiwiRnJhZ21lbnQiLCJsb2FkIiwiZGVmaW5pdGlvbiIsImNvbnRyb2xsZXIiLCJhZGREZXBlbmRlbnQiLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsImdldFRlYW1zVXJsIiwic2hhcmVVcmwiLCJfdGhpcyRiYXNlJGdldEFwcENvbXAzIiwiYXBwVXJsIiwiZ2V0SW5mcmFtZVVybCIsInNoYXJlTW9kZWwiLCJPYmplY3RQYXRoIiwiZ2V0IiwiZm5HZXRVc2VyIiwiaXNKYW1BY3RpdmUiLCJzYXAiLCJ1aSIsInJlcXVpcmUiLCJ0ZXh0Iiwic1VybCIsIm9TaGFyZURpYWxvZyIsIkNvbXBvbmVudCIsImNyZWF0ZSIsInNldHRpbmdzIiwib2JqZWN0IiwiX3RyaWdnZXJFbWFpbCIsInNoYXJlTWV0YWRhdGEiLCJfYWRhcHRTaGFyZU1ldGFkYXRhIiwiX3RyaWdnZXJTaGFyZVRvSmFtIiwiX3NhdmVBc1RpbGUiLCJzb3VyY2UiLCJfdGhpcyRiYXNlMyIsIl90aGlzJGJhc2UzJGdldFZpZXciLCJpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uIiwiZ2V0RGVwZW5kZW50cyIsInNldFRpdGxlIiwic2V0U3VidGl0bGUiLCJzZXRUaWxlSWNvbiIsInNldEN1c3RvbVVybCIsInNldFNlcnZpY2VVcmwiLCJzZXREYXRhU291cmNlIiwidHlwZSIsIm9kYXRhVmVyc2lvbiIsImZpcmVQcmVzcyIsIl90aGlzJGJhc2UkZ2V0QXBwQ29tcDQiLCJfdGhpcyRiYXNlJGdldEFwcENvbXA1IiwiQ29udHJvbGxlckV4dGVuc2lvbiIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlNoYXJlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IE9iamVjdFBhdGggZnJvbSBcInNhcC9iYXNlL3V0aWwvT2JqZWN0UGF0aFwiO1xuaW1wb3J0IGV4dGVuZCBmcm9tIFwic2FwL2Jhc2UvdXRpbC9leHRlbmRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBleHRlbnNpYmxlLCBmaW5hbEV4dGVuc2lvbiwgbWV0aG9kT3ZlcnJpZGUsIHB1YmxpY0V4dGVuc2lvbiB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIEFjdGlvblNoZWV0IGZyb20gXCJzYXAvbS9BY3Rpb25TaGVldFwiO1xuaW1wb3J0IHR5cGUgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBsaWJyYXJ5IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSB7ICRDb21wb25lbnRTZXR0aW5ncyB9IGZyb20gXCJzYXAvdWkvY29yZS9Db21wb25lbnRcIjtcbmltcG9ydCBDb21wb25lbnQgZnJvbSBcInNhcC91aS9jb3JlL0NvbXBvbmVudFwiO1xuaW1wb3J0IHR5cGUgQ29udHJvbCBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IEVsZW1lbnQgZnJvbSBcInNhcC91aS9jb3JlL0VsZW1lbnRcIjtcbmltcG9ydCBGcmFnbWVudCBmcm9tIFwic2FwL3VpL2NvcmUvRnJhZ21lbnRcIjtcbmltcG9ydCB0eXBlIEl0ZW0gZnJvbSBcInNhcC91aS9jb3JlL0l0ZW1cIjtcbmltcG9ydCBMaWJyYXJ5IGZyb20gXCJzYXAvdWkvY29yZS9MaWJcIjtcbmltcG9ydCBYTUxUZW1wbGF0ZVByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvWE1MVGVtcGxhdGVQcm9jZXNzb3JcIjtcbmltcG9ydCBDb250cm9sbGVyRXh0ZW5zaW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvQ29udHJvbGxlckV4dGVuc2lvblwiO1xuaW1wb3J0IE92ZXJyaWRlRXhlY3V0aW9uIGZyb20gXCJzYXAvdWkvY29yZS9tdmMvT3ZlcnJpZGVFeGVjdXRpb25cIjtcbmltcG9ydCBIYXNoQ2hhbmdlciBmcm9tIFwic2FwL3VpL2NvcmUvcm91dGluZy9IYXNoQ2hhbmdlclwiO1xuaW1wb3J0IFhNTFByZXByb2Nlc3NvciBmcm9tIFwic2FwL3VpL2NvcmUvdXRpbC9YTUxQcmVwcm9jZXNzb3JcIjtcbmltcG9ydCBKU09OTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9qc29uL0pTT05Nb2RlbFwiO1xuaW1wb3J0IHR5cGUgQWRkQm9va21hcmtCdXR0b24gZnJvbSBcInNhcC91c2hlbGwvdWkvZm9vdGVyYmFyL0FkZEJvb2ttYXJrQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7IElBZGFwdGl2ZUNhcmQgfSBmcm9tIFwidHlwZXMvYWRhcHRpdmVDYXJkX3R5cGVzXCI7XG5pbXBvcnQgdHlwZSBQYWdlQ29udHJvbGxlciBmcm9tIFwiLi4vUGFnZUNvbnRyb2xsZXJcIjtcblxubGV0IG9MYXN0Rm9jdXNlZENvbnRyb2w6IENvbnRyb2w7XG5cbmV4cG9ydCB0eXBlIFNoYXJlTWV0YWRhdGEgPSB7XG5cdHVybDogc3RyaW5nO1xuXHR0aXRsZTogc3RyaW5nO1xuXHRlbWFpbDogeyB1cmw6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9O1xuXHRqYW06IHsgdXJsPzogc3RyaW5nOyB0aXRsZTogc3RyaW5nIH07XG5cdHRpbGU6IHsgdXJsPzogc3RyaW5nOyB0aXRsZTogc3RyaW5nOyBzdWJ0aXRsZTogc3RyaW5nOyBpY29uPzogc3RyaW5nOyBxdWVyeVVybD86IHN0cmluZyB9O1xufTtcblxuLyoqXG4gKiBBIGNvbnRyb2xsZXIgZXh0ZW5zaW9uIG9mZmVyaW5nIGhvb2tzIGludG8gdGhlIHJvdXRpbmcgZmxvdyBvZiB0aGUgYXBwbGljYXRpb25cbiAqIEBoaWRlY29uc3RydWN0b3JcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjg2LjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLmNvcmUuY29udHJvbGxlcmV4dGVuc2lvbnMuU2hhcmVcIilcbmNsYXNzIFNoYXJlVXRpbHMgZXh0ZW5kcyBDb250cm9sbGVyRXh0ZW5zaW9uIHtcblx0cHJvdGVjdGVkIGJhc2UhOiBQYWdlQ29udHJvbGxlcjtcblxuXHRjb25zdHJ1Y3RvcigpIHtcblx0XHRzdXBlcigpO1xuXHR9XG5cblx0QG1ldGhvZE92ZXJyaWRlKClcblx0b25Jbml0KCk6IHZvaWQge1xuXHRcdGNvbnN0IHNoYXJlSW5mb01vZGVsOiBKU09OTW9kZWwgPSBuZXcgSlNPTk1vZGVsKHtcblx0XHRcdHNhdmVBc1RpbGVDbGlja2VkOiBmYWxzZSxcblx0XHRcdGNvbGxhYm9yYXRpb25JbmZvOiB7XG5cdFx0XHRcdHVybDogXCJcIixcblx0XHRcdFx0YXBwVGl0bGU6IFwiXCIsXG5cdFx0XHRcdHN1YlRpdGxlOiBcIlwiLFxuXHRcdFx0XHRtaW5pZnlVcmxGb3JDaGF0OiB0cnVlLFxuXHRcdFx0XHRhcHBJZDogXCJcIlxuXHRcdFx0fVxuXHRcdH0pO1xuXHRcdHRoaXMuYmFzZS5nZXRWaWV3KCkuc2V0TW9kZWwoc2hhcmVJbmZvTW9kZWwsIFwic2hhcmVJbmZvXCIpO1xuXHR9XG5cblx0QG1ldGhvZE92ZXJyaWRlKClcblx0b25FeGl0KCk6IHZvaWQge1xuXHRcdGNvbnN0IHNoYXJlSW5mb01vZGVsID0gdGhpcy5iYXNlPy5nZXRWaWV3KCk/LmdldE1vZGVsKFwic2hhcmVJbmZvXCIpIGFzIEpTT05Nb2RlbCB8IHVuZGVmaW5lZDtcblx0XHRpZiAoc2hhcmVJbmZvTW9kZWwpIHtcblx0XHRcdHNoYXJlSW5mb01vZGVsLmRlc3Ryb3koKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogT3BlbnMgdGhlIHNoYXJlIHNoZWV0LlxuXHQgKiBAcGFyYW0gb0NvbnRyb2wgVGhlIGNvbnRyb2wgdG8gd2hpY2ggdGhlIEFjdGlvblNoZWV0IGlzIG9wZW5lZC5cblx0ICogQHB1YmxpY1xuXHQgKiBAc2luY2UgMS45My4wXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0b3BlblNoYXJlU2hlZXQob0NvbnRyb2w6IENvbnRyb2wpOiB2b2lkIHtcblx0XHR0aGlzLl9vcGVuU2hhcmVTaGVldEltcGwob0NvbnRyb2wpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldCBhZGFwdGl2ZSBjYXJkIGRlZmluaXRpb24uXG5cdCAqIEByZXR1cm5zIEFkYXB0aXZlIGNhcmQgZGVmaW5pdGlvbiBvciBhIFByb21pc2UgcmVzb2x2aW5nIHRoZSBBZGFwdGl2ZSBjYXJkIGRlZmluaXRpb25cblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShcIkFmdGVyQXN5bmNcIilcblx0YXN5bmMgZ2V0Q2FyZERlZmluaXRpb24oKTogUHJvbWlzZTxJQWRhcHRpdmVDYXJkIHwgdW5kZWZpbmVkPiB7XG5cdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSh1bmRlZmluZWQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkYXB0cyB0aGUgbWV0YWRhdGEgdXNlZCB3aGlsZSBzaGFyaW5nIHRoZSBwYWdlIFVSTCB2aWEgJ1NlbmQgRW1haWwnLCAnU2hhcmUgaW4gU0FQIEphbScsIGFuZCAnU2F2ZSBhcyBUaWxlJy5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhIE9iamVjdCBjb250YWluaW5nIHRoZSBzaGFyZSBtZXRhZGF0YS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnVybCBEZWZhdWx0IFVSTCB0aGF0IHdpbGwgYmUgdXNlZCB2aWEgJ1NlbmQgRW1haWwnLCAnU2hhcmUgaW4gU0FQIEphbScsIGFuZCAnU2F2ZSBhcyBUaWxlJ1xuXHQgKiBAcGFyYW0gb1NoYXJlTWV0YWRhdGEudGl0bGUgRGVmYXVsdCB0aXRsZSB0aGF0IHdpbGwgYmUgdXNlZCBhcyAnZW1haWwgc3ViamVjdCcgaW4gJ1NlbmQgRW1haWwnLCAnc2hhcmUgdGV4dCcgaW4gJ1NoYXJlIGluIFNBUCBKYW0nIGFuZCAndGl0bGUnIGluICdTYXZlIGFzIFRpbGUnXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS5lbWFpbCBFbWFpbC1zcGVjaWZpYyBtZXRhZGF0YS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLmVtYWlsLnVybCBVUkwgdGhhdCB3aWxsIGJlIHVzZWQgc3BlY2lmaWNhbGx5IGZvciAnU2VuZCBFbWFpbCcuIFRoaXMgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIG9TaGFyZU1ldGFkYXRhLnVybC5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLmVtYWlsLnRpdGxlIFRpdGxlIHRoYXQgd2lsbCBiZSB1c2VkIGFzIFwiZW1haWwgc3ViamVjdFwiIGluICdTZW5kIEVtYWlsJy4gVGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb1NoYXJlTWV0YWRhdGEudGl0bGUuXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS5qYW0gU0FQIEphbS1zcGVjaWZpYyBtZXRhZGF0YS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLmphbS51cmwgVVJMIHRoYXQgd2lsbCBiZSB1c2VkIHNwZWNpZmljYWxseSBmb3IgJ1NoYXJlIGluIFNBUCBKYW0nLiBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvU2hhcmVNZXRhZGF0YS51cmwuXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS5qYW0udGl0bGUgVGl0bGUgdGhhdCB3aWxsIGJlIHVzZWQgYXMgJ3NoYXJlIHRleHQnIGluICdTaGFyZSBpbiBTQVAgSmFtJy4gVGhpcyB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgb1NoYXJlTWV0YWRhdGEudGl0bGUuXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS50aWxlIFNhdmUgYXMgVGlsZS1zcGVjaWZpYyBtZXRhZGF0YS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnRpbGUudXJsIFVSTCB0aGF0IHdpbGwgYmUgdXNlZCBzcGVjaWZpY2FsbHkgZm9yICdTYXZlIGFzIFRpbGUnLiBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvU2hhcmVNZXRhZGF0YS51cmwuXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS50aWxlLnRpdGxlIFRpdGxlIHRvIGJlIHVzZWQgZm9yIHRoZSB0aWxlLiBUaGlzIHRha2VzIHByZWNlZGVuY2Ugb3ZlciBvU2hhcmVNZXRhZGF0YS50aXRsZS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnRpbGUuc3VidGl0bGUgU3VidGl0bGUgdG8gYmUgdXNlZCBmb3IgdGhlIHRpbGUuXG5cdCAqIEBwYXJhbSBvU2hhcmVNZXRhZGF0YS50aWxlLmljb24gSWNvbiB0byBiZSB1c2VkIGZvciB0aGUgdGlsZS5cblx0ICogQHBhcmFtIG9TaGFyZU1ldGFkYXRhLnRpbGUucXVlcnlVcmwgUXVlcnkgVVJMIG9mIGFuIE9EYXRhIHNlcnZpY2UgZnJvbSB3aGljaCBkYXRhIGZvciBhIGR5bmFtaWMgdGlsZSBpcyByZWFkLlxuXHQgKiBAcmV0dXJucyBTaGFyZSBNZXRhZGF0YSBvciBhIFByb21pc2UgcmVzb2x2aW5nIHRoZSBTaGFyZSBNZXRhZGF0YVxuXHQgKiBAcHVibGljXG5cdCAqIEBzaW5jZSAxLjkzLjBcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZXh0ZW5zaWJsZShPdmVycmlkZUV4ZWN1dGlvbi5BZnRlcilcblx0YWRhcHRTaGFyZU1ldGFkYXRhKG9TaGFyZU1ldGFkYXRhOiB7XG5cdFx0dXJsOiBzdHJpbmc7XG5cdFx0dGl0bGU6IHN0cmluZztcblx0XHRlbWFpbDogeyB1cmw6IHN0cmluZzsgdGl0bGU6IHN0cmluZyB9O1xuXHRcdGphbTogeyB1cmw/OiBzdHJpbmc7IHRpdGxlOiBzdHJpbmcgfTtcblx0XHR0aWxlOiB7IHVybD86IHN0cmluZzsgdGl0bGU6IHN0cmluZzsgc3VidGl0bGU6IHN0cmluZzsgaWNvbj86IHN0cmluZzsgcXVlcnlVcmw/OiBzdHJpbmcgfTtcblx0fSk6IFNoYXJlTWV0YWRhdGEgfCBQcm9taXNlPFNoYXJlTWV0YWRhdGE+IHtcblx0XHRjb25zdCBzaGFyZUluZm9Nb2RlbCA9IHRoaXMuYmFzZT8uZ2V0VmlldygpPy5nZXRNb2RlbChcInNoYXJlSW5mb1wiKSBhcyBKU09OTW9kZWwgfCB1bmRlZmluZWQ7XG5cdFx0Y29uc3QgbWFuaWZlc3QgPSB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCkuZ2V0TWFuaWZlc3QoKTtcblx0XHRjb25zdCBhcHBJZCA9IG1hbmlmZXN0Py5bXCJzYXAuYXBwXCJdPy5pZDtcblx0XHRjb25zdCBhcHBUaXRsZSA9IG1hbmlmZXN0Py5bXCJzYXAuYXBwXCJdPy50aXRsZSB8fCBkb2N1bWVudC50aXRsZTtcblx0XHRpZiAoc2hhcmVJbmZvTW9kZWwpIHtcblx0XHRcdHNoYXJlSW5mb01vZGVsLnNldFByb3BlcnR5KFwiL2NvbGxhYm9yYXRpb25JbmZvL2FwcElkXCIsIGFwcElkKTtcblx0XHRcdHNoYXJlSW5mb01vZGVsLnNldFByb3BlcnR5KFwiL2NvbGxhYm9yYXRpb25JbmZvL3VybFwiLCBvU2hhcmVNZXRhZGF0YS51cmwpO1xuXHRcdFx0c2hhcmVJbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvY29sbGFib3JhdGlvbkluZm8vYXBwVGl0bGVcIiwgYXBwVGl0bGUpO1xuXHRcdH1cblx0XHRyZXR1cm4gb1NoYXJlTWV0YWRhdGE7XG5cdH1cblxuXHRhc3luYyBfb3BlblNoYXJlU2hlZXRJbXBsKGJ5OiBDb250cm9sICYgeyBzaGFyZVNoZWV0PzogQWN0aW9uU2hlZXQgfSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGxldCBvU2hhcmVBY3Rpb25TaGVldDogQWN0aW9uU2hlZXQ7XG5cdFx0Y29uc3QgaGFzaENoYW5nZXJJbnN0YW5jZSA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCk7XG5cdFx0Y29uc3Qgc0hhc2ggPSBoYXNoQ2hhbmdlckluc3RhbmNlLmdldEhhc2goKTtcblx0XHRjb25zdCBzQmFzZVBhdGggPSBoYXNoQ2hhbmdlckluc3RhbmNlLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2ggPyBoYXNoQ2hhbmdlckluc3RhbmNlLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIikgOiBcIlwiO1xuXHRcdGNvbnN0IG9TaGFyZU1ldGFkYXRhID0ge1xuXHRcdFx0dXJsOlxuXHRcdFx0XHR3aW5kb3cubG9jYXRpb24ub3JpZ2luICtcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICtcblx0XHRcdFx0d2luZG93LmxvY2F0aW9uLnNlYXJjaCArXG5cdFx0XHRcdChzSGFzaCA/IHNCYXNlUGF0aCArIHNIYXNoIDogd2luZG93LmxvY2F0aW9uLmhhc2gpLFxuXHRcdFx0dGl0bGU6IGF3YWl0IHRoaXMuYmFzZS5nZXRBcHBDb21wb25lbnQoKT8uZ2V0U2hlbGxTZXJ2aWNlcygpPy5nZXRUaXRsZSgpLFxuXHRcdFx0ZW1haWw6IHtcblx0XHRcdFx0dXJsOiBcIlwiLFxuXHRcdFx0XHR0aXRsZTogXCJcIlxuXHRcdFx0fSxcblx0XHRcdGphbToge1xuXHRcdFx0XHR1cmw6IFwiXCIsXG5cdFx0XHRcdHRpdGxlOiBcIlwiXG5cdFx0XHR9LFxuXHRcdFx0dGlsZToge1xuXHRcdFx0XHR1cmw6IFwiXCIsXG5cdFx0XHRcdHRpdGxlOiBcIlwiLFxuXHRcdFx0XHRzdWJ0aXRsZTogXCJcIixcblx0XHRcdFx0aWNvbjogXCJcIixcblx0XHRcdFx0cXVlcnlVcmw6IFwiXCJcblx0XHRcdH1cblx0XHR9O1xuXHRcdG9MYXN0Rm9jdXNlZENvbnRyb2wgPSBieTtcblxuXHRcdGNvbnN0IHNldFNoYXJlRW1haWxEYXRhID0gZnVuY3Rpb24gKHNoYXJlQWN0aW9uU2hlZXQ6IEFjdGlvblNoZWV0LCBvTW9kZWxEYXRhOiBvYmplY3QpOiB2b2lkIHtcblx0XHRcdGNvbnN0IG9TaGFyZU1haWxNb2RlbCA9IHNoYXJlQWN0aW9uU2hlZXQuZ2V0TW9kZWwoXCJzaGFyZURhdGFcIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0Y29uc3Qgb05ld01haWxEYXRhID0gZXh0ZW5kKG9TaGFyZU1haWxNb2RlbC5nZXREYXRhKCksIG9Nb2RlbERhdGEpO1xuXHRcdFx0b1NoYXJlTWFpbE1vZGVsLnNldERhdGEob05ld01haWxEYXRhKTtcblx0XHR9O1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IG9Nb2RlbERhdGE6IFNoYXJlTWV0YWRhdGEgPSBhd2FpdCB0aGlzLmJhc2UuZ2V0VmlldygpLmdldENvbnRyb2xsZXIoKT8uc2hhcmU/LmFkYXB0U2hhcmVNZXRhZGF0YShvU2hhcmVNZXRhZGF0YSk7XG5cdFx0XHRjb25zdCBmcmFnbWVudENvbnRyb2xsZXI6IFJlY29yZDxzdHJpbmcsIEZ1bmN0aW9uPiA9IHtcblx0XHRcdFx0c2hhcmVFbWFpbFByZXNzZWQ6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0XHRjb25zdCBvTWFpbE1vZGVsID0gb1NoYXJlQWN0aW9uU2hlZXQuZ2V0TW9kZWwoXCJzaGFyZURhdGFcIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0XHRcdGNvbnN0IG9NYWlsRGF0YSA9IG9NYWlsTW9kZWwuZ2V0RGF0YSgpO1xuXHRcdFx0XHRcdGNvbnN0IG9SZXNvdXJjZSA9IExpYnJhcnkuZ2V0UmVzb3VyY2VCdW5kbGVGb3IoXCJzYXAuZmUuY29yZVwiKSE7XG5cdFx0XHRcdFx0Y29uc3Qgc0VtYWlsU3ViamVjdCA9IG9NYWlsRGF0YS5lbWFpbC50aXRsZVxuXHRcdFx0XHRcdFx0PyBvTWFpbERhdGEuZW1haWwudGl0bGVcblx0XHRcdFx0XHRcdDogb1Jlc291cmNlLmdldFRleHQoXCJUX1NIQVJFX1VUSUxfSEVMUEVSX1NBUEZFX0VNQUlMX1NVQkpFQ1RcIiwgW29NYWlsRGF0YS50aXRsZV0pO1xuXHRcdFx0XHRcdGxpYnJhcnkuVVJMSGVscGVyLnRyaWdnZXJFbWFpbCh1bmRlZmluZWQsIHNFbWFpbFN1YmplY3QsIG9NYWlsRGF0YS5lbWFpbC51cmwgPyBvTWFpbERhdGEuZW1haWwudXJsIDogb01haWxEYXRhLnVybCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNoYXJlTVNUZWFtc1ByZXNzZWQ6IGZ1bmN0aW9uICgpOiB2b2lkIHtcblx0XHRcdFx0XHRjb25zdCBtc1RlYW1zTW9kZWwgPSBvU2hhcmVBY3Rpb25TaGVldC5nZXRNb2RlbChcInNoYXJlRGF0YVwiKSBhcyBKU09OTW9kZWw7XG5cdFx0XHRcdFx0Y29uc3QgbXNUZWFtc0RhdGEgPSBtc1RlYW1zTW9kZWwuZ2V0RGF0YSgpO1xuXHRcdFx0XHRcdGNvbnN0IG1lc3NhZ2UgPSBtc1RlYW1zRGF0YS5lbWFpbC50aXRsZSA/IG1zVGVhbXNEYXRhLmVtYWlsLnRpdGxlIDogbXNUZWFtc0RhdGEudGl0bGU7XG5cdFx0XHRcdFx0Y29uc3QgdXJsID0gbXNUZWFtc0RhdGEuZW1haWwudXJsID8gbXNUZWFtc0RhdGEuZW1haWwudXJsIDogbXNUZWFtc0RhdGEudXJsO1xuXHRcdFx0XHRcdGNvbnN0IG5ld1dpbmRvd09wZW4gPSB3aW5kb3cub3BlbihcIlwiLCBcIm1zLXRlYW1zLXNoYXJlLXBvcHVwXCIsIFwid2lkdGg9NzAwLGhlaWdodD02MDBcIik7XG5cdFx0XHRcdFx0bmV3V2luZG93T3BlbiEub3BlbmVyID0gbnVsbDtcblx0XHRcdFx0XHRuZXdXaW5kb3dPcGVuIS5sb2NhdGlvbiA9IGBodHRwczovL3RlYW1zLm1pY3Jvc29mdC5jb20vc2hhcmU/bXNnVGV4dD0ke2VuY29kZVVSSUNvbXBvbmVudChcblx0XHRcdFx0XHRcdG1lc3NhZ2Vcblx0XHRcdFx0XHQpfSZocmVmPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHVybCl9YDtcblx0XHRcdFx0fSxcblx0XHRcdFx0b25TYXZlVGlsZVByZXNzOiBmdW5jdGlvbiAoKTogdm9pZCB7XG5cdFx0XHRcdFx0Ly8gVE9ETyBpdCBzZWVtcyB0aGF0IHRoZSBwcmVzcyBldmVudCBpcyBleGVjdXRlZCBiZWZvcmUgdGhlIGRpYWxvZyBpcyBhdmFpbGFibGUgLSBhZGRpbmcgYSB0aW1lb3V0IGlzIGEgY2hlYXAgd29ya2Fyb3VuZFxuXHRcdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuXHRcdFx0XHRcdFx0KEVsZW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJib29rbWFya0RpYWxvZ1wiKSBhcyBEaWFsb2cgfCB1bmRlZmluZWQpPy5hdHRhY2hBZnRlckNsb3NlKGZ1bmN0aW9uICgpIHtcblx0XHRcdFx0XHRcdFx0b0xhc3RGb2N1c2VkQ29udHJvbC5mb2N1cygpO1xuXHRcdFx0XHRcdFx0fSk7XG5cdFx0XHRcdFx0fSwgMCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHNoYXJlSmFtUHJlc3NlZDogYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuXHRcdFx0XHRcdGF3YWl0IHRoaXMuX2RvT3BlbkphbVNoYXJlRGlhbG9nKFxuXHRcdFx0XHRcdFx0b01vZGVsRGF0YT8uamFtPy50aXRsZSA/IG9Nb2RlbERhdGEuamFtLnRpdGxlIDogb01vZGVsRGF0YS50aXRsZSxcblx0XHRcdFx0XHRcdG9Nb2RlbERhdGE/LmphbT8udXJsID8gb01vZGVsRGF0YS5qYW0udXJsIDogb01vZGVsRGF0YS51cmxcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXG5cdFx0XHRmcmFnbWVudENvbnRyb2xsZXIub25DYW5jZWxQcmVzc2VkID0gZnVuY3Rpb24gKCk6IHZvaWQge1xuXHRcdFx0XHRvU2hhcmVBY3Rpb25TaGVldC5jbG9zZSgpO1xuXHRcdFx0fTtcblxuXHRcdFx0ZnJhZ21lbnRDb250cm9sbGVyLnNldFNoYXJlU2hlZXQgPSBmdW5jdGlvbiAob1NoYXJlU2hlZXQ6IEFjdGlvblNoZWV0KTogdm9pZCB7XG5cdFx0XHRcdGJ5LnNoYXJlU2hlZXQgPSBvU2hhcmVTaGVldDtcblx0XHRcdH07XG5cblx0XHRcdGNvbnN0IG9UaGlzID0gbmV3IEpTT05Nb2RlbCh7fSk7XG5cdFx0XHRjb25zdCBvUHJlcHJvY2Vzc29yU2V0dGluZ3MgPSB7XG5cdFx0XHRcdGJpbmRpbmdDb250ZXh0czoge1xuXHRcdFx0XHRcdHRoaXM6IG9UaGlzLmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL1wiKVxuXHRcdFx0XHR9LFxuXHRcdFx0XHRtb2RlbHM6IHtcblx0XHRcdFx0XHR0aGlzOiBvVGhpc1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0Y29uc3Qgb1RpbGVEYXRhID0ge1xuXHRcdFx0XHR0aXRsZTogb01vZGVsRGF0YT8udGlsZT8udGl0bGUgPyBvTW9kZWxEYXRhLnRpbGUudGl0bGUgOiBvTW9kZWxEYXRhLnRpdGxlLFxuXHRcdFx0XHRzdWJ0aXRsZTogb01vZGVsRGF0YT8udGlsZT8uc3VidGl0bGUsXG5cdFx0XHRcdGljb246IG9Nb2RlbERhdGE/LnRpbGU/Lmljb24sXG5cdFx0XHRcdHVybDogb01vZGVsRGF0YT8udGlsZT8udXJsID8gb01vZGVsRGF0YS50aWxlLnVybCA6IG9Nb2RlbERhdGEudXJsLnN1YnN0cmluZyhvTW9kZWxEYXRhLnVybC5pbmRleE9mKFwiI1wiKSksXG5cdFx0XHRcdHF1ZXJ5VXJsOiBvTW9kZWxEYXRhPy50aWxlPy5xdWVyeVVybFxuXHRcdFx0fTtcblx0XHRcdGlmIChieS5zaGFyZVNoZWV0KSB7XG5cdFx0XHRcdG9TaGFyZUFjdGlvblNoZWV0ID0gYnkuc2hhcmVTaGVldDtcblxuXHRcdFx0XHRjb25zdCBvU2hhcmVNb2RlbCA9IG9TaGFyZUFjdGlvblNoZWV0LmdldE1vZGVsKFwic2hhcmVcIikgYXMgSlNPTk1vZGVsO1xuXHRcdFx0XHR0aGlzLl9zZXRTdGF0aWNTaGFyZURhdGEob1NoYXJlTW9kZWwpO1xuXHRcdFx0XHRjb25zdCBvTmV3RGF0YSA9IGV4dGVuZChvU2hhcmVNb2RlbC5nZXREYXRhKCksIG9UaWxlRGF0YSk7XG5cdFx0XHRcdG9TaGFyZU1vZGVsLnNldERhdGEob05ld0RhdGEpO1xuXHRcdFx0XHRzZXRTaGFyZUVtYWlsRGF0YShvU2hhcmVBY3Rpb25TaGVldCwgb01vZGVsRGF0YSk7XG5cdFx0XHRcdG9TaGFyZUFjdGlvblNoZWV0Lm9wZW5CeShieSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjb25zdCBzRnJhZ21lbnROYW1lID0gXCJzYXAuZmUubWFjcm9zLnNoYXJlLlNoYXJlU2hlZXRcIjtcblx0XHRcdFx0Y29uc3Qgb1BvcG92ZXJGcmFnbWVudCA9IFhNTFRlbXBsYXRlUHJvY2Vzc29yLmxvYWRUZW1wbGF0ZShzRnJhZ21lbnROYW1lLCBcImZyYWdtZW50XCIpO1xuXG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0Y29uc3Qgb0ZyYWdtZW50ID0gYXdhaXQgWE1MUHJlcHJvY2Vzc29yLnByb2Nlc3Mob1BvcG92ZXJGcmFnbWVudCwgeyBuYW1lOiBzRnJhZ21lbnROYW1lIH0sIG9QcmVwcm9jZXNzb3JTZXR0aW5ncyk7XG5cdFx0XHRcdFx0b1NoYXJlQWN0aW9uU2hlZXQgPSAoYXdhaXQgRnJhZ21lbnQubG9hZCh7XG5cdFx0XHRcdFx0XHRkZWZpbml0aW9uOiBvRnJhZ21lbnQgYXMgdW5rbm93biBhcyBzdHJpbmcsXG5cdFx0XHRcdFx0XHRjb250cm9sbGVyOiBmcmFnbWVudENvbnRyb2xsZXJcblx0XHRcdFx0XHR9KSkgYXMgQWN0aW9uU2hlZXQ7XG5cblx0XHRcdFx0XHRvU2hhcmVBY3Rpb25TaGVldC5zZXRNb2RlbChuZXcgSlNPTk1vZGVsKG9UaWxlRGF0YSB8fCB7fSksIFwic2hhcmVcIik7XG5cdFx0XHRcdFx0Y29uc3Qgb1NoYXJlTW9kZWwgPSBvU2hhcmVBY3Rpb25TaGVldC5nZXRNb2RlbChcInNoYXJlXCIpIGFzIEpTT05Nb2RlbDtcblx0XHRcdFx0XHR0aGlzLl9zZXRTdGF0aWNTaGFyZURhdGEob1NoYXJlTW9kZWwpO1xuXHRcdFx0XHRcdGNvbnN0IG9OZXdEYXRhID0gZXh0ZW5kKG9TaGFyZU1vZGVsLmdldERhdGEoKSwgb1RpbGVEYXRhKTtcblx0XHRcdFx0XHRvU2hhcmVNb2RlbC5zZXREYXRhKG9OZXdEYXRhKTtcblxuXHRcdFx0XHRcdG9TaGFyZUFjdGlvblNoZWV0LnNldE1vZGVsKG5ldyBKU09OTW9kZWwob01vZGVsRGF0YSB8fCB7fSksIFwic2hhcmVEYXRhXCIpO1xuXHRcdFx0XHRcdHNldFNoYXJlRW1haWxEYXRhKG9TaGFyZUFjdGlvblNoZWV0LCBvTW9kZWxEYXRhKTtcblxuXHRcdFx0XHRcdGJ5LmFkZERlcGVuZGVudChvU2hhcmVBY3Rpb25TaGVldCk7XG5cdFx0XHRcdFx0b1NoYXJlQWN0aW9uU2hlZXQub3BlbkJ5KGJ5KTtcblx0XHRcdFx0XHRmcmFnbWVudENvbnRyb2xsZXIuc2V0U2hhcmVTaGVldChvU2hhcmVBY3Rpb25TaGVldCk7XG5cdFx0XHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRcdExvZy5lcnJvcihcIkVycm9yIHdoaWxlIG9wZW5pbmcgdGhlIHNoYXJlIGZyYWdtZW50XCIsIG9FcnJvciBhcyBzdHJpbmcpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSBjYXRjaCAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJFcnJvciB3aGlsZSBmZXRjaGluZyB0aGUgc2hhcmUgbW9kZWwgZGF0YVwiLCBvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSB1cmwgYmFzZWQgb24gaWZyYW1lIGFuZCBub24taWZyYW1lIGFwcGxpY2F0aW9ucy5cblx0ICogQHBhcmFtIHNoYXJlVXJsIFRoZSB1cmwgdG8gYmUgc2hhcmVkLlxuXHQgKiBAcmV0dXJucyBVcmwuXG5cdCAqL1xuXHRhc3luYyBnZXRUZWFtc1VybChzaGFyZVVybDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcblx0XHRjb25zdCBhcHBVcmwgPSBhd2FpdCB0aGlzLmJhc2UuZ2V0QXBwQ29tcG9uZW50KCk/LmdldFNoZWxsU2VydmljZXMoKS5nZXRJbmZyYW1lVXJsKCk7XG5cdFx0cmV0dXJuIGFwcFVybCA/IGFwcFVybCA6IHNoYXJlVXJsO1xuXHR9XG5cblx0X3NldFN0YXRpY1NoYXJlRGF0YShzaGFyZU1vZGVsOiBKU09OTW9kZWwpOiB2b2lkIHtcblx0XHRjb25zdCBvUmVzb3VyY2UgPSBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmVcIikhO1xuXHRcdHNoYXJlTW9kZWwuc2V0UHJvcGVydHkoXCIvamFtQnV0dG9uVGV4dFwiLCBvUmVzb3VyY2UuZ2V0VGV4dChcIlRfQ09NTU9OX1NBUEZFX1NIQVJFX0pBTVwiKSk7XG5cdFx0c2hhcmVNb2RlbC5zZXRQcm9wZXJ0eShcIi9lbWFpbEJ1dHRvblRleHRcIiwgb1Jlc291cmNlLmdldFRleHQoXCJUX1NFTUFOVElDX0NPTlRST0xfU0VORF9FTUFJTFwiKSk7XG5cdFx0c2hhcmVNb2RlbC5zZXRQcm9wZXJ0eShcIi9tc1RlYW1zU2hhcmVCdXR0b25UZXh0XCIsIG9SZXNvdXJjZS5nZXRUZXh0KFwiVF9DT01NT05fU0FQRkVfU0hBUkVfTVNURUFNU1wiKSk7XG5cdFx0Ly8gU2hhcmUgdG8gTWljcm9zb2Z0IFRlYW1zIGlzIGZlYXR1cmUgd2hpY2ggZm9yIG5vdyBvbmx5IGdldHMgZW5hYmxlZCBmb3Igc2VsZWN0ZWQgY3VzdG9tZXJzLlxuXHRcdC8vIFRoZSBzd2l0Y2ggXCJzYXBIb3Jpem9uRW5hYmxlZFwiIGFuZCBjaGVjayBmb3IgaXQgd2FzIGFsaWduZWQgd2l0aCB0aGUgRmlvcmkgbGF1bmNocGFkIHRlYW0uXG5cdFx0aWYgKE9iamVjdFBhdGguZ2V0KFwic2FwLXVzaGVsbC1jb25maWcucmVuZGVyZXJzLmZpb3JpMi5jb21wb25lbnREYXRhLmNvbmZpZy5zYXBIb3Jpem9uRW5hYmxlZFwiKSA9PT0gdHJ1ZSkge1xuXHRcdFx0c2hhcmVNb2RlbC5zZXRQcm9wZXJ0eShcIi9tc1RlYW1zVmlzaWJsZVwiLCB0cnVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0c2hhcmVNb2RlbC5zZXRQcm9wZXJ0eShcIi9tc1RlYW1zVmlzaWJsZVwiLCBmYWxzZSk7XG5cdFx0fVxuXHRcdGNvbnN0IGZuR2V0VXNlciA9IE9iamVjdFBhdGguZ2V0KFwic2FwLnVzaGVsbC5Db250YWluZXIuZ2V0VXNlclwiKTtcblx0XHRzaGFyZU1vZGVsLnNldFByb3BlcnR5KFwiL2phbVZpc2libGVcIiwgISFmbkdldFVzZXIgJiYgZm5HZXRVc2VyKCkuaXNKYW1BY3RpdmUoKSk7XG5cdFx0c2hhcmVNb2RlbC5zZXRQcm9wZXJ0eShcIi9zYXZlQXNUaWxlVmlzaWJsZVwiLCAhIXNhcC51aS5yZXF1aXJlKFwic2FwL3VzaGVsbC9Db250YWluZXJcIikpO1xuXHR9XG5cblx0Ly90aGUgYWN0dWFsIG9wZW5pbmcgb2YgdGhlIEpBTSBzaGFyZSBkaWFsb2dcblx0YXN5bmMgX2RvT3BlbkphbVNoYXJlRGlhbG9nKHRleHQ6IHN0cmluZywgc1VybD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG9TaGFyZURpYWxvZyA9IGF3YWl0IENvbXBvbmVudC5jcmVhdGUoe1xuXHRcdFx0bmFtZTogXCJzYXAuY29sbGFib3JhdGlvbi5jb21wb25lbnRzLmZpb3JpLnNoYXJpbmcuZGlhbG9nXCIsXG5cdFx0XHRzZXR0aW5nczoge1xuXHRcdFx0XHRvYmplY3Q6IHtcblx0XHRcdFx0XHRpZDogc1VybCxcblx0XHRcdFx0XHRzaGFyZTogdGV4dFxuXHRcdFx0XHR9XG5cdFx0XHR9IGFzICRDb21wb25lbnRTZXR0aW5nc1xuXHRcdH0pO1xuXHRcdChvU2hhcmVEaWFsb2cgYXMgdW5rbm93biBhcyB7IG9wZW46IEZ1bmN0aW9uIH0pLm9wZW4oKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUcmlnZ2VycyB0aGUgZW1haWwgZmxvdy5cblx0ICpcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRhc3luYyBfdHJpZ2dlckVtYWlsKCk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IHNoYXJlTWV0YWRhdGE6IFNoYXJlTWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9hZGFwdFNoYXJlTWV0YWRhdGEoKTtcblx0XHRjb25zdCBvUmVzb3VyY2UgPSBMaWJyYXJ5LmdldFJlc291cmNlQnVuZGxlRm9yKFwic2FwLmZlLmNvcmVcIikhO1xuXHRcdGNvbnN0IHNFbWFpbFN1YmplY3QgPSBzaGFyZU1ldGFkYXRhLmVtYWlsLnRpdGxlXG5cdFx0XHQ/IHNoYXJlTWV0YWRhdGEuZW1haWwudGl0bGVcblx0XHRcdDogb1Jlc291cmNlLmdldFRleHQoXCJUX1NIQVJFX1VUSUxfSEVMUEVSX1NBUEZFX0VNQUlMX1NVQkpFQ1RcIiwgW3NoYXJlTWV0YWRhdGEudGl0bGVdKTtcblx0XHRsaWJyYXJ5LlVSTEhlbHBlci50cmlnZ2VyRW1haWwodW5kZWZpbmVkLCBzRW1haWxTdWJqZWN0LCBzaGFyZU1ldGFkYXRhLmVtYWlsLnVybCA/IHNoYXJlTWV0YWRhdGEuZW1haWwudXJsIDogc2hhcmVNZXRhZGF0YS51cmwpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyaWdnZXJzIHRoZSBzaGFyZSB0byBqYW0gZmxvdy5cblx0ICpcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRhc3luYyBfdHJpZ2dlclNoYXJlVG9KYW0oKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3Qgc2hhcmVNZXRhZGF0YTogU2hhcmVNZXRhZGF0YSA9IGF3YWl0IHRoaXMuX2FkYXB0U2hhcmVNZXRhZGF0YSgpO1xuXHRcdGF3YWl0IHRoaXMuX2RvT3BlbkphbVNoYXJlRGlhbG9nKFxuXHRcdFx0c2hhcmVNZXRhZGF0YS5qYW0udGl0bGUgPyBzaGFyZU1ldGFkYXRhLmphbS50aXRsZSA6IHNoYXJlTWV0YWRhdGEudGl0bGUsXG5cdFx0XHRzaGFyZU1ldGFkYXRhLmphbS51cmwgPyBzaGFyZU1ldGFkYXRhLmphbS51cmwgOiB3aW5kb3cubG9jYXRpb24ub3JpZ2luICsgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lICsgc2hhcmVNZXRhZGF0YS51cmxcblx0XHQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRyaWdnZXJzIHRoZSBzYXZlIGFzIHRpbGUgZmxvdy5cblx0ICogQHBhcmFtIFtzb3VyY2VdXG5cdCAqL1xuXHRAcHVibGljRXh0ZW5zaW9uKClcblx0QGZpbmFsRXh0ZW5zaW9uKClcblx0YXN5bmMgX3NhdmVBc1RpbGUoc291cmNlOiBJdGVtKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Y29uc3Qgc2hhcmVJbmZvTW9kZWwgPSB0aGlzLmJhc2U/LmdldFZpZXcoKT8uZ2V0TW9kZWwoXCJzaGFyZUluZm9cIikgYXMgSlNPTk1vZGVsIHwgdW5kZWZpbmVkO1xuXHRcdGlmIChzaGFyZUluZm9Nb2RlbCkge1xuXHRcdFx0Ly8gc2V0IHRoZSBzYXZlQXNUaWxlQ2xpY2tlZCBmbGFnIHRvIHRydWUgd2hlbiBzYXZlIGFzIHRpbGUgaXMgY2xpY2tlZFxuXHRcdFx0c2hhcmVJbmZvTW9kZWwuc2V0UHJvcGVydHkoXCIvc2F2ZUFzVGlsZUNsaWNrZWRcIiwgdHJ1ZSk7XG5cdFx0fVxuXHRcdGNvbnN0IHNoYXJlTWV0YWRhdGE6IFNoYXJlTWV0YWRhdGEgPSBhd2FpdCB0aGlzLl9hZGFwdFNoYXJlTWV0YWRhdGEoKSxcblx0XHRcdGludGVybmFsQWRkQm9va21hcmtCdXR0b24gPSBzb3VyY2UuZ2V0RGVwZW5kZW50cygpWzBdIGFzIEFkZEJvb2ttYXJrQnV0dG9uLFxuXHRcdFx0aGFzaENoYW5nZXJJbnN0YW5jZSA9IEhhc2hDaGFuZ2VyLmdldEluc3RhbmNlKCksXG5cdFx0XHRzSGFzaCA9IGhhc2hDaGFuZ2VySW5zdGFuY2UuZ2V0SGFzaCgpLFxuXHRcdFx0c0Jhc2VQYXRoID0gaGFzaENoYW5nZXJJbnN0YW5jZS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoID8gaGFzaENoYW5nZXJJbnN0YW5jZS5ocmVmRm9yQXBwU3BlY2lmaWNIYXNoKFwiXCIpIDogXCJcIjtcblx0XHRzaGFyZU1ldGFkYXRhLnVybCA9IHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblxuXHRcdC8vIHNldCBBZGRCb29rbWFya0J1dHRvbiBwcm9wZXJ0aWVzXG5cdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbi5zZXRUaXRsZShzaGFyZU1ldGFkYXRhLnRpbGUudGl0bGUgPyBzaGFyZU1ldGFkYXRhLnRpbGUudGl0bGUgOiBzaGFyZU1ldGFkYXRhLnRpdGxlKTtcblx0XHRpbnRlcm5hbEFkZEJvb2ttYXJrQnV0dG9uLnNldFN1YnRpdGxlKHNoYXJlTWV0YWRhdGEudGlsZS5zdWJ0aXRsZSk7XG5cdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbi5zZXRUaWxlSWNvbihzaGFyZU1ldGFkYXRhLnRpbGUuaWNvbik7XG5cdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbi5zZXRDdXN0b21Vcmwoc2hhcmVNZXRhZGF0YS50aWxlLnVybCA/IHNoYXJlTWV0YWRhdGEudGlsZS51cmwgOiBzaGFyZU1ldGFkYXRhLnVybCk7XG5cdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbi5zZXRTZXJ2aWNlVXJsKHNoYXJlTWV0YWRhdGEudGlsZS5xdWVyeVVybCk7XG5cdFx0aW50ZXJuYWxBZGRCb29rbWFya0J1dHRvbi5zZXREYXRhU291cmNlKHtcblx0XHRcdHR5cGU6IFwiT0RhdGFcIixcblx0XHRcdHNldHRpbmdzOiB7XG5cdFx0XHRcdG9kYXRhVmVyc2lvbjogXCI0LjBcIlxuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0Ly8gb25jZSB0aGUgc2VydmljZSB1cmwgaXMgcmVhZCwgc2V0IHRoZSBzYXZlQXNUaWxlQ2xpY2tlZCBmbGFnIHRvIGZhbHNlXG5cdFx0aWYgKHNoYXJlSW5mb01vZGVsKSB7XG5cdFx0XHRzaGFyZUluZm9Nb2RlbC5zZXRQcm9wZXJ0eShcIi9zYXZlQXNUaWxlQ2xpY2tlZFwiLCBmYWxzZSk7XG5cdFx0fVxuXG5cdFx0Ly8gYWRkQm9va21hcmtCdXR0b24gZmlyZSBwcmVzc1xuXHRcdGludGVybmFsQWRkQm9va21hcmtCdXR0b24uZmlyZVByZXNzKCk7XG5cdH1cblxuXHQvKipcblx0ICogQ2FsbCB0aGUgYWRhcHRTaGFyZU1ldGFkYXRhIGV4dGVuc2lvbi5cblx0ICogQHJldHVybnMgU2hhcmUgTWV0YWRhdGFcblx0ICovXG5cdEBwdWJsaWNFeHRlbnNpb24oKVxuXHRAZmluYWxFeHRlbnNpb24oKVxuXHRhc3luYyBfYWRhcHRTaGFyZU1ldGFkYXRhKCk6IFByb21pc2U8U2hhcmVNZXRhZGF0YT4ge1xuXHRcdGNvbnN0IGhhc2hDaGFuZ2VySW5zdGFuY2UgPSBIYXNoQ2hhbmdlci5nZXRJbnN0YW5jZSgpO1xuXHRcdGNvbnN0IHNIYXNoID0gZW5jb2RlVVJJQ29tcG9uZW50KGhhc2hDaGFuZ2VySW5zdGFuY2UuZ2V0SGFzaCgpKTtcblx0XHRjb25zdCBzQmFzZVBhdGggPSBoYXNoQ2hhbmdlckluc3RhbmNlLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2ggPyBoYXNoQ2hhbmdlckluc3RhbmNlLmhyZWZGb3JBcHBTcGVjaWZpY0hhc2goXCJcIikgOiBcIlwiO1xuXG5cdFx0Y29uc3Qgb1NoYXJlTWV0YWRhdGE6IFNoYXJlTWV0YWRhdGEgPSB7XG5cdFx0XHR1cmw6XG5cdFx0XHRcdHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4gK1xuXHRcdFx0XHR3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgK1xuXHRcdFx0XHR3aW5kb3cubG9jYXRpb24uc2VhcmNoICtcblx0XHRcdFx0KHNIYXNoID8gc0Jhc2VQYXRoICsgc0hhc2ggOiB3aW5kb3cubG9jYXRpb24uaGFzaCksXG5cdFx0XHR0aXRsZTogYXdhaXQgdGhpcy5iYXNlLmdldEFwcENvbXBvbmVudCgpPy5nZXRTaGVsbFNlcnZpY2VzKCk/LmdldFRpdGxlKCksXG5cdFx0XHRlbWFpbDoge1xuXHRcdFx0XHR1cmw6IFwiXCIsXG5cdFx0XHRcdHRpdGxlOiBcIlwiXG5cdFx0XHR9LFxuXHRcdFx0amFtOiB7XG5cdFx0XHRcdHVybDogXCJcIixcblx0XHRcdFx0dGl0bGU6IFwiXCJcblx0XHRcdH0sXG5cdFx0XHR0aWxlOiB7XG5cdFx0XHRcdHVybDogXCJcIixcblx0XHRcdFx0dGl0bGU6IFwiXCIsXG5cdFx0XHRcdHN1YnRpdGxlOiBcIlwiLFxuXHRcdFx0XHRpY29uOiBcIlwiLFxuXHRcdFx0XHRxdWVyeVVybDogXCJcIlxuXHRcdFx0fVxuXHRcdH07XG5cdFx0cmV0dXJuIHRoaXMuYmFzZS5nZXRWaWV3KCkuZ2V0Q29udHJvbGxlcigpLnNoYXJlLmFkYXB0U2hhcmVNZXRhZGF0YShvU2hhcmVNZXRhZGF0YSk7XG5cdH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgU2hhcmVVdGlscztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztFQXdCQSxJQUFJQSxtQkFBNEI7RUFVaEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEEsSUFPTUMsVUFBVSxJQUFBQyxJQUFBLEdBRGZDLGNBQWMsQ0FBQyx3Q0FBd0MsQ0FBQyxFQUFBQyxLQUFBLEdBUXZEQyxjQUFjLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBZWhCRCxjQUFjLENBQUMsQ0FBQyxFQUFBRSxLQUFBLEdBY2hCQyxlQUFlLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBQ2pCQyxjQUFjLENBQUMsQ0FBQyxFQUFBQyxLQUFBLEdBU2hCSCxlQUFlLENBQUMsQ0FBQyxFQUFBSSxLQUFBLEdBQ2pCQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUFDLEtBQUEsR0EwQnhCTixlQUFlLENBQUMsQ0FBQyxFQUFBTyxLQUFBLEdBQ2pCRixVQUFVLENBQUNHLGlCQUFpQixDQUFDQyxLQUFLLENBQUMsRUFBQUMsTUFBQSxHQTZNbkNWLGVBQWUsQ0FBQyxDQUFDLEVBQUFXLE1BQUEsR0FDakJULGNBQWMsQ0FBQyxDQUFDLEVBQUFVLE1BQUEsR0FjaEJaLGVBQWUsQ0FBQyxDQUFDLEVBQUFhLE1BQUEsR0FDakJYLGNBQWMsQ0FBQyxDQUFDLEVBQUFZLE1BQUEsR0FhaEJkLGVBQWUsQ0FBQyxDQUFDLEVBQUFlLE1BQUEsR0FDakJiLGNBQWMsQ0FBQyxDQUFDLEVBQUFjLE1BQUEsR0F3Q2hCaEIsZUFBZSxDQUFDLENBQUMsRUFBQWlCLE1BQUEsR0FDakJmLGNBQWMsQ0FBQyxDQUFDLEVBQUFSLElBQUEsQ0FBQXdCLE1BQUEsSUFBQUMsT0FBQSwwQkFBQUMsb0JBQUE7SUFBQUMsY0FBQSxDQUFBNUIsVUFBQSxFQUFBMkIsb0JBQUE7SUEzVmpCLFNBQUEzQixXQUFBLEVBQWM7TUFBQSxPQUNiMkIsb0JBQUEsQ0FBQUUsSUFBQSxLQUFNLENBQUM7SUFDUjtJQUFDLElBQUFDLE1BQUEsR0FBQTlCLFVBQUEsQ0FBQStCLFNBQUE7SUFBQUQsTUFBQSxDQUdERSxNQUFNLEdBRE4sU0FBQUEsT0FBQSxFQUNlO01BQ2QsTUFBTUMsY0FBeUIsR0FBRyxJQUFJQyxTQUFTLENBQUM7UUFDL0NDLGlCQUFpQixFQUFFLEtBQUs7UUFDeEJDLGlCQUFpQixFQUFFO1VBQ2xCQyxHQUFHLEVBQUUsRUFBRTtVQUNQQyxRQUFRLEVBQUUsRUFBRTtVQUNaQyxRQUFRLEVBQUUsRUFBRTtVQUNaQyxnQkFBZ0IsRUFBRSxJQUFJO1VBQ3RCQyxLQUFLLEVBQUU7UUFDUjtNQUNELENBQUMsQ0FBQztNQUNGLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUNYLGNBQWMsRUFBRSxXQUFXLENBQUM7SUFDMUQsQ0FBQztJQUFBSCxNQUFBLENBR0RlLE1BQU0sR0FETixTQUFBQSxPQUFBLEVBQ2U7TUFBQSxJQUFBQyxVQUFBLEVBQUFDLGtCQUFBO01BQ2QsTUFBTWQsY0FBYyxJQUFBYSxVQUFBLEdBQUcsSUFBSSxDQUFDSixJQUFJLGNBQUFJLFVBQUEsd0JBQUFDLGtCQUFBLEdBQVRELFVBQUEsQ0FBV0gsT0FBTyxDQUFDLENBQUMsY0FBQUksa0JBQUEsdUJBQXBCQSxrQkFBQSxDQUFzQkMsUUFBUSxDQUFDLFdBQVcsQ0FBMEI7TUFDM0YsSUFBSWYsY0FBYyxFQUFFO1FBQ25CQSxjQUFjLENBQUNnQixPQUFPLENBQUMsQ0FBQztNQUN6QjtJQUNEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUxDO0lBQUFuQixNQUFBLENBUUFvQixjQUFjLEdBRmQsU0FBQUEsZUFFZUMsUUFBaUIsRUFBUTtNQUN2QyxJQUFJLENBQUNDLG1CQUFtQixDQUFDRCxRQUFRLENBQUM7SUFDbkM7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBckIsTUFBQSxDQU1NdUIsaUJBQWlCLEdBRnZCLGVBQUFBLGtCQUFBLEVBRThEO01BQzdELE9BQU9DLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDQyxTQUFTLENBQUM7SUFDbEM7O0lBRUE7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BcEJDO0lBQUExQixNQUFBLENBdUJBMkIsa0JBQWtCLEdBRmxCLFNBQUFBLG1CQUVtQkMsY0FNbEIsRUFBMEM7TUFBQSxJQUFBQyxXQUFBLEVBQUFDLG1CQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGlCQUFBO01BQzFDLE1BQU03QixjQUFjLElBQUEwQixXQUFBLEdBQUcsSUFBSSxDQUFDakIsSUFBSSxjQUFBaUIsV0FBQSx3QkFBQUMsbUJBQUEsR0FBVEQsV0FBQSxDQUFXaEIsT0FBTyxDQUFDLENBQUMsY0FBQWlCLG1CQUFBLHVCQUFwQkEsbUJBQUEsQ0FBc0JaLFFBQVEsQ0FBQyxXQUFXLENBQTBCO01BQzNGLE1BQU1lLFFBQVEsR0FBRyxJQUFJLENBQUNyQixJQUFJLENBQUNzQixlQUFlLENBQUMsQ0FBQyxDQUFDQyxXQUFXLENBQUMsQ0FBQztNQUMxRCxNQUFNeEIsS0FBSyxHQUFHc0IsUUFBUSxhQUFSQSxRQUFRLHdCQUFBRixnQkFBQSxHQUFSRSxRQUFRLENBQUcsU0FBUyxDQUFDLGNBQUFGLGdCQUFBLHVCQUFyQkEsZ0JBQUEsQ0FBdUJLLEVBQUU7TUFDdkMsTUFBTTVCLFFBQVEsR0FBRyxDQUFBeUIsUUFBUSxhQUFSQSxRQUFRLHdCQUFBRCxpQkFBQSxHQUFSQyxRQUFRLENBQUcsU0FBUyxDQUFDLGNBQUFELGlCQUFBLHVCQUFyQkEsaUJBQUEsQ0FBdUJLLEtBQUssS0FBSUMsUUFBUSxDQUFDRCxLQUFLO01BQy9ELElBQUlsQyxjQUFjLEVBQUU7UUFDbkJBLGNBQWMsQ0FBQ29DLFdBQVcsQ0FBQywwQkFBMEIsRUFBRTVCLEtBQUssQ0FBQztRQUM3RFIsY0FBYyxDQUFDb0MsV0FBVyxDQUFDLHdCQUF3QixFQUFFWCxjQUFjLENBQUNyQixHQUFHLENBQUM7UUFDeEVKLGNBQWMsQ0FBQ29DLFdBQVcsQ0FBQyw2QkFBNkIsRUFBRS9CLFFBQVEsQ0FBQztNQUNwRTtNQUNBLE9BQU9vQixjQUFjO0lBQ3RCLENBQUM7SUFBQTVCLE1BQUEsQ0FFS3NCLG1CQUFtQixHQUF6QixlQUFBQSxvQkFBMEJrQixFQUEwQyxFQUFpQjtNQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO01BQ3BGLElBQUlDLGlCQUE4QjtNQUNsQyxNQUFNQyxtQkFBbUIsR0FBR0MsV0FBVyxDQUFDQyxXQUFXLENBQUMsQ0FBQztNQUNyRCxNQUFNQyxLQUFLLEdBQUdILG1CQUFtQixDQUFDSSxPQUFPLENBQUMsQ0FBQztNQUMzQyxNQUFNQyxTQUFTLEdBQUdMLG1CQUFtQixDQUFDTSxzQkFBc0IsR0FBR04sbUJBQW1CLENBQUNNLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7TUFDbEgsTUFBTXRCLGNBQWMsR0FBRztRQUN0QnJCLEdBQUcsRUFDRjRDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLEdBQ3RCRixNQUFNLENBQUNDLFFBQVEsQ0FBQ0UsUUFBUSxHQUN4QkgsTUFBTSxDQUFDQyxRQUFRLENBQUNHLE1BQU0sSUFDckJSLEtBQUssR0FBR0UsU0FBUyxHQUFHRixLQUFLLEdBQUdJLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDSSxJQUFJLENBQUM7UUFDbkRuQixLQUFLLEVBQUUsUUFBQUkscUJBQUEsR0FBTSxJQUFJLENBQUM3QixJQUFJLENBQUNzQixlQUFlLENBQUMsQ0FBQyxjQUFBTyxxQkFBQSx3QkFBQUMsc0JBQUEsR0FBM0JELHFCQUFBLENBQTZCZ0IsZ0JBQWdCLENBQUMsQ0FBQyxjQUFBZixzQkFBQSx1QkFBL0NBLHNCQUFBLENBQWlEZ0IsUUFBUSxDQUFDLENBQUM7UUFDeEVDLEtBQUssRUFBRTtVQUNOcEQsR0FBRyxFQUFFLEVBQUU7VUFDUDhCLEtBQUssRUFBRTtRQUNSLENBQUM7UUFDRHVCLEdBQUcsRUFBRTtVQUNKckQsR0FBRyxFQUFFLEVBQUU7VUFDUDhCLEtBQUssRUFBRTtRQUNSLENBQUM7UUFDRHdCLElBQUksRUFBRTtVQUNMdEQsR0FBRyxFQUFFLEVBQUU7VUFDUDhCLEtBQUssRUFBRSxFQUFFO1VBQ1R5QixRQUFRLEVBQUUsRUFBRTtVQUNaQyxJQUFJLEVBQUUsRUFBRTtVQUNSQyxRQUFRLEVBQUU7UUFDWDtNQUNELENBQUM7TUFDRC9GLG1CQUFtQixHQUFHdUUsRUFBRTtNQUV4QixNQUFNeUIsaUJBQWlCLEdBQUcsU0FBQUEsQ0FBVUMsZ0JBQTZCLEVBQUVDLFVBQWtCLEVBQVE7UUFDNUYsTUFBTUMsZUFBZSxHQUFHRixnQkFBZ0IsQ0FBQ2hELFFBQVEsQ0FBQyxXQUFXLENBQWM7UUFDM0UsTUFBTW1ELFlBQVksR0FBR0MsTUFBTSxDQUFDRixlQUFlLENBQUNHLE9BQU8sQ0FBQyxDQUFDLEVBQUVKLFVBQVUsQ0FBQztRQUNsRUMsZUFBZSxDQUFDSSxPQUFPLENBQUNILFlBQVksQ0FBQztNQUN0QyxDQUFDO01BRUQsSUFBSTtRQUFBLElBQUFJLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLGlCQUFBLEVBQUFDLGlCQUFBO1FBQ0gsTUFBTVosVUFBeUIsR0FBRyxRQUFBTSxxQkFBQSxHQUFNLElBQUksQ0FBQzdELElBQUksQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQ21FLGFBQWEsQ0FBQyxDQUFDLGNBQUFQLHFCQUFBLHdCQUFBQyxzQkFBQSxHQUFuQ0QscUJBQUEsQ0FBcUNRLEtBQUssY0FBQVAsc0JBQUEsdUJBQTFDQSxzQkFBQSxDQUE0Qy9DLGtCQUFrQixDQUFDQyxjQUFjLENBQUM7UUFDdEgsTUFBTXNELGtCQUE0QyxHQUFHO1VBQ3BEQyxpQkFBaUIsRUFBRSxTQUFBQSxDQUFBLEVBQWtCO1lBQ3BDLE1BQU1DLFVBQVUsR0FBR3pDLGlCQUFpQixDQUFDekIsUUFBUSxDQUFDLFdBQVcsQ0FBYztZQUN2RSxNQUFNbUUsU0FBUyxHQUFHRCxVQUFVLENBQUNiLE9BQU8sQ0FBQyxDQUFDO1lBQ3RDLE1BQU1lLFNBQVMsR0FBR0MsT0FBTyxDQUFDQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUU7WUFDOUQsTUFBTUMsYUFBYSxHQUFHSixTQUFTLENBQUMxQixLQUFLLENBQUN0QixLQUFLLEdBQ3hDZ0QsU0FBUyxDQUFDMUIsS0FBSyxDQUFDdEIsS0FBSyxHQUNyQmlELFNBQVMsQ0FBQ0ksT0FBTyxDQUFDLHlDQUF5QyxFQUFFLENBQUNMLFNBQVMsQ0FBQ2hELEtBQUssQ0FBQyxDQUFDO1lBQ2xGc0QsT0FBTyxDQUFDQyxTQUFTLENBQUNDLFlBQVksQ0FBQ25FLFNBQVMsRUFBRStELGFBQWEsRUFBRUosU0FBUyxDQUFDMUIsS0FBSyxDQUFDcEQsR0FBRyxHQUFHOEUsU0FBUyxDQUFDMUIsS0FBSyxDQUFDcEQsR0FBRyxHQUFHOEUsU0FBUyxDQUFDOUUsR0FBRyxDQUFDO1VBQ3BILENBQUM7VUFDRHVGLG1CQUFtQixFQUFFLFNBQUFBLENBQUEsRUFBa0I7WUFDdEMsTUFBTUMsWUFBWSxHQUFHcEQsaUJBQWlCLENBQUN6QixRQUFRLENBQUMsV0FBVyxDQUFjO1lBQ3pFLE1BQU04RSxXQUFXLEdBQUdELFlBQVksQ0FBQ3hCLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLE1BQU0wQixPQUFPLEdBQUdELFdBQVcsQ0FBQ3JDLEtBQUssQ0FBQ3RCLEtBQUssR0FBRzJELFdBQVcsQ0FBQ3JDLEtBQUssQ0FBQ3RCLEtBQUssR0FBRzJELFdBQVcsQ0FBQzNELEtBQUs7WUFDckYsTUFBTTlCLEdBQUcsR0FBR3lGLFdBQVcsQ0FBQ3JDLEtBQUssQ0FBQ3BELEdBQUcsR0FBR3lGLFdBQVcsQ0FBQ3JDLEtBQUssQ0FBQ3BELEdBQUcsR0FBR3lGLFdBQVcsQ0FBQ3pGLEdBQUc7WUFDM0UsTUFBTTJGLGFBQWEsR0FBRy9DLE1BQU0sQ0FBQ2dELElBQUksQ0FBQyxFQUFFLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLENBQUM7WUFDckZELGFBQWEsQ0FBRUUsTUFBTSxHQUFHLElBQUk7WUFDNUJGLGFBQWEsQ0FBRTlDLFFBQVEsR0FBRyw2Q0FBNkNpRCxrQkFBa0IsQ0FDeEZKLE9BQ0QsQ0FBQyxTQUFTSSxrQkFBa0IsQ0FBQzlGLEdBQUcsQ0FBQyxFQUFFO1VBQ3BDLENBQUM7VUFDRCtGLGVBQWUsRUFBRSxTQUFBQSxDQUFBLEVBQWtCO1lBQ2xDO1lBQ0FDLFVBQVUsQ0FBQyxZQUFZO2NBQUEsSUFBQUMscUJBQUE7Y0FDdEIsQ0FBQUEscUJBQUEsR0FBQ0MsT0FBTyxDQUFDQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsY0FBQUYscUJBQUEsdUJBQXpDQSxxQkFBQSxDQUFrRUcsZ0JBQWdCLENBQUMsWUFBWTtnQkFDOUYxSSxtQkFBbUIsQ0FBQzJJLEtBQUssQ0FBQyxDQUFDO2NBQzVCLENBQUMsQ0FBQztZQUNILENBQUMsRUFBRSxDQUFDLENBQUM7VUFDTixDQUFDO1VBQ0RDLGVBQWUsRUFBRSxNQUFBQSxDQUFBLEtBQTJCO1lBQUEsSUFBQUMsZUFBQSxFQUFBQyxnQkFBQTtZQUMzQyxNQUFNLElBQUksQ0FBQ0MscUJBQXFCLENBQy9CN0MsVUFBVSxhQUFWQSxVQUFVLGdCQUFBMkMsZUFBQSxHQUFWM0MsVUFBVSxDQUFFUCxHQUFHLGNBQUFrRCxlQUFBLGVBQWZBLGVBQUEsQ0FBaUJ6RSxLQUFLLEdBQUc4QixVQUFVLENBQUNQLEdBQUcsQ0FBQ3ZCLEtBQUssR0FBRzhCLFVBQVUsQ0FBQzlCLEtBQUssRUFDaEU4QixVQUFVLGFBQVZBLFVBQVUsZ0JBQUE0QyxnQkFBQSxHQUFWNUMsVUFBVSxDQUFFUCxHQUFHLGNBQUFtRCxnQkFBQSxlQUFmQSxnQkFBQSxDQUFpQnhHLEdBQUcsR0FBRzRELFVBQVUsQ0FBQ1AsR0FBRyxDQUFDckQsR0FBRyxHQUFHNEQsVUFBVSxDQUFDNUQsR0FDeEQsQ0FBQztVQUNGO1FBQ0QsQ0FBQztRQUVEMkUsa0JBQWtCLENBQUMrQixlQUFlLEdBQUcsWUFBa0I7VUFDdER0RSxpQkFBaUIsQ0FBQ3VFLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFFRGhDLGtCQUFrQixDQUFDaUMsYUFBYSxHQUFHLFVBQVVDLFdBQXdCLEVBQVE7VUFDNUU1RSxFQUFFLENBQUM2RSxVQUFVLEdBQUdELFdBQVc7UUFDNUIsQ0FBQztRQUVELE1BQU1FLEtBQUssR0FBRyxJQUFJbEgsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLE1BQU1tSCxxQkFBcUIsR0FBRztVQUM3QkMsZUFBZSxFQUFFO1lBQ2hCQyxJQUFJLEVBQUVILEtBQUssQ0FBQ0ksb0JBQW9CLENBQUMsR0FBRztVQUNyQyxDQUFDO1VBQ0RDLE1BQU0sRUFBRTtZQUNQRixJQUFJLEVBQUVIO1VBQ1A7UUFDRCxDQUFDO1FBQ0QsTUFBTU0sU0FBUyxHQUFHO1VBQ2pCdkYsS0FBSyxFQUFFOEIsVUFBVSxhQUFWQSxVQUFVLGdCQUFBUSxnQkFBQSxHQUFWUixVQUFVLENBQUVOLElBQUksY0FBQWMsZ0JBQUEsZUFBaEJBLGdCQUFBLENBQWtCdEMsS0FBSyxHQUFHOEIsVUFBVSxDQUFDTixJQUFJLENBQUN4QixLQUFLLEdBQUc4QixVQUFVLENBQUM5QixLQUFLO1VBQ3pFeUIsUUFBUSxFQUFFSyxVQUFVLGFBQVZBLFVBQVUsd0JBQUFTLGlCQUFBLEdBQVZULFVBQVUsQ0FBRU4sSUFBSSxjQUFBZSxpQkFBQSx1QkFBaEJBLGlCQUFBLENBQWtCZCxRQUFRO1VBQ3BDQyxJQUFJLEVBQUVJLFVBQVUsYUFBVkEsVUFBVSx3QkFBQVUsaUJBQUEsR0FBVlYsVUFBVSxDQUFFTixJQUFJLGNBQUFnQixpQkFBQSx1QkFBaEJBLGlCQUFBLENBQWtCZCxJQUFJO1VBQzVCeEQsR0FBRyxFQUFFNEQsVUFBVSxhQUFWQSxVQUFVLGdCQUFBVyxpQkFBQSxHQUFWWCxVQUFVLENBQUVOLElBQUksY0FBQWlCLGlCQUFBLGVBQWhCQSxpQkFBQSxDQUFrQnZFLEdBQUcsR0FBRzRELFVBQVUsQ0FBQ04sSUFBSSxDQUFDdEQsR0FBRyxHQUFHNEQsVUFBVSxDQUFDNUQsR0FBRyxDQUFDc0gsU0FBUyxDQUFDMUQsVUFBVSxDQUFDNUQsR0FBRyxDQUFDdUgsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1VBQ3hHOUQsUUFBUSxFQUFFRyxVQUFVLGFBQVZBLFVBQVUsd0JBQUFZLGlCQUFBLEdBQVZaLFVBQVUsQ0FBRU4sSUFBSSxjQUFBa0IsaUJBQUEsdUJBQWhCQSxpQkFBQSxDQUFrQmY7UUFDN0IsQ0FBQztRQUNELElBQUl4QixFQUFFLENBQUM2RSxVQUFVLEVBQUU7VUFDbEIxRSxpQkFBaUIsR0FBR0gsRUFBRSxDQUFDNkUsVUFBVTtVQUVqQyxNQUFNVSxXQUFXLEdBQUdwRixpQkFBaUIsQ0FBQ3pCLFFBQVEsQ0FBQyxPQUFPLENBQWM7VUFDcEUsSUFBSSxDQUFDOEcsbUJBQW1CLENBQUNELFdBQVcsQ0FBQztVQUNyQyxNQUFNRSxRQUFRLEdBQUczRCxNQUFNLENBQUN5RCxXQUFXLENBQUN4RCxPQUFPLENBQUMsQ0FBQyxFQUFFcUQsU0FBUyxDQUFDO1VBQ3pERyxXQUFXLENBQUN2RCxPQUFPLENBQUN5RCxRQUFRLENBQUM7VUFDN0JoRSxpQkFBaUIsQ0FBQ3RCLGlCQUFpQixFQUFFd0IsVUFBVSxDQUFDO1VBQ2hEeEIsaUJBQWlCLENBQUN1RixNQUFNLENBQUMxRixFQUFFLENBQUM7UUFDN0IsQ0FBQyxNQUFNO1VBQ04sTUFBTTJGLGFBQWEsR0FBRyxnQ0FBZ0M7VUFDdEQsTUFBTUMsZ0JBQWdCLEdBQUdDLG9CQUFvQixDQUFDQyxZQUFZLENBQUNILGFBQWEsRUFBRSxVQUFVLENBQUM7VUFFckYsSUFBSTtZQUNILE1BQU1JLFNBQVMsR0FBRyxNQUFNQyxlQUFlLENBQUNDLE9BQU8sQ0FBQ0wsZ0JBQWdCLEVBQUU7Y0FBRU0sSUFBSSxFQUFFUDtZQUFjLENBQUMsRUFBRVoscUJBQXFCLENBQUM7WUFDakg1RSxpQkFBaUIsR0FBSSxNQUFNZ0csUUFBUSxDQUFDQyxJQUFJLENBQUM7Y0FDeENDLFVBQVUsRUFBRU4sU0FBOEI7Y0FDMUNPLFVBQVUsRUFBRTVEO1lBQ2IsQ0FBQyxDQUFpQjtZQUVsQnZDLGlCQUFpQixDQUFDN0IsUUFBUSxDQUFDLElBQUlWLFNBQVMsQ0FBQ3dILFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQztZQUNuRSxNQUFNRyxXQUFXLEdBQUdwRixpQkFBaUIsQ0FBQ3pCLFFBQVEsQ0FBQyxPQUFPLENBQWM7WUFDcEUsSUFBSSxDQUFDOEcsbUJBQW1CLENBQUNELFdBQVcsQ0FBQztZQUNyQyxNQUFNRSxRQUFRLEdBQUczRCxNQUFNLENBQUN5RCxXQUFXLENBQUN4RCxPQUFPLENBQUMsQ0FBQyxFQUFFcUQsU0FBUyxDQUFDO1lBQ3pERyxXQUFXLENBQUN2RCxPQUFPLENBQUN5RCxRQUFRLENBQUM7WUFFN0J0RixpQkFBaUIsQ0FBQzdCLFFBQVEsQ0FBQyxJQUFJVixTQUFTLENBQUMrRCxVQUFVLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUM7WUFDeEVGLGlCQUFpQixDQUFDdEIsaUJBQWlCLEVBQUV3QixVQUFVLENBQUM7WUFFaEQzQixFQUFFLENBQUN1RyxZQUFZLENBQUNwRyxpQkFBaUIsQ0FBQztZQUNsQ0EsaUJBQWlCLENBQUN1RixNQUFNLENBQUMxRixFQUFFLENBQUM7WUFDNUIwQyxrQkFBa0IsQ0FBQ2lDLGFBQWEsQ0FBQ3hFLGlCQUFpQixDQUFDO1VBQ3BELENBQUMsQ0FBQyxPQUFPcUcsTUFBZSxFQUFFO1lBQ3pCQyxHQUFHLENBQUNDLEtBQUssQ0FBQyx3Q0FBd0MsRUFBRUYsTUFBZ0IsQ0FBQztVQUN0RTtRQUNEO01BQ0QsQ0FBQyxDQUFDLE9BQU9BLE1BQWUsRUFBRTtRQUN6QkMsR0FBRyxDQUFDQyxLQUFLLENBQUMsMkNBQTJDLEVBQUVGLE1BQWdCLENBQUM7TUFDekU7SUFDRDs7SUFFQTtBQUNEO0FBQ0E7QUFDQTtBQUNBLE9BSkM7SUFBQWhKLE1BQUEsQ0FLTW1KLFdBQVcsR0FBakIsZUFBQUEsWUFBa0JDLFFBQWdCLEVBQStCO01BQUEsSUFBQUMsc0JBQUE7TUFDaEUsTUFBTUMsTUFBTSxHQUFHLFFBQUFELHNCQUFBLEdBQU0sSUFBSSxDQUFDekksSUFBSSxDQUFDc0IsZUFBZSxDQUFDLENBQUMsY0FBQW1ILHNCQUFBLHVCQUEzQkEsc0JBQUEsQ0FBNkI1RixnQkFBZ0IsQ0FBQyxDQUFDLENBQUM4RixhQUFhLENBQUMsQ0FBQztNQUNwRixPQUFPRCxNQUFNLEdBQUdBLE1BQU0sR0FBR0YsUUFBUTtJQUNsQyxDQUFDO0lBQUFwSixNQUFBLENBRURnSSxtQkFBbUIsR0FBbkIsU0FBQUEsb0JBQW9Cd0IsVUFBcUIsRUFBUTtNQUNoRCxNQUFNbEUsU0FBUyxHQUFHQyxPQUFPLENBQUNDLG9CQUFvQixDQUFDLGFBQWEsQ0FBRTtNQUM5RGdFLFVBQVUsQ0FBQ2pILFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRStDLFNBQVMsQ0FBQ0ksT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7TUFDdkY4RCxVQUFVLENBQUNqSCxXQUFXLENBQUMsa0JBQWtCLEVBQUUrQyxTQUFTLENBQUNJLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO01BQzlGOEQsVUFBVSxDQUFDakgsV0FBVyxDQUFDLHlCQUF5QixFQUFFK0MsU0FBUyxDQUFDSSxPQUFPLENBQUMsOEJBQThCLENBQUMsQ0FBQztNQUNwRztNQUNBO01BQ0EsSUFBSStELFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLDJFQUEyRSxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ3pHRixVQUFVLENBQUNqSCxXQUFXLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDO01BQ2hELENBQUMsTUFBTTtRQUNOaUgsVUFBVSxDQUFDakgsV0FBVyxDQUFDLGlCQUFpQixFQUFFLEtBQUssQ0FBQztNQUNqRDtNQUNBLE1BQU1vSCxTQUFTLEdBQUdGLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLDhCQUE4QixDQUFDO01BQ2hFRixVQUFVLENBQUNqSCxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQ29ILFNBQVMsSUFBSUEsU0FBUyxDQUFDLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQztNQUMvRUosVUFBVSxDQUFDakgsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQ3NILEdBQUcsQ0FBQ0MsRUFBRSxDQUFDQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUN2Rjs7SUFFQTtJQUFBO0lBQUEvSixNQUFBLENBQ01nSCxxQkFBcUIsR0FBM0IsZUFBQUEsc0JBQTRCZ0QsSUFBWSxFQUFFQyxJQUFhLEVBQWlCO01BQ3ZFLE1BQU1DLFlBQVksR0FBRyxNQUFNQyxTQUFTLENBQUNDLE1BQU0sQ0FBQztRQUMzQzFCLElBQUksRUFBRSxtREFBbUQ7UUFDekQyQixRQUFRLEVBQUU7VUFDVEMsTUFBTSxFQUFFO1lBQ1BsSSxFQUFFLEVBQUU2SCxJQUFJO1lBQ1JoRixLQUFLLEVBQUUrRTtVQUNSO1FBQ0Q7TUFDRCxDQUFDLENBQUM7TUFDREUsWUFBWSxDQUFtQy9ELElBQUksQ0FBQyxDQUFDO0lBQ3ZEOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQW5HLE1BQUEsQ0FNTXVLLGFBQWEsR0FGbkIsZUFBQUEsY0FBQSxFQUVxQztNQUNwQyxNQUFNQyxhQUE0QixHQUFHLE1BQU0sSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ3JFLE1BQU1uRixTQUFTLEdBQUdDLE9BQU8sQ0FBQ0Msb0JBQW9CLENBQUMsYUFBYSxDQUFFO01BQzlELE1BQU1DLGFBQWEsR0FBRytFLGFBQWEsQ0FBQzdHLEtBQUssQ0FBQ3RCLEtBQUssR0FDNUNtSSxhQUFhLENBQUM3RyxLQUFLLENBQUN0QixLQUFLLEdBQ3pCaUQsU0FBUyxDQUFDSSxPQUFPLENBQUMseUNBQXlDLEVBQUUsQ0FBQzhFLGFBQWEsQ0FBQ25JLEtBQUssQ0FBQyxDQUFDO01BQ3RGc0QsT0FBTyxDQUFDQyxTQUFTLENBQUNDLFlBQVksQ0FBQ25FLFNBQVMsRUFBRStELGFBQWEsRUFBRStFLGFBQWEsQ0FBQzdHLEtBQUssQ0FBQ3BELEdBQUcsR0FBR2lLLGFBQWEsQ0FBQzdHLEtBQUssQ0FBQ3BELEdBQUcsR0FBR2lLLGFBQWEsQ0FBQ2pLLEdBQUcsQ0FBQztJQUNoSTs7SUFFQTtBQUNEO0FBQ0E7QUFDQSxPQUhDO0lBQUFQLE1BQUEsQ0FNTTBLLGtCQUFrQixHQUZ4QixlQUFBQSxtQkFBQSxFQUUwQztNQUN6QyxNQUFNRixhQUE0QixHQUFHLE1BQU0sSUFBSSxDQUFDQyxtQkFBbUIsQ0FBQyxDQUFDO01BQ3JFLE1BQU0sSUFBSSxDQUFDekQscUJBQXFCLENBQy9Cd0QsYUFBYSxDQUFDNUcsR0FBRyxDQUFDdkIsS0FBSyxHQUFHbUksYUFBYSxDQUFDNUcsR0FBRyxDQUFDdkIsS0FBSyxHQUFHbUksYUFBYSxDQUFDbkksS0FBSyxFQUN2RW1JLGFBQWEsQ0FBQzVHLEdBQUcsQ0FBQ3JELEdBQUcsR0FBR2lLLGFBQWEsQ0FBQzVHLEdBQUcsQ0FBQ3JELEdBQUcsR0FBRzRDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxNQUFNLEdBQUdGLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRSxRQUFRLEdBQUdrSCxhQUFhLENBQUNqSyxHQUNuSCxDQUFDO0lBQ0Y7O0lBRUE7QUFDRDtBQUNBO0FBQ0EsT0FIQztJQUFBUCxNQUFBLENBTU0ySyxXQUFXLEdBRmpCLGVBQUFBLFlBRWtCQyxNQUFZLEVBQWlCO01BQUEsSUFBQUMsV0FBQSxFQUFBQyxtQkFBQTtNQUM5QyxNQUFNM0ssY0FBYyxJQUFBMEssV0FBQSxHQUFHLElBQUksQ0FBQ2pLLElBQUksY0FBQWlLLFdBQUEsd0JBQUFDLG1CQUFBLEdBQVRELFdBQUEsQ0FBV2hLLE9BQU8sQ0FBQyxDQUFDLGNBQUFpSyxtQkFBQSx1QkFBcEJBLG1CQUFBLENBQXNCNUosUUFBUSxDQUFDLFdBQVcsQ0FBMEI7TUFDM0YsSUFBSWYsY0FBYyxFQUFFO1FBQ25CO1FBQ0FBLGNBQWMsQ0FBQ29DLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUM7TUFDdkQ7TUFDQSxNQUFNaUksYUFBNEIsR0FBRyxNQUFNLElBQUksQ0FBQ0MsbUJBQW1CLENBQUMsQ0FBQztRQUNwRU0seUJBQXlCLEdBQUdILE1BQU0sQ0FBQ0ksYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQXNCO1FBQzFFcEksbUJBQW1CLEdBQUdDLFdBQVcsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7UUFDL0NDLEtBQUssR0FBR0gsbUJBQW1CLENBQUNJLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDQyxTQUFTLEdBQUdMLG1CQUFtQixDQUFDTSxzQkFBc0IsR0FBR04sbUJBQW1CLENBQUNNLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7TUFDN0dzSCxhQUFhLENBQUNqSyxHQUFHLEdBQUd3QyxLQUFLLEdBQUdFLFNBQVMsR0FBR0YsS0FBSyxHQUFHSSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0ksSUFBSTs7TUFFcEU7TUFDQXVILHlCQUF5QixDQUFDRSxRQUFRLENBQUNULGFBQWEsQ0FBQzNHLElBQUksQ0FBQ3hCLEtBQUssR0FBR21JLGFBQWEsQ0FBQzNHLElBQUksQ0FBQ3hCLEtBQUssR0FBR21JLGFBQWEsQ0FBQ25JLEtBQUssQ0FBQztNQUM3RzBJLHlCQUF5QixDQUFDRyxXQUFXLENBQUNWLGFBQWEsQ0FBQzNHLElBQUksQ0FBQ0MsUUFBUSxDQUFDO01BQ2xFaUgseUJBQXlCLENBQUNJLFdBQVcsQ0FBQ1gsYUFBYSxDQUFDM0csSUFBSSxDQUFDRSxJQUFJLENBQUM7TUFDOURnSCx5QkFBeUIsQ0FBQ0ssWUFBWSxDQUFDWixhQUFhLENBQUMzRyxJQUFJLENBQUN0RCxHQUFHLEdBQUdpSyxhQUFhLENBQUMzRyxJQUFJLENBQUN0RCxHQUFHLEdBQUdpSyxhQUFhLENBQUNqSyxHQUFHLENBQUM7TUFDM0d3Syx5QkFBeUIsQ0FBQ00sYUFBYSxDQUFDYixhQUFhLENBQUMzRyxJQUFJLENBQUNHLFFBQVEsQ0FBQztNQUNwRStHLHlCQUF5QixDQUFDTyxhQUFhLENBQUM7UUFDdkNDLElBQUksRUFBRSxPQUFPO1FBQ2JsQixRQUFRLEVBQUU7VUFDVG1CLFlBQVksRUFBRTtRQUNmO01BQ0QsQ0FBQyxDQUFDOztNQUVGO01BQ0EsSUFBSXJMLGNBQWMsRUFBRTtRQUNuQkEsY0FBYyxDQUFDb0MsV0FBVyxDQUFDLG9CQUFvQixFQUFFLEtBQUssQ0FBQztNQUN4RDs7TUFFQTtNQUNBd0kseUJBQXlCLENBQUNVLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDOztJQUVBO0FBQ0Q7QUFDQTtBQUNBLE9BSEM7SUFBQXpMLE1BQUEsQ0FNTXlLLG1CQUFtQixHQUZ6QixlQUFBQSxvQkFBQSxFQUVvRDtNQUFBLElBQUFpQixzQkFBQSxFQUFBQyxzQkFBQTtNQUNuRCxNQUFNL0ksbUJBQW1CLEdBQUdDLFdBQVcsQ0FBQ0MsV0FBVyxDQUFDLENBQUM7TUFDckQsTUFBTUMsS0FBSyxHQUFHc0Qsa0JBQWtCLENBQUN6RCxtQkFBbUIsQ0FBQ0ksT0FBTyxDQUFDLENBQUMsQ0FBQztNQUMvRCxNQUFNQyxTQUFTLEdBQUdMLG1CQUFtQixDQUFDTSxzQkFBc0IsR0FBR04sbUJBQW1CLENBQUNNLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7TUFFbEgsTUFBTXRCLGNBQTZCLEdBQUc7UUFDckNyQixHQUFHLEVBQ0Y0QyxNQUFNLENBQUNDLFFBQVEsQ0FBQ0MsTUFBTSxHQUN0QkYsTUFBTSxDQUFDQyxRQUFRLENBQUNFLFFBQVEsR0FDeEJILE1BQU0sQ0FBQ0MsUUFBUSxDQUFDRyxNQUFNLElBQ3JCUixLQUFLLEdBQUdFLFNBQVMsR0FBR0YsS0FBSyxHQUFHSSxNQUFNLENBQUNDLFFBQVEsQ0FBQ0ksSUFBSSxDQUFDO1FBQ25EbkIsS0FBSyxFQUFFLFFBQUFxSixzQkFBQSxHQUFNLElBQUksQ0FBQzlLLElBQUksQ0FBQ3NCLGVBQWUsQ0FBQyxDQUFDLGNBQUF3SixzQkFBQSx3QkFBQUMsc0JBQUEsR0FBM0JELHNCQUFBLENBQTZCakksZ0JBQWdCLENBQUMsQ0FBQyxjQUFBa0ksc0JBQUEsdUJBQS9DQSxzQkFBQSxDQUFpRGpJLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFQyxLQUFLLEVBQUU7VUFDTnBELEdBQUcsRUFBRSxFQUFFO1VBQ1A4QixLQUFLLEVBQUU7UUFDUixDQUFDO1FBQ0R1QixHQUFHLEVBQUU7VUFDSnJELEdBQUcsRUFBRSxFQUFFO1VBQ1A4QixLQUFLLEVBQUU7UUFDUixDQUFDO1FBQ0R3QixJQUFJLEVBQUU7VUFDTHRELEdBQUcsRUFBRSxFQUFFO1VBQ1A4QixLQUFLLEVBQUUsRUFBRTtVQUNUeUIsUUFBUSxFQUFFLEVBQUU7VUFDWkMsSUFBSSxFQUFFLEVBQUU7VUFDUkMsUUFBUSxFQUFFO1FBQ1g7TUFDRCxDQUFDO01BQ0QsT0FBTyxJQUFJLENBQUNwRCxJQUFJLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNtRSxhQUFhLENBQUMsQ0FBQyxDQUFDQyxLQUFLLENBQUN0RCxrQkFBa0IsQ0FBQ0MsY0FBYyxDQUFDO0lBQ3BGLENBQUM7SUFBQSxPQUFBMUQsVUFBQTtFQUFBLEVBNVh1QjBOLG1CQUFtQixJQUFBQyx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLGFBQUE1QixLQUFBLEdBQUF5TixNQUFBLENBQUFDLHdCQUFBLENBQUFuTSxPQUFBLENBQUFLLFNBQUEsYUFBQUwsT0FBQSxDQUFBSyxTQUFBLEdBQUE0TCx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLGFBQUExQixLQUFBLEdBQUF1TixNQUFBLENBQUFDLHdCQUFBLENBQUFuTSxPQUFBLENBQUFLLFNBQUEsYUFBQUwsT0FBQSxDQUFBSyxTQUFBLEdBQUE0TCx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLHFCQUFBekIsS0FBQSxFQUFBRSxLQUFBLEdBQUFvTixNQUFBLENBQUFDLHdCQUFBLENBQUFuTSxPQUFBLENBQUFLLFNBQUEscUJBQUFMLE9BQUEsQ0FBQUssU0FBQSxHQUFBNEwseUJBQUEsQ0FBQWpNLE9BQUEsQ0FBQUssU0FBQSx3QkFBQXJCLEtBQUEsRUFBQUMsS0FBQSxHQUFBaU4sTUFBQSxDQUFBQyx3QkFBQSxDQUFBbk0sT0FBQSxDQUFBSyxTQUFBLHdCQUFBTCxPQUFBLENBQUFLLFNBQUEsR0FBQTRMLHlCQUFBLENBQUFqTSxPQUFBLENBQUFLLFNBQUEseUJBQUFsQixLQUFBLEVBQUFDLEtBQUEsR0FBQThNLE1BQUEsQ0FBQUMsd0JBQUEsQ0FBQW5NLE9BQUEsQ0FBQUssU0FBQSx5QkFBQUwsT0FBQSxDQUFBSyxTQUFBLEdBQUE0TCx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLG9CQUFBZCxNQUFBLEVBQUFDLE1BQUEsR0FBQTBNLE1BQUEsQ0FBQUMsd0JBQUEsQ0FBQW5NLE9BQUEsQ0FBQUssU0FBQSxvQkFBQUwsT0FBQSxDQUFBSyxTQUFBLEdBQUE0TCx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLHlCQUFBWixNQUFBLEVBQUFDLE1BQUEsR0FBQXdNLE1BQUEsQ0FBQUMsd0JBQUEsQ0FBQW5NLE9BQUEsQ0FBQUssU0FBQSx5QkFBQUwsT0FBQSxDQUFBSyxTQUFBLEdBQUE0TCx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLGtCQUFBVixNQUFBLEVBQUFDLE1BQUEsR0FBQXNNLE1BQUEsQ0FBQUMsd0JBQUEsQ0FBQW5NLE9BQUEsQ0FBQUssU0FBQSxrQkFBQUwsT0FBQSxDQUFBSyxTQUFBLEdBQUE0TCx5QkFBQSxDQUFBak0sT0FBQSxDQUFBSyxTQUFBLDBCQUFBUixNQUFBLEVBQUFDLE1BQUEsR0FBQW9NLE1BQUEsQ0FBQUMsd0JBQUEsQ0FBQW5NLE9BQUEsQ0FBQUssU0FBQSwwQkFBQUwsT0FBQSxDQUFBSyxTQUFBLElBQUFMLE9BQUEsTUFBQUQsTUFBQTtFQUFBLE9BK1g3QnpCLFVBQVU7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -83,11 +83,12 @@ class ShareUtils extends ControllerExtension {
83
83
 
84
84
  /**
85
85
  * Get adaptive card definition.
86
+ * @returns Adaptive card definition or a Promise resolving the Adaptive card definition
86
87
  */
87
88
  @publicExtension()
88
89
  @extensible("AfterAsync")
89
90
  async getCardDefinition(): Promise<IAdaptiveCard | undefined> {
90
- return;
91
+ return Promise.resolve(undefined);
91
92
  }
92
93
 
93
94
  /**