@bizdoc/core 2.1.7 → 2.1.10

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 (392) hide show
  1. package/assets/themes/brown.min.css +1 -1
  2. package/assets/themes/dark.min.css +1 -1
  3. package/assets/themes/deep-purple-light-blue.min.css +1 -1
  4. package/assets/themes/deep-purple-teal.min.css +1 -1
  5. package/assets/themes/default.min.css +1 -1
  6. package/assets/themes/green.min.css +1 -1
  7. package/assets/themes/indigo.min.css +1 -1
  8. package/esm2022/lib/admin/admin-dismiss.service.mjs +3 -3
  9. package/esm2022/lib/admin/admin-menu.component.mjs +3 -3
  10. package/esm2022/lib/admin/architecture/cube-axes-filter.component.mjs +5 -5
  11. package/esm2022/lib/admin/architecture/declarations.mjs +1 -1
  12. package/esm2022/lib/admin/architecture/designer-element.component.mjs +17 -17
  13. package/esm2022/lib/admin/architecture/designer-privileges.component.mjs +5 -5
  14. package/esm2022/lib/admin/architecture/designer.base.mjs +9 -9
  15. package/esm2022/lib/admin/architecture/designer.component.mjs +7 -5
  16. package/esm2022/lib/admin/architecture/elements/action.component.mjs +5 -5
  17. package/esm2022/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
  18. package/esm2022/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  19. package/esm2022/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  20. package/esm2022/lib/admin/architecture/elements/attribute.component.mjs +3 -3
  21. package/esm2022/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  22. package/esm2022/lib/admin/architecture/elements/configuration-datasource.component.mjs +5 -5
  23. package/esm2022/lib/admin/architecture/elements/control.component.mjs +3 -3
  24. package/esm2022/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  25. package/esm2022/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
  26. package/esm2022/lib/admin/architecture/elements/cube.component.mjs +5 -6
  27. package/esm2022/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
  28. package/esm2022/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  29. package/esm2022/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  30. package/esm2022/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  31. package/esm2022/lib/admin/architecture/elements/folder.component.mjs +5 -5
  32. package/esm2022/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
  33. package/esm2022/lib/admin/architecture/elements/form.component.mjs +5 -5
  34. package/esm2022/lib/admin/architecture/elements/guide.component.mjs +5 -5
  35. package/esm2022/lib/admin/architecture/elements/job.component.mjs +59 -0
  36. package/esm2022/lib/admin/architecture/elements/matrix-view.component.mjs +5 -5
  37. package/esm2022/lib/admin/architecture/elements/node.component.mjs +3 -3
  38. package/esm2022/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
  39. package/esm2022/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  40. package/esm2022/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  41. package/esm2022/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
  42. package/esm2022/lib/admin/architecture/elements/policy.component.mjs +3 -3
  43. package/esm2022/lib/admin/architecture/elements/report.component.mjs +3 -3
  44. package/esm2022/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  45. package/esm2022/lib/admin/architecture/elements/role.component.mjs +3 -3
  46. package/esm2022/lib/admin/architecture/elements/rule.component.mjs +3 -3
  47. package/esm2022/lib/admin/architecture/elements/state.component.mjs +3 -3
  48. package/esm2022/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  49. package/esm2022/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  50. package/esm2022/lib/admin/architecture/elements/type.component.mjs +5 -5
  51. package/esm2022/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  52. package/esm2022/lib/admin/architecture/elements/utility.component.mjs +3 -3
  53. package/esm2022/lib/admin/architecture/elements/view.component.mjs +3 -3
  54. package/esm2022/lib/admin/architecture/elements/widget.component.mjs +3 -3
  55. package/esm2022/lib/admin/architecture/icon-picker.component.mjs +3 -3
  56. package/esm2022/lib/admin/core/ace.input.mjs +3 -3
  57. package/esm2022/lib/admin/core/color-picker.input.mjs +3 -3
  58. package/esm2022/lib/admin/core/localized-string.component.mjs +3 -3
  59. package/esm2022/lib/admin/core/search.input.mjs +3 -3
  60. package/esm2022/lib/admin/diff/configuration-diff.component.mjs +3 -3
  61. package/esm2022/lib/admin/document-trace/document-trace.component.mjs +3 -3
  62. package/esm2022/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  63. package/esm2022/lib/admin/document-trace/trace-element.component.mjs +5 -5
  64. package/esm2022/lib/admin/form/designer/box-designer.component.mjs +8 -8
  65. package/esm2022/lib/admin/form/designer/properties.component.mjs +3 -3
  66. package/esm2022/lib/admin/form/designer/section.component.mjs +3 -3
  67. package/esm2022/lib/admin/form/designer/settings.component.mjs +3 -3
  68. package/esm2022/lib/admin/form/form.resolve.service.mjs +3 -3
  69. package/esm2022/lib/admin/form/workflow/node.component.mjs +3 -3
  70. package/esm2022/lib/admin/form/workflow/role-node.component.mjs +3 -3
  71. package/esm2022/lib/admin/form/workflow/workflow.component.mjs +3 -3
  72. package/esm2022/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  73. package/esm2022/lib/admin/patterns/patterns.component.mjs +3 -3
  74. package/esm2022/lib/admin/permissions/permissions.component.mjs +3 -3
  75. package/esm2022/lib/admin/positions/positions-popup.component.mjs +3 -3
  76. package/esm2022/lib/admin/positions/positions.component.mjs +3 -3
  77. package/esm2022/lib/admin/profiler/outofoffice.component.mjs +5 -5
  78. package/esm2022/lib/admin/profiler/profiler.component.mjs +5 -5
  79. package/esm2022/lib/admin/system.service.mjs +10 -4
  80. package/esm2022/lib/admin/utility-wrapper.component.mjs +3 -3
  81. package/esm2022/lib/admin/utility.pane.component.mjs +3 -3
  82. package/esm2022/lib/app.component.mjs +6 -6
  83. package/esm2022/lib/bizdoc.module.mjs +4 -4
  84. package/esm2022/lib/browse/browse-items.component.mjs +3 -3
  85. package/esm2022/lib/browse/browse.mobile.component.mjs +3 -3
  86. package/esm2022/lib/browse/browse.pane.component.mjs +3 -3
  87. package/esm2022/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  88. package/esm2022/lib/browse/filter/filter.component.mjs +3 -3
  89. package/esm2022/lib/browse/folders-menu.component.mjs +3 -3
  90. package/esm2022/lib/chat/chat-info.mjs +3 -3
  91. package/esm2022/lib/chat/chat.mobile.component.mjs +3 -3
  92. package/esm2022/lib/chat/chat.service.mjs +3 -3
  93. package/esm2022/lib/chat/contacts.component.mjs +6 -6
  94. package/esm2022/lib/chat/contacts.pane.component.mjs +3 -3
  95. package/esm2022/lib/chat/conversation.component.mjs +3 -3
  96. package/esm2022/lib/chat/conversation.pane.component.mjs +3 -3
  97. package/esm2022/lib/compose/action/action-picker.component.mjs +3 -3
  98. package/esm2022/lib/compose/action/action.dialog.mjs +3 -3
  99. package/esm2022/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  100. package/esm2022/lib/compose/action/assign-action.component.mjs +3 -3
  101. package/esm2022/lib/compose/action/moveto-action.component.mjs +3 -3
  102. package/esm2022/lib/compose/action/return-action.component.mjs +3 -3
  103. package/esm2022/lib/compose/attachments/attachments.component.mjs +3 -3
  104. package/esm2022/lib/compose/attachments/preview/attachment-preview.component.mjs +5 -5
  105. package/esm2022/lib/compose/attachments/progress-button.directive.mjs +3 -3
  106. package/esm2022/lib/compose/box/box.component.mjs +5 -5
  107. package/esm2022/lib/compose/box/control.component.mjs +3 -3
  108. package/esm2022/lib/compose/box/row.component.mjs +3 -3
  109. package/esm2022/lib/compose/can-deactivate-changes.service.mjs +3 -3
  110. package/esm2022/lib/compose/comments/comment.component.mjs +3 -3
  111. package/esm2022/lib/compose/comments/comments.component.mjs +3 -3
  112. package/esm2022/lib/compose/comments/comments.pane.component.mjs +3 -3
  113. package/esm2022/lib/compose/comments/edit-comment.component.mjs +3 -3
  114. package/esm2022/lib/compose/comments/edits.component.mjs +5 -5
  115. package/esm2022/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  116. package/esm2022/lib/compose/comments/votes.component.mjs +5 -5
  117. package/esm2022/lib/compose/compose-resolve.service.mjs +6 -6
  118. package/esm2022/lib/compose/compose.mobile.component.mjs +3 -3
  119. package/esm2022/lib/compose/compose.pane.component.mjs +3 -3
  120. package/esm2022/lib/compose/copy/copy.dialog.mjs +3 -3
  121. package/esm2022/lib/compose/dismiss.service.mjs +3 -3
  122. package/esm2022/lib/compose/document-resolver.service.mjs +3 -3
  123. package/esm2022/lib/compose/document.component.mjs +3 -3
  124. package/esm2022/lib/compose/document.mobile.component.mjs +3 -3
  125. package/esm2022/lib/compose/document.pane.component.mjs +3 -3
  126. package/esm2022/lib/compose/events/events.component.mjs +3 -3
  127. package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  128. package/esm2022/lib/compose/form.component.mjs +5 -5
  129. package/esm2022/lib/compose/new-menu.component.mjs +3 -3
  130. package/esm2022/lib/compose/privilage.directive.mjs +6 -6
  131. package/esm2022/lib/compose/recipient-resolver.service.mjs +3 -3
  132. package/esm2022/lib/compose/state.component.mjs +3 -3
  133. package/esm2022/lib/compose/tag/tags.component.mjs +3 -3
  134. package/esm2022/lib/compose/trace/flow.component.mjs +3 -3
  135. package/esm2022/lib/compose/trace/people.component.mjs +3 -3
  136. package/esm2022/lib/compose/trace/trace.base.mjs +3 -3
  137. package/esm2022/lib/compose/trace/trace.component.mjs +5 -5
  138. package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
  139. package/esm2022/lib/compose/version-compare/version-compare.component.mjs +3 -3
  140. package/esm2022/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  141. package/esm2022/lib/compose/version-compare/version.pane.component.mjs +5 -5
  142. package/esm2022/lib/core/account.service.mjs +3 -3
  143. package/esm2022/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  144. package/esm2022/lib/core/animations.mjs +2 -2
  145. package/esm2022/lib/core/avatar/avatar.component.mjs +3 -3
  146. package/esm2022/lib/core/checkbox.mjs +6 -6
  147. package/esm2022/lib/core/component-factory-resolver.mjs +3 -3
  148. package/esm2022/lib/core/datasource.service.mjs +3 -3
  149. package/esm2022/lib/core/fields/address.designer.mjs +3 -3
  150. package/esm2022/lib/core/fields/address.field.mjs +3 -3
  151. package/esm2022/lib/core/fields/autocomplete.field.mjs +6 -6
  152. package/esm2022/lib/core/fields/checkbox.designer.mjs +3 -3
  153. package/esm2022/lib/core/fields/checkbox.field.mjs +3 -3
  154. package/esm2022/lib/core/fields/checklist.designer.mjs +3 -3
  155. package/esm2022/lib/core/fields/checklist.field.mjs +3 -3
  156. package/esm2022/lib/core/fields/date-range.designer.mjs +3 -3
  157. package/esm2022/lib/core/fields/date-range.field.mjs +3 -3
  158. package/esm2022/lib/core/fields/date.designer.mjs +3 -3
  159. package/esm2022/lib/core/fields/date.field.mjs +3 -3
  160. package/esm2022/lib/core/fields/expression.field.mjs +6 -6
  161. package/esm2022/lib/core/fields/file.designer.mjs +3 -3
  162. package/esm2022/lib/core/fields/file.field.mjs +3 -3
  163. package/esm2022/lib/core/fields/html.designer.mjs +3 -3
  164. package/esm2022/lib/core/fields/html.field.mjs +3 -3
  165. package/esm2022/lib/core/fields/input.designer.mjs +3 -3
  166. package/esm2022/lib/core/fields/input.field.mjs +3 -3
  167. package/esm2022/lib/core/fields/localized-string.field.mjs +6 -6
  168. package/esm2022/lib/core/fields/numeric.designer.mjs +3 -3
  169. package/esm2022/lib/core/fields/numeric.field.mjs +3 -3
  170. package/esm2022/lib/core/fields/options.base.mjs +6 -6
  171. package/esm2022/lib/core/fields/options.component.mjs +5 -5
  172. package/esm2022/lib/core/fields/radio-button.designer.mjs +3 -3
  173. package/esm2022/lib/core/fields/radio-button.field.mjs +3 -3
  174. package/esm2022/lib/core/fields/select.designer.mjs +3 -3
  175. package/esm2022/lib/core/fields/select.field.mjs +3 -3
  176. package/esm2022/lib/core/fields/signature.designer.mjs +3 -3
  177. package/esm2022/lib/core/fields/signature.field.mjs +3 -3
  178. package/esm2022/lib/core/fields/switch.field.mjs +3 -3
  179. package/esm2022/lib/core/fields/textarea.designer.mjs +3 -3
  180. package/esm2022/lib/core/fields/textarea.field.mjs +3 -3
  181. package/esm2022/lib/core/fields/time.designer.mjs +3 -3
  182. package/esm2022/lib/core/fields/time.field.mjs +3 -3
  183. package/esm2022/lib/core/fields/timespan.field.mjs +6 -6
  184. package/esm2022/lib/core/fields/yesno.designer.mjs +3 -3
  185. package/esm2022/lib/core/fields/yesno.field.mjs +3 -3
  186. package/esm2022/lib/core/guide/guide.component.mjs +5 -5
  187. package/esm2022/lib/core/guide/guide.service.mjs +3 -3
  188. package/esm2022/lib/core/guide/help-tip.component.mjs +6 -6
  189. package/esm2022/lib/core/http.interceptor.mjs +3 -3
  190. package/esm2022/lib/core/hub.service.mjs +3 -3
  191. package/esm2022/lib/core/identity/identity.component.mjs +3 -3
  192. package/esm2022/lib/core/info/attachment-info.service.mjs +3 -3
  193. package/esm2022/lib/core/info/document-info.service.mjs +3 -3
  194. package/esm2022/lib/core/info/location-info.component.mjs +3 -3
  195. package/esm2022/lib/core/info/map-info.mjs +3 -3
  196. package/esm2022/lib/core/inputs/address.input.mjs +3 -3
  197. package/esm2022/lib/core/inputs/auto-complete.input.mjs +6 -6
  198. package/esm2022/lib/core/inputs/combination-picker-body.mjs +3 -3
  199. package/esm2022/lib/core/inputs/combination-picker.mjs +3 -3
  200. package/esm2022/lib/core/inputs/combination-pool.mjs +3 -3
  201. package/esm2022/lib/core/inputs/file.input.mjs +3 -3
  202. package/esm2022/lib/core/inputs/select.input.mjs +6 -6
  203. package/esm2022/lib/core/inputs/signature.input.mjs +3 -3
  204. package/esm2022/lib/core/inputs/time-picker.mjs +3 -3
  205. package/esm2022/lib/core/inputs/timespan.input.mjs +3 -3
  206. package/esm2022/lib/core/layout.component.mjs +3 -3
  207. package/esm2022/lib/core/lottie-animation.mjs +3 -3
  208. package/esm2022/lib/core/mailbox.service.mjs +3 -3
  209. package/esm2022/lib/core/none.component.mjs +8 -8
  210. package/esm2022/lib/core/pipes/action.pipe.mjs +3 -3
  211. package/esm2022/lib/core/pipes/calendar.pipe.mjs +3 -3
  212. package/esm2022/lib/core/pipes/date-format.pipe.mjs +3 -3
  213. package/esm2022/lib/core/pipes/daterange.pipe.mjs +6 -6
  214. package/esm2022/lib/core/pipes/difference.pipe.mjs +3 -3
  215. package/esm2022/lib/core/pipes/duration-format.pipe.mjs +3 -3
  216. package/esm2022/lib/core/pipes/duration.pipe.mjs +3 -3
  217. package/esm2022/lib/core/pipes/form.pipe.mjs +3 -3
  218. package/esm2022/lib/core/pipes/join.pipe.mjs +3 -3
  219. package/esm2022/lib/core/pipes/localized-string.pipe.mjs +3 -3
  220. package/esm2022/lib/core/pipes/role.pipe.mjs +3 -3
  221. package/esm2022/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  222. package/esm2022/lib/core/pipes/sort.pipe.mjs +6 -6
  223. package/esm2022/lib/core/pipes/state.pipe.mjs +3 -3
  224. package/esm2022/lib/core/pipes/time-ago.pipe.mjs +6 -6
  225. package/esm2022/lib/core/pipes/translate.pipe.mjs +9 -9
  226. package/esm2022/lib/core/pipes/type-value.pipe.mjs +3 -3
  227. package/esm2022/lib/core/pipes/user-name.pipe.mjs +3 -3
  228. package/esm2022/lib/core/popup/popup.component.mjs +3 -3
  229. package/esm2022/lib/core/popup/popup.service.mjs +3 -3
  230. package/esm2022/lib/core/popup/tooltip.directive.mjs +6 -6
  231. package/esm2022/lib/core/prompt/ask/ask.dialog.mjs +5 -5
  232. package/esm2022/lib/core/prompt/mask/mask.component.mjs +3 -3
  233. package/esm2022/lib/core/prompt.service.mjs +3 -3
  234. package/esm2022/lib/core/router.mjs +6 -6
  235. package/esm2022/lib/core/save-changes.dialog.mjs +5 -5
  236. package/esm2022/lib/core/session.service.mjs +3 -3
  237. package/esm2022/lib/core/slots/router.directive.mjs +3 -3
  238. package/esm2022/lib/core/slots/router.service.mjs +3 -3
  239. package/esm2022/lib/core/slots/slots.component.mjs +3 -3
  240. package/esm2022/lib/core/tagging/documents.component.mjs +3 -3
  241. package/esm2022/lib/core/tagging/edit-input.component.mjs +3 -3
  242. package/esm2022/lib/core/tagging/emoji.component.mjs +3 -3
  243. package/esm2022/lib/core/tagging/tagging-item.directive.mjs +3 -3
  244. package/esm2022/lib/core/tagging/tagging.component-base.mjs +3 -3
  245. package/esm2022/lib/core/tagging/tagging.directive.mjs +3 -3
  246. package/esm2022/lib/core/tagging/tagging.pipe.mjs +3 -3
  247. package/esm2022/lib/core/tagging/users.component.mjs +3 -3
  248. package/esm2022/lib/core/translate.service.mjs +3 -3
  249. package/esm2022/lib/core/window-title.service.mjs +3 -3
  250. package/esm2022/lib/cube/accum/accum.component.mjs +3 -3
  251. package/esm2022/lib/cube/chart/chart.component.mjs +5 -5
  252. package/esm2022/lib/cube/cube-info.service.mjs +3 -3
  253. package/esm2022/lib/cube/cube-menu.component.mjs +3 -3
  254. package/esm2022/lib/cube/cube-view.component.mjs +3 -3
  255. package/esm2022/lib/cube/cube.service.mjs +4 -6
  256. package/esm2022/lib/cube/explore/document-item.component.mjs +3 -3
  257. package/esm2022/lib/cube/explore/explore-item.component.mjs +3 -3
  258. package/esm2022/lib/cube/explore/explore-items.component.mjs +3 -3
  259. package/esm2022/lib/cube/explore/explore.pane.component.mjs +3 -3
  260. package/esm2022/lib/cube/explore/item-resolver.service.mjs +7 -8
  261. package/esm2022/lib/cube/explore/item.pane.component.mjs +3 -3
  262. package/esm2022/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  263. package/esm2022/lib/cube/filter/filter.component.mjs +4 -4
  264. package/esm2022/lib/cube/grid/grid.component.mjs +4 -5
  265. package/esm2022/lib/cube/grid/spreadsheet.component.mjs +5 -5
  266. package/esm2022/lib/cube/matrix/matrix.base.mjs +4 -4
  267. package/esm2022/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  268. package/esm2022/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  269. package/esm2022/lib/cube/matrix/popup.component.mjs +3 -3
  270. package/esm2022/lib/cube/matrix/table.component.mjs +6 -7
  271. package/esm2022/lib/cube/parallel/parallel.component.mjs +3 -3
  272. package/esm2022/lib/cube/pivot/pivot.component.mjs +4 -4
  273. package/esm2022/lib/cube/sum/sum.component.mjs +4 -7
  274. package/esm2022/lib/cube/view-base.mjs +3 -3
  275. package/esm2022/lib/cube/view.mobile.component.mjs +13 -11
  276. package/esm2022/lib/cube/view.pane.component.mjs +3 -3
  277. package/esm2022/lib/dashboard/actions/actions.widget.mjs +3 -3
  278. package/esm2022/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  279. package/esm2022/lib/dashboard/cube/compare.widget.mjs +3 -3
  280. package/esm2022/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  281. package/esm2022/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  282. package/esm2022/lib/dashboard/cube/cube-chart.widget.mjs +3 -3
  283. package/esm2022/lib/dashboard/cube/document-state.widget.mjs +3 -3
  284. package/esm2022/lib/dashboard/cube/documents.widget.mjs +3 -3
  285. package/esm2022/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  286. package/esm2022/lib/dashboard/dashboard.component.mjs +3 -3
  287. package/esm2022/lib/dashboard/dashboard.pane.component.mjs +3 -3
  288. package/esm2022/lib/dashboard/recents/recents.widget.mjs +3 -3
  289. package/esm2022/lib/dashboard/score/activity.widget.mjs +5 -5
  290. package/esm2022/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  291. package/esm2022/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  292. package/esm2022/lib/dashboard/score/pending-results.widget.mjs +3 -3
  293. package/esm2022/lib/dashboard/score/personal-score.widget.mjs +3 -3
  294. package/esm2022/lib/dashboard/widget-item.component.mjs +3 -3
  295. package/esm2022/lib/designer.module.mjs +4 -4
  296. package/esm2022/lib/desktop.module.mjs +4 -4
  297. package/esm2022/lib/home/about/about.dialog.mjs +3 -3
  298. package/esm2022/lib/home/home-base.component.mjs +3 -3
  299. package/esm2022/lib/home/home.desktop.component.mjs +3 -3
  300. package/esm2022/lib/home/home.mobile.component.mjs +3 -3
  301. package/esm2022/lib/home/notifications/notifications.component.mjs +3 -3
  302. package/esm2022/lib/home/options/options.component.mjs +5 -5
  303. package/esm2022/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  304. package/esm2022/lib/home/sign/sign.component.mjs +3 -3
  305. package/esm2022/lib/home/tools.component.mjs +3 -3
  306. package/esm2022/lib/impersonate/impersonate.component.mjs +5 -5
  307. package/esm2022/lib/mobile.module.mjs +4 -4
  308. package/esm2022/lib/modules/chart.module.mjs +4 -4
  309. package/esm2022/lib/modules/circular-gauge.module.mjs +4 -4
  310. package/esm2022/lib/modules/datepicker.intl.mjs +3 -3
  311. package/esm2022/lib/modules/dayjs.module.mjs +4 -4
  312. package/esm2022/lib/modules/diagram.module.mjs +4 -4
  313. package/esm2022/lib/modules/gantt.module.mjs +4 -4
  314. package/esm2022/lib/modules/grid.module.mjs +4 -4
  315. package/esm2022/lib/modules/linear-gauge.module.mjs +4 -4
  316. package/esm2022/lib/modules/material.module.mjs +4 -4
  317. package/esm2022/lib/modules/paginator.intl.mjs +3 -3
  318. package/esm2022/lib/modules/pivot.module.mjs +4 -4
  319. package/esm2022/lib/modules/schedule.module.mjs +4 -4
  320. package/esm2022/lib/modules/spreadsheet.module.mjs +4 -4
  321. package/esm2022/lib/modules/stepper.intl.mjs +3 -3
  322. package/esm2022/lib/modules/texteditor.module.mjs +4 -4
  323. package/esm2022/lib/notifications/filter.component.mjs +3 -3
  324. package/esm2022/lib/notifications/notifications-table.component.mjs +3 -3
  325. package/esm2022/lib/notifications/notifications.mobile.component.mjs +3 -3
  326. package/esm2022/lib/notifications/notifications.pane.component.mjs +3 -3
  327. package/esm2022/lib/notifications/notifications.service.mjs +3 -3
  328. package/esm2022/lib/notifications/types/commented.notification.mjs +3 -3
  329. package/esm2022/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  330. package/esm2022/lib/notifications/types/escalated.notification.mjs +3 -3
  331. package/esm2022/lib/notifications/types/invite.notification.mjs +3 -3
  332. package/esm2022/lib/notifications/types/liked.notification.mjs +3 -3
  333. package/esm2022/lib/notifications/types/long-running-task.notification.mjs +3 -3
  334. package/esm2022/lib/notifications/types/notification-base.mjs +3 -3
  335. package/esm2022/lib/notifications/types/nudge.notification.mjs +3 -3
  336. package/esm2022/lib/notifications/types/state-changed.notification.mjs +3 -3
  337. package/esm2022/lib/notifications/types/tagged.notification.mjs +3 -3
  338. package/esm2022/lib/notifications/types/text.notification.mjs +3 -3
  339. package/esm2022/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  340. package/esm2022/lib/options/options.component.mjs +3 -3
  341. package/esm2022/lib/options/options.service.mjs +3 -3
  342. package/esm2022/lib/reports/arguments-component.mjs +3 -3
  343. package/esm2022/lib/reports/cube/documents.component.mjs +3 -3
  344. package/esm2022/lib/reports/cube/grid-documents.component.mjs +3 -3
  345. package/esm2022/lib/reports/cube/role-performance.component.mjs +3 -3
  346. package/esm2022/lib/reports/cube/table-documents.component.mjs +3 -3
  347. package/esm2022/lib/reports/cube/usage-args.component.mjs +3 -3
  348. package/esm2022/lib/reports/cube/usage-base.mjs +3 -3
  349. package/esm2022/lib/reports/cube/usage-chart.component.mjs +3 -3
  350. package/esm2022/lib/reports/cube/usage-pivot.component.mjs +3 -3
  351. package/esm2022/lib/reports/cube/usage.component.mjs +3 -3
  352. package/esm2022/lib/reports/report-viewer.component.mjs +3 -3
  353. package/esm2022/lib/reports/report.mobile.component.mjs +3 -3
  354. package/esm2022/lib/reports/report.pane.component.mjs +3 -3
  355. package/esm2022/lib/reports/reports-menu.component.mjs +3 -3
  356. package/esm2022/lib/reports/substitution/substitution.component.mjs +3 -3
  357. package/esm2022/lib/reports/table/table-view.component.mjs +3 -3
  358. package/esm2022/lib/reports/tasks/tasks.component.mjs +3 -3
  359. package/esm2022/lib/scheduler/schedule.component.mjs +5 -5
  360. package/esm2022/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  361. package/esm2022/lib/scheduler/scheduler.pane.component.mjs +3 -3
  362. package/esm2022/lib/search/cube.component.mjs +3 -3
  363. package/esm2022/lib/search/document.component.mjs +3 -3
  364. package/esm2022/lib/search/guide.component.mjs +3 -3
  365. package/esm2022/lib/search/path.component.mjs +3 -3
  366. package/esm2022/lib/search/search.service.mjs +3 -3
  367. package/esm2022/lib/shared.module.mjs +4 -4
  368. package/esm2022/lib/system.module.mjs +10 -7
  369. package/esm2022/lib/views/cube/chart.component.mjs +3 -3
  370. package/esm2022/lib/views/cube/cube-base.mjs +3 -3
  371. package/esm2022/lib/views/cube/explore.component.mjs +3 -3
  372. package/esm2022/lib/views/cube/matrix.component.mjs +3 -3
  373. package/esm2022/lib/views/cube/parallel.component.mjs +4 -4
  374. package/esm2022/lib/views/cube/pivot.component.mjs +3 -3
  375. package/esm2022/lib/views/cube/sum.component.mjs +3 -3
  376. package/esm2022/lib/views/cube/view.component.mjs +3 -3
  377. package/esm2022/lib/views/timeline/timeline.component.exp.mjs +3 -3
  378. package/esm2022/lib/views/view-item.component.mjs +3 -3
  379. package/esm2022/lib/views/views.component.mjs +3 -3
  380. package/esm2022/lib/views/views.mobile.component.mjs +3 -3
  381. package/esm2022/lib/views/views.pane.component.mjs +5 -6
  382. package/fesm2022/bizdoc-core.mjs +1317 -1272
  383. package/fesm2022/bizdoc-core.mjs.map +1 -1
  384. package/lib/admin/architecture/declarations.d.ts +1 -0
  385. package/lib/admin/architecture/elements/cube.component.d.ts +1 -2
  386. package/lib/admin/architecture/elements/job.component.d.ts +19 -0
  387. package/lib/admin/system.service.d.ts +5 -0
  388. package/lib/cube/filter/filter.component.d.ts +1 -1
  389. package/lib/cube/pivot/pivot.component.d.ts +1 -2
  390. package/lib/system.module.d.ts +56 -55
  391. package/lib/views/cube/parallel.component.d.ts +1 -1
  392. package/package.json +17 -17
