@bizdoc/core 1.14.16 → 1.15.2

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 (612) hide show
  1. package/assets/themes/brown.min.css +5 -5
  2. package/assets/themes/dark.min.css +5 -5
  3. package/assets/themes/deep-purple-light-blue.min.css +6 -6
  4. package/assets/themes/deep-purple-teal.min.css +6 -6
  5. package/assets/themes/default.min.css +6 -6
  6. package/assets/themes/green.min.css +5 -5
  7. package/assets/themes/indigo.min.css +5 -5
  8. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  9. package/esm2020/lib/admin/admin-menu.component.mjs +9 -9
  10. package/esm2020/lib/admin/configuration-designer/designer-element.component.mjs +77 -0
  11. package/esm2020/lib/admin/configuration-designer/designer.base.mjs +13 -0
  12. package/esm2020/lib/admin/configuration-designer/designer.component.mjs +102 -0
  13. package/esm2020/lib/admin/configuration-designer/elements/action.component.mjs +31 -0
  14. package/esm2020/lib/admin/configuration-designer/elements/analysis-widget.component.mjs +73 -0
  15. package/esm2020/lib/admin/configuration-designer/elements/anomaly-rule.component.mjs +31 -0
  16. package/esm2020/lib/admin/configuration-designer/elements/box-form.component.mjs +31 -0
  17. package/esm2020/lib/admin/configuration-designer/elements/chart-view.component.mjs +76 -0
  18. package/esm2020/lib/admin/configuration-designer/elements/cube-view.component.mjs +44 -0
  19. package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +32 -0
  20. package/esm2020/lib/admin/configuration-designer/elements/documents-report.component.mjs +51 -0
  21. package/esm2020/lib/admin/configuration-designer/elements/documents-widget.component.mjs +50 -0
  22. package/esm2020/lib/admin/configuration-designer/elements/explore-view.component.mjs +43 -0
  23. package/esm2020/lib/admin/configuration-designer/elements/folder.component.mjs +32 -0
  24. package/esm2020/lib/admin/configuration-designer/elements/form.component.mjs +79 -0
  25. package/esm2020/lib/admin/configuration-designer/elements/guide.component.mjs +36 -0
  26. package/esm2020/lib/admin/configuration-designer/elements/matrix-view.component.mjs +65 -0
  27. package/esm2020/lib/admin/configuration-designer/elements/parallel-view.component.mjs +56 -0
  28. package/esm2020/lib/admin/configuration-designer/elements/performance-widget.component.mjs +47 -0
  29. package/esm2020/lib/admin/configuration-designer/elements/pivot-view.component.mjs +57 -0
  30. package/esm2020/lib/admin/configuration-designer/elements/report.component.mjs +32 -0
  31. package/esm2020/lib/admin/configuration-designer/elements/role.component.mjs +31 -0
  32. package/esm2020/lib/admin/configuration-designer/elements/rule.component.mjs +29 -0
  33. package/esm2020/lib/admin/configuration-designer/elements/sum-view.component.mjs +57 -0
  34. package/esm2020/lib/admin/configuration-designer/elements/tasks-report.component.mjs +60 -0
  35. package/esm2020/lib/admin/configuration-designer/elements/type.component.mjs +33 -0
  36. package/esm2020/lib/admin/configuration-designer/elements/usage-report.component.mjs +60 -0
  37. package/esm2020/lib/admin/configuration-designer/elements/utility.component.mjs +32 -0
  38. package/esm2020/lib/admin/configuration-designer/elements/view.component.mjs +32 -0
  39. package/esm2020/lib/admin/configuration-designer/elements/widget.component.mjs +31 -0
  40. package/esm2020/lib/admin/configuration-designer/privileges.component.mjs +35 -0
  41. package/esm2020/lib/admin/core/ace.input.mjs +5 -12
  42. package/esm2020/lib/admin/core/color-picker.input.mjs +7 -7
  43. package/esm2020/lib/admin/core/search.input.mjs +9 -16
  44. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +17 -17
  45. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +22 -22
  46. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +13 -13
  47. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +12 -12
  48. package/esm2020/lib/admin/form/designer/designer.component.mjs +56 -0
  49. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  50. package/esm2020/lib/admin/form/form.service.mjs +11 -6
  51. package/esm2020/lib/admin/form/workflow/node.component.mjs +11 -11
  52. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +15 -15
  53. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +12 -12
  54. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +13 -13
  55. package/esm2020/lib/admin/patterns/patterns.component.mjs +25 -25
  56. package/esm2020/lib/admin/permissions/permissions.component.mjs +12 -12
  57. package/esm2020/lib/admin/positions/positions-popup.component.mjs +13 -13
  58. package/esm2020/lib/admin/positions/positions.component.mjs +19 -19
  59. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +21 -21
  60. package/esm2020/lib/admin/profiler/profiler.component.mjs +17 -17
  61. package/esm2020/lib/admin/utility-ref.mjs +2 -2
  62. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  63. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  64. package/esm2020/lib/app.component.mjs +6 -6
  65. package/esm2020/lib/bizdoc.module.mjs +11 -13
  66. package/esm2020/lib/browse/browse-items.component.mjs +25 -25
  67. package/esm2020/lib/browse/browse.mobile.component.mjs +17 -17
  68. package/esm2020/lib/browse/browse.pane.component.mjs +17 -17
  69. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +13 -13
  70. package/esm2020/lib/browse/filter/filter.component.mjs +13 -13
  71. package/esm2020/lib/browse/folders-menu.component.mjs +12 -12
  72. package/esm2020/lib/chat/chat-info.mjs +3 -3
  73. package/esm2020/lib/chat/chat.mobile.component.mjs +7 -7
  74. package/esm2020/lib/chat/chat.service.mjs +3 -3
  75. package/esm2020/lib/chat/contacts.component.mjs +23 -23
  76. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  77. package/esm2020/lib/chat/conversation.component.mjs +11 -11
  78. package/esm2020/lib/chat/conversation.pane.component.mjs +6 -12
  79. package/esm2020/lib/compose/action/action-picker.component.mjs +9 -9
  80. package/esm2020/lib/compose/action/action.dialog.mjs +7 -7
  81. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +5 -5
  82. package/esm2020/lib/compose/action/assign-action.component.mjs +13 -13
  83. package/esm2020/lib/compose/action/moveto-action.component.mjs +10 -10
  84. package/esm2020/lib/compose/action/return-action.component.mjs +12 -12
  85. package/esm2020/lib/compose/attachments/attachments.component.mjs +10 -10
  86. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +8 -8
  87. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  88. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  89. package/esm2020/lib/compose/comments/comment.component.mjs +15 -15
  90. package/esm2020/lib/compose/comments/comments.component.mjs +7 -7
  91. package/esm2020/lib/compose/comments/{Comments.pane.component.mjs → comments.pane.component.mjs} +6 -14
  92. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  93. package/esm2020/lib/compose/comments/edits.component.mjs +10 -10
  94. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +5 -5
  95. package/esm2020/lib/compose/comments/votes.component.mjs +10 -10
  96. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  97. package/esm2020/lib/compose/compose.mobile.component.mjs +17 -17
  98. package/esm2020/lib/compose/compose.pane.component.mjs +13 -13
  99. package/esm2020/lib/compose/copy/copy.dialog.mjs +8 -8
  100. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  101. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  102. package/esm2020/lib/compose/document.component.mjs +3 -3
  103. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  104. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  105. package/esm2020/lib/compose/events/events.component.mjs +8 -8
  106. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +8 -8
  107. package/esm2020/lib/compose/form.component.mjs +7 -7
  108. package/esm2020/lib/compose/new-menu.component.mjs +10 -10
  109. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  110. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  111. package/esm2020/lib/compose/state.component.mjs +3 -3
  112. package/esm2020/lib/compose/tag/tags.component.mjs +8 -8
  113. package/esm2020/lib/compose/trace/flow.component.mjs +63 -82
  114. package/esm2020/lib/compose/trace/people.component.mjs +5 -5
  115. package/esm2020/lib/compose/trace/trace.base.mjs +16 -7
  116. package/esm2020/lib/compose/trace/trace.component.mjs +16 -24
  117. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  118. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  119. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  120. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +11 -11
  121. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  122. package/esm2020/lib/core/account.service.mjs +3 -3
  123. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  124. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  125. package/esm2020/lib/core/component-factory-resolver.mjs +4 -4
  126. package/esm2020/lib/core/controls/address.input.mjs +11 -17
  127. package/esm2020/lib/core/controls/auto-complete.input.mjs +11 -11
  128. package/esm2020/lib/core/controls/combination-picker-body.mjs +11 -11
  129. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  130. package/esm2020/lib/core/controls/combination-pool.mjs +7 -7
  131. package/esm2020/lib/core/controls/file.input.mjs +10 -10
  132. package/esm2020/lib/core/controls/select.input.mjs +6 -6
  133. package/esm2020/lib/core/controls/time-picker.mjs +9 -9
  134. package/esm2020/lib/core/controls/timespan.input.mjs +8 -35
  135. package/esm2020/lib/core/datasource.service.mjs +3 -3
  136. package/esm2020/lib/core/guide/guide.component.mjs +10 -10
  137. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  138. package/esm2020/lib/core/guide/help-tip.component.mjs +11 -23
  139. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  140. package/esm2020/lib/core/hub.service.mjs +3 -3
  141. package/esm2020/lib/core/identity/identity.component.mjs +5 -5
  142. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  143. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  144. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  145. package/esm2020/lib/core/info/map-info.mjs +3 -3
  146. package/esm2020/lib/core/layout/autocomplete.field.mjs +8 -8
  147. package/esm2020/lib/core/layout/checkbox.field.mjs +7 -7
  148. package/esm2020/lib/core/layout/checkbox.mjs +6 -6
  149. package/esm2020/lib/core/layout/date-range.field.mjs +6 -6
  150. package/esm2020/lib/core/layout/date.field.mjs +9 -9
  151. package/esm2020/lib/core/layout/expression.field.mjs +8 -8
  152. package/esm2020/lib/core/layout/file.field.mjs +11 -9
  153. package/esm2020/lib/core/layout/html.field.mjs +8 -8
  154. package/esm2020/lib/core/layout/input.base.mjs +4 -5
  155. package/esm2020/lib/core/layout/input.field.mjs +8 -8
  156. package/esm2020/lib/core/layout/layout.component.mjs +3 -3
  157. package/esm2020/lib/core/layout/numeric.field.mjs +8 -8
  158. package/esm2020/lib/core/layout/select.field.mjs +10 -10
  159. package/esm2020/lib/core/layout/switch.field.mjs +7 -7
  160. package/esm2020/lib/core/layout/textarea.field.mjs +8 -8
  161. package/esm2020/lib/core/layout/timespan.field.mjs +9 -9
  162. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  163. package/esm2020/lib/core/mailbox.service.mjs +6 -4
  164. package/esm2020/lib/core/models.mjs +1 -1
  165. package/esm2020/lib/core/none.component.mjs +7 -7
  166. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  167. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  168. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  169. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  170. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  171. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  172. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  173. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  174. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  175. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  176. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  177. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  178. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  179. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +3 -3
  180. package/esm2020/lib/core/pipes/translate.pipe.mjs +6 -6
  181. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  182. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  183. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  184. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  185. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  186. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +5 -5
  187. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  188. package/esm2020/lib/core/prompt.service.mjs +3 -3
  189. package/esm2020/lib/core/router.mjs +6 -6
  190. package/esm2020/lib/core/save-changes.dialog.mjs +5 -5
  191. package/esm2020/lib/core/session.service.mjs +3 -3
  192. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  193. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  194. package/esm2020/lib/core/slots/slots.component.mjs +14 -14
  195. package/esm2020/lib/core/tagging/documents.component.mjs +7 -7
  196. package/esm2020/lib/core/tagging/edit-input.component.mjs +10 -10
  197. package/esm2020/lib/core/tagging/emoji.component.mjs +4 -4
  198. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  199. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  200. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  201. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  202. package/esm2020/lib/core/tagging/users.component.mjs +7 -7
  203. package/esm2020/lib/core/translate.service.mjs +3 -3
  204. package/esm2020/lib/core/translations.mjs +11 -1
  205. package/esm2020/lib/core/window-title.service.mjs +3 -3
  206. package/esm2020/lib/cube/accum/accum.component.mjs +3 -3
  207. package/esm2020/lib/cube/chart/chart.component.mjs +3 -3
  208. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  209. package/esm2020/lib/cube/cube-menu.component.mjs +10 -10
  210. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  211. package/esm2020/lib/cube/cube.service.mjs +4 -4
  212. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  213. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  214. package/esm2020/lib/cube/explore/explore-items.component.mjs +8 -8
  215. package/esm2020/lib/cube/explore/explore.pane.component.mjs +12 -15
  216. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  217. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  218. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +7 -7
  219. package/esm2020/lib/cube/filter/filter.component.mjs +11 -11
  220. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  221. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +5 -5
  222. package/esm2020/lib/cube/matrix/matrix.base.mjs +6 -10
  223. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +20 -16
  224. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +20 -16
  225. package/esm2020/lib/cube/matrix/popup.component.mjs +11 -11
  226. package/esm2020/lib/cube/matrix/table.component.mjs +4 -4
  227. package/esm2020/lib/cube/parallel/parallel.component.mjs +5 -5
  228. package/esm2020/lib/cube/pivot/pivot.component.mjs +6 -11
  229. package/esm2020/lib/cube/sum/sum.component.mjs +6 -6
  230. package/esm2020/lib/cube/view-base.mjs +6 -10
  231. package/esm2020/lib/cube/view.mobile.component.mjs +14 -14
  232. package/esm2020/lib/cube/view.pane.component.mjs +13 -13
  233. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  234. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +4 -4
  235. package/esm2020/lib/dashboard/cube/compare.widget.mjs +12 -12
  236. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  237. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  238. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +4 -4
  239. package/esm2020/lib/dashboard/cube/documents.widget.mjs +4 -4
  240. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  241. package/esm2020/lib/dashboard/dashboard.component.mjs +11 -11
  242. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +5 -11
  243. package/esm2020/lib/dashboard/recents/recents.widget.mjs +9 -9
  244. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  245. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  246. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  247. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +12 -12
  248. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  249. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  250. package/esm2020/lib/desktop.module.mjs +11 -13
  251. package/esm2020/lib/home/about/about.dialog.mjs +7 -7
  252. package/esm2020/lib/home/home-base.component.mjs +3 -3
  253. package/esm2020/lib/home/home.desktop.component.mjs +19 -19
  254. package/esm2020/lib/home/home.mobile.component.mjs +16 -16
  255. package/esm2020/lib/home/notifications/notifications.component.mjs +12 -12
  256. package/esm2020/lib/home/options/options.component.mjs +11 -11
  257. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +8 -8
  258. package/esm2020/lib/home/search.service.mjs +3 -3
  259. package/esm2020/lib/home/sign/sign.component.mjs +6 -6
  260. package/esm2020/lib/home/tools.component.mjs +13 -13
  261. package/esm2020/lib/impersonate/impersonate.component.mjs +10 -10
  262. package/esm2020/lib/mobile.module.mjs +11 -13
  263. package/esm2020/lib/modules/chart.module.mjs +6 -6
  264. package/esm2020/lib/modules/circular-gauge.module.mjs +5 -5
  265. package/esm2020/lib/modules/date.adapter.mjs +1 -1
  266. package/esm2020/lib/modules/datepicker.intl.mjs +4 -4
  267. package/esm2020/lib/modules/dayjs.module.mjs +5 -5
  268. package/esm2020/lib/modules/diagram.module.mjs +7 -9
  269. package/esm2020/lib/modules/gantt.module.mjs +5 -5
  270. package/esm2020/lib/modules/grid.module.mjs +6 -6
  271. package/esm2020/lib/modules/material.module.mjs +20 -22
  272. package/esm2020/lib/modules/paginator.intl.mjs +4 -4
  273. package/esm2020/lib/modules/pivot.module.mjs +5 -7
  274. package/esm2020/lib/modules/schedule.module.mjs +6 -6
  275. package/esm2020/lib/modules/spreadsheet.module.mjs +7 -9
  276. package/esm2020/lib/modules/stepper.intl.mjs +4 -4
  277. package/esm2020/lib/modules/texteditor.module.mjs +6 -8
  278. package/esm2020/lib/notifications/filter.component.mjs +8 -8
  279. package/esm2020/lib/notifications/notifications-table.component.mjs +16 -16
  280. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  281. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  282. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  283. package/esm2020/lib/notifications/types/commented.notification.mjs +5 -5
  284. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +5 -5
  285. package/esm2020/lib/notifications/types/escalated.notification.mjs +6 -6
  286. package/esm2020/lib/notifications/types/liked.notification.mjs +5 -5
  287. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  288. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  289. package/esm2020/lib/notifications/types/nudge.notification.mjs +6 -6
  290. package/esm2020/lib/notifications/types/state-changed.notification.mjs +6 -6
  291. package/esm2020/lib/notifications/types/tagged.notification.mjs +5 -5
  292. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  293. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +5 -5
  294. package/esm2020/lib/options/options.component.mjs +15 -15
  295. package/esm2020/lib/options/options.service.mjs +3 -3
  296. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  297. package/esm2020/lib/reports/cube/documents.component.mjs +3 -3
  298. package/esm2020/lib/reports/cube/grid-documents.component.mjs +9 -9
  299. package/esm2020/lib/reports/cube/table-documents.component.mjs +10 -10
  300. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  301. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  302. package/esm2020/lib/reports/cube/usage-chart.component.mjs +4 -4
  303. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +4 -4
  304. package/esm2020/lib/reports/cube/usage.component.mjs +3 -3
  305. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  306. package/esm2020/lib/reports/report.mobile.component.mjs +12 -12
  307. package/esm2020/lib/reports/report.pane.component.mjs +11 -11
  308. package/esm2020/lib/reports/reports-menu.component.mjs +9 -9
  309. package/esm2020/lib/reports/substitution/substitution.component.mjs +12 -12
  310. package/esm2020/lib/reports/table/table-view.component.mjs +8 -8
  311. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  312. package/esm2020/lib/routes.desktop.mjs +1 -1
  313. package/esm2020/lib/scheduler/schedule.component.mjs +13 -13
  314. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  315. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  316. package/esm2020/lib/shared.module.mjs +30 -32
  317. package/esm2020/lib/system.module.mjs +61 -19
  318. package/esm2020/lib/views/cube/chart.component.mjs +7 -7
  319. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  320. package/esm2020/lib/views/cube/explore.component.mjs +9 -9
  321. package/esm2020/lib/views/cube/matrix.component.mjs +12 -12
  322. package/esm2020/lib/views/cube/parallel.component.mjs +5 -5
  323. package/esm2020/lib/views/cube/pivot.component.mjs +5 -5
  324. package/esm2020/lib/views/cube/sum.component.mjs +10 -10
  325. package/esm2020/lib/views/cube/view.component.mjs +9 -9
  326. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  327. package/esm2020/lib/views/view-item.component.mjs +3 -3
  328. package/esm2020/lib/views/views.component.mjs +5 -5
  329. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  330. package/esm2020/lib/views/views.pane.component.mjs +5 -10
  331. package/esm2020/public-api.mjs +2 -2
  332. package/fesm2015/bizdoc-core.mjs +2891 -1853
  333. package/fesm2015/bizdoc-core.mjs.map +1 -1
  334. package/fesm2020/bizdoc-core.mjs +2888 -1855
  335. package/fesm2020/bizdoc-core.mjs.map +1 -1
  336. package/{bizdoc-core.d.ts → index.d.ts} +0 -0
  337. package/lib/admin/admin-menu.component.d.ts +1 -1
  338. package/lib/admin/configuration-designer/designer-element.component.d.ts +23 -0
  339. package/lib/admin/configuration-designer/designer.base.d.ts +38 -0
  340. package/lib/admin/configuration-designer/designer.component.d.ts +47 -0
  341. package/lib/admin/configuration-designer/elements/action.component.d.ts +20 -0
  342. package/lib/admin/configuration-designer/elements/analysis-widget.component.d.ts +45 -0
  343. package/lib/admin/configuration-designer/elements/anomaly-rule.component.d.ts +20 -0
  344. package/lib/admin/configuration-designer/elements/box-form.component.d.ts +20 -0
  345. package/lib/admin/configuration-designer/elements/chart-view.component.d.ts +45 -0
  346. package/lib/admin/configuration-designer/elements/cube-view.component.d.ts +37 -0
  347. package/lib/admin/configuration-designer/elements/cube.component.d.ts +20 -0
  348. package/lib/admin/configuration-designer/elements/documents-report.component.d.ts +37 -0
  349. package/lib/admin/configuration-designer/elements/documents-widget.component.d.ts +36 -0
  350. package/lib/admin/configuration-designer/elements/explore-view.component.d.ts +35 -0
  351. package/lib/admin/configuration-designer/elements/folder.component.d.ts +19 -0
  352. package/lib/admin/configuration-designer/elements/form.component.d.ts +35 -0
  353. package/lib/admin/configuration-designer/elements/guide.component.d.ts +22 -0
  354. package/lib/admin/configuration-designer/elements/matrix-view.component.d.ts +45 -0
  355. package/lib/admin/configuration-designer/elements/parallel-view.component.d.ts +41 -0
  356. package/lib/admin/configuration-designer/elements/performance-widget.component.d.ts +32 -0
  357. package/lib/admin/configuration-designer/elements/pivot-view.component.d.ts +39 -0
  358. package/lib/admin/configuration-designer/elements/report.component.d.ts +20 -0
  359. package/lib/admin/configuration-designer/elements/role.component.d.ts +20 -0
  360. package/lib/admin/configuration-designer/elements/rule.component.d.ts +17 -0
  361. package/lib/admin/configuration-designer/elements/sum-view.component.d.ts +42 -0
  362. package/lib/admin/configuration-designer/elements/tasks-report.component.d.ts +39 -0
  363. package/lib/admin/configuration-designer/elements/type.component.d.ts +21 -0
  364. package/lib/admin/configuration-designer/elements/usage-report.component.d.ts +39 -0
  365. package/lib/admin/configuration-designer/elements/utility.component.d.ts +20 -0
  366. package/lib/admin/configuration-designer/elements/view.component.d.ts +20 -0
  367. package/lib/admin/configuration-designer/elements/widget.component.d.ts +20 -0
  368. package/lib/admin/configuration-designer/privileges.component.d.ts +20 -0
  369. package/lib/admin/core/ace.input.d.ts +1 -1
  370. package/lib/admin/core/color-picker.input.d.ts +1 -1
  371. package/lib/admin/core/search.input.d.ts +2 -2
  372. package/lib/admin/diff/configuration-diff.component.d.ts +1 -1
  373. package/lib/admin/document-trace/document-trace.component.d.ts +7 -4
  374. package/lib/admin/document-trace/reassign.dialog.d.ts +6 -3
  375. package/lib/admin/document-trace/trace-element.component.d.ts +1 -1
  376. package/lib/admin/form/designer/designer.component.d.ts +46 -0
  377. package/lib/admin/form/form.service.d.ts +6 -4
  378. package/lib/admin/form/workflow/node.component.d.ts +5 -2
  379. package/lib/admin/form/workflow/role-node.component.d.ts +14 -2
  380. package/lib/admin/form/workflow/workflow.component.d.ts +1 -1
  381. package/lib/admin/indices/manage-cube-index.component.d.ts +1 -1
  382. package/lib/admin/patterns/patterns.component.d.ts +10 -6
  383. package/lib/admin/permissions/permissions.component.d.ts +1 -1
  384. package/lib/admin/positions/positions-popup.component.d.ts +2 -2
  385. package/lib/admin/positions/positions.component.d.ts +14 -6
  386. package/lib/admin/profiler/outofoffice.component.d.ts +26 -7
  387. package/lib/admin/profiler/profiler.component.d.ts +3 -3
  388. package/lib/admin/utility-wrapper.component.d.ts +1 -1
  389. package/lib/admin/utility.pane.component.d.ts +1 -1
  390. package/lib/app.component.d.ts +2 -2
  391. package/lib/browse/browse-items.component.d.ts +1 -1
  392. package/lib/browse/browse.mobile.component.d.ts +1 -1
  393. package/lib/browse/browse.pane.component.d.ts +2 -2
  394. package/lib/browse/expanded-item/expanded-item.component.d.ts +1 -1
  395. package/lib/browse/filter/filter.component.d.ts +10 -3
  396. package/lib/browse/folders-menu.component.d.ts +1 -1
  397. package/lib/chat/chat.mobile.component.d.ts +1 -1
  398. package/lib/chat/contacts.component.d.ts +3 -3
  399. package/lib/chat/contacts.pane.component.d.ts +1 -1
  400. package/lib/chat/conversation.component.d.ts +1 -1
  401. package/lib/chat/conversation.pane.component.d.ts +1 -1
  402. package/lib/compose/action/action-picker.component.d.ts +1 -1
  403. package/lib/compose/action/action.dialog.d.ts +1 -1
  404. package/lib/compose/action/action.pane.dialog.exp.d.ts +1 -1
  405. package/lib/compose/action/assign-action.component.d.ts +8 -3
  406. package/lib/compose/action/moveto-action.component.d.ts +6 -3
  407. package/lib/compose/action/return-action.component.d.ts +5 -2
  408. package/lib/compose/attachments/attachments.component.d.ts +1 -1
  409. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +1 -1
  410. package/lib/compose/attachments/progress-button.directive.d.ts +1 -1
  411. package/lib/compose/comments/comment.component.d.ts +1 -1
  412. package/lib/compose/comments/comments.component.d.ts +1 -1
  413. package/lib/compose/comments/{Comments.pane.component.d.ts → comments.pane.component.d.ts} +1 -1
  414. package/lib/compose/comments/edit-comment.component.d.ts +1 -1
  415. package/lib/compose/comments/edits.component.d.ts +1 -1
  416. package/lib/compose/comments/quick-comment.component.exp.d.ts +1 -1
  417. package/lib/compose/comments/votes.component.d.ts +1 -1
  418. package/lib/compose/compose.mobile.component.d.ts +1 -1
  419. package/lib/compose/compose.pane.component.d.ts +1 -1
  420. package/lib/compose/copy/copy.dialog.d.ts +2 -2
  421. package/lib/compose/document.component.d.ts +1 -1
  422. package/lib/compose/document.mobile.component.d.ts +1 -1
  423. package/lib/compose/document.pane.component.d.ts +1 -1
  424. package/lib/compose/events/events.component.d.ts +1 -1
  425. package/lib/compose/form-selector/form-selector.sheet.d.ts +1 -1
  426. package/lib/compose/form.component.d.ts +1 -1
  427. package/lib/compose/new-menu.component.d.ts +2 -2
  428. package/lib/compose/privilage.directive.d.ts +2 -2
  429. package/lib/compose/state.component.d.ts +1 -1
  430. package/lib/compose/tag/tags.component.d.ts +2 -2
  431. package/lib/compose/trace/flow.component.d.ts +11 -8
  432. package/lib/compose/trace/people.component.d.ts +1 -1
  433. package/lib/compose/trace/trace.base.d.ts +8 -3
  434. package/lib/compose/trace/trace.component.d.ts +5 -8
  435. package/lib/compose/trace/trace.pane.component.d.ts +1 -1
  436. package/lib/compose/version-compare/version-compare.component.d.ts +1 -1
  437. package/lib/compose/version-compare/version-compare.directive.d.ts +3 -3
  438. package/lib/compose/version-compare/version.pane.component.d.ts +1 -1
  439. package/lib/core/NgComponentOutlet.d.ts +1 -1
  440. package/lib/core/animated-icon/animated-icon.directive.d.ts +1 -1
  441. package/lib/core/avatar/avatar.component.d.ts +1 -1
  442. package/lib/core/component-factory-resolver.d.ts +1 -1
  443. package/lib/core/controls/address.input.d.ts +2 -2
  444. package/lib/core/controls/auto-complete.input.d.ts +2 -2
  445. package/lib/core/controls/combination-picker-body.d.ts +2 -2
  446. package/lib/core/controls/combination-picker.d.ts +1 -1
  447. package/lib/core/controls/combination-pool.d.ts +1 -1
  448. package/lib/core/controls/file.input.d.ts +1 -1
  449. package/lib/core/controls/select.input.d.ts +2 -2
  450. package/lib/core/controls/time-picker.d.ts +2 -2
  451. package/lib/core/controls/timespan.input.d.ts +6 -2
  452. package/lib/core/guide/guide.component.d.ts +1 -1
  453. package/lib/core/guide/help-tip.component.d.ts +1 -1
  454. package/lib/core/identity/identity.component.d.ts +1 -1
  455. package/lib/core/info/location-info.component.d.ts +1 -1
  456. package/lib/core/layout/autocomplete.field.d.ts +2 -2
  457. package/lib/core/layout/checkbox.d.ts +1 -1
  458. package/lib/core/layout/checkbox.field.d.ts +2 -2
  459. package/lib/core/layout/date-range.field.d.ts +5 -2
  460. package/lib/core/layout/date.field.d.ts +2 -2
  461. package/lib/core/layout/expression.field.d.ts +2 -2
  462. package/lib/core/layout/file.field.d.ts +3 -2
  463. package/lib/core/layout/html.field.d.ts +2 -2
  464. package/lib/core/layout/input.base.d.ts +2 -2
  465. package/lib/core/layout/input.field.d.ts +2 -2
  466. package/lib/core/layout/layout.component.d.ts +1 -1
  467. package/lib/core/layout/numeric.field.d.ts +2 -2
  468. package/lib/core/layout/select.field.d.ts +2 -2
  469. package/lib/core/layout/switch.field.d.ts +2 -2
  470. package/lib/core/layout/textarea.field.d.ts +2 -2
  471. package/lib/core/layout/timespan.field.d.ts +2 -2
  472. package/lib/core/lottie-animation.d.ts +1 -1
  473. package/lib/core/mailbox.service.d.ts +7 -0
  474. package/lib/core/none.component.d.ts +1 -1
  475. package/lib/core/pipes/action.pipe.d.ts +1 -1
  476. package/lib/core/pipes/calendar.pipe.d.ts +1 -1
  477. package/lib/core/pipes/date-format.pipe.d.ts +1 -1
  478. package/lib/core/pipes/daterange.pipe.d.ts +2 -2
  479. package/lib/core/pipes/difference.pipe.d.ts +1 -1
  480. package/lib/core/pipes/duration-format.pipe.d.ts +1 -1
  481. package/lib/core/pipes/duration.pipe.d.ts +1 -1
  482. package/lib/core/pipes/form.pipe.d.ts +1 -1
  483. package/lib/core/pipes/join.pipe.d.ts +1 -1
  484. package/lib/core/pipes/role.pipe.d.ts +1 -1
  485. package/lib/core/pipes/sanitize-html.pipe.d.ts +1 -1
  486. package/lib/core/pipes/sort.pipe.d.ts +2 -2
  487. package/lib/core/pipes/state.pipe.d.ts +1 -1
  488. package/lib/core/pipes/time-ago.pipe.d.ts +1 -1
  489. package/lib/core/pipes/translate.pipe.d.ts +2 -2
  490. package/lib/core/pipes/type-value.pipe.d.ts +1 -1
  491. package/lib/core/pipes/user-name.pipe.d.ts +1 -1
  492. package/lib/core/popup/popup.component.d.ts +1 -1
  493. package/lib/core/popup/tooltip.directive.d.ts +2 -2
  494. package/lib/core/prompt/ask/ask.dialog.d.ts +1 -1
  495. package/lib/core/prompt/mask/mask.component.d.ts +1 -1
  496. package/lib/core/save-changes.dialog.d.ts +1 -1
  497. package/lib/core/slots/router.directive.d.ts +1 -1
  498. package/lib/core/slots/slots.component.d.ts +2 -2
  499. package/lib/core/tagging/documents.component.d.ts +1 -1
  500. package/lib/core/tagging/edit-input.component.d.ts +1 -1
  501. package/lib/core/tagging/emoji.component.d.ts +1 -1
  502. package/lib/core/tagging/tagging-item.directive.d.ts +1 -1
  503. package/lib/core/tagging/tagging.component-base.d.ts +1 -1
  504. package/lib/core/tagging/tagging.directive.d.ts +1 -1
  505. package/lib/core/tagging/tagging.pipe.d.ts +1 -1
  506. package/lib/core/tagging/users.component.d.ts +1 -1
  507. package/lib/core/translations.d.ts +10 -0
  508. package/lib/cube/accum/accum.component.d.ts +1 -1
  509. package/lib/cube/chart/chart.component.d.ts +1 -1
  510. package/lib/cube/cube-menu.component.d.ts +1 -1
  511. package/lib/cube/cube-view.component.d.ts +1 -1
  512. package/lib/cube/explore/document-item.component.d.ts +1 -1
  513. package/lib/cube/explore/explore-item.component.d.ts +1 -1
  514. package/lib/cube/explore/explore-items.component.d.ts +1 -1
  515. package/lib/cube/explore/explore.pane.component.d.ts +1 -1
  516. package/lib/cube/explore/item.pane.component.d.ts +1 -1
  517. package/lib/cube/filter/filter-tags.component.exp.d.ts +1 -1
  518. package/lib/cube/filter/filter.component.d.ts +1 -1
  519. package/lib/cube/grid/grid.component.d.ts +1 -1
  520. package/lib/cube/grid/spreadsheet.component.d.ts +1 -1
  521. package/lib/cube/matrix/matrix.base.d.ts +2 -2
  522. package/lib/cube/matrix/matrix.mobile.component.d.ts +3 -1
  523. package/lib/cube/matrix/matrix.pane.component.d.ts +3 -2
  524. package/lib/cube/matrix/popup.component.d.ts +1 -1
  525. package/lib/cube/matrix/table.component.d.ts +1 -1
  526. package/lib/cube/parallel/parallel.component.d.ts +1 -1
  527. package/lib/cube/pivot/pivot.component.d.ts +1 -1
  528. package/lib/cube/sum/sum.component.d.ts +1 -1
  529. package/lib/cube/view-base.d.ts +2 -2
  530. package/lib/cube/view.mobile.component.d.ts +1 -2
  531. package/lib/cube/view.pane.component.d.ts +1 -1
  532. package/lib/dashboard/actions/actions.widget.d.ts +1 -1
  533. package/lib/dashboard/cube/accum-cube.widget.d.ts +1 -1
  534. package/lib/dashboard/cube/compare.widget.d.ts +3 -3
  535. package/lib/dashboard/cube/cube-analysis.base.d.ts +1 -1
  536. package/lib/dashboard/cube/cube-analysis.widget.d.ts +1 -1
  537. package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -1
  538. package/lib/dashboard/cube/documents.widget.d.ts +1 -1
  539. package/lib/dashboard/cube/filter/filter.component.d.ts +1 -1
  540. package/lib/dashboard/dashboard.component.d.ts +1 -1
  541. package/lib/dashboard/dashboard.pane.component.d.ts +1 -1
  542. package/lib/dashboard/recents/recents.widget.d.ts +2 -2
  543. package/lib/dashboard/score/activity.widget.d.ts +1 -1
  544. package/lib/dashboard/score/compare-groups.widget.d.ts +1 -1
  545. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -1
  546. package/lib/dashboard/score/pending-results.widget.d.ts +1 -1
  547. package/lib/dashboard/score/personal-score.widget.d.ts +1 -1
  548. package/lib/dashboard/widget-item.component.d.ts +1 -1
  549. package/lib/desktop.module.d.ts +1 -1
  550. package/lib/home/about/about.dialog.d.ts +1 -1
  551. package/lib/home/home-base.component.d.ts +1 -1
  552. package/lib/home/home.desktop.component.d.ts +1 -1
  553. package/lib/home/home.mobile.component.d.ts +1 -1
  554. package/lib/home/notifications/notifications.component.d.ts +1 -1
  555. package/lib/home/options/options.component.d.ts +1 -1
  556. package/lib/home/outofoffice/outofoffice.component.d.ts +1 -1
  557. package/lib/home/sign/sign.component.d.ts +1 -1
  558. package/lib/home/tools.component.d.ts +2 -2
  559. package/lib/impersonate/impersonate.component.d.ts +2 -2
  560. package/lib/notifications/filter.component.d.ts +5 -2
  561. package/lib/notifications/notifications-table.component.d.ts +1 -1
  562. package/lib/notifications/notifications.mobile.component.d.ts +1 -1
  563. package/lib/notifications/notifications.pane.component.d.ts +1 -1
  564. package/lib/notifications/types/commented.notification.d.ts +1 -1
  565. package/lib/notifications/types/cube-anomaly.notification.d.ts +1 -1
  566. package/lib/notifications/types/escalated.notification.d.ts +1 -1
  567. package/lib/notifications/types/liked.notification.d.ts +1 -1
  568. package/lib/notifications/types/long-running-task.notification.d.ts +1 -1
  569. package/lib/notifications/types/notification-base.d.ts +1 -1
  570. package/lib/notifications/types/nudge.notification.d.ts +1 -1
  571. package/lib/notifications/types/state-changed.notification.d.ts +1 -1
  572. package/lib/notifications/types/tagged.notification.d.ts +1 -1
  573. package/lib/notifications/types/text.notification.d.ts +1 -1
  574. package/lib/notifications/types/upcoming-event.notification.d.ts +1 -1
  575. package/lib/options/options.component.d.ts +37 -6
  576. package/lib/reports/arguments-component.d.ts +1 -1
  577. package/lib/reports/cube/documents.component.d.ts +1 -1
  578. package/lib/reports/cube/grid-documents.component.d.ts +1 -1
  579. package/lib/reports/cube/table-documents.component.d.ts +1 -1
  580. package/lib/reports/cube/usage-args.component.d.ts +1 -1
  581. package/lib/reports/cube/usage-base.d.ts +1 -1
  582. package/lib/reports/cube/usage-chart.component.d.ts +1 -1
  583. package/lib/reports/cube/usage-pivot.component.d.ts +1 -1
  584. package/lib/reports/cube/usage.component.d.ts +1 -1
  585. package/lib/reports/report-viewer.component.d.ts +1 -1
  586. package/lib/reports/report.mobile.component.d.ts +1 -1
  587. package/lib/reports/report.pane.component.d.ts +1 -1
  588. package/lib/reports/reports-menu.component.d.ts +1 -1
  589. package/lib/reports/substitution/substitution.component.d.ts +1 -1
  590. package/lib/reports/table/table-view.component.d.ts +1 -1
  591. package/lib/reports/tasks/tasks.component.d.ts +1 -1
  592. package/lib/scheduler/schedule.component.d.ts +1 -1
  593. package/lib/scheduler/scheduler.mobile.component.d.ts +1 -1
  594. package/lib/scheduler/scheduler.pane.component.d.ts +1 -1
  595. package/lib/shared.module.d.ts +1 -1
  596. package/lib/system.module.d.ts +57 -27
  597. package/lib/views/cube/chart.component.d.ts +1 -1
  598. package/lib/views/cube/cube-base.d.ts +1 -1
  599. package/lib/views/cube/explore.component.d.ts +1 -1
  600. package/lib/views/cube/matrix.component.d.ts +1 -1
  601. package/lib/views/cube/parallel.component.d.ts +1 -1
  602. package/lib/views/cube/pivot.component.d.ts +1 -1
  603. package/lib/views/cube/sum.component.d.ts +1 -2
  604. package/lib/views/cube/view.component.d.ts +1 -1
  605. package/lib/views/timeline/timeline.component.exp.d.ts +1 -1
  606. package/lib/views/view-item.component.d.ts +1 -1
  607. package/lib/views/views.component.d.ts +1 -1
  608. package/lib/views/views.mobile.component.d.ts +1 -1
  609. package/lib/views/views.pane.component.d.ts +1 -1
  610. package/package.json +33 -33
  611. package/public-api.d.ts +1 -1
  612. package/assets/.gitkeep +0 -0
