@openziti/ziti-console-lib 0.12.11 → 1.0.1

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 (450) hide show
  1. package/assets/fonts/icomoon.eot +0 -0
  2. package/assets/fonts/icomoon.svg +6 -1
  3. package/assets/fonts/icomoon.ttf +0 -0
  4. package/assets/fonts/icomoon.woff +0 -0
  5. package/assets/fonts/icomoon.woff2 +0 -0
  6. package/assets/styles/dark.css +15 -8
  7. package/assets/styles/global.scss +431 -24
  8. package/assets/styles/icons.scss +644 -0
  9. package/assets/svgs/Icon_Log_Logout.svg +43 -0
  10. package/assets/svgs/clients.svg +6 -0
  11. package/assets/svgs/ziti-logo.svg +23 -0
  12. package/esm2022/lib/ZAC_VERSION.mjs +4 -0
  13. package/esm2022/lib/default-app-config.mjs +5 -0
  14. package/esm2022/lib/features/card/card.component.mjs +4 -5
  15. package/esm2022/lib/features/card-list/card-list.component.mjs +2 -4
  16. package/esm2022/lib/features/config-editor/config-editor.component.mjs +2 -3
  17. package/esm2022/lib/features/confirm/confirm.component.mjs +4 -5
  18. package/esm2022/lib/features/creation-summary-dialog/creation-summary-dialog.component.mjs +2 -3
  19. package/esm2022/lib/features/custom-tags/custom-tags.component.mjs +4 -5
  20. package/esm2022/lib/features/data-table/cells/table-cell-menu/table-cell-menu.component.mjs +2 -3
  21. package/esm2022/lib/features/data-table/cells/table-cell-name/table-cell-name.component.mjs +2 -3
  22. package/esm2022/lib/features/data-table/cells/table-cell-select/table-cell-select.component.mjs +4 -5
  23. package/esm2022/lib/features/data-table/cells/table-cell-token/table-cell-token.component.mjs +2 -3
  24. package/esm2022/lib/features/data-table/column-headers/table-column-default/table-column-default.component.mjs +2 -3
  25. package/esm2022/lib/features/data-table/column-headers/table-column-filter/table-column-filter.component.mjs +2 -3
  26. package/esm2022/lib/features/data-table/column-headers/table-column-menu/table-column-menu.component.mjs +2 -3
  27. package/esm2022/lib/features/data-table/column-headers/table-column-select/table-column-select.component.mjs +4 -5
  28. package/esm2022/lib/features/data-table/data-table-filter.service.mjs +2 -3
  29. package/esm2022/lib/features/data-table/data-table.component.mjs +4 -5
  30. package/esm2022/lib/features/data-table/data-table.service.mjs +2 -3
  31. package/esm2022/lib/features/data-table/table-filter-bar/filter-bar.component.mjs +4 -5
  32. package/esm2022/lib/features/data-table/table-hidden-columns-bar/hidden-columns-bar.component.mjs +2 -3
  33. package/esm2022/lib/features/data-table/tooltips/os-tooltip.component.mjs +2 -3
  34. package/esm2022/lib/features/data-table/tooltips/sdk-tooltip.component.mjs +2 -3
  35. package/esm2022/lib/features/dynamic-widgets/boolean/boolean-toggle-input.component.mjs +2 -3
  36. package/esm2022/lib/features/dynamic-widgets/checkbox-list/checkbox-list-input.component.mjs +2 -3
  37. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.component.mjs +2 -3
  38. package/esm2022/lib/features/dynamic-widgets/forwarding-config/forwarding-config.service.mjs +2 -3
  39. package/esm2022/lib/features/dynamic-widgets/number/number-input.component.mjs +2 -3
  40. package/esm2022/lib/features/dynamic-widgets/object/object.component.mjs +4 -5
  41. package/esm2022/lib/features/dynamic-widgets/password/password-input.component.mjs +2 -3
  42. package/esm2022/lib/features/dynamic-widgets/port-ranges/port-ranges.component.mjs +2 -3
  43. package/esm2022/lib/features/dynamic-widgets/protocol-address-port/protocol-address-port-input.component.mjs +2 -3
  44. package/esm2022/lib/features/dynamic-widgets/selector/selector-input.component.mjs +2 -3
  45. package/esm2022/lib/features/dynamic-widgets/string/string-input.component.mjs +2 -3
  46. package/esm2022/lib/features/dynamic-widgets/text-list/text-list-input.component.mjs +2 -3
  47. package/esm2022/lib/features/extendable/extendable.component.mjs +2 -3
  48. package/esm2022/lib/features/extendable/extensions-noop.service.mjs +3 -3
  49. package/esm2022/lib/features/header-bar/header-bar.component.mjs +105 -0
  50. package/esm2022/lib/features/json-view/json-view.component.mjs +4 -5
  51. package/esm2022/lib/features/list-page-features/list-page-form/list-page-form.component.mjs +2 -3
  52. package/esm2022/lib/features/list-page-features/list-page-header/list-page-header.component.mjs +4 -5
  53. package/esm2022/lib/features/loading-indicator/loading-indicator.component.mjs +2 -3
  54. package/esm2022/lib/features/login/login-dialog.component.mjs +10 -12
  55. package/esm2022/lib/features/messaging/growler.component.mjs +4 -5
  56. package/esm2022/lib/features/messaging/growler.module.mjs +2 -3
  57. package/esm2022/lib/features/messaging/growler.service.mjs +2 -3
  58. package/esm2022/lib/features/messaging/logger.service.mjs +2 -3
  59. package/esm2022/lib/features/multi-action-button/multi-action-button.component.mjs +2 -3
  60. package/esm2022/lib/features/no-items/no-items.component.mjs +2 -3
  61. package/esm2022/lib/features/overrides/overrides.component.mjs +2 -3
  62. package/esm2022/lib/features/overrides/overrides.service.mjs +2 -3
  63. package/esm2022/lib/features/preview-list/preview-list.component.mjs +4 -5
  64. package/esm2022/lib/features/preview-selections/preview-selections.component.mjs +2 -3
  65. package/esm2022/lib/features/progress-meter/progress-meter.component.mjs +2 -3
  66. package/esm2022/lib/features/progress-wizard/progress-wizard.component.mjs +2 -3
  67. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.component.mjs +5 -9
  68. package/esm2022/lib/features/projectable-forms/api-session/api-session-form.service.mjs +2 -3
  69. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.component.mjs +5 -9
  70. package/esm2022/lib/features/projectable-forms/auth-policy/auth-policy-form.service.mjs +2 -3
  71. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.mjs +5 -9
  72. package/esm2022/lib/features/projectable-forms/certificate-authority/certificate-authority-form.service.mjs +2 -3
  73. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.mjs +4 -8
  74. package/esm2022/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.service.mjs +2 -3
  75. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.component.mjs +5 -9
  76. package/esm2022/lib/features/projectable-forms/config-type/config-type-form.service.mjs +2 -3
  77. package/esm2022/lib/features/projectable-forms/configuration/configuration-form.component.mjs +5 -9
  78. package/esm2022/lib/features/projectable-forms/configuration/configuration.service.mjs +2 -3
  79. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.component.mjs +34 -26
  80. package/esm2022/lib/features/projectable-forms/edge-router/edge-router-form.service.mjs +2 -3
  81. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.mjs +13 -14
  82. package/esm2022/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.mjs +6 -7
  83. package/esm2022/lib/features/projectable-forms/form-field-container/form-field-container.component.mjs +4 -5
  84. package/esm2022/lib/features/projectable-forms/form-field-toggle/form-field-toggle.component.mjs +4 -5
  85. package/esm2022/lib/features/projectable-forms/form-header/form-header.component.mjs +4 -5
  86. package/esm2022/lib/features/projectable-forms/identity/identity-form.component.mjs +6 -12
  87. package/esm2022/lib/features/projectable-forms/identity/identity-form.service.mjs +2 -3
  88. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.mjs +5 -12
  89. package/esm2022/lib/features/projectable-forms/jwt-signer/jwt-signer-form.service.mjs +2 -3
  90. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.component.mjs +5 -9
  91. package/esm2022/lib/features/projectable-forms/posture-check/posture-check-form.service.mjs +2 -3
  92. package/esm2022/lib/features/projectable-forms/projectable-form.class.mjs +36 -74
  93. package/esm2022/lib/features/projectable-forms/service/service-form.component.mjs +5 -8
  94. package/esm2022/lib/features/projectable-forms/service/service-form.service.mjs +2 -3
  95. package/esm2022/lib/features/projectable-forms/service/simple-service/simple-service.component.mjs +57 -24
  96. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.mjs +13 -14
  97. package/esm2022/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.mjs +6 -7
  98. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.component.mjs +14 -15
  99. package/esm2022/lib/features/projectable-forms/service-policy/service-policy-form.service.mjs +9 -10
  100. package/esm2022/lib/features/projectable-forms/session/session-form.component.mjs +5 -9
  101. package/esm2022/lib/features/projectable-forms/session/session-form.service.mjs +2 -3
  102. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.component.mjs +4 -8
  103. package/esm2022/lib/features/projectable-forms/terminator/terminator-form.service.mjs +2 -3
  104. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.component.mjs +7 -11
  105. package/esm2022/lib/features/projectable-forms/transit-router/transit-router-form.service.mjs +2 -3
  106. package/esm2022/lib/features/qr-code/qr-code.component.mjs +4 -5
  107. package/esm2022/lib/features/quick-add/quick-add.component.mjs +50 -0
  108. package/esm2022/lib/features/reset-enrollment/reset-enrollment.component.mjs +4 -5
  109. package/esm2022/lib/features/reset-enrollment/reset-enrollment.service.mjs +2 -3
  110. package/esm2022/lib/features/side-modal/side-modal.component.mjs +2 -3
  111. package/esm2022/lib/features/side-navigator/side-navigator.component.mjs +127 -0
  112. package/esm2022/lib/features/sidebars/side-navbar/side-navbar.component.mjs +4 -5
  113. package/esm2022/lib/features/tag-selector/tag-selector.component.mjs +4 -5
  114. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.component.mjs +2 -3
  115. package/esm2022/lib/features/visualizer/identity-service-path/identity-service-path.helper.mjs +2 -3
  116. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.component.mjs +2 -3
  117. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.helper.mjs +2 -3
  118. package/esm2022/lib/features/visualizer/network-visualizer/network-visualizer.treenodeprocessor.mjs +2 -3
  119. package/esm2022/lib/features/visualizer/visualizer-service.class.mjs +2 -3
  120. package/esm2022/lib/pages/api-sessions/api-sessions-page.component.mjs +2 -3
  121. package/esm2022/lib/pages/api-sessions/api-sessions-page.service.mjs +2 -3
  122. package/esm2022/lib/pages/attributes/attributes.component.mjs +104 -0
  123. package/esm2022/lib/pages/auth-policies/auth-policies-page.component.mjs +2 -3
  124. package/esm2022/lib/pages/auth-policies/auth-policies-page.service.mjs +4 -4
  125. package/esm2022/lib/pages/callback/callback.component.mjs +2 -3
  126. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.component.mjs +2 -3
  127. package/esm2022/lib/pages/certificate-authorities/certificate-authorities-page.service.mjs +2 -3
  128. package/esm2022/lib/pages/config-types/config-types-page.component.mjs +2 -3
  129. package/esm2022/lib/pages/config-types/config-types-page.service.mjs +2 -3
  130. package/esm2022/lib/pages/configurations/configurations-page.component.mjs +2 -3
  131. package/esm2022/lib/pages/configurations/configurations-page.service.mjs +2 -3
  132. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.component.mjs +6 -13
  133. package/esm2022/lib/pages/edge-router-policies/edge-router-policies-page.service.mjs +2 -3
  134. package/esm2022/lib/pages/edge-routers/edge-routers-page.component.mjs +5 -16
  135. package/esm2022/lib/pages/edge-routers/edge-routers-page.service.mjs +2 -4
  136. package/esm2022/lib/pages/geolocate/geolocate.component.mjs +130 -0
  137. package/esm2022/lib/pages/identities/identities-page.component.mjs +5 -16
  138. package/esm2022/lib/pages/identities/identities-page.service.mjs +2 -3
  139. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.component.mjs +2 -3
  140. package/esm2022/lib/pages/jwt-signers/jwt-signers-page.service.mjs +2 -3
  141. package/esm2022/lib/pages/posture-checks/posture-checks-page.component.mjs +3 -4
  142. package/esm2022/lib/pages/posture-checks/posture-checks-page.service.mjs +2 -3
  143. package/esm2022/lib/pages/profile/profile.component.mjs +58 -0
  144. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.mjs +6 -13
  145. package/esm2022/lib/pages/service-edge-router-policies/service-edge-router-policies-page.service.mjs +2 -3
  146. package/esm2022/lib/pages/service-policies/service-policies-page.component.mjs +6 -13
  147. package/esm2022/lib/pages/service-policies/service-policies-page.service.mjs +2 -3
  148. package/esm2022/lib/pages/services/services-page.component.mjs +6 -13
  149. package/esm2022/lib/pages/services/services-page.service.mjs +2 -3
  150. package/esm2022/lib/pages/sessions/sessions-page.component.mjs +2 -3
  151. package/esm2022/lib/pages/sessions/sessions-page.service.mjs +2 -3
  152. package/esm2022/lib/pages/settings/settings.component.mjs +61 -0
  153. package/esm2022/lib/pages/terminators/terminators-page.component.mjs +3 -4
  154. package/esm2022/lib/pages/terminators/terminators-page.service.mjs +2 -3
  155. package/esm2022/lib/pages/transit-routers/transit-routers-page.component.mjs +5 -16
  156. package/esm2022/lib/pages/transit-routers/transit-routers-page.service.mjs +2 -3
  157. package/esm2022/lib/safe.pipe.mjs +2 -3
  158. package/esm2022/lib/services/auth.service.mjs +2 -3
  159. package/esm2022/lib/services/console-events.service.mjs +2 -14
  160. package/esm2022/lib/services/csv-download.service.mjs +2 -3
  161. package/esm2022/lib/services/deactivate-guard.service.mjs +2 -3
  162. package/esm2022/lib/services/login-service.class.mjs +2 -3
  163. package/esm2022/lib/services/node-data.service.mjs +24 -3
  164. package/esm2022/lib/services/noop-login.service.mjs +2 -3
  165. package/esm2022/lib/services/schema.service.mjs +2 -3
  166. package/esm2022/lib/services/settings-service.class.mjs +5 -18
  167. package/esm2022/lib/services/settings.service.mjs +14 -11
  168. package/esm2022/lib/services/tab-name.service.mjs +9 -6
  169. package/esm2022/lib/services/validation.service.mjs +2 -3
  170. package/esm2022/lib/services/ziti-controller-data.service.mjs +21 -6
  171. package/esm2022/lib/services/ziti-data.service.mjs +5 -5
  172. package/esm2022/lib/shared/list-page-component.class.mjs +6 -3
  173. package/esm2022/lib/shared/list-page-service.class.mjs +2 -3
  174. package/esm2022/lib/zac-routing.module.mjs +3 -10
  175. package/esm2022/lib/ziti-console-lib.module.mjs +43 -24
  176. package/esm2022/lib/ziti-console.constants.mjs +2 -1
  177. package/esm2022/public-api.mjs +9 -8
  178. package/fesm2022/openziti-ziti-console-lib.mjs +3547 -4342
  179. package/fesm2022/openziti-ziti-console-lib.mjs.map +1 -1
  180. package/lib/ZAC_VERSION.d.ts +4 -0
  181. package/lib/ZAC_VERSION.d.ts.map +1 -0
  182. package/lib/default-app-config.d.ts +9 -0
  183. package/lib/default-app-config.d.ts.map +1 -0
  184. package/lib/features/card-list/card-list.component.d.ts +0 -1
  185. package/lib/features/card-list/card-list.component.d.ts.map +1 -1
  186. package/lib/features/extendable/extensions-noop.service.d.ts +2 -0
  187. package/lib/features/extendable/extensions-noop.service.d.ts.map +1 -1
  188. package/lib/features/header-bar/header-bar.component.d.ts +29 -0
  189. package/lib/features/header-bar/header-bar.component.d.ts.map +1 -0
  190. package/lib/features/login/login-dialog.component.d.ts +2 -1
  191. package/lib/features/login/login-dialog.component.d.ts.map +1 -1
  192. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts +1 -2
  193. package/lib/features/projectable-forms/api-session/api-session-form.component.d.ts.map +1 -1
  194. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts +1 -2
  195. package/lib/features/projectable-forms/auth-policy/auth-policy-form.component.d.ts.map +1 -1
  196. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts +1 -2
  197. package/lib/features/projectable-forms/certificate-authority/certificate-authority-form.component.d.ts.map +1 -1
  198. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts +1 -2
  199. package/lib/features/projectable-forms/certificate-authority/verify-certificate/verify-certificate.component.d.ts.map +1 -1
  200. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts +1 -2
  201. package/lib/features/projectable-forms/config-type/config-type-form.component.d.ts.map +1 -1
  202. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts +1 -2
  203. package/lib/features/projectable-forms/configuration/configuration-form.component.d.ts.map +1 -1
  204. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts +6 -3
  205. package/lib/features/projectable-forms/edge-router/edge-router-form.component.d.ts.map +1 -1
  206. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts +2 -2
  207. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.component.d.ts.map +1 -1
  208. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts +2 -2
  209. package/lib/features/projectable-forms/edge-router-policy/edge-router-policy-form.service.d.ts.map +1 -1
  210. package/lib/features/projectable-forms/identity/identity-form.component.d.ts +1 -2
  211. package/lib/features/projectable-forms/identity/identity-form.component.d.ts.map +1 -1
  212. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts +1 -2
  213. package/lib/features/projectable-forms/jwt-signer/jwt-signer-form.component.d.ts.map +1 -1
  214. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts +1 -2
  215. package/lib/features/projectable-forms/posture-check/posture-check-form.component.d.ts.map +1 -1
  216. package/lib/features/projectable-forms/projectable-form.class.d.ts +11 -7
  217. package/lib/features/projectable-forms/projectable-form.class.d.ts.map +1 -1
  218. package/lib/features/projectable-forms/service/service-form.component.d.ts +0 -1
  219. package/lib/features/projectable-forms/service/service-form.component.d.ts.map +1 -1
  220. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts +9 -2
  221. package/lib/features/projectable-forms/service/simple-service/simple-service.component.d.ts.map +1 -1
  222. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts +2 -2
  223. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.component.d.ts.map +1 -1
  224. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts +2 -2
  225. package/lib/features/projectable-forms/service-edge-router-policy/service-edge-router-policy-form.service.d.ts.map +1 -1
  226. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts +2 -2
  227. package/lib/features/projectable-forms/service-policy/service-policy-form.component.d.ts.map +1 -1
  228. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts +4 -4
  229. package/lib/features/projectable-forms/service-policy/service-policy-form.service.d.ts.map +1 -1
  230. package/lib/features/projectable-forms/session/session-form.component.d.ts +1 -2
  231. package/lib/features/projectable-forms/session/session-form.component.d.ts.map +1 -1
  232. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts +1 -2
  233. package/lib/features/projectable-forms/terminator/terminator-form.component.d.ts.map +1 -1
  234. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts +1 -2
  235. package/lib/features/projectable-forms/transit-router/transit-router-form.component.d.ts.map +1 -1
  236. package/lib/features/quick-add/quick-add.component.d.ts +15 -0
  237. package/lib/features/quick-add/quick-add.component.d.ts.map +1 -0
  238. package/lib/features/side-navigator/side-navigator.component.d.ts +33 -0
  239. package/lib/features/side-navigator/side-navigator.component.d.ts.map +1 -0
  240. package/lib/pages/attributes/attributes.component.d.ts +31 -0
  241. package/lib/pages/attributes/attributes.component.d.ts.map +1 -0
  242. package/lib/pages/auth-policies/auth-policies-page.service.d.ts.map +1 -1
  243. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts +1 -3
  244. package/lib/pages/edge-router-policies/edge-router-policies-page.component.d.ts.map +1 -1
  245. package/lib/pages/edge-routers/edge-routers-page.component.d.ts +1 -3
  246. package/lib/pages/edge-routers/edge-routers-page.component.d.ts.map +1 -1
  247. package/lib/pages/edge-routers/edge-routers-page.service.d.ts.map +1 -1
  248. package/lib/pages/geolocate/geolocate.component.d.ts +32 -0
  249. package/lib/pages/geolocate/geolocate.component.d.ts.map +1 -0
  250. package/lib/pages/identities/identities-page.component.d.ts +1 -3
  251. package/lib/pages/identities/identities-page.component.d.ts.map +1 -1
  252. package/lib/pages/profile/profile.component.d.ts +17 -0
  253. package/lib/pages/profile/profile.component.d.ts.map +1 -0
  254. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts +1 -3
  255. package/lib/pages/service-edge-router-policies/service-edge-router-policies-page.component.d.ts.map +1 -1
  256. package/lib/pages/service-policies/service-policies-page.component.d.ts +1 -3
  257. package/lib/pages/service-policies/service-policies-page.component.d.ts.map +1 -1
  258. package/lib/pages/services/services-page.component.d.ts +1 -3
  259. package/lib/pages/services/services-page.component.d.ts.map +1 -1
  260. package/lib/pages/settings/settings.component.d.ts +23 -0
  261. package/lib/pages/settings/settings.component.d.ts.map +1 -0
  262. package/lib/pages/transit-routers/transit-routers-page.component.d.ts +1 -3
  263. package/lib/pages/transit-routers/transit-routers-page.component.d.ts.map +1 -1
  264. package/lib/services/console-events.service.d.ts.map +1 -1
  265. package/lib/services/node-data.service.d.ts +1 -0
  266. package/lib/services/node-data.service.d.ts.map +1 -1
  267. package/lib/services/settings-service.class.d.ts +0 -2
  268. package/lib/services/settings-service.class.d.ts.map +1 -1
  269. package/lib/services/settings.service.d.ts.map +1 -1
  270. package/lib/services/tab-name.service.d.ts.map +1 -1
  271. package/lib/services/ziti-controller-data.service.d.ts +2 -1
  272. package/lib/services/ziti-controller-data.service.d.ts.map +1 -1
  273. package/lib/services/ziti-data.service.d.ts +2 -1
  274. package/lib/services/ziti-data.service.d.ts.map +1 -1
  275. package/lib/shared/list-page-component.class.d.ts.map +1 -1
  276. package/lib/zac-routing.module.d.ts.map +1 -1
  277. package/lib/ziti-console-lib.module.d.ts +114 -110
  278. package/lib/ziti-console-lib.module.d.ts.map +1 -1
  279. package/lib/ziti-console.constants.d.ts +1 -0
  280. package/lib/ziti-console.constants.d.ts.map +1 -1
  281. package/package.json +1 -1
  282. package/public-api.d.ts +8 -7
  283. package/public-api.d.ts.map +1 -1
  284. package/assets/components/add.html +0 -1
  285. package/assets/components/api.html +0 -12
  286. package/assets/components/customtags.html +0 -4
  287. package/assets/components/line.html +0 -1
  288. package/assets/components/noitems.html +0 -1
  289. package/assets/components/save.html +0 -4
  290. package/assets/components/search.html +0 -8
  291. package/assets/components/tabIdentities.html +0 -5
  292. package/assets/components/tabPolicies.html +0 -7
  293. package/assets/components/tabRouters.html +0 -5
  294. package/assets/components/tabServers.html +0 -4
  295. package/assets/components/tabServices.html +0 -6
  296. package/assets/components/tabSessions.html +0 -4
  297. package/assets/data/mail.json +0 -0
  298. package/assets/data/services.json +0 -6
  299. package/assets/data/site.json +0 -31
  300. package/assets/data/tags.json +0 -7
  301. package/assets/data/templates.json +0 -1
  302. package/assets/fonts/zac.eot +0 -0
  303. package/assets/fonts/zac.svg +0 -57
  304. package/assets/fonts/zac.ttf +0 -0
  305. package/assets/fonts/zac.woff +0 -0
  306. package/assets/fonts/zac.woff2 +0 -0
  307. package/assets/html/api-sessions.htm +0 -152
  308. package/assets/html/attributes.htm +0 -260
  309. package/assets/html/auth-policies.htm +0 -410
  310. package/assets/html/cas.htm +0 -439
  311. package/assets/html/config-types.htm +0 -167
  312. package/assets/html/configs.htm +0 -238
  313. package/assets/html/deprecated/fabric-links.htm +0 -336
  314. package/assets/html/deprecated/fabric-routers.htm +0 -72
  315. package/assets/html/deprecated/fabric-services.htm +0 -494
  316. package/assets/html/identities.htm +0 -934
  317. package/assets/html/index.htm +0 -222
  318. package/assets/html/jwt-signers.htm +0 -260
  319. package/assets/html/known.htm +0 -115
  320. package/assets/html/login.htm +0 -131
  321. package/assets/html/organization.htm +0 -223
  322. package/assets/html/posture-checks.htm +0 -393
  323. package/assets/html/profile.htm +0 -52
  324. package/assets/html/recipes.htm +0 -455
  325. package/assets/html/router-policies.htm +0 -168
  326. package/assets/html/routers.htm +0 -323
  327. package/assets/html/servers.htm +0 -236
  328. package/assets/html/service-policies.htm +0 -197
  329. package/assets/html/service-router-policies.htm +0 -170
  330. package/assets/html/services.htm +0 -634
  331. package/assets/html/sessions.htm +0 -157
  332. package/assets/html/settings.htm +0 -146
  333. package/assets/html/terminators.htm +0 -244
  334. package/assets/html/transit-routers.htm +0 -173
  335. package/assets/resources/avatar/man.svg +0 -78
  336. package/assets/resources/avatar/woman.svg +0 -96
  337. package/assets/resources/icon/analysis.svg +0 -104
  338. package/assets/resources/icon/appwans.svg +0 -20
  339. package/assets/resources/icon/architecture.svg +0 -1
  340. package/assets/resources/icon/bike.svg +0 -94
  341. package/assets/resources/icon/bus.svg +0 -64
  342. package/assets/resources/icon/cas.svg +0 -46
  343. package/assets/resources/icon/clusters.svg +0 -28
  344. package/assets/resources/icon/computer.svg +0 -1
  345. package/assets/resources/icon/data.svg +0 -1
  346. package/assets/resources/icon/delivery-truck.svg +0 -1
  347. package/assets/resources/icon/explosion.svg +0 -81
  348. package/assets/resources/icon/fabricServices.svg +0 -31
  349. package/assets/resources/icon/fabrics.svg +0 -136
  350. package/assets/resources/icon/front.svg +0 -83
  351. package/assets/resources/icon/gateway.svg +0 -49
  352. package/assets/resources/icon/gear.svg +0 -122
  353. package/assets/resources/icon/house.svg +0 -72
  354. package/assets/resources/icon/language.svg +0 -1
  355. package/assets/resources/icon/objective.svg +0 -55
  356. package/assets/resources/icon/route.svg +0 -97
  357. package/assets/resources/icon/routers.svg +0 -27
  358. package/assets/resources/icon/startup.svg +0 -112
  359. package/assets/resources/icon/switch.svg +0 -101
  360. package/assets/scripts/chart.min.js +0 -7
  361. package/assets/scripts/commands.js +0 -112
  362. package/assets/scripts/components/codemirror/codemirror.css +0 -356
  363. package/assets/scripts/components/codemirror/codemirror.js +0 -9741
  364. package/assets/scripts/components/codemirror/modes/addons/closetags.js +0 -200
  365. package/assets/scripts/components/codemirror/modes/addons/colorize.js +0 -40
  366. package/assets/scripts/components/codemirror/modes/addons/css-hint.js +0 -66
  367. package/assets/scripts/components/codemirror/modes/addons/formatting.js +0 -124
  368. package/assets/scripts/components/codemirror/modes/addons/html-hint.js +0 -366
  369. package/assets/scripts/components/codemirror/modes/addons/javascript-hint.js +0 -159
  370. package/assets/scripts/components/codemirror/modes/addons/show-hint.css +0 -36
  371. package/assets/scripts/components/codemirror/modes/addons/show-hint.js +0 -482
  372. package/assets/scripts/components/codemirror/modes/css.js +0 -831
  373. package/assets/scripts/components/codemirror/modes/htmlmixed.js +0 -152
  374. package/assets/scripts/components/codemirror/modes/javascript.js +0 -930
  375. package/assets/scripts/components/codemirror/modes/xml.js +0 -413
  376. package/assets/scripts/components/column.css +0 -184
  377. package/assets/scripts/components/column.js +0 -165
  378. package/assets/scripts/components/flows.css +0 -0
  379. package/assets/scripts/components/flows.js +0 -48
  380. package/assets/scripts/components/moment.js +0 -4602
  381. package/assets/scripts/components/multiselect.js +0 -333
  382. package/assets/scripts/components/resources.js +0 -26
  383. package/assets/scripts/components/selector-new.js +0 -300
  384. package/assets/scripts/components/selector.js +0 -300
  385. package/assets/scripts/components/spectrum.js +0 -2323
  386. package/assets/scripts/components/timezone.js +0 -1545
  387. package/assets/scripts/context.js +0 -177
  388. package/assets/scripts/dragging.js +0 -58
  389. package/assets/scripts/forms/forms.js +0 -74
  390. package/assets/scripts/forms/host.v1.htm +0 -43
  391. package/assets/scripts/forms/intercept.v1.htm +0 -0
  392. package/assets/scripts/forms/schema.js +0 -693
  393. package/assets/scripts/growler.js +0 -137
  394. package/assets/scripts/header.js +0 -163
  395. package/assets/scripts/jquery-3.6.3.min.js +0 -2
  396. package/assets/scripts/jquery.datetimepicker.js +0 -2930
  397. package/assets/scripts/locale.js +0 -47
  398. package/assets/scripts/modal.js +0 -65
  399. package/assets/scripts/model/data.js +0 -558
  400. package/assets/scripts/model/fabric.js +0 -55
  401. package/assets/scripts/model/fabricServices.js +0 -45
  402. package/assets/scripts/model/known.js +0 -43
  403. package/assets/scripts/model/links.js +0 -44
  404. package/assets/scripts/model/routers.js +0 -51
  405. package/assets/scripts/model/series.js +0 -70
  406. package/assets/scripts/model/sessions.js +0 -61
  407. package/assets/scripts/model/settings.js +0 -60
  408. package/assets/scripts/model/summary.js +0 -49
  409. package/assets/scripts/model/tags.js +0 -310
  410. package/assets/scripts/model/templates.js +0 -42
  411. package/assets/scripts/model/user.js +0 -40
  412. package/assets/scripts/restrictions.js +0 -34
  413. package/assets/scripts/service.js +0 -76
  414. package/assets/scripts/validation-tools.js +0 -5119
  415. package/assets/scripts/ziti.js +0 -372
  416. package/assets/styles/chart.min.css +0 -1
  417. package/assets/styles/datetimepicker.css +0 -1
  418. package/assets/styles/forms.css +0 -521
  419. package/assets/styles/growler.css +0 -190
  420. package/assets/styles/header.css +0 -232
  421. package/assets/styles/icons.css +0 -182
  422. package/assets/styles/navigation.css +0 -183
  423. package/assets/styles/select2.css +0 -481
  424. package/assets/styles/spectrum.css +0 -507
  425. package/assets/styles/tables.css +0 -449
  426. package/assets/styles/tooltip.css +0 -134
  427. package/assets/styles/ziti.css +0 -3271
  428. package/assets/templates/footer.htm +0 -183
  429. package/assets/templates/header.htm +0 -297
  430. package/esm2022/lib/features/sidebars/side-banner/side-banner.component.mjs +0 -17
  431. package/esm2022/lib/features/sidebars/side-toolbar/side-toolbar.component.mjs +0 -129
  432. package/esm2022/lib/features/wrappers/node-wrapper.service.mjs +0 -51
  433. package/esm2022/lib/features/wrappers/zac-wrapper-service.class.mjs +0 -95
  434. package/esm2022/lib/features/wrappers/zac-wrapper.component.mjs +0 -148
  435. package/esm2022/lib/features/wrappers/zac-wrapper.service.mjs +0 -981
  436. package/esm2022/lib/version.mjs +0 -4
  437. package/lib/features/sidebars/side-banner/side-banner.component.d.ts +0 -7
  438. package/lib/features/sidebars/side-banner/side-banner.component.d.ts.map +0 -1
  439. package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts +0 -34
  440. package/lib/features/sidebars/side-toolbar/side-toolbar.component.d.ts.map +0 -1
  441. package/lib/features/wrappers/node-wrapper.service.d.ts +0 -24
  442. package/lib/features/wrappers/node-wrapper.service.d.ts.map +0 -1
  443. package/lib/features/wrappers/zac-wrapper-service.class.d.ts +0 -38
  444. package/lib/features/wrappers/zac-wrapper-service.class.d.ts.map +0 -1
  445. package/lib/features/wrappers/zac-wrapper.component.d.ts +0 -31
  446. package/lib/features/wrappers/zac-wrapper.component.d.ts.map +0 -1
  447. package/lib/features/wrappers/zac-wrapper.service.d.ts +0 -58
  448. package/lib/features/wrappers/zac-wrapper.service.d.ts.map +0 -1
  449. package/lib/version.d.ts +0 -4
  450. package/lib/version.d.ts.map +0 -1
