@smartbit4all/ng-client 4.3.20 → 4.3.22

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 (364) hide show
  1. package/README.md +386 -386
  2. package/esm2022/lib/component-factory-service/component-factory-service.module.mjs +1 -1
  3. package/esm2022/lib/component-factory-service/component-factory-service.service.mjs +1 -1
  4. package/esm2022/lib/component-factory-service/projects.mjs +1 -1
  5. package/esm2022/lib/session/api/api/api.mjs +1 -1
  6. package/esm2022/lib/session/api/index.mjs +1 -1
  7. package/esm2022/lib/session/api/model/models.mjs +1 -1
  8. package/esm2022/lib/session/api/model/session.mjs +1 -1
  9. package/esm2022/lib/session/api/model/sessionInfoData.mjs +1 -1
  10. package/esm2022/lib/session/cookie-service/smart-cookie.service.mjs +1 -1
  11. package/esm2022/lib/session/projects.mjs +1 -1
  12. package/esm2022/lib/session/smart-error-catching.interceptor.mjs +1 -1
  13. package/esm2022/lib/session/smart-header-maintainer.interceptor.mjs +1 -1
  14. package/esm2022/lib/session/smart-session-handler.service.mjs +1 -1
  15. package/esm2022/lib/session/smart-session.module.mjs +1 -1
  16. package/esm2022/lib/session/smart-session.service.mjs +1 -1
  17. package/esm2022/lib/session/smart-timer/smart-session-timer.component.mjs +3 -3
  18. package/esm2022/lib/session/smart-timer/smart-session-timer.service.mjs +1 -1
  19. package/esm2022/lib/shared/projects.mjs +1 -1
  20. package/esm2022/lib/shared/shared.module.mjs +1 -1
  21. package/esm2022/lib/shared/smart-tooltip.directive.mjs +1 -1
  22. package/esm2022/lib/shared/smarttable.date-pipe.mjs +1 -1
  23. package/esm2022/lib/smart-client/projects.mjs +1 -1
  24. package/esm2022/lib/smart-client/smart-authentication.service.mjs +1 -1
  25. package/esm2022/lib/smart-client/smart-component-api-client.mjs +1 -1
  26. package/esm2022/lib/smart-client/smart-file-uploader/smart-file-uploader.component.mjs +3 -3
  27. package/esm2022/lib/smart-client/smart.component.mjs +1 -1
  28. package/esm2022/lib/smart-client/smart.service.mjs +1 -1
  29. package/esm2022/lib/smart-component-layout/api/api/api.mjs +1 -1
  30. package/esm2022/lib/smart-component-layout/api/api/default.service.mjs +1 -1
  31. package/esm2022/lib/smart-component-layout/api/api.module.mjs +1 -1
  32. package/esm2022/lib/smart-component-layout/api/configuration.mjs +1 -1
  33. package/esm2022/lib/smart-component-layout/api/encoder.mjs +1 -1
  34. package/esm2022/lib/smart-component-layout/api/index.mjs +1 -1
  35. package/esm2022/lib/smart-component-layout/api/model/componentType.mjs +1 -1
  36. package/esm2022/lib/smart-component-layout/api/model/componentWidgetType.mjs +1 -1
  37. package/esm2022/lib/smart-component-layout/api/model/layoutDefinitionDescriptor.mjs +1 -1
  38. package/esm2022/lib/smart-component-layout/api/model/layoutDirection.mjs +1 -1
  39. package/esm2022/lib/smart-component-layout/api/model/models.mjs +1 -1
  40. package/esm2022/lib/smart-component-layout/api/model/smartComponentLayoutDefinition.mjs +1 -1
  41. package/esm2022/lib/smart-component-layout/api/model/smartComponentWidgetDefinition.mjs +1 -1
  42. package/esm2022/lib/smart-component-layout/api/model/toolbarDirection.mjs +1 -1
  43. package/esm2022/lib/smart-component-layout/api/model/toolbarProperties.mjs +1 -1
  44. package/esm2022/lib/smart-component-layout/api/param.mjs +1 -1
  45. package/esm2022/lib/smart-component-layout/api/variables.mjs +1 -1
  46. package/esm2022/lib/smart-component-layout/projects.mjs +1 -1
  47. package/esm2022/lib/smart-component-layout/smart-component-layout-utility.mjs +1 -1
  48. package/esm2022/lib/smart-component-layout/smart-component-layout.component.mjs +3 -3
  49. package/esm2022/lib/smart-component-layout/smart-component-layout.module.mjs +1 -1
  50. package/esm2022/lib/smart-diagram/api/api/api.mjs +1 -1
  51. package/esm2022/lib/smart-diagram/api/api/diagramService.service.mjs +1 -1
  52. package/esm2022/lib/smart-diagram/api/api.module.mjs +1 -1
  53. package/esm2022/lib/smart-diagram/api/configuration.mjs +1 -1
  54. package/esm2022/lib/smart-diagram/api/encoder.mjs +1 -1
  55. package/esm2022/lib/smart-diagram/api/index.mjs +1 -1
  56. package/esm2022/lib/smart-diagram/api/model/diagramColor.mjs +1 -1
  57. package/esm2022/lib/smart-diagram/api/model/diagramDataContainer.mjs +1 -1
  58. package/esm2022/lib/smart-diagram/api/model/diagramDataItem.mjs +1 -1
  59. package/esm2022/lib/smart-diagram/api/model/diagramDataSet.mjs +1 -1
  60. package/esm2022/lib/smart-diagram/api/model/diagramDescriptor.mjs +1 -1
  61. package/esm2022/lib/smart-diagram/api/model/diagramModel.mjs +1 -1
  62. package/esm2022/lib/smart-diagram/api/model/diagramShape.mjs +1 -1
  63. package/esm2022/lib/smart-diagram/api/model/drawTime.mjs +1 -1
  64. package/esm2022/lib/smart-diagram/api/model/labelText.mjs +1 -1
  65. package/esm2022/lib/smart-diagram/api/model/models.mjs +1 -1
  66. package/esm2022/lib/smart-diagram/api/param.mjs +1 -1
  67. package/esm2022/lib/smart-diagram/api/variables.mjs +1 -1
  68. package/esm2022/lib/smart-diagram/component/default-smart-diagram-options.provider.mjs +1 -1
  69. package/esm2022/lib/smart-diagram/component/smart-diagram.component.mjs +22 -22
  70. package/esm2022/lib/smart-diagram/component/smart-diagram.module.mjs +1 -1
  71. package/esm2022/lib/smart-diagram/component/smart-diagram.util.mjs +1 -1
  72. package/esm2022/lib/smart-diagram/projects.mjs +1 -1
  73. package/esm2022/lib/smart-dialog/projects.mjs +1 -1
  74. package/esm2022/lib/smart-dialog/smartdialog.component.mjs +3 -3
  75. package/esm2022/lib/smart-dialog/smartdialog.model.mjs +1 -1
  76. package/esm2022/lib/smart-dialog/smartdialog.module.mjs +1 -1
  77. package/esm2022/lib/smart-dialog/smartdialog.service.mjs +1 -1
  78. package/esm2022/lib/smart-expandable-section/expandable-section.component.mjs +3 -3
  79. package/esm2022/lib/smart-expandable-section/expandable-section.model.mjs +1 -1
  80. package/esm2022/lib/smart-expandable-section/projects.mjs +1 -1
  81. package/esm2022/lib/smart-expandable-section/smart-expandable-section.module.mjs +1 -1
  82. package/esm2022/lib/smart-expandable-section/smart-expandable-section.service.mjs +1 -1
  83. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBoolOperator.mjs +1 -1
  84. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderField.mjs +1 -1
  85. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderGroup.mjs +1 -1
  86. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionBuilderModel.mjs +1 -1
  87. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionData.mjs +1 -1
  88. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionDataType.mjs +1 -1
  89. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionField.mjs +1 -1
  90. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldList.mjs +1 -1
  91. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionFieldWidgetType.mjs +1 -1
  92. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionList.mjs +1 -1
  93. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperandData.mjs +1 -1
  94. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOperation.mjs +1 -1
  95. package/esm2022/lib/smart-filter/api/filter/model/filterExpressionOrderBy.mjs +1 -1
  96. package/esm2022/lib/smart-filter/api/filter/model/model.mjs +1 -1
  97. package/esm2022/lib/smart-filter/api/filter/model/searchIndexObjectDefinitionData.mjs +1 -1
  98. package/esm2022/lib/smart-filter/api/filter/model/searchIndexPropertyDefinitionData.mjs +1 -1
  99. package/esm2022/lib/smart-filter/api/value/model/value.mjs +1 -1
  100. package/esm2022/lib/smart-filter/projects.mjs +1 -1
  101. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-expression-field/smart-filter-expression-field.component.mjs +1 -1
  102. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/components/smart-filter-simple-field/smart-filter-simple-field.component.mjs +3 -3
  103. package/esm2022/lib/smart-filter/smart-filter/components/smart-filter-simple/smart-filter-simple.component.mjs +3 -3
  104. package/esm2022/lib/smart-filter/smart-filter/smart-filter.component.mjs +3 -3
  105. package/esm2022/lib/smart-filter/smart-filter/smart-filter.service.mjs +1 -1
  106. package/esm2022/lib/smart-filter/smart-filter.model.mjs +1 -1
  107. package/esm2022/lib/smart-filter/smart-filter.module.mjs +1 -1
  108. package/esm2022/lib/smart-filter-editor/api/api/filter.service.mjs +1 -1
  109. package/esm2022/lib/smart-filter-editor/api/configuration.mjs +1 -1
  110. package/esm2022/lib/smart-filter-editor/api/encoder.mjs +1 -1
  111. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBoolOperator.mjs +1 -1
  112. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderApiConfig.mjs +1 -1
  113. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderField.mjs +1 -1
  114. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderGroup.mjs +1 -1
  115. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderModel.mjs +1 -1
  116. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionBuilderUiModel.mjs +1 -1
  117. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionData.mjs +1 -1
  118. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionDataType.mjs +1 -1
  119. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionField.mjs +1 -1
  120. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldEditor.mjs +1 -1
  121. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldList.mjs +1 -1
  122. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionFieldWidgetType.mjs +1 -1
  123. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionList.mjs +1 -1
  124. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperandData.mjs +1 -1
  125. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOperation.mjs +1 -1
  126. package/esm2022/lib/smart-filter-editor/api/model/filterExpressionOrderBy.mjs +1 -1
  127. package/esm2022/lib/smart-filter-editor/api/model/smartFilterType.mjs +1 -1
  128. package/esm2022/lib/smart-filter-editor/api/param.mjs +1 -1
  129. package/esm2022/lib/smart-filter-editor/api/variables.mjs +1 -1
  130. package/esm2022/lib/smart-filter-editor/filterExpressionBuilderApiActions.mjs +1 -1
  131. package/esm2022/lib/smart-filter-editor/project.mjs +1 -1
  132. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-item/smart-filter-expression-item.component.mjs +3 -3
  133. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/components/smart-filter-expression-items/smart-filter-expression-items.component.mjs +3 -3
  134. package/esm2022/lib/smart-filter-editor/smart-filter-editor-content/smart-filter-editor-content.component.mjs +3 -3
  135. package/esm2022/lib/smart-filter-editor/smart-filter-editor.model.mjs +1 -1
  136. package/esm2022/lib/smart-filter-editor/smart-filter-editor.module.mjs +1 -1
  137. package/esm2022/lib/smart-filter-editor/smart-filter-editor.service.mjs +1 -1
  138. package/esm2022/lib/smart-filter-editor/smart-filter-params/components/smart-filter-param/smart-filter-param.component.mjs +3 -3
  139. package/esm2022/lib/smart-filter-editor/smart-filter-params/smart-filter-params.component.mjs +3 -3
  140. package/esm2022/lib/smart-form/api/model/dateFieldProperties.mjs +1 -1
  141. package/esm2022/lib/smart-form/api/model/models.mjs +1 -1
  142. package/esm2022/lib/smart-form/api/model/multiFileUploaderProperties.mjs +1 -1
  143. package/esm2022/lib/smart-form/api/model/selectionDefinition.mjs +1 -1
  144. package/esm2022/lib/smart-form/api/model/smartFormWidgetType.mjs +1 -1
  145. package/esm2022/lib/smart-form/api/model/smartWidgetDefinition.mjs +1 -1
  146. package/esm2022/lib/smart-form/api/model/textBoxProperties.mjs +1 -1
  147. package/esm2022/lib/smart-form/api/model/valueChangeMode.mjs +1 -1
  148. package/esm2022/lib/smart-form/highlightMacthingString-pipe.mjs +1 -1
  149. package/esm2022/lib/smart-form/projects.mjs +1 -1
  150. package/esm2022/lib/smart-form/services/smartform.layout-definition.service.mjs +1 -1
  151. package/esm2022/lib/smart-form/services/smartform.service.mjs +1 -1
  152. package/esm2022/lib/smart-form/smartfileuploader/large-file-snack-bar/large-file-snack-bar.component.mjs +3 -3
  153. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.component.mjs +3 -3
  154. package/esm2022/lib/smart-form/smartfileuploader/smartfileuploader.model.mjs +1 -1
  155. package/esm2022/lib/smart-form/smartform.component.mjs +3 -3
  156. package/esm2022/lib/smart-form/smartform.form-model.mjs +1 -1
  157. package/esm2022/lib/smart-form/smartform.model.mjs +1 -1
  158. package/esm2022/lib/smart-form/widgets/components/smart-file-editor/smart-file-editor.component.mjs +3 -3
  159. package/esm2022/lib/smart-form/widgets/components/smart-month-picker/smart-month-picker.component.mjs +3 -3
  160. package/esm2022/lib/smart-form/widgets/components/smart-multi-file-editor/smart-multi-file-editor.component.mjs +3 -3
  161. package/esm2022/lib/smart-form/widgets/directives/comparable-dropdown.directive.mjs +1 -1
  162. package/esm2022/lib/smart-form/widgets/directives/comparable-multiselect.directive.mjs +1 -1
  163. package/esm2022/lib/smart-form/widgets/smartformwidget/smartformwidget.component.mjs +3 -3
  164. package/esm2022/lib/smart-form/widgets/smartformwidget/sortable-widget/sortable-widget.component.mjs +3 -3
  165. package/esm2022/lib/smart-form/widgets/smartformwidget/trackCaps.directive.mjs +1 -1
  166. package/esm2022/lib/smart-grid/api/grid-api/api/api.mjs +1 -1
  167. package/esm2022/lib/smart-grid/api/grid-api/api/grid.service.mjs +1 -1
  168. package/esm2022/lib/smart-grid/api/grid-api/api.module.mjs +1 -1
  169. package/esm2022/lib/smart-grid/api/grid-api/configuration.mjs +1 -1
  170. package/esm2022/lib/smart-grid/api/grid-api/encoder.mjs +1 -1
  171. package/esm2022/lib/smart-grid/api/grid-api/index.mjs +1 -1
  172. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnContentType.mjs +1 -1
  173. package/esm2022/lib/smart-grid/api/grid-api/model/gridColumnMeta.mjs +1 -1
  174. package/esm2022/lib/smart-grid/api/grid-api/model/gridDataAccessConfig.mjs +1 -1
  175. package/esm2022/lib/smart-grid/api/grid-api/model/gridExportDescriptor.mjs +1 -1
  176. package/esm2022/lib/smart-grid/api/grid-api/model/gridModel.mjs +1 -1
  177. package/esm2022/lib/smart-grid/api/grid-api/model/gridPage.mjs +1 -1
  178. package/esm2022/lib/smart-grid/api/grid-api/model/gridRow.mjs +1 -1
  179. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionChange.mjs +1 -1
  180. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionMode.mjs +1 -1
  181. package/esm2022/lib/smart-grid/api/grid-api/model/gridSelectionType.mjs +1 -1
  182. package/esm2022/lib/smart-grid/api/grid-api/model/gridServerModel.mjs +1 -1
  183. package/esm2022/lib/smart-grid/api/grid-api/model/gridUpdateData.mjs +1 -1
  184. package/esm2022/lib/smart-grid/api/grid-api/model/gridView.mjs +1 -1
  185. package/esm2022/lib/smart-grid/api/grid-api/model/gridViewDescriptor.mjs +1 -1
  186. package/esm2022/lib/smart-grid/api/grid-api/model/models.mjs +1 -1
  187. package/esm2022/lib/smart-grid/api/grid-api/param.mjs +1 -1
  188. package/esm2022/lib/smart-grid/api/grid-api/variables.mjs +1 -1
  189. package/esm2022/lib/smart-grid/components/expandable-grid/expandable-grid.component.mjs +3 -3
  190. package/esm2022/lib/smart-grid/components/generic-component/expanded-row-renderer.component.mjs +3 -3
  191. package/esm2022/lib/smart-grid/components/smart-grid-card/smart-grid-card.component.mjs +3 -3
  192. package/esm2022/lib/smart-grid/components/table-layout-definer/table-layout-definer.component.mjs +3 -3
  193. package/esm2022/lib/smart-grid/models/model.mjs +1 -1
  194. package/esm2022/lib/smart-grid/projects.mjs +1 -1
  195. package/esm2022/lib/smart-grid/smart-grid-toolbar-util.mjs +1 -1
  196. package/esm2022/lib/smart-grid/smart-grid.component.mjs +3 -3
  197. package/esm2022/lib/smart-grid/smart-grid.module.mjs +1 -1
  198. package/esm2022/lib/smart-grid/smart-grid.service.mjs +1 -1
  199. package/esm2022/lib/smart-icon/projects.mjs +1 -1
  200. package/esm2022/lib/smart-icon/smart-icon/smart-icon.component.mjs +3 -3
  201. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.component.mjs +3 -3
  202. package/esm2022/lib/smart-icon/smart-icon/ui-badge/ui-badge.directive.mjs +1 -1
  203. package/esm2022/lib/smart-icon/smart-icon.module.mjs +1 -1
  204. package/esm2022/lib/smart-icon/smart-icon.service.mjs +1 -1
  205. package/esm2022/lib/smart-map/abstract-map.mjs +1 -1
  206. package/esm2022/lib/smart-map/api/api/api.mjs +1 -1
  207. package/esm2022/lib/smart-map/api/api/geoMap.service.mjs +1 -1
  208. package/esm2022/lib/smart-map/api/api.module.mjs +1 -1
  209. package/esm2022/lib/smart-map/api/configuration.mjs +1 -1
  210. package/esm2022/lib/smart-map/api/encoder.mjs +1 -1
  211. package/esm2022/lib/smart-map/api/index.mjs +1 -1
  212. package/esm2022/lib/smart-map/api/model/gPSPosition.mjs +1 -1
  213. package/esm2022/lib/smart-map/api/model/gPSRoute.mjs +1 -1
  214. package/esm2022/lib/smart-map/api/model/geoMapChange.mjs +1 -1
  215. package/esm2022/lib/smart-map/api/model/geoMapDataLoadingMode.mjs +1 -1
  216. package/esm2022/lib/smart-map/api/model/geoMapDataSourceDescriptor.mjs +1 -1
  217. package/esm2022/lib/smart-map/api/model/geoMapDataSourceType.mjs +1 -1
  218. package/esm2022/lib/smart-map/api/model/geoMapEditingSession.mjs +1 -1
  219. package/esm2022/lib/smart-map/api/model/geoMapInteraction.mjs +1 -1
  220. package/esm2022/lib/smart-map/api/model/geoMapItem.mjs +1 -1
  221. package/esm2022/lib/smart-map/api/model/geoMapItemKind.mjs +1 -1
  222. package/esm2022/lib/smart-map/api/model/geoMapLayer.mjs +1 -1
  223. package/esm2022/lib/smart-map/api/model/geoMapLayerChange.mjs +1 -1
  224. package/esm2022/lib/smart-map/api/model/geoMapLayerDescriptor.mjs +1 -1
  225. package/esm2022/lib/smart-map/api/model/geoMapModel.mjs +1 -1
  226. package/esm2022/lib/smart-map/api/model/geoMapOperationMode.mjs +1 -1
  227. package/esm2022/lib/smart-map/api/model/geoMapSelectionMode.mjs +1 -1
  228. package/esm2022/lib/smart-map/api/model/geoMapServerModel.mjs +1 -1
  229. package/esm2022/lib/smart-map/api/model/geoMapTextType.mjs +1 -1
  230. package/esm2022/lib/smart-map/api/model/geoMapViewState.mjs +1 -1
  231. package/esm2022/lib/smart-map/api/model/geoMapViewport.mjs +1 -1
  232. package/esm2022/lib/smart-map/api/model/models.mjs +1 -1
  233. package/esm2022/lib/smart-map/api/param.mjs +1 -1
  234. package/esm2022/lib/smart-map/api/variables.mjs +1 -1
  235. package/esm2022/lib/smart-map/api-default/api-default.mjs +1 -1
  236. package/esm2022/lib/smart-map/impl/google-map.mjs +1 -1
  237. package/esm2022/lib/smart-map/impl/leaflet-map.mjs +1 -1
  238. package/esm2022/lib/smart-map/projects.mjs +1 -1
  239. package/esm2022/lib/smart-map/smart-map.component.mjs +3 -3
  240. package/esm2022/lib/smart-map/smart-map.module.mjs +1 -1
  241. package/esm2022/lib/smart-map/smart-map.types.mjs +1 -1
  242. package/esm2022/lib/smart-navbar/projects.mjs +1 -1
  243. package/esm2022/lib/smart-navbar/smart-navbar.component.mjs +3 -3
  244. package/esm2022/lib/smart-navbar/smart-navbar.model.mjs +1 -1
  245. package/esm2022/lib/smart-navbar/smart-navbar.module.mjs +1 -1
  246. package/esm2022/lib/smart-navbar/smart-navbar.service.mjs +1 -1
  247. package/esm2022/lib/smart-navigation/projects.mjs +1 -1
  248. package/esm2022/lib/smart-navigation/smart-navigation.interface.mjs +1 -1
  249. package/esm2022/lib/smart-navigation/smart-navigation.module.mjs +1 -1
  250. package/esm2022/lib/smart-navigation/smart-navigation.service.mjs +1 -1
  251. package/esm2022/lib/smart-ng-client.module.mjs +1 -1
  252. package/esm2022/lib/smart-ng-client.service.mjs +1 -1
  253. package/esm2022/lib/smart-subject/projects.mjs +1 -1
  254. package/esm2022/lib/smart-subject/smart-subject.mjs +1 -1
  255. package/esm2022/lib/smart-tab-group/projects.mjs +1 -1
  256. package/esm2022/lib/smart-tab-group/smart-tab-group.component.mjs +3 -3
  257. package/esm2022/lib/smart-tab-group/smart-tab-group.module.mjs +1 -1
  258. package/esm2022/lib/smart-tab-group/smart-tab-group.service.mjs +1 -1
  259. package/esm2022/lib/smart-tab-group/tab-content/tab-content.component.mjs +3 -3
  260. package/esm2022/lib/smart-tab-group/tab-group-simplified/tab-group.component.mjs +3 -3
  261. package/esm2022/lib/smart-tab-group/tabTile.model.mjs +1 -1
  262. package/esm2022/lib/smart-table/components/default-actions-popup/default-actions-popup.component.mjs +3 -3
  263. package/esm2022/lib/smart-table/components/loading/loading.component.mjs +3 -3
  264. package/esm2022/lib/smart-table/directives/mat-context-menu-trigger-for.directive.mjs +1 -1
  265. package/esm2022/lib/smart-table/projects.mjs +1 -1
  266. package/esm2022/lib/smart-table/smarttable.component.mjs +3 -3
  267. package/esm2022/lib/smart-table/smarttable.model.mjs +1 -1
  268. package/esm2022/lib/smart-table/smarttable.module.mjs +1 -1
  269. package/esm2022/lib/smart-table/smarttable.service.mjs +1 -1
  270. package/esm2022/lib/smart-table/tables/material-table/material-table.component.mjs +3 -3
  271. package/esm2022/lib/smart-table/tables/mobile-table/mobile-table.component.mjs +3 -3
  272. package/esm2022/lib/smart-table/tables/table.mjs +1 -1
  273. package/esm2022/lib/smart-tree/projects.mjs +1 -1
  274. package/esm2022/lib/smart-tree/smarttree-generic.service.mjs +2 -1
  275. package/esm2022/lib/smart-tree/smarttree.component.mjs +3 -3
  276. package/esm2022/lib/smart-tree/smarttree.model.mjs +1 -1
  277. package/esm2022/lib/smart-tree/smarttree.module.mjs +1 -1
  278. package/esm2022/lib/smart-tree/smarttree.node.model.mjs +1 -1
  279. package/esm2022/lib/smart-tree/smarttree.service.interface.mjs +1 -1
  280. package/esm2022/lib/smart-tree/smarttree.service.mjs +1 -1
  281. package/esm2022/lib/smart-tree/tree-api/api/tree.service.mjs +1 -1
  282. package/esm2022/lib/smart-tree/tree-api/configuration.mjs +1 -1
  283. package/esm2022/lib/smart-tree/tree-api/encoder.mjs +1 -1
  284. package/esm2022/lib/smart-tree/tree-api/param.mjs +1 -1
  285. package/esm2022/lib/smart-tree/tree-api/variables.mjs +1 -1
  286. package/esm2022/lib/smart-validation/named-validator.service.mjs +1 -1
  287. package/esm2022/lib/smart-validation/projects.mjs +1 -1
  288. package/esm2022/lib/smart-validation/smart-validation.module.mjs +1 -1
  289. package/esm2022/lib/smart-validation/smart-validation.types.mjs +1 -1
  290. package/esm2022/lib/view-context/api/api/view.service.mjs +1 -1
  291. package/esm2022/lib/view-context/api/api-default/binaryData.mjs +1 -1
  292. package/esm2022/lib/view-context/api/api-default/invocationError.mjs +1 -1
  293. package/esm2022/lib/view-context/api/api-default/invocationRequest.mjs +1 -1
  294. package/esm2022/lib/view-context/api/model/models.mjs +1 -1
  295. package/esm2022/lib/view-context/api/model/smartLinkData.mjs +1 -1
  296. package/esm2022/lib/view-context/api/model/uiAction.mjs +1 -1
  297. package/esm2022/lib/view-context/api/model/uiActionDefinition.mjs +1 -1
  298. package/esm2022/lib/view-context/api/model/uiActionSchedule.mjs +1 -1
  299. package/esm2022/lib/view-context/api/model/view.mjs +1 -1
  300. package/esm2022/lib/view-context/api/model/viewData.mjs +1 -1
  301. package/esm2022/lib/view-context/invalid-fields-snack-bar/invalid-fields-snack-bar.component.mjs +3 -3
  302. package/esm2022/lib/view-context/message-dialog/message-dialog.component.mjs +3 -3
  303. package/esm2022/lib/view-context/projects.mjs +1 -1
  304. package/esm2022/lib/view-context/property-definition-data.mjs +1 -1
  305. package/esm2022/lib/view-context/smart-embedded-slot.directive.mjs +1 -1
  306. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.component.mjs +3 -3
  307. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.constants.mjs +1 -1
  308. package/esm2022/lib/view-context/smart-ui-action/components/menu/menu.service.mjs +1 -1
  309. package/esm2022/lib/view-context/smart-ui-action/components/success-snack-bar/success-snack-bar.component.mjs +3 -3
  310. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/photo-capture-widget/photo-capture-widget.component.mjs +3 -3
  311. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/prime-file-uploader/prime-file-uploader.component.mjs +3 -3
  312. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.component.mjs +3 -3
  313. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/upload-widget.utils.mjs +1 -1
  314. package/esm2022/lib/view-context/smart-ui-action/components/upload-widget/voice-record-widget/voice-record-widget.component.mjs +3 -3
  315. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.component.mjs +3 -3
  316. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-confirm-dialog/ui-action-confirm-dialog.service.mjs +1 -1
  317. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-dialog-button/ui-action-dialog-button.component.mjs +3 -3
  318. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.component.mjs +3 -3
  319. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-file-upload-dialog/ui-action-file-upload-dialog.service.mjs +1 -1
  320. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.component.mjs +3 -3
  321. package/esm2022/lib/view-context/smart-ui-action/dialogs/ui-action-input-dialog/ui-action-input-dialog.service.mjs +1 -1
  322. package/esm2022/lib/view-context/smart-ui-action/file-editor-toolbar/file-editor-toolbar.component.mjs +3 -3
  323. package/esm2022/lib/view-context/smart-ui-action/ui-action-button/ui-action-button.component.mjs +3 -3
  324. package/esm2022/lib/view-context/smart-ui-action/ui-action-toolbar.component.mjs +3 -3
  325. package/esm2022/lib/view-context/smart-ui-action/ui-action.descriptor.service.mjs +1 -1
  326. package/esm2022/lib/view-context/smart-ui-action/ui-action.model.mjs +1 -1
  327. package/esm2022/lib/view-context/smart-ui-action/ui-action.service.mjs +1 -1
  328. package/esm2022/lib/view-context/smart-view-context-dialog.service.mjs +1 -1
  329. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.component.mjs +3 -3
  330. package/esm2022/lib/view-context/smart-view-context-error-dialog/smart-view-context-error-dialog.service.mjs +1 -1
  331. package/esm2022/lib/view-context/smart-view-context.interceptor.mjs +1 -1
  332. package/esm2022/lib/view-context/smart-view-context.model.mjs +1 -1
  333. package/esm2022/lib/view-context/smart-view-context.module.mjs +1 -1
  334. package/esm2022/lib/view-context/smart-view-context.service.mjs +1 -1
  335. package/esm2022/lib/view-context/smart-view-redirect/smart-view-redirect.mjs +1 -1
  336. package/esm2022/lib/view-context/utility/componentLibrary.mjs +1 -1
  337. package/esm2022/lib/view-context/utility/smart-object-utility.mjs +1 -1
  338. package/esm2022/lib/view-context/utility/smart-style-utility.mjs +1 -1
  339. package/esm2022/lib/view-context/value-api/api/api.mjs +1 -1
  340. package/esm2022/lib/view-context/value-api/api/value.service.mjs +1 -1
  341. package/esm2022/lib/view-context/value-api/api.module.mjs +1 -1
  342. package/esm2022/lib/view-context/value-api/configuration.mjs +1 -1
  343. package/esm2022/lib/view-context/value-api/encoder.mjs +1 -1
  344. package/esm2022/lib/view-context/value-api/index.mjs +1 -1
  345. package/esm2022/lib/view-context/value-api/model/genericValue.mjs +1 -1
  346. package/esm2022/lib/view-context/value-api/model/models.mjs +1 -1
  347. package/esm2022/lib/view-context/value-api/model/value.mjs +1 -1
  348. package/esm2022/lib/view-context/value-api/model/valueSetData.mjs +1 -1
  349. package/esm2022/lib/view-context/value-api/model/valueSetDefinition.mjs +1 -1
  350. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionData.mjs +1 -1
  351. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionIdentifier.mjs +1 -1
  352. package/esm2022/lib/view-context/value-api/model/valueSetDefinitionKind.mjs +1 -1
  353. package/esm2022/lib/view-context/value-api/model/valueSetExpression.mjs +1 -1
  354. package/esm2022/lib/view-context/value-api/model/valueSetOperand.mjs +1 -1
  355. package/esm2022/lib/view-context/value-api/model/valueSetOperation.mjs +1 -1
  356. package/esm2022/lib/view-context/value-api/param.mjs +1 -1
  357. package/esm2022/lib/view-context/value-api/variables.mjs +1 -1
  358. package/esm2022/projects.mjs +1 -1
  359. package/fesm2022/smartbit4all-ng-client.mjs +132 -131
  360. package/fesm2022/smartbit4all-ng-client.mjs.map +1 -1
  361. package/lib/smart-tree/smarttree.model.d.ts +1 -0
  362. package/package.json +1 -1
  363. package/smartbit4all-ng-client-4.3.22.tgz +0 -0
  364. package/smartbit4all-ng-client-4.3.20.tgz +0 -0