@@ -1,22 +1,22 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "../core/session.service";
4
- import * as i2 from "@angular/material/list";
5
- import * as i3 from "@angular/material/divider";
6
- import * as i4 from "@angular/material/icon";
7
- import * as i5 from "@angular/common";
8
- import * as i6 from "../core/slots/router.directive";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/core";
6
+ import * as i4 from "@angular/material/list";
7
+ import * as i5 from "@angular/material/divider";
8
+ import * as i6 from "@angular/material/icon";
9
9
  import * as i7 from "../core/popup/tooltip.directive";
10
- import * as i8 from "@angular/material/core";
10
+ import * as i8 from "../core/slots/router.directive";
11
11
  export class CubeMenuComponent {
12
12
  constructor(session) {
13
13
  this.change = new EventEmitter();
14
14
  this.cubes = session.profile.cubes.filter(c => c.views.length);
15
15
  }
16
16
  }
17
- CubeMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeMenuComponent, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Component });
18
- CubeMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: { collapsed: "collapsed" }, outputs: { change: "change" }, ngImport: i0, template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-display-1\">{{'Cube'| translate}}</h1>-->\r\n<!--<lottie name=\"lf30_editor_qr7zgmcs\"></lottie>-->\r\n<mat-nav-list>\r\n <ng-container *ngFor=\"let c of cubes; let first = first\">\r\n <mat-divider *ngIf=\"!first\"></mat-divider>\r\n <h3 matSubheader *ngIf=\"!collapsed\">{{c.title}}</h3>\r\n <mat-list-item *ngFor=\"let v of c.views\" (click)=\"change.emit()\" [slotRouterLink]='[\"cube\", c.name, \"v\", v.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListIcon [bizdocTooltip]=\"v.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{v.icon || 'insights'}}</mat-icon>\r\n <span matLine>{{v.title}}</span>\r\n </mat-list-item>\r\n </ng-container>\r\n</mat-nav-list>\r\n", components: [{ type: i2.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { type: i3.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { type: i2.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { type: i6.SlotRouterDirective, selector: "[slotRouterLink]", inputs: ["slotRouterLink", "slotRouterLinkActive", "slotRouterLinkDisabled", "slotRouterLinkPolicy", "slotRouterLinkOptions"] }, { type: i2.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { type: i7.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i8.MatLine, selector: "[mat-line], [matLine]" }], animations: [] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeMenuComponent, decorators: [{
17
+ CubeMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeMenuComponent, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Component });
18
+ CubeMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: { collapsed: "collapsed" }, outputs: { change: "change" }, ngImport: i0, template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-display-1\">{{'Cube'| translate}}</h1>-->\r\n<!--<lottie name=\"lf30_editor_qr7zgmcs\"></lottie>-->\r\n<mat-nav-list>\r\n <ng-container *ngFor=\"let c of cubes; let first = first\">\r\n <mat-divider *ngIf=\"!first\"></mat-divider>\r\n <h3 matSubheader *ngIf=\"!collapsed\">{{c.title}}</h3>\r\n <mat-list-item *ngFor=\"let v of c.views\" (click)=\"change.emit()\" [slotRouterLink]='[\"cube\", c.name, \"v\", v.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListIcon [bizdocTooltip]=\"v.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{v.icon || 'insights'}}</mat-icon>\r\n <span matLine>{{v.title}}</span>\r\n </mat-list-item>\r\n </ng-container>\r\n</mat-nav-list>\r\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.MatLine, selector: "[mat-line], [matLine]" }, { kind: "component", type: i4.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { kind: "component", type: i4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i4.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { kind: "directive", type: i4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "component", type: i5.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: i8.SlotRouterDirective, selector: "[slotRouterLink]", inputs: ["slotRouterLink", "slotRouterLinkActive", "slotRouterLinkDisabled", "slotRouterLinkPolicy", "slotRouterLinkOptions"] }], animations: [] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeMenuComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'bizdoc-cube-menu', animations: [], template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-display-1\">{{'Cube'| translate}}</h1>-->\r\n<!--<lottie name=\"lf30_editor_qr7zgmcs\"></lottie>-->\r\n<mat-nav-list>\r\n <ng-container *ngFor=\"let c of cubes; let first = first\">\r\n <mat-divider *ngIf=\"!first\"></mat-divider>\r\n <h3 matSubheader *ngIf=\"!collapsed\">{{c.title}}</h3>\r\n <mat-list-item *ngFor=\"let v of c.views\" (click)=\"change.emit()\" [slotRouterLink]='[\"cube\", c.name, \"v\", v.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListIcon [bizdocTooltip]=\"v.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{v.icon || 'insights'}}</mat-icon>\r\n <span matLine>{{v.title}}</span>\r\n </mat-list-item>\r\n </ng-container>\r\n</mat-nav-list>\r\n" }]
22
22
  }], ctorParameters: function () { return [{ type: i1.SessionService }]; }, propDecorators: { collapsed: [{
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
24
24
  }], change: [{
25
25
  type: Output
26
26
  }] } });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9jdWJlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBU3ZFLE1BQU0sT0FDRSxpQkFBaUI7SUFJdkIsWUFBWSxPQUF1QjtRQUZoQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc3QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OEdBTkssaUJBQWlCO2tHQUFqQixpQkFBaUIsMkhDVnpCLGl5QkFhQSxpMENETmMsRUFBRTsyRkFHUixpQkFBaUI7a0JBTnhCLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLEVBQUU7cUdBSUwsU0FBUztzQkFBakIsS0FBSztnQkFDYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3ViZSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdWJlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtdXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEN1YmVNZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2xsYXBzZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIGNvbnN0cnVjdG9yKHNlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmN1YmVzID0gc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbHRlcihjPT4gYy52aWV3cy5sZW5ndGgpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tPHNwYW4gY2xhc3M9XCJtYXQtc3ViaGVhZGVyXCI+Qml6RG9jPC9zcGFuPlxyXG48aDEgY2xhc3M9XCJtYXQtZGlzcGxheS0xXCI+e3snQ3ViZSd8IHRyYW5zbGF0ZX19PC9oMT4tLT5cclxuPCEtLTxsb3R0aWUgbmFtZT1cImxmMzBfZWRpdG9yX3FyN3pnbWNzXCI+PC9sb3R0aWU+LS0+XHJcbjxtYXQtbmF2LWxpc3Q+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlczsgbGV0IGZpcnN0ID0gZmlyc3RcIj5cclxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cIiFmaXJzdFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8aDMgbWF0U3ViaGVhZGVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPnt7Yy50aXRsZX19PC9oMz5cclxuICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCB2IG9mIGMudmlld3NcIiAoY2xpY2spPVwiY2hhbmdlLmVtaXQoKVwiIFtzbG90Um91dGVyTGlua109J1tcImN1YmVcIiwgYy5uYW1lLCBcInZcIiwgdi5uYW1lXScgc2xvdFJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uIFtiaXpkb2NUb29sdGlwXT1cInYudGl0bGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj57e3YuaWNvbiB8fCAnaW5zaWdodHMnfX08L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBtYXRMaW5lPnt7di50aXRsZX19PC9zcGFuPlxyXG4gICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1uYXYtbGlzdD5cclxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9jdWJlLW1lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBU3ZFLE1BQU0sT0FDRSxpQkFBaUI7SUFJdkIsWUFBWSxPQUF1QjtRQUZoQixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUc3QyxJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OEdBTkssaUJBQWlCO2tHQUFqQixpQkFBaUIsMkhDVnpCLGl5QkFhQSxzZ0RETmMsRUFBRTsyRkFHUixpQkFBaUI7a0JBTnhCLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLEVBQUU7cUdBSUwsU0FBUztzQkFBakIsS0FBSztnQkFDYSxNQUFNO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ3ViZSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1jdWJlLW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdWJlLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGFuaW1hdGlvbnM6IFtdXHJcbn0pXHJcbmV4cG9ydFxyXG4gIGNsYXNzIEN1YmVNZW51Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb2xsYXBzZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIHJlYWRvbmx5IGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjdWJlczogQ3ViZVtdO1xyXG4gIGNvbnN0cnVjdG9yKHNlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmN1YmVzID0gc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbHRlcihjPT4gYy52aWV3cy5sZW5ndGgpO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tPHNwYW4gY2xhc3M9XCJtYXQtc3ViaGVhZGVyXCI+Qml6RG9jPC9zcGFuPlxyXG48aDEgY2xhc3M9XCJtYXQtZGlzcGxheS0xXCI+e3snQ3ViZSd8IHRyYW5zbGF0ZX19PC9oMT4tLT5cclxuPCEtLTxsb3R0aWUgbmFtZT1cImxmMzBfZWRpdG9yX3FyN3pnbWNzXCI+PC9sb3R0aWU+LS0+XHJcbjxtYXQtbmF2LWxpc3Q+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYyBvZiBjdWJlczsgbGV0IGZpcnN0ID0gZmlyc3RcIj5cclxuICAgIDxtYXQtZGl2aWRlciAqbmdJZj1cIiFmaXJzdFwiPjwvbWF0LWRpdmlkZXI+XHJcbiAgICA8aDMgbWF0U3ViaGVhZGVyICpuZ0lmPVwiIWNvbGxhcHNlZFwiPnt7Yy50aXRsZX19PC9oMz5cclxuICAgIDxtYXQtbGlzdC1pdGVtICpuZ0Zvcj1cImxldCB2IG9mIGMudmlld3NcIiAoY2xpY2spPVwiY2hhbmdlLmVtaXQoKVwiIFtzbG90Um91dGVyTGlua109J1tcImN1YmVcIiwgYy5uYW1lLCBcInZcIiwgdi5uYW1lXScgc2xvdFJvdXRlckxpbmtBY3RpdmU9XCJhY3RpdmVcIj5cclxuICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uIFtiaXpkb2NUb29sdGlwXT1cInYudGl0bGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj57e3YuaWNvbiB8fCAnaW5zaWdodHMnfX08L21hdC1pY29uPlxyXG4gICAgICA8c3BhbiBtYXRMaW5lPnt7di50aXRsZX19PC9zcGFuPlxyXG4gICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L21hdC1uYXYtbGlzdD5cclxuIl19