@@ -135,12 +135,12 @@ export class ProfileSettingsDialog {
135
135
  inp.value = '';
136
136
  this.form.patchValue({});
137
137
  }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ProfileSettingsDialog, deps: [{ token: i1.AccountService }, { token: i2.MatDialogRef }, { token: i3.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ProfileSettingsDialog, selector: "ng-component", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }], ngImport: i0, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column\" formGroupName=\"outOfOffice\">\r\n <h3 class=\"mat-body-strong\">{{'OutOfOffice'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n <mat-option *ngFor=\"let u of ousers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.controls['from'].value\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h3 class=\"mat-body-strong\">{{'GrantAccess'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n <mat-chip-row *ngFor=\"let u of grantAccess.value.users || []\"\r\n [removable]=\"grantAccess.value.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\">&nbsp; - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n</mat-dialog-actions>\r\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i5.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.UserNamePipe, name: "userName" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
138
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ProfileSettingsDialog, deps: [{ token: i1.AccountService }, { token: i2.MatDialogRef }, { token: i3.FormBuilder }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
139
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ProfileSettingsDialog, selector: "ng-component", viewQueries: [{ propertyName: "substitueInput", first: true, predicate: ["substitueInput"], descendants: true, read: MatInput }, { propertyName: "grantInput", first: true, predicate: ["grantInput"], descendants: true, read: MatChipInput }], ngImport: i0, template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column\" formGroupName=\"outOfOffice\">\r\n <h3 class=\"mat-mdc-body-strong\">{{'OutOfOffice'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n <mat-option *ngFor=\"let u of ousers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.controls['from'].value\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h3 class=\"mat-mdc-body-strong\">{{'GrantAccess'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n <mat-chip-row *ngFor=\"let u of grantAccess.value.users || []\"\r\n [removable]=\"grantAccess.value.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\">&nbsp; - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n</mat-dialog-actions>\r\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i5.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i5.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i5.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i5.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i2.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i2.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i2.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i7.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i10.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i11.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i14.UserNamePipe, name: "userName" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }] }); }
140
140
  }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ProfileSettingsDialog, decorators: [{
141
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ProfileSettingsDialog, decorators: [{
142
142
  type: Component,
143
- args: [{ template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column\" formGroupName=\"outOfOffice\">\r\n <h3 class=\"mat-body-strong\">{{'OutOfOffice'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n <mat-option *ngFor=\"let u of ousers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.controls['from'].value\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h3 class=\"mat-body-strong\">{{'GrantAccess'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n <mat-chip-row *ngFor=\"let u of grantAccess.value.users || []\"\r\n [removable]=\"grantAccess.value.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\">&nbsp; - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n</mat-dialog-actions>\r\n" }]
143
+ args: [{ template: "<h2 mat-dialog-title>{{'Settings' | translate }}</h2>\r\n<mat-dialog-content>\r\n <form autocomplete=\"off\" [formGroup]=\"form\">\r\n <div class=\"column\" formGroupName=\"outOfOffice\">\r\n <h3 class=\"mat-mdc-body-strong\">{{'OutOfOffice'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <br />\r\n <mat-form-field class=\"flex\">\r\n <input matInput [formControl]=\"substitute\" type=\"search\" [matAutocomplete]=\"sauto\" #substitueInput\r\n [placeholder]=\"'Associate' | translate\" [required]=\"outOfOffice.value.active\" />\r\n <mat-autocomplete #sauto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"setId($event)\">\r\n <mat-option *ngFor=\"let u of ousers$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <div>\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"from\" formControlName=\"from\" placeholder=\"{{'From'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"from\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #from></mat-datepicker>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field>\r\n <input matInput [matDatepicker]=\"to\" formControlName=\"to\" [min]=\"form.controls['from'].value\" placeholder=\"{{'To'| translate}}\" />\r\n <mat-datepicker-toggle [for]=\"to\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #to></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <!--<hr />-->\r\n <div class=\"column\" formGroupName=\"grantAccess\">\r\n <h3 class=\"mat-mdc-body-strong\">{{'GrantAccess'|translate}}</h3>\r\n <mat-slide-toggle formControlName=\"active\">{{'Active' | translate}}</mat-slide-toggle>\r\n <mat-form-field>\r\n <mat-chip-grid #grantList [attr.aria-label]=\"\" [disabled]=\"!grantAccess.value.active\">\r\n <mat-chip-row *ngFor=\"let u of grantAccess.value.users || []\"\r\n [removable]=\"grantAccess.value.active\"\r\n (removed)=\"removeGrant(u)\">\r\n {{u | userName | async}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip-row>\r\n </mat-chip-grid>\r\n <input [formControl]=\"grants\" placeholder=\"{{'Users'| translate}}\"\r\n [required]=\"grantAccess.value.active\"\r\n [matAutocomplete]=\"grantAuto\"\r\n #grantInput\r\n [matChipInputFor]=\"grantList\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\">\r\n <mat-autocomplete #grantAuto=\"matAutocomplete\" (optionSelected)=\"addGrant(grantInput, $event)\">\r\n <mat-option *ngFor=\"let u of gusers$ | async\" [value]=\"u.id\">\r\n {{u.name}}\r\n <span *ngIf=\"u.email\">&nbsp; - {{u.email}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </div>\r\n </form>\r\n</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"form.value\" color=\"primary\" [disabled]=\"!form.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n</mat-dialog-actions>\r\n" }]
144
144
  }], ctorParameters: function () { return [{ type: i1.AccountService }, { type: i2.MatDialogRef }, { type: i3.FormBuilder }, { type: undefined, decorators: [{
145
145
  type: Inject,
146
146
  args: [MAT_DIALOG_DATA]
@@ -151,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
151
151
  type: ViewChild,
152
152
  args: ['grantInput', { read: MatChipInput }]
153
153
  }] } });
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0b2ZvZmZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9vdXRvZm9mZmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL291dG9mb2ZmaWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVaEQsTUFBTSxPQUFPLHFCQUFxQjtJQXVCaEMsWUFBb0IsU0FBeUIsRUFDbkMsVUFBK0MsRUFDL0MsR0FBZ0IsRUFFakIsS0FBc0I7UUFKWCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUFxQztRQUMvQyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBRWpCLFVBQUssR0FBTCxLQUFL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QUFDLE1BQU0sQ0FBQyxLQUFlLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOztZQUVsRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0E1SFUscUJBQXFCLHVHQTBCdEIsZUFBZTtrR0ExQmQscUJBQXFCLGlKQUlLLFFBQVEsbUdBQ1osWUFBWSw2QkN6Qi9DLGk1R0FnRUE7OzJGRDVDYSxxQkFBcUI7a0JBRGpDLFNBQVM7OzswQkEyQkwsTUFBTTsyQkFBQyxlQUFlOzRDQXRCd0IsY0FBYztzQkFBOUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBMUQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5URVIsIENPTU1BLCBTRU1JQ09MT04gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHNcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCwgZmlsdGVyLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IE91dE9mT2ZmaWNlU2V0dGluZ3MsIEdyYW50U2V0dGluZ3MsIFVzZXJJbmZvLCB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZURhdGEge1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIG91dE9mT2ZmaWNlOiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIGdyYW50QWNjZXNzOiBHcmFudFNldHRpbmdzO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdvdXRvZm9mZmljZS5jb21wb25lbnQuaHRtbCcgfSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVTZXR0aW5nc0RpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUEsIFNFTUlDT0xPTl07XHJcbiAgcmVhZG9ubHkgc3Vic3RpdHV0ZSA9IHRoaXMuX2ZiLmNvbnRyb2w8VXNlckluZm8gfCBzdHJpbmc+KG51bGwpO1xyXG4gIHJlYWRvbmx5IGdyYW50cyA9IHRoaXMuX2ZiLmNvbnRyb2woW10pO1xyXG4gIEBWaWV3Q2hpbGQoJ3N1YnN0aXR1ZUlucHV0JywgeyByZWFkOiBNYXRJbnB1dCB9KSBzdWJzdGl0dWVJbnB1dDogTWF0SW5wdXQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JhbnRJbnB1dCcsIHsgcmVhZDogTWF0Q2hpcElucHV0IH0pIGdyYW50SW5wdXQ6IE1hdENoaXBJbnB1dDtcclxuICByZWFkb25seSBvdXRPZk9mZmljZSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICBzdWJzdGl0dWVJZDogdGhpcy5fZmIuY29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcclxuICAgIGZyb206IHRoaXMuX2ZiLmNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpLFxyXG4gICAgdG86IHRoaXMuX2ZiLmNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZ3JhbnRBY2Nlc3MgPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgdXNlcnM6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nW10+KFtdKVxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBvdXRPZk9mZmljZTogdGhpcy5vdXRPZk9mZmljZSxcclxuICAgIGdyYW50QWNjZXNzOiB0aGlzLmdyYW50QWNjZXNzXHJcbiAgfSk7XHJcbiAgb3VzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBndXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9maWxlU2V0dGluZ3NEaWFsb2c+LFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXHJcbiAgICBwdWJsaWMgbW9kZWw6IE91dE9mT2ZmaWNlRGF0YSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xyXG4gICAgY29uc3QgeyBhY3RpdmUsIHRvLCBmcm9tIH0gPSB0aGlzLm91dE9mT2ZmaWNlLmNvbnRyb2xzO1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsLm91dE9mT2ZmaWNlIHx8ICF0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLmFjdGl2ZSkge1xyXG4gICAgICB0by5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgZnJvbS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgdGhpcy5zdWJzdGl0dXRlLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1dGUuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgaWYgKCF0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLmZyb20pXHJcbiAgICAgICAgdG8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkICYmXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldCh0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5zZXRWYWx1ZSh1LCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gICAgYWN0aXZlLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHtcclxuICAgICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgICBmcm9tLmVuYWJsZSgpO1xyXG4gICAgICAgICAgZnJvbS52YWx1ZSAmJiB0by5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJbnB1dC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGZyb20uZGlzYWJsZSgpO1xyXG4gICAgICAgICAgdG8uZGlzYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dXRlLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dXRlLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5vdXNlcnMkID0gdGhpcy5zdWJzdGl0dXRlLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT4gdGhpcy5fYWNjb3VudHMuZmluZEFsbCh2IGFzIGFueSkpLFxyXG4gICAgICBtYXAociA9PiByLmZpbHRlcih1ID0+IHUuaWQgIT09IHRoaXMubW9kZWwudXNlcklkKSkpO1xyXG4gICAgZnJvbS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgdG8uZW5hYmxlKCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdG8uZGlzYWJsZSgpO1xyXG4gICAgICB9KTtcclxuICAgIGlmICghdGhpcy5tb2RlbC5ncmFudEFjY2VzcyB8fCAhdGhpcy5tb2RlbC5ncmFudEFjY2Vzcy5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5ncmFudHMuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyYW50QWNjZXNzLmNvbnRyb2xzWydhY3RpdmUnXS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICB0aGlzLmdyYW50cy5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuZ3JhbnRzLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLmdyYW50SW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdyYW50cy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5ndXNlcnMkID0gdGhpcy5ncmFudHMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZCgpKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYgYXMgYW55KSksXHJcbiAgICAgIG1hcChyID0+IHIuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5tb2RlbC51c2VySWQpKSk7XHJcbiAgfVxyXG4gIHVzZXJEaXNwbGF5ID0gKGl0ZW06IFVzZXJJbmZvKSA9PiB7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0ubmFtZSA6IG51bGw7XHJcbiAgfVxyXG4gIHNldElkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCB7IGlkIH0gPSBldmVudC5vcHRpb24udmFsdWUgYXMgVXNlckluZm87XHJcbiAgICB0aGlzLm91dE9mT2ZmaWNlLmNvbnRyb2xzWydzdWJzdGl0dWVJZCddLnNldFZhbHVlKGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlR3JhbnQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3M/LnVzZXJzO1xyXG4gICAgY29uc3QgaW5kZXggPSB1c2Vycy5pbmRleE9mKGlkKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgdXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlucFxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIGFkZEdyYW50KGlucDogSFRNTElucHV0RWxlbWVudCwgZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXJzID0gdGhpcy5mb3JtLnZhbHVlLmdyYW50QWNjZXNzPy51c2VycztcclxuICAgIGNvbnN0IGlkID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIHN0cmluZztcclxuICAgIGlmICghdXNlcnMpXHJcbiAgICAgIHRoaXMuZ3JhbnRBY2Nlc3MuY29udHJvbHNbJ3VzZXJzJ10uc2V0VmFsdWUoW2lkXSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHVzZXJzLnB1c2goaWQpO1xyXG4gICAgaW5wLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7J1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XHJcbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgZm9ybUdyb3VwTmFtZT1cIm91dE9mT2ZmaWNlXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cIm1hdC1ib2R5LXN0cm9uZ1wiPnt7J091dE9mT2ZmaWNlJ3x0cmFuc2xhdGV9fTwvaDM+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImFjdGl2ZVwiPnt7J0FjdGl2ZScgfCB0cmFuc2xhdGV9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPGJyIC8+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImZsZXhcIj5cclxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cInN1YnN0aXR1dGVcIiB0eXBlPVwic2VhcmNoXCIgW21hdEF1dG9jb21wbGV0ZV09XCJzYXV0b1wiICNzdWJzdGl0dWVJbnB1dFxyXG4gICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0Fzc29jaWF0ZScgfCB0cmFuc2xhdGVcIiBbcmVxdWlyZWRdPVwib3V0T2ZPZmZpY2UudmFsdWUuYWN0aXZlXCIgLz5cclxuICAgICAgICA8bWF0LWF1dG9jb21wbGV0ZSAjc2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwidXNlckRpc3BsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJzZXRJZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdSBvZiBvdXNlcnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwidVwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW21hdERhdGVwaWNrZXJdPVwiZnJvbVwiIGZvcm1Db250cm9sTmFtZT1cImZyb21cIiBwbGFjZWhvbGRlcj1cInt7J0Zyb20nfCB0cmFuc2xhdGV9fVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwiZnJvbVwiIG1hdFN1ZmZpeD48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbT48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgJm5ic3A7XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cInRvXCIgZm9ybUNvbnRyb2xOYW1lPVwidG9cIiBbbWluXT1cImZvcm0uY29udHJvbHNbJ2Zyb20nXS52YWx1ZVwiIHBsYWNlaG9sZGVyPVwie3snVG8nfCB0cmFuc2xhdGV9fVwiIC8+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIFtmb3JdPVwidG9cIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3RvPjwvbWF0LWRhdGVwaWNrZXI+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS08aHIgLz4tLT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2x1bW5cIiBmb3JtR3JvdXBOYW1lPVwiZ3JhbnRBY2Nlc3NcIj5cclxuICAgICAgPGgzIGNsYXNzPVwibWF0LWJvZHktc3Ryb25nXCI+e3snR3JhbnRBY2Nlc3MnfHRyYW5zbGF0ZX19PC9oMz5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwiYWN0aXZlXCI+e3snQWN0aXZlJyB8IHRyYW5zbGF0ZX19PC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1jaGlwLWdyaWQgI2dyYW50TGlzdCBbYXR0ci5hcmlhLWxhYmVsXT1cIlwiIFtkaXNhYmxlZF09XCIhZ3JhbnRBY2Nlc3MudmFsdWUuYWN0aXZlXCI+XHJcbiAgICAgICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCB1IG9mIGdyYW50QWNjZXNzLnZhbHVlLnVzZXJzIHx8IFtdXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3JlbW92YWJsZV09XCJncmFudEFjY2Vzcy52YWx1ZS5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZCk9XCJyZW1vdmVHcmFudCh1KVwiPlxyXG4gICAgICAgICAgICB7e3UgfCB1c2VyTmFtZSB8IGFzeW5jfX1cclxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmU+Y2FuY2VsPC9tYXQtaWNvbj5cclxuICAgICAgICAgIDwvbWF0LWNoaXAtcm93PlxyXG4gICAgICAgIDwvbWF0LWNoaXAtZ3JpZD5cclxuICAgICAgICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cImdyYW50c1wiIHBsYWNlaG9sZGVyPVwie3snVXNlcnMnfCB0cmFuc2xhdGV9fVwiXHJcbiAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJncmFudEFjY2Vzcy52YWx1ZS5hY3RpdmVcIlxyXG4gICAgICAgICAgICAgICBbbWF0QXV0b2NvbXBsZXRlXT1cImdyYW50QXV0b1wiXHJcbiAgICAgICAgICAgICAgICNncmFudElucHV0XHJcbiAgICAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiZ3JhbnRMaXN0XCJcclxuICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dFNlcGFyYXRvcktleUNvZGVzXT1cInNlcGFyYXRvcktleXNDb2Rlc1wiPlxyXG4gICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlICNncmFudEF1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwiYWRkR3JhbnQoZ3JhbnRJbnB1dCwgJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgZ3VzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj5cclxuICAgICAgICAgICAge3t1Lm5hbWV9fVxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInUuZW1haWxcIj4mbmJzcDsgLSB7e3UuZW1haWx9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Zvcm0+XHJcbjwvbWF0LWRpYWxvZy1jb250ZW50PlxyXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmb3JtLnZhbHVlXCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkXCI+e3snT0snIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT57eydDYW5jZWwnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0b2ZvZmZpY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9vdXRvZm9mZmljZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL291dG9mb2ZmaWNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVaEQsTUFBTSxPQUFPLHFCQUFxQjtJQXVCaEMsWUFBb0IsU0FBeUIsRUFDbkMsVUFBK0MsRUFDL0MsR0FBZ0IsRUFFakIsS0FBc0I7UUFKWCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUNuQyxlQUFVLEdBQVYsVUFBVSxDQUFxQztRQUMvQyxRQUFHLEdBQUgsR0FBRyxDQUFhO1FBRWpCLFVBQUssR0FBTCxLQUFL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QUFDLE1BQU0sQ0FBQyxLQUFlLENBQUM7UUFDeEMsSUFBSSxDQUFDLEtBQUs7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOztZQUVsRCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQzs4R0E1SFUscUJBQXFCLHVHQTBCdEIsZUFBZTtrR0ExQmQscUJBQXFCLGlKQUlLLFFBQVEsbUdBQ1osWUFBWSw2QkN6Qi9DLHk1R0FnRUE7OzJGRDVDYSxxQkFBcUI7a0JBRGpDLFNBQVM7OzswQkEyQkwsTUFBTTsyQkFBQyxlQUFlOzRDQXRCd0IsY0FBYztzQkFBOUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7Z0JBQ0UsVUFBVTtzQkFBMUQsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRU5URVIsIENPTU1BLCBTRU1JQ09MT04gfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2tleWNvZGVzXCI7XHJcbmltcG9ydCB7IFZpZXdDaGlsZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgVmFsaWRhdG9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZVwiO1xyXG5pbXBvcnQgeyBNYXRDaGlwSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHNcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nXCI7XHJcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCwgZmlsdGVyLCBzd2l0Y2hNYXAsIG1hcCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYWNjb3VudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSBcIi4uLy4uL2NvcmUvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7IE91dE9mT2ZmaWNlU2V0dGluZ3MsIEdyYW50U2V0dGluZ3MsIFVzZXJJbmZvLCB9IGZyb20gXCIuLi8uLi9jb3JlL21vZGVsc1wiO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPdXRPZk9mZmljZURhdGEge1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIG91dE9mT2ZmaWNlOiBPdXRPZk9mZmljZVNldHRpbmdzO1xyXG4gIGdyYW50QWNjZXNzOiBHcmFudFNldHRpbmdzO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGVVcmw6ICdvdXRvZm9mZmljZS5jb21wb25lbnQuaHRtbCcgfSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVTZXR0aW5nc0RpYWxvZyBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgc2VwYXJhdG9yS2V5c0NvZGVzOiBudW1iZXJbXSA9IFtFTlRFUiwgQ09NTUEsIFNFTUlDT0xPTl07XHJcbiAgcmVhZG9ubHkgc3Vic3RpdHV0ZSA9IHRoaXMuX2ZiLmNvbnRyb2w8VXNlckluZm8gfCBzdHJpbmc+KG51bGwpO1xyXG4gIHJlYWRvbmx5IGdyYW50cyA9IHRoaXMuX2ZiLmNvbnRyb2woW10pO1xyXG4gIEBWaWV3Q2hpbGQoJ3N1YnN0aXR1ZUlucHV0JywgeyByZWFkOiBNYXRJbnB1dCB9KSBzdWJzdGl0dWVJbnB1dDogTWF0SW5wdXQ7XHJcbiAgQFZpZXdDaGlsZCgnZ3JhbnRJbnB1dCcsIHsgcmVhZDogTWF0Q2hpcElucHV0IH0pIGdyYW50SW5wdXQ6IE1hdENoaXBJbnB1dDtcclxuICByZWFkb25seSBvdXRPZk9mZmljZSA9IHRoaXMuX2ZiLmdyb3VwKHtcclxuICAgIGFjdGl2ZTogdGhpcy5fZmIuY29udHJvbChmYWxzZSksXHJcbiAgICBzdWJzdGl0dWVJZDogdGhpcy5fZmIuY29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsKSxcclxuICAgIGZyb206IHRoaXMuX2ZiLmNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpLFxyXG4gICAgdG86IHRoaXMuX2ZiLmNvbnRyb2w8RGF0ZSB8IG51bGw+KG51bGwpXHJcbiAgfSk7XHJcbiAgcmVhZG9ubHkgZ3JhbnRBY2Nlc3MgPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBhY3RpdmU6IHRoaXMuX2ZiLmNvbnRyb2woZmFsc2UpLFxyXG4gICAgdXNlcnM6IHRoaXMuX2ZiLmNvbnRyb2w8c3RyaW5nW10+KFtdKVxyXG4gIH0pO1xyXG4gIHJlYWRvbmx5IGZvcm0gPSB0aGlzLl9mYi5ncm91cCh7XHJcbiAgICBvdXRPZk9mZmljZTogdGhpcy5vdXRPZk9mZmljZSxcclxuICAgIGdyYW50QWNjZXNzOiB0aGlzLmdyYW50QWNjZXNzXHJcbiAgfSk7XHJcbiAgb3VzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBndXNlcnMkOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9hY2NvdW50czogQWNjb3VudFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQcm9maWxlU2V0dGluZ3NEaWFsb2c+LFxyXG4gICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXHJcbiAgICBwdWJsaWMgbW9kZWw6IE91dE9mT2ZmaWNlRGF0YSkge1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHRoaXMubW9kZWwpO1xyXG4gICAgY29uc3QgeyBhY3RpdmUsIHRvLCBmcm9tIH0gPSB0aGlzLm91dE9mT2ZmaWNlLmNvbnRyb2xzO1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsLm91dE9mT2ZmaWNlIHx8ICF0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLmFjdGl2ZSkge1xyXG4gICAgICB0by5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgZnJvbS5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuICAgICAgdGhpcy5zdWJzdGl0dXRlLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnN1YnN0aXR1dGUuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICAgICAgaWYgKCF0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLmZyb20pXHJcbiAgICAgICAgdG8uZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkICYmXHJcbiAgICAgIHRoaXMuX2FjY291bnRzLmdldCh0aGlzLm1vZGVsLm91dE9mT2ZmaWNlLnN1YnN0aXR1ZUlkKS5zdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5zZXRWYWx1ZSh1LCB7IGVtaXRFdmVudDogZmFsc2UgfSkpO1xyXG4gICAgYWN0aXZlLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSkpLlxyXG4gICAgICBzdWJzY3JpYmUoYWN0aXZlID0+IHtcclxuICAgICAgICBpZiAoYWN0aXZlKSB7XHJcbiAgICAgICAgICBmcm9tLmVuYWJsZSgpO1xyXG4gICAgICAgICAgZnJvbS52YWx1ZSAmJiB0by5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuc3Vic3RpdHV0ZS5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dWVJbnB1dC5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGZyb20uZGlzYWJsZSgpO1xyXG4gICAgICAgICAgdG8uZGlzYWJsZSgpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dXRlLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICAgICAgdGhpcy5zdWJzdGl0dXRlLmRpc2FibGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5vdXNlcnMkID0gdGhpcy5zdWJzdGl0dXRlLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSksXHJcbiAgICAgIGZpbHRlcih2ID0+IGlzU3RyaW5nKHYpKSxcclxuICAgICAgc3dpdGNoTWFwKHYgPT4gdGhpcy5fYWNjb3VudHMuZmluZEFsbCh2IGFzIGFueSkpLFxyXG4gICAgICBtYXAociA9PiByLmZpbHRlcih1ID0+IHUuaWQgIT09IHRoaXMubW9kZWwudXNlcklkKSkpO1xyXG4gICAgZnJvbS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KVxyXG4gICAgICAgICAgdG8uZW5hYmxlKCk7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdG8uZGlzYWJsZSgpO1xyXG4gICAgICB9KTtcclxuICAgIGlmICghdGhpcy5tb2RlbC5ncmFudEFjY2VzcyB8fCAhdGhpcy5tb2RlbC5ncmFudEFjY2Vzcy5hY3RpdmUpIHtcclxuICAgICAgdGhpcy5ncmFudHMuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmdyYW50QWNjZXNzLmNvbnRyb2xzWydhY3RpdmUnXS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpKS5cclxuICAgICAgc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgIGlmICh2KSB7XHJcbiAgICAgICAgICB0aGlzLmdyYW50cy5lbmFibGUoKTtcclxuICAgICAgICAgIHRoaXMuZ3JhbnRzLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgICB0aGlzLmdyYW50SW5wdXQuZm9jdXMoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmdyYW50cy5jbGVhclZhbGlkYXRvcnMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5ndXNlcnMkID0gdGhpcy5ncmFudHMudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX2RpYWxvZ1JlZi5hZnRlckNsb3NlZCgpKSxcclxuICAgICAgZmlsdGVyKHYgPT4gaXNTdHJpbmcodikpLFxyXG4gICAgICBzd2l0Y2hNYXAodiA9PiB0aGlzLl9hY2NvdW50cy5maW5kQWxsKHYgYXMgYW55KSksXHJcbiAgICAgIG1hcChyID0+IHIuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5tb2RlbC51c2VySWQpKSk7XHJcbiAgfVxyXG4gIHVzZXJEaXNwbGF5ID0gKGl0ZW06IFVzZXJJbmZvKSA9PiB7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0ubmFtZSA6IG51bGw7XHJcbiAgfVxyXG4gIHNldElkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50KSB7XHJcbiAgICBjb25zdCB7IGlkIH0gPSBldmVudC5vcHRpb24udmFsdWUgYXMgVXNlckluZm87XHJcbiAgICB0aGlzLm91dE9mT2ZmaWNlLmNvbnRyb2xzWydzdWJzdGl0dWVJZCddLnNldFZhbHVlKGlkKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlkXHJcbiAgICovXHJcbiAgcmVtb3ZlR3JhbnQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgdXNlcnMgPSB0aGlzLmZvcm0udmFsdWUuZ3JhbnRBY2Nlc3M/LnVzZXJzO1xyXG4gICAgY29uc3QgaW5kZXggPSB1c2Vycy5pbmRleE9mKGlkKTtcclxuXHJcbiAgICBpZiAoaW5kZXggPj0gMClcclxuICAgICAgdXNlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHt9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGlucFxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIGFkZEdyYW50KGlucDogSFRNTElucHV0RWxlbWVudCwgZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHVzZXJzID0gdGhpcy5mb3JtLnZhbHVlLmdyYW50QWNjZXNzPy51c2VycztcclxuICAgIGNvbnN0IGlkID0gZXZlbnQub3B0aW9uLnZhbHVlIGFzIHN0cmluZztcclxuICAgIGlmICghdXNlcnMpXHJcbiAgICAgIHRoaXMuZ3JhbnRBY2Nlc3MuY29udHJvbHNbJ3VzZXJzJ10uc2V0VmFsdWUoW2lkXSk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHVzZXJzLnB1c2goaWQpO1xyXG4gICAgaW5wLnZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7fSk7XHJcbiAgfVxyXG59XHJcbiIsIjxoMiBtYXQtZGlhbG9nLXRpdGxlPnt7J1NldHRpbmdzJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XHJcbjxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgZm9ybUdyb3VwTmFtZT1cIm91dE9mT2ZmaWNlXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cIm1hdC1tZGMtYm9keS1zdHJvbmdcIj57eydPdXRPZk9mZmljZSd8dHJhbnNsYXRlfX08L2gzPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDxiciAvPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICAgICAgPGlucHV0IG1hdElucHV0IFtmb3JtQ29udHJvbF09XCJzdWJzdGl0dXRlXCIgdHlwZT1cInNlYXJjaFwiIFttYXRBdXRvY29tcGxldGVdPVwic2F1dG9cIiAjc3Vic3RpdHVlSW5wdXRcclxuICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidBc3NvY2lhdGUnIHwgdHJhbnNsYXRlXCIgW3JlcXVpcmVkXT1cIm91dE9mT2ZmaWNlLnZhbHVlLmFjdGl2ZVwiIC8+XHJcbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI3NhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgW2Rpc3BsYXlXaXRoXT1cInVzZXJEaXNwbGF5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAob3B0aW9uU2VsZWN0ZWQpPVwic2V0SWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2Ygb3VzZXJzJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInVcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3t1Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IFttYXREYXRlcGlja2VyXT1cImZyb21cIiBmb3JtQ29udHJvbE5hbWU9XCJmcm9tXCIgcGxhY2Vob2xkZXI9XCJ7eydGcm9tJ3wgdHJhbnNsYXRlfX1cIiAvPlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cImZyb21cIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI2Zyb20+PC9tYXQtZGF0ZXBpY2tlcj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbbWF0RGF0ZXBpY2tlcl09XCJ0b1wiIGZvcm1Db250cm9sTmFtZT1cInRvXCIgW21pbl09XCJmb3JtLmNvbnRyb2xzWydmcm9tJ10udmFsdWVcIiBwbGFjZWhvbGRlcj1cInt7J1RvJ3wgdHJhbnNsYXRlfX1cIiAvPlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBbZm9yXT1cInRvXCIgbWF0U3VmZml4PjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxyXG4gICAgICAgICAgPG1hdC1kYXRlcGlja2VyICN0bz48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tPGhyIC8+LS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sdW1uXCIgZm9ybUdyb3VwTmFtZT1cImdyYW50QWNjZXNzXCI+XHJcbiAgICAgIDxoMyBjbGFzcz1cIm1hdC1tZGMtYm9keS1zdHJvbmdcIj57eydHcmFudEFjY2Vzcyd8dHJhbnNsYXRlfX08L2gzPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJhY3RpdmVcIj57eydBY3RpdmUnIHwgdHJhbnNsYXRlfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWNoaXAtZ3JpZCAjZ3JhbnRMaXN0IFthdHRyLmFyaWEtbGFiZWxdPVwiXCIgW2Rpc2FibGVkXT1cIiFncmFudEFjY2Vzcy52YWx1ZS5hY3RpdmVcIj5cclxuICAgICAgICAgIDxtYXQtY2hpcC1yb3cgKm5nRm9yPVwibGV0IHUgb2YgZ3JhbnRBY2Nlc3MudmFsdWUudXNlcnMgfHwgW11cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cImdyYW50QWNjZXNzLnZhbHVlLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChyZW1vdmVkKT1cInJlbW92ZUdyYW50KHUpXCI+XHJcbiAgICAgICAgICAgIHt7dSB8IHVzZXJOYW1lIHwgYXN5bmN9fVxyXG4gICAgICAgICAgICA8bWF0LWljb24gbWF0Q2hpcFJlbW92ZT5jYW5jZWw8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9tYXQtY2hpcC1yb3c+XHJcbiAgICAgICAgPC9tYXQtY2hpcC1ncmlkPlxyXG4gICAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiZ3JhbnRzXCIgcGxhY2Vob2xkZXI9XCJ7eydVc2Vycyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImdyYW50QWNjZXNzLnZhbHVlLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiZ3JhbnRBdXRvXCJcclxuICAgICAgICAgICAgICAgI2dyYW50SW5wdXRcclxuICAgICAgICAgICAgICAgW21hdENoaXBJbnB1dEZvcl09XCJncmFudExpc3RcIlxyXG4gICAgICAgICAgICAgICBbbWF0Q2hpcElucHV0U2VwYXJhdG9yS2V5Q29kZXNdPVwic2VwYXJhdG9yS2V5c0NvZGVzXCI+XHJcbiAgICAgICAgPG1hdC1hdXRvY29tcGxldGUgI2dyYW50QXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJhZGRHcmFudChncmFudElucHV0LCAkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdSBvZiBndXNlcnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwidS5pZFwiPlxyXG4gICAgICAgICAgICB7e3UubmFtZX19XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidS5lbWFpbFwiPiZuYnNwOyAtIHt7dS5lbWFpbH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZm9ybT5cclxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbjxtYXQtZGlhbG9nLWFjdGlvbnM+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImZvcm0udmFsdWVcIiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIj57eydPSycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG48L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuIl19
@@ -257,18 +257,18 @@ export let ProfilerComponent = class ProfilerComponent {
257
257
  this._destroy.next();
258
258
  this._destroy.complete();
259
259
  }
260
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ProfilerComponent, deps: [{ token: i1.PromptService }, { token: i2.UtilityRef }, { token: i3.SessionService }, { token: i4.MatDialog }, { token: i5.DocumentInfo }, { token: i6.ChatInfo }, { token: i7.GuideService }, { token: i8.PanesRouter }, { token: i0.ChangeDetectorRef }, { token: i9.PaneRef }, { token: i10.TranslateService }, { token: i11.AccountService }, { token: i12.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
261
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" class=\"row wrap\">\r\n <!-- info -->\r\n <mat-card class=\"flex\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card class=\"flex\" data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card class=\"flex\" data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card class=\"flex\" data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" class=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"], dependencies: [{ kind: "directive", type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i12.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i14.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { kind: "directive", type: i14.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { kind: "component", type: i15.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i15.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i15.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i15.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i15.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i16.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i17.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i18.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i17.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i19.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i20.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i21.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i21.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i22.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i23.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i24.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i25.DifferencePipe, name: "amDifference" }, { kind: "pipe", type: i26.DurationPipe, name: "amDuration" }, { kind: "pipe", type: i27.RolePipe, name: "role" }, { kind: "pipe", type: i28.TranslatePipe, name: "translate" }] }); }
260
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ProfilerComponent, deps: [{ token: i1.PromptService }, { token: i2.UtilityRef }, { token: i3.SessionService }, { token: i4.MatDialog }, { token: i5.DocumentInfo }, { token: i6.ChatInfo }, { token: i7.GuideService }, { token: i8.PanesRouter }, { token: i0.ChangeDetectorRef }, { token: i9.PaneRef }, { token: i10.TranslateService }, { token: i11.AccountService }, { token: i12.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
261
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ProfilerComponent, selector: "ng-component", host: { listeners: { "window:keydown.f1": "guide($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "chart", first: true, predicate: ["activity"], descendants: true }, { propertyName: "chartElement", first: true, predicate: ["activity"], descendants: true, read: ElementRef }, { propertyName: "assignTpl", first: true, predicate: ["assignTpl"], descendants: true }], ngImport: i0, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" class=\"row wrap\">\r\n <!-- info -->\r\n <mat-card class=\"flex\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card class=\"flex\" data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card class=\"flex\" data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-mdc-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-mdc-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-mdc-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card class=\"flex\" data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-mdc-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\">{{p.value }}</td>\r\n <td class=\"mat-mdc-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" class=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-mdc-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"], dependencies: [{ kind: "directive", type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i12.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i12.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i12.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i12.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i12.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i12.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i14.ChartComponent, selector: "ejs-chart", inputs: ["allowExport", "allowMultiSelection", "annotations", "axes", "background", "backgroundImage", "border", "chartArea", "columns", "crosshair", "currencyCode", "dataSource", "description", "enableAnimation", "enableAutoIntervalOnBothAxis", "enableCanvas", "enableExport", "enablePersistence", "enableRtl", "enableSideBySidePlacement", "height", "highlightColor", "highlightMode", "highlightPattern", "indicators", "isMultiSelect", "isTransposed", "legendSettings", "locale", "margin", "palettes", "primaryXAxis", "primaryYAxis", "rangeColorSettings", "rows", "selectedDataIndexes", "selectionMode", "selectionPattern", "series", "subTitle", "subTitleStyle", "tabIndex", "theme", "title", "titleStyle", "tooltip", "useGroupingSeparator", "width", "zoomSettings"], outputs: ["afterExport", "animationComplete", "annotationRender", "axisLabelClick", "axisLabelRender", "axisMultiLabelRender", "axisRangeCalculated", "beforeExport", "beforePrint", "beforeResize", "chartDoubleClick", "chartMouseClick", "chartMouseDown", "chartMouseLeave", "chartMouseMove", "chartMouseUp", "drag", "dragComplete", "dragEnd", "dragStart", "legendClick", "legendRender", "load", "loaded", "multiLevelLabelClick", "onZooming", "pointClick", "pointDoubleClick", "pointMove", "pointRender", "resized", "scrollChanged", "scrollEnd", "scrollStart", "selectionComplete", "seriesRender", "sharedTooltipRender", "textRender", "tooltipRender", "zoomComplete", "dataSourceChange"] }, { kind: "directive", type: i14.SeriesCollectionDirective, selector: "ej-chart>e-series-collection" }, { kind: "component", type: i15.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i15.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i15.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i15.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i15.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i16.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i17.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple", "hideSingleSelectionIndicator"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i18.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i17.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i19.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i20.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i21.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i21.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i22.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i23.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i24.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i13.AsyncPipe, name: "async" }, { kind: "pipe", type: i25.DifferencePipe, name: "amDifference" }, { kind: "pipe", type: i26.DurationPipe, name: "amDuration" }, { kind: "pipe", type: i27.RolePipe, name: "role" }, { kind: "pipe", type: i28.TranslatePipe, name: "translate" }] }); }
262
262
  };
263
263
  ProfilerComponent = __decorate([
264
264
  BizDoc({ selector: 'bizdoc-user-profiler' })
265
265
  /** component*/
266
266
  ], ProfilerComponent);
267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ProfilerComponent, decorators: [{
267
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ProfilerComponent, decorators: [{
268
268
  type: Component,
269
269
  args: [{ host: {
270
270
  class: 'pane'
271
- }, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" class=\"row wrap\">\r\n <!-- info -->\r\n <mat-card class=\"flex\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card class=\"flex\" data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card class=\"flex\" data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-row\">\r\n <td class=\"mat-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card class=\"flex\" data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-row\">\r\n <td class=\"mat-cell\">{{p.value }}</td>\r\n <td class=\"mat-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" class=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"] }]
271
+ }, template: "<mat-toolbar>\r\n <mat-icon (click)=\"null\" class=\"mat-icon-rtl-mirror\">search</mat-icon>\r\n <input matInput type=\"search\" [matAutocomplete]=\"auto\" [formControl]=\"search\" data-help=\"search\" width=\"20\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"userDisplay\"\r\n (optionSelected)=\"change($event)\">\r\n <mat-option *ngFor=\"let u of users$ | async\" [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n </mat-autocomplete>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"guide()\" [bizdocTooltip]=\"'Help' | translate\"><mat-icon>help_outline</mat-icon></button>\r\n</mat-toolbar>\r\n<div *ngIf=\"data\" class=\"row wrap\">\r\n <!-- info -->\r\n <mat-card class=\"flex\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n <span>{{data.info.name}}</span>\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <br />\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <button mat-icon-button (click)=\"chat()\" [bizdocTooltip]=\"'Chat' | translate\" [disabled]=\"!data\"><mat-icon>chat</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"settings()\" [bizdocTooltip]=\"'Settings' | translate\" [disabled]=\"!data\" data-help=\"settings\"><mat-icon>settings</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n <mat-card class=\"flex\" data-help=\"activity\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Activity' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <ejs-chart #activity [primaryXAxis]=\"primaryXAxis\" [primaryYAxis]=\"primaryYAxis\" [zoomSettings]=\"zoomSettings\" [tooltip]='tooltip' (tooltipRender)=\"tooltipRender($event)\" [palettes]=\"palettes\" background=\"transparent\" [theme]='theme' [border]=\"border\" (pointClick)=\"pointClick($event)\">\r\n <e-series-collection>\r\n </e-series-collection>\r\n </ejs-chart>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- pending -->\r\n <mat-card class=\"flex\" data-help=\"pending\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Pending' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-mdc-table\" *ngIf=\"data.pending.length; else none\">\r\n <thead>\r\n <tr class=\"mat-mdc-row\">\r\n <td class=\"mat-header-cell\"></td>\r\n <td class=\"mat-header-cell\"></td>\r\n </tr>\r\n </thead>\r\n <tbody role=\"rowgroup\">\r\n <tr *ngFor=\"let r of data.pending\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\"><a (click)=\"trace(r.id)\">{{r.number}}</a></td>\r\n <td class=\"mat-mdc-cell\">{{ r.received | amDifference : null : 's' | amDuration : 's'}}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </mat-card-content>\r\n </mat-card>\r\n <!-- positions -->\r\n <mat-card class=\"flex\" data-help=\"positions\">\r\n <mat-card-header>\r\n <mat-card-title>\r\n {{'Positions' | translate}}\r\n </mat-card-title>\r\n </mat-card-header>\r\n <mat-card-content>\r\n <table class=\"mat-mdc-table\" *ngIf=\"data.positions.length; else none\">\r\n <tr *ngFor=\"let p of data.positions\" class=\"mat-mdc-row\">\r\n <td class=\"mat-mdc-cell\">{{p.value }}</td>\r\n <td class=\"mat-mdc-cell\">{{p.role | role}}</td>\r\n <td class=\"mat-mdc-cell\">\r\n <button mat-icon-button (click)=\"reassign(p)\" [bizdocTooltip]=\"'Reassign' | translate\"><mat-icon>swap_horiz</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n </mat-card-content>\r\n <mat-card-actions>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"reassign()\" [bizdocTooltip]=\"'ReassignAll' | translate\" [disabled]=\"!data || !data.positions.length\" data-help=\"reassign\"><mat-icon>swap_horiz</mat-icon></button>\r\n </mat-card-actions>\r\n </mat-card>\r\n</div>\r\n<!-- assign dialog -->\r\n<ng-template #assignTpl>\r\n <h2 mat-dialog-title>{{'Reassign' | translate }}</h2>\r\n <mat-dialog-content>\r\n <form autocomplete=\"off\" class=\"column\">\r\n <mat-form-field>\r\n <mat-select placeholder=\"{{'Who' | translate}}\" [formControl]=\"who\" required>\r\n <mat-option *ngFor=\"let u of assignable$ | async\" [value]=\"u.id\">{{u.name}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n </mat-dialog-content>\r\n <mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"who.value\" color=\"primary\" [disabled]=\"!who.valid\">{{'OK' | translate}}</button>\r\n <button mat-button mat-dialog-close>{{'Cancel' | translate}}</button>\r\n </mat-dialog-actions>\r\n</ng-template>\r\n<ng-template #none>\r\n <span class=\"mat-mdc-body-2\">{{'None' | translate }}</span>\r\n</ng-template>\r\n", styles: [":host{min-width:560px;display:block}.mat-mdc-card{margin:5px}.mat-mdc-card:hover{box-shadow:0 3px 3px -2px #0003,0 3px 4px #00000024,0 1px 8px #0000001f}.mat-mdc-table{width:100%}\n"] }]
272
272
  }], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.UtilityRef }, { type: i3.SessionService }, { type: i4.MatDialog }, { type: i5.DocumentInfo }, { type: i6.ChatInfo }, { type: i7.GuideService }, { type: i8.PanesRouter }, { type: i0.ChangeDetectorRef }, { type: i9.PaneRef }, { type: i10.TranslateService }, { type: i11.AccountService }, { type: i12.FormBuilder }]; }, propDecorators: { chart: [{
273
273
  type: ViewChild,
274
274
  args: ['activity']
@@ -282,4 +282,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
282
282
  type: HostListener,
283
283
  args: ['window:keydown.f1', ['$event']]
284
284
  }] } });