@@ -164,11 +164,11 @@ export class UiActionButtonComponent {
164
164
  return SmartStyleUtility.getNgStyles(style);
165
165
  }
166
166
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionButtonComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
167
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionButtonComponent, selector: "ui-action-button", inputs: { disabled: "disabled", descriptor: "descriptor", code: "code", addedCssClass: "addedCssClass", addBasicClasses: "addBasicClasses" }, outputs: { actionClick: "actionClick", actionDoubleClick: "actionDoubleClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\n\n<ng-template #buttonWithBadge>\n @if (descriptor && descriptor.badge) {\n <ui-badge [descriptor]=\"descriptor.badge\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n </ui-badge>\n } @else {\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #buttonTemplate>\n @if(compLib === componentLibrary.PRIMENG) {\n <button\n pButton\n pRipple\n [smartTooltip]=\"descriptor.tooltip\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [autofocus]=\"false\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n } @else {\n <button\n mat-button\n [smartTooltip]=\"descriptor.tooltip\"\n [color]=\"descriptor.color\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n }\n</ng-template>\n\n<ng-template #text>\n @if(descriptor.iconPosition === iconPosition().PRE){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n {{ descriptor.title }}\n @if(descriptor.iconPosition === iconPosition().POST){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n</ng-template>\n\n<ng-template #buttonIcon>\n @if(descriptor.iconResource){\n <smart-icon [imageResource]=\"descriptor.iconResource\"></smart-icon>\n }@else {\n <smart-icon\n [icon]=\"descriptor.icon\"\n [color]=\"descriptor.iconColor ?? descriptor.color\"\n ></smart-icon>\n }\n</ng-template>\n", styles: [":host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiBadgeComponent, selector: "ui-badge", inputs: ["descriptor", "inputValue"] }, { kind: "directive", type: i6.SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }] }); }
167
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionButtonComponent, selector: "ui-action-button", inputs: { disabled: "disabled", descriptor: "descriptor", code: "code", addedCssClass: "addedCssClass", addBasicClasses: "addBasicClasses" }, outputs: { actionClick: "actionClick", actionDoubleClick: "actionDoubleClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\r\n\r\n<ng-template #buttonWithBadge>\r\n @if (descriptor && descriptor.badge) {\r\n <ui-badge [descriptor]=\"descriptor.badge\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </ui-badge>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonTemplate>\r\n @if(compLib === componentLibrary.PRIMENG) {\r\n <button\r\n pButton\r\n pRipple\r\n [smartTooltip]=\"descriptor.tooltip\"\r\n [disabled]=\"!!disabled\"\r\n (click)=\"onActionClicked($event, mainActionModel)\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [autofocus]=\"false\"\r\n [ngStyle]=\"calcStyle(descriptor.style)\"\r\n [ngClass]=\"getType()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n } @else {\r\n <button\r\n mat-button\r\n [smartTooltip]=\"descriptor.tooltip\"\r\n [color]=\"descriptor.color\"\r\n [disabled]=\"!!disabled\"\r\n (click)=\"onActionClicked($event, mainActionModel)\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [ngStyle]=\"calcStyle(descriptor.style)\"\r\n [ngClass]=\"getType()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #text>\r\n @if(descriptor.iconPosition === iconPosition().PRE){\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n {{ descriptor.title }}\r\n @if(descriptor.iconPosition === iconPosition().POST){\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonIcon>\r\n @if(descriptor.iconResource){\r\n <smart-icon [imageResource]=\"descriptor.iconResource\"></smart-icon>\r\n }@else {\r\n <smart-icon\r\n [icon]=\"descriptor.icon\"\r\n [color]=\"descriptor.iconColor ?? descriptor.color\"\r\n ></smart-icon>\r\n }\r\n</ng-template>\r\n", styles: [":host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i3.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading", "severity", "raised", "rounded", "text", "outlined", "size", "plain"] }, { kind: "component", type: i4.SmartIconComponent, selector: "smart-icon", inputs: ["icon", "color", "imageResource"] }, { kind: "component", type: i5.UiBadgeComponent, selector: "ui-badge", inputs: ["descriptor", "inputValue"] }, { kind: "directive", type: i6.SmartTooltipDirective, selector: "[smartTooltip]", inputs: ["smartTooltip"] }] }); }
168
168
  }