@@ -152,9 +152,9 @@ export class CubeViewComponent {
152
152
  this._viewDestroy.complete();
153
153
  }
154
154
  }
155
- CubeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
156
- CubeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: { filters: "filters", cube: "cube", view: "view", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { listeners: { "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeViewComponent, decorators: [{
155
+ CubeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeViewComponent, deps: [{ token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
156
+ CubeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: CubeViewComponent, selector: "bizdoc-cube-view", inputs: { filters: "filters", cube: "cube", view: "view", loading: "loading" }, outputs: { explore: "explore", loadingChange: "loadingChange" }, host: { listeners: { "window:resize": "resize()" } }, usesOnChanges: true, ngImport: i0, template: '', isInline: true });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeViewComponent, decorators: [{
158
158
  type: Component,
159
159
  args: [{
160
160
  selector: 'bizdoc-cube-view',
@@ -381,9 +381,9 @@ export class CubeService {
381
381
  });
382
382
  }
383
383
  }
384
- CubeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Injectable });
385
- CubeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeService, providedIn: 'root' });
386
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: CubeService, decorators: [{
384
+ CubeService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: i2.DatasourceService }, { token: i3.SessionService }], target: i0.ɵɵFactoryTarget.Injectable });
385
+ CubeService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeService, providedIn: 'root' });
386
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: CubeService, decorators: [{
387
387
  type: Injectable,
388
388
  args: [{ providedIn: 'root' }]
389
389
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -415,4 +415,4 @@ export function errResource(error) {
415
415
  }
416
416
  return null;
417
417
  }
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFnQixhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFJekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBRTlGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7QUFFL0Q7MkVBQzJFO0FBQzNFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDdEMsaUVBQWlFO0FBQ2pFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxHQUFHLEVBQUUsY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUV2RCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFFaEQsd0VBQXdFO0FBQ3hFLEtBQUs7QUFDTCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxzR0FBc0csQ0FBQztBQUV6SSxNQUFNLENB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UUFDeEIsS0FBSyxHQUFHO1lBQ04sT0FBTyxZQUFZLENBQUM7UUFDdEIsS0FBSyxHQUFHO1lBQ04sT0FBTyxlQUFlLENBQUM7S0FDMUI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzaGFyZVJlcGxheSwgdGFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IHNldEN1cnJlbmN5Q29kZSB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1iYXNlJztcclxuaW1wb3J0IHsgaXNBcnJheSwgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQklaRE9DX0NPTkZJRywgUGFyYW1NYXAsIFNjb3BlVHlwZSB9IGZyb20gJy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IEZpZWxkSW5mbywgQXhpc1R5cGUsIEF4ZXNNYXAgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhc291cmNlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvZGF0YXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZ2V0Q3VycmVuY3lTeW1ib2wsIGdldExvY2FsZU51bWJlckZvcm1hdCwgTnVtYmVyRm9ybWF0U3R5bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFDQ09VTlRfREVMSU1JVEVSID0gJy4nLCBERUZBVUxUX0NVUlJFTkNZID0gJ1VTRCc7XHJcblxyXG4vKiogaW4gY2FzZSB4QXhpcyBvciBzZXJpZXMgaXMgZ2l2ZW4gbW9yZSB0aGFuIG9uZSBheGlzLFxyXG4gKiB0aGUgdmFsdWUgcmV0dXJuZWQgaXMgY29tYmluZWQgb2YgdmFsdWVzIHNlcGVyYXRlZCBieSB0aGlzIGNoYXJhY3Rlci4gKi9cclxuZXhwb3J0IGNvbnN0IEFYRVNfQ09ERV9ESVZJREVSID0gJ19fJztcclxuXHJcbmV4cG9ydCBjb25zdCBBWEVTX0xBQkVMX0RJVklERVIgPSAnLSc7XHJcbi8qKiByZXByZXNlbnRzIGEgcGxhY2UgaW4gcGF0dGVybiB0byBiZSByZXBsYWNlZCBieSBiYXNlIGF4aXMuICovXHJcbmV4cG9ydCBjb25zdCBBWElTX01BUF9DSEFSID0gJyMnLCBBWElTX01BUF9BU19JUyA9ICcqJztcclxuXHJcbmV4cG9ydCBjb25zdCBBWElTX1NQRUNJQUxfQ0hBUlMgPSAvW1xcLjsjXFwtLFxcIV0vO1xyXG5cclxuLyoqIGFsbG93ZWQgY2hhcmFjdGVycyBmb3IgYXhpcyB2YWx1ZSAvIGNvbGxlY3Rpb24gLyByYW5nZSAvIHBhdHRlcm4uICovXHJcbi8vXFxwTFxyXG5leHBvcnQgY29uc3QgQVhJU19WQUxVRV9QQVRURVJOID0gL14oKCE/XFx3KyhcXCxcXHcrKSopfCghP1xcdytcXC1cXHcrKXwoIT9bXFx3XFwuXFwqXFwjXSspKShbO10oKCE/XFx3KyhcXCxcXHcrKSopfCghP1xcdytcXC1cXHcrKXwoIT9bXFx3XFwuXFwqXFwjXSspKSkqJC87XHJcblxyXG5leHBvcnQgY29uc3QgQ0xEUl9GSUxFUyA9IFsnY2xkci1kYXRhL21haW4vezB9L2N1cnJlbmNpZXMuanNvbicsICdjbGRyLWRhdGEvbWFpbi97MH0vY2EtZ3JlZ29yaWFuLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L251bWJlcnMuanNvbicsICdjbGRyLWRhdGEvbWFpbi97MH0vdGltZVpvbmVOYW1lcy5qc29uJywgJ2NsZHItZGF0YS9zdXBwbGVtZW50YWwvbnVtYmVyaW5nU3lzdGVtcy5qc29uJ107XHJcblxyXG4vKiogcXVlcnkgY3ViZSAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQ3ViZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NhY2hlOiB7IFtuYW1lOiBzdHJpbmddOiBPYnNlcnZhYmxlPGFueT4gfSA9IHt9O1xyXG4gIC8vIGN0b3JcclxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEJJWkRPQ19DT05GSUcpIHByaXZhdGUgX2NvbmZpZzogQml6RG9jQ29uZmlnLFxyXG4gICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgX3R5cGU6IERhdGFzb3VyY2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UpIHtcclxuICAgIF9jb25maWcgJiYgX2NvbmZpZy5jdXJyZW5jeUNvZGUgJiYgc2V0Q3VycmVuY3lDb2RlKF9jb25maWcuY3VycmVuY3lDb2RlKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY2FjaGVPciA9IDxUPihuYW1lOiBzdHJpbmcsIGZuOiAoKSA9PiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxUPiA9PlxyXG4gICAgdGhpcy5fY2FjaGVbbmFtZV0gfHwgKHRoaXMuX2NhY2hlW25hbWVdID0gZm4oKS5waXBlKHNoYXJlUmVwbGF5KCkpKTtcclxuICAvKiogc3lzdGVtIGN1cnJlbmN5ICovXHJcbiAgZ2V0IG51bWJlckZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVuY3lDb2RlID9cclxuICAgICAgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkN1cnJlbmN5KS5cclxuICAgICAgICByZXBsYWNlKCfCpCcsIGdldEN1cnJlbmN5U3ltYm9sKHRoaXMuY3VycmVuY3lDb2RlLCAnbmFycm93JykpIDpcclxuICAgICAgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KHRoaXMuX3Nlc3Npb24ubGFuZ3VhZ2UsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpO1xyXG4gIH1cclxuICBnZXQgY3VycmVuY3lDb2RlKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCB7IGN1cnJlbmN5Q29kZSB9ID0gdGhpcy5fY29uZmlnO1xyXG4gICAgcmV0dXJuIGN1cnJlbmN5Q29kZSB8fCBERUZBVUxUX0NVUlJFTkNZO1xyXG4gIH1cclxuICBnZXQgZGlnaXRzSW5mbygpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBmcmFjdGlvbkRpZ2l0cyB9ID0gdGhpcztcclxuICAgIHJldHVybiBgMS4ke2ZyYWN0aW9uRGlnaXRzfS0ke2ZyYWN0aW9uRGlnaXRzfWA7XHJcbiAgfVxyXG4gIGdldCBmcmFjdGlvbkRpZ2l0cygpOiBudW1iZXIge1xyXG4gICAgY29uc3QgeyBmb3JtYXRzIH0gPSB0aGlzLl9jb25maWcsIHsgZnJhY3Rpb25EaWdpdHMgfSA9IGZvcm1hdHMgfHwge307XHJcbiAgICByZXR1cm4gZnJhY3Rpb25EaWdpdHMgIT09IHVuZGVmaW5lZCA/IGZyYWN0aW9uRGlnaXRzIDogMjtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogcXVlcnkgY3ViZSBieSBheGVzLCBzZXJpZXMgYW5kIGluZGljZXNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIHhBeGlzIGdyb3VwIGJ5IG9uZSBvciBtb3JlIGF4aXNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlcmllcyhjdWJlOiBzdHJpbmcsIHhBeGlzOiBzdHJpbmcgfCBzdHJpbmdbXSxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIC8qKiBncm91cCBzZXJpZXMgYnkgb25lIG9yIG1vcmUgYXhpcyAqL1xyXG4gICAgICBzZXJpZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgLyoqIGluY2x1ZGUgb25lIG9yIG1vcmUgaW5kZXggc2VyaWVzICovXHJcbiAgICAgIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgZ3JvdXBJbmRpY2VzPzogYm9vbGVhbixcclxuICAgICAgLy9pbmRleEJ5PzogJ2dyb3VwJyB8ICdpbnZlcnNlJyxcclxuICAgICAgaW52ZXJzZUluZGljZXM/OiBib29sZWFuLFxyXG4gICAgICAvKiogYXhlcyAqL1xyXG4gICAgICBmaWx0ZXJzPzogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfTtcclxuICAgICAgc2NvcGU/OiBTY29wZVR5cGUsXHJcbiAgICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgfSk6IE9ic2VydmFibGU8U2VyaWVzW10+IHtcclxuICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xyXG4gICAgY29uc3QgeyBmaWx0ZXJzOiBheGVzLCBzZXJpZXMsIGluZGljZXMsIGJhc2UsIHNjb3BlLCBncm91cEluZGljZXMsIGludmVyc2VJbmRpY2VzIH0gPSBvcHRpb25zLCBmaWx0ZXJzID0geyAuLi5heGVzIH07XHJcbiAgICAvLyBub3JtYWxpemUgYXJnc1xyXG4gICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgZmlsdGVycywgYmFzZSk7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8U2VyaWVzW10+KGAvYXBpL2N1YmUvJHtjdWJlfWAsIHtcclxuICAgICAgeEF4aXMsXHJcbiAgICAgIHNlcmllcyxcclxuICAgICAgaW5kaWNlcyxcclxuICAgICAgZmlsdGVycyxcclxuICAgICAgc2NvcGUsXHJcbiAgICAgIGdyb3VwSW5kaWNlcyxcclxuICAgICAgaW52ZXJzZUluZGljZXNcclxuICAgIH0pLnBpcGUodGhpcy5fZGVjb3JhdGUoY3ViZSwgaXNBcnJheSh4QXhpcykgPyB4QXhpcyA6IFt4QXhpc10sXHJcbiAgICAgIHNlcmllcyA/IGlzQXJyYXkoc2VyaWVzKSA/IHNlcmllcyA6IFtzZXJpZXNdIDogbnVsbCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBhZ2dyZWdhdGUgY3ViZSB0byBmbGF0IGNvbGxlY3Rpb24gb2YgY29sdW1ucyBhbmQgdmFsdWUocylcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGNvbHVtbnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHRhYmxlKGN1YmU6IHN0cmluZywgY29sdW1uczogc3RyaW5nW10sIG9wdGlvbnM/OiB7XHJcbiAgICAvKiogYXhlcyAqL1xyXG4gICAgZmlsdGVycz86IEF4ZXNNYXA7XHJcbiAgICAvKiogaW5jbHVkZSBvbmUgb3IgbW9yZSBpbmRleCB2YWx1ZXMgKi9cclxuICAgIGluZGljZXM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgIHNjb3BlPzogU2NvcGVUeXBlLFxyXG4gIH0pOiBPYnNlcnZhYmxlPHsgdmFsdWU6IG51bWJlciB9W10+IHtcclxuICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xyXG4gICAgY29uc3QgeyBmaWx0ZXJzLCBpbmRpY2VzLCBzY29wZSB9ID0gb3B0aW9ucztcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHZhbHVlOiBudW1iZXIgfVtdPihgL2FwaS9jdWJlL3RhYmxlLyR7Y3ViZX1gLCB7XHJcbiAgICAgIGNvbHVtbnMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIGZpbHRlcnMsXHJcbiAgICAgIHNjb3BlXHJcbiAgICB9KS5waXBlKHRoaXMuX2RlY29yYXRlVGFibGUoY3ViZSwgY29sdW1ucykpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBpbmZvcm1hdGlvbiBvbiBleHBlY3RlZCBleHBsb3JlIHR5cGVcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgcmVzb2x2ZShjdWJlOiBzdHJpbmcsIGF4ZXM6IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxFeHBsb3JlVHlwZT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0geyAuLi5heGVzIH0gYXMgYW55O1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBiYXNlIH0gPSBvcHRpb25zO1xyXG4gICAgICBiYXNlICYmIHRoaXMuYmFzZShjdWJlLCBwYXJhbXMsIGJhc2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEV4cGxvcmVUeXBlPihgL2FwaS9jdWJlL2V4cGxvcmV0eXBlLyR7Y3ViZX1gLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogaW5mb3JtYXRpb24gb24gZXhwZWN0ZWQgZXhwbG9yZSB0eXBlXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBpbmRleCBuYW1lXHJcbiAgICovXHJcbiAgcmVzb2x2ZUluZGV4KGN1YmU6IHN0cmluZywgaW5kZXg6IHN0cmluZyk6IE9ic2VydmFibGU8RXhwbG9yZVR5cGU+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxFeHBsb3JlVHlwZT4oYC9hcGkvY3ViZS9leHBsb3JlaW5kZXh0eXBlLyR7Y3ViZX0vJHtpbmRleH1gKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZXhwbG9yZSBpdGVtcyBieSBheGlzXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGV4cGxvcmUoY3ViZTogc3RyaW5nLCBheGVzOiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7XHJcbiAgICAvKiogcmVzdHJpY3QgcmVzdWx0cyB0byB1c2VyIHBhdHRlcm5zIG9yIHBvc2l0aW9ucyAqL1xyXG4gICAgc2NvcGU/OiBTY29wZVR5cGUsXHJcbiAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICBiYXNlPzogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbiAgfSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICAgIGlmIChzY29wZSkgcGFyYW1zLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8YW55W10+KFxyXG4gICAgICBgL2FwaS9jdWJlL2V4cGxvcmUvJHtjdWJlfWAsXHJcbiAgICAgIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgbmFtZU9mKGF4ZXM6IEF4ZXNNYXAsIGN1YmU6IHN0cmluZykge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gb3B0aW9ucy5heGVzLmZpbHRlcihhID0+IGlzU3RyaW5nKGF4ZXNbYS5uYW1lXSkgJiZcclxuICAgICAgLy8gdmFsdWVcclxuICAgICAgIUFYSVNfU1BFQ0lBTF9DSEFSUy50ZXN0KGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmcpKS5tYXAoYSA9PlxyXG4gICAgICAgIHRoaXMuX3R5cGUuZ2V0KGEuZGF0YVR5cGUsIGF4ZXNbYS5uYW1lXSBhcyBzdHJpbmcpIHx8ICcnKTtcclxuICAgIHJldHVybiAob2JzZXJ2YWJsZXMubGVuZ3RoID8gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKG8gPT4gby5qb2luKCcgJykpKSA6IG9mKCcnKSk7XHJcbiAgfSBcclxuICAvKipcclxuICAgKiBleHBsb3JlIGluZGljZXMgYnkgYXhpc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gaW5kZXggbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGluZGljZXMoY3ViZTogc3RyaW5nLCBpbmRleDogc3RyaW5nLCBheGVzOiB7IFtheGlzOiBzdHJpbmddOiBBeGlzVHlwZSB9LFxyXG4gICAgb3B0aW9ucz86IHtcclxuICAgICAgLyoqIHJlc3RyaWN0IHJlc3VsdHMgdG8gdXNlciBwYXR0ZXJucyBvciBwb3NpdGlvbnMgKi9cclxuICAgICAgc2NvcGU/OiBTY29wZVR5cGVcclxuICAgICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gICAgfSk6IE9ic2VydmFibGU8YW55W10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSwgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICAgIGlmIChzY29wZSkgcGFyYW1zLnNjb3BlID0gc2NvcGU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8YW55W10+KFxyXG4gICAgICBgL2FwaS9jdWJlL2V4cGxvcmVpbmRleC8ke2N1YmV9LyR7aW5kZXh9YCwgeyBwYXJhbXMgfSkuXHJcbiAgICAgIHBpcGUodGhpcy5fZGVjb3JhdGVUYWJsZShjdWJlKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBleHBsb3JlIGl0ZW0gYnkgYXhpcyBhbmQga2V5KHMpXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKiBAcGFyYW0gYXhlc1xyXG4gICAqIEBwYXJhbSBrZXlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpdGVtKGN1YmU6IHN0cmluZywgYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfSwga2V5czogKHN0cmluZyB8IG51bWJlcilbXSB8IHN0cmluZyB8IG51bWJlciwgb3B0aW9ucz86IHtcclxuICAgIC8qKiByZXBsYWNlIGJhc2UgKi9cclxuICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIHBhcmFtc1sna2V5J10gPSBpc0FycmF5KGtleXMpID8ga2V5c1swXSA6IGtleXM7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UgfSA9IG9wdGlvbnM7XHJcbiAgICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIHBhcmFtcywgYmFzZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQoYC9hcGkvY3ViZS9leHBsb3JlaXRlbS8ke2N1YmV9YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBjb25kaXRpb25cclxuICAgKi9cclxuICBjb25zdHJhaW50cyhjdWJlOiBzdHJpbmcsIGF4ZXM/OiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7IHNvdXJjZTogJ2NvbnN0cmFpbnRzJyB8ICdjb21iaW5hdGlvbnMnIH0pOiBPYnNlcnZhYmxlPHsgW2RhdGFUeXBlOiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IH0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgIW9wdGlvbnMgfHwgb3B0aW9ucy5zb3VyY2UgPT09ICdjb25zdHJhaW50cycgP1xyXG4gICAgICAgIGAvYXBpL2N1YmUvY29uc3RyYWludHMvJHtjdWJlfWAgOiBgL2FwaS9jdWJlL2NvbWJpbmF0aW9uc2NvbnN0cmFpbnRzLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzIH0gYXMgYW55XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGlzIG5hbWVcclxuICAgKi9cclxuICB2YWx1ZXMoY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGRlcGVuZGVuY2llcz86IFBhcmFtTWFwKTogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IGFueSB9PiB7XHJcbiAgICBsZXQgY2FjaGVJZCA9IGN1YmUgKyBheGlzO1xyXG4gICAgZGVwZW5kZW5jaWVzICYmIE9iamVjdC5rZXlzKGRlcGVuZGVuY2llcykuZm9yRWFjaChrID0+IGNhY2hlSWQgKz0gayk7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihjYWNoZUlkLCAoKSA9PiB0aGlzLl9odHRwLmdldDx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PihcclxuICAgICAgYC9hcGkvY3ViZS9zZWdtZW50dmFsdWVzLyR7Y3ViZX0vJHtheGlzfWAsIHsgcGFyYW1zOiBkZXBlbmRlbmNpZXMgfSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgYXhpcyBjb21iaW5hdGlvbnNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgY29tYmluYXRpb25zKGN1YmU6IHN0cmluZywgYXhlcz86IHsgW2tleTogc3RyaW5nXTogQXhpc1R5cGUgfSwgb3B0aW9ucz86IHtcclxuICAgIC8qKiB0b3AgKi9cclxuICAgIHRha2U/OiBudW1iZXI7XHJcbiAgICAvKiogcHJvY2VzcyBpbiBiYWNrZ3JvdW5kICovXHJcbiAgICBwcm9ncmVzcz86IGJvb2xlYW47XHJcbiAgfSk6IE9ic2VydmFibGU8c3RyaW5nW11bXT4ge1xyXG4gICAgaWYgKCFvcHRpb25zKSBvcHRpb25zID0ge307XHJcbiAgICBjb25zdCB7IHRha2UsIHByb2dyZXNzIH0gPSBvcHRpb25zO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHN0cmluZ1tdW10+KGAvYXBpL2N1YmUvY29tYmluYXRpb25zLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHBhcmFtczogeyAuLi5heGVzLCB0YWtlIH0gYXMgYW55LFxyXG4gICAgICBoZWFkZXJzOiBwcm9ncmVzcyA9PT0gZmFsc2UgPyB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IDoge31cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdmFsdWVcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHNlYXJjaCh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiB7IHRha2U/OiBudW1iZXIgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PHsgY3ViZTogc3RyaW5nLCBheGlzOiBzdHJpbmcsIGtleTogYW55LCB2YWx1ZTogYW55IH1bXT4oJy9hcGkvY3ViZS9zZWFyY2gnLCB7XHJcbiAgICAgIHBhcmFtczogeyB2YWx1ZSwgLi4ub3B0aW9ucyB9IGFzIGFueSxcclxuICAgICAgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCBzZWdtZW50c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgc2VnbWVudHMoY3ViZTogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlZ21lbnRNYXA+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKGAke25hbWV9LXNlZ21lbnRzYCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8U2VnbWVudE1hcD4oYC9hcGkvY3ViZS9zZWdtZW50cy8ke2N1YmV9LyR7bmFtZX1gKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGdldCB1c2VyIHBhdHRlcm5zXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBwYXR0ZXJucyhjdWJlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBhdHRlcm5bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3IoYCR7Y3ViZX0tcGF0dGVybnNgLCAoKSA9PiB0aGlzLl9odHRwLmdldDxQYXR0ZXJuW10+KGAvYXBpL2N1YmUvcGF0dGVybnMvJHtjdWJlfWApKTtcclxuICB9XHJcbiAgLyoqIGdldCBjdXJyZW5jaWVzICovXHJcbiAgY3VycmVuY2llcygpOiBPYnNlcnZhYmxlPEN1cnJlbmN5W10+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKCdjdXJyZW5jaWVzJywgKCkgPT4gdGhpcy5faHR0cC5nZXQ8Q3VycmVuY3lbXT4oJy9hcGkvY3ViZS9jdXJyZW5jaWVzJykpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgZXhjaGFuZ2UgcmF0ZVxyXG4gICAqIEBwYXJhbSBjdXJyZW5jeUNvZGVcclxuICAgKiBAcGFyYW0gZGF0ZVxyXG4gICAqL1xyXG4gIGV4Y2hhbmdlUmF0ZShjdXJyZW5jeUNvZGU6IHN0cmluZywgZGF0ZT86IERhdGUpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgaWYgKHRoaXMuY3VycmVuY3lDb2RlID09PSBjdXJyZW5jeUNvZGUpXHJcbiAgICAgIHJldHVybiBvZigxKTtcclxuICAgIGxldCBrZXkgPSBjdXJyZW5jeUNvZGU7XHJcbiAgICBpZiAoZGF0ZSkga2V5ICs9IGRhdGUudG9KU09OKCk7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihrZXksICgpID0+IHRoaXMuX2h0dHAuZ2V0PG51bWJlcj4oYC9hcGkvY3ViZS9leGNoYW5nZVJhdGUvJHtjdXJyZW5jeUNvZGV9YCwge1xyXG4gICAgICBwYXJhbXM6IGRhdGUgPyB7IGRhdGU6IGRhdGUudG9KU09OKCkgfSA6IG51bGwsXHJcbiAgICAgIGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH1cclxuICAgIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgKiByZXBsYWNlcyAqIG9yICMgd2l0aCBvcmlnaW4gYXhpcyBhdCBjaGFyIHBsYWNlXHJcbiAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgKiBAcGFyYW0gYXhlcyBtYXBcclxuICAqIEBwYXJhbSBiYXNlIG9yaWdpblxyXG4gICovXHJcbiAgcHVibGljIGJhc2UoY3ViZTogc3RyaW5nLCBheGVzOiBBeGVzTWFwLFxyXG4gICAgYmFzZTogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IEF4ZXNNYXApOiB2b2lkIHtcclxuICAgIGNvbnN0IGNjdWJlID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgY2N1YmUuYXhlcy5mb3JFYWNoKChhLCBpKSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbCA9IGF4ZXNbYS5uYW1lXTtcclxuICAgICAgaWYgKHZhbCAmJiBpc1N0cmluZyh2YWwpKSB7XHJcbiAgICAgICAgY29uc3QgYXhpc2Jhc2UgPSBpc0FycmF5KGJhc2UpID8gYmFzZVtpXSA6IGJhc2VbYS5uYW1lXTtcclxuICAgICAgICBpZiAodmFsID09PSBBWElTX01BUF9BU19JUylcclxuICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGF4aXNiYXNlO1xyXG4gICAgICAgIGVsc2UgaWYgKHZhbC5pbmRleE9mKEFYSVNfTUFQX0NIQVIpID4gLTEpIHtcclxuICAgICAgICAgIGxldCBheGlzID0gJyc7XHJcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHZhbC5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICBsZXQgY2hhciA9IHZhbC5jaGFyQXQoaik7XHJcbiAgICAgICAgICAgIGF4aXMgKz0gY2hhciA9PT0gQVhJU19NQVBfQ0hBUiAmJiAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5sZW5ndGggPiBqID9cclxuICAgICAgICAgICAgICAoYXhpc2Jhc2UgYXMgc3RyaW5nKS5jaGFyQXQoaikgOiBjaGFyO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYXhlc1thLm5hbWVdID0gYXhpcztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBhZGRzIHZhbHVlcyB0byBzb3VyY2Uga2V5c1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICogQHBhcmFtIHhBeGlzXHJcbiAgICogQHBhcmFtIHNlcmllc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlKGN1YmU6IHN0cmluZyxcclxuICAgIHhBeGlzOiBzdHJpbmdbXSxcclxuICAgIHNlcmllczogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gT2JzZXJ2YWJsZTxTZXJpZXNbXT4ge1xyXG4gICAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlID0+IHtcclxuICAgICAgc291cmNlLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBjb25zdCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxhbnk+W10gPSBbXTtcclxuICAgICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmN1YmVzLmZpbmQoYyA9PiBjLm5hbWUgPT09IGN1YmUpO1xyXG4gICAgICAgIGNvbnN0IGF4aXNUeXBlTWFwID0ge307XHJcbiAgICAgICAgb3B0aW9ucy5heGVzLmZvckVhY2goeCA9PiBheGlzVHlwZU1hcFt4Lm5hbWVdID0geC5kYXRhVHlwZSk7XHJcbiAgICAgICAgaWYgKCFyLmxlbmd0aCkge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBiYXNlID0gclswXS5wb2ludHM7XHJcbiAgICAgICAgci5mb3JFYWNoKChzLCBpKSA9PiB7XHJcbiAgICAgICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXAueCkgcmV0dXJuO1xyXG4gICAgICAgICAgICBjb25zdCBwb2JzZXJ2YWJsZSA9IGZvcmtKb2luKHAueC5zcGxpdChBWEVTX0NPREVfRElWSURFUikubWFwKChrLCBqKSA9PlxyXG4gICAgICAgICAgICAgIHRoaXMuX3R5cGUuZ2V0KGF4aXNUeXBlTWFwW3hBeGlzW2pdXSwgaykpKS5cclxuICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IHAubmFtZSA9IG8uam9pbihBWEVTX0xBQkVMX0RJVklERVIpKSk7XHJcbiAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2gocG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICBpZiAoaSA+IDApIHtcclxuICAgICAgICAgICAgICBsZXQgaiA9IDAsIG1pc3NpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIHdoaWxlIChqIDwgYmFzZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIGxldCB4ID0gYmFzZVtqXS54O1xyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA9PT0geCkge1xyXG4gICAgICAgICAgICAgICAgICBtaXNzaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHAueCA8IHgpXHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgaisrO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBpZiAobWlzc2luZykge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xvbmUgPSB7IHg6IHAueCwgeTogMCB9IGFzIFBvaW50O1xyXG4gICAgICAgICAgICAgICAgYmFzZS5zcGxpY2UoaiwgMCwgY2xvbmUpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29ic2VydmFibGUgPSBmb3JrSm9pbihwLnguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaikgPT5cclxuICAgICAgICAgICAgICAgICAgdGhpcy5fdHlwZS5nZXQoYXhpc1R5cGVNYXBbeEF4aXNbal1dLCBrKSkpLlxyXG4gICAgICAgICAgICAgICAgICBwaXBlKHRhcChvID0+IGNsb25lLm5hbWUgPSBvLmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChjb2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIGlmIChzLmluZGV4KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gb3B0aW9ucy5pbmRpY2VzLmZpbmQoaSA9PiBpLm5hbWUgPT09IHMuaW5kZXgpO1xyXG4gICAgICAgICAgICBzLnRpdGxlID0gaW5kZXgudGl0bGU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGlmIChzLm5hbWUpIHtcclxuICAgICAgICAgICAgY29uc3Qgc29ic2VydmFibGUgPSBmb3JrSm9pbihzLm5hbWUuc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaSkgPT5cclxuICAgICAgICAgICAgICB0aGlzLl90eXBlLmdldChheGlzVHlwZU1hcFtzZXJpZXNbaV1dLCBrKVxyXG4gICAgICAgICAgICApKS5waXBlKHRhcCh2ID0+IHMudGl0bGUgPSB2LmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHNvYnNlcnZhYmxlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAob2JzZXJ2YWJsZXMubGVuZ3RoKVxyXG4gICAgICAgICAgZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyB2YWx1ZXMgdG8gc291cmNlIGtleXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2RlY29yYXRlVGFibGU8VD4oY3ViZTogc3RyaW5nLCBjb2x1bW5zPzogc3RyaW5nW10pOiAoc291cmNlOiBPYnNlcnZhYmxlPFRbXT4pID0+IE9ic2VydmFibGU8VFtdPiB7XHJcbiAgICBjb25zdCBjY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKSxcclxuICAgICAgYXhlcyA9IGNjdWJlLmF4ZXMuZmlsdGVyKGEgPT4gIWNvbHVtbnMgfHwgY29sdW1ucy5pbmRleE9mKGEubmFtZSkgPiAtMSk7XHJcbiAgICByZXR1cm4gKHNvdXJjZSkgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgci5mb3JFYWNoKHJvdyA9PlxyXG4gICAgICAgICAgYXhlcy5mb3JFYWNoKGEgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG5hbWUsIGRhdGFUeXBlIH0gPSBhLCB2YWx1ZSA9IHJvd1tuYW1lXTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgICAvLyBrZWVwIGtleVxyXG4gICAgICAgICAgICAgIHJvd1snXycgKyBuYW1lXSA9IHZhbHVlO1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLl90eXBlLmdldChkYXRhVHlwZSwgdmFsdWUpLnBpcGUodGFwKHYgPT5cclxuICAgICAgICAgICAgICAgIHJvd1tuYW1lXSA9IHYgfHwgdmFsdWUpKTtcclxuICAgICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKG9ic2VydmFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KSk7XHJcbiAgICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQoW10pO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5jb21wbGV0ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSwgZSA9PiBvYnNlcnZlLmVycm9yKGUpKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb2dyZXNzKHRpbWUgPSAyMDApOiAoc291cmNlOiBPYnNlcnZhYmxlPGFueT4pID0+IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gIHJldHVybiBzb3VyY2UgPT4gc291cmNlLnBpcGUoXHJcbiAgICB0YXAoKSxcclxuICAgIG1hcCgoKSA9PiBmYWxzZSkpXHJcbn1cclxuLyoqIG1vZGVsaXplIGN1YmUgcmVzdWx0cyBhcyBuZXN0ZWQgbWFwcyAqL1xyXG5leHBvcnQgZnVuY3Rpb24gbW9kZWxpemUoKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4pID0+IE9ic2VydmFibGU8e1xyXG4gIFtrZXk6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH07XHJcbn0+IHtcclxuICBjb25zdCBkYXRhID0ge307XHJcbiAgcmV0dXJuIChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBzb3VyY2UucGlwZShtYXAociA9PiB7XHJcbiAgICByLmZvckVhY2gocyA9PiB7XHJcbiAgICAgIGNvbnN0IHJvdyA9IGRhdGFbcy5pbmRleCB8fCBzLm5hbWVdID0ge307XHJcbiAgICAgIHMucG9pbnRzLmZvckVhY2gocCA9PiByb3dbcC54XSA9IHAueSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH0pKTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBFeHBsb3JlVHlwZSB7XHJcbiAgY29sdW1uczogRmllbGRJbmZvW107XHJcbiAgdGVtcGxhdGU/OiBzdHJpbmc7XHJcbiAgZmllbGRzPzogRmllbGRJbmZvW107XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBTZXJpZXMge1xyXG4gIHBvaW50czogUG9pbnRbXTtcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIGluZGV4Pzogc3RyaW5nO1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnQge1xyXG4gIHg6IHN0cmluZztcclxuICB5OiBudW1iZXI7XHJcbiAgbmFtZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbmN5IHsgY29kZTogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH1cclxuXHJcbmV4cG9ydCB0eXBlIFNlZ21lbnRNYXAgPSB7IFtjb2RlOiBzdHJpbmddOiBzdHJpbmcgfTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybiB7IHRpdGxlOiBzdHJpbmc7IGF4ZXM6IEF4ZXNNYXAgfVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGVyclJlc291cmNlKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gIHN3aXRjaCAoZXJyb3Iuc3RhdHVzKSB7XHJcbiAgICBjYXNlIDQwMTpcclxuICAgICAgcmV0dXJuICdVbmF1dGhvcml6ZWQnO1xyXG4gICAgY2FzZSA0MjY6XHJcbiAgICAgIHJldHVybiAnTGljZW5zZUVycic7XHJcbiAgICBjYXNlIDQwNjpcclxuICAgICAgcmV0dXJuICdOb3RBY2NlcHRhYmxlJztcclxuICB9XHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuIl19
418
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3ViZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jdWJlL2N1YmUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdEQsT0FBTyxFQUFnQixhQUFhLEVBQXVCLE1BQU0sdUJBQXVCLENBQUM7QUFJekYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFnQyxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUU1SCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLEVBQUUsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0FBRS9EOzJFQUMyRTtBQUMzRSxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDO0FBQ3RDLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsR0FBRyxFQUFFLGNBQWMsR0FBRyxHQUFHLENBQUM7QUFFdkQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDO0FBRWhELHdFQUF3RTtBQUN4RSxLQUFLO0FBQ0wsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsc0dBQXNHLENBQUM7QUFFekksTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsb0NBQW9DLEVBQUUsc0NBQXNDLEVBQUUsaUNBQWlDLEVBQUUsdUNBQXVDLEVBQUUsOENBQThDLENBQUMsQ0FBQztBQUVyTyxpQkFBaUI7QUFFakIsTUFBTSxPQUFPLFdBQVc7SUFFdEIsT0FBTztJQUNQLFlBQTJDLE9BQXFCLEVBQ3RELEtBQWlCLEVBQ2pCLEtBQXdCLEVBQ3hCLFFBQXdCO1FBSFMsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUN0RCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLGFBQVEsR0FBUixRQUFRLENBQWdCO1FBTGpCLFdBQU0sR0FBd0MsRUFBRSxDQUFDO1FBUTFELGFBQVEsR0FBRyxDQUFJLElBQVksRUFBRSxFQUF1QixFQUFpQixFQUFFLENBQzdFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFIcEUsT0FBTyxJQUFJLE9BQU8sQ0FBQyxZQUFZLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBR0Qsc0JBQXNCO0lBQ3RCLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hCLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztnQkFDdkUsT0FBTyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNoRSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ2QsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdEMsT0FBTyxZQUFZLElBQUksZ0JBQWdCLENBQUM7SUFDMUMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNaLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDaEMsT0FBTyxLQUFLLGNBQWMsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxjQUFjO1FBQ2hCLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxPQUFPLGNBQWMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxJQUFZLEVBQUUsS0FBd0IsRUFDM0MsT0FhQztRQUNELElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUMzQixNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxHQUFHLE9BQU8sRUFBRSxPQUFPLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3JILGlCQUFpQjtRQUNqQixJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQVcsYUFBYSxJQUFJLEVBQUUsRUFBRTtZQUNuRCxLQUFLO1lBQ0wsTUFBTTtZQUNOLE9BQU87WUFDUCxPQUFPO1lBQ1AsS0FBSztZQUNMLFlBQVk7WUFDWixjQUFjO1NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFDM0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsSUFBWSxFQUFFLE9BQWlCLEVBQUUsT0FNdEM7UUFDQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDM0IsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQXNCLG1CQUFtQixJQUFJLEVBQUUsRUFBRTtZQUNwRSxPQUFPO1lBQ1AsT0FBTztZQUNQLE9BQU87WUFDUCxLQUFLO1NBQ04sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILE9BQU8sQ0FBQyxJQUFZLEVBQUUsSUFBaUMsRUFBRSxPQUd4RDtRQUNDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQVMsQ0FBQztRQUNsQyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDekIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQWMseUJBQXlCLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUN0QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFjLDhCQUE4QixJQUFJLElBQUksS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSCxPQUFPLENBQUMsSUFBWSxFQUFFLElBQWlDLEVBQUUsT0FLeEQ7UUFDQyxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFTLENBQUM7UUFDbEMsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUNoQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksS0FBSztnQkFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNqQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ25CLHFCQUFxQixJQUFJLEVBQUUsRUFDM0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQWEsRUFBRSxJQUFZO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsUUFBUTtZQUNSLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM5RCxPQUFPLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUNEOzs7Ozs7T0FNRztJQUNILE9BQU8sQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLElBQWtDLEVBQ3JFLE9BSUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFTLENBQUM7UUFDbEMsSUFBSSxPQUFPLEVBQUU7WUFDWCxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQztZQUNoQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RDLElBQUksS0FBSztnQkFBRSxNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztTQUNqQztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ25CLDBCQUEwQixJQUFJLElBQUksS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRDs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQUMsSUFBWSxFQUFFLElBQWtDLEVBQUUsSUFBMkMsRUFBRSxPQUduRztRQUNDLE1BQU0sTUFBTSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQVMsQ0FBQztRQUNsQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMvQyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7WUFDekIsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztTQUN2QztRQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMseUJBQXlCLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBQ0Q7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxJQUFZLEVBQUUsSUFBa0MsRUFBRSxPQUFvRDtRQUNoSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUNuQixDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxDQUFDO1lBQzVDLHlCQUF5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMscUNBQXFDLElBQUksRUFBRSxFQUFFO1lBQ2pGLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFTO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLElBQVksRUFBRSxJQUFZLEVBQUUsWUFBdUI7UUFDeEQsSUFBSSxPQUFPLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztRQUMxQixZQUFZLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDckUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FDaEQsMkJBQTJCLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLElBQVksRUFBRSxJQUFrQyxFQUFFLE9BSzlEO1FBQ0MsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQzNCLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQWEsMEJBQTBCLElBQUksRUFBRSxFQUFFO1lBQ2xFLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxFQUFFLElBQUksRUFBUztZQUNoQyxPQUFPLEVBQUUsUUFBUSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDN0QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsS0FBYSxFQUFFLE9BQTBCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQXlELGtCQUFrQixFQUFFO1lBQ2hHLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sRUFBUztZQUNwQyxPQUFPLEVBQUUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFO1NBQ25DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRDs7O09BR0c7SUFDSCxRQUFRLENBQUMsSUFBWSxFQUFFLElBQVk7UUFDakMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQWEsc0JBQXNCLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkgsQ0FBQztJQUNEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxJQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFZLHNCQUFzQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUNELHFCQUFxQjtJQUNyQixVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBYSxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsWUFBb0IsRUFBRSxJQUFXO1FBQzVDLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxZQUFZO1lBQ3BDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2YsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3ZCLElBQUksSUFBSTtZQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBUywwQkFBMEIsWUFBWSxFQUFFLEVBQUU7WUFDL0YsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDN0MsT0FBTyxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRTtTQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFDRDs7Ozs7TUFLRTtJQUNLLElBQUksQ0FBQyxJQUFZLEVBQUUsSUFBYSxFQUNyQyxJQUFzQztRQUN0QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNyRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMxQixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pCLElBQUksR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3hELElBQUksR0FBRyxLQUFLLGNBQWM7b0JBQ3hCLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO3FCQUNyQixJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUU7b0JBQ3hDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztvQkFDZCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDekIsSUFBSSxJQUFJLElBQUksS0FBSyxhQUFhLElBQUssUUFBbUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7NEJBQ2hFLFFBQW1CLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7cUJBQ3pDO29CQUNELElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDO2lCQUNyQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0Q7Ozs7O09BS0c7SUFDSyxTQUFTLENBQUMsSUFBWSxFQUM1QixLQUFlLEVBQ2YsTUFBZ0I7UUFDaEIsT0FBTyxDQUFDLE1BQTRCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2hFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ25CLE1BQU0sV0FBVyxHQUFzQixFQUFFLENBQUM7Z0JBQzFDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUN2RSxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzVELElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDbkIsT0FBTztpQkFDUjtnQkFDRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2dCQUN6QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTt3QkFDbkIsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDOzRCQUFFLE9BQU87d0JBQ2pCLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNyRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDMUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDdEQsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzt3QkFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUNULElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsSUFBSSxDQUFDOzRCQUMxQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFO2dDQUN0QixJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUNsQixJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO29DQUNiLE9BQU8sR0FBRyxLQUFLLENBQUM7b0NBQ2hCLE1BQU07aUNBQ1A7Z0NBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7b0NBQ1QsTUFBTTtnQ0FDUixDQUFDLEVBQUUsQ0FBQzs2QkFDTDs0QkFDRCxJQUFJLE9BQU8sRUFBRTtnQ0FDWCxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQVcsQ0FBQztnQ0FDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dDQUN6QixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDckUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQzFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0NBQzFELFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7NkJBQy9CO3lCQUNGO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRTt3QkFDWCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUM1RCxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7cUJBQ3ZCO3lCQUNJLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRTt3QkFDZixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUMxQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQzt3QkFDeEQsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztxQkFDL0I7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsSUFBSSxXQUFXLENBQUMsTUFBTTtvQkFDcEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7d0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN2QjtvQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNEOzs7T0FHRztJQUNLLGNBQWMsQ0FBSSxJQUFZLEVBQUUsT0FBa0I7UUFDeEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQ2xFLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDbkIsTUFBTSxXQUFXLEdBQXNCLEVBQUUsQ0FBQztnQkFDMUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNkLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ2YsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDaEQsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFO3dCQUN2QixXQUFXO3dCQUNYLEdBQUcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDO3dCQUN4QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUM5RCxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUM7d0JBQzNCLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzlCO2dCQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxXQUFXLENBQUMsTUFBTTtvQkFDcEIsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7d0JBQ25DLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7d0JBQ2hCLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDckIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUN2QjtvQkFDSCxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNqQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7d0dBeFpVLFdBQVcsa0JBR0YsYUFBYTs0R0FIdEIsV0FBVyxjQURFLE1BQU07MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFJbkIsTUFBTTsyQkFBQyxhQUFhOztBQXdabkMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxJQUFJLEdBQUcsR0FBRztJQUNqQyxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDMUIsR0FBRyxFQUFFLEVBQ0wsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFDckIsQ0FBQztBQUNELDJDQUEyQztBQUMzQyxNQUFNLFVBQVUsUUFBUTtJQUd0QixNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7SUFDaEIsT0FBTyxDQUFDLE1BQTRCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNELENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBd0JELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBd0I7SUFDbEQsUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFO1FBQ3BCLEtBQUssR0FBRztZQUNOLE9BQU8sY0FBYyxDQUFDO1FBQ3hCLEtBQUssR0FBRztZQUNOLE9BQU8sWUFBWSxDQUFDO1FBQ3RCLEtBQUssR0FBRztZQUNOLE9BQU8sZUFBZSxDQUFDO0tBQzFCO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgc2hhcmVSZXBsYXksIHRhcCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBzZXRDdXJyZW5jeUNvZGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYmFzZSc7XHJcbmltcG9ydCB7IGlzQXJyYXksIGlzU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIFBhcmFtTWFwLCBTY29wZVR5cGUgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBGaWVsZEluZm8sIEF4aXNUeXBlLCBBeGVzTWFwIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YXNvdXJjZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2RhdGFzb3VyY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IGdldEN1cnJlbmN5U3ltYm9sLCBnZXRMb2NhbGVOdW1iZXJGb3JtYXQsIE51bWJlckZvcm1hdFN0eWxlLCBmb3JtYXRDdXJyZW5jeSwgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjb25zdCBBQ0NPVU5UX0RFTElNSVRFUiA9ICcuJywgREVGQVVMVF9DVVJSRU5DWSA9ICdVU0QnO1xyXG5cclxuLyoqIGluIGNhc2UgeEF4aXMgb3Igc2VyaWVzIGlzIGdpdmVuIG1vcmUgdGhhbiBvbmUgYXhpcyxcclxuICogdGhlIHZhbHVlIHJldHVybmVkIGlzIGNvbWJpbmVkIG9mIHZhbHVlcyBzZXBlcmF0ZWQgYnkgdGhpcyBjaGFyYWN0ZXIuICovXHJcbmV4cG9ydCBjb25zdCBBWEVTX0NPREVfRElWSURFUiA9ICdfXyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVhFU19MQUJFTF9ESVZJREVSID0gJy0nO1xyXG4vKiogcmVwcmVzZW50cyBhIHBsYWNlIGluIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWQgYnkgYmFzZSBheGlzLiAqL1xyXG5leHBvcnQgY29uc3QgQVhJU19NQVBfQ0hBUiA9ICcjJywgQVhJU19NQVBfQVNfSVMgPSAnKic7XHJcblxyXG5leHBvcnQgY29uc3QgQVhJU19TUEVDSUFMX0NIQVJTID0gL1tcXC47I1xcLSxcXCFdLztcclxuXHJcbi8qKiBhbGxvd2VkIGNoYXJhY3RlcnMgZm9yIGF4aXMgdmFsdWUgLyBjb2xsZWN0aW9uIC8gcmFuZ2UgLyBwYXR0ZXJuLiAqL1xyXG4vL1xccExcclxuZXhwb3J0IGNvbnN0IEFYSVNfVkFMVUVfUEFUVEVSTiA9IC9eKCghP1xcdysoXFwsXFx3KykqKXwoIT9cXHcrXFwtXFx3Kyl8KCE/W1xcd1xcLlxcKlxcI10rKSkoWztdKCghP1xcdysoXFwsXFx3KykqKXwoIT9cXHcrXFwtXFx3Kyl8KCE/W1xcd1xcLlxcKlxcI10rKSkpKiQvO1xyXG5cclxuZXhwb3J0IGNvbnN0IENMRFJfRklMRVMgPSBbJ2NsZHItZGF0YS9tYWluL3swfS9jdXJyZW5jaWVzLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L2NhLWdyZWdvcmlhbi5qc29uJywgJ2NsZHItZGF0YS9tYWluL3swfS9udW1iZXJzLmpzb24nLCAnY2xkci1kYXRhL21haW4vezB9L3RpbWVab25lTmFtZXMuanNvbicsICdjbGRyLWRhdGEvc3VwcGxlbWVudGFsL251bWJlcmluZ1N5c3RlbXMuanNvbiddO1xyXG5cclxuLyoqIHF1ZXJ5IGN1YmUgKi9cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEN1YmVTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9jYWNoZTogeyBbbmFtZTogc3RyaW5nXTogT2JzZXJ2YWJsZTxhbnk+IH0gPSB7fTtcclxuICAvLyBjdG9yXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZyxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF90eXBlOiBEYXRhc291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlKSB7XHJcbiAgICBfY29uZmlnICYmIF9jb25maWcuY3VycmVuY3lDb2RlICYmIHNldEN1cnJlbmN5Q29kZShfY29uZmlnLmN1cnJlbmN5Q29kZSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhY2hlT3IgPSA8VD4obmFtZTogc3RyaW5nLCBmbjogKCkgPT4gT2JzZXJ2YWJsZTxUPik6IE9ic2VydmFibGU8VD4gPT5cclxuICAgIHRoaXMuX2NhY2hlW25hbWVdIHx8ICh0aGlzLl9jYWNoZVtuYW1lXSA9IGZuKCkucGlwZShzaGFyZVJlcGxheSgpKSk7XHJcbiAgLyoqIHN5c3RlbSBjdXJyZW5jeSAqL1xyXG4gIGdldCBudW1iZXJGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbmN5Q29kZSA/XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5DdXJyZW5jeSkuXHJcbiAgICAgICAgcmVwbGFjZSgnwqQnLCBnZXRDdXJyZW5jeVN5bWJvbCh0aGlzLmN1cnJlbmN5Q29kZSwgJ25hcnJvdycpKSA6XHJcbiAgICAgIGdldExvY2FsZU51bWJlckZvcm1hdCh0aGlzLl9zZXNzaW9uLmxhbmd1YWdlLCBOdW1iZXJGb3JtYXRTdHlsZS5EZWNpbWFsKTtcclxuICB9XHJcbiAgZ2V0IGN1cnJlbmN5Q29kZSgpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgeyBjdXJyZW5jeUNvZGUgfSA9IHRoaXMuX2NvbmZpZztcclxuICAgIHJldHVybiBjdXJyZW5jeUNvZGUgfHwgREVGQVVMVF9DVVJSRU5DWTtcclxuICB9XHJcbiAgZ2V0IGRpZ2l0c0luZm8oKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHsgZnJhY3Rpb25EaWdpdHMgfSA9IHRoaXM7XHJcbiAgICByZXR1cm4gYDEuJHtmcmFjdGlvbkRpZ2l0c30tJHtmcmFjdGlvbkRpZ2l0c31gO1xyXG4gIH1cclxuICBnZXQgZnJhY3Rpb25EaWdpdHMoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IHsgZm9ybWF0cyB9ID0gdGhpcy5fY29uZmlnLCB7IGZyYWN0aW9uRGlnaXRzIH0gPSBmb3JtYXRzIHx8IHt9O1xyXG4gICAgcmV0dXJuIGZyYWN0aW9uRGlnaXRzICE9PSB1bmRlZmluZWQgPyBmcmFjdGlvbkRpZ2l0cyA6IDI7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIHF1ZXJ5IGN1YmUgYnkgYXhlcywgc2VyaWVzIGFuZCBpbmRpY2VzXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSB4QXhpcyBncm91cCBieSBvbmUgb3IgbW9yZSBheGlzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBzZXJpZXMoY3ViZTogc3RyaW5nLCB4QXhpczogc3RyaW5nIHwgc3RyaW5nW10sXHJcbiAgICBvcHRpb25zPzoge1xyXG4gICAgICAvKiogZ3JvdXAgc2VyaWVzIGJ5IG9uZSBvciBtb3JlIGF4aXMgKi9cclxuICAgICAgc2VyaWVzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIC8qKiBpbmNsdWRlIG9uZSBvciBtb3JlIGluZGV4IHNlcmllcyAqL1xyXG4gICAgICBpbmRpY2VzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIGdyb3VwSW5kaWNlcz86IGJvb2xlYW4sXHJcbiAgICAgIC8vaW5kZXhCeT86ICdncm91cCcgfCAnaW52ZXJzZScsXHJcbiAgICAgIGludmVyc2VJbmRpY2VzPzogYm9vbGVhbixcclxuICAgICAgLyoqIGF4ZXMgKi9cclxuICAgICAgZmlsdGVycz86IHsgW2F4aXM6IHN0cmluZ106IEF4aXNUeXBlIH07XHJcbiAgICAgIHNjb3BlPzogU2NvcGVUeXBlLFxyXG4gICAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICAgIH0pOiBPYnNlcnZhYmxlPFNlcmllc1tdPiB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcclxuICAgIGNvbnN0IHsgZmlsdGVyczogYXhlcywgc2VyaWVzLCBpbmRpY2VzLCBiYXNlLCBzY29wZSwgZ3JvdXBJbmRpY2VzLCBpbnZlcnNlSW5kaWNlcyB9ID0gb3B0aW9ucywgZmlsdGVycyA9IHsgLi4uYXhlcyB9O1xyXG4gICAgLy8gbm9ybWFsaXplIGFyZ3NcclxuICAgIGJhc2UgJiYgdGhpcy5iYXNlKGN1YmUsIGZpbHRlcnMsIGJhc2UpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFNlcmllc1tdPihgL2FwaS9jdWJlLyR7Y3ViZX1gLCB7XHJcbiAgICAgIHhBeGlzLFxyXG4gICAgICBzZXJpZXMsXHJcbiAgICAgIGluZGljZXMsXHJcbiAgICAgIGZpbHRlcnMsXHJcbiAgICAgIHNjb3BlLFxyXG4gICAgICBncm91cEluZGljZXMsXHJcbiAgICAgIGludmVyc2VJbmRpY2VzXHJcbiAgICB9KS5waXBlKHRoaXMuX2RlY29yYXRlKGN1YmUsIGlzQXJyYXkoeEF4aXMpID8geEF4aXMgOiBbeEF4aXNdLFxyXG4gICAgICBzZXJpZXMgPyBpc0FycmF5KHNlcmllcykgPyBzZXJpZXMgOiBbc2VyaWVzXSA6IG51bGwpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWdncmVnYXRlIGN1YmUgdG8gZmxhdCBjb2xsZWN0aW9uIG9mIGNvbHVtbnMgYW5kIHZhbHVlKHMpXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBjb2x1bW5zXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICB0YWJsZShjdWJlOiBzdHJpbmcsIGNvbHVtbnM6IHN0cmluZ1tdLCBvcHRpb25zPzoge1xyXG4gICAgLyoqIGF4ZXMgKi9cclxuICAgIGZpbHRlcnM/OiBBeGVzTWFwO1xyXG4gICAgLyoqIGluY2x1ZGUgb25lIG9yIG1vcmUgaW5kZXggdmFsdWVzICovXHJcbiAgICBpbmRpY2VzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICBzY29wZT86IFNjb3BlVHlwZSxcclxuICB9KTogT2JzZXJ2YWJsZTx7IHZhbHVlOiBudW1iZXIgfVtdPiB7XHJcbiAgICBpZiAoIW9wdGlvbnMpIG9wdGlvbnMgPSB7fTtcclxuICAgIGNvbnN0IHsgZmlsdGVycywgaW5kaWNlcywgc2NvcGUgfSA9IG9wdGlvbnM7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8eyB2YWx1ZTogbnVtYmVyIH1bXT4oYC9hcGkvY3ViZS90YWJsZS8ke2N1YmV9YCwge1xyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgICBpbmRpY2VzLFxyXG4gICAgICBmaWx0ZXJzLFxyXG4gICAgICBzY29wZVxyXG4gICAgfSkucGlwZSh0aGlzLl9kZWNvcmF0ZVRhYmxlKGN1YmUsIGNvbHVtbnMpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogaW5mb3JtYXRpb24gb24gZXhwZWN0ZWQgZXhwbG9yZSB0eXBlXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIHJlc29sdmUoY3ViZTogc3RyaW5nLCBheGVzOiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7XHJcbiAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICBiYXNlPzogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbiAgfSk6IE9ic2VydmFibGU8RXhwbG9yZVR5cGU+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4uYXhlcyB9IGFzIGFueTtcclxuICAgIGlmIChvcHRpb25zKSB7XHJcbiAgICAgIGNvbnN0IHsgYmFzZSB9ID0gb3B0aW9ucztcclxuICAgICAgYmFzZSAmJiB0aGlzLmJhc2UoY3ViZSwgcGFyYW1zLCBiYXNlKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxFeHBsb3JlVHlwZT4oYC9hcGkvY3ViZS9leHBsb3JldHlwZS8ke2N1YmV9YCwgeyBwYXJhbXMgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGluZm9ybWF0aW9uIG9uIGV4cGVjdGVkIGV4cGxvcmUgdHlwZVxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gaW5kZXggbmFtZVxyXG4gICAqL1xyXG4gIHJlc29sdmVJbmRleChjdWJlOiBzdHJpbmcsIGluZGV4OiBzdHJpbmcpOiBPYnNlcnZhYmxlPEV4cGxvcmVUeXBlPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8RXhwbG9yZVR5cGU+KGAvYXBpL2N1YmUvZXhwbG9yZWluZGV4dHlwZS8ke2N1YmV9LyR7aW5kZXh9YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGV4cGxvcmUgaXRlbXMgYnkgYXhpc1xyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBleHBsb3JlKGN1YmU6IHN0cmluZywgYXhlczogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzoge1xyXG4gICAgLyoqIHJlc3RyaWN0IHJlc3VsdHMgdG8gdXNlciBwYXR0ZXJucyBvciBwb3NpdGlvbnMgKi9cclxuICAgIHNjb3BlPzogU2NvcGVUeXBlLFxyXG4gICAgLyoqIHJlcGxhY2UgYmFzZSAqL1xyXG4gICAgYmFzZT86IHsgW2F4aXM6IHN0cmluZ106IChzdHJpbmcgfCBudW1iZXIpIH0gfCBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIH0pOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UsIHNjb3BlIH0gPSBvcHRpb25zO1xyXG4gICAgICBiYXNlICYmIHRoaXMuYmFzZShjdWJlLCBwYXJhbXMsIGJhc2UpO1xyXG4gICAgICBpZiAoc2NvcGUpIHBhcmFtcy5zY29wZSA9IHNjb3BlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PGFueVtdPihcclxuICAgICAgYC9hcGkvY3ViZS9leHBsb3JlLyR7Y3ViZX1gLFxyXG4gICAgICB7IHBhcmFtcyB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGF4ZXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIG5hbWVPZihheGVzOiBBeGVzTWFwLCBjdWJlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gY3ViZSk7XHJcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IG9wdGlvbnMuYXhlcy5maWx0ZXIoYSA9PiBpc1N0cmluZyhheGVzW2EubmFtZV0pICYmXHJcbiAgICAgIC8vIHZhbHVlXHJcbiAgICAgICFBWElTX1NQRUNJQUxfQ0hBUlMudGVzdChheGVzW2EubmFtZV0gYXMgc3RyaW5nKSkubWFwKGEgPT5cclxuICAgICAgICB0aGlzLl90eXBlLmdldChhLmRhdGFUeXBlLCBheGVzW2EubmFtZV0gYXMgc3RyaW5nKSB8fCAnJyk7XHJcbiAgICByZXR1cm4gKG9ic2VydmFibGVzLmxlbmd0aCA/IGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKG1hcChvID0+IG8uam9pbignICcpKSkgOiBvZignJykpO1xyXG4gIH0gXHJcbiAgLyoqXHJcbiAgICogZXhwbG9yZSBpbmRpY2VzIGJ5IGF4aXNcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGluZGV4IG5hbWVcclxuICAgKiBAcGFyYW0gYXhlcyBmaWx0ZXJzXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpbmRpY2VzKGN1YmU6IHN0cmluZywgaW5kZXg6IHN0cmluZywgYXhlczogeyBbYXhpczogc3RyaW5nXTogQXhpc1R5cGUgfSxcclxuICAgIG9wdGlvbnM/OiB7XHJcbiAgICAgIC8qKiByZXN0cmljdCByZXN1bHRzIHRvIHVzZXIgcGF0dGVybnMgb3IgcG9zaXRpb25zICovXHJcbiAgICAgIHNjb3BlPzogU2NvcGVUeXBlXHJcbiAgICAgIGJhc2U/OiB7IFtheGlzOiBzdHJpbmddOiAoc3RyaW5nIHwgbnVtYmVyKSB9IHwgQXJyYXk8c3RyaW5nIHwgbnVtYmVyPjtcclxuICAgIH0pOiBPYnNlcnZhYmxlPGFueVtdPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBpZiAob3B0aW9ucykge1xyXG4gICAgICBjb25zdCB7IGJhc2UsIHNjb3BlIH0gPSBvcHRpb25zO1xyXG4gICAgICBiYXNlICYmIHRoaXMuYmFzZShjdWJlLCBwYXJhbXMsIGJhc2UpO1xyXG4gICAgICBpZiAoc2NvcGUpIHBhcmFtcy5zY29wZSA9IHNjb3BlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PGFueVtdPihcclxuICAgICAgYC9hcGkvY3ViZS9leHBsb3JlaW5kZXgvJHtjdWJlfS8ke2luZGV4fWAsIHsgcGFyYW1zIH0pLlxyXG4gICAgICBwaXBlKHRoaXMuX2RlY29yYXRlVGFibGUoY3ViZSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgZXhwbG9yZSBpdGVtIGJ5IGF4aXMgYW5kIGtleShzKVxyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICogQHBhcmFtIGF4ZXNcclxuICAgKiBAcGFyYW0ga2V5c1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgaXRlbShjdWJlOiBzdHJpbmcsIGF4ZXM6IHsgW2F4aXM6IHN0cmluZ106IEF4aXNUeXBlIH0sIGtleXM6IChzdHJpbmcgfCBudW1iZXIpW10gfCBzdHJpbmcgfCBudW1iZXIsIG9wdGlvbnM/OiB7XHJcbiAgICAvKiogcmVwbGFjZSBiYXNlICovXHJcbiAgICBiYXNlPzogeyBbYXhpczogc3RyaW5nXTogKHN0cmluZyB8IG51bWJlcikgfSB8IEFycmF5PHN0cmluZyB8IG51bWJlcj47XHJcbiAgfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB7IC4uLmF4ZXMgfSBhcyBhbnk7XHJcbiAgICBwYXJhbXNbJ2tleSddID0gaXNBcnJheShrZXlzKSA/IGtleXNbMF0gOiBrZXlzO1xyXG4gICAgaWYgKG9wdGlvbnMpIHtcclxuICAgICAgY29uc3QgeyBiYXNlIH0gPSBvcHRpb25zO1xyXG4gICAgICBiYXNlICYmIHRoaXMuYmFzZShjdWJlLCBwYXJhbXMsIGJhc2UpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0KGAvYXBpL2N1YmUvZXhwbG9yZWl0ZW0vJHtjdWJlfWAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gY3ViZSBuYW1lXHJcbiAgICogQHBhcmFtIGF4ZXMgY29uZGl0aW9uXHJcbiAgICovXHJcbiAgY29uc3RyYWludHMoY3ViZTogc3RyaW5nLCBheGVzPzogeyBba2V5OiBzdHJpbmddOiBBeGlzVHlwZSB9LCBvcHRpb25zPzogeyBzb3VyY2U6ICdjb25zdHJhaW50cycgfCAnY29tYmluYXRpb25zJyB9KTogT2JzZXJ2YWJsZTx7IFtkYXRhVHlwZTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8eyBbZGF0YVR5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfT4oXHJcbiAgICAgICFvcHRpb25zIHx8IG9wdGlvbnMuc291cmNlID09PSAnY29uc3RyYWludHMnID9cclxuICAgICAgICBgL2FwaS9jdWJlL2NvbnN0cmFpbnRzLyR7Y3ViZX1gIDogYC9hcGkvY3ViZS9jb21iaW5hdGlvbnNjb25zdHJhaW50cy8ke2N1YmV9YCwge1xyXG4gICAgICBwYXJhbXM6IHsgLi4uYXhlcyB9IGFzIGFueVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBjdWJlIG5hbWVcclxuICAgKiBAcGFyYW0gYXhpcyBuYW1lXHJcbiAgICovXHJcbiAgdmFsdWVzKGN1YmU6IHN0cmluZywgYXhpczogc3RyaW5nLCBkZXBlbmRlbmNpZXM/OiBQYXJhbU1hcCk6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4ge1xyXG4gICAgbGV0IGNhY2hlSWQgPSBjdWJlICsgYXhpcztcclxuICAgIGRlcGVuZGVuY2llcyAmJiBPYmplY3Qua2V5cyhkZXBlbmRlbmNpZXMpLmZvckVhY2goayA9PiBjYWNoZUlkICs9IGspO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3IoY2FjaGVJZCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8eyBbZGF0YVR5cGU6IHN0cmluZ106IHsgW2tleTogc3RyaW5nXTogYW55IH0gfT4oXHJcbiAgICAgIGAvYXBpL2N1YmUvc2VnbWVudHZhbHVlcy8ke2N1YmV9LyR7YXhpc31gLCB7IHBhcmFtczogZGVwZW5kZW5jaWVzIH0pKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IGF4aXMgY29tYmluYXRpb25zXHJcbiAgICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICAqIEBwYXJhbSBheGVzIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGNvbWJpbmF0aW9ucyhjdWJlOiBzdHJpbmcsIGF4ZXM/OiB7IFtrZXk6IHN0cmluZ106IEF4aXNUeXBlIH0sIG9wdGlvbnM/OiB7XHJcbiAgICAvKiogdG9wICovXHJcbiAgICB0YWtlPzogbnVtYmVyO1xyXG4gICAgLyoqIHByb2Nlc3MgaW4gYmFja2dyb3VuZCAqL1xyXG4gICAgcHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gIH0pOiBPYnNlcnZhYmxlPHN0cmluZ1tdW10+IHtcclxuICAgIGlmICghb3B0aW9ucykgb3B0aW9ucyA9IHt9O1xyXG4gICAgY29uc3QgeyB0YWtlLCBwcm9ncmVzcyB9ID0gb3B0aW9ucztcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxzdHJpbmdbXVtdPihgL2FwaS9jdWJlL2NvbWJpbmF0aW9ucy8ke2N1YmV9YCwge1xyXG4gICAgICBwYXJhbXM6IHsgLi4uYXhlcywgdGFrZSB9IGFzIGFueSxcclxuICAgICAgaGVhZGVyczogcHJvZ3Jlc3MgPT09IGZhbHNlID8geyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSA6IHt9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHZhbHVlXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBzZWFyY2godmFsdWU6IHN0cmluZywgb3B0aW9uczogeyB0YWtlPzogbnVtYmVyIH0pIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDx7IGN1YmU6IHN0cmluZywgYXhpczogc3RyaW5nLCBrZXk6IGFueSwgdmFsdWU6IGFueSB9W10+KCcvYXBpL2N1YmUvc2VhcmNoJywge1xyXG4gICAgICBwYXJhbXM6IHsgdmFsdWUsIC4uLm9wdGlvbnMgfSBhcyBhbnksXHJcbiAgICAgIGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgc2VnbWVudHNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqL1xyXG4gIHNlZ21lbnRzKGN1YmU6IHN0cmluZywgbmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWdtZW50TWFwPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcihgJHtuYW1lfS1zZWdtZW50c2AsICgpID0+IHRoaXMuX2h0dHAuZ2V0PFNlZ21lbnRNYXA+KGAvYXBpL2N1YmUvc2VnbWVudHMvJHtjdWJlfS8ke25hbWV9YCkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBnZXQgdXNlciBwYXR0ZXJuc1xyXG4gICAqIEBwYXJhbSBjdWJlXHJcbiAgICovXHJcbiAgcGF0dGVybnMoY3ViZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQYXR0ZXJuW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9jYWNoZU9yKGAke2N1YmV9LXBhdHRlcm5zYCwgKCkgPT4gdGhpcy5faHR0cC5nZXQ8UGF0dGVybltdPihgL2FwaS9jdWJlL3BhdHRlcm5zLyR7Y3ViZX1gKSk7XHJcbiAgfVxyXG4gIC8qKiBnZXQgY3VycmVuY2llcyAqL1xyXG4gIGN1cnJlbmNpZXMoKTogT2JzZXJ2YWJsZTxDdXJyZW5jeVtdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FjaGVPcignY3VycmVuY2llcycsICgpID0+IHRoaXMuX2h0dHAuZ2V0PEN1cnJlbmN5W10+KCcvYXBpL2N1YmUvY3VycmVuY2llcycpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogZ2V0IGV4Y2hhbmdlIHJhdGVcclxuICAgKiBAcGFyYW0gY3VycmVuY3lDb2RlXHJcbiAgICogQHBhcmFtIGRhdGVcclxuICAgKi9cclxuICBleGNoYW5nZVJhdGUoY3VycmVuY3lDb2RlOiBzdHJpbmcsIGRhdGU/OiBEYXRlKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGlmICh0aGlzLmN1cnJlbmN5Q29kZSA9PT0gY3VycmVuY3lDb2RlKVxyXG4gICAgICByZXR1cm4gb2YoMSk7XHJcbiAgICBsZXQga2V5ID0gY3VycmVuY3lDb2RlO1xyXG4gICAgaWYgKGRhdGUpIGtleSArPSBkYXRlLnRvSlNPTigpO1xyXG4gICAgcmV0dXJuIHRoaXMuX2NhY2hlT3Ioa2V5LCAoKSA9PiB0aGlzLl9odHRwLmdldDxudW1iZXI+KGAvYXBpL2N1YmUvZXhjaGFuZ2VSYXRlLyR7Y3VycmVuY3lDb2RlfWAsIHtcclxuICAgICAgcGFyYW1zOiBkYXRlID8geyBkYXRlOiBkYXRlLnRvSlNPTigpIH0gOiBudWxsLFxyXG4gICAgICBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9XHJcbiAgICB9KSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICogcmVwbGFjZXMgKiBvciAjIHdpdGggb3JpZ2luIGF4aXMgYXQgY2hhciBwbGFjZVxyXG4gICogQHBhcmFtIGN1YmUgbmFtZVxyXG4gICogQHBhcmFtIGF4ZXMgbWFwXHJcbiAgKiBAcGFyYW0gYmFzZSBvcmlnaW5cclxuICAqL1xyXG4gIHB1YmxpYyBiYXNlKGN1YmU6IHN0cmluZywgYXhlczogQXhlc01hcCxcclxuICAgIGJhc2U6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBBeGVzTWFwKTogdm9pZCB7XHJcbiAgICBjb25zdCBjY3ViZSA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgIGNjdWJlLmF4ZXMuZm9yRWFjaCgoYSwgaSkgPT4ge1xyXG4gICAgICBjb25zdCB2YWwgPSBheGVzW2EubmFtZV07XHJcbiAgICAgIGlmICh2YWwgJiYgaXNTdHJpbmcodmFsKSkge1xyXG4gICAgICAgIGNvbnN0IGF4aXNiYXNlID0gaXNBcnJheShiYXNlKSA/IGJhc2VbaV0gOiBiYXNlW2EubmFtZV07XHJcbiAgICAgICAgaWYgKHZhbCA9PT0gQVhJU19NQVBfQVNfSVMpXHJcbiAgICAgICAgICBheGVzW2EubmFtZV0gPSBheGlzYmFzZTtcclxuICAgICAgICBlbHNlIGlmICh2YWwuaW5kZXhPZihBWElTX01BUF9DSEFSKSA+IC0xKSB7XHJcbiAgICAgICAgICBsZXQgYXhpcyA9ICcnO1xyXG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB2YWwubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgbGV0IGNoYXIgPSB2YWwuY2hhckF0KGopO1xyXG4gICAgICAgICAgICBheGlzICs9IGNoYXIgPT09IEFYSVNfTUFQX0NIQVIgJiYgKGF4aXNiYXNlIGFzIHN0cmluZykubGVuZ3RoID4gaiA/XHJcbiAgICAgICAgICAgICAgKGF4aXNiYXNlIGFzIHN0cmluZykuY2hhckF0KGopIDogY2hhcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGF4ZXNbYS5uYW1lXSA9IGF4aXM7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogYWRkcyB2YWx1ZXMgdG8gc291cmNlIGtleXNcclxuICAgKiBAcGFyYW0gY3ViZVxyXG4gICAqIEBwYXJhbSB4QXhpc1xyXG4gICAqIEBwYXJhbSBzZXJpZXNcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZShjdWJlOiBzdHJpbmcsXHJcbiAgICB4QXhpczogc3RyaW5nW10sXHJcbiAgICBzZXJpZXM6IHN0cmluZ1tdKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxTZXJpZXNbXT4pID0+IE9ic2VydmFibGU8U2VyaWVzW10+IHtcclxuICAgIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHNvdXJjZS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8YW55PltdID0gW107XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5jdWJlcy5maW5kKGMgPT4gYy5uYW1lID09PSBjdWJlKTtcclxuICAgICAgICBjb25zdCBheGlzVHlwZU1hcCA9IHt9O1xyXG4gICAgICAgIG9wdGlvbnMuYXhlcy5mb3JFYWNoKHggPT4gYXhpc1R5cGVNYXBbeC5uYW1lXSA9IHguZGF0YVR5cGUpO1xyXG4gICAgICAgIGlmICghci5sZW5ndGgpIHtcclxuICAgICAgICAgIG9ic2VydmUubmV4dChyKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgYmFzZSA9IHJbMF0ucG9pbnRzO1xyXG4gICAgICAgIHIuZm9yRWFjaCgocywgaSkgPT4ge1xyXG4gICAgICAgICAgcy5wb2ludHMuZm9yRWFjaChwID0+IHtcclxuICAgICAgICAgICAgaWYgKCFwLngpIHJldHVybjtcclxuICAgICAgICAgICAgY29uc3QgcG9ic2VydmFibGUgPSBmb3JrSm9pbihwLnguc3BsaXQoQVhFU19DT0RFX0RJVklERVIpLm1hcCgoaywgaikgPT5cclxuICAgICAgICAgICAgICB0aGlzLl90eXBlLmdldChheGlzVHlwZU1hcFt4QXhpc1tqXV0sIGspKSkuXHJcbiAgICAgICAgICAgICAgcGlwZSh0YXAobyA9PiBwLm5hbWUgPSBvLmpvaW4oQVhFU19MQUJFTF9ESVZJREVSKSkpO1xyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHBvYnNlcnZhYmxlKTtcclxuICAgICAgICAgICAgaWYgKGkgPiAwKSB7XHJcbiAgICAgICAgICAgICAgbGV0IGogPSAwLCBtaXNzaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB3aGlsZSAoaiA8IGJhc2UubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgeCA9IGJhc2Vbal0ueDtcclxuICAgICAgICAgICAgICAgIGlmIChwLnggPT09IHgpIHtcclxuICAgICAgICAgICAgICAgICAgbWlzc2luZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChwLnggPCB4KVxyXG4gICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGorKztcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKG1pc3NpbmcpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNsb25lID0geyB4OiBwLngsIHk6IDAgfSBhcyBQb2ludDtcclxuICAgICAgICAgICAgICAgIGJhc2Uuc3BsaWNlKGosIDAsIGNsb25lKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGNvYnNlcnZhYmxlID0gZm9ya0pvaW4ocC54LnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKS5tYXAoKGssIGopID0+XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuX3R5cGUuZ2V0KGF4aXNUeXBlTWFwW3hBeGlzW2pdXSwgaykpKS5cclxuICAgICAgICAgICAgICAgICAgcGlwZSh0YXAobyA9PiBjbG9uZS5uYW1lID0gby5qb2luKEFYRVNfTEFCRUxfRElWSURFUikpKTtcclxuICAgICAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2goY29ic2VydmFibGUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICBpZiAocy5pbmRleCkge1xyXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IG9wdGlvbnMuaW5kaWNlcy5maW5kKGkgPT4gaS5uYW1lID09PSBzLmluZGV4KTtcclxuICAgICAgICAgICAgcy50aXRsZSA9IGluZGV4LnRpdGxlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBpZiAocy5uYW1lKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNvYnNlcnZhYmxlID0gZm9ya0pvaW4ocy5uYW1lLnNwbGl0KEFYRVNfQ09ERV9ESVZJREVSKS5tYXAoKGssIGkpID0+XHJcbiAgICAgICAgICAgICAgdGhpcy5fdHlwZS5nZXQoYXhpc1R5cGVNYXBbc2VyaWVzW2ldXSwgaylcclxuICAgICAgICAgICAgKSkucGlwZSh0YXAodiA9PiBzLnRpdGxlID0gdi5qb2luKEFYRVNfTEFCRUxfRElWSURFUikpKTtcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChzb2JzZXJ2YWJsZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKG9ic2VydmFibGVzLmxlbmd0aClcclxuICAgICAgICAgIGZvcmtKb2luKG9ic2VydmFibGVzKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBvYnNlcnZlLm5leHQocik7XHJcbiAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCBlID0+IG9ic2VydmUuZXJyb3IoZSkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIGFkZHMgdmFsdWVzIHRvIHNvdXJjZSBrZXlzXHJcbiAgICogQHBhcmFtIGN1YmVcclxuICAgKi9cclxuICBwcml2YXRlIF9kZWNvcmF0ZVRhYmxlPFQ+KGN1YmU6IHN0cmluZywgY29sdW1ucz86IHN0cmluZ1tdKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxUW10+KSA9PiBPYnNlcnZhYmxlPFRbXT4ge1xyXG4gICAgY29uc3QgY2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gY3ViZSksXHJcbiAgICAgIGF4ZXMgPSBjY3ViZS5heGVzLmZpbHRlcihhID0+ICFjb2x1bW5zIHx8IGNvbHVtbnMuaW5kZXhPZihhLm5hbWUpID4gLTEpO1xyXG4gICAgcmV0dXJuIChzb3VyY2UpID0+IG5ldyBPYnNlcnZhYmxlKG9ic2VydmUgPT4ge1xyXG4gICAgICBzb3VyY2Uuc3Vic2NyaWJlKHIgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGFueT5bXSA9IFtdO1xyXG4gICAgICAgIHIuZm9yRWFjaChyb3cgPT5cclxuICAgICAgICAgIGF4ZXMuZm9yRWFjaChhID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBuYW1lLCBkYXRhVHlwZSB9ID0gYSwgdmFsdWUgPSByb3dbbmFtZV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgICAgICAgLy8ga2VlcCBrZXlcclxuICAgICAgICAgICAgICByb3dbJ18nICsgbmFtZV0gPSB2YWx1ZTtcclxuICAgICAgICAgICAgICBjb25zdCBvYnNlcnZhYmxlID0gdGhpcy5fdHlwZS5nZXQoZGF0YVR5cGUsIHZhbHVlKS5waXBlKHRhcCh2ID0+XHJcbiAgICAgICAgICAgICAgICByb3dbbmFtZV0gPSB2IHx8IHZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaChvYnNlcnZhYmxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIGlmIChvYnNlcnZhYmxlcy5sZW5ndGgpXHJcbiAgICAgICAgICBmb3JrSm9pbihvYnNlcnZhYmxlcykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KHIpO1xyXG4gICAgICAgICAgICBvYnNlcnZlLmNvbXBsZXRlKCk7XHJcbiAgICAgICAgICB9LCBlID0+IG9ic2VydmUuZXJyb3IoZSkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KFtdKTtcclxuICAgICAgICAgIG9ic2VydmUuY29tcGxldGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sIGUgPT4gb2JzZXJ2ZS5lcnJvcihlKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm9ncmVzcyh0aW1lID0gMjAwKTogKHNvdXJjZTogT2JzZXJ2YWJsZTxhbnk+KSA9PiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICByZXR1cm4gc291cmNlID0+IHNvdXJjZS5waXBlKFxyXG4gICAgdGFwKCksXHJcbiAgICBtYXAoKCkgPT4gZmFsc2UpKVxyXG59XHJcbi8qKiBtb2RlbGl6ZSBjdWJlIHJlc3VsdHMgYXMgbmVzdGVkIG1hcHMgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1vZGVsaXplKCk6IChzb3VyY2U6IE9ic2VydmFibGU8U2VyaWVzW10+KSA9PiBPYnNlcnZhYmxlPHtcclxuICBba2V5OiBzdHJpbmddOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xyXG59PiB7XHJcbiAgY29uc3QgZGF0YSA9IHt9O1xyXG4gIHJldHVybiAoc291cmNlOiBPYnNlcnZhYmxlPFNlcmllc1tdPikgPT4gc291cmNlLnBpcGUobWFwKHIgPT4ge1xyXG4gICAgci5mb3JFYWNoKHMgPT4ge1xyXG4gICAgICBjb25zdCByb3cgPSBkYXRhW3MuaW5kZXggfHwgcy5uYW1lXSA9IHt9O1xyXG4gICAgICBzLnBvaW50cy5mb3JFYWNoKHAgPT4gcm93W3AueF0gPSBwLnkpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9KSk7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhwbG9yZVR5cGUge1xyXG4gIGNvbHVtbnM6IEZpZWxkSW5mb1tdO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIGZpZWxkcz86IEZpZWxkSW5mb1tdO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VyaWVzIHtcclxuICBwb2ludHM6IFBvaW50W107XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBpbmRleD86IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFBvaW50IHtcclxuICB4OiBzdHJpbmc7XHJcbiAgeTogbnVtYmVyO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW5jeSB7IGNvZGU6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9XHJcblxyXG5leHBvcnQgdHlwZSBTZWdtZW50TWFwID0geyBbY29kZTogc3RyaW5nXTogc3RyaW5nIH07XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm4geyB0aXRsZTogc3RyaW5nOyBheGVzOiBBeGVzTWFwIH1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBlcnJSZXNvdXJjZShlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UpIHtcclxuICBzd2l0Y2ggKGVycm9yLnN0YXR1cykge1xyXG4gICAgY2FzZSA0MDE6XHJcbiAgICAgIHJldHVybiAnVW5hdXRob3JpemVkJztcclxuICAgIGNhc2UgNDI2OlxyXG4gICAgICByZXR1cm4gJ0xpY2Vuc2VFcnInO1xyXG4gICAgY2FzZSA0MDY6XHJcbiAgICAgIHJldHVybiAnTm90QWNjZXB0YWJsZSc7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcbiJdfQ==
@@ -21,13 +21,13 @@ let ExploreDocumentComponent = class ExploreDocumentComponent {
21
21
  this.model = data;
22
22
  }
23
23
  };