@@ -22,7 +22,7 @@ import * as i3 from "./settings-service.class";
22
22
  import * as i4 from "@angular/common/http";
23
23
  import * as i5 from "@angular/router";
24
24
  export const ZITI_DATA_SERVICE = new InjectionToken('ZITI_DATA_SERVICE');
25
- class ZitiDataService {
25
+ export class ZitiDataService {
26
26
  static { this.NODE_DATA_SERVICE_TYPE = 'node'; }
27
27
  static { this.CONTROLLER_DATA_SERVICE_TYPE = 'controller'; }
28
28
  get DEFAULT_PAGING() {
@@ -44,7 +44,7 @@ class ZitiDataService {
44
44
  this.router = router;
45
45
  this.dataServiceType = '';
46
46
  }
47
- getRoleFilter(roleAttributes) {
47
+ getRoleFilter(roleAttributes, semantic = 'AnyOf') {
48
48
  let hasAll = false;
49
49
  roleAttributes.forEach((attr) => {
50
50
  if (attr === 'all') {
@@ -59,7 +59,8 @@ class ZitiDataService {
59
59
  filterName: "Attributes",
60
60
  label: "",
61
61
  type: "ATTRIBUTE",
62
- value: roleAttributes
62
+ value: roleAttributes,
63
+ semantic
63
64
  }
64
65
  ];
65
66
  }
@@ -90,11 +91,10 @@ class ZitiDataService {
90
91
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, deps: [{ token: i1.LoggerService }, { token: i2.GrowlerService }, { token: i3.SettingsServiceClass }, { token: i4.HttpClient }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
92
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, providedIn: 'root' }); }
92
93
  }
93
- export { ZitiDataService };
94
94
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZitiDataService, decorators: [{
95
95
  type: Injectable,
96
96
  args: [{
97
97
  providedIn: 'root'
98
98
  }]
99
99
  }], ctorParameters: function () { return [{ type: i1.LoggerService }, { type: i2.GrowlerService }, { type: i3.SettingsServiceClass }, { type: i4.HttpClient }, { type: i5.Router }]; } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsVUFBVSxFQUFVLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVNuRSxPQUFPLEVBQUMsU0FBUyxFQUF1QixRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFHaEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFFMUYsTUFHc0IsZUFBZTthQUU1QiwyQkFBc0IsR0FBRyxNQUFNLEFBQVQsQ0FBVTthQUNoQyxpQ0FBNEIsR0FBRyxZQUFZLEFBQWYsQ0FBZ0I7SUFJbkQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sU0FBUyxDQUFDO1lBQ2YsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsSUFBSTtZQUNkLEtBQUssRUFBRSxLQUFLO1lBQ1osSUFBSSxFQUFFLENBQUM7WUFDUCxRQUFRLEVBQUUsTUFBTTtZQUNoQixJQUFJLEVBQUUsTUFBTTtZQUNaLEtBQUssRUFBRSxHQUFHO1NBQ1gsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQXNCLE1BQXFCLEVBQ3JCLE9BQXVCLEVBQ3ZCLGVBQXFDLEVBQ3JDLFVBQXNCLEVBQ3RCLE1BQWM7UUFKZCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3ZCLG9CQUFlLEdBQWYsZUFBZSxDQUFzQjtRQUNyQyxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFsQnBDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO0lBbUJsQixDQUFDO0lBZ0JKLGFBQWEsQ0FBQyxjQUFjO1FBQzFCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFO2dCQUNsQixNQUFNLEdBQUcsSUFBSSxDQUFDO2FBQ2Y7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1gsT0FBTyxHQUFHO2dCQUNSO29CQUNFLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxZQUFZO29CQUN4QixLQUFLLEVBQUUsRUFBRTtvQkFDVCxJQUFJLEVBQUUsV0FBVztvQkFDakIsS0FBSyxFQUFFLGNBQWM7aUJBQ3RCO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFJO1FBQ2xCLElBQUksWUFBWSxDQUFDO1FBRWpCLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUN0QyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUNuRDthQUFNLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUM1QyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztTQUNsRDthQUFNLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDL0IsWUFBWSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDdEMsWUFBWSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUM1QzthQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNoQyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztTQUM1QjthQUFNO1lBQ0wsWUFBWSxHQUFHLDJCQUEyQixDQUFDO1NBQzVDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzsrR0EvRW1CLGVBQWU7bUhBQWYsZUFBZSxjQUZ2QixNQUFNOztTQUVFLGVBQWU7NEZBQWYsZUFBZTtrQkFIcEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQge0xvZ2dlclNlcnZpY2V9IGZyb20gXCIuLi9mZWF0dXJlcy9tZXNzYWdpbmcvbG9nZ2VyLnNlcnZpY2VcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1NFVFRJTkdTX1NFUlZJQ0UsIFNldHRpbmdzU2VydmljZX0gZnJvbSBcIi4vc2V0dGluZ3Muc2VydmljZVwiO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7RmlsdGVyT2JqfSBmcm9tIFwiLi4vZmVhdHVyZXMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLWZpbHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2VDbGFzcyB9IGZyb20gJy4vbG9naW4tc2VydmljZS5jbGFzcyc7XG5cbmltcG9ydCB7Y2xvbmVEZWVwLCBpc0VtcHR5LCBzb3J0ZWRVbmlxLCBpc1N0cmluZ30gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4vc2V0dGluZ3Mtc2VydmljZS5jbGFzc1wiO1xuXG5leHBvcnQgY29uc3QgWklUSV9EQVRBX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48Wml0aURhdGFTZXJ2aWNlPignWklUSV9EQVRBX1NFUlZJQ0UnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgWml0aURhdGFTZXJ2aWNlIHtcblxuICBzdGF0aWMgTk9ERV9EQVRBX1NFUlZJQ0VfVFlQRSA9ICdub2RlJztcbiAgc3RhdGljIENPTlRST0xMRVJfREFUQV9TRVJWSUNFX1RZUEUgPSAnY29udHJvbGxlcic7XG5cbiAgZGF0YVNlcnZpY2VUeXBlID0gJyc7XG5cbiAgcHVibGljIGdldCBERUZBVUxUX1BBR0lORygpIHtcbiAgICByZXR1cm4gY2xvbmVEZWVwKHtcbiAgICAgIGZpbHRlcjogXCJcIixcbiAgICAgIG5vU2VhcmNoOiB0cnVlLFxuICAgICAgb3JkZXI6IFwiYXNjXCIsXG4gICAgICBwYWdlOiAxLFxuICAgICAgc2VhcmNoT246IFwibmFtZVwiLFxuICAgICAgc29ydDogXCJuYW1lXCIsXG4gICAgICB0b3RhbDogMTAwXG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBncm93bGVyOiBHcm93bGVyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIHNldHRpbmdzU2VydmljZTogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXJcbiAgKSB7fVxuXG4gIGFic3RyYWN0IHBvc3QodHlwZSwgbW9kZWwsIGNoYWluZWQ/LCBjb250ZW50VHlwZT8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHB1dCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQ/KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBwYXRjaCh0eXBlLCBtb2RlbCwgaWQsIGNoYWluZWQ/KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBnZXQodHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVyczogRmlsdGVyT2JqW10sIHVybD8sIHVzZUNsaWVudD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldFN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYWdpbmc/OiBhbnksIGNvbnRlbnRUeXBlPywgZmlsdGVycz8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHNhdmVTdWJkYXRhKGVudGl0eVR5cGU6IHN0cmluZywgaWQ6IGFueSwgZGF0YVR5cGU6IHN0cmluZywgcGFyYW1zOiBhbnkpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGRlbGV0ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZGVsZXRlKHR5cGU6IHN0cmluZywgaWQ6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgY2FsbCh1cmw6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcmVzZXRFbnJvbGxtZW50KGlkOiBzdHJpbmcsIGRhdGU6IHN0cmluZyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcmVpc3N1ZUVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCByZXNldE1GQShpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBzY2hlbWEoZGF0YTogYW55KTogUHJvbWlzZTxhbnk+O1xuXG4gIGdldFJvbGVGaWx0ZXIocm9sZUF0dHJpYnV0ZXMpIHtcbiAgICBsZXQgaGFzQWxsID0gZmFsc2U7XG4gICAgcm9sZUF0dHJpYnV0ZXMuZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgaWYgKGF0dHIgPT09ICdhbGwnKSB7XG4gICAgICAgIGhhc0FsbCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGZpbHRlcnMgPSBbXTtcbiAgICBpZiAoIWhhc0FsbCkge1xuICAgICAgZmlsdGVycyA9IFtcbiAgICAgICAge1xuICAgICAgICAgIGNvbHVtbklkOiBcInJvbGVBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgZmlsdGVyTmFtZTogXCJBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgbGFiZWw6IFwiXCIsXG4gICAgICAgICAgdHlwZTogXCJBVFRSSUJVVEVcIixcbiAgICAgICAgICB2YWx1ZTogcm9sZUF0dHJpYnV0ZXNcbiAgICAgICAgfVxuICAgICAgXTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcnM7XG4gIH1cblxuICBnZXRFcnJvck1lc3NhZ2UocmVzcCkge1xuICAgIGxldCBlcnJvck1lc3NhZ2U7XG5cbiAgICBpZiAocmVzcD8uZXJyb3I/LmVycm9yPy5jYXVzZT8ubWVzc2FnZSkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gcmVzcD8uZXJyb3I/LmVycm9yPy5jYXVzZT8ubWVzc2FnZTtcbiAgICB9IGVsc2UgaWYgKHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/LnJlYXNvbikge1xuICAgICAgZXJyb3JNZXNzYWdlID0gcmVzcD8uZXJyb3I/LmVycm9yPy5jYXVzZT8ucmVhc29uO1xuICAgIH0gZWxzZSBpZiAocmVzcD8uZXJyb3I/Lm1lc3NhZ2UpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5tZXNzYWdlO1xuICAgIH0gZWxzZSBpZiAocmVzcD8uZXJyb3I/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSByZXNwPy5lcnJvcj8uZXJyb3I/Lm1lc3NhZ2U7XG4gICAgfSBlbHNlIGlmIChpc1N0cmluZyhyZXNwPy5lcnJvcikpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yO1xuICAgIH0gZWxzZSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSAnQW4gdW5rbm93biBlcnJvciBvY2N1cnJlZCc7XG4gICAgfVxuICAgIHJldHVybiBlcnJvck1lc3NhZ2U7XG4gIH1cbn1cbiJdfQ==
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieml0aS1kYXRhLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2VydmljZXMveml0aS1kYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixPQUFPLEVBQUUsVUFBVSxFQUFVLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVNuRSxPQUFPLEVBQUMsU0FBUyxFQUF1QixRQUFRLEVBQUMsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7QUFHaEUsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxjQUFjLENBQWtCLG1CQUFtQixDQUFDLENBQUM7QUFLMUYsTUFBTSxPQUFnQixlQUFlO2FBRTVCLDJCQUFzQixHQUFHLE1BQU0sQUFBVCxDQUFVO2FBQ2hDLGlDQUE0QixHQUFHLFlBQVksQUFBZixDQUFnQjtJQUluRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxTQUFTLENBQUM7WUFDZixNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEdBQUc7U0FDWCxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsWUFBc0IsTUFBcUIsRUFDckIsT0FBdUIsRUFDdkIsZUFBcUMsRUFDckMsVUFBc0IsRUFDdEIsTUFBYztRQUpkLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDdkIsb0JBQWUsR0FBZixlQUFlLENBQXNCO1FBQ3JDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQWxCcEMsb0JBQWUsR0FBRyxFQUFFLENBQUM7SUFtQmxCLENBQUM7SUFpQkosYUFBYSxDQUFDLGNBQWMsRUFBRSxRQUFRLEdBQUcsT0FBTztRQUM5QyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDbkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzlCLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTtnQkFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQzthQUNmO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sR0FBRztnQkFDUjtvQkFDRSxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsWUFBWTtvQkFDeEIsS0FBSyxFQUFFLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLEtBQUssRUFBRSxjQUFjO29CQUNyQixRQUFRO2lCQUNUO2FBQ0YsQ0FBQztTQUNIO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFJO1FBQ2xCLElBQUksWUFBWSxDQUFDO1FBRWpCLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTtZQUN0QyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUNuRDthQUFNLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtZQUM1QyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQztTQUNsRDthQUFNLElBQUksSUFBSSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDL0IsWUFBWSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDO1NBQ3JDO2FBQU0sSUFBSSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7WUFDdEMsWUFBWSxHQUFHLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztTQUM1QzthQUFNLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUNoQyxZQUFZLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQztTQUM1QjthQUFNO1lBQ0wsWUFBWSxHQUFHLDJCQUEyQixDQUFDO1NBQzVDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQzsrR0FqRm1CLGVBQWU7bUhBQWYsZUFBZSxjQUZ2QixNQUFNOzs0RkFFRSxlQUFlO2tCQUhwQyxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7TG9nZ2VyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9sb2dnZXIuc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi9zZXR0aW5ncy5zZXJ2aWNlXCI7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHtGaWx0ZXJPYmp9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7IExvZ2luU2VydmljZUNsYXNzIH0gZnJvbSAnLi9sb2dpbi1zZXJ2aWNlLmNsYXNzJztcblxuaW1wb3J0IHtjbG9uZURlZXAsIGlzRW1wdHksIHNvcnRlZFVuaXEsIGlzU3RyaW5nfSBmcm9tIFwibG9kYXNoXCI7XG5pbXBvcnQge1NldHRpbmdzU2VydmljZUNsYXNzfSBmcm9tIFwiLi9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5cbmV4cG9ydCBjb25zdCBaSVRJX0RBVEFfU0VSVklDRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxaaXRpRGF0YVNlcnZpY2U+KCdaSVRJX0RBVEFfU0VSVklDRScpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBaaXRpRGF0YVNlcnZpY2Uge1xuXG4gIHN0YXRpYyBOT0RFX0RBVEFfU0VSVklDRV9UWVBFID0gJ25vZGUnO1xuICBzdGF0aWMgQ09OVFJPTExFUl9EQVRBX1NFUlZJQ0VfVFlQRSA9ICdjb250cm9sbGVyJztcblxuICBkYXRhU2VydmljZVR5cGUgPSAnJztcblxuICBwdWJsaWMgZ2V0IERFRkFVTFRfUEFHSU5HKCkge1xuICAgIHJldHVybiBjbG9uZURlZXAoe1xuICAgICAgZmlsdGVyOiBcIlwiLFxuICAgICAgbm9TZWFyY2g6IHRydWUsXG4gICAgICBvcmRlcjogXCJhc2NcIixcbiAgICAgIHBhZ2U6IDEsXG4gICAgICBzZWFyY2hPbjogXCJuYW1lXCIsXG4gICAgICBzb3J0OiBcIm5hbWVcIixcbiAgICAgIHRvdGFsOiAxMDBcbiAgICB9KVxuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGxvZ2dlcjogTG9nZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGdyb3dsZXI6IEdyb3dsZXJTZXJ2aWNlLFxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgc2V0dGluZ3NTZXJ2aWNlOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgICAgICAgcHJvdGVjdGVkIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgYWJzdHJhY3QgcG9zdCh0eXBlLCBtb2RlbCwgY2hhaW5lZD8sIGNvbnRlbnRUeXBlPyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgcHV0KHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHBhdGNoKHR5cGUsIG1vZGVsLCBpZCwgY2hhaW5lZD8pOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IGdldCh0eXBlOiBzdHJpbmcsIHBhZ2luZzogYW55LCBmaWx0ZXJzOiBGaWx0ZXJPYmpbXSwgdXJsPywgdXNlQ2xpZW50Pyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZ2V0U3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhZ2luZz86IGFueSwgY29udGVudFR5cGU/LCBmaWx0ZXJzPyk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3Qgc2F2ZVN1YmRhdGEoZW50aXR5VHlwZTogc3RyaW5nLCBpZDogYW55LCBkYXRhVHlwZTogc3RyaW5nLCBwYXJhbXM6IGFueSk6IFByb21pc2U8YW55PjtcbiAgYWJzdHJhY3QgZGVsZXRlU3ViZGF0YShlbnRpdHlUeXBlOiBzdHJpbmcsIGlkOiBhbnksIGRhdGFUeXBlOiBzdHJpbmcsIHBhcmFtczogYW55KTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBkZWxldGUodHlwZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCBjYWxsKHVybDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCByZXNldEVucm9sbG1lbnQoaWQ6IHN0cmluZywgZGF0ZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICBhYnN0cmFjdCByZWlzc3VlRW5yb2xsbWVudChpZDogc3RyaW5nLCBkYXRlOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHJlc2V0TUZBKGlkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHJlc2V0UGFzc3dvcmQob2xkUGFzcywgbmV3UGFzcywgY29uZmlybVBhc3MpOiBQcm9taXNlPGFueT47XG4gIGFic3RyYWN0IHNjaGVtYShkYXRhOiBhbnkpOiBQcm9taXNlPGFueT47XG5cbiAgZ2V0Um9sZUZpbHRlcihyb2xlQXR0cmlidXRlcywgc2VtYW50aWMgPSAnQW55T2YnKSB7XG4gICAgbGV0IGhhc0FsbCA9IGZhbHNlO1xuICAgIHJvbGVBdHRyaWJ1dGVzLmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgIGlmIChhdHRyID09PSAnYWxsJykge1xuICAgICAgICBoYXNBbGwgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGxldCBmaWx0ZXJzID0gW107XG4gICAgaWYgKCFoYXNBbGwpIHtcbiAgICAgIGZpbHRlcnMgPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBjb2x1bW5JZDogXCJyb2xlQXR0cmlidXRlc1wiLFxuICAgICAgICAgIGZpbHRlck5hbWU6IFwiQXR0cmlidXRlc1wiLFxuICAgICAgICAgIGxhYmVsOiBcIlwiLFxuICAgICAgICAgIHR5cGU6IFwiQVRUUklCVVRFXCIsXG4gICAgICAgICAgdmFsdWU6IHJvbGVBdHRyaWJ1dGVzLFxuICAgICAgICAgIHNlbWFudGljXG4gICAgICAgIH1cbiAgICAgIF07XG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJzO1xuICB9XG5cbiAgZ2V0RXJyb3JNZXNzYWdlKHJlc3ApIHtcbiAgICBsZXQgZXJyb3JNZXNzYWdlO1xuXG4gICAgaWYgKHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/Lm1lc3NhZ2UpIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/Lm1lc3NhZ2U7XG4gICAgfSBlbHNlIGlmIChyZXNwPy5lcnJvcj8uZXJyb3I/LmNhdXNlPy5yZWFzb24pIHtcbiAgICAgIGVycm9yTWVzc2FnZSA9IHJlc3A/LmVycm9yPy5lcnJvcj8uY2F1c2U/LnJlYXNvbjtcbiAgICB9IGVsc2UgaWYgKHJlc3A/LmVycm9yPy5tZXNzYWdlKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSByZXNwPy5lcnJvcj8ubWVzc2FnZTtcbiAgICB9IGVsc2UgaWYgKHJlc3A/LmVycm9yPy5lcnJvcj8ubWVzc2FnZSkge1xuICAgICAgZXJyb3JNZXNzYWdlID0gcmVzcD8uZXJyb3I/LmVycm9yPy5tZXNzYWdlO1xuICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcocmVzcD8uZXJyb3IpKSB7XG4gICAgICBlcnJvck1lc3NhZ2UgPSByZXNwPy5lcnJvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgZXJyb3JNZXNzYWdlID0gJ0FuIHVua25vd24gZXJyb3Igb2NjdXJyZWQnO1xuICAgIH1cbiAgICByZXR1cm4gZXJyb3JNZXNzYWdlO1xuICB9XG59XG4iXX0=
@@ -9,7 +9,7 @@ import * as i1 from "../features/data-table/data-table-filter.service";
9
9
  import * as i2 from "./list-page-service.class";
10
10
  import * as i3 from "../services/console-events.service";
11
11
  import * as i4 from "@angular/material/dialog";
12
- class ListPageComponent {
12
+ export class ListPageComponent {
13
13
  constructor(filterService, svc, consoleEvents, dialogForm, extensionService) {
14
14
  this.filterService = filterService;
15
15
  this.svc = svc;
@@ -58,6 +58,10 @@ class ListPageComponent {
58
58
  }
59
59
  itemToggled(item) {
60
60
  this.updateSelectedItems(item);
61
+ const hasSelection = this.selectedItems.length > 0;
62
+ const index = this.svc.tableHeaderActions.findIndex(a => a.action === 'download-selected');
63
+ hasSelection && index === -1 && this.svc.tableHeaderActions.push({ name: 'Download Selected', action: 'download-selected' });
64
+ !hasSelection && index !== -1 && this.svc.tableHeaderActions.splice(index, 1);
61
65
  }
62
66
  updateSelectedItems(toggledItem) {
63
67
  let itemSelected = false;
@@ -176,8 +180,7 @@ class ListPageComponent {
176
180
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Injectable }); }
177
181
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent }); }
178
182
  }
179
- export { ListPageComponent };
180
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ListPageComponent, decorators: [{
181
184
  type: Injectable
182
185
  }], ctorParameters: function () { return [{ type: i1.DataTableFilterService }, { type: i2.ListPageServiceClass }, { type: i3.ConsoleEventsService }, { type: i4.MatDialog }, { type: undefined }]; } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLWNvbXBvbmVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zaGFyZWQvbGlzdC1wYWdlLWNvbXBvbmVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUd2RSxPQUFPLEVBQUMsS0FBSyxFQUFVLE1BQU0sUUFBUSxDQUFDO0FBR3RDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7OztBQUVqRSxNQUNzQixpQkFBaUI7SUF5Qm5DLFlBQ2MsYUFBcUMsRUFDeEMsR0FBeUIsRUFDdEIsYUFBbUMsRUFDbkMsVUFBcUIsRUFDckIsZ0JBQW1DO1FBSm5DLGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQUN4QyxRQUFHLEdBQUgsR0FBRyxDQUFzQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBc0I7UUFDbkMsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBdEJqRCxlQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxHQUFHLENBQUM7UUFDZixlQUFVLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGtCQUFhLEdBQVUsRUFBRSxDQUFDO1FBQzFCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFDckIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGtCQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ25C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LENBQUM7K0dBNU1pQixpQkFBaUI7bUhBQWpCLGlCQUFpQjs7U0FBakIsaUJBQWlCOzRGQUFqQixpQkFBaUI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2V9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7TGlzdFBhZ2VTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtDb25zb2xlRXZlbnRzU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2NvbnNvbGUtZXZlbnRzLnNlcnZpY2VcIjtcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSBcIi4uL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnRcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5cbmltcG9ydCB7ZGVmZXIsIGlzRW1wdHl9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7RXh0ZW5zaW9uU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL2V4dGVuZGFibGUvZXh0ZW5zaW9ucy1ub29wLnNlcnZpY2VcIjtcbmltcG9ydCB7R3Jvd2xlclNlcnZpY2V9IGZyb20gXCIuLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0UGFnZUNvbXBvbmVudCB7XG4gICAgYWJzdHJhY3QgdGl0bGU7XG4gICAgYWJzdHJhY3QgdGFiczogeyB1cmw6IHN0cmluZywgbGFiZWw6IHN0cmluZyB9W10gO1xuICAgIGFic3RyYWN0IGhlYWRlckFjdGlvbkNsaWNrZWQoYWN0aW9uOiBzdHJpbmcpOiB2b2lkO1xuICAgIGFic3RyYWN0IHRhYmxlQWN0aW9uKGV2ZW50OiB7YWN0aW9uOiBzdHJpbmcsIGl0ZW06IGFueX0pOiB2b2lkO1xuICAgIGFic3RyYWN0IGlzTG9hZGluZzogYm9vbGVhbjtcbiAgICBhYnN0cmFjdCBjbG9zZU1vZGFsKGV2ZW50PzogYW55KTogdm9pZDtcblxuICAgIHN0YXJ0Q291bnQgPSAnLSc7XG4gICAgZW5kQ291bnQgPSAnLSc7XG4gICAgdG90YWxDb3VudCA9ICctJztcbiAgICBpdGVtc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgc2VsZWN0ZWRJdGVtczogYW55W10gPSBbXTtcbiAgICBjb2x1bW5EZWZzOiBhbnkgPSBbXTtcbiAgICByb3dEYXRhID0gW107XG4gICAgcmVzZXJ2ZWROYW1lcyA9IFtdO1xuICAgIGZpbHRlckFwcGxpZWQgPSBmYWxzZTtcbiAgICBkaWFsb2dSZWY6IGFueTtcbiAgICBtb2RhbE9wZW4gPSBmYWxzZTtcbiAgICBncmlkT2JqOiBhbnkgPSB7fTtcblxuICAgIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgcHJpdmF0ZSBncm93bGVyU3ZjID0gaW5qZWN0KEdyb3dsZXJTZXJ2aWNlKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgZmlsdGVyU2VydmljZTogRGF0YVRhYmxlRmlsdGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHN2YzogTGlzdFBhZ2VTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIHByb3RlY3RlZCBjb25zb2xlRXZlbnRzOiBDb25zb2xlRXZlbnRzU2VydmljZSxcbiAgICAgICAgcHJvdGVjdGVkIGRpYWxvZ0Zvcm06IE1hdERpYWxvZyxcbiAgICAgICAgcHJvdGVjdGVkIGV4dGVuc2lvblNlcnZpY2U/OiBFeHRlbnNpb25TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5jdXJyZW50UGFnZSA9IDE7XG4gICAgICAgIHRoaXMuc3ZjLnNpZGVNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICAgICAgdGhpcy5zdmMucmVmcmVzaERhdGEgPSB0aGlzLnJlZnJlc2hEYXRhLmJpbmQodGhpcyk7XG4gICAgICAgIHRoaXMuc3ZjLmluaXRNZW51QWN0aW9ucygpO1xuICAgICAgICB0aGlzLmNvbHVtbkRlZnMgPSB0aGlzLnN2Yy5pbml0VGFibGVDb2x1bW5zKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5jbGVhckZpbHRlcnMoKTtcbiAgICAgICAgdGhpcy5leHRlbnNpb25TZXJ2aWNlPy5leHRlbmRPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmZpbHRlcnNDaGFuZ2VkLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckFwcGxpZWQgPSBmaWx0ZXJzICYmIGZpbHRlcnMubGVuZ3RoID4gMDtcbiAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UucGFnZUNoYW5nZWQuc3Vic2NyaWJlKHBhZ2UgPT4ge1xuICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5jb25zb2xlRXZlbnRzLmNsb3NlU2lkZU1vZGFsLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgICAgICAgdGhpcy5jb25zb2xlRXZlbnRzLnJlZnJlc2hEYXRhLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29uc29sZUV2ZW50cy5lbmFibGVaQUNFdmVudHMoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpdGVtVG9nZ2xlZChpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW1zKGl0ZW0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVNlbGVjdGVkSXRlbXModG9nZ2xlZEl0ZW0/OiBhbnkpIHtcbiAgICAgICAgbGV0IGl0ZW1TZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcblxuICAgICAgICB0aGlzLnJvd0RhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzZXJ2ZWQgPSB0aGlzLnJlc2VydmVkTmFtZXM/LmluY2x1ZGVzKGl0ZW0ubmFtZSk7XG4gICAgICAgICAgICBpZiAocmVzZXJ2ZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRvZ2dsZWRJdGVtPy5pZCAmJiB0b2dnbGVkSXRlbT8uaWQgPT09IGl0ZW0/LmlkKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRvZ2dsZWRJdGVtLnNlbGVjdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pdGVtc1NlbGVjdGVkID0gaXRlbVNlbGVjdGVkO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKHNvcnQ/OiB7IHNvcnRCeTogc3RyaW5nLCBvcmRlcmluZzogc3RyaW5nIH0sIGhhcmRSZWZyZXNoID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBzb3J0ID0gc29ydCA/IHNvcnQgOiB0aGlzLnN2Yy5jdXJyZW50U29ydDtcbiAgICAgICAgdGhpcy5zdmMuZ2V0RGF0YSh0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVycywgc29ydCwgdGhpcy5maWx0ZXJTZXJ2aWNlLmN1cnJlbnRQYWdlKVxuICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93RGF0YSA9IFtdO1xuICAgICAgICAgICAgICAgIGlmIChoYXJkUmVmcmVzaCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd0RhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93RGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSBkYXRhLm1ldGEucGFnaW5hdGlvbi50b3RhbENvdW50O1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRDb3VudCA9IChkYXRhLm1ldGEucGFnaW5hdGlvbi5vZmZzZXQgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFydENvdW50ICsgZGF0YS5tZXRhLnBhZ2luYXRpb24ubGltaXQgPiB0aGlzLnRvdGFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmRDb3VudCA9IHRoaXMudG90YWxDb3VudDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZENvdW50ID0gZGF0YS5tZXRhLnBhZ2luYXRpb24ub2Zmc2V0ICsgZGF0YS5tZXRhLnBhZ2luYXRpb24ubGltaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaENlbGxzKCk7XG4gICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRvd25sb2FkQWxsSXRlbXMoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdmMuZG93bmxvYWRBbGxJdGVtcygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAnU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgYERvd25sb2FkIEZpbmlzaGVkYCxcbiAgICAgICAgICAgICAgICBgVGhlIHJlcXVlc3RlZCBpdGVtcyBoYXZlIGJlZW4gZG93bmxvYWRlZGAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncm93bGVyU3ZjLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAnRXJyb3InLFxuICAgICAgICAgICAgICAgIGBEb3dubG9hZCBGYWlsZWRgLFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcmV0cmlldmUgaXRlbXMgZm9yIGRvd25sb2FkYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdyb3dsZXJTdmMuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3BlbkJ1bGtEZWxldGUoc2VsZWN0ZWRJdGVtczogYW55W10sIGVudGl0eVR5cGVMYWJlbCA9ICdpdGVtKHMpJywgKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJdGVtcy5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy5pZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTmFtZXMgPSBzZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvdW50TGFiZWwgPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEgPyBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA6ICcnO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYXBwZW5kSWQ6ICdEZWxldGVTZXJ2aWNlcycsXG4gICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIGRlbGV0ZSB0aGUgZm9sbG93aW5nICR7Y291bnRMYWJlbH0gJHtlbnRpdHlUeXBlTGFiZWx9P2AsXG4gICAgICAgICAgICBidWxsZXRMaXN0OiBzZWxlY3RlZE5hbWVzLFxuICAgICAgICAgICAgY29uZmlybUxhYmVsOiAnWWVzJyxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiAnT29wcywgbm8gZ2V0IG1lIG91dCBvZiBoZXJlJyxcbiAgICAgICAgICAgIGltYWdlVXJsOiAnLi4vLi4vYXNzZXRzL3N2Z3MvQ29uZmlybV9UcmFzaC5zdmcnLFxuICAgICAgICAgICAgc2hvd0NhbmNlbExpbms6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihDb25maXJtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQ/LmNvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZjLnJlbW92ZUl0ZW1zKHNlbGVjdGVkSWRzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSh0aGlzLnN2Yy5jdXJyZW50U29ydCk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycm9yTWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBEZWxldGUgRmFpbGVkYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gZGVsZXRlIGl0ZW0ocyk6ICR7ZXJyb3JNZXNzYWdlfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclN2Yy5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlRXh0ZW5zaW9uQWN0aW9ucyhldmVudCkge1xuICAgICAgICBsZXQgZXh0ZW5zaW9uRm91bmQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9uU2VydmljZT8ubGlzdEFjdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5zaW9uU2VydmljZT8ubGlzdEFjdGlvbnM/LmZvckVhY2goKGV4dEFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChleHRBY3Rpb24/LmFjdGlvbiA9PT0gZXZlbnQ/LmFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBleHRBY3Rpb24uY2FsbGJhY2soZXZlbnQuaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbkZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uRm91bmQ7XG4gICAgfVxuXG4gICAgZ3JpZFJlYWR5KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZ3JpZE9iaiA9IGV2ZW50O1xuICAgIH1cblxuICAgIHJlZnJlc2hDZWxscygpIHtcbiAgICAgICAgZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBmb3JjZTogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmdyaWRPYmo/LmFwaT8ucmVmcmVzaENlbGxzKHBhcmFtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLWNvbXBvbmVudC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ppdGktY29uc29sZS1saWIvc3JjL2xpYi9zaGFyZWQvbGlzdC1wYWdlLWNvbXBvbmVudC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrQkEsT0FBTyxFQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUd2RSxPQUFPLEVBQUMsS0FBSyxFQUFVLE1BQU0sUUFBUSxDQUFDO0FBR3RDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0scUNBQXFDLENBQUM7Ozs7OztBQUdqRSxNQUFNLE9BQWdCLGlCQUFpQjtJQXlCbkMsWUFDYyxhQUFxQyxFQUN4QyxHQUF5QixFQUN0QixhQUFtQyxFQUNuQyxVQUFxQixFQUNyQixnQkFBbUM7UUFKbkMsa0JBQWEsR0FBYixhQUFhLENBQXdCO1FBQ3hDLFFBQUcsR0FBSCxHQUFHLENBQXNCO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFzQjtRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUFXO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBbUI7UUF0QmpELGVBQVUsR0FBRyxHQUFHLENBQUM7UUFDakIsYUFBUSxHQUFHLEdBQUcsQ0FBQztRQUNmLGVBQVUsR0FBRyxHQUFHLENBQUM7UUFDakIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsa0JBQWEsR0FBVSxFQUFFLENBQUM7UUFDMUIsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUNyQixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2Isa0JBQWEsR0FBRyxFQUFFLENBQUM7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RUFBRSxFQUFFO2dCQUN0RCxJQUFJLFNBQVMsRUFBRSxNQUFNLEtBQUssS0FBSyxFQUFFLE1BQU0sRUFBRTtvQkFDckMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQy9CLGNBQWMsR0FBRyxJQUFJLENBQUM7aUJBQ3pCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sY0FBYyxDQUFDO0lBQzFCLENBQUM7SUFFRCxTQUFTLENBQUMsS0FBSztRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZO1FBQ1IsS0FBSyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksTUFBTSxHQUFHO2dCQUNULEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQztZQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBaE5pQixpQkFBaUI7bUhBQWpCLGlCQUFpQjs7NEZBQWpCLGlCQUFpQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7RGF0YVRhYmxlRmlsdGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtMaXN0UGFnZVNlcnZpY2VDbGFzc30gZnJvbSBcIi4vbGlzdC1wYWdlLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7aW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0NvbnNvbGVFdmVudHNTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvY29uc29sZS1ldmVudHMuc2VydmljZVwiO1xuaW1wb3J0IHtDb25maXJtQ29tcG9uZW50fSBmcm9tIFwiLi4vZmVhdHVyZXMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcblxuaW1wb3J0IHtkZWZlciwgaXNFbXB0eX0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtFeHRlbnNpb25TZXJ2aWNlfSBmcm9tIFwiLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IHtHcm93bGVyU2VydmljZX0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7R3Jvd2xlck1vZGVsfSBmcm9tIFwiLi4vZmVhdHVyZXMvbWVzc2FnaW5nL2dyb3dsZXIubW9kZWxcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIExpc3RQYWdlQ29tcG9uZW50IHtcbiAgICBhYnN0cmFjdCB0aXRsZTtcbiAgICBhYnN0cmFjdCB0YWJzOiB7IHVybDogc3RyaW5nLCBsYWJlbDogc3RyaW5nIH1bXSA7XG4gICAgYWJzdHJhY3QgaGVhZGVyQWN0aW9uQ2xpY2tlZChhY3Rpb246IHN0cmluZyk6IHZvaWQ7XG4gICAgYWJzdHJhY3QgdGFibGVBY3Rpb24oZXZlbnQ6IHthY3Rpb246IHN0cmluZywgaXRlbTogYW55fSk6IHZvaWQ7XG4gICAgYWJzdHJhY3QgaXNMb2FkaW5nOiBib29sZWFuO1xuICAgIGFic3RyYWN0IGNsb3NlTW9kYWwoZXZlbnQ/OiBhbnkpOiB2b2lkO1xuXG4gICAgc3RhcnRDb3VudCA9ICctJztcbiAgICBlbmRDb3VudCA9ICctJztcbiAgICB0b3RhbENvdW50ID0gJy0nO1xuICAgIGl0ZW1zU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICBzZWxlY3RlZEl0ZW1zOiBhbnlbXSA9IFtdO1xuICAgIGNvbHVtbkRlZnM6IGFueSA9IFtdO1xuICAgIHJvd0RhdGEgPSBbXTtcbiAgICByZXNlcnZlZE5hbWVzID0gW107XG4gICAgZmlsdGVyQXBwbGllZCA9IGZhbHNlO1xuICAgIGRpYWxvZ1JlZjogYW55O1xuICAgIG1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIGdyaWRPYmo6IGFueSA9IHt9O1xuXG4gICAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICBwcml2YXRlIGdyb3dsZXJTdmMgPSBpbmplY3QoR3Jvd2xlclNlcnZpY2UpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgc3ZjOiBMaXN0UGFnZVNlcnZpY2VDbGFzcyxcbiAgICAgICAgcHJvdGVjdGVkIGNvbnNvbGVFdmVudHM6IENvbnNvbGVFdmVudHNTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgZGlhbG9nRm9ybTogTWF0RGlhbG9nLFxuICAgICAgICBwcm90ZWN0ZWQgZXh0ZW5zaW9uU2VydmljZT86IEV4dGVuc2lvblNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmN1cnJlbnRQYWdlID0gMTtcbiAgICAgICAgdGhpcy5zdmMuc2lkZU1vZGFsT3BlbiA9IGZhbHNlO1xuICAgICAgICB0aGlzLnN2Yy5yZWZyZXNoRGF0YSA9IHRoaXMucmVmcmVzaERhdGEuYmluZCh0aGlzKTtcbiAgICAgICAgdGhpcy5zdmMuaW5pdE1lbnVBY3Rpb25zKCk7XG4gICAgICAgIHRoaXMuY29sdW1uRGVmcyA9IHRoaXMuc3ZjLmluaXRUYWJsZUNvbHVtbnMoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlLmNsZWFyRmlsdGVycygpO1xuICAgICAgICB0aGlzLmV4dGVuc2lvblNlcnZpY2U/LmV4dGVuZE9uSW5pdCgpO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyc0NoYW5nZWQuc3Vic2NyaWJlKGZpbHRlcnMgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmlsdGVyQXBwbGllZCA9IGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5wYWdlQ2hhbmdlZC5zdWJzY3JpYmUocGFnZSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hEYXRhKCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNvbnNvbGVFdmVudHMuY2xvc2VTaWRlTW9kYWwuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICAgICAgICB0aGlzLmNvbnNvbGVFdmVudHMucmVmcmVzaERhdGEuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb25zb2xlRXZlbnRzLmVuYWJsZVpBQ0V2ZW50cygpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGl0ZW1Ub2dnbGVkKGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoaXRlbSk7XG4gICAgICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwO1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc3ZjLnRhYmxlSGVhZGVyQWN0aW9ucy5maW5kSW5kZXgoYSA9PiBhLmFjdGlvbiA9PT0gJ2Rvd25sb2FkLXNlbGVjdGVkJyk7XG4gICAgICAgIGhhc1NlbGVjdGlvbiAmJiBpbmRleCA9PT0gLTEgJiYgdGhpcy5zdmMudGFibGVIZWFkZXJBY3Rpb25zLnB1c2goeyBuYW1lOiAnRG93bmxvYWQgU2VsZWN0ZWQnLCBhY3Rpb246ICdkb3dubG9hZC1zZWxlY3RlZCcgfSk7XG4gICAgICAgICFoYXNTZWxlY3Rpb24gJiYgaW5kZXggIT09IC0xICYmIHRoaXMuc3ZjLnRhYmxlSGVhZGVyQWN0aW9ucy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cblxuICAgIHVwZGF0ZVNlbGVjdGVkSXRlbXModG9nZ2xlZEl0ZW0/OiBhbnkpIHtcbiAgICAgICAgbGV0IGl0ZW1TZWxlY3RlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcblxuICAgICAgICB0aGlzLnJvd0RhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzZXJ2ZWQgPSB0aGlzLnJlc2VydmVkTmFtZXM/LmluY2x1ZGVzKGl0ZW0ubmFtZSk7XG4gICAgICAgICAgICBpZiAocmVzZXJ2ZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtLnNlbGVjdGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRvZ2dsZWRJdGVtPy5pZCAmJiB0b2dnbGVkSXRlbT8uaWQgPT09IGl0ZW0/LmlkKSB7XG4gICAgICAgICAgICAgICAgaXRlbS5zZWxlY3RlZCA9IHRvZ2dsZWRJdGVtLnNlbGVjdGVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGl0ZW0uc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICBpdGVtU2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pdGVtc1NlbGVjdGVkID0gaXRlbVNlbGVjdGVkO1xuICAgIH1cblxuICAgIHJlZnJlc2hEYXRhKHNvcnQ/OiB7IHNvcnRCeTogc3RyaW5nLCBvcmRlcmluZzogc3RyaW5nIH0sIGhhcmRSZWZyZXNoID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBzb3J0ID0gc29ydCA/IHNvcnQgOiB0aGlzLnN2Yy5jdXJyZW50U29ydDtcbiAgICAgICAgdGhpcy5zdmMuZ2V0RGF0YSh0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVycywgc29ydCwgdGhpcy5maWx0ZXJTZXJ2aWNlLmN1cnJlbnRQYWdlKVxuICAgICAgICAgICAgLnRoZW4oKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm93RGF0YSA9IFtdO1xuICAgICAgICAgICAgICAgIGlmIChoYXJkUmVmcmVzaCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZlcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJvd0RhdGEgPSBkYXRhLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm93RGF0YSA9IGRhdGEuZGF0YTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRvdGFsQ291bnQgPSBkYXRhLm1ldGEucGFnaW5hdGlvbi50b3RhbENvdW50O1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRDb3VudCA9IChkYXRhLm1ldGEucGFnaW5hdGlvbi5vZmZzZXQgKyAxKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFydENvdW50ICsgZGF0YS5tZXRhLnBhZ2luYXRpb24ubGltaXQgPiB0aGlzLnRvdGFsQ291bnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbmRDb3VudCA9IHRoaXMudG90YWxDb3VudDtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZENvdW50ID0gZGF0YS5tZXRhLnBhZ2luYXRpb24ub2Zmc2V0ICsgZGF0YS5tZXRhLnBhZ2luYXRpb24ubGltaXQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRJdGVtcygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaENlbGxzKCk7XG4gICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGRvd25sb2FkQWxsSXRlbXMoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdmMuZG93bmxvYWRBbGxJdGVtcygpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZ3Jvd2xlckRhdGEgPSBuZXcgR3Jvd2xlck1vZGVsKFxuICAgICAgICAgICAgICAgICdzdWNjZXNzJyxcbiAgICAgICAgICAgICAgICAnU3VjY2VzcycsXG4gICAgICAgICAgICAgICAgYERvd25sb2FkIEZpbmlzaGVkYCxcbiAgICAgICAgICAgICAgICBgVGhlIHJlcXVlc3RlZCBpdGVtcyBoYXZlIGJlZW4gZG93bmxvYWRlZGAsXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5ncm93bGVyU3ZjLnNob3coZ3Jvd2xlckRhdGEpO1xuICAgICAgICB9KS5jYXRjaCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgJ2Vycm9yJyxcbiAgICAgICAgICAgICAgICAnRXJyb3InLFxuICAgICAgICAgICAgICAgIGBEb3dubG9hZCBGYWlsZWRgLFxuICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gcmV0cmlldmUgaXRlbXMgZm9yIGRvd25sb2FkYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmdyb3dsZXJTdmMuc2hvdyhncm93bGVyRGF0YSk7XG4gICAgICAgIH0pLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3BlbkJ1bGtEZWxldGUoc2VsZWN0ZWRJdGVtczogYW55W10sIGVudGl0eVR5cGVMYWJlbCA9ICdpdGVtKHMpJywgKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJdGVtcy5tYXAoKHJvdykgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHJvdy5pZDtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkTmFtZXMgPSBzZWxlY3RlZEl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNvdW50TGFiZWwgPSBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDEgPyBzZWxlY3RlZEl0ZW1zLmxlbmd0aCA6ICcnO1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYXBwZW5kSWQ6ICdEZWxldGVTZXJ2aWNlcycsXG4gICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICBtZXNzYWdlOiBgQXJlIHlvdSBzdXJlIHlvdSB3b3VsZCBsaWtlIHRvIGRlbGV0ZSB0aGUgZm9sbG93aW5nICR7Y291bnRMYWJlbH0gJHtlbnRpdHlUeXBlTGFiZWx9P2AsXG4gICAgICAgICAgICBidWxsZXRMaXN0OiBzZWxlY3RlZE5hbWVzLFxuICAgICAgICAgICAgY29uZmlybUxhYmVsOiAnWWVzJyxcbiAgICAgICAgICAgIGNhbmNlbExhYmVsOiAnT29wcywgbm8gZ2V0IG1lIG91dCBvZiBoZXJlJyxcbiAgICAgICAgICAgIGltYWdlVXJsOiAnLi4vLi4vYXNzZXRzL3N2Z3MvQ29uZmlybV9UcmFzaC5zdmcnLFxuICAgICAgICAgICAgc2hvd0NhbmNlbExpbms6IHRydWVcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ0Zvcm0ub3BlbihDb25maXJtQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXN1bHQ/LmNvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZjLnJlbW92ZUl0ZW1zKHNlbGVjdGVkSWRzKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSh0aGlzLnN2Yy5jdXJyZW50U29ydCk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goKGVycm9yTWVzc2FnZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm93bGVyRGF0YSA9IG5ldyBHcm93bGVyTW9kZWwoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3InLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ0Vycm9yJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBEZWxldGUgRmFpbGVkYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGBGYWlsZWQgdG8gZGVsZXRlIGl0ZW0ocyk6ICR7ZXJyb3JNZXNzYWdlfWAsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3Jvd2xlclN2Yy5zaG93KGdyb3dsZXJEYXRhKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaGFuZGxlRXh0ZW5zaW9uQWN0aW9ucyhldmVudCkge1xuICAgICAgICBsZXQgZXh0ZW5zaW9uRm91bmQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHRoaXMuZXh0ZW5zaW9uU2VydmljZT8ubGlzdEFjdGlvbnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXh0ZW5zaW9uU2VydmljZT8ubGlzdEFjdGlvbnM/LmZvckVhY2goKGV4dEFjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChleHRBY3Rpb24/LmFjdGlvbiA9PT0gZXZlbnQ/LmFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBleHRBY3Rpb24uY2FsbGJhY2soZXZlbnQuaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbkZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uRm91bmQ7XG4gICAgfVxuXG4gICAgZ3JpZFJlYWR5KGV2ZW50KSB7XG4gICAgICAgIHRoaXMuZ3JpZE9iaiA9IGV2ZW50O1xuICAgIH1cblxuICAgIHJlZnJlc2hDZWxscygpIHtcbiAgICAgICAgZGVmZXIoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIHBhcmFtcyA9IHtcbiAgICAgICAgICAgICAgICBmb3JjZTogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLmdyaWRPYmo/LmFwaT8ucmVmcmVzaENlbGxzKHBhcmFtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -22,7 +22,7 @@ import { SHAREDZ_EXTENSION } from "../features/extendable/extensions-noop.servic
22
22
  import moment from "moment/moment";
23
23
  import { NavigationEnd } from "@angular/router";
24
24
  import { TableColumnDefaultComponent } from "../features/data-table/column-headers/table-column-default/table-column-default.component";
25
- let ListPageServiceClass = class ListPageServiceClass {
25
+ export let ListPageServiceClass = class ListPageServiceClass {
26
26
  constructor(settings, filterService, csvDownloadService, extensionService, router) {
27
27
  this.settings = settings;
28
28
  this.filterService = filterService;
@@ -241,5 +241,4 @@ ListPageServiceClass = __decorate([
241
241
  __param(0, Inject(SETTINGS_SERVICE)),
242
242
  __param(3, Inject(SHAREDZ_EXTENSION))
243
243
  ], ListPageServiceClass);
244
- export { ListPageServiceClass };
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFOztBQUVGLE9BQU8sRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU1qRixPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFtQixpQkFBaUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDJGQUEyRixDQUFDO0FBR25HLElBQXNCLG9CQUFvQixHQUExQyxNQUFzQixvQkFBb0I7SUFpR3RDLFlBQzhCLFFBQXdDLEVBQ3hELGFBQXFDLEVBQ3JDLGtCQUFzQyxFQUNyQixnQkFBNEMsRUFDN0QsTUFBZTtRQUpXLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQ3hELGtCQUFhLEdBQWIsYUFBYSxDQUF3QjtRQUNyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ1gscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUM3RCxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBL0Y3QixnQkFBVyxHQUFHO1lBQ1YsRUFBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUM7WUFDN0IsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUM7WUFDekIsRUFBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUM7U0FDM0MsQ0FBQztRQUVGLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFFdEIsMEJBQXFCLEdBQUc7WUFDcEIsVUFBVSxFQUFFLFdBQVc7WUFDdkIsYUFBYSxFQUFFLElBQUk7U0FDdEIsQ0FBQztRQUVGLGtCQUFhLEdBQUc7WUFDWixLQUFLLEVBQUUsSUFBSTtZQUNYLEtBQUssRUFBRSxJQUFJO1lBQ1gsVUFBVSxFQUFFLElBQUk7WUFDaEIsZUFBZSxFQUFFLDJCQUEyQjtZQUM1QyxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCO1lBQ2pELGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFO1lBQ3hFLGFBQWEsRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNwQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRTtvQkFDeEIsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDdEMsQ0FBQztZQUNELFNBQVMsRUFBRSxJQUFJO1lBQ2YsU0FBUyxFQUFFLHlCQUF5QjtZQUNwQyxRQUFRLEVBQUUsSUFBSTtZQUNkLE1BQU0sRUFBRSxJQUFJO1lBQ1osSUFBSSxFQUFFLElBQUk7U0FDYixDQUFDO1FBRUYsbUJBQWMsR0FBUTtZQUNsQixNQUFNLEVBQUUsRUFBRTtZQUNWLFFBQVEsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsQ0FBQztZQUNQLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLElBQUksRUFBRSxNQUFNO1lBQ1osS0FBSyxFQUFFLEVBQUU7U0FDWixDQUFBO1FBQ0QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUtmLGNBQVMsR0FBUSxFQUFFLENBQUM7UUFDcEIsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBRTFCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUc7WUFDVixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxLQUFLO1NBQ2xCLENBQUM7UUFFRix1QkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sZ0RBQWdELEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTs4QkFDOUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJO3VCQUN0QixDQUFBO1FBQ25CLENBQUMsQ0FBQTtRQUVELGtCQUFhLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLEVBQUU7Z0JBQ2hDLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQzVDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ3ZFLEtBQUssSUFBSTswQ0FDaUIsU0FBUyxLQUFLLElBQUksQ0FBQyxJQUFJO29EQUNiLElBQUksQ0FBQyxJQUFJO2lDQUM1QixDQUFDO2dCQUN0QixDQUFDLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDakMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUNoRSxLQUFLLElBQUk7MENBQ2lCLFNBQVMsS0FBSyxJQUFJO29EQUNSLElBQUk7aUNBQ3ZCLENBQUM7Z0JBQ3RCLENBQUMsQ0FBQyxDQUFDO2FBQ047WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUE7UUFFRCx1QkFBa0IsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3pCLE9BQU8sTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDM0UsQ0FBQyxDQUFBO1FBU0csSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsS0FBSyxlQUFlLENBQUMsc0JBQXNCLEVBQUU7Z0JBQy9ILElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sRUFBRSxFQUFFLEtBQUssUUFBUSxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEtBQUssZUFBZSxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDbEssSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUN0QjthQUNKO1lBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ25DLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLFlBQVksYUFBYSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO29CQUNyQyxPQUFPO2lCQUNWO2dCQUNELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUNuQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7b0JBQ2xELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxPQUFPLENBQUMsTUFBTSxFQUFFO3dCQUNoQyxJQUFJLEdBQUcsT0FBTyxDQUFDO3FCQUNsQjtnQkFDTCxDQUFDLENBQUMsQ0FBQztnQkFDSCxPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZFLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNqQyxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxlQUFlLENBQUMsQ0FBQztTQUM1RDtJQUNMLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxHQUFHO1FBQzNCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtZQUNuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUMxRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDSCxHQUFHLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7U0FDakQ7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLGFBQWE7UUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDNUIsSUFBSSxDQUFDLFlBQVksRUFDakIsYUFBYSxFQUNiLElBQUksQ0FBQyxXQUFXLEVBQ2hCLEtBQUssRUFDTCxLQUFLLEVBQ0wsU0FBUyxFQUNULEtBQUssQ0FDUixDQUFDO0lBQ04sQ0FBQztJQUVELGdCQUFnQjtRQUNaLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDOUMsTUFBTSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQzthQUNwRSxJQUFJLENBQUMsQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBQyxZQUFvQixFQUFFLE1BQVcsRUFBRSxPQUFxQixFQUFFLElBQVU7UUFDN0UsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE1BQU0sR0FBRyxFQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQyxDQUFDO1NBQ3JDO1FBQ0QsSUFBRyxJQUFJLEVBQUU7WUFDTCxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDMUIsTUFBTSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ2hDO1FBQ0QsS0FBSyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDNUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsTUFBTSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ3hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUNuQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUMzQjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRTtZQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsMEJBQTBCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxjQUFjO1FBQ2xELE1BQU0scUJBQXFCLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDckIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBVyxFQUFFLEVBQUU7Z0JBQzNGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNuQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNyQixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3RDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDbkMsT0FBTyxxQkFBcUIsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBYTtRQUNyQixNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDcEIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1lBQ2YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1RCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNELE1BQU0sT0FBTyxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxHQUFFLEtBQUs7UUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUMsQ0FBQztRQUN0QyxJQUFHLElBQUksQ0FBQyxXQUFXO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDM0M7UUFDRCxPQUFPLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxZQUFZLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRSxRQUFTO1FBQ3RDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLE1BQU0sR0FBRyxRQUFRLENBQUM7U0FDckI7UUFDRCxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsR0FBRyxRQUFRLElBQUksTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQVE7UUFDWixNQUFNLFlBQVksR0FBUSxVQUFVLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRyxPQUFPLFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUFBLENBQUM7Q0FDTCxDQUFBO0FBM1BxQixvQkFBb0I7SUFrR2pDLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7SUFHeEIsV0FBQSxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtHQXJHWixvQkFBb0IsQ0EyUHpDO1NBM1BxQixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICAgIENvcHlyaWdodCBOZXRGb3VuZHJ5IEluYy5cblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4qL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBpbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1pJVElfREFUQV9TRVJWSUNFLCBaaXRpRGF0YVNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy96aXRpLWRhdGEuc2VydmljZVwiO1xuaW1wb3J0IHtEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLCBGaWx0ZXJPYmp9IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7VmFsaWRhdG9yQ2FsbGJhY2t9IGZyb20gXCIuLi9mZWF0dXJlcy9saXN0LXBhZ2UtZmVhdHVyZXMvbGlzdC1wYWdlLWZvcm0vbGlzdC1wYWdlLWZvcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge0RpYWxvZ1JlZn0gZnJvbSBcIkBhbmd1bGFyL2Nkay9kaWFsb2dcIjtcbmltcG9ydCB7TWF0RGlhbG9nfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XG5pbXBvcnQge0NvbmZpcm1Db21wb25lbnR9IGZyb20gXCIuLi9mZWF0dXJlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50XCI7XG5pbXBvcnQge1NFVFRJTkdTX1NFUlZJQ0UsIFNldHRpbmdzU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3NldHRpbmdzLnNlcnZpY2VcIjtcblxuaW1wb3J0IHtpc0VtcHR5LCBjbG9uZURlZXB9IGZyb20gXCJsb2Rhc2hcIjtcbmltcG9ydCB7Q3N2RG93bmxvYWRTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvY3N2LWRvd25sb2FkLnNlcnZpY2VcIjtcbmltcG9ydCB7U2V0dGluZ3NTZXJ2aWNlQ2xhc3N9IGZyb20gXCIuLi9zZXJ2aWNlcy9zZXR0aW5ncy1zZXJ2aWNlLmNsYXNzXCI7XG5pbXBvcnQge0V4dGVuc2lvblNlcnZpY2UsIFNIQVJFRFpfRVhURU5TSU9OfSBmcm9tIFwiLi4vZmVhdHVyZXMvZXh0ZW5kYWJsZS9leHRlbnNpb25zLW5vb3Auc2VydmljZVwiO1xuaW1wb3J0IG1vbWVudCBmcm9tIFwibW9tZW50L21vbWVudFwiO1xuaW1wb3J0IHtOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJ9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7XG4gICAgVGFibGVDb2x1bW5EZWZhdWx0Q29tcG9uZW50XG59IGZyb20gXCIuLi9mZWF0dXJlcy9kYXRhLXRhYmxlL2NvbHVtbi1oZWFkZXJzL3RhYmxlLWNvbHVtbi1kZWZhdWx0L3RhYmxlLWNvbHVtbi1kZWZhdWx0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtHcm93bGVyTW9kZWx9IGZyb20gXCIuLi9mZWF0dXJlcy9tZXNzYWdpbmcvZ3Jvd2xlci5tb2RlbFwiO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGlzdFBhZ2VTZXJ2aWNlQ2xhc3Mge1xuXG4gICAgYWJzdHJhY3QgaW5pdFRhYmxlQ29sdW1ucygpOiBhbnlbXTtcbiAgICBhYnN0cmFjdCBnZXREYXRhKGZpbHRlcnM/OiBGaWx0ZXJPYmpbXSwgc29ydD86IGFueSwgcGFnZT86IGFueSk6IFByb21pc2U8YW55W10+O1xuICAgIGFic3RyYWN0IG9wZW5VcGRhdGUoZW50aXR5PzogYW55KTtcbiAgICBhYnN0cmFjdCByZXNvdXJjZVR5cGU6IHN0cmluZztcblxuICAgIENTVl9DT0xVTU5TID0gW1xuICAgICAgICB7bGFiZWw6ICdOYW1lJywgcGF0aDogJ25hbWUnfSxcbiAgICAgICAge2xhYmVsOiAnSUQnLCBwYXRoOiAnaWQnfSxcbiAgICAgICAge2xhYmVsOiAnQ3JlYXRlZCBBdCcsIHBhdGg6ICdjcmVhdGVkQXQnfVxuICAgIF07XG5cbiAgICBiYXNlUGF0aDogc3RyaW5nID0gJyc7XG5cbiAgICBoZWFkZXJDb21wb25lbnRQYXJhbXMgPSB7XG4gICAgICAgIGZpbHRlclR5cGU6ICdURVhUSU5QVVQnLFxuICAgICAgICBlbmFibGVTb3J0aW5nOiB0cnVlXG4gICAgfTtcblxuICAgIElEX0NPTFVNTl9ERUYgPSB7XG4gICAgICAgIGNvbElkOiAnaWQnLFxuICAgICAgICBmaWVsZDogJ2lkJyxcbiAgICAgICAgaGVhZGVyTmFtZTogJ0lEJyxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50OiBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnQsXG4gICAgICAgIGhlYWRlckNvbXBvbmVudFBhcmFtczogdGhpcy5oZWFkZXJDb21wb25lbnRQYXJhbXMsXG4gICAgICAgIGNlbGxSZW5kZXJlclBhcmFtczogeyBwYXRoUm9vdDogdGhpcy5iYXNlUGF0aCwgc2hvd0lkZW50aXR5SWNvbnM6IHRydWUgfSxcbiAgICAgICAgb25DZWxsQ2xpY2tlZDogKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc1NlbGVjdGVkVGV4dCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5vcGVuRWRpdEZvcm0oZGF0YT8uZGF0YT8uaWQpO1xuICAgICAgICB9LFxuICAgICAgICByZXNpemFibGU6IHRydWUsXG4gICAgICAgIGNlbGxDbGFzczogJ25mLWNlbGwtdmVydC1hbGlnbiB0Q29sJyxcbiAgICAgICAgc29ydGFibGU6IHRydWUsXG4gICAgICAgIGZpbHRlcjogdHJ1ZSxcbiAgICAgICAgaGlkZTogdHJ1ZSxcbiAgICB9O1xuXG4gICAgREVGQVVMVF9QQUdJTkc6IGFueSA9IHtcbiAgICAgICAgZmlsdGVyOiBcIlwiLFxuICAgICAgICBub1NlYXJjaDogZmFsc2UsXG4gICAgICAgIG9yZGVyOiBcImFzY1wiLFxuICAgICAgICBwYWdlOiAxLFxuICAgICAgICBzZWFyY2hPbjogXCJuYW1lXCIsXG4gICAgICAgIHNvcnQ6IFwibmFtZVwiLFxuICAgICAgICB0b3RhbDogNTBcbiAgICB9XG4gICAgdG90YWxDb3VudCA9IDA7XG4gICAgZGF0YVNlcnZpY2U6IFppdGlEYXRhU2VydmljZTtcbiAgICByZWZyZXNoRGF0YTogKHNvcnQ/OiB7c29ydEJ5OiBzdHJpbmcsIG9yZGVyaW5nOiBzdHJpbmd9KSA9PiB2b2lkIHwgdW5kZWZpbmVkO1xuXG4gICAgc2VsZWN0ZWRFbnRpdHlJZDogU3RyaW5nO1xuICAgIG1lbnVJdGVtczogYW55ID0gW107XG4gICAgdGFibGVIZWFkZXJBY3Rpb25zOiBhbnkgPSBbXTtcbiAgICBjdXJyZW50U2V0dGluZ3M6IGFueSA9IHt9O1xuICAgIGRpYWxvZ1JlZjogYW55O1xuICAgIHNpZGVNb2RhbE9wZW4gPSBmYWxzZTtcbiAgICBjdXJyZW50U29ydCA9IHtcbiAgICAgICAgc29ydEJ5OiAnbmFtZScsXG4gICAgICAgIG9yZGVyaW5nOiAnYXNjJ1xuICAgIH07XG5cbiAgICBuYW1lQ29sdW1uUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgIHJldHVybiBgPGRpdiBjbGFzcz1cImNvbCBjZWxsLW5hbWUtcmVuZGVyZXJcIiBkYXRhLWlkPVwiJHtyb3c/LmRhdGE/LmlkfVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPiR7cm93Py5kYXRhPy5uYW1lfTwvc3Ryb25nPlxuICAgICAgICAgICAgICAgIDwvZGl2PmBcbiAgICB9XG5cbiAgICByb2xlc1JlbmRlcmVyID0gKHJvdykgPT4ge1xuICAgICAgICBjb25zdCBjb2xJZCA9IHJvdy5jb2x1bW4uY29sSWQ7XG4gICAgICAgIGxldCByb2xlcyA9ICcnO1xuICAgICAgICBpZiAocm93Py5kYXRhPy5bY29sSWQgKyAnRGlzcGxheSddKSB7XG4gICAgICAgICAgICByb3c/LmRhdGE/Lltjb2xJZCArICdEaXNwbGF5J10uZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGF0dHI/Lm5hbWU/LmluZGV4T2YoJ0AnKSA9PT0gMCA/ICdhdHRhZycgOiAnaGFzaHRhZyc7XG4gICAgICAgICAgICAgICAgcm9sZXMgKz0gYDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NOYW1lfVwiPiR7YXR0ci5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctbmFtZVwiPiR7YXR0ci5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5gO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByb3c/LmRhdGE/Lltjb2xJZF0/LmZvckVhY2goKGF0dHIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBhdHRyLmluZGV4T2YoJ0AnKSA9PT0gMCA/ICdhdHRhZycgOiAnaGFzaHRhZyc7XG4gICAgICAgICAgICAgICAgcm9sZXMgKz0gYDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NOYW1lfVwiPiR7YXR0cn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFnLW5hbWVcIj4ke2F0dHJ9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcm9sZXM7XG4gICAgfVxuXG4gICAgY3JlYXRlZEF0Rm9ybWF0dGVyID0gKHJvdykgPT4ge1xuICAgICAgICByZXR1cm4gbW9tZW50KHJvdz8uZGF0YT8uY3JlYXRlZEF0KS5sb2NhbCgpLmZvcm1hdCgnTS9EL1lZWVkgSEg6bW0gQScpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KFNFVFRJTkdTX1NFUlZJQ0UpIHByb3RlY3RlZCBzZXR0aW5nczogU2V0dGluZ3NTZXJ2aWNlQ2xhc3MsXG4gICAgICAgIHByb3RlY3RlZCBmaWx0ZXJTZXJ2aWNlOiBEYXRhVGFibGVGaWx0ZXJTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgY3N2RG93bmxvYWRTZXJ2aWNlOiBDc3ZEb3dubG9hZFNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoU0hBUkVEWl9FWFRFTlNJT04pIHByb3RlY3RlZCBleHRlbnNpb25TZXJ2aWNlOiBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcm91dGVyPzogUm91dGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGF0YVNlcnZpY2UgPSBpbmplY3QoWklUSV9EQVRBX1NFUlZJQ0UpO1xuICAgICAgICB0aGlzLnNldHRpbmdzLnNldHRpbmdzQ2hhbmdlLnN1YnNjcmliZSgoc2V0dGluZ3MpID0+IHtcbiAgICAgICAgICAgIGlmICghaXNFbXB0eSh0aGlzLnNldHRpbmdzPy5zZXR0aW5ncz8uc2Vzc2lvbj8uaWQpIHx8IHRoaXMuZGF0YVNlcnZpY2UuZGF0YVNlcnZpY2VUeXBlID09PSBaaXRpRGF0YVNlcnZpY2UuTk9ERV9EQVRBX1NFUlZJQ0VfVFlQRSkge1xuICAgICAgICAgICAgICAgIGlmICgodGhpcy5jdXJyZW50U2V0dGluZ3M/LnNlc3Npb24/LmlkICE9PSBzZXR0aW5ncz8uc2Vzc2lvbj8uaWQgfHwgdGhpcy5kYXRhU2VydmljZS5kYXRhU2VydmljZVR5cGUgPT09IFppdGlEYXRhU2VydmljZS5OT0RFX0RBVEFfU0VSVklDRV9UWVBFKSAmJiB0aGlzLnJlZnJlc2hEYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVmcmVzaERhdGEoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRTZXR0aW5ncyA9IHNldHRpbmdzO1xuICAgICAgICB9KTtcbiAgICAgICAgcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWV2ZW50Py5zbmFwc2hvdD8ucm91dGVDb25maWc/LnBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoU2VnbWVudHMgPSBldmVudC5zbmFwc2hvdC5yb3V0ZUNvbmZpZy5wYXRoLnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5iYXNlUGF0aCA9IHBhdGhTZWdtZW50c1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaW5pdE1lbnVBY3Rpb25zKCkge1xuICAgICAgICBpZiAodGhpcy5leHRlbnNpb25TZXJ2aWNlLmxpc3RBY3Rpb25zKSB7XG4gICAgICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IHRoaXMubWVudUl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXh0ZW5zaW9uU2VydmljZS5saXN0QWN0aW9ucy5mb3JFYWNoKChleHRJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmFjdGlvbiA9PT0gZXh0SXRlbS5hY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBleHRJdGVtO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGxldCBmaWx0ZXJlZEFjdGlvbnMgPSB0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMuZmlsdGVyKChleHRJdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICF0aGlzLm1lbnVJdGVtcy5zb21lKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmFjdGlvbiA9PT0gZXh0SXRlbS5hY3Rpb247XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zID0gWy4uLnRoaXMubWVudUl0ZW1zLCAuLi5maWx0ZXJlZEFjdGlvbnNdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkTGlzdEl0ZW1FeHRlbnNpb25BY3Rpb25zKHJvdykge1xuICAgICAgICBpZiAodGhpcy5leHRlbnNpb25TZXJ2aWNlLmxpc3RBY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBrZXlzID0gdGhpcy5leHRlbnNpb25TZXJ2aWNlLmxpc3RBY3Rpb25zLm1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGlvbi5hY3Rpb247XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJvdy5hY3Rpb25MaXN0ID0gWy4uLnJvdy5hY3Rpb25MaXN0LCAuLi5rZXlzXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRvd25sb2FkSXRlbXMoc2VsZWN0ZWRJdGVtcykge1xuICAgICAgICB0aGlzLmNzdkRvd25sb2FkU2VydmljZS5kb3dubG9hZChcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VUeXBlLFxuICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcyxcbiAgICAgICAgICAgIHRoaXMuQ1NWX0NPTFVNTlMsXG4gICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBkb3dubG9hZEFsbEl0ZW1zKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIGNvbnN0IHBhZ2luZyA9IGNsb25lRGVlcCh0aGlzLkRFRkFVTFRfUEFHSU5HKTtcbiAgICAgICAgcGFnaW5nLnRvdGFsID0gLTE7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFRhYmxlRGF0YSh0aGlzLnJlc291cmNlVHlwZSwgcGFnaW5nLCB1bmRlZmluZWQsIHVuZGVmaW5lZClcbiAgICAgICAgICAgIC50aGVuKChyZXN1bHRzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZEl0ZW1zKHJlc3VsdHM/LmRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0VGFibGVEYXRhKHJlc291cmNlVHlwZTogc3RyaW5nLCBwYWdpbmc6IGFueSwgZmlsdGVycz86IEZpbHRlck9ialtdLCBzb3J0PzogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgaWYgKCFwYWdpbmcpIHtcbiAgICAgICAgICAgIHBhZ2luZyA9IHsuLi50aGlzLkRFRkFVTFRfUEFHSU5HfTtcbiAgICAgICAgfVxuICAgICAgICBpZihzb3J0KSB7XG4gICAgICAgICAgICBwYWdpbmcuc29ydCA9IHNvcnQuc29ydEJ5O1xuICAgICAgICAgICAgcGFnaW5nLm9yZGVyID0gc29ydC5vcmRlcmluZztcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBmaWx0ZXJzPy5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgICAgICBwYWdpbmcubm9TZWFyY2ggPSBmYWxzZTtcbiAgICAgICAgICAgIHBhZ2luZy5zZWFyY2hPbiA9IGZpbHRlcnNbaWR4XS5jb2x1bW5JZDtcbiAgICAgICAgICAgIHBhZ2luZy5maWx0ZXIgPSBmaWx0ZXJzW2lkeF0udmFsdWU7XG4gICAgICAgICAgICBwYWdpbmcucmF3RmlsdGVyID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyaW5nLm5leHQodHJ1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldChyZXNvdXJjZVR5cGUsIHBhZ2luZywgZmlsdGVycykuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyaW5nLm5leHQoZmFsc2UpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjaGVja0ZvckFzc29jaWF0ZWRFbnRpdGllcyhpdGVtcywgdHlwZSwgYXNzb2NpYXRlZFR5cGUpIHtcbiAgICAgICAgY29uc3QgaXRlbXNXaXRoQXNzb2NpYXRpb25zID0gW107XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgIGl0ZW1zLmZvckVhY2goKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvbSA9IHRoaXMuZGF0YVNlcnZpY2UuZ2V0U3ViZGF0YSh0eXBlLCBjb25maWcuaWQsIGFzc29jaWF0ZWRUeXBlKS50aGVuKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcnZpY2VzID0gcmVzdWx0LmRhdGEgfHwgW107XG4gICAgICAgICAgICAgICAgaWYgKHNlcnZpY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbXNXaXRoQXNzb2NpYXRpb25zLnB1c2goY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHByb21pc2VzLnB1c2gocHJvbSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW1zV2l0aEFzc29jaWF0aW9ucztcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbXMoaWRzOiBzdHJpbmdbXSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBpZHMuZm9yRWFjaCgoaWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHByb20gPSB0aGlzLmRhdGFTZXJ2aWNlLmRlbGV0ZSh0aGlzLnJlc291cmNlVHlwZSwgaWQpO1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9tKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykuY2F0Y2goKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5kYXRhU2VydmljZS5nZXRFcnJvck1lc3NhZ2UocmVzcG9uc2UpO1xuICAgICAgICAgICAgdGhyb3cgbWVzc2FnZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc29ydChzb3J0QnksIG9yZGVyaW5nPSAnYXNjJykge1xuICAgICAgICB0aGlzLmN1cnJlbnRTb3J0ID0ge3NvcnRCeSwgb3JkZXJpbmd9O1xuICAgICAgICBpZih0aGlzLnJlZnJlc2hEYXRhKSB0aGlzLnJlZnJlc2hEYXRhKHtzb3J0QnksIG9yZGVyaW5nfSk7XG4gICAgfVxuXG4gICAgaGFzU2VsZWN0ZWRUZXh0KCkge1xuICAgICAgICBsZXQgdGV4dCA9ICcnO1xuICAgICAgICBpZiAod2luZG93LmdldFNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGV4dCA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0Py5sZW5ndGggPiAwO1xuICAgIH1cblxuICAgIGdldE5ldHdvcmtKd3QoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTZXJ2aWNlLmdldCgnbmV0d29yay1qd3RzJywge30sIFtdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbkVkaXRGb3JtKGl0ZW1JZCA9ICcnLCBiYXNlUGF0aD8pIHtcbiAgICAgICAgaWYgKGlzRW1wdHkoaXRlbUlkKSkge1xuICAgICAgICAgICAgaXRlbUlkID0gJ2NyZWF0ZSc7XG4gICAgICAgIH1cbiAgICAgICAgYmFzZVBhdGggPSBiYXNlUGF0aCA/IGJhc2VQYXRoIDogdGhpcy5iYXNlUGF0aDtcbiAgICAgICAgdGhpcy5yb3V0ZXI/Lm5hdmlnYXRlQnlVcmwoYCR7YmFzZVBhdGh9LyR7aXRlbUlkfWApO1xuICAgIH1cblxuICAgIHJlbVRvUHgocmVtVmFsdWUpIHtcbiAgICAgICAgY29uc3Qgcm9vdEZvbnRTaXplOiBhbnkgPSBwYXJzZUZsb2F0KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuZm9udFNpemUpO1xuICAgICAgICByZXR1cm4gcmVtVmFsdWUgKiByb290Rm9udFNpemU7XG4gICAgfTtcbn1cbiJdfQ==
244
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdlLXNlcnZpY2UuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy96aXRpLWNvbnNvbGUtbGliL3NyYy9saWIvc2hhcmVkL2xpc3QtcGFnZS1zZXJ2aWNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFOztBQUVGLE9BQU8sRUFBWSxNQUFNLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxlQUFlLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU1qRixPQUFPLEVBQUMsZ0JBQWdCLEVBQWtCLE1BQU0sOEJBQThCLENBQUM7QUFFL0UsT0FBTyxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUMsTUFBTSxRQUFRLENBQUM7QUFHMUMsT0FBTyxFQUFtQixpQkFBaUIsRUFBQyxNQUFNLGdEQUFnRCxDQUFDO0FBQ25HLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQztBQUNuQyxPQUFPLEVBQUMsYUFBYSxFQUFTLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUNILDJCQUEyQixFQUM5QixNQUFNLDJGQUEyRixDQUFDO0FBRzVGLFdBQWUsb0JBQW9CLEdBQW5DLE1BQWUsb0JBQW9CO0lBaUd0QyxZQUM4QixRQUF3QyxFQUN4RCxhQUFxQyxFQUNyQyxrQkFBc0MsRUFDckIsZ0JBQTRDLEVBQzdELE1BQWU7UUFKVyxhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUN4RCxrQkFBYSxHQUFiLGFBQWEsQ0FBd0I7UUFDckMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNYLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDN0QsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQS9GN0IsZ0JBQVcsR0FBRztZQUNWLEVBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFDO1lBQzdCLEVB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SUFBQSxDQUFDO0NBQ0wsQ0FBQTtBQTNQcUIsb0JBQW9CO0lBa0dqQyxXQUFBLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBR3hCLFdBQUEsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7R0FyR1osb0JBQW9CLENBMlB6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIGluamVjdCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7WklUSV9EQVRBX1NFUlZJQ0UsIFppdGlEYXRhU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3ppdGktZGF0YS5zZXJ2aWNlXCI7XG5pbXBvcnQge0RhdGFUYWJsZUZpbHRlclNlcnZpY2UsIEZpbHRlck9ian0gZnJvbSBcIi4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXIuc2VydmljZVwiO1xuaW1wb3J0IHtWYWxpZGF0b3JDYWxsYmFja30gZnJvbSBcIi4uL2ZlYXR1cmVzL2xpc3QtcGFnZS1mZWF0dXJlcy9saXN0LXBhZ2UtZm9ybS9saXN0LXBhZ2UtZm9ybS5jb21wb25lbnRcIjtcbmltcG9ydCB7RGlhbG9nUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RpYWxvZ1wiO1xuaW1wb3J0IHtNYXREaWFsb2d9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcbmltcG9ydCB7Q29uZmlybUNvbXBvbmVudH0gZnJvbSBcIi4uL2ZlYXR1cmVzL2NvbmZpcm0vY29uZmlybS5jb21wb25lbnRcIjtcbmltcG9ydCB7U0VUVElOR1NfU0VSVklDRSwgU2V0dGluZ3NTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvc2V0dGluZ3Muc2VydmljZVwiO1xuXG5pbXBvcnQge2lzRW1wdHksIGNsb25lRGVlcH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHtDc3ZEb3dubG9hZFNlcnZpY2V9IGZyb20gXCIuLi9zZXJ2aWNlcy9jc3YtZG93bmxvYWQuc2VydmljZVwiO1xuaW1wb3J0IHtTZXR0aW5nc1NlcnZpY2VDbGFzc30gZnJvbSBcIi4uL3NlcnZpY2VzL3NldHRpbmdzLXNlcnZpY2UuY2xhc3NcIjtcbmltcG9ydCB7RXh0ZW5zaW9uU2VydmljZSwgU0hBUkVEWl9FWFRFTlNJT059IGZyb20gXCIuLi9mZWF0dXJlcy9leHRlbmRhYmxlL2V4dGVuc2lvbnMtbm9vcC5zZXJ2aWNlXCI7XG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnQvbW9tZW50XCI7XG5pbXBvcnQge05hdmlnYXRpb25FbmQsIFJvdXRlcn0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtcbiAgICBUYWJsZUNvbHVtbkRlZmF1bHRDb21wb25lbnRcbn0gZnJvbSBcIi4uL2ZlYXR1cmVzL2RhdGEtdGFibGUvY29sdW1uLWhlYWRlcnMvdGFibGUtY29sdW1uLWRlZmF1bHQvdGFibGUtY29sdW1uLWRlZmF1bHQuY29tcG9uZW50XCI7XG5pbXBvcnQge0dyb3dsZXJNb2RlbH0gZnJvbSBcIi4uL2ZlYXR1cmVzL21lc3NhZ2luZy9ncm93bGVyLm1vZGVsXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMaXN0UGFnZVNlcnZpY2VDbGFzcyB7XG5cbiAgICBhYnN0cmFjdCBpbml0VGFibGVDb2x1bW5zKCk6IGFueVtdO1xuICAgIGFic3RyYWN0IGdldERhdGEoZmlsdGVycz86IEZpbHRlck9ialtdLCBzb3J0PzogYW55LCBwYWdlPzogYW55KTogUHJvbWlzZTxhbnlbXT47XG4gICAgYWJzdHJhY3Qgb3BlblVwZGF0ZShlbnRpdHk/OiBhbnkpO1xuICAgIGFic3RyYWN0IHJlc291cmNlVHlwZTogc3RyaW5nO1xuXG4gICAgQ1NWX0NPTFVNTlMgPSBbXG4gICAgICAgIHtsYWJlbDogJ05hbWUnLCBwYXRoOiAnbmFtZSd9LFxuICAgICAgICB7bGFiZWw6ICdJRCcsIHBhdGg6ICdpZCd9LFxuICAgICAgICB7bGFiZWw6ICdDcmVhdGVkIEF0JywgcGF0aDogJ2NyZWF0ZWRBdCd9XG4gICAgXTtcblxuICAgIGJhc2VQYXRoOiBzdHJpbmcgPSAnJztcblxuICAgIGhlYWRlckNvbXBvbmVudFBhcmFtcyA9IHtcbiAgICAgICAgZmlsdGVyVHlwZTogJ1RFWFRJTlBVVCcsXG4gICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWVcbiAgICB9O1xuXG4gICAgSURfQ09MVU1OX0RFRiA9IHtcbiAgICAgICAgY29sSWQ6ICdpZCcsXG4gICAgICAgIGZpZWxkOiAnaWQnLFxuICAgICAgICBoZWFkZXJOYW1lOiAnSUQnLFxuICAgICAgICBoZWFkZXJDb21wb25lbnQ6IFRhYmxlQ29sdW1uRGVmYXVsdENvbXBvbmVudCxcbiAgICAgICAgaGVhZGVyQ29tcG9uZW50UGFyYW1zOiB0aGlzLmhlYWRlckNvbXBvbmVudFBhcmFtcyxcbiAgICAgICAgY2VsbFJlbmRlcmVyUGFyYW1zOiB7IHBhdGhSb290OiB0aGlzLmJhc2VQYXRoLCBzaG93SWRlbnRpdHlJY29uczogdHJ1ZSB9LFxuICAgICAgICBvbkNlbGxDbGlja2VkOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuaGFzU2VsZWN0ZWRUZXh0KCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLm9wZW5FZGl0Rm9ybShkYXRhPy5kYXRhPy5pZCk7XG4gICAgICAgIH0sXG4gICAgICAgIHJlc2l6YWJsZTogdHJ1ZSxcbiAgICAgICAgY2VsbENsYXNzOiAnbmYtY2VsbC12ZXJ0LWFsaWduIHRDb2wnLFxuICAgICAgICBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgZmlsdGVyOiB0cnVlLFxuICAgICAgICBoaWRlOiB0cnVlLFxuICAgIH07XG5cbiAgICBERUZBVUxUX1BBR0lORzogYW55ID0ge1xuICAgICAgICBmaWx0ZXI6IFwiXCIsXG4gICAgICAgIG5vU2VhcmNoOiBmYWxzZSxcbiAgICAgICAgb3JkZXI6IFwiYXNjXCIsXG4gICAgICAgIHBhZ2U6IDEsXG4gICAgICAgIHNlYXJjaE9uOiBcIm5hbWVcIixcbiAgICAgICAgc29ydDogXCJuYW1lXCIsXG4gICAgICAgIHRvdGFsOiA1MFxuICAgIH1cbiAgICB0b3RhbENvdW50ID0gMDtcbiAgICBkYXRhU2VydmljZTogWml0aURhdGFTZXJ2aWNlO1xuICAgIHJlZnJlc2hEYXRhOiAoc29ydD86IHtzb3J0Qnk6IHN0cmluZywgb3JkZXJpbmc6IHN0cmluZ30pID0+IHZvaWQgfCB1bmRlZmluZWQ7XG5cbiAgICBzZWxlY3RlZEVudGl0eUlkOiBTdHJpbmc7XG4gICAgbWVudUl0ZW1zOiBhbnkgPSBbXTtcbiAgICB0YWJsZUhlYWRlckFjdGlvbnM6IGFueSA9IFtdO1xuICAgIGN1cnJlbnRTZXR0aW5nczogYW55ID0ge307XG4gICAgZGlhbG9nUmVmOiBhbnk7XG4gICAgc2lkZU1vZGFsT3BlbiA9IGZhbHNlO1xuICAgIGN1cnJlbnRTb3J0ID0ge1xuICAgICAgICBzb3J0Qnk6ICduYW1lJyxcbiAgICAgICAgb3JkZXJpbmc6ICdhc2MnXG4gICAgfTtcblxuICAgIG5hbWVDb2x1bW5SZW5kZXJlciA9IChyb3cpID0+IHtcbiAgICAgICAgcmV0dXJuIGA8ZGl2IGNsYXNzPVwiY29sIGNlbGwtbmFtZS1yZW5kZXJlclwiIGRhdGEtaWQ9XCIke3Jvdz8uZGF0YT8uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+JHtyb3c/LmRhdGE/Lm5hbWV9PC9zdHJvbmc+XG4gICAgICAgICAgICAgICAgPC9kaXY+YFxuICAgIH1cblxuICAgIHJvbGVzUmVuZGVyZXIgPSAocm93KSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbElkID0gcm93LmNvbHVtbi5jb2xJZDtcbiAgICAgICAgbGV0IHJvbGVzID0gJyc7XG4gICAgICAgIGlmIChyb3c/LmRhdGE/Lltjb2xJZCArICdEaXNwbGF5J10pIHtcbiAgICAgICAgICAgIHJvdz8uZGF0YT8uW2NvbElkICsgJ0Rpc3BsYXknXS5mb3JFYWNoKChhdHRyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gYXR0cj8ubmFtZT8uaW5kZXhPZignQCcpID09PSAwID8gJ2F0dGFnJyA6ICdoYXNodGFnJztcbiAgICAgICAgICAgICAgICByb2xlcyArPSBgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+JHthdHRyLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhZy1uYW1lXCI+JHthdHRyLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PmA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJvdz8uZGF0YT8uW2NvbElkXT8uZm9yRWFjaCgoYXR0cikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGF0dHIuaW5kZXhPZignQCcpID09PSAwID8gJ2F0dGFnJyA6ICdoYXNodGFnJztcbiAgICAgICAgICAgICAgICByb2xlcyArPSBgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc05hbWV9XCI+JHthdHRyfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWctbmFtZVwiPiR7YXR0cn08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+YDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByb2xlcztcbiAgICB9XG5cbiAgICBjcmVhdGVkQXRGb3JtYXR0ZXIgPSAocm93KSA9PiB7XG4gICAgICAgIHJldHVybiBtb21lbnQocm93Py5kYXRhPy5jcmVhdGVkQXQpLmxvY2FsKCkuZm9ybWF0KCdNL0QvWVlZWSBISDptbSBBJyk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoU0VUVElOR1NfU0VSVklDRSkgcHJvdGVjdGVkIHNldHRpbmdzOiBTZXR0aW5nc1NlcnZpY2VDbGFzcyxcbiAgICAgICAgcHJvdGVjdGVkIGZpbHRlclNlcnZpY2U6IERhdGFUYWJsZUZpbHRlclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCBjc3ZEb3dubG9hZFNlcnZpY2U6IENzdkRvd25sb2FkU2VydmljZSxcbiAgICAgICAgQEluamVjdChTSEFSRURaX0VYVEVOU0lPTikgcHJvdGVjdGVkIGV4dGVuc2lvblNlcnZpY2U6IEV4dGVuc2lvblNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByb3V0ZXI/OiBSb3V0ZXJcbiAgICApIHtcbiAgICAgICAgdGhpcy5kYXRhU2VydmljZSA9IGluamVjdChaSVRJX0RBVEFfU0VSVklDRSk7XG4gICAgICAgIHRoaXMuc2V0dGluZ3Muc2V0dGluZ3NDaGFuZ2Uuc3Vic2NyaWJlKChzZXR0aW5ncykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0VtcHR5KHRoaXMuc2V0dGluZ3M/LnNldHRpbmdzPy5zZXNzaW9uPy5pZCkgfHwgdGhpcy5kYXRhU2VydmljZS5kYXRhU2VydmljZVR5cGUgPT09IFppdGlEYXRhU2VydmljZS5OT0RFX0RBVEFfU0VSVklDRV9UWVBFKSB7XG4gICAgICAgICAgICAgICAgaWYgKCh0aGlzLmN1cnJlbnRTZXR0aW5ncz8uc2Vzc2lvbj8uaWQgIT09IHNldHRpbmdzPy5zZXNzaW9uPy5pZCB8fCB0aGlzLmRhdGFTZXJ2aWNlLmRhdGFTZXJ2aWNlVHlwZSA9PT0gWml0aURhdGFTZXJ2aWNlLk5PREVfREFUQV9TRVJWSUNFX1RZUEUpICYmIHRoaXMucmVmcmVzaERhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoRGF0YSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNldHRpbmdzID0gc2V0dGluZ3M7XG4gICAgICAgIH0pO1xuICAgICAgICByb3V0ZXIuZXZlbnRzLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgICAgICAgIGlmICghZXZlbnQ/LnNuYXBzaG90Py5yb3V0ZUNvbmZpZz8ucGF0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhTZWdtZW50cyA9IGV2ZW50LnNuYXBzaG90LnJvdXRlQ29uZmlnLnBhdGguc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJhc2VQYXRoID0gcGF0aFNlZ21lbnRzWzBdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbml0TWVudUFjdGlvbnMoKSB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMubWVudUl0ZW1zID0gdGhpcy5tZW51SXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5leHRlbnNpb25TZXJ2aWNlLmxpc3RBY3Rpb25zLmZvckVhY2goKGV4dEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uYWN0aW9uID09PSBleHRJdGVtLmFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGV4dEl0ZW07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgbGV0IGZpbHRlcmVkQWN0aW9ucyA9IHRoaXMuZXh0ZW5zaW9uU2VydmljZS5saXN0QWN0aW9ucy5maWx0ZXIoKGV4dEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gIXRoaXMubWVudUl0ZW1zLnNvbWUoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0uYWN0aW9uID09PSBleHRJdGVtLmFjdGlvbjtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5tZW51SXRlbXMgPSBbLi4udGhpcy5tZW51SXRlbXMsIC4uLmZpbHRlcmVkQWN0aW9uc107XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhZGRMaXN0SXRlbUV4dGVuc2lvbkFjdGlvbnMocm93KSB7XG4gICAgICAgIGlmICh0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSB0aGlzLmV4dGVuc2lvblNlcnZpY2UubGlzdEFjdGlvbnMubWFwKChhY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9uLmFjdGlvbjtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcm93LmFjdGlvbkxpc3QgPSBbLi4ucm93LmFjdGlvbkxpc3QsIC4uLmtleXNdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZG93bmxvYWRJdGVtcyhzZWxlY3RlZEl0ZW1zKSB7XG4gICAgICAgIHRoaXMuY3N2RG93bmxvYWRTZXJ2aWNlLmRvd25sb2FkKFxuICAgICAgICAgICAgdGhpcy5yZXNvdXJjZVR5cGUsXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLFxuICAgICAgICAgICAgdGhpcy5DU1ZfQ09MVU1OUyxcbiAgICAgICAgICAgIGZhbHNlLFxuICAgICAgICAgICAgZmFsc2UsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGRvd25sb2FkQWxsSXRlbXMoKTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3QgcGFnaW5nID0gY2xvbmVEZWVwKHRoaXMuREVGQVVMVF9QQUdJTkcpO1xuICAgICAgICBwYWdpbmcudG90YWwgPSAtMTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFibGVEYXRhKHRoaXMucmVzb3VyY2VUeXBlLCBwYWdpbmcsIHVuZGVmaW5lZCwgdW5kZWZpbmVkKVxuICAgICAgICAgICAgLnRoZW4oKHJlc3VsdHM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvd25sb2FkSXRlbXMocmVzdWx0cz8uZGF0YSk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRUYWJsZURhdGEocmVzb3VyY2VUeXBlOiBzdHJpbmcsIHBhZ2luZzogYW55LCBmaWx0ZXJzPzogRmlsdGVyT2JqW10sIHNvcnQ/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICBpZiAoIXBhZ2luZykge1xuICAgICAgICAgICAgcGFnaW5nID0gey4uLnRoaXMuREVGQVVMVF9QQUdJTkd9O1xuICAgICAgICB9XG4gICAgICAgIGlmKHNvcnQpIHtcbiAgICAgICAgICAgIHBhZ2luZy5zb3J0ID0gc29ydC5zb3J0Qnk7XG4gICAgICAgICAgICBwYWdpbmcub3JkZXIgPSBzb3J0Lm9yZGVyaW5nO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IGlkeCA9IDA7IGlkeCA8IGZpbHRlcnM/Lmxlbmd0aDsgaWR4KyspIHtcbiAgICAgICAgICAgIHBhZ2luZy5ub1NlYXJjaCA9IGZhbHNlO1xuICAgICAgICAgICAgcGFnaW5nLnNlYXJjaE9uID0gZmlsdGVyc1tpZHhdLmNvbHVtbklkO1xuICAgICAgICAgICAgcGFnaW5nLmZpbHRlciA9IGZpbHRlcnNbaWR4XS52YWx1ZTtcbiAgICAgICAgICAgIHBhZ2luZy5yYXdGaWx0ZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJpbmcubmV4dCh0cnVlKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0KHJlc291cmNlVHlwZSwgcGFnaW5nLCBmaWx0ZXJzKS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyU2VydmljZS5maWx0ZXJpbmcubmV4dChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNoZWNrRm9yQXNzb2NpYXRlZEVudGl0aWVzKGl0ZW1zLCB0eXBlLCBhc3NvY2lhdGVkVHlwZSkge1xuICAgICAgICBjb25zdCBpdGVtc1dpdGhBc3NvY2lhdGlvbnMgPSBbXTtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcbiAgICAgICAgaXRlbXMuZm9yRWFjaCgoY29uZmlnKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9tID0gdGhpcy5kYXRhU2VydmljZS5nZXRTdWJkYXRhKHR5cGUsIGNvbmZpZy5pZCwgYXNzb2NpYXRlZFR5cGUpLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VydmljZXMgPSByZXN1bHQuZGF0YSB8fCBbXTtcbiAgICAgICAgICAgICAgICBpZiAoc2VydmljZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBpdGVtc1dpdGhBc3NvY2lhdGlvbnMucHVzaChjb25maWcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChwcm9tKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXRlbXNXaXRoQXNzb2NpYXRpb25zO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmVJdGVtcyhpZHM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgICAgIGlkcy5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcHJvbSA9IHRoaXMuZGF0YVNlcnZpY2UuZGVsZXRlKHRoaXMucmVzb3VyY2VUeXBlLCBpZCk7XG4gICAgICAgICAgICBwcm9taXNlcy5wdXNoKHByb20pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHByb21pc2VzKS5jYXRjaCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLmRhdGFTZXJ2aWNlLmdldEVycm9yTWVzc2FnZShyZXNwb25zZSk7XG4gICAgICAgICAgICB0aHJvdyBtZXNzYWdlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzb3J0KHNvcnRCeSwgb3JkZXJpbmc9ICdhc2MnKSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNvcnQgPSB7c29ydEJ5LCBvcmRlcmluZ307XG4gICAgICAgIGlmKHRoaXMucmVmcmVzaERhdGEpIHRoaXMucmVmcmVzaERhdGEoe3NvcnRCeSwgb3JkZXJpbmd9KTtcbiAgICB9XG5cbiAgICBoYXNTZWxlY3RlZFRleHQoKSB7XG4gICAgICAgIGxldCB0ZXh0ID0gJyc7XG4gICAgICAgIGlmICh3aW5kb3cuZ2V0U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0ZXh0ID0gd2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQ/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0TmV0d29ya0p3dCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UuZ2V0KCduZXR3b3JrLWp3dHMnLCB7fSwgW10pO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuRWRpdEZvcm0oaXRlbUlkID0gJycsIGJhc2VQYXRoPykge1xuICAgICAgICBpZiAoaXNFbXB0eShpdGVtSWQpKSB7XG4gICAgICAgICAgICBpdGVtSWQgPSAnY3JlYXRlJztcbiAgICAgICAgfVxuICAgICAgICBiYXNlUGF0aCA9IGJhc2VQYXRoID8gYmFzZVBhdGggOiB0aGlzLmJhc2VQYXRoO1xuICAgICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybChgJHtiYXNlUGF0aH0vJHtpdGVtSWR9YCk7XG4gICAgfVxuXG4gICAgcmVtVG9QeChyZW1WYWx1ZSkge1xuICAgICAgICBjb25zdCByb290Rm9udFNpemU6IGFueSA9IHBhcnNlRmxvYXQod2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5mb250U2l6ZSk7XG4gICAgICAgIHJldHVybiByZW1WYWx1ZSAqIHJvb3RGb250U2l6ZTtcbiAgICB9O1xufVxuIl19
@@ -15,21 +15,14 @@
15
15
  */
16
16
  import { NgModule } from '@angular/core';
17
17
  import { RouterModule } from '@angular/router';
18
- import { ZacWrapperComponent } from "./features/wrappers/zac-wrapper.component";
19
18
  import * as i0 from "@angular/core";
20
19
  import * as i1 from "@angular/router";
21
- const routes = [
22
- {
23
- path: '',
24
- component: ZacWrapperComponent,
25
- },
26
- ];
27
- class ZacRoutingModule {
20
+ const routes = [];
21
+ export class ZacRoutingModule {
28
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZacRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
29
23
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: ZacRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
30
24
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZacRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
31
25
  }
32
- export { ZacRoutingModule };
33
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ZacRoutingModule, decorators: [{
34
27
  type: NgModule,
35
28
  args: [{
@@ -38,4 +31,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
38
31
  imports: [RouterModule.forChild(routes)],
39
32
  }]
40
33
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemFjLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3phYy1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDJDQUEyQyxDQUFDOzs7QUFFOUUsTUFBTSxNQUFNLEdBQVc7SUFDbkI7UUFDSSxJQUFJLEVBQUUsRUFBRTtRQUNSLFNBQVMsRUFBRSxtQkFBbUI7S0FDakM7Q0FDSixDQUFDO0FBRUYsTUFLYSxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLHdDQUhmLFlBQVk7Z0hBR2IsZ0JBQWdCLFlBRmYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFEN0IsWUFBWTs7U0FHYixnQkFBZ0I7NEZBQWhCLGdCQUFnQjtrQkFMNUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUMzQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gICAgQ29weXJpZ2h0IE5ldEZvdW5kcnkgSW5jLlxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiovXG5cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7WmFjV3JhcHBlckNvbXBvbmVudH0gZnJvbSBcIi4vZmVhdHVyZXMvd3JhcHBlcnMvemFjLXdyYXBwZXIuY29tcG9uZW50XCI7XG5cbmNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICAgIHtcbiAgICAgICAgcGF0aDogJycsXG4gICAgICAgIGNvbXBvbmVudDogWmFjV3JhcHBlckNvbXBvbmVudCxcbiAgICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxuICAgIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG59KVxuZXhwb3J0IGNsYXNzIFphY1JvdXRpbmdNb2R1bGUge1xufVxuIl19
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiemFjLXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMveml0aS1jb25zb2xlLWxpYi9zcmMvbGliL3phYy1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDOzs7QUFFckQsTUFBTSxNQUFNLEdBQVcsRUFBRSxDQUFDO0FBTzFCLE1BQU0sT0FBTyxnQkFBZ0I7K0dBQWhCLGdCQUFnQjtnSEFBaEIsZ0JBQWdCLHdDQUhmLFlBQVk7Z0hBR2IsZ0JBQWdCLFlBRmYsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFEN0IsWUFBWTs7NEZBR2IsZ0JBQWdCO2tCQUw1QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxFQUFFO29CQUNoQixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzNDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAgICBDb3B5cmlnaHQgTmV0Rm91bmRyeSBJbmMuXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlck1vZHVsZSwgUm91dGVzfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtdO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXG4gICAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JDaGlsZChyb3V0ZXMpXSxcbn0pXG5leHBvcnQgY2xhc3MgWmFjUm91dGluZ01vZHVsZSB7XG59XG4iXX0=