169
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionButtonComponent, decorators: [{
170
170
  type: Component,
171
- args: [{ selector: 'ui-action-button', template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\n\n<ng-template #buttonWithBadge>\n @if (descriptor && descriptor.badge) {\n <ui-badge [descriptor]=\"descriptor.badge\">\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n </ui-badge>\n } @else {\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\n }\n</ng-template>\n\n<ng-template #buttonTemplate>\n @if(compLib === componentLibrary.PRIMENG) {\n <button\n pButton\n pRipple\n [smartTooltip]=\"descriptor.tooltip\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [autofocus]=\"false\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n } @else {\n <button\n mat-button\n [smartTooltip]=\"descriptor.tooltip\"\n [color]=\"descriptor.color\"\n [disabled]=\"!!disabled\"\n (click)=\"onActionClicked($event, mainActionModel)\"\n (dblclick)=\"onActionDoubleClicked($event)\"\n [ngStyle]=\"calcStyle(descriptor.style)\"\n [ngClass]=\"getType()\"\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\n type=\"button\"\n [attr.data-testid]=\"code ?? null\"\n >\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\n </button>\n }\n</ng-template>\n\n<ng-template #text>\n @if(descriptor.iconPosition === iconPosition().PRE){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n {{ descriptor.title }}\n @if(descriptor.iconPosition === iconPosition().POST){\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\n }\n</ng-template>\n\n<ng-template #buttonIcon>\n @if(descriptor.iconResource){\n <smart-icon [imageResource]=\"descriptor.iconResource\"></smart-icon>\n }@else {\n <smart-icon\n [icon]=\"descriptor.icon\"\n [color]=\"descriptor.iconColor ?? descriptor.color\"\n ></smart-icon>\n }\n</ng-template>\n", styles: [":host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}\n"] }]
171
+ args: [{ selector: 'ui-action-button', template: "<ng-container *ngTemplateOutlet=\"buttonWithBadge\"></ng-container>\r\n\r\n<ng-template #buttonWithBadge>\r\n @if (descriptor && descriptor.badge) {\r\n <ui-badge [descriptor]=\"descriptor.badge\">\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n </ui-badge>\r\n } @else {\r\n <ng-container *ngTemplateOutlet=\"buttonTemplate\"></ng-container>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonTemplate>\r\n @if(compLib === componentLibrary.PRIMENG) {\r\n <button\r\n pButton\r\n pRipple\r\n [smartTooltip]=\"descriptor.tooltip\"\r\n [disabled]=\"!!disabled\"\r\n (click)=\"onActionClicked($event, mainActionModel)\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [autofocus]=\"false\"\r\n [ngStyle]=\"calcStyle(descriptor.style)\"\r\n [ngClass]=\"getType()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n } @else {\r\n <button\r\n mat-button\r\n [smartTooltip]=\"descriptor.tooltip\"\r\n [color]=\"descriptor.color\"\r\n [disabled]=\"!!disabled\"\r\n (click)=\"onActionClicked($event, mainActionModel)\"\r\n (dblclick)=\"onActionDoubleClicked($event)\"\r\n [ngStyle]=\"calcStyle(descriptor.style)\"\r\n [ngClass]=\"getType()\"\r\n class=\"{{ getbtnClass() }} {{ addedCssClass }}\"\r\n type=\"button\"\r\n [attr.data-testid]=\"code ?? null\"\r\n >\r\n <div *ngIf=\"isOnlyIcon(); then buttonIcon; else text\"></div>\r\n </button>\r\n }\r\n</ng-template>\r\n\r\n<ng-template #text>\r\n @if(descriptor.iconPosition === iconPosition().PRE){\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n {{ descriptor.title }}\r\n @if(descriptor.iconPosition === iconPosition().POST){\r\n <ng-container *ngTemplateOutlet=\"buttonIcon\" />\r\n }\r\n</ng-template>\r\n\r\n<ng-template #buttonIcon>\r\n @if(descriptor.iconResource){\r\n <smart-icon [imageResource]=\"descriptor.iconResource\"></smart-icon>\r\n }@else {\r\n <smart-icon\r\n [icon]=\"descriptor.icon\"\r\n [color]=\"descriptor.iconColor ?? descriptor.color\"\r\n ></smart-icon>\r\n }\r\n</ng-template>\r\n", styles: [":host ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center;line-height:1;padding:.75rem 1rem}:host{height:fit-content;width:fit-content;padding:unset;margin:unset}:host ::ng-deep .mdc-button__label{display:flex;flex-direction:row;gap:1rem;align-items:center;justify-content:center}:host ::ng-deep .mdc-button{height:fit-content;min-height:var(--mdc-text-button-container-height)}:host ::ng-deep .mat-mdc-icon-button ::ng-deep img{width:unset;height:unset}\n"] }]
172
172
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i7.ComponentLibrary, decorators: [{
173
173
  type: Inject,
174
174
  args: [COMPONENT_LIBRARY]
@@ -189,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
189
189
  }], actionDoubleClick: [{
190
190
  type: Output
191
191
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQU90RSxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQyxZQUNTLGNBQWlDLEVBQ0QsT0FBMEI7UUFEMUQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBNUJsQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNeEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFLcEMsQ0FBQztRQUNLLHNCQUFpQixHQUFHLElB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O2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlBY3Rpb25Nb2RlbCB9IGZyb20gJy4uL3VpLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uLy4uL3V0aWxpdHkvY29tcG9uZW50TGlicmFyeSc7XG5pbXBvcnQgeyBVaUFjdGlvbkJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9hcGkvbW9kZWwvdWlBY3Rpb25CdXR0b25UeXBlJztcbmltcG9ydCB7IEljb25Qb3NpdGlvbiB9IGZyb20gJy4uLy4uL2FwaS9tb2RlbC9pY29uUG9zaXRpb24nO1xuaW1wb3J0IHsgU3R5bGUsIFVpQWN0aW9uLCBVaUFjdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi8uLi9hcGknO1xuaW1wb3J0IHsgU21hcnRTdHlsZVV0aWxpdHkgfSBmcm9tICcuLi8uLi91dGlsaXR5L3NtYXJ0LXN0eWxlLXV0aWxpdHknO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd1aS1hY3Rpb24tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlc2NyaXB0b3IhOiBVaUFjdGlvbkRlc2NyaXB0b3I7XG4gIEBJbnB1dCgpIGNvZGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFkZGVkQ3NzQ2xhc3M/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGFkZEJhc2ljQ2xhc3NlczogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7XG4gICAgZXZlbnQ6IE1vdXNlRXZlbnQ7XG4gICAgZGVzY3JpcHRvcj86IFVpQWN0aW9uRGVzY3JpcHRvcjtcbiAgICBjb2RlPzogc3RyaW5nO1xuICAgIHVpQWN0aW9uPzogVWlBY3Rpb247XG4gIH0+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xuICAgIGV2ZW50OiBhbnk7XG4gICAgZGVzY3JpcHRvcj86IFVpQWN0aW9uRGVzY3JpcHRvcjtcbiAgICBjb2RlPzogc3RyaW5nO1xuICB9PigpO1xuXG4gIGNvbXBvbmVudExpYnJhcnkgPSBDb21wb25lbnRMaWJyYXJ5O1xuICBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5O1xuICBtYWluQWN0aW9uTW9kZWwhOiBVaUFjdGlvbk1vZGVsO1xuXG4gIHByZXNzZWRCdXR0b25BY3RpdmU6IGJvb2xlYW4gPSB0cnVlO1xuICBtZW51T3BlbmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBAT3B0aW9uYWwoKSBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxuICApIHtcbiAgICB0aGlzLmNvbXBMaWIgPSBjb21wTGliID8/IENvbXBvbmVudExpYnJhcnkuUFJJTUVORztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kZXNjcmlwdG9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdVaUFjdGlvbkJ1dHRvbkNvbXBvbmVudDogXCJkZXNjcmlwdG9yXCIgaW5wdXQgaXMgcmVxdWlyZWQgYnV0IHdhcyBub3QgcHJvdmlkZWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2Rlc2NyaXB0b3InXSAmJiB0aGlzLmRlc2NyaXB0b3IpIHtcbiAgICAgIHRoaXMubWFpbkFjdGlvbk1vZGVsID0ge1xuICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IsXG4gICAgICAgIHVpQWN0aW9uOiB7XG4gICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5kZXNjcmlwdG9yLFxuICAgICAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCA/PyBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0gYXMgVWlBY3Rpb25Nb2RlbDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFzeW5jIG9uQWN0aW9uQ2xpY2tlZChldmVudDogTW91c2VFdmVudCwgbW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xuICAgICAgZXZlbnQsXG4gICAgICBjb2RlOiBtb2RlbC51aUFjdGlvbi5jb2RlLFxuICAgICAgZGVzY3JpcHRvcjogbW9kZWwuZGVzY3JpcHRvciEsXG4gICAgfSk7XG4gIH1cblxuICBvbkFjdGlvbkRvdWJsZUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWN0aW9uRG91YmxlQ2xpY2suZW1pdCh7XG4gICAgICBldmVudCxcbiAgICAgIGNvZGU6IHRoaXMuY29kZSxcbiAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcbiAgICB9KTtcbiAgfVxuXG4gIGljb25Qb3NpdGlvbigpOiB0eXBlb2YgSWNvblBvc2l0aW9uIHtcbiAgICByZXR1cm4gSWNvblBvc2l0aW9uO1xuICB9XG5cbiAgaXNPbmx5SWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTiB8fFxuICAgICAgdGhpcy5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUIgfHxcbiAgICAgIHRoaXMuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLkZBQlxuICAgICk7XG4gIH1cblxuICBnZXRidG5DbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5hZGRCYXNpY0NsYXNzZXMpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmNvbG9yKSB7XG4gICAgICByZXR1cm4gJ3AtYnV0dG9uLScgKyB0aGlzLmRlc2NyaXB0b3I/LmNvbG9yICsgJyBzYjQtJyArIHRoaXMuZGVzY3JpcHRvcj8uY29sb3I7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFR5cGUoKTogYW55IHtcbiAgICBpZiAoIXRoaXMuYWRkQmFzaWNDbGFzc2VzKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuZGVzY3JpcHRvci50eXBlKSB7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3NiNC1ub3JtYWwnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtZmxhdCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdzYjQtc3Ryb2tlZCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgIH07XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LW1pbmlmYWInOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkFCOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LWZhYic6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAnc2I0LWljb24nOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJ3NiNC1iYXNpYyc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAgICAgICAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXG4gICAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgc3dpdGNoICh0aGlzLmRlc2NyaXB0b3IudHlwZSkge1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWJ1dHRvbiBzYjQtbm9ybWFsJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmxhdC1idXR0b24gc2I0LWZsYXQnO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQ6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXJhaXNlZC1idXR0b24gc2I0LXJhaXNlZCc7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXN0cm9rZWQtYnV0dG9uIHNiNC1zdHJva2VkJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtaWNvbi1idXR0b24gc2I0LWljb24nO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtbWluaS1mYWIgc2I0LW1pbmlmYWInO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GQUI6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWZhYiBzYjQtZmFiJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b24gc2I0LWJhc2ljYDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjYWxjU3R5bGUoc3R5bGU/OiBTdHlsZSk6IGFueSB7XG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHN0eWxlKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbldpdGhCYWRnZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbldpdGhCYWRnZT5cbiAgQGlmIChkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuYmFkZ2UpIHtcbiAgPHVpLWJhZGdlIFtkZXNjcmlwdG9yXT1cImRlc2NyaXB0b3IuYmFkZ2VcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC91aS1iYWRnZT5cbiAgfSBAZWxzZSB7XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJidXR0b25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlPlxuICBAaWYoY29tcExpYiA9PT0gY29tcG9uZW50TGlicmFyeS5QUklNRU5HKSB7XG4gIDxidXR0b25cbiAgICBwQnV0dG9uXG4gICAgcFJpcHBsZVxuICAgIFtzbWFydFRvb2x0aXBdPVwiZGVzY3JpcHRvci50b29sdGlwXCJcbiAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXG4gICAgKGNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIG1haW5BY3Rpb25Nb2RlbClcIlxuICAgIChkYmxjbGljayk9XCJvbkFjdGlvbkRvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXG4gICAgW2F1dG9mb2N1c109XCJmYWxzZVwiXG4gICAgW25nU3R5bGVdPVwiY2FsY1N0eWxlKGRlc2NyaXB0b3Iuc3R5bGUpXCJcbiAgICBbbmdDbGFzc109XCJnZXRUeXBlKClcIlxuICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzIH19XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBbYXR0ci5kYXRhLXRlc3RpZF09XCJjb2RlID8/IG51bGxcIlxuICA+XG4gICAgPGRpdiAqbmdJZj1cImlzT25seUljb24oKTsgdGhlbiBidXR0b25JY29uOyBlbHNlIHRleHRcIj48L2Rpdj5cbiAgPC9idXR0b24+XG4gIH0gQGVsc2Uge1xuICA8YnV0dG9uXG4gICAgbWF0LWJ1dHRvblxuICAgIFtzbWFydFRvb2x0aXBdPVwiZGVzY3JpcHRvci50b29sdGlwXCJcbiAgICBbY29sb3JdPVwiZGVzY3JpcHRvci5jb2xvclwiXG4gICAgW2Rpc2FibGVkXT1cIiEhZGlzYWJsZWRcIlxuICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCBtYWluQWN0aW9uTW9kZWwpXCJcbiAgICAoZGJsY2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudClcIlxuICAgIFtuZ1N0eWxlXT1cImNhbGNTdHlsZShkZXNjcmlwdG9yLnN0eWxlKVwiXG4gICAgW25nQ2xhc3NdPVwiZ2V0VHlwZSgpXCJcbiAgICBjbGFzcz1cInt7IGdldGJ0bkNsYXNzKCkgfX0ge3sgYWRkZWRDc3NDbGFzcyB9fVwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiY29kZSA/PyBudWxsXCJcbiAgPlxuICAgIDxkaXYgKm5nSWY9XCJpc09ubHlJY29uKCk7IHRoZW4gYnV0dG9uSWNvbjsgZWxzZSB0ZXh0XCI+PC9kaXY+XG4gIDwvYnV0dG9uPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3RleHQ+XG4gIEBpZihkZXNjcmlwdG9yLmljb25Qb3NpdGlvbiA9PT0gaWNvblBvc2l0aW9uKCkuUFJFKXtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxuICB9XG4gIHt7IGRlc2NyaXB0b3IudGl0bGUgfX1cbiAgQGlmKGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5QT1NUKXtcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxuICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2J1dHRvbkljb24+XG4gIEBpZihkZXNjcmlwdG9yLmljb25SZXNvdXJjZSl7XG4gIDxzbWFydC1pY29uIFtpbWFnZVJlc291cmNlXT1cImRlc2NyaXB0b3IuaWNvblJlc291cmNlXCI+PC9zbWFydC1pY29uPlxuICB9QGVsc2Uge1xuICA8c21hcnQtaWNvblxuICAgIFtpY29uXT1cImRlc2NyaXB0b3IuaWNvblwiXG4gICAgW2NvbG9yXT1cImRlc2NyaXB0b3IuaWNvbkNvbG9yID8/IGRlc2NyaXB0b3IuY29sb3JcIlxuICA+PC9zbWFydC1pY29uPlxuICB9XG48L25nLXRlbXBsYXRlPlxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi1idXR0b24vdWktYWN0aW9uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUVULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEdBR1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNyRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFNUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7OztBQU90RSxNQUFNLE9BQU8sdUJBQXVCO0lBNEJsQyxZQUNTLGNBQWlDLEVBQ0QsT0FBMEI7UUFEMUQsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBNUJsQyxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFNeEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFL0IsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFLcEMsQ0FBQztRQUNLLHNCQUFpQixHQUFHLElB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O2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFNRyxpQkFBaUI7c0JBQTFCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuLi91aS1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENPTVBPTkVOVF9MSUJSQVJZLCBDb21wb25lbnRMaWJyYXJ5IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9jb21wb25lbnRMaWJyYXJ5JztcclxuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vYXBpL21vZGVsL3VpQWN0aW9uQnV0dG9uVHlwZSc7XHJcbmltcG9ydCB7IEljb25Qb3NpdGlvbiB9IGZyb20gJy4uLy4uL2FwaS9tb2RlbC9pY29uUG9zaXRpb24nO1xyXG5pbXBvcnQgeyBTdHlsZSwgVWlBY3Rpb24sIFVpQWN0aW9uRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2FwaSc7XHJcbmltcG9ydCB7IFNtYXJ0U3R5bGVVdGlsaXR5IH0gZnJvbSAnLi4vLi4vdXRpbGl0eS9zbWFydC1zdHlsZS11dGlsaXR5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndWktYWN0aW9uLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3VpLWFjdGlvbi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91aS1hY3Rpb24tYnV0dG9uLmNvbXBvbmVudC5jc3MnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25CdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgQElucHV0KCkgZGVzY3JpcHRvciE6IFVpQWN0aW9uRGVzY3JpcHRvcjtcclxuICBASW5wdXQoKSBjb2RlPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFkZGVkQ3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgYWRkQmFzaWNDbGFzc2VzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx7XHJcbiAgICBldmVudDogTW91c2VFdmVudDtcclxuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gICAgdWlBY3Rpb24/OiBVaUFjdGlvbjtcclxuICB9PigpO1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25Eb3VibGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgZXZlbnQ6IGFueTtcclxuICAgIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgICBjb2RlPzogc3RyaW5nO1xyXG4gIH0+KCk7XHJcblxyXG4gIGNvbXBvbmVudExpYnJhcnkgPSBDb21wb25lbnRMaWJyYXJ5O1xyXG4gIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnk7XHJcbiAgbWFpbkFjdGlvbk1vZGVsITogVWlBY3Rpb25Nb2RlbDtcclxuXHJcbiAgcHJlc3NlZEJ1dHRvbkFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgbWVudU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBASW5qZWN0KENPTVBPTkVOVF9MSUJSQVJZKSBAT3B0aW9uYWwoKSBjb21wTGliPzogQ29tcG9uZW50TGlicmFyeVxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wTGliID0gY29tcExpYiA/PyBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkc7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kZXNjcmlwdG9yKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAnVWlBY3Rpb25CdXR0b25Db21wb25lbnQ6IFwiZGVzY3JpcHRvclwiIGlucHV0IGlzIHJlcXVpcmVkIGJ1dCB3YXMgbm90IHByb3ZpZGVkLidcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydkZXNjcmlwdG9yJ10gJiYgdGhpcy5kZXNjcmlwdG9yKSB7XHJcbiAgICAgIHRoaXMubWFpbkFjdGlvbk1vZGVsID0ge1xyXG4gICAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcclxuICAgICAgICB1aUFjdGlvbjoge1xyXG4gICAgICAgICAgZGVzY3JpcHRvcjogdGhpcy5kZXNjcmlwdG9yLFxyXG4gICAgICAgICAgY29kZTogdGhpcy5jb2RlLFxyXG4gICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQgPz8gZmFsc2UsXHJcbiAgICAgICAgfSxcclxuICAgICAgfSBhcyBVaUFjdGlvbk1vZGVsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgb25BY3Rpb25DbGlja2VkKGV2ZW50OiBNb3VzZUV2ZW50LCBtb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xyXG4gICAgICBldmVudCxcclxuICAgICAgY29kZTogbW9kZWwudWlBY3Rpb24uY29kZSxcclxuICAgICAgZGVzY3JpcHRvcjogbW9kZWwuZGVzY3JpcHRvciEsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uQWN0aW9uRG91YmxlQ2xpY2tlZChldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgIHRoaXMuYWN0aW9uRG91YmxlQ2xpY2suZW1pdCh7XHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICBjb2RlOiB0aGlzLmNvZGUsXHJcbiAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgaWNvblBvc2l0aW9uKCk6IHR5cGVvZiBJY29uUG9zaXRpb24ge1xyXG4gICAgcmV0dXJuIEljb25Qb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIGlzT25seUljb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OIHx8XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCIHx8XHJcbiAgICAgIHRoaXMuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLkZBQlxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldGJ0bkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuYWRkQmFzaWNDbGFzc2VzKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmNvbG9yKSB7XHJcbiAgICAgIHJldHVybiAncC1idXR0b24tJyArIHRoaXMuZGVzY3JpcHRvcj8uY29sb3IgKyAnIHNiNC0nICsgdGhpcy5kZXNjcmlwdG9yPy5jb2xvcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldFR5cGUoKTogYW55IHtcclxuICAgIGlmICghdGhpcy5hZGRCYXNpY0NsYXNzZXMpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORykge1xyXG4gICAgICBzd2l0Y2ggKHRoaXMuZGVzY3JpcHRvci50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1ub3JtYWwnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkxBVDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtZmxhdCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtcmFpc2VkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtc3Ryb2tlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUI6XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAnc2I0LW1pbmlmYWInOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZBQjpcclxuICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICdzYjQtZmFiJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1pY29uJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3NiNC1iYXNpYyc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLW91dGxpbmVkJzogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHN3aXRjaCAodGhpcy5kZXNjcmlwdG9yLnR5cGUpIHtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtYnV0dG9uIHNiNC1ub3JtYWwnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmxhdC1idXR0b24gc2I0LWZsYXQnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uIHNiNC1yYWlzZWQnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtc3Ryb2tlZC1idXR0b24gc2I0LXN0cm9rZWQnO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLklDT046XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtaWNvbi1idXR0b24gc2I0LWljb24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLW1pbmktZmFiIHNiNC1taW5pZmFiJztcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GQUI6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmFiIHNiNC1mYWInO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b24gc2I0LWJhc2ljYDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2FsY1N0eWxlKHN0eWxlPzogU3R5bGUpOiBhbnkge1xyXG4gICAgcmV0dXJuIFNtYXJ0U3R5bGVVdGlsaXR5LmdldE5nU3R5bGVzKHN0eWxlKTtcclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbldpdGhCYWRnZVwiPjwvbmctY29udGFpbmVyPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25XaXRoQmFkZ2U+XHJcbiAgQGlmIChkZXNjcmlwdG9yICYmIGRlc2NyaXB0b3IuYmFkZ2UpIHtcclxuICA8dWktYmFkZ2UgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5iYWRnZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvblRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC91aS1iYWRnZT5cclxuICB9IEBlbHNlIHtcclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI2J1dHRvblRlbXBsYXRlPlxyXG4gIEBpZihjb21wTGliID09PSBjb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuICA8YnV0dG9uXHJcbiAgICBwQnV0dG9uXHJcbiAgICBwUmlwcGxlXHJcbiAgICBbc21hcnRUb29sdGlwXT1cImRlc2NyaXB0b3IudG9vbHRpcFwiXHJcbiAgICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXHJcbiAgICAoY2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgbWFpbkFjdGlvbk1vZGVsKVwiXHJcbiAgICAoZGJsY2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudClcIlxyXG4gICAgW2F1dG9mb2N1c109XCJmYWxzZVwiXHJcbiAgICBbbmdTdHlsZV09XCJjYWxjU3R5bGUoZGVzY3JpcHRvci5zdHlsZSlcIlxyXG4gICAgW25nQ2xhc3NdPVwiZ2V0VHlwZSgpXCJcclxuICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzIH19XCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiY29kZSA/PyBudWxsXCJcclxuICA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNPbmx5SWNvbigpOyB0aGVuIGJ1dHRvbkljb247IGVsc2UgdGV4dFwiPjwvZGl2PlxyXG4gIDwvYnV0dG9uPlxyXG4gIH0gQGVsc2Uge1xyXG4gIDxidXR0b25cclxuICAgIG1hdC1idXR0b25cclxuICAgIFtzbWFydFRvb2x0aXBdPVwiZGVzY3JpcHRvci50b29sdGlwXCJcclxuICAgIFtjb2xvcl09XCJkZXNjcmlwdG9yLmNvbG9yXCJcclxuICAgIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcclxuICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrZWQoJGV2ZW50LCBtYWluQWN0aW9uTW9kZWwpXCJcclxuICAgIChkYmxjbGljayk9XCJvbkFjdGlvbkRvdWJsZUNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICBbbmdTdHlsZV09XCJjYWxjU3R5bGUoZGVzY3JpcHRvci5zdHlsZSlcIlxyXG4gICAgW25nQ2xhc3NdPVwiZ2V0VHlwZSgpXCJcclxuICAgIGNsYXNzPVwie3sgZ2V0YnRuQ2xhc3MoKSB9fSB7eyBhZGRlZENzc0NsYXNzIH19XCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgW2F0dHIuZGF0YS10ZXN0aWRdPVwiY29kZSA/PyBudWxsXCJcclxuICA+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiaXNPbmx5SWNvbigpOyB0aGVuIGJ1dHRvbkljb247IGVsc2UgdGV4dFwiPjwvZGl2PlxyXG4gIDwvYnV0dG9uPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGV4dD5cclxuICBAaWYoZGVzY3JpcHRvci5pY29uUG9zaXRpb24gPT09IGljb25Qb3NpdGlvbigpLlBSRSl7XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJ1dHRvbkljb25cIiAvPlxyXG4gIH1cclxuICB7eyBkZXNjcmlwdG9yLnRpdGxlIH19XHJcbiAgQGlmKGRlc2NyaXB0b3IuaWNvblBvc2l0aW9uID09PSBpY29uUG9zaXRpb24oKS5QT1NUKXtcclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYnV0dG9uSWNvblwiIC8+XHJcbiAgfVxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25JY29uPlxyXG4gIEBpZihkZXNjcmlwdG9yLmljb25SZXNvdXJjZSl7XHJcbiAgPHNtYXJ0LWljb24gW2ltYWdlUmVzb3VyY2VdPVwiZGVzY3JpcHRvci5pY29uUmVzb3VyY2VcIj48L3NtYXJ0LWljb24+XHJcbiAgfUBlbHNlIHtcclxuICA8c21hcnQtaWNvblxyXG4gICAgW2ljb25dPVwiZGVzY3JpcHRvci5pY29uXCJcclxuICAgIFtjb2xvcl09XCJkZXNjcmlwdG9yLmljb25Db2xvciA/PyBkZXNjcmlwdG9yLmNvbG9yXCJcclxuICA+PC9zbWFydC1pY29uPlxyXG4gIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -289,11 +289,11 @@ export class UiActionToolbarComponent {
289
289
  return this.toolbarPropertes?.direction === ToolbarDirection.VERTICAL;
290
290
  }
291
291
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionToolbarComponent, deps: [{ token: i1.UiActionService }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: COMPONENT_LIBRARY }], target: i0.ɵɵFactoryTarget.Component }); }
292
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: { uiActionModels: "uiActionModels", uiActionDescriptorService: "uiActionDescriptorService", id: "id", scrollOnWrap: "scrollOnWrap", toolbarPropertes: "toolbarPropertes" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ui-tiered-menu\n #menu\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i4.MenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu"], outputs: ["actionClick", "submenuOpened"] }] }); }
292
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: UiActionToolbarComponent, selector: "smart-ui-action-toolbar", inputs: { uiActionModels: "uiActionModels", uiActionDescriptorService: "uiActionDescriptorService", id: "id", scrollOnWrap: "scrollOnWrap", toolbarPropertes: "toolbarPropertes" }, host: { listeners: { "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonLeft\"\r\n (actionClick)=\"scrollLeft()\"\r\n (mousedown)=\"scrollStart('left')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('left')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n\r\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\r\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\r\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\r\n <ui-tiered-menu\r\n #menu\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-tiered-menu>\r\n } @else {\r\n <ui-action-button\r\n [descriptor]=\"uiActionModel.descriptor!\"\r\n [code]=\"uiActionModel.uiAction.code\"\r\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\r\n [addedCssClass]=\"uiActionModel.cssClass\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\r\n >\r\n </ui-action-button>\r\n }\r\n </ng-container>\r\n</div>\r\n\r\n@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonRight\"\r\n (actionClick)=\"scrollRight()\"\r\n (mousedown)=\"scrollStart('right')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('right')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.UiActionButtonComponent, selector: "ui-action-button", inputs: ["disabled", "descriptor", "code", "addedCssClass", "addBasicClasses"], outputs: ["actionClick", "actionDoubleClick"] }, { kind: "component", type: i4.MenuComponent, selector: "ui-tiered-menu", inputs: ["triggerAction", "isSubmenu"], outputs: ["actionClick", "submenuOpened"] }] }); }
293
293
  }
294
294
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: UiActionToolbarComponent, decorators: [{
295
295
  type: Component,
296
- args: [{ selector: 'smart-ui-action-toolbar', template: "@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonLeft\"\n (actionClick)=\"scrollLeft()\"\n (mousedown)=\"scrollStart('left')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('left')\"\n (touchend)=\"stopScroll()\"\n />\n}\n\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\n <ui-tiered-menu\n #menu\n [triggerAction]=\"uiActionModel.uiAction\"\n [subActions]=\"uiActionModel.uiAction.subActions!\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n ></ui-tiered-menu>\n } @else {\n <ui-action-button\n [descriptor]=\"uiActionModel.descriptor!\"\n [code]=\"uiActionModel.uiAction.code\"\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\n [addedCssClass]=\"uiActionModel.cssClass\"\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\n >\n </ui-action-button>\n }\n </ng-container>\n</div>\n\n@if (isScrollable && scrollOnWrap) {\n <ui-action-button\n [disabled]=\"!isScrollable\"\n [descriptor]=\"buttonRight\"\n (actionClick)=\"scrollRight()\"\n (mousedown)=\"scrollStart('right')\"\n (mouseup)=\"stopScroll()\"\n (mouseleave)=\"stopScroll()\"\n (touchstart)=\"scrollStart('right')\"\n (touchend)=\"stopScroll()\"\n />\n}\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"] }]
296
+ args: [{ selector: 'smart-ui-action-toolbar', template: "@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonLeft\"\r\n (actionClick)=\"scrollLeft()\"\r\n (mousedown)=\"scrollStart('left')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('left')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n\r\n<div #container class=\"uiActionButtonsContainer\" [ngClass]=\"{ scrollableContent: scrollOnWrap }\">\r\n <ng-container *ngFor=\"let uiActionModel of uiActionModelsWithDescriptions; trackBy: trackByFn\">\r\n @if (uiActionModel.uiAction.subActions && uiActionModel.uiAction.subActions.length > 0) {\r\n <ui-tiered-menu\r\n #menu\r\n [triggerAction]=\"uiActionModel.uiAction\"\r\n [subActions]=\"uiActionModel.uiAction.subActions!\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n ></ui-tiered-menu>\r\n } @else {\r\n <ui-action-button\r\n [descriptor]=\"uiActionModel.descriptor!\"\r\n [code]=\"uiActionModel.uiAction.code\"\r\n [disabled]=\"!!uiActionModel.uiAction.disabled\"\r\n [addedCssClass]=\"uiActionModel.cssClass\"\r\n (actionClick)=\"onActionClicked($event, uiActionModel)\"\r\n (actionDoubleClick)=\"onActionDoubleClicked($event, uiActionModel)\"\r\n >\r\n </ui-action-button>\r\n }\r\n </ng-container>\r\n</div>\r\n\r\n@if (isScrollable && scrollOnWrap) {\r\n <ui-action-button\r\n [disabled]=\"!isScrollable\"\r\n [descriptor]=\"buttonRight\"\r\n (actionClick)=\"scrollRight()\"\r\n (mousedown)=\"scrollStart('right')\"\r\n (mouseup)=\"stopScroll()\"\r\n (mouseleave)=\"stopScroll()\"\r\n (touchstart)=\"scrollStart('right')\"\r\n (touchend)=\"stopScroll()\"\r\n />\r\n}\r\n", styles: [":host:has(.uiActionButtonsContainer.scrollableContent){display:flex;flex-direction:row;justify-content:space-between;gap:.5rem;width:100%;align-items:center}.uiActionButtonsContainer{display:flex;flex-direction:row;gap:1rem;flex-wrap:wrap}.uiActionButtonsContainer ::ng-deep button{display:flex;gap:1rem;align-items:center;justify-content:center}.uiActionButtonsContainer ::ng-deep .buttonWrapper{position:relative;width:fit-content;height:fit-content}.scrollableContent{flex:1;flex-wrap:nowrap;overflow-x:auto;overflow-y:visible;display:flex;scrollbar-width:none;padding:.5rem 0;align-items:center}.scrollableContent::-webkit-scrollbar{display:none!important}.verticalToolbar{display:flex;flex-direction:column}.verticalToolbar ::ng-deep ui-action-button,.verticalToolbar ::ng-deep button{width:100%;justify-content:flex-start}\n"] }]
297
297
  }], ctorParameters: () => [{ type: i1.UiActionService }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i5.ComponentLibrary, decorators: [{
298
298
  type: Inject,
299
299
  args: [COMPONENT_LIBRARY]
@@ -314,4 +314,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
314
314
  type: HostListener,
315
315
  args: ['window:resize']
316
316
  }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBS0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksR0FJYixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFPdkYsTUFBTSxPQUFPLHdCQUF3QjtJQThCbkMsWUFDVSxPQUF3QixFQUN4QixNQUFnQixFQUNqQixjQUFpQyxFQUNOLE9BQXlCO1FBSG5ELFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ04sWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUEv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Z0I7c0JBQXhCLEtBQUs7Z0JBa0R5QixRQUFRO3NCQUF0QyxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEljb25Qb3NpdGlvbixcbiAgVWlBY3Rpb24sXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcbiAgVWlBY3Rpb25Ub29sdGlwVG9vbHRpcFBvc2l0aW9uRW51bSxcbn0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IFVpQWN0aW9uQnV0dG9uVHlwZSB9IGZyb20gJy4uL2FwaS9tb2RlbC91aUFjdGlvbkJ1dHRvblR5cGUnO1xuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSB9IGZyb20gJy4vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBVaUFjdGlvbk1vZGVsIH0gZnJvbSAnLi91aS1hY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgVWlBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi91aS1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDT01QT05FTlRfTElCUkFSWSwgQ29tcG9uZW50TGlicmFyeSB9IGZyb20gJy4uL3V0aWxpdHkvY29tcG9uZW50TGlicmFyeSc7XG5pbXBvcnQgeyBUb29sYmFyRGlyZWN0aW9uLCBUb29sYmFyUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQvYXBpJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLXRvb2xiYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFVpQWN0aW9uVG9vbGJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29udGFpbmVyUmVmITogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7IC8vIEV4cG9zZSB0aGUgZW51bSB0byB0aGUgdGVtcGxhdGVcblxuICBwcmVzc2VkQnV0dG9uQWN0aXZlOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKSB1aUFjdGlvbk1vZGVscz86IFVpQWN0aW9uTW9kZWxbXTtcbiAgQElucHV0KCkgdWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZT86IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U7XG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xuICBASW5wdXQoKSBzY3JvbGxPbldyYXA6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdG9vbGJhclByb3BlcnRlcz86IFRvb2xiYXJQcm9wZXJ0aWVzO1xuXG4gIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucz86IFVpQWN0aW9uTW9kZWxbXTtcblxuICBwcml2YXRlIG1hbmFnZXIhOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xuICBwcml2YXRlIGxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBpc1Njcm9sbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwcml2YXRlIHNjcm9sbEludGVydmFsOiBhbnk7XG4gIHByaXZhdGUgc2Nyb2xsVGltZW91dDogYW55O1xuICBwcml2YXRlIHNjcm9sbFNwZWVkOiBudW1iZXIgPSA1O1xuICBwcml2YXRlIHNjcm9sbERlbGF5OiBudW1iZXIgPSAxNjtcbiAgcHJpdmF0ZSBzY3JvbGxIb2xkRGVsYXk6IG51bWJlciA9IDEwMDtcblxuICBwcml2YXRlIHNjaGVkdWxlcyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJzY3JpcHRpb24+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBVaUFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBpbmplY3Q6IEluamVjdG9yLFxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQEluamVjdChDT01QT05FTlRfTElCUkFSWSkgcHVibGljIGNvbXBMaWI6IENvbXBvbmVudExpYnJhcnlcbiAgKSB7XG4gICAgLy8gSW5qZWN0cyB0aGUgYmFzaWMgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSBwcm92aWRlZCBieSB0aGUgQXBwTW9kdWxlXG4gICAgdGhpcy5tYW5hZ2VyID0gaW5qZWN0LmdldChVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlKTtcblxuICAgIHRoaXMuc3Vic2NyaWJlVG9MYW5ndWFnZUNoYW5nZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gT3ZlcnJpZGVzIHRoZSBiYXNpYyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIHdpdGggYSBjdXN0b20gb25lIGlmIHRoZXJlIGlzIG9uZVxuICAgIGlmICh0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpIHtcbiAgICAgIHRoaXMubWFuYWdlciA9IHRoaXMudWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlVG9MYW5ndWFnZUNoYW5nZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy50b29sYmFyUHJvcGVydGVzKSB7XG4gICAgICB0aGlzLnNjcm9sbE9uV3JhcCA9IHRoaXMudG9vbGJhclByb3BlcnRlcy5zY3JvbGxhYmxlID8/IGZhbHNlO1xuICAgIH1cblxuICAgIHRoaXMuc2V0VXAoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5zY3JvbGxPbldyYXApIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsYWJsZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpIG9uUmVzaXplKCkge1xuICAgIGlmICh0aGlzLnNjcm9sbE9uV3JhcCkge1xuICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGUoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ3VpQWN0aW9uTW9kZWxzJ10pIHtcbiAgICAgIGxldCB1aUFjdGlvbk1vZGVscyA9IGNoYW5nZXNbJ3VpQWN0aW9uTW9kZWxzJ10uY3VycmVudFZhbHVlO1xuICAgICAgaWYgKHVpQWN0aW9uTW9kZWxzKSB7XG4gICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbHMgPSB1aUFjdGlvbk1vZGVscztcblxuICAgICAgICB0aGlzLnNldFVwKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclNjaGVkdWxlKCk7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvTGFuZ3VhZ2VDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5sYW5ndWFnZUNoYW5nZWRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMubWFuYWdlci5sYW5ndWFnZUNoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5zZXRVcCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBzZXRVcCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodGhpcy51aUFjdGlvbk1vZGVscykge1xuICAgICAgbGV0IHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucyA9IFtdO1xuICAgICAgZm9yIChjb25zdCB1aUFjdGlvbk1vZGVsIG9mIHRoaXMudWlBY3Rpb25Nb2RlbHMpIHtcbiAgICAgICAgY29uc3QgdWlBY3Rpb24gPSB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uO1xuXG4gICAgICAgIC8vIHVzaW5nIGVxdWFsaXR5IGlzIGEgbXVzdCBoZXJlLCB1bmRlZmluZWQgYW5kIG51bGwgc2hvdWxkIGJlIGVxdWFsXG4gICAgICAgIGlmICh0aGlzLmlkID09IHVpQWN0aW9uLnRvb2xiYXIpIHtcbiAgICAgICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih1aUFjdGlvbk1vZGVsLnVpQWN0aW9uKTtcbiAgICAgICAgICB1aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnMucHVzaCh1aUFjdGlvbk1vZGVsKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5zY2hlZHVsZUFjdGlvbnModGhpcy51aUFjdGlvbk1vZGVscyk7XG4gICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucyA9IHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucztcblxuICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2hlY2tTY3JvbGxhYmxlKCkpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyU2NoZWR1bGUoKTogdm9pZCB7XG4gICAgdGhpcy5zY2hlZHVsZXMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gICAgdGhpcy5zY2hlZHVsZXMuY2xlYXIoKTtcbiAgfVxuXG4gIHNjaGVkdWxlQWN0aW9ucyh1aUFjdGlvbk1vZGVsczogVWlBY3Rpb25Nb2RlbFtdKSB7XG4gICAgdGhpcy5jbGVhclNjaGVkdWxlKCk7XG5cbiAgICB1aUFjdGlvbk1vZGVscy5mb3JFYWNoKCh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKSA9PiB7XG4gICAgICBsZXQgdWlBY3Rpb24gPSB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uO1xuXG4gICAgICBpZiAoXG4gICAgICAgICF1aUFjdGlvbi5jb2RlIHx8XG4gICAgICAgIHVpQWN0aW9uLmRpc2FibGVkIHx8XG4gICAgICAgICF1aUFjdGlvbi5zY2hlZHVsZT8uaW50ZXJ2YWxTZWNvbmRzIHx8XG4gICAgICAgIHRoaXMuc2NoZWR1bGVzLmhhcyh1aUFjdGlvbi5jb2RlKSB8fFxuICAgICAgICB1aUFjdGlvbi5zdWJBY3Rpb25zPy5sZW5ndGhcbiAgICAgICkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGxldCBpbnRlcnZhbEluTXMgPSB1aUFjdGlvbi5zY2hlZHVsZS5pbnRlcnZhbFNlY29uZHMgKiAxMDAwO1xuICAgICAgbGV0IHN1YiA9IGludGVydmFsKGludGVydmFsSW5NcylcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdWlBY3Rpb25Nb2RlbC51aUFjdGlvbiEucGFyYW1zID0ge1xuICAgICAgICAgICAgLi4udWlBY3Rpb25Nb2RlbC51aUFjdGlvbiEucGFyYW1zLFxuICAgICAgICAgICAgc2NoZWR1bGVkOiB0cnVlLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICB0aGlzLmZpcmVBY3Rpb24odWlBY3Rpb25Nb2RlbCk7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLnNjaGVkdWxlcy5zZXQodWlBY3Rpb24uY29kZSwgc3ViKTtcbiAgICB9KTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpZHg6IG51bWJlciwgbTogVWlBY3Rpb25Nb2RlbCk6IHN0cmluZyB8IG51bWJlciB7XG4gICAgcmV0dXJuIG0udWlBY3Rpb24uY29kZSA/PyBpZHg7XG4gIH1cblxuICBhc3luYyBmaXJlQWN0aW9uKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAodWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2VydmljZS51aUFjdGlvbk1vZGVsID0gdWlBY3Rpb25Nb2RlbDtcbiAgICBsZXQgb3B0aW9ucyA9IHtcbiAgICAgIG5vZGVJZDogdWlBY3Rpb25Nb2RlbC5ub2RlSWQsXG4gICAgICB3aWRnZXRJZDogdWlBY3Rpb25Nb2RlbC53aWRnZXRJZCxcbiAgICB9O1xuXG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb25Nb2RlbC51aUFjdGlvbiwgb3B0aW9ucyk7XG4gIH1cblxuICBhc3luYyBvbkFjdGlvbkNsaWNrZWQoZXZlbnQ6IGFueSwgdWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wcmVzc2VkQnV0dG9uQWN0aXZlKSB7XG4gICAgICB0aGlzLnByZXNzZWRCdXR0b25BY3RpdmUgPSBmYWxzZTtcblxuICAgICAgbGV0IGFjdGlvblRvRXhlY3V0ZTogVWlBY3Rpb25Nb2RlbCA9IHtcbiAgICAgICAgLi4udWlBY3Rpb25Nb2RlbCxcbiAgICAgICAgdWlBY3Rpb246ICFldmVudC5ldmVudCAmJiBldmVudC5jb2RlID8gZXZlbnQgOiB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgdGhpcy5maXJlQWN0aW9uKGFjdGlvblRvRXhlY3V0ZSk7XG5cbiAgICAgIHRoaXMucHJlc3NlZEJ1dHRvbkFjdGl2ZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgb25BY3Rpb25Eb3VibGVDbGlja2VkKGV2ZW50OiBhbnksIHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiB2b2lkIHtcbiAgICAvLyBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyBXZSBkbyBub3QgaGFuZGxlIGRvdWJsZSBjbGlja3NcbiAgfVxuICBnZXRidG5DbGFzcyh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogc3RyaW5nIHtcbiAgICBpZiAodWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvcikge1xuICAgICAgcmV0dXJuICdwLWJ1dHRvbi0nICsgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvcjtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGdldFR5cGUodWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IGFueSB7XG4gICAgaWYgKCF1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUpIHtcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBBY3Rpb24gYnV0dG9uIHR5cGUgdW5zZXQ6ICR7dWlBY3Rpb25Nb2RlbD8udWlBY3Rpb24/LmNvZGV9YCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORykge1xuICAgICAgLy8gcmV0dXJuICcnO1xuXG4gICAgICAvLyAncC1idXR0b24tdGV4dCc6IHRydWUsXG4gICAgICAvKiAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxuICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXG4gICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXG4gICovXG4gICAgICBzd2l0Y2ggKHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSkge1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5GTEFUOlxuICAgICAgICAgIHJldHVybiB7ICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLCAncC1idXR0b24tcm91bmRlZCc6IHRydWUgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VEOlxuICAgICAgICAgIHJldHVybiB7ICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLCAncC1idXR0b24tcm91bmRlZCc6IHRydWUgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcbiAgICAgICAgICByZXR1cm4geyAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLCAncC1idXR0b24tcm91bmRlZCc6IHRydWUgfTtcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTUlOSV9GQUI6XG4gICAgICAgICAgcmV0dXJuIHsgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLCAncC1idXR0b24tdGV4dCc6IHRydWUsICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlIH07XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICdwLWJ1dHRvbi10ZXh0JzogdHJ1ZSxcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlLFxuICAgICAgICAgICAgJ3AtYnV0dG9uLW91dGxpbmVkJzogdHJ1ZSxcbiAgICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBzd2l0Y2ggKHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSkge1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5OT1JNQUw6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWJ1dHRvbic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWZsYXQtYnV0dG9uJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VEOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uJztcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuU1RST0tFRDpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtc3Ryb2tlZC1idXR0b24nO1xuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1pY29uLWJ1dHRvbic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCOlxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1taW5pLWZhYic7XG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZBQjpcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmFiJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBjb25zb2xlLmxvZyhgVW5oYW5kbGVkIGFjdGlvbiBidXR0b24gdHlwZSBjYXNlOiAke3VpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZX1gKTtcbiAgICAgICAgICByZXR1cm4gYG1hdC1idXR0b25gO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGljb25Qb3NpdGlvbigpOiB0eXBlb2YgSWNvblBvc2l0aW9uIHtcbiAgICByZXR1cm4gSWNvblBvc2l0aW9uO1xuICB9XG5cbiAgaXNPbmx5SWNvbih1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLklDT04gfHxcbiAgICAgIHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSA9PT0gVWlBY3Rpb25CdXR0b25UeXBlLk1JTklfRkFCIHx8XG4gICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5GQUJcbiAgICApO1xuICB9XG5cbiAgZ2V0VG9vbHRpcFBvcyhwb3M/OiBVaUFjdGlvblRvb2x0aXBUb29sdGlwUG9zaXRpb25FbnVtKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgICBpZiAocG9zKSB7XG4gICAgICByZXR1cm4gcG9zLnRvTG93ZXJDYXNlKCkgYXMgVG9vbHRpcFBvc2l0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2JlZm9yZSc7XG4gICAgfVxuICB9XG5cbiAgZ2V0VG9vbHRpcERlbGF5KGRlbGF5PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGVsYXkgPyBkZWxheSA6IDEwMDA7XG4gIH1cblxuICBnZXRUb29sdGlwSGlkZURlbGF5KGRlbGF5PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gZGVsYXkgPyBkZWxheSA6IDIwMDA7XG4gIH1cblxuICBjaGVja1Njcm9sbGFibGUoKSB7XG4gICAgaWYgKCF0aGlzLnNjcm9sbE9uV3JhcCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNjcm9sbGFibGUgPSB0aGlzLmNvbnRhaW5lclJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoc2Nyb2xsYWJsZSkge1xuICAgICAgdGhpcy5pc1Njcm9sbGFibGUgPSBzY3JvbGxhYmxlLnNjcm9sbFdpZHRoID4gc2Nyb2xsYWJsZS5jbGllbnRXaWR0aDtcbiAgICB9XG4gIH1cbiAgc2Nyb2xsTGVmdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgLT0gMTAwO1xuICB9XG5cbiAgc2Nyb2xsUmlnaHQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IDEwMDtcbiAgfVxuXG4gIHNjcm9sbFN0YXJ0KGRpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZGVsdGEgPSBkaXJlY3Rpb24gPT09ICdsZWZ0JyA/IC10aGlzLnNjcm9sbFNwZWVkIDogdGhpcy5zY3JvbGxTcGVlZDtcblxuICAgICAgdGhpcy5zY3JvbGxJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgdGhpcy5jb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICs9IGRlbHRhO1xuICAgICAgfSwgdGhpcy5zY3JvbGxEZWxheSk7XG4gICAgfSwgdGhpcy5zY3JvbGxIb2xkRGVsYXkpO1xuICB9XG5cbiAgc3RvcFNjcm9sbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zY3JvbGxUaW1lb3V0KSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUaW1lb3V0KTtcbiAgICAgIHRoaXMuc2Nyb2xsVGltZW91dCA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLnNjcm9sbEludGVydmFsKSB7XG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc2Nyb2xsSW50ZXJ2YWwpO1xuICAgICAgdGhpcy5zY3JvbGxJbnRlcnZhbCA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgYnV0dG9uTGVmdDogVWlBY3Rpb25EZXNjcmlwdG9yID0ge1xuICAgIHRpdGxlOiAnJyxcbiAgICBjb2xvcjogJ3ByaW1hcnknLFxuICAgIHR5cGU6IFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQsXG4gICAgaWNvbjogdGhpcy5jb21wTGliID09PSBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcgPyAnY2hldnJvbi1sZWZ0JyA6ICdhcnJvd19iYWNrJyxcbiAgICBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbi5QUkUsXG4gIH07XG5cbiAgYnV0dG9uUmlnaHQ6IFVpQWN0aW9uRGVzY3JpcHRvciA9IHtcbiAgICB0aXRsZTogJycsXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcbiAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VELFxuICAgIGljb246IHRoaXMuY29tcExpYiA9PT0gQ29tcG9uZW50TGlicmFyeS5QUklNRU5HID8gJ2NoZXZyb24tcmlnaHQnIDogJ2Fycm93X2ZvcndhcmQnLFxuICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcbiAgfTtcblxuICBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50b29sYmFyUHJvcGVydGVzPy5kaXJlY3Rpb24gPT09IFRvb2xiYXJEaXJlY3Rpb24uVkVSVElDQUw7XG4gIH1cbn1cbiIsIkBpZiAoaXNTY3JvbGxhYmxlICYmIHNjcm9sbE9uV3JhcCkge1xuICA8dWktYWN0aW9uLWJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhaXNTY3JvbGxhYmxlXCJcbiAgICBbZGVzY3JpcHRvcl09XCJidXR0b25MZWZ0XCJcbiAgICAoYWN0aW9uQ2xpY2spPVwic2Nyb2xsTGVmdCgpXCJcbiAgICAobW91c2Vkb3duKT1cInNjcm9sbFN0YXJ0KCdsZWZ0JylcIlxuICAgIChtb3VzZXVwKT1cInN0b3BTY3JvbGwoKVwiXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcFNjcm9sbCgpXCJcbiAgICAodG91Y2hzdGFydCk9XCJzY3JvbGxTdGFydCgnbGVmdCcpXCJcbiAgICAodG91Y2hlbmQpPVwic3RvcFNjcm9sbCgpXCJcbiAgLz5cbn1cblxuPGRpdiAjY29udGFpbmVyIGNsYXNzPVwidWlBY3Rpb25CdXR0b25zQ29udGFpbmVyXCIgW25nQ2xhc3NdPVwieyBzY3JvbGxhYmxlQ29udGVudDogc2Nyb2xsT25XcmFwIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdWlBY3Rpb25Nb2RlbCBvZiB1aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxuICAgIEBpZiAodWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zICYmIHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICA8dWktdGllcmVkLW1lbnVcbiAgICAgICAgI21lbnVcbiAgICAgICAgW3RyaWdnZXJBY3Rpb25dPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvblwiXG4gICAgICAgIFtzdWJBY3Rpb25zXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uc3ViQWN0aW9ucyFcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgPjwvdWktdGllcmVkLW1lbnU+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8dWktYWN0aW9uLWJ1dHRvblxuICAgICAgICBbZGVzY3JpcHRvcl09XCJ1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IhXCJcbiAgICAgICAgW2NvZGVdPVwidWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5jb2RlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiEhdWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgIFthZGRlZENzc0NsYXNzXT1cInVpQWN0aW9uTW9kZWwuY3NzQ2xhc3NcIlxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgICAoYWN0aW9uRG91YmxlQ2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxuICAgICAgPlxuICAgICAgPC91aS1hY3Rpb24tYnV0dG9uPlxuICAgIH1cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuQGlmIChpc1Njcm9sbGFibGUgJiYgc2Nyb2xsT25XcmFwKSB7XG4gIDx1aS1hY3Rpb24tYnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Njcm9sbGFibGVcIlxuICAgIFtkZXNjcmlwdG9yXT1cImJ1dHRvblJpZ2h0XCJcbiAgICAoYWN0aW9uQ2xpY2spPVwic2Nyb2xsUmlnaHQoKVwiXG4gICAgKG1vdXNlZG93bik9XCJzY3JvbGxTdGFydCgncmlnaHQnKVwiXG4gICAgKG1vdXNldXApPVwic3RvcFNjcm9sbCgpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJzdG9wU2Nyb2xsKClcIlxuICAgICh0b3VjaHN0YXJ0KT1cInNjcm9sbFN0YXJ0KCdyaWdodCcpXCJcbiAgICAodG91Y2hlbmQpPVwic3RvcFNjcm9sbCgpXCJcbiAgLz5cbn1cbiJdfQ==
317
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLE1BQU0sRUFFTixLQUFLLEVBS0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFnQixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEUsT0FBTyxFQUNMLFlBQVksR0FJYixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUczRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQXFCLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFPdkYsTUFBTSxPQUFPLHdCQUF3QjtJQThCbkMsWUFDVSxPQUF3QixFQUN4QixNQUFnQixFQUNqQixjQUFpQyxFQUNOLE9BQXlCO1FBSG5ELFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVU7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBQ04sWUFBTyxHQUFQLE9BQU8sQ0FBa0I7UUEv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Z0I7c0JBQXhCLEtBQUs7Z0JBa0R5QixRQUFRO3NCQUF0QyxZQUFZO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBpbnRlcnZhbCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBJY29uUG9zaXRpb24sXHJcbiAgVWlBY3Rpb24sXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG4gIFVpQWN0aW9uVG9vbHRpcFRvb2x0aXBQb3NpdGlvbkVudW0sXHJcbn0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgVWlBY3Rpb25CdXR0b25UeXBlIH0gZnJvbSAnLi4vYXBpL21vZGVsL3VpQWN0aW9uQnV0dG9uVHlwZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UgfSBmcm9tICcuL3VpLWFjdGlvbi5kZXNjcmlwdG9yLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBVaUFjdGlvbk1vZGVsIH0gZnJvbSAnLi91aS1hY3Rpb24ubW9kZWwnO1xyXG5pbXBvcnQgeyBVaUFjdGlvblNlcnZpY2UgfSBmcm9tICcuL3VpLWFjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ09NUE9ORU5UX0xJQlJBUlksIENvbXBvbmVudExpYnJhcnkgfSBmcm9tICcuLi91dGlsaXR5L2NvbXBvbmVudExpYnJhcnknO1xyXG5pbXBvcnQgeyBUb29sYmFyRGlyZWN0aW9uLCBUb29sYmFyUHJvcGVydGllcyB9IGZyb20gJy4uLy4uL3NtYXJ0LWNvbXBvbmVudC1sYXlvdXQvYXBpJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc21hcnQtdWktYWN0aW9uLXRvb2xiYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91aS1hY3Rpb24tdG9vbGJhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdWktYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmNzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25Ub29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGNvbnRhaW5lclJlZiE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29tcG9uZW50TGlicmFyeSA9IENvbXBvbmVudExpYnJhcnk7IC8vIEV4cG9zZSB0aGUgZW51bSB0byB0aGUgdGVtcGxhdGVcclxuXHJcbiAgcHJlc3NlZEJ1dHRvbkFjdGl2ZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpIHVpQWN0aW9uTW9kZWxzPzogVWlBY3Rpb25Nb2RlbFtdO1xyXG4gIEBJbnB1dCgpIHVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2U/OiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gIEBJbnB1dCgpIGlkPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjcm9sbE9uV3JhcDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvb2xiYXJQcm9wZXJ0ZXM/OiBUb29sYmFyUHJvcGVydGllcztcclxuXHJcbiAgdWlBY3Rpb25Nb2RlbHNXaXRoRGVzY3JpcHRpb25zPzogVWlBY3Rpb25Nb2RlbFtdO1xyXG5cclxuICBwcml2YXRlIG1hbmFnZXIhOiBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gIHByaXZhdGUgbGFuZ3VhZ2VDaGFuZ2VkU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBpc1Njcm9sbGFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBzY3JvbGxJbnRlcnZhbDogYW55O1xyXG4gIHByaXZhdGUgc2Nyb2xsVGltZW91dDogYW55O1xyXG4gIHByaXZhdGUgc2Nyb2xsU3BlZWQ6IG51bWJlciA9IDU7XHJcbiAgcHJpdmF0ZSBzY3JvbGxEZWxheTogbnVtYmVyID0gMTY7XHJcbiAgcHJpdmF0ZSBzY3JvbGxIb2xkRGVsYXk6IG51bWJlciA9IDEwMDtcclxuXHJcbiAgcHJpdmF0ZSBzY2hlZHVsZXMgPSBuZXcgTWFwPHN0cmluZywgU3Vic2NyaXB0aW9uPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2VydmljZTogVWlBY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBpbmplY3Q6IEluamVjdG9yLFxyXG4gICAgcHVibGljIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBJbmplY3QoQ09NUE9ORU5UX0xJQlJBUlkpIHB1YmxpYyBjb21wTGliOiBDb21wb25lbnRMaWJyYXJ5XHJcbiAgKSB7XHJcbiAgICAvLyBJbmplY3RzIHRoZSBiYXNpYyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIHByb3ZpZGVkIGJ5IHRoZSBBcHBNb2R1bGVcclxuICAgIHRoaXMubWFuYWdlciA9IGluamVjdC5nZXQoVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0xhbmd1YWdlQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIE92ZXJyaWRlcyB0aGUgYmFzaWMgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSB3aXRoIGEgY3VzdG9tIG9uZSBpZiB0aGVyZSBpcyBvbmVcclxuICAgIGlmICh0aGlzLnVpQWN0aW9uRGVzY3JpcHRvclNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5tYW5hZ2VyID0gdGhpcy51aUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlO1xyXG4gICAgICB0aGlzLnN1YnNjcmliZVRvTGFuZ3VhZ2VDaGFuZ2UoKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnRvb2xiYXJQcm9wZXJ0ZXMpIHtcclxuICAgICAgdGhpcy5zY3JvbGxPbldyYXAgPSB0aGlzLnRvb2xiYXJQcm9wZXJ0ZXMuc2Nyb2xsYWJsZSA/PyBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldFVwKCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zY3JvbGxPbldyYXApIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJykgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5zY3JvbGxPbldyYXApIHtcclxuICAgICAgdGhpcy5jaGVja1Njcm9sbGFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWyd1aUFjdGlvbk1vZGVscyddKSB7XHJcbiAgICAgIGxldCB1aUFjdGlvbk1vZGVscyA9IGNoYW5nZXNbJ3VpQWN0aW9uTW9kZWxzJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICBpZiAodWlBY3Rpb25Nb2RlbHMpIHtcclxuICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWxzID0gdWlBY3Rpb25Nb2RlbHM7XHJcblxyXG4gICAgICAgIHRoaXMuc2V0VXAoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNsZWFyU2NoZWR1bGUoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvTGFuZ3VhZ2VDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZFN1YnNjcmlwdGlvbiA9IHRoaXMubWFuYWdlci5sYW5ndWFnZUNoYW5nZWRcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRVcCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNldFVwKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMudWlBY3Rpb25Nb2RlbHMpIHtcclxuICAgICAgbGV0IHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucyA9IFtdO1xyXG4gICAgICBmb3IgKGNvbnN0IHVpQWN0aW9uTW9kZWwgb2YgdGhpcy51aUFjdGlvbk1vZGVscykge1xyXG4gICAgICAgIGNvbnN0IHVpQWN0aW9uID0gdWlBY3Rpb25Nb2RlbC51aUFjdGlvbjtcclxuXHJcbiAgICAgICAgLy8gdXNpbmcgZXF1YWxpdHkgaXMgYSBtdXN0IGhlcmUsIHVuZGVmaW5lZCBhbmQgbnVsbCBzaG91bGQgYmUgZXF1YWxcclxuICAgICAgICBpZiAodGhpcy5pZCA9PSB1aUFjdGlvbi50b29sYmFyKSB7XHJcbiAgICAgICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3IgPSBhd2FpdCB0aGlzLm1hbmFnZXIuZ2V0QWN0aW9uRGVzY3JpcHRvcih1aUFjdGlvbk1vZGVsLnVpQWN0aW9uKTtcclxuICAgICAgICAgIHVpQWN0aW9uTW9kZWxzV2l0aERlc2NyaXB0aW9ucy5wdXNoKHVpQWN0aW9uTW9kZWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNjaGVkdWxlQWN0aW9ucyh0aGlzLnVpQWN0aW9uTW9kZWxzKTtcclxuICAgICAgdGhpcy51aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnMgPSB1aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnM7XHJcblxyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja1Njcm9sbGFibGUoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclNjaGVkdWxlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY2hlZHVsZXMuZm9yRWFjaCgoc3ViKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XHJcbiAgICB0aGlzLnNjaGVkdWxlcy5jbGVhcigpO1xyXG4gIH1cclxuXHJcbiAgc2NoZWR1bGVBY3Rpb25zKHVpQWN0aW9uTW9kZWxzOiBVaUFjdGlvbk1vZGVsW10pIHtcclxuICAgIHRoaXMuY2xlYXJTY2hlZHVsZSgpO1xyXG5cclxuICAgIHVpQWN0aW9uTW9kZWxzLmZvckVhY2goKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpID0+IHtcclxuICAgICAgbGV0IHVpQWN0aW9uID0gdWlBY3Rpb25Nb2RlbC51aUFjdGlvbjtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICAhdWlBY3Rpb24uY29kZSB8fFxyXG4gICAgICAgIHVpQWN0aW9uLmRpc2FibGVkIHx8XHJcbiAgICAgICAgIXVpQWN0aW9uLnNjaGVkdWxlPy5pbnRlcnZhbFNlY29uZHMgfHxcclxuICAgICAgICB0aGlzLnNjaGVkdWxlcy5oYXModWlBY3Rpb24uY29kZSkgfHxcclxuICAgICAgICB1aUFjdGlvbi5zdWJBY3Rpb25zPy5sZW5ndGhcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsZXQgaW50ZXJ2YWxJbk1zID0gdWlBY3Rpb24uc2NoZWR1bGUuaW50ZXJ2YWxTZWNvbmRzICogMTAwMDtcclxuICAgICAgbGV0IHN1YiA9IGludGVydmFsKGludGVydmFsSW5NcylcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdWlBY3Rpb25Nb2RlbC51aUFjdGlvbiEucGFyYW1zID0ge1xyXG4gICAgICAgICAgICAuLi51aUFjdGlvbk1vZGVsLnVpQWN0aW9uIS5wYXJhbXMsXHJcbiAgICAgICAgICAgIHNjaGVkdWxlZDogdHJ1ZSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgdGhpcy5maXJlQWN0aW9uKHVpQWN0aW9uTW9kZWwpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgdGhpcy5zY2hlZHVsZXMuc2V0KHVpQWN0aW9uLmNvZGUsIHN1Yik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHRyYWNrQnlGbihpZHg6IG51bWJlciwgbTogVWlBY3Rpb25Nb2RlbCk6IHN0cmluZyB8IG51bWJlciB7XHJcbiAgICByZXR1cm4gbS51aUFjdGlvbi5jb2RlID8/IGlkeDtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZpcmVBY3Rpb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VydmljZS51aUFjdGlvbk1vZGVsID0gdWlBY3Rpb25Nb2RlbDtcclxuICAgIGxldCBvcHRpb25zID0ge1xyXG4gICAgICBub2RlSWQ6IHVpQWN0aW9uTW9kZWwubm9kZUlkLFxyXG4gICAgICB3aWRnZXRJZDogdWlBY3Rpb25Nb2RlbC53aWRnZXRJZCxcclxuICAgIH07XHJcblxyXG4gICAgYXdhaXQgdGhpcy5zZXJ2aWNlLmV4ZWN1dGUodWlBY3Rpb25Nb2RlbC51aUFjdGlvbiwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBvbkFjdGlvbkNsaWNrZWQoZXZlbnQ6IGFueSwgdWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgLy8gZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgaWYgKHVpQWN0aW9uTW9kZWwudWlBY3Rpb24uZGlzYWJsZWQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnByZXNzZWRCdXR0b25BY3RpdmUpIHtcclxuICAgICAgdGhpcy5wcmVzc2VkQnV0dG9uQWN0aXZlID0gZmFsc2U7XHJcblxyXG4gICAgICBsZXQgYWN0aW9uVG9FeGVjdXRlOiBVaUFjdGlvbk1vZGVsID0ge1xyXG4gICAgICAgIC4uLnVpQWN0aW9uTW9kZWwsXHJcbiAgICAgICAgdWlBY3Rpb246ICFldmVudC5ldmVudCAmJiBldmVudC5jb2RlID8gZXZlbnQgOiB1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgYXdhaXQgdGhpcy5maXJlQWN0aW9uKGFjdGlvblRvRXhlY3V0ZSk7XHJcblxyXG4gICAgICB0aGlzLnByZXNzZWRCdXR0b25BY3RpdmUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25BY3Rpb25Eb3VibGVDbGlja2VkKGV2ZW50OiBhbnksIHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiB2b2lkIHtcclxuICAgIC8vIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgLy8gV2UgZG8gbm90IGhhbmRsZSBkb3VibGUgY2xpY2tzXHJcbiAgfVxyXG4gIGdldGJ0bkNsYXNzKHVpQWN0aW9uTW9kZWw6IFVpQWN0aW9uTW9kZWwpOiBzdHJpbmcge1xyXG4gICAgaWYgKHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8uY29sb3IpIHtcclxuICAgICAgcmV0dXJuICdwLWJ1dHRvbi0nICsgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5jb2xvcjtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcbiAgZ2V0VHlwZSh1aUFjdGlvbk1vZGVsOiBVaUFjdGlvbk1vZGVsKTogYW55IHtcclxuICAgIGlmICghdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlKSB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGBBY3Rpb24gYnV0dG9uIHR5cGUgdW5zZXQ6ICR7dWlBY3Rpb25Nb2RlbD8udWlBY3Rpb24/LmNvZGV9YCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jb21wTGliID09PSBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcpIHtcclxuICAgICAgLy8gcmV0dXJuICcnO1xyXG5cclxuICAgICAgLy8gJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxyXG4gICAgICAvKiAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSxcclxuICAgICAgICAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLFxyXG4gICovXHJcbiAgICAgIHN3aXRjaCAodWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlKSB7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMOlxyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XHJcbiAgICAgICAgICByZXR1cm4geyAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSwgJ3AtYnV0dG9uLXJvdW5kZWQnOiB0cnVlIH07XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VEOlxyXG4gICAgICAgICAgcmV0dXJuIHsgJ3AtYnV0dG9uLXJhaXNlZCc6IHRydWUsICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSB9O1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlNUUk9LRUQ6XHJcbiAgICAgICAgICByZXR1cm4geyAncC1idXR0b24tb3V0bGluZWQnOiB0cnVlLCAncC1idXR0b24tcm91bmRlZCc6IHRydWUgfTtcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQjpcclxuICAgICAgICAgIHJldHVybiB7ICdwLWJ1dHRvbi1yb3VuZGVkJzogdHJ1ZSwgJ3AtYnV0dG9uLXRleHQnOiB0cnVlLCAncC1idXR0b24tcmFpc2VkJzogdHJ1ZSB9O1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAncC1idXR0b24tdGV4dCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1yYWlzZWQnOiB0cnVlLFxyXG4gICAgICAgICAgICAncC1idXR0b24tcm91bmRlZCc6IHRydWUsXHJcbiAgICAgICAgICAgICdwLWJ1dHRvbi1vdXRsaW5lZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzd2l0Y2ggKHVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvcj8udHlwZSkge1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1idXR0b24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLkZMQVQ6XHJcbiAgICAgICAgICByZXR1cm4gJ21hdC1tZGMtZmxhdC1idXR0b24nO1xyXG4gICAgICAgIGNhc2UgVWlBY3Rpb25CdXR0b25UeXBlLlJBSVNFRDpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1yYWlzZWQtYnV0dG9uJztcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5TVFJPS0VEOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLXN0cm9rZWQtYnV0dG9uJztcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5JQ09OOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWljb24tYnV0dG9uJztcclxuICAgICAgICBjYXNlIFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQjpcclxuICAgICAgICAgIHJldHVybiAnbWF0LW1kYy1taW5pLWZhYic7XHJcbiAgICAgICAgY2FzZSBVaUFjdGlvbkJ1dHRvblR5cGUuRkFCOlxyXG4gICAgICAgICAgcmV0dXJuICdtYXQtbWRjLWZhYic7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIC8vIGNvbnNvbGUubG9nKGBVbmhhbmRsZWQgYWN0aW9uIGJ1dHRvbiB0eXBlIGNhc2U6ICR7dWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlfWApO1xyXG4gICAgICAgICAgcmV0dXJuIGBtYXQtYnV0dG9uYDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaWNvblBvc2l0aW9uKCk6IHR5cGVvZiBJY29uUG9zaXRpb24ge1xyXG4gICAgcmV0dXJuIEljb25Qb3NpdGlvbjtcclxuICB9XHJcblxyXG4gIGlzT25seUljb24odWlBY3Rpb25Nb2RlbDogVWlBY3Rpb25Nb2RlbCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgdWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy50eXBlID09PSBVaUFjdGlvbkJ1dHRvblR5cGUuSUNPTiB8fFxyXG4gICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5NSU5JX0ZBQiB8fFxyXG4gICAgICB1aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LnR5cGUgPT09IFVpQWN0aW9uQnV0dG9uVHlwZS5GQUJcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUb29sdGlwUG9zKHBvcz86IFVpQWN0aW9uVG9vbHRpcFRvb2x0aXBQb3NpdGlvbkVudW0pOiBUb29sdGlwUG9zaXRpb24ge1xyXG4gICAgaWYgKHBvcykge1xyXG4gICAgICByZXR1cm4gcG9zLnRvTG93ZXJDYXNlKCkgYXMgVG9vbHRpcFBvc2l0aW9uO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdiZWZvcmUnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcERlbGF5KGRlbGF5PzogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBkZWxheSA/IGRlbGF5IDogMTAwMDtcclxuICB9XHJcblxyXG4gIGdldFRvb2x0aXBIaWRlRGVsYXkoZGVsYXk/OiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGRlbGF5ID8gZGVsYXkgOiAyMDAwO1xyXG4gIH1cclxuXHJcbiAgY2hlY2tTY3JvbGxhYmxlKCkge1xyXG4gICAgaWYgKCF0aGlzLnNjcm9sbE9uV3JhcCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc2Nyb2xsYWJsZSA9IHRoaXMuY29udGFpbmVyUmVmPy5uYXRpdmVFbGVtZW50O1xyXG4gICAgaWYgKHNjcm9sbGFibGUpIHtcclxuICAgICAgdGhpcy5pc1Njcm9sbGFibGUgPSBzY3JvbGxhYmxlLnNjcm9sbFdpZHRoID4gc2Nyb2xsYWJsZS5jbGllbnRXaWR0aDtcclxuICAgIH1cclxuICB9XHJcbiAgc2Nyb2xsTGVmdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCAtPSAxMDA7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxSaWdodCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArPSAxMDA7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxTdGFydChkaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Nyb2xsVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBkZWx0YSA9IGRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gLXRoaXMuc2Nyb2xsU3BlZWQgOiB0aGlzLnNjcm9sbFNwZWVkO1xyXG5cclxuICAgICAgdGhpcy5zY3JvbGxJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgKz0gZGVsdGE7XHJcbiAgICAgIH0sIHRoaXMuc2Nyb2xsRGVsYXkpO1xyXG4gICAgfSwgdGhpcy5zY3JvbGxIb2xkRGVsYXkpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFNjcm9sbCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNjcm9sbFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVGltZW91dCk7XHJcbiAgICAgIHRoaXMuc2Nyb2xsVGltZW91dCA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zY3JvbGxJbnRlcnZhbCkge1xyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuc2Nyb2xsSW50ZXJ2YWwpO1xyXG4gICAgICB0aGlzLnNjcm9sbEludGVydmFsID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGJ1dHRvbkxlZnQ6IFVpQWN0aW9uRGVzY3JpcHRvciA9IHtcclxuICAgIHRpdGxlOiAnJyxcclxuICAgIGNvbG9yOiAncHJpbWFyeScsXHJcbiAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuUkFJU0VELFxyXG4gICAgaWNvbjogdGhpcy5jb21wTGliID09PSBDb21wb25lbnRMaWJyYXJ5LlBSSU1FTkcgPyAnY2hldnJvbi1sZWZ0JyA6ICdhcnJvd19iYWNrJyxcclxuICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcclxuICB9O1xyXG5cclxuICBidXR0b25SaWdodDogVWlBY3Rpb25EZXNjcmlwdG9yID0ge1xyXG4gICAgdGl0bGU6ICcnLFxyXG4gICAgY29sb3I6ICdwcmltYXJ5JyxcclxuICAgIHR5cGU6IFVpQWN0aW9uQnV0dG9uVHlwZS5SQUlTRUQsXHJcbiAgICBpY29uOiB0aGlzLmNvbXBMaWIgPT09IENvbXBvbmVudExpYnJhcnkuUFJJTUVORyA/ICdjaGV2cm9uLXJpZ2h0JyA6ICdhcnJvd19mb3J3YXJkJyxcclxuICAgIGljb25Qb3NpdGlvbjogSWNvblBvc2l0aW9uLlBSRSxcclxuICB9O1xyXG5cclxuICBnZXQgaXNWZXJ0aWNhbCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRvb2xiYXJQcm9wZXJ0ZXM/LmRpcmVjdGlvbiA9PT0gVG9vbGJhckRpcmVjdGlvbi5WRVJUSUNBTDtcclxuICB9XHJcbn1cclxuIiwiQGlmIChpc1Njcm9sbGFibGUgJiYgc2Nyb2xsT25XcmFwKSB7XHJcbiAgPHVpLWFjdGlvbi1idXR0b25cclxuICAgIFtkaXNhYmxlZF09XCIhaXNTY3JvbGxhYmxlXCJcclxuICAgIFtkZXNjcmlwdG9yXT1cImJ1dHRvbkxlZnRcIlxyXG4gICAgKGFjdGlvbkNsaWNrKT1cInNjcm9sbExlZnQoKVwiXHJcbiAgICAobW91c2Vkb3duKT1cInNjcm9sbFN0YXJ0KCdsZWZ0JylcIlxyXG4gICAgKG1vdXNldXApPVwic3RvcFNjcm9sbCgpXCJcclxuICAgIChtb3VzZWxlYXZlKT1cInN0b3BTY3JvbGwoKVwiXHJcbiAgICAodG91Y2hzdGFydCk9XCJzY3JvbGxTdGFydCgnbGVmdCcpXCJcclxuICAgICh0b3VjaGVuZCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gIC8+XHJcbn1cclxuXHJcbjxkaXYgI2NvbnRhaW5lciBjbGFzcz1cInVpQWN0aW9uQnV0dG9uc0NvbnRhaW5lclwiIFtuZ0NsYXNzXT1cInsgc2Nyb2xsYWJsZUNvbnRlbnQ6IHNjcm9sbE9uV3JhcCB9XCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdWlBY3Rpb25Nb2RlbCBvZiB1aUFjdGlvbk1vZGVsc1dpdGhEZXNjcmlwdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxyXG4gICAgQGlmICh1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLnN1YkFjdGlvbnMgJiYgdWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5zdWJBY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgPHVpLXRpZXJlZC1tZW51XHJcbiAgICAgICAgI21lbnVcclxuICAgICAgICBbdHJpZ2dlckFjdGlvbl09XCJ1aUFjdGlvbk1vZGVsLnVpQWN0aW9uXCJcclxuICAgICAgICBbc3ViQWN0aW9uc109XCJ1aUFjdGlvbk1vZGVsLnVpQWN0aW9uLnN1YkFjdGlvbnMhXCJcclxuICAgICAgICAoYWN0aW9uQ2xpY2spPVwib25BY3Rpb25DbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxyXG4gICAgICA+PC91aS10aWVyZWQtbWVudT5cclxuICAgIH0gQGVsc2Uge1xyXG4gICAgICA8dWktYWN0aW9uLWJ1dHRvblxyXG4gICAgICAgIFtkZXNjcmlwdG9yXT1cInVpQWN0aW9uTW9kZWwuZGVzY3JpcHRvciFcIlxyXG4gICAgICAgIFtjb2RlXT1cInVpQWN0aW9uTW9kZWwudWlBY3Rpb24uY29kZVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiEhdWlBY3Rpb25Nb2RlbC51aUFjdGlvbi5kaXNhYmxlZFwiXHJcbiAgICAgICAgW2FkZGVkQ3NzQ2xhc3NdPVwidWlBY3Rpb25Nb2RlbC5jc3NDbGFzc1wiXHJcbiAgICAgICAgKGFjdGlvbkNsaWNrKT1cIm9uQWN0aW9uQ2xpY2tlZCgkZXZlbnQsIHVpQWN0aW9uTW9kZWwpXCJcclxuICAgICAgICAoYWN0aW9uRG91YmxlQ2xpY2spPVwib25BY3Rpb25Eb3VibGVDbGlja2VkKCRldmVudCwgdWlBY3Rpb25Nb2RlbClcIlxyXG4gICAgICA+XHJcbiAgICAgIDwvdWktYWN0aW9uLWJ1dHRvbj5cclxuICAgIH1cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG5AaWYgKGlzU2Nyb2xsYWJsZSAmJiBzY3JvbGxPbldyYXApIHtcclxuICA8dWktYWN0aW9uLWJ1dHRvblxyXG4gICAgW2Rpc2FibGVkXT1cIiFpc1Njcm9sbGFibGVcIlxyXG4gICAgW2Rlc2NyaXB0b3JdPVwiYnV0dG9uUmlnaHRcIlxyXG4gICAgKGFjdGlvbkNsaWNrKT1cInNjcm9sbFJpZ2h0KClcIlxyXG4gICAgKG1vdXNlZG93bik9XCJzY3JvbGxTdGFydCgncmlnaHQnKVwiXHJcbiAgICAobW91c2V1cCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gICAgKG1vdXNlbGVhdmUpPVwic3RvcFNjcm9sbCgpXCJcclxuICAgICh0b3VjaHN0YXJ0KT1cInNjcm9sbFN0YXJ0KCdyaWdodCcpXCJcclxuICAgICh0b3VjaGVuZCk9XCJzdG9wU2Nyb2xsKClcIlxyXG4gIC8+XHJcbn1cclxuIl19
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
180
180
  providedIn: 'root',
181
181
  }]
182
182
  }], ctorParameters: () => [{ type: i1.SmartViewContextService }] });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBRUwsWUFBWSxFQUNaLGtCQUFrQixFQUdsQixvQkFBb0IsR0FDckIsTUFBTSxRQUFRLENBQUM7OztBQU1oQixNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQW9CLFdBQW9DO1FBQXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUxoRCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQsb0JBQWUsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUE4S2hGLDJCQUFzQixHQUFvQyxJQUFJLEdBQUcsQ0FBQztZQUN4RTtnQkFDRSxRQUFRO2dCQUNSO29CQUNFLEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO29CQUMvQixLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFlBQVksRUFBRSxZQUFZLENBQUMsSUFBSTtvQkFDL0IsTUFBTSxFQUFFO3dCQUNOLEtBQUss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QyxZQUFZLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUU1RCxPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7K0dBaExVLHlCQUF5QjttSEFBekIseUJBQXlCLGNBRnhCLE1BQU07OzRGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSAnLi4vLi4vc21hcnQtc3ViamVjdC9wcm9qZWN0cyc7XG5pbXBvcnQge1xuICBVaUFjdGlvbixcbiAgSWNvblBvc2l0aW9uLFxuICBVaUFjdGlvbkJ1dHRvblR5cGUsXG4gIFVpQWN0aW9uRGVzY3JpcHRvcixcbiAgVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yLFxuICBVaUFjdGlvbkZlZWRiYWNrVHlwZSxcbn0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vc21hcnQtdmlldy1jb250ZXh0LnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25EZXNjcmlwdG9yU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBsYW5ndWFnZUNoYW5nZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAga2V5c1RvVHJhbnNsYXRlOiBzdHJpbmdbXSA9IFsndGl0bGUnLCAndGV4dCcsICdwbGFjZWhvbGRlcicsICdjYXB0aW9uJywgJ2ZlZWRiYWNrVGV4dCddO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmlld0NvbnRleHQ6IFNtYXJ0Vmlld0NvbnRleHRTZXJ2aWNlKSB7XG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZSkge1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb1RyYW5zbGF0ZVNlcnZpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52aWV3Q29udGV4dC50cmFuc2xhdGVTZXJ2aWNlQ2hhbmdlZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9UcmFuc2xhdGVTZXJ2aWNlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVRvVHJhbnNsYXRlU2VydmljZSgpOiB2b2lkIHtcbiAgICB0aGlzLnZpZXdDb250ZXh0XG4gICAgICAudHJhbnNsYXRlU2VydmljZSEub25MYW5nQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxhbmd1YWdlQ2hhbmdlZC5uZXh0KCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRBY3Rpb25EZXNjcmlwdG9yKHVpQWN0aW9uOiBVaUFjdGlvbik6IFByb21pc2U8VWlBY3Rpb25EZXNjcmlwdG9yPiB7XG4gICAgbGV0IGNvZGUgPSB1aUFjdGlvbi5jb2RlITtcbiAgICBsZXQgaXNVbmtvd24gPSBmYWxzZTtcblxuICAgIGxldCBzZXJ2ZXI6IFVpQWN0aW9uRGVzY3JpcHRvciB8IHVuZGVmaW5lZCB8IG51bGwgPSB1aUFjdGlvbi5kZXNjcmlwdG9yO1xuICAgIGxldCBjbGllbnQ6IFVpQWN0aW9uRGVzY3JpcHRvciB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xuXG4gICAgbGV0IGFjdGlvbkRlc2NyaXB0b3JGcm9tRGVzY3JpcHRvcnMgPSB0aGlzLnZpZXdDb250ZXh0LmdldEFjdGlvbkRlc2NyaXB0b3JzKCk/LmdldChjb2RlKTtcbiAgICBpZiAoYWN0aW9uRGVzY3JpcHRvckZyb21EZXNjcmlwdG9ycykge1xuICAgICAgY2xpZW50ID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3Rpb25EZXNjcmlwdG9yRnJvbURlc2NyaXB0b3JzKSk7XG4gICAgfVxuXG4gICAgbGV0IGFjdGlvbkRlc2NyaXB0b3I6IFVpQWN0aW9uRGVzY3JpcHRvciB8IHVuZGVmaW5lZCB8IG51bGw7XG4gICAgaWYgKCFjbGllbnQpIHtcbiAgICAgIC8vIHNlcnZlciBvbmx5XG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0gc2VydmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBjbGllbnQgZXhpc3RzXG4gICAgICBpZiAoc2VydmVyKSB7XG4gICAgICAgIC8vIHNlcnZlciAmIGNsaWVudCAtPiBtZXJnZSBpbnRvIGNsaWVudCB3aGF0J3MgZmlsbGVkIGZyb20gc2VydmVyXG4gICAgICAgIHRoaXMubWVyZ2VBY3Rpb25EZXNjcmlwdG9ySW50b0NsaWVudChzZXJ2ZXIsIGNsaWVudCk7XG4gICAgICB9XG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0gY2xpZW50O1xuICAgIH1cblxuICAgIGlmICghYWN0aW9uRGVzY3JpcHRvcikge1xuICAgICAgaXNVbmtvd24gPSB0cnVlO1xuICAgICAgbGV0IHVua293bkFjdGlvbkRlc2NyaXB0b3IgPSB0aGlzLmJhc2ljQWN0aW9uRGVzY3JpcHRvcnMuZ2V0KCdVTktPV04nKTtcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IgPSB7IC4uLnVua293bkFjdGlvbkRlc2NyaXB0b3IhIH07XG4gICAgICBhY3Rpb25EZXNjcmlwdG9yIS50aXRsZSA9IGNvZGU7XG4gICAgfVxuXG4gICAgaWYgKCFhY3Rpb25EZXNjcmlwdG9yIS5kaWFsb2cpIHtcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IgPSB0aGlzLnNldFVwVW5rb3duRGlhbG9nRGVzY3JpcHRvcihjb2RlLCBhY3Rpb25EZXNjcmlwdG9yISwgJ2RpYWxvZycpO1xuICAgIH1cblxuICAgIGlmICghYWN0aW9uRGVzY3JpcHRvciEuZmVlZGJhY2tUeXBlICYmIHVpQWN0aW9uLnN1Ym1pdCkge1xuICAgICAgYWN0aW9uRGVzY3JpcHRvciEuZmVlZGJhY2tUeXBlID0gVWlBY3Rpb25GZWVkYmFja1R5cGUuU05BQ0tCQVI7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZSAmJiAhaXNVbmtvd24gJiYgIXNlcnZlcikge1xuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IGF3YWl0IHRoaXMudHJhbnNsYXRlVWlBY3Rpb25EZXNjcmlwdG9yKGFjdGlvbkRlc2NyaXB0b3IpO1xuICAgIH1cblxuICAgIHJldHVybiBhY3Rpb25EZXNjcmlwdG9yITtcbiAgfVxuXG4gIHB1YmxpYyBtZXJnZUFjdGlvbkRlc2NyaXB0b3JJbnRvQ2xpZW50KFxuICAgIHNlcnZlcjogVWlBY3Rpb25EZXNjcmlwdG9yLFxuICAgIGNsaWVudDogVWlBY3Rpb25EZXNjcmlwdG9yXG4gICk6IHZvaWQge1xuICAgIGlmIChzZXJ2ZXIudGl0bGUpIHtcbiAgICAgIGNsaWVudC50aXRsZSA9IHNlcnZlci50aXRsZTtcbiAgICB9XG4gICAgaWYgKHNlcnZlci5pY29uKSB7XG4gICAgICBjbGllbnQuaWNvbiA9IHNlcnZlci5pY29uO1xuICAgIH1cbiAgICBpZiAoc2VydmVyLmNvbG9yKSB7XG4gICAgICBjbGllbnQuY29sb3IgPSBzZXJ2ZXIuY29sb3I7XG4gICAgfVxuICAgIGlmIChzZXJ2ZXIuY29uZmlybURpYWxvZykge1xuICAgICAgaWYgKCFjbGllbnQuY29uZmlybURpYWxvZykge1xuICAgICAgICBjbGllbnQuY29uZmlybURpYWxvZyA9IHNlcnZlci5jb25maXJtRGlhbG9nO1xuICAgICAgfVxuICAgICAgdGhpcy5tZXJnZUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3JJbnRvQ2xpZW50KHNlcnZlci5jb25maXJtRGlhbG9nLCBjbGllbnQuY29uZmlybURpYWxvZyk7XG4gICAgICBjbGllbnQuY29uZmlybURpYWxvZyA9IHNlcnZlci5jb25maXJtRGlhbG9nO1xuICAgIH1cbiAgICBpZiAoc2VydmVyLmZlZWRiYWNrVHlwZSkge1xuICAgICAgY2xpZW50LmZlZWRiYWNrVHlwZSA9IHNlcnZlci5mZWVkYmFja1R5cGU7XG4gICAgfVxuXG4gICAgaWYgKHNlcnZlci5mZWVkYmFja1RleHQpIHtcbiAgICAgIGNsaWVudC5mZWVkYmFja1RleHQgPSBzZXJ2ZXIuZmVlZGJhY2tUZXh0O1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE8gdXNlIHByb3AgbmFtZSB0byBoYW5kbGUgYWxsIGRpYWxvZ3NcbiAgLy8gcHJpdmF0ZSBtZXJnZUFjdGlvbkRlc2NyaXB0b3JEaWFsb2coXG4gIC8vICAgc2VydmVyOiBVaUFjdGlvbkRlc2NyaXB0b3IsXG4gIC8vICAgY2xpZW50OiBVaUFjdGlvbkRlc2NyaXB0b3IsXG4gIC8vICAgcHJvcDogc3RyaW5nXG4gIC8vICk6IHZvaWQge1xuICAvLyAgIC8vbGV0IHNlcnZlckRpYWxvZzogVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yID0gc2VydmVyW3Byb3BdIGFzIFVpQWN0aW9uRGlhbG9nRGVzY3JpcHRvcjtcbiAgLy8gICBpZiAoc2VydmVyLmNvbmZpcm1EaWFsb2cpIHtcbiAgLy8gICAgIGlmICghY2xpZW50LmNvbmZpcm1EaWFsb2cpIHtcbiAgLy8gICAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcbiAgLy8gICAgIH1cbiAgLy8gICAgIHRoaXMubWVyZ2VBY3Rpb25EaWFsb2dEZXNjcmlwdG9ySW50b0NsaWVudChzZXJ2ZXIuY29uZmlybURpYWxvZywgY2xpZW50LmNvbmZpcm1EaWFsb2cpO1xuICAvLyAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcbiAgLy8gICB9XG4gIC8vIH1cblxuICBwcml2YXRlIG1lcmdlQWN0aW9uRGlhbG9nRGVzY3JpcHRvckludG9DbGllbnQoXG4gICAgc2VydmVyRGlhbG9nOiBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3IsXG4gICAgY2xpZW50RGlhbG9nOiBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3JcbiAgKTogdm9pZCB7XG4gICAgaWYgKHNlcnZlckRpYWxvZy50aXRsZSkge1xuICAgICAgY2xpZW50RGlhbG9nLnRpdGxlID0gc2VydmVyRGlhbG9nLnRpdGxlO1xuICAgIH1cbiAgICBpZiAoc2VydmVyRGlhbG9nLnBsYWNlaG9sZGVyKSB7XG4gICAgICBjbGllbnREaWFsb2cucGxhY2Vob2xkZXIgPSBzZXJ2ZXJEaWFsb2cucGxhY2Vob2xkZXI7XG4gICAgfVxuICAgIGlmIChzZXJ2ZXJEaWFsb2cudGV4dCkge1xuICAgICAgY2xpZW50RGlhbG9nLnRleHQgPSBzZXJ2ZXJEaWFsb2cudGV4dDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVVpQWN0aW9uRGVzY3JpcHRvcihcbiAgICB1aUFjdGlvbkRlc2NyaXB0b3I6IFVpQWN0aW9uRGVzY3JpcHRvclxuICApOiBQcm9taXNlPFVpQWN0aW9uRGVzY3JpcHRvcj4ge1xuICAgIHVpQWN0aW9uRGVzY3JpcHRvciA9IGF3YWl0IHRoaXMuZGVlcFRyYW5zbGF0ZSh1aUFjdGlvbkRlc2NyaXB0b3IpO1xuXG4gICAgcmV0dXJuIHVpQWN0aW9uRGVzY3JpcHRvcjtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZGVlcFRyYW5zbGF0ZShfbW9kZWw6IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgbGV0IG1vZGVsID0geyAuLi5fbW9kZWwgfTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIE9iamVjdC5rZXlzKG1vZGVsKS5tYXAoYXN5bmMgKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtb2RlbFtrZXldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICB0eXBlb2YgbW9kZWxba2V5XSA9PT0gJ3N0cmluZycgJiZcbiAgICAgICAgICBtb2RlbFtrZXldLmxlbmd0aCAmJlxuICAgICAgICAgIHRoaXMua2V5c1RvVHJhbnNsYXRlLmluY2x1ZGVzKGtleSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgbW9kZWxba2V5XSA9IGF3YWl0IHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZSEuZ2V0KG1vZGVsW2tleV0pLnRvUHJvbWlzZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKG1vZGVsW2tleV0gIT09IHVuZGVmaW5lZCAmJiB0eXBlb2YgbW9kZWxba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBtb2RlbFtrZXldID0gYXdhaXQgdGhpcy5kZWVwVHJhbnNsYXRlKG1vZGVsW2tleV0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlbDtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHJldHVybiBtb2RlbDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0VXBVbmtvd25EaWFsb2dEZXNjcmlwdG9yKFxuICAgIGNvZGU6IHN0cmluZyxcbiAgICB1aUFjdGlvbkRlc2NyaXB0b3I6IFVpQWN0aW9uRGVzY3JpcHRvcixcbiAgICBkaWFsb2dUeXBlOiAnZGlhbG9nJyB8ICdjb25maXJtRGlhbG9nJyB8ICdpbnB1dERpYWxvZycgfCAnaW5wdXQyRGlhbG9nJ1xuICApOiBVaUFjdGlvbkRlc2NyaXB0b3Ige1xuICAgIGxldCB1bmtvd25EZXNjcmlwdG9yID0gdGhpcy5iYXNpY0FjdGlvbkRlc2NyaXB0b3JzLmdldCgnVU5LT1dOJyk7XG5cbiAgICB1aUFjdGlvbkRlc2NyaXB0b3JbZGlhbG9nVHlwZV0gPSB1bmtvd25EZXNjcmlwdG9yIS5kaWFsb2c7XG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yW2RpYWxvZ1R5cGVdIS50aXRsZSA9IGNvZGU7XG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yW2RpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbiA9IGNvZGU7XG5cbiAgICByZXR1cm4gdWlBY3Rpb25EZXNjcmlwdG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBiYXNpY0FjdGlvbkRlc2NyaXB0b3JzOiBNYXA8c3RyaW5nLCBVaUFjdGlvbkRlc2NyaXB0b3I+ID0gbmV3IE1hcChbXG4gICAgW1xuICAgICAgJ1VOS09XTicsXG4gICAgICB7XG4gICAgICAgIHRpdGxlOiAnJyxcbiAgICAgICAgdHlwZTogVWlBY3Rpb25CdXR0b25UeXBlLk5PUk1BTCxcbiAgICAgICAgY29sb3I6ICdhY2NlbnQnLFxuICAgICAgICBpY29uOiAnUXVlc3Rpb24nLFxuICAgICAgICBpY29uQ29sb3I6IGB0ZXh0LXByaW1hcnlgLFxuICAgICAgICBpY29uUG9zaXRpb246IEljb25Qb3NpdGlvbi5QT1NULFxuICAgICAgICBkaWFsb2c6IHtcbiAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlcicsXG4gICAgICAgICAgYWN0aW9uQnV0dG9uOiB7XG4gICAgICAgICAgICBjYXB0aW9uOiAnJyxcbiAgICAgICAgICAgIGNvbG9yOiAnYWNjZW50JyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGNhbmNlbEJ1dHRvbjoge1xuICAgICAgICAgICAgY2FwdGlvbjogJ03DqWdzZScsXG4gICAgICAgICAgICBjb2xvcjogJycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgXSk7XG59XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NtYXJ0LW5nLWNsaWVudC9zcmMvbGliL3ZpZXctY29udGV4dC9zbWFydC11aS1hY3Rpb24vdWktYWN0aW9uLmRlc2NyaXB0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBRUwsWUFBWSxFQUNaLGtCQUFrQixFQUdsQixvQkFBb0IsR0FDckIsTUFBTSxRQUFRLENBQUM7OztBQU1oQixNQUFNLE9BQU8seUJBQXlCO0lBTXBDLFlBQW9CLFdBQW9DO1FBQXBDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUxoRCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFakQsb0JBQWUsR0FBa0IsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xFLG9CQUFlLEdBQWEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUM7UUE4S2hGLDJCQUFzQixHQUFvQyxJQUFJLEdBQUcsQ0FBQztZQUN4RTtnQkFDRSxRQUFRO2dCQUNSO29CQUNFLEtBQUssRUFBRSxFQUFFO29CQUNULElBQUksRUFBRSxrQkFBa0IsQ0FBQyxNQUFNO29CQUMvQixLQUFLLEVBQUUsUUFBUTtvQkFDZixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUyxFQUFFLGNBQWM7b0JBQ3pCLFlBQVksRUFBRSxZQUFZLENBQUMsSUFBSTtvQkFDL0IsTUFBTSxFQUFFO3dCQUNOLEtBQUss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QyxZQUFZLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUU1RCxPQUFPLGtCQUFrQixDQUFDO0lBQzVCLENBQUM7K0dBaExVLHlCQUF5QjttSEFBekIseUJBQXlCLGNBRnhCLE1BQU07OzRGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gJy4uLy4uL3NtYXJ0LXN1YmplY3QvcHJvamVjdHMnO1xyXG5pbXBvcnQge1xyXG4gIFVpQWN0aW9uLFxyXG4gIEljb25Qb3NpdGlvbixcclxuICBVaUFjdGlvbkJ1dHRvblR5cGUsXHJcbiAgVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG4gIFVpQWN0aW9uRGlhbG9nRGVzY3JpcHRvcixcclxuICBVaUFjdGlvbkZlZWRiYWNrVHlwZSxcclxufSBmcm9tICcuLi9hcGknO1xyXG5pbXBvcnQgeyBTbWFydFZpZXdDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL3NtYXJ0LXZpZXctY29udGV4dC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUFjdGlvbkRlc2NyaXB0b3JTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGxhbmd1YWdlQ2hhbmdlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gIGtleXNUb1RyYW5zbGF0ZTogc3RyaW5nW10gPSBbJ3RpdGxlJywgJ3RleHQnLCAncGxhY2Vob2xkZXInLCAnY2FwdGlvbicsICdmZWVkYmFja1RleHQnXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGV4dDogU21hcnRWaWV3Q29udGV4dFNlcnZpY2UpIHtcclxuICAgIGlmICh0aGlzLnZpZXdDb250ZXh0LnRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVUb1RyYW5zbGF0ZVNlcnZpY2UoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZUNoYW5nZWQucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlVG9UcmFuc2xhdGVTZXJ2aWNlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvVHJhbnNsYXRlU2VydmljZSgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlld0NvbnRleHRcclxuICAgICAgLnRyYW5zbGF0ZVNlcnZpY2UhLm9uTGFuZ0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VDaGFuZ2VkLm5leHQoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QWN0aW9uRGVzY3JpcHRvcih1aUFjdGlvbjogVWlBY3Rpb24pOiBQcm9taXNlPFVpQWN0aW9uRGVzY3JpcHRvcj4ge1xyXG4gICAgbGV0IGNvZGUgPSB1aUFjdGlvbi5jb2RlITtcclxuICAgIGxldCBpc1Vua293biA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBzZXJ2ZXI6IFVpQWN0aW9uRGVzY3JpcHRvciB8IHVuZGVmaW5lZCB8IG51bGwgPSB1aUFjdGlvbi5kZXNjcmlwdG9yO1xyXG4gICAgbGV0IGNsaWVudDogVWlBY3Rpb25EZXNjcmlwdG9yIHwgdW5kZWZpbmVkIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgbGV0IGFjdGlvbkRlc2NyaXB0b3JGcm9tRGVzY3JpcHRvcnMgPSB0aGlzLnZpZXdDb250ZXh0LmdldEFjdGlvbkRlc2NyaXB0b3JzKCk/LmdldChjb2RlKTtcclxuICAgIGlmIChhY3Rpb25EZXNjcmlwdG9yRnJvbURlc2NyaXB0b3JzKSB7XHJcbiAgICAgIGNsaWVudCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYWN0aW9uRGVzY3JpcHRvckZyb21EZXNjcmlwdG9ycykpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBhY3Rpb25EZXNjcmlwdG9yOiBVaUFjdGlvbkRlc2NyaXB0b3IgfCB1bmRlZmluZWQgfCBudWxsO1xyXG4gICAgaWYgKCFjbGllbnQpIHtcclxuICAgICAgLy8gc2VydmVyIG9ubHlcclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciA9IHNlcnZlcjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGNsaWVudCBleGlzdHNcclxuICAgICAgaWYgKHNlcnZlcikge1xyXG4gICAgICAgIC8vIHNlcnZlciAmIGNsaWVudCAtPiBtZXJnZSBpbnRvIGNsaWVudCB3aGF0J3MgZmlsbGVkIGZyb20gc2VydmVyXHJcbiAgICAgICAgdGhpcy5tZXJnZUFjdGlvbkRlc2NyaXB0b3JJbnRvQ2xpZW50KHNlcnZlciwgY2xpZW50KTtcclxuICAgICAgfVxyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0gY2xpZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghYWN0aW9uRGVzY3JpcHRvcikge1xyXG4gICAgICBpc1Vua293biA9IHRydWU7XHJcbiAgICAgIGxldCB1bmtvd25BY3Rpb25EZXNjcmlwdG9yID0gdGhpcy5iYXNpY0FjdGlvbkRlc2NyaXB0b3JzLmdldCgnVU5LT1dOJyk7XHJcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IgPSB7IC4uLnVua293bkFjdGlvbkRlc2NyaXB0b3IhIH07XHJcbiAgICAgIGFjdGlvbkRlc2NyaXB0b3IhLnRpdGxlID0gY29kZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWFjdGlvbkRlc2NyaXB0b3IhLmRpYWxvZykge1xyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0gdGhpcy5zZXRVcFVua293bkRpYWxvZ0Rlc2NyaXB0b3IoY29kZSwgYWN0aW9uRGVzY3JpcHRvciEsICdkaWFsb2cnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWFjdGlvbkRlc2NyaXB0b3IhLmZlZWRiYWNrVHlwZSAmJiB1aUFjdGlvbi5zdWJtaXQpIHtcclxuICAgICAgYWN0aW9uRGVzY3JpcHRvciEuZmVlZGJhY2tUeXBlID0gVWlBY3Rpb25GZWVkYmFja1R5cGUuU05BQ0tCQVI7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudmlld0NvbnRleHQudHJhbnNsYXRlU2VydmljZSAmJiAhaXNVbmtvd24gJiYgIXNlcnZlcikge1xyXG4gICAgICBhY3Rpb25EZXNjcmlwdG9yID0gYXdhaXQgdGhpcy50cmFuc2xhdGVVaUFjdGlvbkRlc2NyaXB0b3IoYWN0aW9uRGVzY3JpcHRvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFjdGlvbkRlc2NyaXB0b3IhO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG1lcmdlQWN0aW9uRGVzY3JpcHRvckludG9DbGllbnQoXHJcbiAgICBzZXJ2ZXI6IFVpQWN0aW9uRGVzY3JpcHRvcixcclxuICAgIGNsaWVudDogVWlBY3Rpb25EZXNjcmlwdG9yXHJcbiAgKTogdm9pZCB7XHJcbiAgICBpZiAoc2VydmVyLnRpdGxlKSB7XHJcbiAgICAgIGNsaWVudC50aXRsZSA9IHNlcnZlci50aXRsZTtcclxuICAgIH1cclxuICAgIGlmIChzZXJ2ZXIuaWNvbikge1xyXG4gICAgICBjbGllbnQuaWNvbiA9IHNlcnZlci5pY29uO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlcnZlci5jb2xvcikge1xyXG4gICAgICBjbGllbnQuY29sb3IgPSBzZXJ2ZXIuY29sb3I7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyLmNvbmZpcm1EaWFsb2cpIHtcclxuICAgICAgaWYgKCFjbGllbnQuY29uZmlybURpYWxvZykge1xyXG4gICAgICAgIGNsaWVudC5jb25maXJtRGlhbG9nID0gc2VydmVyLmNvbmZpcm1EaWFsb2c7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tZXJnZUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3JJbnRvQ2xpZW50KHNlcnZlci5jb25maXJtRGlhbG9nLCBjbGllbnQuY29uZmlybURpYWxvZyk7XHJcbiAgICAgIGNsaWVudC5jb25maXJtRGlhbG9nID0gc2VydmVyLmNvbmZpcm1EaWFsb2c7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyLmZlZWRiYWNrVHlwZSkge1xyXG4gICAgICBjbGllbnQuZmVlZGJhY2tUeXBlID0gc2VydmVyLmZlZWRiYWNrVHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc2VydmVyLmZlZWRiYWNrVGV4dCkge1xyXG4gICAgICBjbGllbnQuZmVlZGJhY2tUZXh0ID0gc2VydmVyLmZlZWRiYWNrVGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFRPRE8gdXNlIHByb3AgbmFtZSB0byBoYW5kbGUgYWxsIGRpYWxvZ3NcclxuICAvLyBwcml2YXRlIG1lcmdlQWN0aW9uRGVzY3JpcHRvckRpYWxvZyhcclxuICAvLyAgIHNlcnZlcjogVWlBY3Rpb25EZXNjcmlwdG9yLFxyXG4gIC8vICAgY2xpZW50OiBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgLy8gICBwcm9wOiBzdHJpbmdcclxuICAvLyApOiB2b2lkIHtcclxuICAvLyAgIC8vbGV0IHNlcnZlckRpYWxvZzogVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yID0gc2VydmVyW3Byb3BdIGFzIFVpQWN0aW9uRGlhbG9nRGVzY3JpcHRvcjtcclxuICAvLyAgIGlmIChzZXJ2ZXIuY29uZmlybURpYWxvZykge1xyXG4gIC8vICAgICBpZiAoIWNsaWVudC5jb25maXJtRGlhbG9nKSB7XHJcbiAgLy8gICAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcclxuICAvLyAgICAgfVxyXG4gIC8vICAgICB0aGlzLm1lcmdlQWN0aW9uRGlhbG9nRGVzY3JpcHRvckludG9DbGllbnQoc2VydmVyLmNvbmZpcm1EaWFsb2csIGNsaWVudC5jb25maXJtRGlhbG9nKTtcclxuICAvLyAgICAgY2xpZW50LmNvbmZpcm1EaWFsb2cgPSBzZXJ2ZXIuY29uZmlybURpYWxvZztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgbWVyZ2VBY3Rpb25EaWFsb2dEZXNjcmlwdG9ySW50b0NsaWVudChcclxuICAgIHNlcnZlckRpYWxvZzogVWlBY3Rpb25EaWFsb2dEZXNjcmlwdG9yLFxyXG4gICAgY2xpZW50RGlhbG9nOiBVaUFjdGlvbkRpYWxvZ0Rlc2NyaXB0b3JcclxuICApOiB2b2lkIHtcclxuICAgIGlmIChzZXJ2ZXJEaWFsb2cudGl0bGUpIHtcclxuICAgICAgY2xpZW50RGlhbG9nLnRpdGxlID0gc2VydmVyRGlhbG9nLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgaWYgKHNlcnZlckRpYWxvZy5wbGFjZWhvbGRlcikge1xyXG4gICAgICBjbGllbnREaWFsb2cucGxhY2Vob2xkZXIgPSBzZXJ2ZXJEaWFsb2cucGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VydmVyRGlhbG9nLnRleHQpIHtcclxuICAgICAgY2xpZW50RGlhbG9nLnRleHQgPSBzZXJ2ZXJEaWFsb2cudGV4dDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdHJhbnNsYXRlVWlBY3Rpb25EZXNjcmlwdG9yKFxyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yOiBVaUFjdGlvbkRlc2NyaXB0b3JcclxuICApOiBQcm9taXNlPFVpQWN0aW9uRGVzY3JpcHRvcj4ge1xyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yID0gYXdhaXQgdGhpcy5kZWVwVHJhbnNsYXRlKHVpQWN0aW9uRGVzY3JpcHRvcik7XHJcblxyXG4gICAgcmV0dXJuIHVpQWN0aW9uRGVzY3JpcHRvcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZGVlcFRyYW5zbGF0ZShfbW9kZWw6IGFueSk6IFByb21pc2U8YW55PiB7XHJcbiAgICBsZXQgbW9kZWwgPSB7IC4uLl9tb2RlbCB9O1xyXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIE9iamVjdC5rZXlzKG1vZGVsKS5tYXAoYXN5bmMgKGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgbW9kZWxba2V5XSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgICB0eXBlb2YgbW9kZWxba2V5XSA9PT0gJ3N0cmluZycgJiZcclxuICAgICAgICAgIG1vZGVsW2tleV0ubGVuZ3RoICYmXHJcbiAgICAgICAgICB0aGlzLmtleXNUb1RyYW5zbGF0ZS5pbmNsdWRlcyhrZXkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBtb2RlbFtrZXldID0gYXdhaXQgdGhpcy52aWV3Q29udGV4dC50cmFuc2xhdGVTZXJ2aWNlIS5nZXQobW9kZWxba2V5XSkudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChtb2RlbFtrZXldICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIG1vZGVsW2tleV0gPT09ICdvYmplY3QnKSB7XHJcbiAgICAgICAgICBtb2RlbFtrZXldID0gYXdhaXQgdGhpcy5kZWVwVHJhbnNsYXRlKG1vZGVsW2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbW9kZWw7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBtb2RlbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0VXBVbmtvd25EaWFsb2dEZXNjcmlwdG9yKFxyXG4gICAgY29kZTogc3RyaW5nLFxyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yOiBVaUFjdGlvbkRlc2NyaXB0b3IsXHJcbiAgICBkaWFsb2dUeXBlOiAnZGlhbG9nJyB8ICdjb25maXJtRGlhbG9nJyB8ICdpbnB1dERpYWxvZycgfCAnaW5wdXQyRGlhbG9nJ1xyXG4gICk6IFVpQWN0aW9uRGVzY3JpcHRvciB7XHJcbiAgICBsZXQgdW5rb3duRGVzY3JpcHRvciA9IHRoaXMuYmFzaWNBY3Rpb25EZXNjcmlwdG9ycy5nZXQoJ1VOS09XTicpO1xyXG5cclxuICAgIHVpQWN0aW9uRGVzY3JpcHRvcltkaWFsb2dUeXBlXSA9IHVua293bkRlc2NyaXB0b3IhLmRpYWxvZztcclxuICAgIHVpQWN0aW9uRGVzY3JpcHRvcltkaWFsb2dUeXBlXSEudGl0bGUgPSBjb2RlO1xyXG4gICAgdWlBY3Rpb25EZXNjcmlwdG9yW2RpYWxvZ1R5cGVdIS5hY3Rpb25CdXR0b24uY2FwdGlvbiA9IGNvZGU7XHJcblxyXG4gICAgcmV0dXJuIHVpQWN0aW9uRGVzY3JpcHRvcjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmFzaWNBY3Rpb25EZXNjcmlwdG9yczogTWFwPHN0cmluZywgVWlBY3Rpb25EZXNjcmlwdG9yPiA9IG5ldyBNYXAoW1xyXG4gICAgW1xyXG4gICAgICAnVU5LT1dOJyxcclxuICAgICAge1xyXG4gICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICB0eXBlOiBVaUFjdGlvbkJ1dHRvblR5cGUuTk9STUFMLFxyXG4gICAgICAgIGNvbG9yOiAnYWNjZW50JyxcclxuICAgICAgICBpY29uOiAnUXVlc3Rpb24nLFxyXG4gICAgICAgIGljb25Db2xvcjogYHRleHQtcHJpbWFyeWAsXHJcbiAgICAgICAgaWNvblBvc2l0aW9uOiBJY29uUG9zaXRpb24uUE9TVCxcclxuICAgICAgICBkaWFsb2c6IHtcclxuICAgICAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXInLFxyXG4gICAgICAgICAgYWN0aW9uQnV0dG9uOiB7XHJcbiAgICAgICAgICAgIGNhcHRpb246ICcnLFxyXG4gICAgICAgICAgICBjb2xvcjogJ2FjY2VudCcsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgY2FuY2VsQnV0dG9uOiB7XHJcbiAgICAgICAgICAgIGNhcHRpb246ICdNw6lnc2UnLFxyXG4gICAgICAgICAgICBjb2xvcjogJycsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIF0pO1xyXG59XHJcbiJdfQ==