24
- ExploreDocumentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ExploreDocumentComponent, deps: [{ token: i1.PaneRef, optional: true }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component });
25
- ExploreDocumentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ExploreDocumentComponent, selector: "ng-component", ngImport: i0, template: `<bizdoc-document [model]=model></bizdoc-document>`, isInline: true, components: [{ type: i3.DocumentInfoComponent, selector: "bizdoc-document", inputs: ["model"] }] });
24
+ ExploreDocumentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ExploreDocumentComponent, deps: [{ token: i1.PaneRef, optional: true }, { token: i2.SessionService }], target: i0.ɵɵFactoryTarget.Component });
25
+ ExploreDocumentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ExploreDocumentComponent, selector: "ng-component", ngImport: i0, template: `<bizdoc-document [model]=model></bizdoc-document>`, isInline: true, dependencies: [{ kind: "component", type: i3.DocumentInfoComponent, selector: "bizdoc-document", inputs: ["model"] }] });
26
26
  ExploreDocumentComponent = __decorate([
27
27
  BizDoc({ selector: 'bizdoc-document-info' })
28
28
  ], ExploreDocumentComponent);
29
29
  export { ExploreDocumentComponent };
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ExploreDocumentComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ExploreDocumentComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{
33
33
  template: `<bizdoc-document [model]=model></bizdoc-document>`
@@ -14,9 +14,9 @@ export class ExploreItemImplComponent {
14
14
  view.onBind(this.model);
15
15
  }
16
16
  }