285
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9wcm9maWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBa0MsVUFBVSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVzFFLFdBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBcUQ1QixXQUFXO0lBQ1gsWUFBb0IsR0FB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QUFTLEdBQUcsRUFBRSxDQUFDO1lBQzdCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxDQUEwQjtRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBeE9VLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9UQUdHLFVBQVUsc0hDdEMzQyx3NUpBOEdBOztBRDNFYSxpQkFBaUI7SUFGN0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDN0MsZUFBZTtHQUNGLGlCQUFpQixDQXlPN0I7MkZBek9ZLGlCQUFpQjtrQkFUN0IsU0FBUzsyQkFHRjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDt3YUFNc0IsS0FBSztzQkFBM0IsU0FBUzt1QkFBQyxVQUFVO2dCQUN3QixZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ25CLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFpRnRCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkluaXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBDT01NQSwgRU5URVIsIFNFTUlDT0xPTiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IEF4aXNNb2RlbCwgQm9yZGVyTW9kZWwsIENoYXJ0Q29tcG9uZW50LCBJUG9pbnRFdmVudEFyZ3MsIElUb29sdGlwUmVuZGVyRXZlbnRBcmdzLCBMZWdlbmRTZXJpZXNNb2RlbCwgTWFya2VyT3B0aW9uc01vZGVsLCBTZXJpZXNNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIFpvb21TZXR0aW5nc01vZGVsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSwgc3dpdGNoTWFwLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEdyYW50U2V0dGluZ3MsIEd1aWRlU3RlcCwgT3V0T2ZPZmZpY2VTZXR0aW5ncywgVXNlckluZm8gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2NvcmUvaW5mby9kb2N1bWVudC1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gJy4uLy4uL2NvcmUvY29sb3JzJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFByb2ZpbGVTZXR0aW5nc0RpYWxvZywgT3V0T2ZPZmZpY2VEYXRhIH0gZnJvbSAnLi9vdXRvZm9mZmljZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9maWxlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9LFxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtdXNlci1wcm9maWxlcicgfSlcclxuLyoqIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWFyY2ggPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5JykgY2hhcnQ6IENoYXJ0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNoYXJ0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdhc3NpZ25UcGwnKSBhc3NpZ25UcGw6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgcmVhZG9ubHkgd2hvID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBwcmltYXJ5WEF4aXMgPSB7XHJcbiAgICB2YWx1ZVR5cGU6ICdEYXRlVGltZScsXHJcbiAgICBsYWJlbEZvcm1hdDogJ01NTSBkZCcsXHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzID0ge1xyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBzaXplOiAnMHB4J1xyXG4gICAgfSxcclxuICB9IGFzIEF4aXNNb2RlbDtcclxuICByZWFkb25seSB6b29tU2V0dGluZ3M6IFpvb21TZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlTW91c2VXaGVlbFpvb21pbmc6IHRydWUsXHJcbiAgICBlbmFibGVQaW5jaFpvb21pbmc6IHRydWUsXHJcbiAgICB0b29sYmFySXRlbXM6IFtdLFxyXG4gICAgZW5hYmxlU2VsZWN0aW9uWm9vbWluZzogZmFsc2UsXHJcbiAgICBlbmFibGVTY3JvbGxiYXI6IHRydWVcclxuICB9O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgc2hhcmVkOiB0cnVlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBsZWdlbmQ6IExlZ2VuZFNlcmllc01vZGVsID0ge1xyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGJvcmRlciA9IHsgd2lkdGg6IDAgfSBhcyBCb3JkZXJNb2RlbDtcclxuICByZWFkb25seSBtYXJrZXI6IE1hcmtlck9wdGlvbnNNb2RlbCA9IHtcclxuICAgIHZpc2libGU6IHRydWUsXHJcbiAgICB3aWR0aDogMTAsXHJcbiAgICBoZWlnaHQ6IDEwXHJcbiAgfVxyXG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBhc3NpZ25hYmxlJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBwYWxldHRlczogc3RyaW5nW10gPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgdGhlbWU6ICdNYXRlcmlhbCcgfCAnTWF0ZXJpYWxEYXJrJyA9IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICBkYXRhOiBQcm9maWxlSW5mbztcclxuICBjb2xzID0gMjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQSwgU0VNSUNPTE9OXTtcclxuICBwcml2YXRlIF91c2VySWQ6IHN0cmluZztcclxuICAvKiogY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdXRpbGl0eVJlZjogVXRpbGl0eVJlZjxib29sZWFuLCBQcm9maWxlck1vZGVsLCBQcm9maWxlSW5mbywgc3RyaW5nPixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9kb2N1bWVudEluZm86IERvY3VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfZ3VpZGU6IEd1aWRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFByb2ZpbGVyQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5jb2xzID0gMjtcclxuICAgIF9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgIHRoaXMucGFsZXR0ZXMgPSBfc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZSgpLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgY29uc3QgeyB1c2VySWQgfSA9IHA7XHJcbiAgICAgIHVzZXJJZCAmJiB0aGlzLl9vcGVuKHVzZXJJZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucmVzaXplZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFydD8uY2hhcnRSZXNpemUoKSk7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgIGZpbHRlcih2ID0+ICFpc09iamVjdCh2KSksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX2FjY291bnRzLmZpbmRBbGwodikpKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZjEnLCBbJyRldmVudCddKVxyXG4gIGd1aWRlKGV2dD86IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qgc3RlcHM6IEd1aWRlU3RlcFtdID0gW107XHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1zZXR0aW5nc10nLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ091dE9mT2ZmaWNlSGVscCcpXHJcbiAgICAgIH0pO1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmRhdGEuYWN0aXZpdHkpLmxlbmd0aCAmJlxyXG4gICAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPWFjdGl2aXR5XScsXHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdBY3Rpdml0eUhlbHAnKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRhdGEucGVuZGluZy5sZW5ndGggJiZcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1wZW5kaW5nXScsXHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdQZW5kaW5nSGVscCcpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMubGVuZ3RoICYmXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9cG9zaXRpb25zXScsXHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdQb3NpdGlvbnNIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXJlYXNzaWduXScsXHJcbiAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUmVhc3NpZ25IZWxwJylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHN0ZXBzLnB1c2goe1xyXG4gICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2VhcmNoXScsXHJcbiAgICAgIHBvc2l0aW9uOiAnQmVsb3cnLFxyXG4gICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdQcm9maWxlclNlYXJjaEhlbHAnKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydCh7XHJcbiAgICAgIG5hbWU6ICdwcm9maWxlcicsXHJcbiAgICAgIHN0ZXBzXHJcbiAgICB9KTtcclxuICAgIGV2dCAmJiBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgY2hhbmdlKGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyBpZDogdXNlcklkIH0gPSBldnQub3B0aW9uLnZhbHVlO1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IHVzZXJJZCB9IH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXNlcklkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfb3Blbih1c2VySWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdXNlcklkID0gdXNlcklkO1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5wb3B1bGF0ZSh1c2VySWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGU7XHJcbiAgICAgICAgdGhpcy5zZWFyY2gucmVzZXQobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB3aGlsZSAodGhpcy5jaGFydC5zZXJpZXMubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5jaGFydD8ucmVtb3ZlU2VyaWVzKDApO1xyXG4gICAgICAgIHRoaXMuY2hhcnQ/LmFkZFNlcmllcyh0aGlzLl9zZXJpZXMoKSk7XHJcbiAgICAgIH0sIGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfc2VyaWVzKCk6IFNlcmllc01vZGVsW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5hY3Rpdml0eSkubWFwKGEgPT4ge1xyXG4gICAgICBjb25zdCBsb2cgPSB0aGlzLmRhdGEuYWN0aXZpdHlbYV07XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogJ1NjYXR0ZXInLFxyXG4gICAgICAgIG5hbWU6IHRoaXMuX2FjdGlvbk5hbWUoYSksXHJcbiAgICAgICAgeE5hbWU6ICd0aW1lJyxcclxuICAgICAgICB5TmFtZTogJ2R1cmF0aW9uJyxcclxuICAgICAgICBkYXRhU291cmNlOiBsb2cubWFwKGwgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IGwuaWQsXHJcbiAgICAgICAgICAgIHRpbWU6IG5ldyBEYXRlKGwudGltZSksXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiBsLmR1cmF0aW9uXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FjdGlvbk5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIGFjdGlvbiA/IGFjdGlvbi5wYXN0IHx8IGFjdGlvbi50aXRsZSA6IG5hbWU7XHJcbiAgfVxyXG4gIHBvaW50Q2xpY2soZXZ0OiBJUG9pbnRFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgaWQgfSA9IGV2dC5zZXJpZXMuZGF0YVNvdXJjZVtldnQucG9pbnRJbmRleF07XHJcbiAgICB0aGlzLl9kb2N1bWVudEluZm8ub3BlbihpZCk7XHJcbiAgfVxyXG4gIHVzZXJEaXNwbGF5KGl0ZW06IFVzZXJJbmZvKSB7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0ubmFtZSA6IG51bGw7XHJcbiAgfVxyXG4gIHRyYWNlKGlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluJywgJ3Rvb2xzJywgJ2RvY3VtZW50LXRyYWNlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgZG9jdW1lbnRJZDogaWQuZW5jb2RlSWQoKSB9LFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGVmZXIgfCBPcGVuUG9saWN5LlBpbm5hYmxlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhdCgpIHtcclxuICAgIHRoaXMuX2NoYXQub3Blbih0aGlzLl91c2VySWQpO1xyXG4gIH1cclxuICByZWFzc2lnbihwb3NpdGlvbj86IFBvc2l0aW9uSW5mbykge1xyXG4gICAgdGhpcy5hc3NpZ25hYmxlJCA9IHRoaXMuX2FjY291bnRzLmZpbmRBbGwoKS5waXBlKG1hcCh1ID0+IHUuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5fdXNlcklkKSkpO1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4odGhpcy5hc3NpZ25UcGwsIHt9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHUgJiYgdGhpcy5fcmVhc3NpZ24odSwgcG9zaXRpb24pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIHNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oUHJvZmlsZVNldHRpbmdzRGlhbG9nLCB7XHJcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdXNlcklkOiB0aGlzLl91c2VySWQsXHJcbiAgICAgICAgZ3JhbnRBY2Nlc3M6IHRoaXMuZGF0YS5ncmFudEFjY2VzcyxcclxuICAgICAgICBvdXRPZk9mZmljZTogdGhpcy5kYXRhLm91dE9mT2ZmaWNlXHJcbiAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICB9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHYgJiYgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHtcclxuICAgICAgICAgIG91dE9mT2ZmaWNlOiB2Lm91dE9mT2ZmaWNlLFxyXG4gICAgICAgICAgZ3JhbnRBY2Nlc3M6IHYuZ3JhbnRBY2Nlc3MsXHJcbiAgICAgICAgICB1c2VySWQ6IHRoaXMuX3VzZXJJZFxyXG4gICAgICAgIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLCB2KTtcclxuICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QoJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICAgICAgfSwgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICAgIHRoaXMuX3NiLmVycm9yKClcclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX3JlYXNzaWduKHdobzogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uSW5mbykge1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHsgcmVhc3NpZ246IHsgd2hvLCAuLi5wb3NpdGlvbiB9LCB1c2VySWQ6IHRoaXMuX3VzZXJJZCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2IudG9hc3QoJ0Fzc2lnbmVkJyk7XHJcbiAgICAgICAgaWYgKHBvc2l0aW9uKVxyXG4gICAgICAgICAgdGhpcy5kYXRhLnBvc2l0aW9ucy5yZW1vdmUocG9zaXRpb24pO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMgPSBbXTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZTogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpIHtcclxuICAgIGUudGV4dCA9IGAke2RheWpzLmR1cmF0aW9uKGUucG9pbnQueSBhcyBudW1iZXIsICdzJykuaHVtYW5pemUoKX1gO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIFByb2ZpbGVJbmZvIHtcclxuICBvdXRPZk9mZmljZTogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBncmFudEFjY2VzczogR3JhbnRTZXR0aW5ncztcclxuICBwb3NpdGlvbnM6IFBvc2l0aW9uSW5mb1tdO1xyXG4gIGFjdGl2aXR5OiB7XHJcbiAgICBbYWN0aW9uOiBzdHJpbmddOiB7XHJcbiAgICAgIGlkOiBudW1iZXI7XHJcbiAgICAgIC8qKiBzZWNvbmRzICovXHJcbiAgICAgIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgICAgIG51bWJlcjogc3RyaW5nO1xyXG4gICAgICB0aW1lOiBEYXRlO1xyXG4gICAgfVtdXHJcbiAgfTtcclxuICBwZW5kaW5nOiB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgcmVjZWl2ZWQ6IERhdGU7XHJcbiAgICBudW1iZXI6IHN0cmluZztcclxuICB9W107XHJcbiAgaW5mbzogVXNlckluZm87XHJcbn1cclxuaW50ZXJmYWNlIFBvc2l0aW9uSW5mbyB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgcm9sZTogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBQcm9maWxlck1vZGVsIHtcclxuICBvdXRPZk9mZmljZT86IE91dE9mT2ZmaWNlU2V0dGluZ3M7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHJlYXNzaWduPzoge1xyXG4gICAgd2hvOiBzdHJpbmc7XHJcbiAgICByb2xlPzogc3RyaW5nO1xyXG4gICAga2V5PzogYW55O1xyXG4gIH1cclxufVxyXG5cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxtYXQtaWNvbiAoY2xpY2spPVwibnVsbFwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCIgZGF0YS1oZWxwPVwic2VhcmNoXCIgd2lkdGg9XCIyMFwiIC8+XHJcbiAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwidXNlckRpc3BsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgdXNlcnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwidVwiPlxyXG4gICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImd1aWRlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInSGVscCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGRpdiAqbmdJZj1cImRhdGFcIiBjbGFzcz1cInJvdyB3cmFwXCI+XHJcbiAgPCEtLSBpbmZvIC0tPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8c3Bhbj57e2RhdGEuaW5mby5uYW1lfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8YnIgLz5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2hhdCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NoYXQnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhXCI+PG1hdC1pY29uPmNoYXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzZXR0aW5ncygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhZGF0YVwiIGRhdGEtaGVscD1cInNldHRpbmdzXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICA8L21hdC1jYXJkPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImZsZXhcIiBkYXRhLWhlbHA9XCJhY3Rpdml0eVwiPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIHt7J0FjdGl2aXR5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZWpzLWNoYXJ0ICNhY3Rpdml0eSBbcHJpbWFyeVhBeGlzXT1cInByaW1hcnlYQXhpc1wiIFtwcmltYXJ5WUF4aXNdPVwicHJpbWFyeVlBeGlzXCIgW3pvb21TZXR0aW5nc109XCJ6b29tU2V0dGluZ3NcIiBbdG9vbHRpcF09J3Rvb2x0aXAnICh0b29sdGlwUmVuZGVyKT1cInRvb2x0aXBSZW5kZXIoJGV2ZW50KVwiIFtwYWxldHRlc109XCJwYWxldHRlc1wiIGJhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiIFt0aGVtZV09J3RoZW1lJyBbYm9yZGVyXT1cImJvcmRlclwiIChwb2ludENsaWNrKT1cInBvaW50Q2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxlLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDwvZS1zZXJpZXMtY29sbGVjdGlvbj5cclxuICAgICAgPC9lanMtY2hhcnQ+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8IS0tIHBlbmRpbmcgLS0+XHJcbiAgPG1hdC1jYXJkIGNsYXNzPVwiZmxleFwiIGRhdGEtaGVscD1cInBlbmRpbmdcIj5cclxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICB7eydQZW5kaW5nJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiAqbmdJZj1cImRhdGEucGVuZGluZy5sZW5ndGg7IGVsc2Ugbm9uZVwiPlxyXG4gICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cIm1hdC1yb3dcIj5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCI+PC90ZD5cclxuICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90aGVhZD5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHIgb2YgZGF0YS5wZW5kaW5nXCIgY2xhc3M9XCJtYXQtcm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+PGEgKGNsaWNrKT1cInRyYWNlKHIuaWQpXCI+e3tyLm51bWJlcn19PC9hPjwvdGQ+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1jZWxsXCI+e3sgci5yZWNlaXZlZCB8IGFtRGlmZmVyZW5jZSA6IG51bGwgOiAncycgfCBhbUR1cmF0aW9uIDogJ3MnfX08L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gIDwvbWF0LWNhcmQ+XHJcbiAgPCEtLSBwb3NpdGlvbnMgLS0+XHJcbiAgPG1hdC1jYXJkIGNsYXNzPVwiZmxleFwiIGRhdGEtaGVscD1cInBvc2l0aW9uc1wiPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIHt7J1Bvc2l0aW9ucycgfCB0cmFuc2xhdGV9fVxyXG4gICAgICA8L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPHRhYmxlIGNsYXNzPVwibWF0LXRhYmxlXCIgKm5nSWY9XCJkYXRhLnBvc2l0aW9ucy5sZW5ndGg7IGVsc2Ugbm9uZVwiPlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcCBvZiBkYXRhLnBvc2l0aW9uc1wiIGNsYXNzPVwibWF0LXJvd1wiPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj57e3AudmFsdWUgfX08L3RkPlxyXG4gICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIj57e3Aucm9sZSB8IHJvbGV9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwicmVhc3NpZ24ocClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVhc3NpZ24nIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnN3YXBfaG9yaXo8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICA8L3RhYmxlPlxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlYXNzaWduKClcIiBbYml6ZG9jVG9vbHRpcF09XCInUmVhc3NpZ25BbGwnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhIHx8ICFkYXRhLnBvc2l0aW9ucy5sZW5ndGhcIiBkYXRhLWhlbHA9XCJyZWFzc2lnblwiPjxtYXQtaWNvbj5zd2FwX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICA8L21hdC1jYXJkPlxyXG48L2Rpdj5cclxuPCEtLSBhc3NpZ24gZGlhbG9nIC0tPlxyXG48bmctdGVtcGxhdGUgI2Fzc2lnblRwbD5cclxuICA8aDIgbWF0LWRpYWxvZy10aXRsZT57eydSZWFzc2lnbicgfCB0cmFuc2xhdGUgfX08L2gyPlxyXG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgICA8Zm9ybSBhdXRvY29tcGxldGU9XCJvZmZcIiBjbGFzcz1cImNvbHVtblwiPlxyXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJ7eydXaG8nIHwgdHJhbnNsYXRlfX1cIiBbZm9ybUNvbnRyb2xdPVwid2hvXCIgcmVxdWlyZWQ+XHJcbiAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdSBvZiBhc3NpZ25hYmxlJCB8IGFzeW5jXCIgW3ZhbHVlXT1cInUuaWRcIj57e3UubmFtZX19PC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZm9ybT5cclxuICA8L21hdC1kaWFsb2ctY29udGVudD5cclxuICA8bWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cIndoby52YWx1ZVwiIGNvbG9yPVwicHJpbWFyeVwiIFtkaXNhYmxlZF09XCIhd2hvLnZhbGlkXCI+e3snT0snIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBtYXQtZGlhbG9nLWNsb3NlPnt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDwvbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgI25vbmU+XHJcbiAgPHNwYW4gY2xhc3M9XCJtYXQtYm9keS0yXCI+e3snTm9uZScgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9wcm9maWxlci9wcm9maWxlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3Byb2ZpbGVyL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBa0MsVUFBVSxFQUFFLFlBQVksRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxxQkFBcUIsRUFBbUIsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBVzFFLFdBQU0saUJBQWlCLEdBQXZCLE1BQU0saUJBQWlCO0lBcUQ1QixXQUFXO0lBQ1gsWUFBb0IsR0FB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QUFTLEdBQUcsRUFBRSxDQUFDO1lBQzdCLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQ2IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUU7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELGFBQWEsQ0FBQyxDQUEwQjtRQUN0QyxDQUFDLENBQUMsSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO0lBQ3BFLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OEdBeE9VLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9UQUdHLFVBQVUsc0hDdEMzQyxzOUpBOEdBOztBRDNFYSxpQkFBaUI7SUFGN0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUM7SUFDN0MsZUFBZTtHQUNGLGlCQUFpQixDQXlPN0I7MkZBek9ZLGlCQUFpQjtrQkFUN0IsU0FBUzsyQkFHRjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDt3YUFNc0IsS0FBSztzQkFBM0IsU0FBUzt1QkFBQyxVQUFVO2dCQUN3QixZQUFZO3NCQUF4RCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ25CLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFpRnRCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBPbkluaXQsIE9uRGVzdHJveSwgVGVtcGxhdGVSZWYsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgQ2hhbmdlRGV0ZWN0b3JSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBDT01NQSwgRU5URVIsIFNFTUlDT0xPTiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7IEF4aXNNb2RlbCwgQm9yZGVyTW9kZWwsIENoYXJ0Q29tcG9uZW50LCBJUG9pbnRFdmVudEFyZ3MsIElUb29sdGlwUmVuZGVyRXZlbnRBcmdzLCBMZWdlbmRTZXJpZXNNb2RlbCwgTWFya2VyT3B0aW9uc01vZGVsLCBTZXJpZXNNb2RlbCwgVG9vbHRpcFNldHRpbmdzTW9kZWwsIFpvb21TZXR0aW5nc01vZGVsIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItY2hhcnRzJztcclxuaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSwgc3dpdGNoTWFwLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEJpekRvYyB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEdyYW50U2V0dGluZ3MsIEd1aWRlU3RlcCwgT3V0T2ZPZmZpY2VTZXR0aW5ncywgVXNlckluZm8gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFV0aWxpdHlSZWYgfSBmcm9tICcuLi91dGlsaXR5LXJlZic7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2FjY291bnQuc2VydmljZSc7XHJcbmltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4uLy4uL2NvcmUvaW5mby9kb2N1bWVudC1pbmZvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR3VpZGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ndWlkZS9ndWlkZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGT05UX0ZBTUlMWSB9IGZyb20gJy4uLy4uL2NvcmUvY29sb3JzJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2hhdEluZm8gfSBmcm9tICcuLi8uLi9jaGF0L2NoYXQtaW5mbyc7XHJcbmltcG9ydCB7IFBhbmVSZWYgfSBmcm9tICcuLi8uLi9jb3JlL3Nsb3RzL3BhbmUtcmVmJztcclxuaW1wb3J0IHsgT3BlblBvbGljeSB9IGZyb20gJy4uLy4uL2NvcmUvY29uZmlndXJhdGlvbic7XHJcbmltcG9ydCB7IFByb2ZpbGVTZXR0aW5nc0RpYWxvZywgT3V0T2ZPZmZpY2VEYXRhIH0gZnJvbSAnLi9vdXRvZm9mZmljZS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9wcm9maWxlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHtcclxuICAgIGNsYXNzOiAncGFuZSdcclxuICB9LFxyXG59KVxyXG5AQml6RG9jKHsgc2VsZWN0b3I6ICdiaXpkb2MtdXNlci1wcm9maWxlcicgfSlcclxuLyoqIGNvbXBvbmVudCovXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBzZWFyY2ggPSB0aGlzLl9mYi5jb250cm9sKG51bGwpO1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5JykgY2hhcnQ6IENoYXJ0Q29tcG9uZW50O1xyXG4gIEBWaWV3Q2hpbGQoJ2FjdGl2aXR5JywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGNoYXJ0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKCdhc3NpZ25UcGwnKSBhc3NpZ25UcGw6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgcmVhZG9ubHkgd2hvID0gdGhpcy5fZmIuY29udHJvbChudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICByZWFkb25seSBwcmltYXJ5WEF4aXMgPSB7XHJcbiAgICB2YWx1ZVR5cGU6ICdEYXRlVGltZScsXHJcbiAgICBsYWJlbEZvcm1hdDogJ01NTSBkZCcsXHJcbiAgICBsYWJlbFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfSBhcyBBeGlzTW9kZWw7XHJcbiAgcmVhZG9ubHkgcHJpbWFyeVlBeGlzID0ge1xyXG4gICAgbGFiZWxTdHlsZToge1xyXG4gICAgICBzaXplOiAnMHB4J1xyXG4gICAgfSxcclxuICB9IGFzIEF4aXNNb2RlbDtcclxuICByZWFkb25seSB6b29tU2V0dGluZ3M6IFpvb21TZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlTW91c2VXaGVlbFpvb21pbmc6IHRydWUsXHJcbiAgICBlbmFibGVQaW5jaFpvb21pbmc6IHRydWUsXHJcbiAgICB0b29sYmFySXRlbXM6IFtdLFxyXG4gICAgZW5hYmxlU2VsZWN0aW9uWm9vbWluZzogZmFsc2UsXHJcbiAgICBlbmFibGVTY3JvbGxiYXI6IHRydWVcclxuICB9O1xyXG4gIHJlYWRvbmx5IHRvb2x0aXA6IFRvb2x0aXBTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgZW5hYmxlOiB0cnVlLFxyXG4gICAgc2hhcmVkOiB0cnVlLFxyXG4gICAgdGV4dFN0eWxlOiB7XHJcbiAgICAgIGZvbnRGYW1pbHk6IEZPTlRfRkFNSUxZXHJcbiAgICB9XHJcbiAgfTtcclxuICByZWFkb25seSBsZWdlbmQ6IExlZ2VuZFNlcmllc01vZGVsID0ge1xyXG4gICAgdmlzaWJsZTogZmFsc2UsXHJcbiAgICB0ZXh0U3R5bGU6IHtcclxuICAgICAgZm9udEZhbWlseTogRk9OVF9GQU1JTFlcclxuICAgIH1cclxuICB9O1xyXG4gIHJlYWRvbmx5IGJvcmRlciA9IHsgd2lkdGg6IDAgfSBhcyBCb3JkZXJNb2RlbDtcclxuICByZWFkb25seSBtYXJrZXI6IE1hcmtlck9wdGlvbnNNb2RlbCA9IHtcclxuICAgIHZpc2libGU6IHRydWUsXHJcbiAgICB3aWR0aDogMTAsXHJcbiAgICBoZWlnaHQ6IDEwXHJcbiAgfVxyXG4gIHVzZXJzJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBhc3NpZ25hYmxlJDogT2JzZXJ2YWJsZTxVc2VySW5mb1tdPjtcclxuICBwYWxldHRlczogc3RyaW5nW10gPSB0aGlzLl9zZXNzaW9uLmFjY2VudFBhbGV0dGU7XHJcbiAgdGhlbWU6ICdNYXRlcmlhbCcgfCAnTWF0ZXJpYWxEYXJrJyA9IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICdNYXRlcmlhbERhcmsnIDogJ01hdGVyaWFsJztcclxuICBkYXRhOiBQcm9maWxlSW5mbztcclxuICBjb2xzID0gMjtcclxuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICByZWFkb25seSBzZXBhcmF0b3JLZXlzQ29kZXM6IG51bWJlcltdID0gW0VOVEVSLCBDT01NQSwgU0VNSUNPTE9OXTtcclxuICBwcml2YXRlIF91c2VySWQ6IHN0cmluZztcclxuICAvKiogY3RvciAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdXRpbGl0eVJlZjogVXRpbGl0eVJlZjxib29sZWFuLCBQcm9maWxlck1vZGVsLCBQcm9maWxlSW5mbywgc3RyaW5nPixcclxuICAgIHByaXZhdGUgX3Nlc3Npb246IFNlc3Npb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIF9kb2N1bWVudEluZm86IERvY3VtZW50SW5mbyxcclxuICAgIHByaXZhdGUgX2NoYXQ6IENoYXRJbmZvLFxyXG4gICAgcHJpdmF0ZSBfZ3VpZGU6IEd1aWRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3JvdXRlcjogUGFuZXNSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9wYW5lOiBQYW5lUmVmPFByb2ZpbGVyQ29tcG9uZW50PixcclxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2FjY291bnRzOiBBY2NvdW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ZiOiBGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5jb2xzID0gMjtcclxuICAgIF9zZXNzaW9uLnRoZW1lQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUodCA9PiB7XHJcbiAgICAgIHRoaXMudGhlbWUgPSB0LmRhcmsgPyAnTWF0ZXJpYWxEYXJrJyA6ICdNYXRlcmlhbCc7XHJcbiAgICAgIHRoaXMucGFsZXR0ZXMgPSBfc2Vzc2lvbi5hY2NlbnRQYWxldHRlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fcGFuZS5xdWVyeVBhcmFtc0NoYW5nZSgpLnN1YnNjcmliZShwID0+IHtcclxuICAgICAgY29uc3QgeyB1c2VySWQgfSA9IHA7XHJcbiAgICAgIHVzZXJJZCAmJiB0aGlzLl9vcGVuKHVzZXJJZCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucmVzaXplZCgpLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGFydD8uY2hhcnRSZXNpemUoKSk7XHJcbiAgICB0aGlzLnVzZXJzJCA9IHRoaXMuc2VhcmNoLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSxcclxuICAgICAgZGVib3VuY2VUaW1lKDI1MCksXHJcbiAgICAgIGZpbHRlcih2ID0+ICFpc09iamVjdCh2KSksXHJcbiAgICAgIHN3aXRjaE1hcCh2ID0+IHRoaXMuX2FjY291bnRzLmZpbmRBbGwodikpKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24uZjEnLCBbJyRldmVudCddKVxyXG4gIGd1aWRlKGV2dD86IEV2ZW50IHwgS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgY29uc3Qgc3RlcHM6IEd1aWRlU3RlcFtdID0gW107XHJcbiAgICBpZiAodGhpcy5kYXRhKSB7XHJcbiAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1zZXR0aW5nc10nLFxyXG4gICAgICAgIGNvbnRlbnQ6IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ091dE9mT2ZmaWNlSGVscCcpXHJcbiAgICAgIH0pO1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmRhdGEuYWN0aXZpdHkpLmxlbmd0aCAmJlxyXG4gICAgICAgIHN0ZXBzLnB1c2goe1xyXG4gICAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPWFjdGl2aXR5XScsXHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdBY3Rpdml0eUhlbHAnKVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB0aGlzLmRhdGEucGVuZGluZy5sZW5ndGggJiZcclxuICAgICAgICBzdGVwcy5wdXNoKHtcclxuICAgICAgICAgIHNlbGVjdG9yOiAnW2RhdGEtaGVscD1wZW5kaW5nXScsXHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdQZW5kaW5nSGVscCcpXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMubGVuZ3RoICYmXHJcbiAgICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9cG9zaXRpb25zXScsXHJcbiAgICAgICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdQb3NpdGlvbnNIZWxwJylcclxuICAgICAgICB9KTtcclxuICAgICAgc3RlcHMucHVzaCh7XHJcbiAgICAgICAgc2VsZWN0b3I6ICdbZGF0YS1oZWxwPXJlYXNzaWduXScsXHJcbiAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnUmVhc3NpZ25IZWxwJylcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHN0ZXBzLnB1c2goe1xyXG4gICAgICBzZWxlY3RvcjogJ1tkYXRhLWhlbHA9c2VhcmNoXScsXHJcbiAgICAgIHBvc2l0aW9uOiAnQmVsb3cnLFxyXG4gICAgICBjb250ZW50OiB0aGlzLl90cmFuc2xhdGUuZ2V0KCdQcm9maWxlclNlYXJjaEhlbHAnKVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLl9ndWlkZS5zdGFydCh7XHJcbiAgICAgIG5hbWU6ICdwcm9maWxlcicsXHJcbiAgICAgIHN0ZXBzXHJcbiAgICB9KTtcclxuICAgIGV2dCAmJiBldnQucHJldmVudERlZmF1bHQoKTtcclxuICB9XHJcbiAgY2hhbmdlKGV2dDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCkge1xyXG4gICAgY29uc3QgeyBpZDogdXNlcklkIH0gPSBldnQub3B0aW9uLnZhbHVlO1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtdLCB7IHF1ZXJ5UGFyYW1zOiB7IHVzZXJJZCB9IH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gdXNlcklkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfb3Blbih1c2VySWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdXNlcklkID0gdXNlcklkO1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5wb3B1bGF0ZSh1c2VySWQpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IGUgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGU7XHJcbiAgICAgICAgdGhpcy5zZWFyY2gucmVzZXQobnVsbCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB3aGlsZSAodGhpcy5jaGFydC5zZXJpZXMubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5jaGFydD8ucmVtb3ZlU2VyaWVzKDApO1xyXG4gICAgICAgIHRoaXMuY2hhcnQ/LmFkZFNlcmllcyh0aGlzLl9zZXJpZXMoKSk7XHJcbiAgICAgIH0sIGVycm9yOiAoKSA9PiB0aGlzLl9zYi5lcnJvcigpXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgcHJpdmF0ZSBfc2VyaWVzKCk6IFNlcmllc01vZGVsW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5hY3Rpdml0eSkubWFwKGEgPT4ge1xyXG4gICAgICBjb25zdCBsb2cgPSB0aGlzLmRhdGEuYWN0aXZpdHlbYV07XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgdHlwZTogJ1NjYXR0ZXInLFxyXG4gICAgICAgIG5hbWU6IHRoaXMuX2FjdGlvbk5hbWUoYSksXHJcbiAgICAgICAgeE5hbWU6ICd0aW1lJyxcclxuICAgICAgICB5TmFtZTogJ2R1cmF0aW9uJyxcclxuICAgICAgICBkYXRhU291cmNlOiBsb2cubWFwKGwgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWQ6IGwuaWQsXHJcbiAgICAgICAgICAgIHRpbWU6IG5ldyBEYXRlKGwudGltZSksXHJcbiAgICAgICAgICAgIGR1cmF0aW9uOiBsLmR1cmF0aW9uXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH07XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2FjdGlvbk5hbWUobmFtZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5hY3Rpb25zLmZpbmQoYSA9PiBhLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgcmV0dXJuIGFjdGlvbiA/IGFjdGlvbi5wYXN0IHx8IGFjdGlvbi50aXRsZSA6IG5hbWU7XHJcbiAgfVxyXG4gIHBvaW50Q2xpY2soZXZ0OiBJUG9pbnRFdmVudEFyZ3MpIHtcclxuICAgIGNvbnN0IHsgaWQgfSA9IGV2dC5zZXJpZXMuZGF0YVNvdXJjZVtldnQucG9pbnRJbmRleF07XHJcbiAgICB0aGlzLl9kb2N1bWVudEluZm8ub3BlbihpZCk7XHJcbiAgfVxyXG4gIHVzZXJEaXNwbGF5KGl0ZW06IFVzZXJJbmZvKSB7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0ubmFtZSA6IG51bGw7XHJcbiAgfVxyXG4gIHRyYWNlKGlkOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ2FkbWluJywgJ3Rvb2xzJywgJ2RvY3VtZW50LXRyYWNlJ10sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgZG9jdW1lbnRJZDogaWQuZW5jb2RlSWQoKSB9LFxyXG4gICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuRGVmZXIgfCBPcGVuUG9saWN5LlBpbm5hYmxlXHJcbiAgICB9KTtcclxuICB9XHJcbiAgY2hhdCgpIHtcclxuICAgIHRoaXMuX2NoYXQub3Blbih0aGlzLl91c2VySWQpO1xyXG4gIH1cclxuICByZWFzc2lnbihwb3NpdGlvbj86IFBvc2l0aW9uSW5mbykge1xyXG4gICAgdGhpcy5hc3NpZ25hYmxlJCA9IHRoaXMuX2FjY291bnRzLmZpbmRBbGwoKS5waXBlKG1hcCh1ID0+IHUuZmlsdGVyKHUgPT4gdS5pZCAhPT0gdGhpcy5fdXNlcklkKSkpO1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4odGhpcy5hc3NpZ25UcGwsIHt9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodSA9PlxyXG4gICAgICAgIHUgJiYgdGhpcy5fcmVhc3NpZ24odSwgcG9zaXRpb24pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIHNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5fZGlhbG9nLm9wZW4oUHJvZmlsZVNldHRpbmdzRGlhbG9nLCB7XHJcbiAgICAgIGNsb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdXNlcklkOiB0aGlzLl91c2VySWQsXHJcbiAgICAgICAgZ3JhbnRBY2Nlc3M6IHRoaXMuZGF0YS5ncmFudEFjY2VzcyxcclxuICAgICAgICBvdXRPZk9mZmljZTogdGhpcy5kYXRhLm91dE9mT2ZmaWNlXHJcbiAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICB9KS5hZnRlckNsb3NlZCgpLlxyXG4gICAgICBzdWJzY3JpYmUodiA9PlxyXG4gICAgICAgIHYgJiYgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHtcclxuICAgICAgICAgIG91dE9mT2ZmaWNlOiB2Lm91dE9mT2ZmaWNlLFxyXG4gICAgICAgICAgZ3JhbnRBY2Nlc3M6IHYuZ3JhbnRBY2Nlc3MsXHJcbiAgICAgICAgICB1c2VySWQ6IHRoaXMuX3VzZXJJZFxyXG4gICAgICAgIH0pLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5kYXRhLCB2KTtcclxuICAgICAgICAgICAgdGhpcy5fc2IudG9hc3QoJ0NoYW5nZXNTYXZlZCcpO1xyXG4gICAgICAgICAgfSwgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgICAgIHRoaXMuX3NiLmVycm9yKClcclxuICAgICAgICB9KSk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIHByaXZhdGUgX3JlYXNzaWduKHdobzogc3RyaW5nLCBwb3NpdGlvbj86IFBvc2l0aW9uSW5mbykge1xyXG4gICAgdGhpcy5fdXRpbGl0eVJlZi5leGVjdXRlKHsgcmVhc3NpZ246IHsgd2hvLCAuLi5wb3NpdGlvbiB9LCB1c2VySWQ6IHRoaXMuX3VzZXJJZCB9KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2IudG9hc3QoJ0Fzc2lnbmVkJyk7XHJcbiAgICAgICAgaWYgKHBvc2l0aW9uKVxyXG4gICAgICAgICAgdGhpcy5kYXRhLnBvc2l0aW9ucy5yZW1vdmUocG9zaXRpb24pO1xyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuZGF0YS5wb3NpdGlvbnMgPSBbXTtcclxuICAgICAgfSwgZXJyb3I6ICgpID0+XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvb2x0aXBSZW5kZXIoZTogSVRvb2x0aXBSZW5kZXJFdmVudEFyZ3MpIHtcclxuICAgIGUudGV4dCA9IGAke2RheWpzLmR1cmF0aW9uKGUucG9pbnQueSBhcyBudW1iZXIsICdzJykuaHVtYW5pemUoKX1gO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG5cclxuaW50ZXJmYWNlIFByb2ZpbGVJbmZvIHtcclxuICBvdXRPZk9mZmljZTogT3V0T2ZPZmZpY2VTZXR0aW5ncztcclxuICBncmFudEFjY2VzczogR3JhbnRTZXR0aW5ncztcclxuICBwb3NpdGlvbnM6IFBvc2l0aW9uSW5mb1tdO1xyXG4gIGFjdGl2aXR5OiB7XHJcbiAgICBbYWN0aW9uOiBzdHJpbmddOiB7XHJcbiAgICAgIGlkOiBudW1iZXI7XHJcbiAgICAgIC8qKiBzZWNvbmRzICovXHJcbiAgICAgIGR1cmF0aW9uOiBudW1iZXI7XHJcbiAgICAgIG51bWJlcjogc3RyaW5nO1xyXG4gICAgICB0aW1lOiBEYXRlO1xyXG4gICAgfVtdXHJcbiAgfTtcclxuICBwZW5kaW5nOiB7XHJcbiAgICBpZDogbnVtYmVyO1xyXG4gICAgcmVjZWl2ZWQ6IERhdGU7XHJcbiAgICBudW1iZXI6IHN0cmluZztcclxuICB9W107XHJcbiAgaW5mbzogVXNlckluZm87XHJcbn1cclxuaW50ZXJmYWNlIFBvc2l0aW9uSW5mbyB7XHJcbiAgdHlwZTogc3RyaW5nO1xyXG4gIGtleTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgcm9sZTogc3RyaW5nO1xyXG59XHJcbmludGVyZmFjZSBQcm9maWxlck1vZGVsIHtcclxuICBvdXRPZk9mZmljZT86IE91dE9mT2ZmaWNlU2V0dGluZ3M7XHJcbiAgZ3JhbnRBY2Nlc3M/OiBHcmFudFNldHRpbmdzO1xyXG4gIHVzZXJJZDogc3RyaW5nO1xyXG4gIHJlYXNzaWduPzoge1xyXG4gICAgd2hvOiBzdHJpbmc7XHJcbiAgICByb2xlPzogc3RyaW5nO1xyXG4gICAga2V5PzogYW55O1xyXG4gIH1cclxufVxyXG5cclxuIiwiPG1hdC10b29sYmFyPlxyXG4gIDxtYXQtaWNvbiAoY2xpY2spPVwibnVsbFwiIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJzZWFyY2hcIiBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbZm9ybUNvbnRyb2xdPVwic2VhcmNoXCIgZGF0YS1oZWxwPVwic2VhcmNoXCIgd2lkdGg9XCIyMFwiIC8+XHJcbiAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiBbZGlzcGxheVdpdGhdPVwidXNlckRpc3BsYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvcHRpb25TZWxlY3RlZCk9XCJjaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgdXNlcnMkIHwgYXN5bmNcIiBbdmFsdWVdPVwidVwiPlxyXG4gICAgICA8c3Bhbj57e3UubmFtZX19PC9zcGFuPlxyXG4gICAgPC9tYXQtb3B0aW9uPlxyXG4gIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImd1aWRlKClcIiBbYml6ZG9jVG9vbHRpcF09XCInSGVscCcgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGRpdiAqbmdJZj1cImRhdGFcIiBjbGFzcz1cInJvdyB3cmFwXCI+XHJcbiAgPCEtLSBpbmZvIC0tPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICA8c3Bhbj57e2RhdGEuaW5mby5uYW1lfX08L3NwYW4+XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8YnIgLz5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiY2hhdCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NoYXQnIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkYXRhXCI+PG1hdC1pY29uPmNoYXQ8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJzZXR0aW5ncygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhZGF0YVwiIGRhdGEtaGVscD1cInNldHRpbmdzXCI+PG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuICA8L21hdC1jYXJkPlxyXG4gIDxtYXQtY2FyZCBjbGFzcz1cImZsZXhcIiBkYXRhLWhlbHA9XCJhY3Rpdml0eVwiPlxyXG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cclxuICAgICAgPG1hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgIHt7J0FjdGl2aXR5JyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8ZWpzLWNoYXJ0ICNhY3Rpdml0eSBbcHJpbWFyeVhBeGlzXT1cInByaW1hcnlYQXhpc1wiIFtwcmltYXJ5WUF4aXNdPVwicHJpbWFyeVlBeGlzXCIgW3pvb21TZXR0aW5nc109XCJ6b29tU2V0dGluZ3NcIiBbdG9vbHRpcF09J3Rvb2x0aXAnICh0b29sdGlwUmVuZGVyKT1cInRvb2x0aXBSZW5kZXIoJGV2ZW50KVwiIFtwYWxldHRlc109XCJwYWxldHRlc1wiIGJhY2tncm91bmQ9XCJ0cmFuc3BhcmVudFwiIFt0aGVtZV09J3RoZW1lJyBbYm9yZGVyXT1cImJvcmRlclwiIChwb2ludENsaWNrKT1cInBvaW50Q2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDxlLXNlcmllcy1jb2xsZWN0aW9uPlxyXG4gICAgICAgIDwvZS1zZXJpZXMtY29sbGVjdGlvbj5cclxuICAgICAgPC9lanMtY2hhcnQ+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8IS0tIHBlbmRpbmcgLS0+XHJcbiAgPG1hdC1jYXJkIGNsYXNzPVwiZmxleFwiIGRhdGEtaGVscD1cInBlbmRpbmdcIj5cclxuICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgIDxtYXQtY2FyZC10aXRsZT5cclxuICAgICAgICB7eydQZW5kaW5nJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtbWRjLXRhYmxlXCIgKm5nSWY9XCJkYXRhLnBlbmRpbmcubGVuZ3RoOyBlbHNlIG5vbmVcIj5cclxuICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICA8dHIgY2xhc3M9XCJtYXQtbWRjLXJvd1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj48L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIj48L3RkPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgIDx0Ym9keSByb2xlPVwicm93Z3JvdXBcIj5cclxuICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgciBvZiBkYXRhLnBlbmRpbmdcIiBjbGFzcz1cIm1hdC1tZGMtcm93XCI+XHJcbiAgICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPjxhIChjbGljayk9XCJ0cmFjZShyLmlkKVwiPnt7ci5udW1iZXJ9fTwvYT48L3RkPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIj57eyByLnJlY2VpdmVkIHwgYW1EaWZmZXJlbmNlIDogbnVsbCA6ICdzJyB8IGFtRHVyYXRpb24gOiAncyd9fTwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuICA8IS0tIHBvc2l0aW9ucyAtLT5cclxuICA8bWF0LWNhcmQgY2xhc3M9XCJmbGV4XCIgZGF0YS1oZWxwPVwicG9zaXRpb25zXCI+XHJcbiAgICA8bWF0LWNhcmQtaGVhZGVyPlxyXG4gICAgICA8bWF0LWNhcmQtdGl0bGU+XHJcbiAgICAgICAge3snUG9zaXRpb25zJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LWNhcmQtdGl0bGU+XHJcbiAgICA8L21hdC1jYXJkLWhlYWRlcj5cclxuICAgIDxtYXQtY2FyZC1jb250ZW50PlxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtbWRjLXRhYmxlXCIgKm5nSWY9XCJkYXRhLnBvc2l0aW9ucy5sZW5ndGg7IGVsc2Ugbm9uZVwiPlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcCBvZiBkYXRhLnBvc2l0aW9uc1wiIGNsYXNzPVwibWF0LW1kYy1yb3dcIj5cclxuICAgICAgICAgIDx0ZCBjbGFzcz1cIm1hdC1tZGMtY2VsbFwiPnt7cC52YWx1ZSB9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIj57e3Aucm9sZSB8IHJvbGV9fTwvdGQ+XHJcbiAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtbWRjLWNlbGxcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInJlYXNzaWduKHApXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlYXNzaWduJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5zd2FwX2hvcml6PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgPC90YWJsZT5cclxuICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgIDxtYXQtY2FyZC1hY3Rpb25zPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJyZWFzc2lnbigpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlYXNzaWduQWxsJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhZGF0YSB8fCAhZGF0YS5wb3NpdGlvbnMubGVuZ3RoXCIgZGF0YS1oZWxwPVwicmVhc3NpZ25cIj48bWF0LWljb24+c3dhcF9ob3JpejwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L21hdC1jYXJkLWFjdGlvbnM+XHJcbiAgPC9tYXQtY2FyZD5cclxuPC9kaXY+XHJcbjwhLS0gYXNzaWduIGRpYWxvZyAtLT5cclxuPG5nLXRlbXBsYXRlICNhc3NpZ25UcGw+XHJcbiAgPGgyIG1hdC1kaWFsb2ctdGl0bGU+e3snUmVhc3NpZ24nIHwgdHJhbnNsYXRlIH19PC9oMj5cclxuICA8bWF0LWRpYWxvZy1jb250ZW50PlxyXG4gICAgPGZvcm0gYXV0b2NvbXBsZXRlPVwib2ZmXCIgY2xhc3M9XCJjb2x1bW5cIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0IHBsYWNlaG9sZGVyPVwie3snV2hvJyB8IHRyYW5zbGF0ZX19XCIgW2Zvcm1Db250cm9sXT1cIndob1wiIHJlcXVpcmVkPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHUgb2YgYXNzaWduYWJsZSQgfCBhc3luY1wiIFt2YWx1ZV09XCJ1LmlkXCI+e3t1Lm5hbWV9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Zvcm0+XHJcbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XHJcbiAgPG1hdC1kaWFsb2ctYWN0aW9ucz5cclxuICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJ3aG8udmFsdWVcIiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIXdoby52YWxpZFwiPnt7J09LJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1idXR0b24gbWF0LWRpYWxvZy1jbG9zZT57eydDYW5jZWwnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICA8L21hdC1kaWFsb2ctYWN0aW9ucz5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNub25lPlxyXG4gIDxzcGFuIGNsYXNzPVwibWF0LW1kYy1ib2R5LTJcIj57eydOb25lJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -10,6 +10,9 @@ export class SystemService {
10
10
  synchrinize(name) {
11
11
  return this._http.post(`/api/system/cube/${encodeURIComponent(name)}/synchronize`, {});
12
12
  }
13
+ execute(name) {
14
+ return this._http.post(`/api/system/job/${encodeURIComponent(name)}/execute`, {});
15
+ }
13
16
  static { this._cache = {}; }
14
17
  findAll(options) {
15
18
  const params = {};
@@ -59,6 +62,9 @@ export class SystemService {
59
62
  cube(name) {
60
63
  return this._http.get(`/api/system/cube/${encodeURIComponent(name)}`);
61
64
  }
65
+ job(name) {
66
+ return this._http.get(`/api/system/job/${encodeURIComponent(name)}`);
67
+ }
62
68
  /**
63
69
  *
64
70
  * @param name
@@ -105,10 +111,10 @@ export class SystemService {
105
111
  return groups;
106
112
  }));
107
113
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SystemService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
109
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SystemService }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SystemService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
115
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SystemService }); }
110
116
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SystemService, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SystemService, decorators: [{
112
118
  type: Injectable
113
119
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJN0MsTUFBTSxPQUFPLGFBQWE7SUFDeEIsS0FBSyxDQUFDLElBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFTLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQW9CLG9CQUFvQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7YUFDYyxXQUFNLEdBQUcsRUFBRSxBQUFMLENBQU07SUFHM0IsT0FBTyxDQUFDLE9BQWdGO1FBQ3RGLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQzthQUN4QjtZQUNILElBQUksT0FBTyxDQUFDLE1BQU07Z0JBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFDdEQsSUFBSSxPQUFPLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUN0RCxJQUFJLE9BQU8s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Q0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3Qjs7b0JBQ0ksWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ0wsQ0FBQzs4R0E1R1UsYUFBYTtrSEFBYixhQUFhOzsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc2hhcmVSZXBsYXksIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRmllbGRJbmZvLCBGb3JtIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuaW1wb3J0IHsgRWxlbWVudEZhbWlseSB9IGZyb20gJy4vYXJjaGl0ZWN0dXJlL2RlY2xhcmF0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTeXN0ZW1TZXJ2aWNlIHtcclxuICBydWxlcyhhcmdzPzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UnVsZVtdPignL2FwaS9zeXN0ZW0vZm9ybS9ydWxlcycsIHsgcGFyYW1zOiBhcmdzIH0pO1xyXG4gIH1cclxuICBzeW5jaHJpbml6ZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8QmFja2dyb3VuZEpvYkluZm8+KGAvYXBpL3N5c3RlbS9jdWJlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfS9zeW5jaHJvbml6ZWAsIHt9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2NhY2hlID0ge307XHJcbiAgZmluZEFsbChvcHRpb25zOiB7IHNlYXJjaD86IHN0cmluZywgc3RhcnQ/OiBEYXRlLCBlbmQ/OiBEYXRlLCBmb3JtSWQ/OiBzdHJpbmcgfSlcclxuICBmaW5kQWxsKHNlYXJjaD86IHN0cmluZylcclxuICBmaW5kQWxsKG9wdGlvbnM6IHN0cmluZyB8IHsgc2VhcmNoPzogc3RyaW5nLCBzdGFydD86IERhdGUsIGVuZD86IERhdGUsIGZvcm1JZD86IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxEb2N1bWVudEluZm9bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICBpZiAoaXNTdHJpbmcob3B0aW9ucykpXHJcbiAgICAgIHBhcmFtc1snc2VhcmNoJ10gPSBvcHRpb25zO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChvcHRpb25zLnNlYXJjaCkgcGFyYW1zWydzZWFyY2gnXSA9IG9wdGlvbnMuc2VhcmNoO1xyXG4gICAgICBpZiAob3B0aW9ucy5mb3JtSWQpIHBhcmFtc1snZm9ybUlkJ10gPSBvcHRpb25zLmZvcm1JZDtcclxuICAgICAgaWYgKG9wdGlvbnMuc3RhcnQpIHBhcmFtc1snc3RhcnQnXSA9IG5ldyBEYXRlKG9wdGlvbnMuc3RhcnQpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgIGlmIChvcHRpb25zLmVuZCkgcGFyYW1zWydlbmQnXSA9IG5ldyBEYXRlKG9wdGlvbnMuZW5kKS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PERvY3VtZW50SW5mb1tdPignL2FwaS9zeXN0ZW0vZm9ybS9maW5kQWxsJywge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuICByb2xlcygpOiBPYnNlcnZhYmxlPFJvbGVbXT4ge1xyXG4gICAgcmV0dXJuIFN5c3RlbVNlcnZpY2UuX2NhY2hlWydyb2xlcyddIHx8IChTeXN0ZW1TZXJ2aWNlLl9jYWNoZVsncm9sZXMnXSA9XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PFJvbGVbXT4oJy9hcGkvc3lzdGVtL3Bvc2l0aW9ucy9yb2xlcycpLnBpcGUoc2hhcmVSZXBsYXkoKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZm9ybUlkXHJcbiAgICovXHJcbiAgcmFuZ2UoZm9ybUlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxSYW5nZUluZm9bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICBpZiAoZm9ybUlkKSBwYXJhbXNbJ2Zvcm1JZCddID0gZm9ybUlkO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJhbmdlSW5mb1tdPignL2FwaS9zeXN0ZW0vZm9ybS9yYW5nZScsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKHRhcCgocjogUmFuZ2VJbmZvW10pID0+XHJcbiAgICAgIHIuZm9yRWFjaChwID0+IHAuZGF0ZSA9IG5ldyBEYXRlKHAuZGF0ZSkpXHJcbiAgICApKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGZvcm1JZFxyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgaW52aXRlKGZvcm1JZDogc3RyaW5nLCBvcHRpb25zOiB7IGdyb3Vwczogc3RyaW5nW10sIG1lc3NhZ2U/OiBzdHJpbmc7IGRldmljZXM6IEludml0ZURldmljZVtdLCBkdWU/OiBEYXRlIH0pIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRhcmdldDogbnVtYmVyOyBvazogbnVtYmVyOyBpbT86IG51bWJlcjsgZW1haWw/OiBudW1iZXI7IHNtcz86IG51bWJlciB9PihgL2FwaS9zeXN0ZW0vZm9ybS9pbnZpdGUvJHtmb3JtSWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIHByb2plY3Rpb24ob3B0aW9uczogeyBncm91cHM6IHN0cmluZ1tdIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PG51bWJlcj4oJy9hcGkvc3lzdGVtL2Zvcm0vcHJvamVjdGlvbi8nLCBvcHRpb25zKTtcclxuICB9XHJcbiAgY3ViZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDdWJlSW5mbz4oYC9hcGkvc3lzdGVtL2N1YmUvJHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9YCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBuYW1lXHJcbiAgICovXHJcbiAgZm9ybShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZvcm0+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxGb3JtPihgL2FwaS9zeXN0ZW0vZm9ybS8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX1gKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29udHJvbHM6IE9ic2VydmFibGU8Q29udHJvbEluZm9bXT47XHJcbiAgY29udHJvbHMoKTogT2JzZXJ2YWJsZTxDb250cm9sSW5mb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29udHJvbHMgfHwgKHRoaXMuX2NvbnRyb2xzID0gdGhpcy5faHR0cC5nZXQ8Q29udHJvbEluZm9bXT4oYC9hcGkvc3lzdGVtL2Zvcm0vY29udHJvbHNgKS5cclxuICAgICAgcGlwZShcclxuICAgICAgICB0YXAoYyA9PlxyXG4gICAgICAgICAgYy5mb3JFYWNoKGkgPT4gY1tpLm5hbWVdID0gaSkpLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KCkpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZGF0YXR5cGVzOiBPYnNlcnZhYmxlPERhdGFUeXBlSW5mb1tdPjtcclxuICBkYXRhdHlwZXMoKTogT2JzZXJ2YWJsZTxEYXRhVHlwZUluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGF0eXBlcyB8fCAodGhpcy5fZGF0YXR5cGVzID0gdGhpcy5faHR0cC5nZXQ8RGF0YVR5cGVJbmZvW10+KGAvYXBpL3N5c3RlbS9mb3JtL2RhdGF0eXBlc2ApLlxyXG4gICAgICBwaXBlKFxyXG4gICAgICAgIHRhcCh0ID0+XHJcbiAgICAgICAgICB0LmZvckVhY2goaSA9PiB0W2kubmFtZV0gPSBpKSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoKSkpO1xyXG4gIH1cclxuICBzYXZlKGZvcm06IEZvcm0pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgY29uc3QgeyB3b3JrZmxvdyB9ID0gZm9ybTtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxudW1iZXI+KGAvYXBpL3N5c3RlbS9mb3JtLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGZvcm0ubmFtZSl9YCwgeyB3b3JrZmxvdyB9KTtcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCkge1xyXG5cclxuICB9XHJcbiAgcHVibGljIHR5cGVncm91cHMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRhdHlwZXMoKS5waXBlKG1hcCh0ID0+IHtcclxuICAgICAgY29uc3RcclxuICAgICAgICBkZWZhdWx0Z3JvdXAgPSB7IGVsZW1lbnRzOiBbXSB9LFxyXG4gICAgICAgIGdyb3VwcyA9IFtdIGFzIEVsZW1lbnRGYW1pbHlbXTtcclxuICAgICAgZ3JvdXBzWydfJ10gPSBkZWZhdWx0Z3JvdXA7XHJcbiAgICAgIHQuZm9yRWFjaCh0ID0+IHtcclxuICAgICAgICBpZiAodC5mYW1pbHkpIHtcclxuICAgICAgICAgIGxldCBncm91cCA9IGdyb3Vwc1t0LmZhbWlseV07XHJcbiAgICAgICAgICBpZiAoIWdyb3VwKSB7XHJcbiAgICAgICAgICAgIGdyb3VwID0ge1xyXG4gICAgICAgICAgICAgIHRpdGxlOiB0LmZhbWlseSxcclxuICAgICAgICAgICAgICBlbGVtZW50czogW3RdXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIGdyb3Vwcy5wdXNoKGdyb3VwKTtcclxuICAgICAgICAgICAgZ3JvdXBzW3QuZmFtaWx5XSA9IGdyb3VwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSBncm91cC5lbGVtZW50cy5wdXNoKHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGRlZmF1bHRncm91cC5lbGVtZW50cy5wdXNoKHQpO1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIGdyb3VwcztcclxuICAgIH0pKVxyXG4gIH1cclxufVxyXG5leHBvcnQgdHlwZSBJbnZpdGVEZXZpY2UgPSAnU21zJyB8ICdFbWFpbCcgfCAnSU0nO1xyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlSW5mbyB7XHJcbiAgY291bnQ6IG51bWJlcjtcclxuICBkYXRlOiBEYXRlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRJbmZvIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG51bWJlcjogc3RyaW5nO1xyXG4gIHN1YmplY3Q6IHN0cmluZztcclxuICBzdGF0ZUlkOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sSW5mbyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgc3lzdGVtPzogYm9vbGVhbjtcclxuICB2aXNpYmxlPzogYm9vbGVhbjtcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVR5cGVJbmZvIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBhc3NpZ25hYmxlPzogYm9vbGVhbjtcclxuICBjb2x1bW5zPzogRmllbGRJbmZvW107XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUluZm8ge1xyXG4gIGpvYkluZm86IEJhY2tncm91bmRKb2JJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFja2dyb3VuZEpvYkluZm8ge1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIG5leHRFeGVjdXRpb24/OiBEYXRlO1xyXG4gIGxhc3RFeGVjdXRpb24/OiBEYXRlO1xyXG4gIGxhc3RKb2JTdGF0ZT86IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUnVsZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7QUFJN0MsTUFBTSxPQUFPLGFBQWE7SUFDeEIsS0FBSyxDQUFDLElBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFTLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQW9CLG9CQUFvQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFDRCxPQUFPLENBQUMsSUFBWTtRQUNsQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFvQixtQkFBbUIsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN2RyxDQUFDO2FBQ2MsV0FBTSxHQUFHLEVBQUUsQUFBTCxDQUFNO0lBRzNCLE9BQU8sQ0FBQyxPQUFnRjtRQUN0RixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQ25CLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUM7YUFDeEI7WUFDSCxJQUFJLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLE1BQU0sQ0FBQyxR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QUFNLENBQUMsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLEtBQUssRUFBRTt3QkFDVixLQUFLLEdBQUc7NEJBQ04sS0FBSyxFQUFFLENBQUMsQ0FBQyxNQUFNOzRCQUNmLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDZCxDQUFDO3dCQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ25CLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDO3FCQUMxQjs7d0JBQ0ksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQzdCOztvQkFDSSxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNyQyxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDTCxDQUFDOzhHQWxIVSxhQUFhO2tIQUFiLGFBQWE7OzJGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGaWVsZEluZm8sIEZvcm0gfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IGlzU3RyaW5nIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5pbXBvcnQgeyBFbGVtZW50RmFtaWx5IH0gZnJvbSAnLi9hcmNoaXRlY3R1cmUvZGVjbGFyYXRpb25zJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFN5c3RlbVNlcnZpY2Uge1xyXG4gIHJ1bGVzKGFyZ3M/OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxSdWxlW10+KCcvYXBpL3N5c3RlbS9mb3JtL3J1bGVzJywgeyBwYXJhbXM6IGFyZ3MgfSk7XHJcbiAgfVxyXG4gIHN5bmNocmluaXplKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxCYWNrZ3JvdW5kSm9iSW5mbz4oYC9hcGkvc3lzdGVtL2N1YmUvJHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9L3N5bmNocm9uaXplYCwge30pO1xyXG4gIH1cclxuICBleGVjdXRlKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdDxCYWNrZ3JvdW5kSm9iSW5mbz4oYC9hcGkvc3lzdGVtL2pvYi8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX0vZXhlY3V0ZWAsIHt9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2NhY2hlID0ge307XHJcbiAgZmluZEFsbChvcHRpb25zOiB7IHNlYXJjaD86IHN0cmluZywgc3RhcnQ/OiBEYXRlLCBlbmQ/OiBEYXRlLCBmb3JtSWQ/OiBzdHJpbmcgfSlcclxuICBmaW5kQWxsKHNlYXJjaD86IHN0cmluZylcclxuICBmaW5kQWxsKG9wdGlvbnM6IHN0cmluZyB8IHsgc2VhcmNoPzogc3RyaW5nLCBzdGFydD86IERhdGUsIGVuZD86IERhdGUsIGZvcm1JZD86IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxEb2N1bWVudEluZm9bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICBpZiAoaXNTdHJpbmcob3B0aW9ucykpXHJcbiAgICAgIHBhcmFtc1snc2VhcmNoJ10gPSBvcHRpb25zO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChvcHRpb25zLnNlYXJjaCkgcGFyYW1zWydzZWFyY2gnXSA9IG9wdGlvbnMuc2VhcmNoO1xyXG4gICAgICBpZiAob3B0aW9ucy5mb3JtSWQpIHBhcmFtc1snZm9ybUlkJ10gPSBvcHRpb25zLmZvcm1JZDtcclxuICAgICAgaWYgKG9wdGlvbnMuc3RhcnQpIHBhcmFtc1snc3RhcnQnXSA9IG5ldyBEYXRlKG9wdGlvbnMuc3RhcnQpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgIGlmIChvcHRpb25zLmVuZCkgcGFyYW1zWydlbmQnXSA9IG5ldyBEYXRlKG9wdGlvbnMuZW5kKS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PERvY3VtZW50SW5mb1tdPignL2FwaS9zeXN0ZW0vZm9ybS9maW5kQWxsJywge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuICByb2xlcygpOiBPYnNlcnZhYmxlPFJvbGVbXT4ge1xyXG4gICAgcmV0dXJuIFN5c3RlbVNlcnZpY2UuX2NhY2hlWydyb2xlcyddIHx8IChTeXN0ZW1TZXJ2aWNlLl9jYWNoZVsncm9sZXMnXSA9XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PFJvbGVbXT4oJy9hcGkvc3lzdGVtL3Bvc2l0aW9ucy9yb2xlcycpLnBpcGUoc2hhcmVSZXBsYXkoKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZm9ybUlkXHJcbiAgICovXHJcbiAgcmFuZ2UoZm9ybUlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxSYW5nZUluZm9bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICBpZiAoZm9ybUlkKSBwYXJhbXNbJ2Zvcm1JZCddID0gZm9ybUlkO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJhbmdlSW5mb1tdPignL2FwaS9zeXN0ZW0vZm9ybS9yYW5nZScsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KS5waXBlKHRhcCgocjogUmFuZ2VJbmZvW10pID0+XHJcbiAgICAgIHIuZm9yRWFjaChwID0+IHAuZGF0ZSA9IG5ldyBEYXRlKHAuZGF0ZSkpXHJcbiAgICApKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGZvcm1JZFxyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgaW52aXRlKGZvcm1JZDogc3RyaW5nLCBvcHRpb25zOiB7IGdyb3Vwczogc3RyaW5nW10sIG1lc3NhZ2U/OiBzdHJpbmc7IGRldmljZXM6IEludml0ZURldmljZVtdLCBkdWU/OiBEYXRlIH0pIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDx7IHRhcmdldDogbnVtYmVyOyBvazogbnVtYmVyOyBpbT86IG51bWJlcjsgZW1haWw/OiBudW1iZXI7IHNtcz86IG51bWJlciB9PihgL2FwaS9zeXN0ZW0vZm9ybS9pbnZpdGUvJHtmb3JtSWR9YCwgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIHByb2plY3Rpb24ob3B0aW9uczogeyBncm91cHM6IHN0cmluZ1tdIH0pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PG51bWJlcj4oJy9hcGkvc3lzdGVtL2Zvcm0vcHJvamVjdGlvbi8nLCBvcHRpb25zKTtcclxuICB9XHJcbiAgY3ViZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxDdWJlSW5mbz4oYC9hcGkvc3lzdGVtL2N1YmUvJHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9YCk7XHJcbiAgfVxyXG4gIGpvYihuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxKb2JJbmZvPihgL2FwaS9zeXN0ZW0vam9iLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbmFtZVxyXG4gICAqL1xyXG4gIGZvcm0obmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxGb3JtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Rm9ybT4oYC9hcGkvc3lzdGVtL2Zvcm0vJHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9YCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbnRyb2xzOiBPYnNlcnZhYmxlPENvbnRyb2xJbmZvW10+O1xyXG4gIGNvbnRyb2xzKCk6IE9ic2VydmFibGU8Q29udHJvbEluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xzIHx8ICh0aGlzLl9jb250cm9scyA9IHRoaXMuX2h0dHAuZ2V0PENvbnRyb2xJbmZvW10+KGAvYXBpL3N5c3RlbS9mb3JtL2NvbnRyb2xzYCkuXHJcbiAgICAgIHBpcGUoXHJcbiAgICAgICAgdGFwKGMgPT5cclxuICAgICAgICAgIGMuZm9yRWFjaChpID0+IGNbaS5uYW1lXSA9IGkpKSxcclxuICAgICAgICBzaGFyZVJlcGxheSgpKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RhdGF0eXBlczogT2JzZXJ2YWJsZTxEYXRhVHlwZUluZm9bXT47XHJcbiAgZGF0YXR5cGVzKCk6IE9ic2VydmFibGU8RGF0YVR5cGVJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRhdHlwZXMgfHwgKHRoaXMuX2RhdGF0eXBlcyA9IHRoaXMuX2h0dHAuZ2V0PERhdGFUeXBlSW5mb1tdPihgL2FwaS9zeXN0ZW0vZm9ybS9kYXRhdHlwZXNgKS5cclxuICAgICAgcGlwZShcclxuICAgICAgICB0YXAodCA9PlxyXG4gICAgICAgICAgdC5mb3JFYWNoKGkgPT4gdFtpLm5hbWVdID0gaSkpLFxyXG4gICAgICAgIHNoYXJlUmVwbGF5KCkpKTtcclxuICB9XHJcbiAgc2F2ZShmb3JtOiBGb3JtKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHsgd29ya2Zsb3cgfSA9IGZvcm07XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8bnVtYmVyPihgL2FwaS9zeXN0ZW0vZm9ybS8ke2VuY29kZVVSSUNvbXBvbmVudChmb3JtLm5hbWUpfWAsIHsgd29ya2Zsb3cgfSk7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQpIHtcclxuXHJcbiAgfVxyXG4gIHB1YmxpYyB0eXBlZ3JvdXBzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YXR5cGVzKCkucGlwZShtYXAodCA9PiB7XHJcbiAgICAgIGNvbnN0XHJcbiAgICAgICAgZGVmYXVsdGdyb3VwID0geyBlbGVtZW50czogW10gfSxcclxuICAgICAgICBncm91cHMgPSBbXSBhcyBFbGVtZW50RmFtaWx5W107XHJcbiAgICAgIGdyb3Vwc1snXyddID0gZGVmYXVsdGdyb3VwO1xyXG4gICAgICB0LmZvckVhY2godCA9PiB7XHJcbiAgICAgICAgaWYgKHQuZmFtaWx5KSB7XHJcbiAgICAgICAgICBsZXQgZ3JvdXAgPSBncm91cHNbdC5mYW1pbHldO1xyXG4gICAgICAgICAgaWYgKCFncm91cCkge1xyXG4gICAgICAgICAgICBncm91cCA9IHtcclxuICAgICAgICAgICAgICB0aXRsZTogdC5mYW1pbHksXHJcbiAgICAgICAgICAgICAgZWxlbWVudHM6IFt0XVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBncm91cHMucHVzaChncm91cCk7XHJcbiAgICAgICAgICAgIGdyb3Vwc1t0LmZhbWlseV0gPSBncm91cDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2UgZ3JvdXAuZWxlbWVudHMucHVzaCh0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBkZWZhdWx0Z3JvdXAuZWxlbWVudHMucHVzaCh0KTtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBncm91cHM7XHJcbiAgICB9KSlcclxuICB9XHJcbn1cclxuZXhwb3J0IHR5cGUgSW52aXRlRGV2aWNlID0gJ1NtcycgfCAnRW1haWwnIHwgJ0lNJztcclxuZXhwb3J0IGludGVyZmFjZSBSYW5nZUluZm8ge1xyXG4gIGNvdW50OiBudW1iZXI7XHJcbiAgZGF0ZTogRGF0ZTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50SW5mbyB7XHJcbiAgaWQ6IG51bWJlcjtcclxuICBudW1iZXI6IHN0cmluZztcclxuICBzdWJqZWN0OiBzdHJpbmc7XHJcbiAgc3RhdGVJZDogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJvbEluZm8ge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIHN5c3RlbT86IGJvb2xlYW47XHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUeXBlSW5mbyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgYXNzaWduYWJsZT86IGJvb2xlYW47XHJcbiAgY29sdW1ucz86IEZpZWxkSW5mb1tdO1xyXG4gIGZhbWlseT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmZvIHtcclxuICBqb2JJbmZvOiBCYWNrZ3JvdW5kSm9iSW5mbztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEpvYkluZm8ge1xyXG4gIGpvYkluZm86IEJhY2tncm91bmRKb2JJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFja2dyb3VuZEpvYkluZm8ge1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIG5leHRFeGVjdXRpb24/OiBEYXRlO1xyXG4gIGxhc3RFeGVjdXRpb24/OiBEYXRlO1xyXG4gIGxhc3RKb2JTdGF0ZT86IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUnVsZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG4iXX0=
@@ -41,10 +41,10 @@ export class UtilityWrapperComponent {
41
41
  ngOnDestroy() {
42
42
  this._routing.unsubscribe();
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: UtilityWrapperComponent, deps: [{ token: i1.SessionService }, { token: i2.ActivatedRoute }, { token: i3.WindowTitleService }, { token: i4.HttpClient }, { token: i5.PromptService }, { token: i6.HubService }, { token: i0.ViewContainerRef }, { token: i7.BizDocComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: UtilityWrapperComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UtilityWrapperComponent, deps: [{ token: i1.SessionService }, { token: i2.ActivatedRoute }, { token: i3.WindowTitleService }, { token: i4.HttpClient }, { token: i5.PromptService }, { token: i6.HubService }, { token: i0.ViewContainerRef }, { token: i7.BizDocComponentFactoryResolver }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: UtilityWrapperComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: UtilityWrapperComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UtilityWrapperComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{
50
50
  template: ''