@@ -4,4 +4,4 @@ export var UiActionDialogType;
4
4
  UiActionDialogType["confirmDialog"] = "confirmDialog";
5
5
  UiActionDialogType["dialog"] = "dialog";
6
6
  })(UiActionDialogType || (UiActionDialogType = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMERBLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsaURBQTJCLENBQUE7SUFDM0IscURBQStCLENBQUE7SUFDL0IsdUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBVaUFjdGlvbiB9IGZyb20gJy4uL2FwaS9tb2RlbC91aUFjdGlvbic7XG5pbXBvcnQgeyBVaUFjdGlvbkRlc2NyaXB0b3IgfSBmcm9tICcuLi9hcGkvbW9kZWwvdWlBY3Rpb25EZXNjcmlwdG9yJztcbmltcG9ydCB7IFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL2FwaS9tb2RlbC91aUFjdGlvblJlcXVlc3QnO1xuaW1wb3J0IHsgU21hcnRGb3JtSW52YWxpZEZpZWxkcyB9IGZyb20gJy4uLy4uL3NtYXJ0LWZvcm0vc21hcnRmb3JtLm1vZGVsJztcblxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvbk1vZGVsIHtcbiAgdWlBY3Rpb246IFVpQWN0aW9uO1xuICBzZXJ2aWNlVG9Vc2U6IFVzZVVpQWN0aW9uIHwgVXNlVWlBY3Rpb24yO1xuICBleGNlcHRpb24/OiBib29sZWFuO1xuICBkZXNjcmlwdG9yPzogVWlBY3Rpb25EZXNjcmlwdG9yO1xuICBjc3NDbGFzcz86IHN0cmluZztcbiAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG4gIG5vZGVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVc2VVaUFjdGlvbiB7XG4gIHN1Ym1pdDogU3ViamVjdDx2b2lkPjtcbiAgcmVTdWJzY3JpYmVUb0NoYW5nZTogU3ViamVjdDx2b2lkPjtcbiAgZ2V0QWRkaXRpb25hbFBhcmFtcyh1aUFjdGlvbjogVWlBY3Rpb24pOiBVaUFjdGlvbkFkZGl0aW9uYWxQYXJhbXM7XG4gIGdldE1vZGVsKCk6IGFueTtcbiAgcGVyZm9ybVVpQWN0aW9uUmVxdWVzdChcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcbiAgICB3aWRnZXRJZD86IHN0cmluZyxcbiAgICBub2RlSWQ/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxhbnk+O1xuICBoYW5kbGVTcGVjaWZpY0RlbWFuZHNBc3luY2hyb25vdXNseShcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3RcbiAgKTogUHJvbWlzZTxVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZVVpQWN0aW9uMiB7XG4gIHN1Ym1pdEZvcm0odmFsaWRhdGU6IGJvb2xlYW4pOiB2b2lkO1xuICBnZXRJbnZhbGlkRmllbGRzKCk6IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHM7XG4gIGdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb246IFVpQWN0aW9uKTogVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zO1xuICBnZXRNb2RlbCgpOiBhbnk7XG4gIHBlcmZvcm1VaUFjdGlvblJlcXVlc3QoXG4gICAgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QsXG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmcsXG4gICAgbm9kZUlkPzogc3RyaW5nXG4gICk6IFByb21pc2U8YW55PjtcbiAgaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICk6IFByb21pc2U8VWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2Uge1xuICBzaG91bGRQZXJmb3JtQWN0aW9uOiBib29sZWFuO1xuICB1aUFjdGlvblJlcXVlc3Q/OiBVaUFjdGlvblJlcXVlc3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVWlBY3Rpb25BZGRpdGlvbmFsUGFyYW1zIHtcbiAgZm9yVGV4dEZpZWxkPzogc3RyaW5nO1xuICBmb3JUZXh0QXJlYT86IHN0cmluZztcbn1cblxuZXhwb3J0IGVudW0gVWlBY3Rpb25EaWFsb2dUeXBlIHtcbiAgaW5wdXREaWFsb2cgPSAnaW5wdXREaWFsb2cnLFxuICBjb25maXJtRGlhbG9nID0gJ2NvbmZpcm1EaWFsb2cnLFxuICBkaWFsb2cgPSAnZGlhbG9nJyxcbn1cbiJdfQ==
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc21hcnQtbmctY2xpZW50L3NyYy9saWIvdmlldy1jb250ZXh0L3NtYXJ0LXVpLWFjdGlvbi91aS1hY3Rpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMERBLE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDNUIsaURBQTJCLENBQUE7SUFDM0IscURBQStCLENBQUE7SUFDL0IsdUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFVpQWN0aW9uIH0gZnJvbSAnLi4vYXBpL21vZGVsL3VpQWN0aW9uJztcclxuaW1wb3J0IHsgVWlBY3Rpb25EZXNjcmlwdG9yIH0gZnJvbSAnLi4vYXBpL21vZGVsL3VpQWN0aW9uRGVzY3JpcHRvcic7XHJcbmltcG9ydCB7IFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL2FwaS9tb2RlbC91aUFjdGlvblJlcXVlc3QnO1xyXG5pbXBvcnQgeyBTbWFydEZvcm1JbnZhbGlkRmllbGRzIH0gZnJvbSAnLi4vLi4vc21hcnQtZm9ybS9zbWFydGZvcm0ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvbk1vZGVsIHtcclxuICB1aUFjdGlvbjogVWlBY3Rpb247XHJcbiAgc2VydmljZVRvVXNlOiBVc2VVaUFjdGlvbiB8IFVzZVVpQWN0aW9uMjtcclxuICBleGNlcHRpb24/OiBib29sZWFuO1xyXG4gIGRlc2NyaXB0b3I/OiBVaUFjdGlvbkRlc2NyaXB0b3I7XHJcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XHJcbiAgd2lkZ2V0SWQ/OiBzdHJpbmc7XHJcbiAgbm9kZUlkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZVVpQWN0aW9uIHtcclxuICBzdWJtaXQ6IFN1YmplY3Q8dm9pZD47XHJcbiAgcmVTdWJzY3JpYmVUb0NoYW5nZTogU3ViamVjdDx2b2lkPjtcclxuICBnZXRBZGRpdGlvbmFsUGFyYW1zKHVpQWN0aW9uOiBVaUFjdGlvbik6IFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcztcclxuICBnZXRNb2RlbCgpOiBhbnk7XHJcbiAgcGVyZm9ybVVpQWN0aW9uUmVxdWVzdChcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmcsXHJcbiAgICBub2RlSWQ/OiBzdHJpbmdcclxuICApOiBQcm9taXNlPGFueT47XHJcbiAgaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VVaUFjdGlvbjIge1xyXG4gIHN1Ym1pdEZvcm0odmFsaWRhdGU6IGJvb2xlYW4pOiB2b2lkO1xyXG4gIGdldEludmFsaWRGaWVsZHMoKTogU21hcnRGb3JtSW52YWxpZEZpZWxkcztcclxuICBnZXRBZGRpdGlvbmFsUGFyYW1zKHVpQWN0aW9uOiBVaUFjdGlvbik6IFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcztcclxuICBnZXRNb2RlbCgpOiBhbnk7XHJcbiAgcGVyZm9ybVVpQWN0aW9uUmVxdWVzdChcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgd2lkZ2V0SWQ/OiBzdHJpbmcsXHJcbiAgICBub2RlSWQ/OiBzdHJpbmdcclxuICApOiBQcm9taXNlPGFueT47XHJcbiAgaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25TcGVjaWZpY0RlbWFuZFJlc3BvbnNlPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVaUFjdGlvblNwZWNpZmljRGVtYW5kUmVzcG9uc2Uge1xyXG4gIHNob3VsZFBlcmZvcm1BY3Rpb246IGJvb2xlYW47XHJcbiAgdWlBY3Rpb25SZXF1ZXN0PzogVWlBY3Rpb25SZXF1ZXN0O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVpQWN0aW9uQWRkaXRpb25hbFBhcmFtcyB7XHJcbiAgZm9yVGV4dEZpZWxkPzogc3RyaW5nO1xyXG4gIGZvclRleHRBcmVhPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBVaUFjdGlvbkRpYWxvZ1R5cGUge1xyXG4gIGlucHV0RGlhbG9nID0gJ2lucHV0RGlhbG9nJyxcclxuICBjb25maXJtRGlhbG9nID0gJ2NvbmZpcm1EaWFsb2cnLFxyXG4gIGRpYWxvZyA9ICdkaWFsb2cnLFxyXG59XHJcbiJdfQ==
@@ -210,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
210
210
  type: Inject,
211
211
  args: ['fileUploadDialogService']
212
212
  }] }, { type: i1.MatSnackBar }] });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFZLG9CQUFvQixFQUFFLGlCQUFpQixFQUFtQixNQUFNLFFBQVEsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQU10RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7OztBQWlCaEgsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDMEMsb0JBQWtELEVBQ2hELHNCQUFrRCxFQUVwRix1QkFBd0QsRUFDeEQsU0FBc0I7UUFKVSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQThCO1FBQ2hELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBNEI7UUFFcEYsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztRQUN4RCxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBUHhCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVE5QyxDQUFDO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFrQixFQUFFLE9BQWdDO1FBQ2hFLElBQUksZUFBNEMsQ0FBQztRQUVqRCxl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QztJQUNMLENBQUM7K0dBbFFVLGVBQWUsa0JBS2hCLHNCQUFzQixhQUN0Qix3QkFBd0IsYUFDeEIseUJBQXlCO21IQVB4QixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XG5cbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVpQWN0aW9uLCBVaUFjdGlvbkZlZWRiYWNrVHlwZSwgVWlBY3Rpb25JbnB1dFR5cGUsIFVpQWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL2FwaSc7XG5pbXBvcnQgeyBTdWNjZXNzU25hY2tCYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3VjY2Vzcy1zbmFjay1iYXIvc3VjY2Vzcy1zbmFjay1iYXIuY29tcG9uZW50JztcblxuaW1wb3J0IHR5cGUgeyBVaUFjdGlvbkNvbmZpcm1EaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2dzL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy91aS1hY3Rpb24tY29uZmlybS1kaWFsb2cuc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi9kaWFsb2dzL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cvdWktYWN0aW9uLWlucHV0LWRpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuL3VpLWFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgdHlwZSB7IFVpQWN0aW9uRmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZ3MvdWktYWN0aW9uLWZpbGUtdXBsb2FkLWRpYWxvZy91aS1hY3Rpb24tZmlsZS11cGxvYWQtZGlhbG9nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU21hcnRTdWJqZWN0IH0gZnJvbSAnLi4vLi4vc21hcnQtc3ViamVjdC9wcm9qZWN0cyc7XG5pbXBvcnQgeyBJbnZhbGlkRmllbGRzU25hY2tCYXJDb21wb25lbnQgfSBmcm9tICcuLi9pbnZhbGlkLWZpZWxkcy1zbmFjay1iYXIvaW52YWxpZC1maWVsZHMtc25hY2stYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbWFydEZvcm1JbnZhbGlkRmllbGRzIH0gZnJvbSAnLi4vLi4vc21hcnQtZm9ybS9zbWFydGZvcm0ubW9kZWwnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogSW4gY2FzZSBvZiB1c2luZyBhIGdyaWQ6IGdyaWQuaWRlbnRpZmllclxuICAgKi9cbiAgd2lkZ2V0SWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJbiBjYXNlIG9mIHVzaW5nIGEgZ3JpZDogZ3JpZFJvdy5pZFxuICAgKi9cbiAgbm9kZUlkPzogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgVWlBY3Rpb25TZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgdWlBY3Rpb25Nb2RlbCE6IFVpQWN0aW9uTW9kZWw7XG4gIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KCdjb25maXJtRGlhbG9nU2VydmljZScpIHByaXZhdGUgY29uZmlybURpYWxvZ1NlcnZpY2U6IFVpQWN0aW9uQ29uZmlybURpYWxvZ1NlcnZpY2UsXG4gICAgQEluamVjdCgndGV4dEZpZWxkRGlhbG9nU2VydmljZScpIHByaXZhdGUgdGV4dEZpZWxkRGlhbG9nU2VydmljZTogVWlBY3Rpb25JbnB1dERpYWxvZ1NlcnZpY2UsXG4gICAgQEluamVjdCgnZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UnKVxuICAgIHByaXZhdGUgZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2U6IFVpQWN0aW9uRmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBfc25hY2tCYXI6IE1hdFNuYWNrQmFyXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGUodWlBY3Rpb246IFVpQWN0aW9uLCBvcHRpb25zPzogRXhlY3V0ZVVpQWN0aW9uT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCB8IHVuZGVmaW5lZDtcblxuICAgIHVpQWN0aW9uUmVxdWVzdCA9IHtcbiAgICAgIGNvZGU6IHVpQWN0aW9uLmNvZGUhLFxuICAgICAgcGF0aDogdWlBY3Rpb24ucGF0aCxcbiAgICAgIGlkZW50aWZpZXI6IHVpQWN0aW9uLmlkZW50aWZpZXIsXG4gICAgICBwYXJhbXM6IHVpQWN0aW9uLnBhcmFtcyA/PyB7fSxcbiAgICB9O1xuXG4gICAgaWYgKHVpQWN0aW9uLnN1Ym1pdCB8fCB1aUFjdGlvbi5tb2RlbCkge1xuICAgICAgLy8gc3VibWl0OiB3aXRoIHZhbGlkYXRpb24sIG1vZGVsOiB3aXRob3V0IHZhbGlkYXRpb24uIGJvdGggY2FuIGJlIHVuZGVmaW5lZFxuICAgICAgY29uc3QgdmFsaWRhdGUgPSB1aUFjdGlvbi5zdWJtaXQgfHwgIXVpQWN0aW9uLm1vZGVsO1xuXG4gICAgICBpZiAoJ3JlU3Vic2NyaWJlVG9DaGFuZ2UnIGluIHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UpIHtcbiAgICAgICAgaWYgKCF2YWxpZGF0ZSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFZhbGlkYXRlID0gZmFsc2UsIGJ1dCBVc2VVaUFjdGlvbiBkb2Vzbid0IHN1cHBvcnQgaXRgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnN1Ym1pdC5uZXh0KCk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXQudG9Qcm9taXNlKCk7XG4gICAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXQgPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnJlU3Vic2NyaWJlVG9DaGFuZ2UubmV4dCgpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXQgPSBuZXcgU21hcnRTdWJqZWN0KHRoaXMuX2Rlc3Ryb3kkKTtcbiAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnJlU3Vic2NyaWJlVG9DaGFuZ2UubmV4dCgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXRGb3JtKHZhbGlkYXRlKTtcbiAgICAgICAgbGV0IGludmFsaWRGaWVsZHMgPSB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldEludmFsaWRGaWVsZHMoKTtcbiAgICAgICAgaWYgKHZhbGlkYXRlICYmIGludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLnNob3dJbnZhbGlkRmllbGRzU25hY2tiYXIoaW52YWxpZEZpZWxkcyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVpQWN0aW9uLmNvbmZpcm0pIHtcbiAgICAgIHRoaXMuY29uZmlybURpYWxvZ1NlcnZpY2UuYWN0aW9uID0gdWlBY3Rpb247XG4gICAgICB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coKTtcbiAgICAgIGF3YWl0IHRoaXMuY29uZmlybURpYWxvZ1NlcnZpY2Uub25BY3Rpb24udG9Qcm9taXNlKCk7XG4gICAgICBpZiAoIXRoaXMuY29uZmlybURpYWxvZ1NlcnZpY2Uuc2hvdWxkRG9BY3Rpb24pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElucHV0VHlwZVxuICAgIGlmICh1aUFjdGlvbi5pbnB1dFR5cGUgJiYgdWlBY3Rpb24uaW5wdXRUeXBlICE9PSBVaUFjdGlvbklucHV0VHlwZS5OT05FKSB7XG4gICAgICB1aUFjdGlvblJlcXVlc3QgPSBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZShcbiAgICAgICAgdWlBY3Rpb24uaW5wdXRUeXBlLFxuICAgICAgICB1aUFjdGlvbixcbiAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxuICAgICAgICAnaW5wdXREaWFsb2cnXG4gICAgICApO1xuICAgICAgaWYgKCF1aUFjdGlvblJlcXVlc3QpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjUwKSk7XG4gICAgfVxuICAgIC8vIElucHV0MlR5cGVcbiAgICBpZiAodWlBY3Rpb24uaW5wdXQyVHlwZSAmJiB1aUFjdGlvbi5pbnB1dDJUeXBlICE9PSBVaUFjdGlvbklucHV0VHlwZS5OT05FKSB7XG4gICAgICB1aUFjdGlvblJlcXVlc3QgPSBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZShcbiAgICAgICAgdWlBY3Rpb24uaW5wdXQyVHlwZSxcbiAgICAgICAgdWlBY3Rpb24sXG4gICAgICAgIHVpQWN0aW9uUmVxdWVzdCxcbiAgICAgICAgJ2lucHV0MkRpYWxvZydcbiAgICAgICk7XG4gICAgICBpZiAoIXVpQWN0aW9uUmVxdWVzdCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudWlBY3Rpb25Nb2RlbC5leGNlcHRpb24pIHtcbiAgICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UuaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXG4gICAgICAgIHVpQWN0aW9uLFxuICAgICAgICB1aUFjdGlvblJlcXVlc3RcbiAgICAgICk7XG5cbiAgICAgIGlmICghcmVzcG9uc2Uuc2hvdWxkUGVyZm9ybUFjdGlvbiB8fCAhcmVzcG9uc2UudWlBY3Rpb25SZXF1ZXN0KSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHVpQWN0aW9uUmVxdWVzdCA9IHJlc3BvbnNlLnVpQWN0aW9uUmVxdWVzdDtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnBlcmZvcm1BY3Rpb24odWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUlucHV0VHlwZShcbiAgICBpbnB1dFR5cGU6IFVpQWN0aW9uSW5wdXRUeXBlLFxuICAgIHVpQWN0aW9uOiBVaUFjdGlvbixcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcbiAgICBpbnB1dFR5cGVOYW1lOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZydcbiAgKTogUHJvbWlzZTxVaUFjdGlvblJlcXVlc3QgfCB1bmRlZmluZWQ+IHtcbiAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xuICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5OT05FOlxuICAgICAgICByZXR1cm4gdWlBY3Rpb25SZXF1ZXN0O1xuICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5URVhUQVJFQTpcbiAgICAgIGNhc2UgVWlBY3Rpb25JbnB1dFR5cGUuVEVYVEZJRUxEOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGVUZXh0RmllbGQoaW5wdXRUeXBlTmFtZSwgdWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCk7XG4gICAgICBjYXNlIFVpQWN0aW9uSW5wdXRUeXBlLlVTRVJfU0VMRUNUOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGVVc2VyU2VsZWN0KGlucHV0VHlwZU5hbWUsIHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QpO1xuICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5GSUxFOlxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGVVcGxvYWQoaW5wdXRUeXBlTmFtZSwgdWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCwgZmFsc2UpO1xuICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5NVUxUSVBMRV9GSUxFUzpcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlSW5wdXRUeXBlVXBsb2FkKGlucHV0VHlwZU5hbWUsIHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QsIHRydWUpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUlucHV0VHlwZVRleHRGaWVsZChcbiAgICBpbnB1dFR5cGVOYW1lOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZycsXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IGFkZGl0aW9uYWxQYXJhbXMgPSB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldEFkZGl0aW9uYWxQYXJhbXModWlBY3Rpb24pO1xuICAgIGxldCBpbnB1dFR5cGU6ICdpbnB1dFR5cGUnIHwgJ2lucHV0MlR5cGUnID1cbiAgICAgIGlucHV0VHlwZU5hbWUgPT09ICdpbnB1dERpYWxvZycgPyAnaW5wdXRUeXBlJyA6ICdpbnB1dDJUeXBlJztcblxuICAgIGlmICh1aUFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5URVhURklFTEQpIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5ub2RlTmFtZSA9IGFkZGl0aW9uYWxQYXJhbXMuZm9yVGV4dEZpZWxkO1xuICAgIH0gZWxzZSBpZiAodWlBY3Rpb25baW5wdXRUeXBlXSA9PT0gVWlBY3Rpb25JbnB1dFR5cGUuVEVYVEFSRUEpIHtcbiAgICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5ub2RlTmFtZSA9IGFkZGl0aW9uYWxQYXJhbXMuZm9yVGV4dEFyZWE7XG4gICAgfVxuXG4gICAgdGhpcy50ZXh0RmllbGREaWFsb2dTZXJ2aWNlLmlucHV0VHlwZU5hbWUgPSBpbnB1dFR5cGVOYW1lO1xuICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5hY3Rpb24gPSB1aUFjdGlvbjtcblxuICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKCk7XG5cbiAgICBhd2FpdCB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2Uub25BY3Rpb24udG9Qcm9taXNlKCk7XG4gICAgbGV0IHBhcmFtcyA9IHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5wYXJhbXM7XG5cbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgY29uc29sZS5lcnJvcignVGhlcmUgd2FzIG5vIHJlc3BvbnNlIGZyb20gSW5wdXREaWFsb2cnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdWlBY3Rpb25SZXF1ZXN0LnBhcmFtcyA9IHtcbiAgICAgIC4uLnVpQWN0aW9uUmVxdWVzdC5wYXJhbXMsXG4gICAgICAuLi5wYXJhbXMsXG4gICAgfTtcbiAgICByZXR1cm4gdWlBY3Rpb25SZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVJbnB1dFR5cGVVcGxvYWQoXG4gICAgaW5wdXRUeXBlTmFtZTogJ2lucHV0RGlhbG9nJyB8ICdpbnB1dDJEaWFsb2cnLFxuICAgIHVpQWN0aW9uOiBVaUFjdGlvbixcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcbiAgICBpc011bHRpcGxlOiBib29sZWFuXG4gICk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgdGhpcy5maWxlVXBsb2FkRGlhbG9nU2VydmljZS5pbnB1dFR5cGVOYW1lID0gaW5wdXRUeXBlTmFtZTtcbiAgICB0aGlzLmZpbGVVcGxvYWREaWFsb2dTZXJ2aWNlLmFjdGlvbiA9IHVpQWN0aW9uO1xuICAgIHRoaXMuZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UuaXNNdWx0aXBsZSA9IGlzTXVsdGlwbGU7XG5cbiAgICB0aGlzLmZpbGVVcGxvYWREaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coKTtcblxuICAgIGF3YWl0IHRoaXMuZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2Uub25BY3Rpb24udG9Qcm9taXNlKCk7XG4gICAgbGV0IGZpbGVzID0gdGhpcy5maWxlVXBsb2FkRGlhbG9nU2VydmljZS5maWxlcztcbiAgICBsZXQgdXBsb2FkRGVzY3JpcHRvciA9IHRoaXMuZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UudXBsb2FkRGVzY3JpcHRvcjtcblxuICAgIGlmICghZmlsZXMgfHwgIWZpbGVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgPSB7XG4gICAgICAuLi51aUFjdGlvblJlcXVlc3QucGFyYW1zLFxuICAgICAgX2ZpbGVzOiBmaWxlcyxcbiAgICAgIF91cGxvYWREZXNjcmlwdG9yOiB1cGxvYWREZXNjcmlwdG9yLFxuICAgICAgaXNNdWx0aXBsZSxcbiAgICAgIHBhcmFtOlxuICAgICAgICB1aUFjdGlvbi5pbnB1dFR5cGUgPT09ICdmaWxlJyB8fCB1aUFjdGlvbi5pbnB1dFR5cGUgPT09ICdtdWx0aXBsZV9maWxlcydcbiAgICAgICAgICA/ICdpbnB1dCdcbiAgICAgICAgICA6ICdpbnB1dDInLFxuICAgIH07XG4gICAgcmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSW5wdXRUeXBlVXNlclNlbGVjdChcbiAgICBpbnB1dFR5cGVOYW1lOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZycsXG4gICAgdWlBY3Rpb246IFVpQWN0aW9uLFxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XG4gICk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XG4gICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5oYW5kbGVTcGVjaWZpY0RlbWFuZHNBc3luY2hyb25vdXNseShcbiAgICAgIHVpQWN0aW9uLFxuICAgICAgdWlBY3Rpb25SZXF1ZXN0XG4gICAgKTtcblxuICAgIGlmICghcmVzcG9uc2Uuc2hvdWxkUGVyZm9ybUFjdGlvbiB8fCAhcmVzcG9uc2UudWlBY3Rpb25SZXF1ZXN0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHVpQWN0aW9uUmVxdWVzdCA9IHJlc3BvbnNlLnVpQWN0aW9uUmVxdWVzdDtcbiAgICByZXR1cm4gdWlBY3Rpb25SZXF1ZXN0O1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwZXJmb3JtQWN0aW9uKFxuICAgIHVpQWN0aW9uOiBVaUFjdGlvbixcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcbiAgICBvcHRpb25zPzogRXhlY3V0ZVVpQWN0aW9uT3B0aW9uc1xuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoXG4gICAgICAhdWlBY3Rpb25SZXF1ZXN0LnBhcmFtcyB8fFxuICAgICAgKHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgJiYgIU9iamVjdC5rZXlzKHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMpLmxlbmd0aClcbiAgICApIHtcbiAgICAgIHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgPSB7XG4gICAgICAgIG1vZGVsOiB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldE1vZGVsKCksXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodWlBY3Rpb24uc3VibWl0IHx8IHVpQWN0aW9uLm1vZGVsKSB7XG4gICAgICB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydtb2RlbCddID0gdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5nZXRNb2RlbCgpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnBlcmZvcm1VaUFjdGlvblJlcXVlc3QoXG4gICAgICAgIHVpQWN0aW9uUmVxdWVzdCxcbiAgICAgICAgb3B0aW9ucz8ud2lkZ2V0SWQsXG4gICAgICAgIG9wdGlvbnM/Lm5vZGVJZFxuICAgICAgKTtcblxuICAgICAgaWYgKHRoaXMudWlBY3Rpb25Nb2RlbC5kZXNjcmlwdG9yPy5mZWVkYmFja1R5cGUgPT09IFVpQWN0aW9uRmVlZGJhY2tUeXBlLlNOQUNLQkFSKSB7XG4gICAgICAgIHRoaXMuc2hvd1NhdmVkU25hY2tiYXIodWlBY3Rpb24pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHNob3dTYXZlZFNuYWNrYmFyKHVpQWN0aW9uOiBVaUFjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KFN1Y2Nlc3NTbmFja0JhckNvbXBvbmVudCwge1xuICAgICAgZHVyYXRpb246IDUgKiAxMDAwLFxuICAgICAgcGFuZWxDbGFzczogWydiYWNrZ3JvdW5kQ29sb3ItYWNjZW50J10sXG4gICAgICBkYXRhOiB1aUFjdGlvbixcbiAgICB9KTtcbiAgfVxuXG4gIHNob3dJbnZhbGlkRmllbGRzU25hY2tiYXIoaW52YWxpZEZpZWxkczogU21hcnRGb3JtSW52YWxpZEZpZWxkcyk6IHZvaWQge1xuICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KEludmFsaWRGaWVsZHNTbmFja0JhckNvbXBvbmVudCwge1xuICAgICAgZHVyYXRpb246IDUgKiAxMDAwLFxuICAgICAgcGFuZWxDbGFzczogWydiYWNrZ3JvdW5kQ29sb3Itd2FybiddLFxuICAgICAgZGF0YTogaW52YWxpZEZpZWxkcyxcbiAgICB9KTtcbiAgfVxufVxuIl19
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktYWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zbWFydC1uZy1jbGllbnQvc3JjL2xpYi92aWV3LWNvbnRleHQvc21hcnQtdWktYWN0aW9uL3VpLWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFZLG9CQUFvQixFQUFFLGlCQUFpQixFQUFtQixNQUFNLFFBQVEsQ0FBQztBQUM1RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQU10RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7OztBQWlCaEgsTUFBTSxPQUFPLGVBQWU7SUFJMUIsWUFDMEMsb0JBQWtELEVBQ2hELHNCQUFrRCxFQUVwRix1QkFBd0QsRUFDeEQsU0FBc0I7UUFKVSx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQThCO1FBQ2hELDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBNEI7UUFFcEYsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztRQUN4RCxjQUFTLEdBQVQsU0FBUyxDQUFhO1FBUHhCLGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVE5QyxDQUFDO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFrQixFQUFFLE9BQWdDO1FBQ2hFLElBQUksZUFBNEMsQ0FBQztRQUVqRCxl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QztJQUNMLENBQUM7K0dBbFFVLGVBQWUsa0JBS2hCLHNCQUFzQixhQUN0Qix3QkFBd0IsYUFDeEIseUJBQXlCO21IQVB4QixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsc0JBQXNCOzswQkFDN0IsTUFBTTsyQkFBQyx3QkFBd0I7OzBCQUMvQixNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVWlBY3Rpb24sIFVpQWN0aW9uRmVlZGJhY2tUeXBlLCBVaUFjdGlvbklucHV0VHlwZSwgVWlBY3Rpb25SZXF1ZXN0IH0gZnJvbSAnLi4vYXBpJztcclxuaW1wb3J0IHsgU3VjY2Vzc1NuYWNrQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3N1Y2Nlc3Mtc25hY2stYmFyL3N1Y2Nlc3Mtc25hY2stYmFyLmNvbXBvbmVudCc7XHJcblxyXG5pbXBvcnQgdHlwZSB7IFVpQWN0aW9uQ29uZmlybURpYWxvZ1NlcnZpY2UgfSBmcm9tICcuL2RpYWxvZ3MvdWktYWN0aW9uLWNvbmZpcm0tZGlhbG9nL3VpLWFjdGlvbi1jb25maXJtLWRpYWxvZy5zZXJ2aWNlJztcclxuaW1wb3J0IHR5cGUgeyBVaUFjdGlvbklucHV0RGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlhbG9ncy91aS1hY3Rpb24taW5wdXQtZGlhbG9nL3VpLWFjdGlvbi1pbnB1dC1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFVpQWN0aW9uTW9kZWwgfSBmcm9tICcuL3VpLWFjdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB0eXBlIHsgVWlBY3Rpb25GaWxlVXBsb2FkRGlhbG9nU2VydmljZSB9IGZyb20gJy4vZGlhbG9ncy91aS1hY3Rpb24tZmlsZS11cGxvYWQtZGlhbG9nL3VpLWFjdGlvbi1maWxlLXVwbG9hZC1kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFNtYXJ0U3ViamVjdCB9IGZyb20gJy4uLy4uL3NtYXJ0LXN1YmplY3QvcHJvamVjdHMnO1xyXG5pbXBvcnQgeyBJbnZhbGlkRmllbGRzU25hY2tCYXJDb21wb25lbnQgfSBmcm9tICcuLi9pbnZhbGlkLWZpZWxkcy1zbmFjay1iYXIvaW52YWxpZC1maWVsZHMtc25hY2stYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMgfSBmcm9tICcuLi8uLi9zbWFydC1mb3JtL3NtYXJ0Zm9ybS5tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnMge1xyXG4gIC8qKlxyXG4gICAqIEluIGNhc2Ugb2YgdXNpbmcgYSBncmlkOiBncmlkLmlkZW50aWZpZXJcclxuICAgKi9cclxuICB3aWRnZXRJZD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBJbiBjYXNlIG9mIHVzaW5nIGEgZ3JpZDogZ3JpZFJvdy5pZFxyXG4gICAqL1xyXG4gIG5vZGVJZD86IHN0cmluZztcclxufVxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFVpQWN0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgdWlBY3Rpb25Nb2RlbCE6IFVpQWN0aW9uTW9kZWw7XHJcbiAgcHJpdmF0ZSBfZGVzdHJveSQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBJbmplY3QoJ2NvbmZpcm1EaWFsb2dTZXJ2aWNlJykgcHJpdmF0ZSBjb25maXJtRGlhbG9nU2VydmljZTogVWlBY3Rpb25Db25maXJtRGlhbG9nU2VydmljZSxcclxuICAgIEBJbmplY3QoJ3RleHRGaWVsZERpYWxvZ1NlcnZpY2UnKSBwcml2YXRlIHRleHRGaWVsZERpYWxvZ1NlcnZpY2U6IFVpQWN0aW9uSW5wdXREaWFsb2dTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UnKVxyXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkRGlhbG9nU2VydmljZTogVWlBY3Rpb25GaWxlVXBsb2FkRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NuYWNrQmFyOiBNYXRTbmFja0JhclxyXG4gICkge31cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgZXhlY3V0ZSh1aUFjdGlvbjogVWlBY3Rpb24sIG9wdGlvbnM/OiBFeGVjdXRlVWlBY3Rpb25PcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgdWlBY3Rpb25SZXF1ZXN0OiBVaUFjdGlvblJlcXVlc3QgfCB1bmRlZmluZWQ7XHJcblxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0ID0ge1xyXG4gICAgICBjb2RlOiB1aUFjdGlvbi5jb2RlISxcclxuICAgICAgcGF0aDogdWlBY3Rpb24ucGF0aCxcclxuICAgICAgaWRlbnRpZmllcjogdWlBY3Rpb24uaWRlbnRpZmllcixcclxuICAgICAgcGFyYW1zOiB1aUFjdGlvbi5wYXJhbXMgPz8ge30sXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh1aUFjdGlvbi5zdWJtaXQgfHwgdWlBY3Rpb24ubW9kZWwpIHtcclxuICAgICAgLy8gc3VibWl0OiB3aXRoIHZhbGlkYXRpb24sIG1vZGVsOiB3aXRob3V0IHZhbGlkYXRpb24uIGJvdGggY2FuIGJlIHVuZGVmaW5lZFxyXG4gICAgICBjb25zdCB2YWxpZGF0ZSA9IHVpQWN0aW9uLnN1Ym1pdCB8fCAhdWlBY3Rpb24ubW9kZWw7XHJcblxyXG4gICAgICBpZiAoJ3JlU3Vic2NyaWJlVG9DaGFuZ2UnIGluIHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UpIHtcclxuICAgICAgICBpZiAoIXZhbGlkYXRlKSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBWYWxpZGF0ZSA9IGZhbHNlLCBidXQgVXNlVWlBY3Rpb24gZG9lc24ndCBzdXBwb3J0IGl0YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0Lm5leHQoKTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5zdWJtaXQudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnN1Ym1pdCA9IG5ldyBTbWFydFN1YmplY3QodGhpcy5fZGVzdHJveSQpO1xyXG4gICAgICAgICAgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5yZVN1YnNjcmliZVRvQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgIHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2Uuc3VibWl0ID0gbmV3IFNtYXJ0U3ViamVjdCh0aGlzLl9kZXN0cm95JCk7XHJcbiAgICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnJlU3Vic2NyaWJlVG9DaGFuZ2UubmV4dCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLnN1Ym1pdEZvcm0odmFsaWRhdGUpO1xyXG4gICAgICAgIGxldCBpbnZhbGlkRmllbGRzID0gdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5nZXRJbnZhbGlkRmllbGRzKCk7XHJcbiAgICAgICAgaWYgKHZhbGlkYXRlICYmIGludmFsaWRGaWVsZHMuaW52YWxpZEZpZWxkS2V5cy5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMuc2hvd0ludmFsaWRGaWVsZHNTbmFja2JhcihpbnZhbGlkRmllbGRzKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodWlBY3Rpb24uY29uZmlybSkge1xyXG4gICAgICB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLmFjdGlvbiA9IHVpQWN0aW9uO1xyXG4gICAgICB0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coKTtcclxuICAgICAgYXdhaXQgdGhpcy5jb25maXJtRGlhbG9nU2VydmljZS5vbkFjdGlvbi50b1Byb21pc2UoKTtcclxuICAgICAgaWYgKCF0aGlzLmNvbmZpcm1EaWFsb2dTZXJ2aWNlLnNob3VsZERvQWN0aW9uKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gSW5wdXRUeXBlXHJcbiAgICBpZiAodWlBY3Rpb24uaW5wdXRUeXBlICYmIHVpQWN0aW9uLmlucHV0VHlwZSAhPT0gVWlBY3Rpb25JbnB1dFR5cGUuTk9ORSkge1xyXG4gICAgICB1aUFjdGlvblJlcXVlc3QgPSBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZShcclxuICAgICAgICB1aUFjdGlvbi5pbnB1dFR5cGUsXHJcbiAgICAgICAgdWlBY3Rpb24sXHJcbiAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgICAgICdpbnB1dERpYWxvZydcclxuICAgICAgKTtcclxuICAgICAgaWYgKCF1aUFjdGlvblJlcXVlc3QpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjUwKSk7XHJcbiAgICB9XHJcbiAgICAvLyBJbnB1dDJUeXBlXHJcbiAgICBpZiAodWlBY3Rpb24uaW5wdXQyVHlwZSAmJiB1aUFjdGlvbi5pbnB1dDJUeXBlICE9PSBVaUFjdGlvbklucHV0VHlwZS5OT05FKSB7XHJcbiAgICAgIHVpQWN0aW9uUmVxdWVzdCA9IGF3YWl0IHRoaXMuaGFuZGxlSW5wdXRUeXBlKFxyXG4gICAgICAgIHVpQWN0aW9uLmlucHV0MlR5cGUsXHJcbiAgICAgICAgdWlBY3Rpb24sXHJcbiAgICAgICAgdWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgICAgICdpbnB1dDJEaWFsb2cnXHJcbiAgICAgICk7XHJcbiAgICAgIGlmICghdWlBY3Rpb25SZXF1ZXN0KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMudWlBY3Rpb25Nb2RlbC5leGNlcHRpb24pIHtcclxuICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5oYW5kbGVTcGVjaWZpY0RlbWFuZHNBc3luY2hyb25vdXNseShcclxuICAgICAgICB1aUFjdGlvbixcclxuICAgICAgICB1aUFjdGlvblJlcXVlc3RcclxuICAgICAgKTtcclxuXHJcbiAgICAgIGlmICghcmVzcG9uc2Uuc2hvdWxkUGVyZm9ybUFjdGlvbiB8fCAhcmVzcG9uc2UudWlBY3Rpb25SZXF1ZXN0KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHVpQWN0aW9uUmVxdWVzdCA9IHJlc3BvbnNlLnVpQWN0aW9uUmVxdWVzdDtcclxuICAgIH1cclxuXHJcbiAgICBhd2FpdCB0aGlzLnBlcmZvcm1BY3Rpb24odWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGhhbmRsZUlucHV0VHlwZShcclxuICAgIGlucHV0VHlwZTogVWlBY3Rpb25JbnB1dFR5cGUsXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcclxuICAgIGlucHV0VHlwZU5hbWU6ICdpbnB1dERpYWxvZycgfCAnaW5wdXQyRGlhbG9nJ1xyXG4gICk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XHJcbiAgICBzd2l0Y2ggKGlucHV0VHlwZSkge1xyXG4gICAgICBjYXNlIFVpQWN0aW9uSW5wdXRUeXBlLk5PTkU6XHJcbiAgICAgICAgcmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcclxuICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5URVhUQVJFQTpcclxuICAgICAgY2FzZSBVaUFjdGlvbklucHV0VHlwZS5URVhURklFTEQ6XHJcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuaGFuZGxlSW5wdXRUeXBlVGV4dEZpZWxkKGlucHV0VHlwZU5hbWUsIHVpQWN0aW9uLCB1aUFjdGlvblJlcXVlc3QpO1xyXG4gICAgICBjYXNlIFVpQWN0aW9uSW5wdXRUeXBlLlVTRVJfU0VMRUNUOlxyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZVVzZXJTZWxlY3QoaW5wdXRUeXBlTmFtZSwgdWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCk7XHJcbiAgICAgIGNhc2UgVWlBY3Rpb25JbnB1dFR5cGUuRklMRTpcclxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVJbnB1dFR5cGVVcGxvYWQoaW5wdXRUeXBlTmFtZSwgdWlBY3Rpb24sIHVpQWN0aW9uUmVxdWVzdCwgZmFsc2UpO1xyXG4gICAgICBjYXNlIFVpQWN0aW9uSW5wdXRUeXBlLk1VTFRJUExFX0ZJTEVTOlxyXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZUlucHV0VHlwZVVwbG9hZChpbnB1dFR5cGVOYW1lLCB1aUFjdGlvbiwgdWlBY3Rpb25SZXF1ZXN0LCB0cnVlKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdWlBY3Rpb25SZXF1ZXN0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVJbnB1dFR5cGVUZXh0RmllbGQoXHJcbiAgICBpbnB1dFR5cGVOYW1lOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZycsXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdFxyXG4gICk6IFByb21pc2U8VWlBY3Rpb25SZXF1ZXN0IHwgdW5kZWZpbmVkPiB7XHJcbiAgICBsZXQgYWRkaXRpb25hbFBhcmFtcyA9IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UuZ2V0QWRkaXRpb25hbFBhcmFtcyh1aUFjdGlvbik7XHJcbiAgICBsZXQgaW5wdXRUeXBlOiAnaW5wdXRUeXBlJyB8ICdpbnB1dDJUeXBlJyA9XHJcbiAgICAgIGlucHV0VHlwZU5hbWUgPT09ICdpbnB1dERpYWxvZycgPyAnaW5wdXRUeXBlJyA6ICdpbnB1dDJUeXBlJztcclxuXHJcbiAgICBpZiAodWlBY3Rpb25baW5wdXRUeXBlXSA9PT0gVWlBY3Rpb25JbnB1dFR5cGUuVEVYVEZJRUxEKSB7XHJcbiAgICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5ub2RlTmFtZSA9IGFkZGl0aW9uYWxQYXJhbXMuZm9yVGV4dEZpZWxkO1xyXG4gICAgfSBlbHNlIGlmICh1aUFjdGlvbltpbnB1dFR5cGVdID09PSBVaUFjdGlvbklucHV0VHlwZS5URVhUQVJFQSkge1xyXG4gICAgICB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2Uubm9kZU5hbWUgPSBhZGRpdGlvbmFsUGFyYW1zLmZvclRleHRBcmVhO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5pbnB1dFR5cGVOYW1lID0gaW5wdXRUeXBlTmFtZTtcclxuICAgIHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5hY3Rpb24gPSB1aUFjdGlvbjtcclxuXHJcbiAgICB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZygpO1xyXG5cclxuICAgIGF3YWl0IHRoaXMudGV4dEZpZWxkRGlhbG9nU2VydmljZS5vbkFjdGlvbi50b1Byb21pc2UoKTtcclxuICAgIGxldCBwYXJhbXMgPSB0aGlzLnRleHRGaWVsZERpYWxvZ1NlcnZpY2UucGFyYW1zO1xyXG5cclxuICAgIGlmICghcGFyYW1zKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1RoZXJlIHdhcyBubyByZXNwb25zZSBmcm9tIElucHV0RGlhbG9nJyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgPSB7XHJcbiAgICAgIC4uLnVpQWN0aW9uUmVxdWVzdC5wYXJhbXMsXHJcbiAgICAgIC4uLnBhcmFtcyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gdWlBY3Rpb25SZXF1ZXN0O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBoYW5kbGVJbnB1dFR5cGVVcGxvYWQoXHJcbiAgICBpbnB1dFR5cGVOYW1lOiAnaW5wdXREaWFsb2cnIHwgJ2lucHV0MkRpYWxvZycsXHJcbiAgICB1aUFjdGlvbjogVWlBY3Rpb24sXHJcbiAgICB1aUFjdGlvblJlcXVlc3Q6IFVpQWN0aW9uUmVxdWVzdCxcclxuICAgIGlzTXVsdGlwbGU6IGJvb2xlYW5cclxuICApOiBQcm9taXNlPFVpQWN0aW9uUmVxdWVzdCB8IHVuZGVmaW5lZD4ge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkRGlhbG9nU2VydmljZS5pbnB1dFR5cGVOYW1lID0gaW5wdXRUeXBlTmFtZTtcclxuICAgIHRoaXMuZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2UuYWN0aW9uID0gdWlBY3Rpb247XHJcbiAgICB0aGlzLmZpbGVVcGxvYWREaWFsb2dTZXJ2aWNlLmlzTXVsdGlwbGUgPSBpc011bHRpcGxlO1xyXG5cclxuICAgIHRoaXMuZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZygpO1xyXG5cclxuICAgIGF3YWl0IHRoaXMuZmlsZVVwbG9hZERpYWxvZ1NlcnZpY2Uub25BY3Rpb24udG9Qcm9taXNlKCk7XHJcbiAgICBsZXQgZmlsZXMgPSB0aGlzLmZpbGVVcGxvYWREaWFsb2dTZXJ2aWNlLmZpbGVzO1xyXG4gICAgbGV0IHVwbG9hZERlc2NyaXB0b3IgPSB0aGlzLmZpbGVVcGxvYWREaWFsb2dTZXJ2aWNlLnVwbG9hZERlc2NyaXB0b3I7XHJcblxyXG4gICAgaWYgKCFmaWxlcyB8fCAhZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB1aUFjdGlvblJlcXVlc3QucGFyYW1zID0ge1xyXG4gICAgICAuLi51aUFjdGlvblJlcXVlc3QucGFyYW1zLFxyXG4gICAgICBfZmlsZXM6IGZpbGVzLFxyXG4gICAgICBfdXBsb2FkRGVzY3JpcHRvcjogdXBsb2FkRGVzY3JpcHRvcixcclxuICAgICAgaXNNdWx0aXBsZSxcclxuICAgICAgcGFyYW06XHJcbiAgICAgICAgdWlBY3Rpb24uaW5wdXRUeXBlID09PSAnZmlsZScgfHwgdWlBY3Rpb24uaW5wdXRUeXBlID09PSAnbXVsdGlwbGVfZmlsZXMnXHJcbiAgICAgICAgICA/ICdpbnB1dCdcclxuICAgICAgICAgIDogJ2lucHV0MicsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFuZGxlSW5wdXRUeXBlVXNlclNlbGVjdChcclxuICAgIGlucHV0VHlwZU5hbWU6ICdpbnB1dERpYWxvZycgfCAnaW5wdXQyRGlhbG9nJyxcclxuICAgIHVpQWN0aW9uOiBVaUFjdGlvbixcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0XHJcbiAgKTogUHJvbWlzZTxVaUFjdGlvblJlcXVlc3QgfCB1bmRlZmluZWQ+IHtcclxuICAgIGxldCByZXNwb25zZSA9IGF3YWl0IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UuaGFuZGxlU3BlY2lmaWNEZW1hbmRzQXN5bmNocm9ub3VzbHkoXHJcbiAgICAgIHVpQWN0aW9uLFxyXG4gICAgICB1aUFjdGlvblJlcXVlc3RcclxuICAgICk7XHJcblxyXG4gICAgaWYgKCFyZXNwb25zZS5zaG91bGRQZXJmb3JtQWN0aW9uIHx8ICFyZXNwb25zZS51aUFjdGlvblJlcXVlc3QpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdWlBY3Rpb25SZXF1ZXN0ID0gcmVzcG9uc2UudWlBY3Rpb25SZXF1ZXN0O1xyXG4gICAgcmV0dXJuIHVpQWN0aW9uUmVxdWVzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcGVyZm9ybUFjdGlvbihcclxuICAgIHVpQWN0aW9uOiBVaUFjdGlvbixcclxuICAgIHVpQWN0aW9uUmVxdWVzdDogVWlBY3Rpb25SZXF1ZXN0LFxyXG4gICAgb3B0aW9ucz86IEV4ZWN1dGVVaUFjdGlvbk9wdGlvbnNcclxuICApOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChcclxuICAgICAgIXVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgfHxcclxuICAgICAgKHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMgJiYgIU9iamVjdC5rZXlzKHVpQWN0aW9uUmVxdWVzdC5wYXJhbXMpLmxlbmd0aClcclxuICAgICkge1xyXG4gICAgICB1aUFjdGlvblJlcXVlc3QucGFyYW1zID0ge1xyXG4gICAgICAgIG1vZGVsOiB0aGlzLnVpQWN0aW9uTW9kZWwuc2VydmljZVRvVXNlLmdldE1vZGVsKCksXHJcbiAgICAgIH07XHJcbiAgICB9IGVsc2UgaWYgKHVpQWN0aW9uLnN1Ym1pdCB8fCB1aUFjdGlvbi5tb2RlbCkge1xyXG4gICAgICB1aUFjdGlvblJlcXVlc3QucGFyYW1zWydtb2RlbCddID0gdGhpcy51aUFjdGlvbk1vZGVsLnNlcnZpY2VUb1VzZS5nZXRNb2RlbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIGF3YWl0IHRoaXMudWlBY3Rpb25Nb2RlbC5zZXJ2aWNlVG9Vc2UucGVyZm9ybVVpQWN0aW9uUmVxdWVzdChcclxuICAgICAgICB1aUFjdGlvblJlcXVlc3QsXHJcbiAgICAgICAgb3B0aW9ucz8ud2lkZ2V0SWQsXHJcbiAgICAgICAgb3B0aW9ucz8ubm9kZUlkXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAodGhpcy51aUFjdGlvbk1vZGVsLmRlc2NyaXB0b3I/LmZlZWRiYWNrVHlwZSA9PT0gVWlBY3Rpb25GZWVkYmFja1R5cGUuU05BQ0tCQVIpIHtcclxuICAgICAgICB0aGlzLnNob3dTYXZlZFNuYWNrYmFyKHVpQWN0aW9uKTtcclxuICAgICAgfVxyXG4gICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNob3dTYXZlZFNuYWNrYmFyKHVpQWN0aW9uOiBVaUFjdGlvbik6IHZvaWQge1xyXG4gICAgdGhpcy5fc25hY2tCYXIub3BlbkZyb21Db21wb25lbnQoU3VjY2Vzc1NuYWNrQmFyQ29tcG9uZW50LCB7XHJcbiAgICAgIGR1cmF0aW9uOiA1ICogMTAwMCxcclxuICAgICAgcGFuZWxDbGFzczogWydiYWNrZ3JvdW5kQ29sb3ItYWNjZW50J10sXHJcbiAgICAgIGRhdGE6IHVpQWN0aW9uLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzaG93SW52YWxpZEZpZWxkc1NuYWNrYmFyKGludmFsaWRGaWVsZHM6IFNtYXJ0Rm9ybUludmFsaWRGaWVsZHMpOiB2b2lkIHtcclxuICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KEludmFsaWRGaWVsZHNTbmFja0JhckNvbXBvbmVudCwge1xyXG4gICAgICBkdXJhdGlvbjogNSAqIDEwMDAsXHJcbiAgICAgIHBhbmVsQ2xhc3M6IFsnYmFja2dyb3VuZENvbG9yLXdhcm4nXSxcclxuICAgICAgZGF0YTogaW52YWxpZEZpZWxkcyxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=