17
- ExploreItemImplComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ExploreItemImplComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
18
- ExploreItemImplComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: { template: "template", model: "model" }, ngImport: i0, template: '', isInline: true, styles: [":host{padding:8px;display:block}\n"] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ExploreItemImplComponent, decorators: [{
17
+ ExploreItemImplComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ExploreItemImplComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
18
+ ExploreItemImplComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ExploreItemImplComponent, selector: "bizdoc-cube-item", inputs: { template: "template", model: "model" }, ngImport: i0, template: '', isInline: true, styles: [":host{padding:8px;display:block}\n"] });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ExploreItemImplComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'bizdoc-cube-item', template: '', styles: [":host{padding:8px;display:block}\n"] }]
22
22
  }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: i1.BizDocComponentFactoryResolver }]; }, propDecorators: { template: [{
@@ -13,11 +13,11 @@ import * as i1 from "../cube.service";
13
13
  import * as i2 from "../../core/prompt.service";
14
14
  import * as i3 from "../../core/session.service";
15
15
  import * as i4 from "../../core/translate.service";
16
- import * as i5 from "@angular/material/table";
17
- import * as i6 from "@angular/material/sort";
18
- import * as i7 from "@angular/material/checkbox";
16
+ import * as i5 from "@angular/common";
17
+ import * as i6 from "@angular/material/table";
18
+ import * as i7 from "@angular/material/sort";
19
19
  import * as i8 from "@angular/material/paginator";
20
- import * as i9 from "@angular/common";
20
+ import * as i9 from "@angular/material/checkbox";
21
21
  import * as i10 from "../../core/pipes/date-format.pipe";
22
22
  const PAGE_SIZE = 14, MOBILE_PAGE_SIZE = 8;
23
23
  /** drill-down component*/
@@ -147,12 +147,12 @@ export class ExploreItemsComponent {
147
147
  this._loading$.unsubscribe();
148
148
  }
149
149
  }
150
- ExploreItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ExploreItemsComponent, deps: [{ token: i1.CubeService }, { token: i2.PromptService }, { token: i3.SessionService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
151
- ExploreItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.9", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: { pageSize: "pageSize", cube: "cube", index: "index", scope: "scope", axes: "axes", loading: "loading" }, outputs: { explore: "explore", load: "load", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-table matSort [dataSource]=\"dataSource\" @list>\r\n <ng-container [matColumnDef]=\"c.name\" *ngFor=\"let c of columns\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label || c.name}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\" [class.figure]=\"c.type === 'Currency'\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <ng-container *ngSwitchCase=\"'Date'\">\r\n {{element[c.name] | amDateFormat: 'll'}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Number'\">\r\n {{element[c.name] | number }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Currency'\">\r\n {{element[c.name] | currency : (element.currencyCode || currencyCode) : 'symbol' : CURRENCY_FORMAT }}\r\n </ng-container>\r\n <mat-checkbox [checked]=\"element.model[c.name]\" disabled=\"true\" *ngSwitchCase=\"'Boolean'\"></mat-checkbox>\r\n <ng-container *ngSwitchDefault>\r\n {{element[c.name] }}\r\n </ng-container>\r\n </ng-container>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"expand(element)\" [class.selectable]=\"selectable\" @item></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [pageSize]=\"pageSize\" hidePageSize style=\"display: none\"></mat-paginator>\r\n", styles: [".selectable{cursor:pointer}.figure{justify-content:right}\n"], components: [{ type: i5.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i6.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { type: i7.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i5.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i5.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }], directives: [{ type: i6.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i5.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i5.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i5.MatCellDef, selector: "[matCellDef]" }, { type: i5.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i9.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { type: i5.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i5.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }], pipes: { "amDateFormat": i10.DateFormatPipe, "number": i9.DecimalPipe, "currency": i9.CurrencyPipe }, animations: [
150
+ ExploreItemsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ExploreItemsComponent, deps: [{ token: i1.CubeService }, { token: i2.PromptService }, { token: i3.SessionService }, { token: i4.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
151
+ ExploreItemsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.3", type: ExploreItemsComponent, selector: "bizdoc-cube-explore", inputs: { pageSize: "pageSize", cube: "cube", index: "index", scope: "scope", axes: "axes", loading: "loading" }, outputs: { explore: "explore", load: "load", loadingChange: "loadingChange" }, viewQueries: [{ propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<mat-table matSort [dataSource]=\"dataSource\" @list>\r\n <ng-container [matColumnDef]=\"c.name\" *ngFor=\"let c of columns\">\r\n <mat-header-cell *matHeaderCellDef mat-sort-header>{{c.label || c.name}}</mat-header-cell>\r\n <mat-cell *matCellDef=\"let element\" [class.figure]=\"c.type === 'Currency'\">\r\n <ng-container [ngSwitch]=\"c.type\">\r\n <ng-container *ngSwitchCase=\"'Date'\">\r\n {{element[c.name] | amDateFormat: 'll'}}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Number'\">\r\n {{element[c.name] | number }}\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Currency'\">\r\n {{element[c.name] | currency : (element.currencyCode || currencyCode) : 'symbol' : CURRENCY_FORMAT }}\r\n </ng-container>\r\n <mat-checkbox [checked]=\"element.model[c.name]\" disabled=\"true\" *ngSwitchCase=\"'Boolean'\"></mat-checkbox>\r\n <ng-container *ngSwitchDefault>\r\n {{element[c.name] }}\r\n </ng-container>\r\n </ng-container>\r\n </mat-cell>\r\n </ng-container>\r\n <mat-header-row *matHeaderRowDef=\"displayedColumns; sticky: true\"></mat-header-row>\r\n <mat-row *matRowDef=\"let element; columns: displayedColumns;\" (click)=\"expand(element)\" [class.selectable]=\"selectable\" @item></mat-row>\r\n</mat-table>\r\n<mat-paginator #paginator [pageSize]=\"pageSize\" hidePageSize style=\"display: none\"></mat-paginator>\r\n", styles: [".selectable{cursor:pointer}.figure{justify-content:right}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i5.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i5.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i6.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i6.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i6.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i6.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { kind: "directive", type: i6.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i6.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i6.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i6.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i6.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i6.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i7.MatSort, selector: "[matSort]", inputs: ["matSortDisabled", "matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i7.MatSortHeader, selector: "[mat-sort-header]", inputs: ["disabled", "mat-sort-header", "arrowPosition", "start", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "component", type: i8.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "pipe", type: i5.DecimalPipe, name: "number" }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }, { kind: "pipe", type: i10.DateFormatPipe, name: "amDateFormat" }], animations: [
152
152
  listAnimation,
153
153
  itemAnimation
154
154
  ] });
155
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImport: i0, type: ExploreItemsComponent, decorators: [{
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.3", ngImport: i0, type: ExploreItemsComponent, decorators: [{
156
156
  type: Component,
157
157
  args: [{ selector: 'bizdoc-cube-explore', animations: [
158
158
  listAnimation,
@@ -183,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.9", ngImpor
183
183
  type: ViewChild,
184
184
  args: [MatPaginator, { static: true }]
185
185
  }] } });
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS1pdGVtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZXhwbG9yZS9leHBsb3JlLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9leHBsb3JlL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFtQixTQUFTLEVBQVcsTUFBTSxtQkFBbUIsQ0FBQztBQUl4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQUdwQyxNQUFNLFNBQVMsR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBVTNDLDBCQUEwQjtBQUMxQixNQUFNLE9BQU8scUJBQXFCO0lBNkJoQyxzQkFBc0I7SUFDdEIsWUFDVSxRQUFxQixFQUNyQixHQUFrQixFQUNsQixRQUF3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O1lBQ3hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7O2tIQXZKVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixrU0FvQnJCLE9BQU8sNEVBQ1AsWUFBWSxtRkNoRHpCLDg3Q0F5QkEsMm5FREhjO1FBQ1YsYUFBYTtRQUNiLGFBQWE7S0FBQzsyRkFHTCxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UscUJBQXFCLGNBR25CO3dCQUNWLGFBQWE7d0JBQ2IsYUFBYTtxQkFBQzswTEFXTCxRQUFRO3NCQURsQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNZLElBQUk7c0JBQXRCLE1BQU07Z0JBRUUsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ2EsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPO2dCQUN5QixTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBXb3JrYm9vaywgV29ya3NoZWV0LCBDb2x1bW4sIFJvdyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQnO1xyXG5pbXBvcnQgeyBDdWJlLCBGaWVsZEluZm8sIEZpZWxkVHlwZSwgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXRlbUFuaW1hdGlvbiwgbGlzdEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbmNvbnN0IFBBR0VfU0laRSA9IDE0LCBNT0JJTEVfUEFHRV9TSVpFID0gODtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtZXhwbG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICBsaXN0QW5pbWF0aW9uLFxyXG4gICAgaXRlbUFuaW1hdGlvbl1cclxufSlcclxuLyoqIGRyaWxsLWRvd24gY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEV4cGxvcmVJdGVtc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IENVUlJFTkNZX0ZPUk1BVCA9IHRoaXMuX3NlcnZpY2UuZGlnaXRzSW5mbztcclxuICBwcml2YXRlIF9wYWdlU2l6ZTtcclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcclxuICBwdWJsaWMgZ2V0IHBhZ2VTaXplKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VTaXplO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGFnZVNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLl9wYWdlU2l6ZSA9IHZhbHVlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjdWJlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZGV4Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjb3BlPzogU2NvcGVUeXBlO1xyXG4gIEBJbnB1dCgpIGF4ZXMhOiBBeGVzTWFwO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxFeHBsb3JlSXRlbUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIGNvbHVtbnM6IEZpZWxkSW5mb1tdO1xyXG4gIHNlbGVjdGFibGU6IGJvb2xlYW47XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgX3RlbXBsYXRlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICAvKiogZHJpbGwtZG93biBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX3BhZ2VTaXplID0gaXNNb2JpbGUoKSA/IE1PQklMRV9QQUdFX1NJWkUgOiBQQUdFX1NJWkU7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbG9hZGluZyQucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHYgPT4gdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodGhpcy5sb2FkaW5nID0gdikpO1xyXG4gIH1cclxuICByZWZyZXNoKCkgeyB0aGlzLm5nT25DaGFuZ2VzKG51bGwpOyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gdGhpcy5jdWJlKTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICB0aGlzLl92aWV3KCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX3ZpZXcoKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgKHRoaXMuaW5kZXggPyB0aGlzLl9zZXJ2aWNlLnJlc29sdmVJbmRleCh0aGlzLmN1YmUsIHRoaXMuaW5kZXgpIDpcclxuICAgICAgdGhpcy5fc2VydmljZS5yZXNvbHZlKHRoaXMuY3ViZSwgdGhpcy5heGVzKSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgdGVtcGxhdGUgfSA9IGU7XHJcbiAgICAgICAgKHRoaXMuaW5kZXggPyB0aGlzLl9zZXJ2aWNlLmluZGljZXModGhpcy5jdWJlLCB0aGlzLmluZGV4LCB0aGlzLmF4ZXMsIHsgc2NvcGU6IHRoaXMuc2NvcGUgfSkgOlxyXG4gICAgICAgICAgdGhpcy5fc2VydmljZS5leHBsb3JlKHRoaXMuY3ViZSwgdGhpcy5heGVzLCB7IHNjb3BlOiB0aGlzLnNjb3BlIH0pKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluZGV4ICYmICFjb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2N1YmUuYXhlcy5cclxuICAgICAgICAgICAgICAgIGZpbHRlcihhID0+IHRoaXMuYXhlc1thLm5hbWVdID09PSB1bmRlZmluZWQgJiYgIWEuaGlkZGVuICYmXHJcbiAgICAgICAgICAgICAgICAgIHIuZmluZChyb3cgPT4gcm93W2EubmFtZV0gIT09IHVuZGVmaW5lZCkpLlxyXG4gICAgICAgICAgICAgICAgZm9yRWFjaChhID0+XHJcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaCh7IG5hbWU6IGEubmFtZSwgbGFiZWw6IGEudGl0bGUgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9jdWJlLmluZGljZXMuZmluZChpID0+IGkubmFtZSA9PT0gdGhpcy5pbmRleCk7XHJcbiAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKHsgbmFtZTogJ3ZhbHVlJywgbGFiZWw6IGluZGV4LnRpdGxlLCB0eXBlOiBGaWVsZFR5cGUuQ3VycmVuY3kgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBjb2x1bW5zLm1hcChjID0+IGMubmFtZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnMuZmlsdGVyKGMgPT4gIWMuaGlkZGVuICYmICFjLmtleSkuXHJcbiAgICAgICAgICAgICAgICAgIG1hcChjID0+IGMubmFtZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGUgPSB0ZW1wbGF0ZSAhPT0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9kYXRhc291cmNlKHIpO1xyXG4gICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhc291cmNlKGRhdGE6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoZGF0YSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5sb2FkLmVtaXQoKTtcclxuICB9XHJcbiAgZXhwYW5kKGl0ZW06IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLl90ZW1wbGF0ZSkgcmV0dXJuO1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoZiA9PiBmLmtleSkubWFwKGYgPT4gaXRlbVtmLm5hbWVdKTtcclxuICAgIGlmICgha2V5cy5sZW5ndGgpIHRocm93ICdubyBjb2x1bW4gd2l0aCBLZXkgYXR0cmlidXRlIGluIElCcm93c2VhYmxlIG1vZGVsLic7XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGtleXMsIHRlbXBsYXRlOiB0aGlzLl90ZW1wbGF0ZSB9KTtcclxuICB9XHJcbiAgZXhwb3J0RXhjZWwoKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9zZXJ2aWNlLm51bWJlckZvcm1hdCxcclxuICAgICAgY29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiAhYy5oaWRkZW4pLFxyXG4gICAgICByb3dzID0gW3tcclxuICAgICAgICBpbmRleDogMSxcclxuICAgICAgICBjZWxsczogY29sdW1ucy5tYXAoKGMsIGkpID0+ICh7XHJcbiAgICAgICAgICBpbmRleDogaSArIDEsIHZhbHVlOiBjLmxhYmVsIHx8IGMubmFtZSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGFzIENlbGwpKVxyXG4gICAgICB9XSBhcyBSb3dbXTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgociwgaSkgPT4gcm93cy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgIGNlbGxzOiBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXNudW1iZXIgPSBjLnR5cGUgPT09ICdDdXJyZW5jeSc7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0eXBlOiBpc251bWJlciA/ICdudW1iZXInIDogJ3RleHQnLFxyXG4gICAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICAgIGhBbGlnbjogaXNudW1iZXIgPyAncmlnaHQnIDogJ2dlbmVyYWwnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9IGFzIFJvdykpO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl9zZXJ2aWNlLm5hbWVPZih0aGlzLmF4ZXMsIHRoaXMuY3ViZSkuXHJcbiAgICAgIHN1YnNjcmliZShvID0+XHJcbiAgICAgICAgYm9vay5zYXZlKGAke3RoaXMuX2N1YmUudGl0bGV9ICR7b30ueGxzeGApKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9sb2FkaW5nJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxvcmVJdGVtRXZlbnQge1xyXG4gIGtleXM6IChzdHJpbmcgfCBudW1iZXIpW107XHJcbiAgdGVtcGxhdGU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIiwiPG1hdC10YWJsZSBtYXRTb3J0IFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBAbGlzdD5cclxuICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiYy5uYW1lXCIgKm5nRm9yPVwibGV0IGMgb2YgY29sdW1uc1wiPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3tjLmxhYmVsIHx8IGMubmFtZX19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFtjbGFzcy5maWd1cmVdPVwiYy50eXBlID09PSAnQ3VycmVuY3knXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidEYXRlJ1wiPlxyXG4gICAgICAgICAge3tlbGVtZW50W2MubmFtZV0gfCBhbURhdGVGb3JtYXQ6ICdsbCd9fVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidOdW1iZXInXCI+XHJcbiAgICAgICAgICB7e2VsZW1lbnRbYy5uYW1lXSB8IG51bWJlciB9fVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDdXJyZW5jeSdcIj5cclxuICAgICAgICAgIHt7ZWxlbWVudFtjLm5hbWVdIHwgY3VycmVuY3kgOiAoZWxlbWVudC5jdXJyZW5jeUNvZGUgfHwgY3VycmVuY3lDb2RlKSA6ICdzeW1ib2wnIDogQ1VSUkVOQ1lfRk9STUFUIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJlbGVtZW50Lm1vZGVsW2MubmFtZV1cIiBkaXNhYmxlZD1cInRydWVcIiAqbmdTd2l0Y2hDYXNlPVwiJ0Jvb2xlYW4nXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAge3tlbGVtZW50W2MubmFtZV0gfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICA8bWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IGVsZW1lbnQ7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgKGNsaWNrKT1cImV4cGFuZChlbGVtZW50KVwiIFtjbGFzcy5zZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIiBAaXRlbT48L21hdC1yb3c+XHJcbjwvbWF0LXRhYmxlPlxyXG48bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIGhpZGVQYWdlU2l6ZSBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj48L21hdC1wYWdpbmF0b3I+XHJcbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS1pdGVtcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2N1YmUvZXhwbG9yZS9leHBsb3JlLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY3ViZS9leHBsb3JlL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUE0QixNQUFNLEVBQUUsWUFBWSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxRQUFRLEVBQTBCLE1BQU0sOEJBQThCLENBQUM7QUFDaEYsT0FBTyxFQUFtQixTQUFTLEVBQVcsTUFBTSxtQkFBbUIsQ0FBQztBQUl4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQUdwQyxNQUFNLFNBQVMsR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBVTNDLDBCQUEwQjtBQUMxQixNQUFNLE9BQU8scUJBQXFCO0lBNkJoQyxzQkFBc0I7SUFDdEIsWUFDVSxRQUFxQixFQUNyQixHQUFrQixFQUNsQixRQUF3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O1lBQ3hDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7O2tIQXZKVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixrU0FvQnJCLE9BQU8sNEVBQ1AsWUFBWSxtRkNoRHpCLDg3Q0F5QkEsdTFFREhjO1FBQ1YsYUFBYTtRQUNiLGFBQWE7S0FBQzsyRkFHTCxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UscUJBQXFCLGNBR25CO3dCQUNWLGFBQWE7d0JBQ2IsYUFBYTtxQkFBQzswTEFXTCxRQUFRO3NCQURsQixLQUFLO2dCQUlHLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDYSxPQUFPO3NCQUF6QixNQUFNO2dCQUNZLElBQUk7c0JBQXRCLE1BQU07Z0JBRUUsT0FBTztzQkFBZixLQUFLO2dCQUNhLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ2EsSUFBSTtzQkFBdkIsU0FBUzt1QkFBQyxPQUFPO2dCQUN5QixTQUFTO3NCQUFuRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgSW5wdXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgTWF0U29ydCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xyXG5pbXBvcnQgeyBNYXRQYWdpbmF0b3IgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xyXG5pbXBvcnQgeyBXb3JrYm9vaywgV29ya3NoZWV0LCBDb2x1bW4sIFJvdyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1leGNlbC1leHBvcnQnO1xyXG5pbXBvcnQgeyBDdWJlLCBGaWVsZEluZm8sIEZpZWxkVHlwZSwgQXhlc01hcCB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgQ3ViZVNlcnZpY2UgfSBmcm9tICcuLi9jdWJlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcm9tcHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9wcm9tcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgaXRlbUFuaW1hdGlvbiwgbGlzdEFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBpc01vYmlsZSB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2NvcGVUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuXHJcbmNvbnN0IFBBR0VfU0laRSA9IDE0LCBNT0JJTEVfUEFHRV9TSVpFID0gODtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWN1YmUtZXhwbG9yZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2V4cGxvcmUtaXRlbXMuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICBsaXN0QW5pbWF0aW9uLFxyXG4gICAgaXRlbUFuaW1hdGlvbl1cclxufSlcclxuLyoqIGRyaWxsLWRvd24gY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIEV4cGxvcmVJdGVtc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IENVUlJFTkNZX0ZPUk1BVCA9IHRoaXMuX3NlcnZpY2UuZGlnaXRzSW5mbztcclxuICBwcml2YXRlIF9wYWdlU2l6ZTtcclxuICBwcml2YXRlIF9kYXRhOiBhbnlbXTtcclxuICBwdWJsaWMgZ2V0IHBhZ2VTaXplKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2VTaXplO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgcGFnZVNpemUodmFsdWU6IG51bWJlcikge1xyXG4gICAgaWYgKHZhbHVlKSB0aGlzLl9wYWdlU2l6ZSA9IHZhbHVlO1xyXG4gIH1cclxuICBASW5wdXQoKSBjdWJlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZGV4Pzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNjb3BlPzogU2NvcGVUeXBlO1xyXG4gIEBJbnB1dCgpIGF4ZXMhOiBBeGVzTWFwO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBleHBsb3JlID0gbmV3IEV2ZW50RW1pdHRlcjxFeHBsb3JlSXRlbUV2ZW50PigpO1xyXG4gIEBPdXRwdXQoKSByZWFkb25seSBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxhbnk+O1xyXG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgcmVhZG9ubHkgbG9hZGluZ0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAVmlld0NoaWxkKE1hdFNvcnQpIHNvcnQ6IE1hdFNvcnQ7XHJcbiAgQFZpZXdDaGlsZChNYXRQYWdpbmF0b3IsIHsgc3RhdGljOiB0cnVlIH0pIHBhZ2luYXRvcjogTWF0UGFnaW5hdG9yO1xyXG4gIGNvbHVtbnM6IEZpZWxkSW5mb1tdO1xyXG4gIHNlbGVjdGFibGU6IGJvb2xlYW47XHJcbiAgZGlzcGxheWVkQ29sdW1uczogc3RyaW5nW107XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGluZyQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG4gIHByaXZhdGUgX3RlbXBsYXRlOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBfY3ViZTogQ3ViZTtcclxuICAvKiogZHJpbGwtZG93biBjdG9yICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9zZXJ2aWNlOiBDdWJlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX3BhZ2VTaXplID0gaXNNb2JpbGUoKSA/IE1PQklMRV9QQUdFX1NJWkUgOiBQQUdFX1NJWkU7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbG9hZGluZyQucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHYgPT4gdGhpcy5sb2FkaW5nQ2hhbmdlLmVtaXQodGhpcy5sb2FkaW5nID0gdikpO1xyXG4gIH1cclxuICByZWZyZXNoKCkgeyB0aGlzLm5nT25DaGFuZ2VzKG51bGwpOyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuX2N1YmUgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuY3ViZXMuZmluZChjID0+IGMubmFtZSA9PT0gdGhpcy5jdWJlKTtcclxuICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5fY3ViZS5jdXJyZW5jeUNvZGU7XHJcbiAgICB0aGlzLl92aWV3KCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX3ZpZXcoKSB7XHJcbiAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KHRydWUpO1xyXG4gICAgKHRoaXMuaW5kZXggPyB0aGlzLl9zZXJ2aWNlLnJlc29sdmVJbmRleCh0aGlzLmN1YmUsIHRoaXMuaW5kZXgpIDpcclxuICAgICAgdGhpcy5fc2VydmljZS5yZXNvbHZlKHRoaXMuY3ViZSwgdGhpcy5heGVzKSkuc3Vic2NyaWJlKGUgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY29sdW1ucywgdGVtcGxhdGUgfSA9IGU7XHJcbiAgICAgICAgKHRoaXMuaW5kZXggPyB0aGlzLl9zZXJ2aWNlLmluZGljZXModGhpcy5jdWJlLCB0aGlzLmluZGV4LCB0aGlzLmF4ZXMsIHsgc2NvcGU6IHRoaXMuc2NvcGUgfSkgOlxyXG4gICAgICAgICAgdGhpcy5fc2VydmljZS5leHBsb3JlKHRoaXMuY3ViZSwgdGhpcy5heGVzLCB7IHNjb3BlOiB0aGlzLnNjb3BlIH0pKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmluZGV4ICYmICFjb2x1bW5zLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2N1YmUuYXhlcy5cclxuICAgICAgICAgICAgICAgIGZpbHRlcihhID0+IHRoaXMuYXhlc1thLm5hbWVdID09PSB1bmRlZmluZWQgJiYgIWEuaGlkZGVuICYmXHJcbiAgICAgICAgICAgICAgICAgIHIuZmluZChyb3cgPT4gcm93W2EubmFtZV0gIT09IHVuZGVmaW5lZCkpLlxyXG4gICAgICAgICAgICAgICAgZm9yRWFjaChhID0+XHJcbiAgICAgICAgICAgICAgICAgIGNvbHVtbnMucHVzaCh7IG5hbWU6IGEubmFtZSwgbGFiZWw6IGEudGl0bGUgfSlcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9jdWJlLmluZGljZXMuZmluZChpID0+IGkubmFtZSA9PT0gdGhpcy5pbmRleCk7XHJcbiAgICAgICAgICAgICAgY29sdW1ucy5wdXNoKHsgbmFtZTogJ3ZhbHVlJywgbGFiZWw6IGluZGV4LnRpdGxlLCB0eXBlOiBGaWVsZFR5cGUuQ3VycmVuY3kgfSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgICAgICAgICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSBjb2x1bW5zLm1hcChjID0+IGMubmFtZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSBudWxsO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0YWJsZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcbiAgICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnMuZmlsdGVyKGMgPT4gIWMuaGlkZGVuICYmICFjLmtleSkuXHJcbiAgICAgICAgICAgICAgICAgIG1hcChjID0+IGMubmFtZSk7XHJcbiAgICAgICAgICAgICAgdGhpcy5fdGVtcGxhdGUgPSB0ZW1wbGF0ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGFibGUgPSB0ZW1wbGF0ZSAhPT0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9kYXRhc291cmNlKHIpO1xyXG4gICAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkaW5nJC5uZXh0KGZhbHNlKTtcclxuICAgICAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fbG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9kYXRhc291cmNlKGRhdGE6IGFueVtdKSB7XHJcbiAgICB0aGlzLl9kYXRhID0gZGF0YTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoZGF0YSk7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uuc29ydCA9IHRoaXMuc29ydDtcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5wYWdpbmF0b3IgPSB0aGlzLnBhZ2luYXRvcjtcclxuICAgIHRoaXMuX2xvYWRpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgdGhpcy5sb2FkLmVtaXQoKTtcclxuICB9XHJcbiAgZXhwYW5kKGl0ZW06IGFueSkge1xyXG4gICAgaWYgKCF0aGlzLl90ZW1wbGF0ZSkgcmV0dXJuO1xyXG4gICAgY29uc3Qga2V5cyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoZiA9PiBmLmtleSkubWFwKGYgPT4gaXRlbVtmLm5hbWVdKTtcclxuICAgIGlmICgha2V5cy5sZW5ndGgpIHRocm93ICdubyBjb2x1bW4gd2l0aCBLZXkgYXR0cmlidXRlIGluIElCcm93c2VhYmxlIG1vZGVsLic7XHJcbiAgICB0aGlzLmV4cGxvcmUuZW1pdCh7IGtleXMsIHRlbXBsYXRlOiB0aGlzLl90ZW1wbGF0ZSB9KTtcclxuICB9XHJcbiAgZXhwb3J0RXhjZWwoKSB7XHJcbiAgICBjb25zdCBudW1iZXJGb3JtYXQgPSB0aGlzLl9zZXJ2aWNlLm51bWJlckZvcm1hdCxcclxuICAgICAgY29sdW1ucyA9IHRoaXMuY29sdW1ucy5maWx0ZXIoYyA9PiAhYy5oaWRkZW4pLFxyXG4gICAgICByb3dzID0gW3tcclxuICAgICAgICBpbmRleDogMSxcclxuICAgICAgICBjZWxsczogY29sdW1ucy5tYXAoKGMsIGkpID0+ICh7XHJcbiAgICAgICAgICBpbmRleDogaSArIDEsIHZhbHVlOiBjLmxhYmVsIHx8IGMubmFtZSxcclxuICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgIGJvbGQ6IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICB9IGFzIENlbGwpKVxyXG4gICAgICB9XSBhcyBSb3dbXTtcclxuICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgociwgaSkgPT4gcm93cy5wdXNoKFxyXG4gICAgICB7XHJcbiAgICAgICAgaW5kZXg6IGkgKyAyLFxyXG4gICAgICAgIGNlbGxzOiBjb2x1bW5zLm1hcCgoYywgaikgPT4ge1xyXG4gICAgICAgICAgY29uc3QgaXNudW1iZXIgPSBjLnR5cGUgPT09ICdDdXJyZW5jeSc7XHJcbiAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICB0eXBlOiBpc251bWJlciA/ICdudW1iZXInIDogJ3RleHQnLFxyXG4gICAgICAgICAgICBpbmRleDogaiArIDEsIHZhbHVlOiByW2MubmFtZV0sXHJcbiAgICAgICAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgICAgICAgbnVtYmVyRm9ybWF0LFxyXG4gICAgICAgICAgICAgIGhBbGlnbjogaXNudW1iZXIgPyAncmlnaHQnIDogJ2dlbmVyYWwnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gYXMgQ2VsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgKVxyXG4gICAgICB9IGFzIFJvdykpO1xyXG5cclxuICAgIGNvbnN0IGJvb2sgPSBuZXcgV29ya2Jvb2soXHJcbiAgICAgIHtcclxuICAgICAgICB3b3Jrc2hlZXRzOiBbXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIGVuYWJsZVJ0bDogdGhpcy5fc2Vzc2lvbi5pbnZlcnNlLFxyXG4gICAgICAgICAgICBuYW1lOiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdTaGVldE4nLCAxKSxcclxuICAgICAgICAgICAgY29sdW1uczogY29sdW1ucy5tYXAoKF8sIGkpID0+ICh7IGluZGV4OiBpICsgMSwgd2lkdGg6IDI1MCB9IGFzIENvbHVtbikpLFxyXG4gICAgICAgICAgICByb3dzXHJcbiAgICAgICAgICB9IGFzIFdvcmtzaGVldFxyXG4gICAgICAgIF0sXHJcbiAgICAgIH0sXHJcbiAgICAgICd4bHN4J1xyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl9zZXJ2aWNlLm5hbWVPZih0aGlzLmF4ZXMsIHRoaXMuY3ViZSkuXHJcbiAgICAgIHN1YnNjcmliZShvID0+XHJcbiAgICAgICAgYm9vay5zYXZlKGAke3RoaXMuX2N1YmUudGl0bGV9ICR7b30ueGxzeGApKTtcclxuICB9XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9sb2FkaW5nJC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxvcmVJdGVtRXZlbnQge1xyXG4gIGtleXM6IChzdHJpbmcgfCBudW1iZXIpW107XHJcbiAgdGVtcGxhdGU6IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgQ2VsbCB7IH1cclxuIiwiPG1hdC10YWJsZSBtYXRTb3J0IFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIiBAbGlzdD5cclxuICA8bmctY29udGFpbmVyIFttYXRDb2x1bW5EZWZdPVwiYy5uYW1lXCIgKm5nRm9yPVwibGV0IGMgb2YgY29sdW1uc1wiPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZiBtYXQtc29ydC1oZWFkZXI+e3tjLmxhYmVsIHx8IGMubmFtZX19PC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgICA8bWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudFwiIFtjbGFzcy5maWd1cmVdPVwiYy50eXBlID09PSAnQ3VycmVuY3knXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImMudHlwZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidEYXRlJ1wiPlxyXG4gICAgICAgICAge3tlbGVtZW50W2MubmFtZV0gfCBhbURhdGVGb3JtYXQ6ICdsbCd9fVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidOdW1iZXInXCI+XHJcbiAgICAgICAgICB7e2VsZW1lbnRbYy5uYW1lXSB8IG51bWJlciB9fVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidDdXJyZW5jeSdcIj5cclxuICAgICAgICAgIHt7ZWxlbWVudFtjLm5hbWVdIHwgY3VycmVuY3kgOiAoZWxlbWVudC5jdXJyZW5jeUNvZGUgfHwgY3VycmVuY3lDb2RlKSA6ICdzeW1ib2wnIDogQ1VSUkVOQ1lfRk9STUFUIH19XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBbY2hlY2tlZF09XCJlbGVtZW50Lm1vZGVsW2MubmFtZV1cIiBkaXNhYmxlZD1cInRydWVcIiAqbmdTd2l0Y2hDYXNlPVwiJ0Jvb2xlYW4nXCI+PC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAge3tlbGVtZW50W2MubmFtZV0gfX1cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxtYXQtaGVhZGVyLXJvdyAqbWF0SGVhZGVyUm93RGVmPVwiZGlzcGxheWVkQ29sdW1uczsgc3RpY2t5OiB0cnVlXCI+PC9tYXQtaGVhZGVyLXJvdz5cclxuICA8bWF0LXJvdyAqbWF0Um93RGVmPVwibGV0IGVsZW1lbnQ7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCIgKGNsaWNrKT1cImV4cGFuZChlbGVtZW50KVwiIFtjbGFzcy5zZWxlY3RhYmxlXT1cInNlbGVjdGFibGVcIiBAaXRlbT48L21hdC1yb3c+XHJcbjwvbWF0LXRhYmxlPlxyXG48bWF0LXBhZ2luYXRvciAjcGFnaW5hdG9yIFtwYWdlU2l6ZV09XCJwYWdlU2l6ZVwiIGhpZGVQYWdlU2l6ZSBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIj48L21hdC1wYWdpbmF0b3I+XHJcbiJdfQ==