@bizdoc/core 1.14.9 → 1.14.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 (1246) hide show
  1. package/bizdoc-core.d.ts +5 -0
  2. package/esm2020/bizdoc-core.mjs +5 -0
  3. package/esm2020/lib/admin/admin-dismiss.service.mjs +22 -0
  4. package/esm2020/lib/admin/admin-menu.component.mjs +27 -0
  5. package/esm2020/lib/admin/core/ace.input.mjs +147 -0
  6. package/esm2020/lib/admin/core/color-picker.input.mjs +208 -0
  7. package/esm2020/lib/admin/core/search.input.mjs +43 -0
  8. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +558 -0
  9. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +532 -0
  10. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +40 -0
  11. package/esm2020/lib/admin/document-trace/timeline.mjs +2 -0
  12. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +123 -0
  13. package/esm2020/lib/admin/form/form.resolve.service.mjs +17 -0
  14. package/esm2020/lib/admin/form/form.service.mjs +43 -0
  15. package/esm2020/lib/admin/form/workflow/node-ref.mjs +8 -0
  16. package/esm2020/lib/admin/form/workflow/node.component.mjs +128 -0
  17. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +90 -0
  18. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +441 -0
  19. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +161 -0
  20. package/esm2020/lib/admin/patterns/patterns.component.mjs +179 -0
  21. package/esm2020/lib/admin/permissions/permissions.component.mjs +97 -0
  22. package/esm2020/lib/admin/positions/positions-popup.component.mjs +74 -0
  23. package/esm2020/lib/admin/positions/positions.component.mjs +460 -0
  24. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +155 -0
  25. package/esm2020/lib/admin/profiler/profiler.component.mjs +281 -0
  26. package/esm2020/lib/admin/utility-ref.mjs +38 -0
  27. package/esm2020/lib/admin/utility-wrapper.component.mjs +51 -0
  28. package/esm2020/lib/admin/utility.pane.component.mjs +51 -0
  29. package/esm2020/lib/app.component.mjs +91 -0
  30. package/esm2020/lib/bizdoc.module.mjs +101 -0
  31. package/esm2020/lib/browse/browse-items.component.mjs +481 -0
  32. package/esm2020/lib/browse/browse.mobile.component.mjs +101 -0
  33. package/esm2020/lib/browse/browse.pane.component.mjs +148 -0
  34. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +316 -0
  35. package/esm2020/lib/browse/filter/filter.component.mjs +164 -0
  36. package/esm2020/lib/browse/folders-menu.component.mjs +51 -0
  37. package/esm2020/lib/chat/chat-info.mjs +68 -0
  38. package/esm2020/lib/chat/chat.mobile.component.mjs +26 -0
  39. package/esm2020/lib/chat/chat.service.mjs +122 -0
  40. package/esm2020/lib/chat/contacts.component.mjs +103 -0
  41. package/esm2020/lib/chat/contacts.pane.component.mjs +29 -0
  42. package/esm2020/lib/chat/conversation.component.mjs +193 -0
  43. package/esm2020/lib/chat/conversation.pane.component.mjs +53 -0
  44. package/esm2020/lib/compose/action/action-picker.component.mjs +84 -0
  45. package/esm2020/lib/compose/action/action-ref.mjs +19 -0
  46. package/esm2020/lib/compose/action/action.base.mjs +49 -0
  47. package/esm2020/lib/compose/action/action.dialog.mjs +61 -0
  48. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +72 -0
  49. package/esm2020/lib/compose/action/assign-action.component.mjs +70 -0
  50. package/esm2020/lib/compose/action/moveto-action.component.mjs +91 -0
  51. package/esm2020/lib/compose/action/return-action.component.mjs +52 -0
  52. package/esm2020/lib/compose/attachments/attachments.component.mjs +127 -0
  53. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +155 -0
  54. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +25 -0
  55. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +27 -0
  56. package/esm2020/lib/compose/comments/Comments.pane.component.mjs +49 -0
  57. package/esm2020/lib/compose/comments/comment.component.mjs +186 -0
  58. package/esm2020/lib/compose/comments/comments.component.mjs +227 -0
  59. package/esm2020/lib/compose/comments/edit-comment.component.mjs +32 -0
  60. package/esm2020/lib/compose/comments/edits.component.mjs +30 -0
  61. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +63 -0
  62. package/esm2020/lib/compose/comments/votes.component.mjs +42 -0
  63. package/esm2020/lib/compose/compose-resolve.service.mjs +55 -0
  64. package/esm2020/lib/compose/compose.mobile.component.mjs +112 -0
  65. package/esm2020/lib/compose/compose.pane.component.mjs +205 -0
  66. package/esm2020/lib/compose/copy/copy.dialog.mjs +46 -0
  67. package/esm2020/lib/compose/dismiss.service.mjs +25 -0
  68. package/esm2020/lib/compose/document-resolver.service.mjs +17 -0
  69. package/esm2020/lib/compose/document.component.mjs +45 -0
  70. package/esm2020/lib/compose/document.mobile.component.mjs +22 -0
  71. package/esm2020/lib/compose/document.pane.component.mjs +26 -0
  72. package/esm2020/lib/compose/events/events.component.mjs +30 -0
  73. package/esm2020/lib/compose/form-ref.mjs +46 -0
  74. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +88 -0
  75. package/esm2020/lib/compose/form.component.mjs +458 -0
  76. package/esm2020/lib/compose/new-menu.component.mjs +104 -0
  77. package/esm2020/lib/compose/privilage.directive.mjs +64 -0
  78. package/esm2020/lib/compose/recipient-resolver.service.mjs +18 -0
  79. package/esm2020/lib/compose/save-changes.dialog.mjs +18 -0
  80. package/esm2020/lib/compose/state.component.mjs +37 -0
  81. package/esm2020/lib/compose/tag/tags.component.mjs +91 -0
  82. package/esm2020/lib/compose/trace/flow.component.mjs +699 -0
  83. package/esm2020/lib/compose/trace/people.component.mjs +35 -0
  84. package/esm2020/lib/compose/trace/trace.base.mjs +71 -0
  85. package/esm2020/lib/compose/trace/trace.component.mjs +359 -0
  86. package/esm2020/lib/compose/trace/trace.pane.component.mjs +52 -0
  87. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +53 -0
  88. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +344 -0
  89. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +56 -0
  90. package/esm2020/lib/core/NgComponentOutlet.mjs +38 -0
  91. package/esm2020/lib/core/account.service.mjs +37 -0
  92. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +17 -0
  93. package/esm2020/lib/core/animations.mjs +156 -0
  94. package/esm2020/lib/core/authentication.mjs +3 -0
  95. package/esm2020/lib/core/avatar/avatar.component.mjs +103 -0
  96. package/esm2020/lib/core/base.mjs +2 -0
  97. package/esm2020/lib/core/colors.mjs +322 -0
  98. package/esm2020/lib/core/component-factory-resolver.mjs +64 -0
  99. package/esm2020/lib/core/configuration.mjs +17 -0
  100. package/esm2020/lib/core/controls/address.input.mjs +206 -0
  101. package/esm2020/lib/core/controls/auto-complete.input.mjs +256 -0
  102. package/esm2020/lib/core/controls/combination-picker-body.mjs +173 -0
  103. package/esm2020/lib/core/controls/combination-picker.mjs +277 -0
  104. package/esm2020/lib/core/controls/combination-pool.mjs +105 -0
  105. package/esm2020/lib/core/controls/file.input.mjs +420 -0
  106. package/esm2020/lib/core/controls/select.input.mjs +237 -0
  107. package/esm2020/lib/core/controls/time-picker.mjs +196 -0
  108. package/esm2020/lib/core/controls/timespan.input.mjs +207 -0
  109. package/esm2020/lib/core/datasource.service.mjs +75 -0
  110. package/esm2020/lib/core/decorators.mjs +46 -0
  111. package/esm2020/lib/core/firebase.service.mjs +50 -0
  112. package/esm2020/lib/core/functions.mjs +205 -0
  113. package/esm2020/lib/core/guide/guide.component.mjs +231 -0
  114. package/esm2020/lib/core/guide/guide.service.mjs +118 -0
  115. package/esm2020/lib/core/guide/help-tip.component.mjs +58 -0
  116. package/esm2020/lib/core/http.interceptor.mjs +79 -0
  117. package/esm2020/lib/core/hub.service.mjs +108 -0
  118. package/esm2020/lib/core/identity/identity.component.mjs +67 -0
  119. package/esm2020/lib/core/info/attachment-info.service.mjs +51 -0
  120. package/esm2020/lib/core/info/document-info.service.mjs +21 -0
  121. package/esm2020/lib/core/info/location-info.component.mjs +61 -0
  122. package/esm2020/lib/core/info/map-info.mjs +40 -0
  123. package/esm2020/lib/core/layout/autocomplete.field.mjs +60 -0
  124. package/esm2020/lib/core/layout/checkbox.field.mjs +41 -0
  125. package/esm2020/lib/core/layout/checkbox.mjs +35 -0
  126. package/esm2020/lib/core/layout/date-range.field.mjs +53 -0
  127. package/esm2020/lib/core/layout/date.field.mjs +52 -0
  128. package/esm2020/lib/core/layout/expression.field.mjs +51 -0
  129. package/esm2020/lib/core/layout/file.field.mjs +47 -0
  130. package/esm2020/lib/core/layout/html.field.mjs +48 -0
  131. package/esm2020/lib/core/layout/input.base.mjs +11 -0
  132. package/esm2020/lib/core/layout/input.field.mjs +64 -0
  133. package/esm2020/lib/core/layout/layout.component.mjs +196 -0
  134. package/esm2020/lib/core/layout/numeric.field.mjs +47 -0
  135. package/esm2020/lib/core/layout/select.field.mjs +82 -0
  136. package/esm2020/lib/core/layout/switch.field.mjs +41 -0
  137. package/esm2020/lib/core/layout/textarea.field.mjs +42 -0
  138. package/esm2020/lib/core/layout/timespan.field.mjs +50 -0
  139. package/esm2020/lib/core/lottie-animation.mjs +46 -0
  140. package/esm2020/lib/core/mailbox.service.mjs +410 -0
  141. package/esm2020/lib/core/models.mjs +40 -0
  142. package/esm2020/lib/core/none.component.mjs +40 -0
  143. package/esm2020/lib/core/pipes/action.pipe.mjs +25 -0
  144. package/esm2020/lib/core/pipes/calendar.pipe.mjs +72 -0
  145. package/esm2020/lib/core/pipes/date-format.pipe.mjs +19 -0
  146. package/esm2020/lib/core/pipes/daterange.pipe.mjs +62 -0
  147. package/esm2020/lib/core/pipes/difference.pipe.mjs +15 -0
  148. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +48 -0
  149. package/esm2020/lib/core/pipes/duration.pipe.mjs +19 -0
  150. package/esm2020/lib/core/pipes/form.pipe.mjs +25 -0
  151. package/esm2020/lib/core/pipes/join.pipe.mjs +18 -0
  152. package/esm2020/lib/core/pipes/role.pipe.mjs +25 -0
  153. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +18 -0
  154. package/esm2020/lib/core/pipes/sort.pipe.mjs +48 -0
  155. package/esm2020/lib/core/pipes/state.pipe.mjs +25 -0
  156. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +66 -0
  157. package/esm2020/lib/core/pipes/translate.pipe.mjs +38 -0
  158. package/esm2020/lib/core/pipes/type-value.pipe.mjs +42 -0
  159. package/esm2020/lib/core/pipes/user-name.pipe.mjs +21 -0
  160. package/esm2020/lib/core/popup/popup-ref.mjs +20 -0
  161. package/esm2020/lib/core/popup/popup.component.mjs +37 -0
  162. package/esm2020/lib/core/popup/popup.service.mjs +148 -0
  163. package/esm2020/lib/core/popup/tooltip.directive.mjs +82 -0
  164. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +29 -0
  165. package/esm2020/lib/core/prompt/mask/mask.component.mjs +21 -0
  166. package/esm2020/lib/core/prompt.service.mjs +86 -0
  167. package/esm2020/lib/core/router.mjs +37 -0
  168. package/esm2020/lib/core/session.service.mjs +256 -0
  169. package/esm2020/lib/core/slots/pane-ref.mjs +148 -0
  170. package/esm2020/lib/core/slots/router.directive.mjs +68 -0
  171. package/esm2020/lib/core/slots/router.service.mjs +30 -0
  172. package/esm2020/lib/core/slots/slots.component.mjs +1141 -0
  173. package/esm2020/lib/core/tagging/documents.component.mjs +25 -0
  174. package/esm2020/lib/core/tagging/edit-input.component.mjs +233 -0
  175. package/esm2020/lib/core/tagging/emoji.component.mjs +35 -0
  176. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +39 -0
  177. package/esm2020/lib/core/tagging/tagging.component-base.mjs +29 -0
  178. package/esm2020/lib/core/tagging/tagging.directive.mjs +138 -0
  179. package/esm2020/lib/core/tagging/tagging.pipe.mjs +72 -0
  180. package/esm2020/lib/core/tagging/users.component.mjs +32 -0
  181. package/esm2020/lib/core/translate.service.mjs +124 -0
  182. package/esm2020/lib/core/translations.mjs +1135 -0
  183. package/esm2020/lib/core/window-title.service.mjs +53 -0
  184. package/esm2020/lib/cube/accum/accum.component.mjs +259 -0
  185. package/esm2020/lib/cube/chart/chart.component.mjs +341 -0
  186. package/esm2020/lib/cube/cube-info.service.mjs +100 -0
  187. package/esm2020/lib/cube/cube-menu.component.mjs +27 -0
  188. package/esm2020/lib/cube/cube-view.component.mjs +186 -0
  189. package/esm2020/lib/cube/cube.service.mjs +418 -0
  190. package/esm2020/lib/cube/declarations.mjs +2 -0
  191. package/esm2020/lib/cube/explore/document-item.component.mjs +38 -0
  192. package/esm2020/lib/cube/explore/explore-item.component.mjs +27 -0
  193. package/esm2020/lib/cube/explore/explore-items.component.mjs +186 -0
  194. package/esm2020/lib/cube/explore/explore.pane.component.mjs +83 -0
  195. package/esm2020/lib/cube/explore/item-resolver.service.mjs +32 -0
  196. package/esm2020/lib/cube/explore/item.pane.component.mjs +23 -0
  197. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +75 -0
  198. package/esm2020/lib/cube/filter/filter.component.mjs +137 -0
  199. package/esm2020/lib/cube/grid/grid.component.mjs +218 -0
  200. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +367 -0
  201. package/esm2020/lib/cube/matrix/matrix.base.mjs +127 -0
  202. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +63 -0
  203. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +76 -0
  204. package/esm2020/lib/cube/matrix/popup.component.mjs +67 -0
  205. package/esm2020/lib/cube/matrix/table.component.mjs +493 -0
  206. package/esm2020/lib/cube/parallel/item.mjs +41 -0
  207. package/esm2020/lib/cube/parallel/parallel.component.mjs +159 -0
  208. package/esm2020/lib/cube/pivot/pivot.component.mjs +507 -0
  209. package/esm2020/lib/cube/sum/sum.component.mjs +404 -0
  210. package/esm2020/lib/cube/view-base.mjs +79 -0
  211. package/esm2020/lib/cube/view.mobile.component.mjs +127 -0
  212. package/esm2020/lib/cube/view.pane.component.mjs +88 -0
  213. package/esm2020/lib/dashboard/actions/actions.widget.mjs +126 -0
  214. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +145 -0
  215. package/esm2020/lib/dashboard/cube/compare.widget.mjs +215 -0
  216. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +90 -0
  217. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +53 -0
  218. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +144 -0
  219. package/esm2020/lib/dashboard/cube/documents.widget.mjs +64 -0
  220. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +61 -0
  221. package/esm2020/lib/dashboard/dashboard.component.mjs +55 -0
  222. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +24 -0
  223. package/esm2020/lib/dashboard/recents/recents.widget.mjs +98 -0
  224. package/esm2020/lib/dashboard/score/activity.widget.mjs +173 -0
  225. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +206 -0
  226. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +253 -0
  227. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +60 -0
  228. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +223 -0
  229. package/esm2020/lib/dashboard/widget-item.component.mjs +90 -0
  230. package/esm2020/lib/dashboard/widget-ref.mjs +18 -0
  231. package/esm2020/lib/desktop.module.mjs +144 -0
  232. package/esm2020/lib/home/about/about.dialog.mjs +26 -0
  233. package/esm2020/lib/home/home-base.component.mjs +91 -0
  234. package/esm2020/lib/home/home.desktop.component.mjs +221 -0
  235. package/esm2020/lib/home/home.mobile.component.mjs +116 -0
  236. package/esm2020/lib/home/notifications/notifications.component.mjs +67 -0
  237. package/esm2020/lib/home/options/options.component.mjs +94 -0
  238. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +38 -0
  239. package/esm2020/lib/home/search.service.mjs +75 -0
  240. package/esm2020/lib/home/sign/sign.component.mjs +54 -0
  241. package/esm2020/lib/home/tools.component.mjs +82 -0
  242. package/esm2020/lib/impersonate/impersonate.component.mjs +65 -0
  243. package/esm2020/lib/mobile.module.mjs +59 -0
  244. package/esm2020/lib/modules/chart.module.mjs +39 -0
  245. package/esm2020/lib/modules/circular-gauge.module.mjs +17 -0
  246. package/esm2020/lib/modules/date.adapter.mjs +23 -0
  247. package/esm2020/lib/modules/datepicker.intl.mjs +39 -0
  248. package/esm2020/lib/modules/dayjs.module.mjs +41 -0
  249. package/esm2020/lib/modules/diagram.module.mjs +35 -0
  250. package/esm2020/lib/modules/gantt.module.mjs +18 -0
  251. package/esm2020/lib/modules/grid.module.mjs +23 -0
  252. package/esm2020/lib/modules/material.module.mjs +188 -0
  253. package/esm2020/lib/modules/paginator.intl.mjs +21 -0
  254. package/esm2020/lib/modules/pivot.module.mjs +24 -0
  255. package/esm2020/lib/modules/schedule.module.mjs +21 -0
  256. package/esm2020/lib/modules/spreadsheet.module.mjs +30 -0
  257. package/esm2020/lib/modules/stepper.intl.mjs +17 -0
  258. package/esm2020/lib/modules/texteditor.module.mjs +27 -0
  259. package/esm2020/lib/notifications/filter.component.mjs +25 -0
  260. package/esm2020/lib/notifications/notifications-table.component.mjs +106 -0
  261. package/esm2020/lib/notifications/notifications.component-base.mjs +47 -0
  262. package/esm2020/lib/notifications/notifications.mobile.component.mjs +20 -0
  263. package/esm2020/lib/notifications/notifications.pane.component.mjs +23 -0
  264. package/esm2020/lib/notifications/notifications.service.mjs +71 -0
  265. package/esm2020/lib/notifications/types/commented.notification.mjs +53 -0
  266. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +58 -0
  267. package/esm2020/lib/notifications/types/escalated.notification.mjs +33 -0
  268. package/esm2020/lib/notifications/types/liked.notification.mjs +50 -0
  269. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +31 -0
  270. package/esm2020/lib/notifications/types/notification-base.mjs +40 -0
  271. package/esm2020/lib/notifications/types/nudge.notification.mjs +31 -0
  272. package/esm2020/lib/notifications/types/state-changed.notification.mjs +30 -0
  273. package/esm2020/lib/notifications/types/tagged.notification.mjs +43 -0
  274. package/esm2020/lib/notifications/types/text.notification.mjs +20 -0
  275. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +36 -0
  276. package/esm2020/lib/options/options.component.mjs +248 -0
  277. package/esm2020/lib/options/options.service.mjs +38 -0
  278. package/esm2020/lib/reports/arguments-component.mjs +83 -0
  279. package/esm2020/lib/reports/cube/documents.component.mjs +40 -0
  280. package/esm2020/lib/reports/cube/grid-documents.component.mjs +72 -0
  281. package/esm2020/lib/reports/cube/table-documents.component.mjs +56 -0
  282. package/esm2020/lib/reports/cube/usage-args.component.mjs +61 -0
  283. package/esm2020/lib/reports/cube/usage-base.mjs +79 -0
  284. package/esm2020/lib/reports/cube/usage-chart.component.mjs +357 -0
  285. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +256 -0
  286. package/esm2020/lib/reports/cube/usage.component.mjs +40 -0
  287. package/esm2020/lib/reports/report-ref.mjs +31 -0
  288. package/esm2020/lib/reports/report-viewer.component.mjs +151 -0
  289. package/esm2020/lib/reports/report.mobile.component.mjs +128 -0
  290. package/esm2020/lib/reports/report.pane.component.mjs +96 -0
  291. package/esm2020/lib/reports/reports-menu.component.mjs +26 -0
  292. package/esm2020/lib/reports/substitution/substitution.component.mjs +40 -0
  293. package/esm2020/lib/reports/table/table-view.component.mjs +41 -0
  294. package/esm2020/lib/reports/tasks/tasks.component.mjs +95 -0
  295. package/esm2020/lib/routes.desktop.mjs +197 -0
  296. package/esm2020/lib/routes.mobile.mjs +69 -0
  297. package/esm2020/lib/scheduler/schedule.component.mjs +166 -0
  298. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +37 -0
  299. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +53 -0
  300. package/esm2020/lib/shared.module.mjs +518 -0
  301. package/esm2020/lib/system.module.mjs +113 -0
  302. package/esm2020/lib/views/cube/chart.component.mjs +75 -0
  303. package/esm2020/lib/views/cube/cube-base.mjs +96 -0
  304. package/esm2020/lib/views/cube/explore.component.mjs +83 -0
  305. package/esm2020/lib/views/cube/matrix.component.mjs +97 -0
  306. package/esm2020/lib/views/cube/parallel.component.mjs +54 -0
  307. package/esm2020/lib/views/cube/pivot.component.mjs +51 -0
  308. package/esm2020/lib/views/cube/sum.component.mjs +64 -0
  309. package/esm2020/lib/views/cube/view.component.mjs +102 -0
  310. package/esm2020/lib/views/document-view-ref.mjs +27 -0
  311. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +313 -0
  312. package/esm2020/lib/views/view-item.component.mjs +67 -0
  313. package/esm2020/lib/views/views.component.mjs +33 -0
  314. package/esm2020/lib/views/views.mobile.component.mjs +20 -0
  315. package/esm2020/lib/views/views.pane.component.mjs +35 -0
  316. package/esm2020/public-api.mjs +143 -0
  317. package/fesm2015/bizdoc-core.mjs +30733 -0
  318. package/fesm2015/bizdoc-core.mjs.map +1 -0
  319. package/fesm2020/bizdoc-core.mjs +30513 -0
  320. package/fesm2020/bizdoc-core.mjs.map +1 -0
  321. package/lib/admin/admin-dismiss.service.d.ts +14 -0
  322. package/lib/admin/admin-menu.component.d.ts +12 -0
  323. package/lib/admin/core/ace.input.d.ts +52 -0
  324. package/lib/admin/core/color-picker.input.d.ts +64 -0
  325. package/lib/admin/core/search.input.d.ts +13 -0
  326. package/lib/admin/diff/configuration-diff.component.d.ts +116 -0
  327. package/lib/admin/document-trace/document-trace.component.d.ts +98 -0
  328. package/lib/admin/document-trace/reassign.dialog.d.ts +22 -0
  329. package/lib/admin/document-trace/timeline.d.ts +40 -0
  330. package/lib/admin/document-trace/trace-element.component.d.ts +51 -0
  331. package/lib/admin/form/form.resolve.service.d.ts +12 -0
  332. package/lib/admin/form/form.service.d.ts +30 -0
  333. package/lib/admin/form/workflow/node-ref.d.ts +7 -0
  334. package/lib/admin/form/workflow/node.component.d.ts +37 -0
  335. package/lib/admin/form/workflow/role-node.component.d.ts +22 -0
  336. package/lib/admin/form/workflow/workflow.component.d.ts +76 -0
  337. package/lib/admin/indices/manage-cube-index.component.d.ts +54 -0
  338. package/lib/admin/patterns/patterns.component.d.ts +79 -0
  339. package/lib/admin/permissions/permissions.component.d.ts +45 -0
  340. package/lib/admin/positions/positions-popup.component.d.ts +39 -0
  341. package/lib/admin/positions/positions.component.d.ts +117 -0
  342. package/lib/admin/profiler/outofoffice.component.d.ts +48 -0
  343. package/lib/admin/profiler/profiler.component.d.ts +116 -0
  344. package/lib/admin/utility-ref.d.ts +19 -0
  345. package/lib/admin/utility-wrapper.component.d.ts +28 -0
  346. package/lib/admin/utility.pane.component.d.ts +24 -0
  347. package/lib/app.component.d.ts +24 -0
  348. package/lib/bizdoc.module.d.ts +18 -0
  349. package/lib/browse/browse-items.component.d.ts +103 -0
  350. package/lib/browse/browse.mobile.component.d.ts +39 -0
  351. package/lib/browse/browse.pane.component.d.ts +50 -0
  352. package/lib/browse/expanded-item/expanded-item.component.d.ts +67 -0
  353. package/lib/browse/filter/filter.component.d.ts +71 -0
  354. package/lib/browse/folders-menu.component.d.ts +22 -0
  355. package/lib/chat/chat-info.d.ts +37 -0
  356. package/lib/chat/chat.mobile.component.d.ts +10 -0
  357. package/lib/chat/chat.service.d.ts +38 -0
  358. package/lib/chat/contacts.component.d.ts +38 -0
  359. package/lib/chat/contacts.pane.component.d.ts +12 -0
  360. package/lib/chat/conversation.component.d.ts +56 -0
  361. package/lib/chat/conversation.pane.component.d.ts +16 -0
  362. package/lib/compose/action/action-picker.component.d.ts +25 -0
  363. package/lib/compose/action/action-ref.d.ts +10 -0
  364. package/lib/compose/action/action.base.d.ts +15 -0
  365. package/lib/compose/action/action.dialog.d.ts +29 -0
  366. package/lib/compose/action/action.pane.dialog.exp.d.ts +31 -0
  367. package/lib/compose/action/assign-action.component.d.ts +30 -0
  368. package/lib/compose/action/moveto-action.component.d.ts +36 -0
  369. package/lib/compose/action/return-action.component.d.ts +19 -0
  370. package/lib/compose/attachments/attachments.component.d.ts +35 -0
  371. package/lib/compose/attachments/preview/attachment-preview.component.d.ts +49 -0
  372. package/lib/compose/attachments/progress-button.directive.d.ts +12 -0
  373. package/lib/compose/can-deactivate-changes.service.d.ts +12 -0
  374. package/lib/compose/comments/Comments.pane.component.d.ts +18 -0
  375. package/lib/compose/comments/comment.component.d.ts +51 -0
  376. package/lib/compose/comments/comments.component.d.ts +66 -0
  377. package/lib/compose/comments/edit-comment.component.d.ts +25 -0
  378. package/lib/compose/comments/edits.component.d.ts +26 -0
  379. package/lib/compose/comments/quick-comment.component.exp.d.ts +28 -0
  380. package/lib/compose/comments/votes.component.d.ts +22 -0
  381. package/lib/compose/compose-resolve.service.d.ts +27 -0
  382. package/lib/compose/compose.mobile.component.d.ts +42 -0
  383. package/lib/compose/compose.pane.component.d.ts +58 -0
  384. package/lib/compose/copy/copy.dialog.d.ts +23 -0
  385. package/lib/compose/dismiss.service.d.ts +12 -0
  386. package/lib/compose/document-resolver.service.d.ts +12 -0
  387. package/lib/compose/document.component.d.ts +18 -0
  388. package/lib/compose/document.mobile.component.d.ts +10 -0
  389. package/lib/compose/document.pane.component.d.ts +12 -0
  390. package/lib/compose/events/events.component.d.ts +13 -0
  391. package/lib/compose/form-ref.d.ts +30 -0
  392. package/lib/compose/form-selector/form-selector.sheet.d.ts +28 -0
  393. package/lib/compose/form.component.d.ts +101 -0
  394. package/lib/compose/new-menu.component.d.ts +36 -0
  395. package/lib/compose/privilage.directive.d.ts +26 -0
  396. package/lib/compose/recipient-resolver.service.d.ts +12 -0
  397. package/lib/compose/save-changes.dialog.d.ts +7 -0
  398. package/lib/compose/state.component.d.ts +12 -0
  399. package/lib/compose/tag/tags.component.d.ts +36 -0
  400. package/lib/compose/trace/flow.component.d.ts +59 -0
  401. package/lib/compose/trace/people.component.d.ts +18 -0
  402. package/lib/compose/trace/trace.base.d.ts +28 -0
  403. package/lib/compose/trace/trace.component.d.ts +55 -0
  404. package/lib/compose/trace/trace.pane.component.d.ts +20 -0
  405. package/lib/compose/version-compare/version-compare.component.d.ts +24 -0
  406. package/lib/compose/version-compare/version-compare.directive.d.ts +89 -0
  407. package/lib/compose/version-compare/version.pane.component.d.ts +21 -0
  408. package/lib/core/NgComponentOutlet.d.ts +15 -0
  409. package/lib/core/account.service.d.ts +18 -0
  410. package/lib/core/animated-icon/animated-icon.directive.d.ts +7 -0
  411. package/lib/core/animations.d.ts +26 -0
  412. package/lib/core/authentication.d.ts +6 -0
  413. package/lib/core/avatar/avatar.component.d.ts +34 -0
  414. package/lib/core/base.d.ts +31 -0
  415. package/lib/core/colors.d.ts +6 -0
  416. package/lib/core/component-factory-resolver.d.ts +12 -0
  417. package/lib/core/configuration.d.ts +113 -0
  418. package/lib/core/controls/address.input.d.ts +65 -0
  419. package/lib/core/controls/auto-complete.input.d.ts +86 -0
  420. package/lib/core/controls/combination-picker-body.d.ts +114 -0
  421. package/lib/core/controls/combination-picker.d.ts +82 -0
  422. package/lib/core/controls/combination-pool.d.ts +42 -0
  423. package/lib/core/controls/file.input.d.ts +99 -0
  424. package/lib/core/controls/select.input.d.ts +84 -0
  425. package/lib/core/controls/time-picker.d.ts +52 -0
  426. package/lib/core/controls/timespan.input.d.ts +55 -0
  427. package/lib/core/datasource.service.d.ts +46 -0
  428. package/lib/core/decorators.d.ts +17 -0
  429. package/lib/core/firebase.service.d.ts +17 -0
  430. package/lib/core/functions.d.ts +54 -0
  431. package/lib/core/guide/guide.component.d.ts +31 -0
  432. package/lib/core/guide/guide.service.d.ts +38 -0
  433. package/lib/core/guide/help-tip.component.d.ts +16 -0
  434. package/lib/core/http.interceptor.d.ts +21 -0
  435. package/lib/core/hub.service.d.ts +133 -0
  436. package/lib/core/identity/identity.component.d.ts +29 -0
  437. package/lib/core/info/attachment-info.service.d.ts +17 -0
  438. package/lib/core/info/document-info.service.d.ts +14 -0
  439. package/lib/core/info/location-info.component.d.ts +28 -0
  440. package/lib/core/info/map-info.d.ts +15 -0
  441. package/lib/core/layout/autocomplete.field.d.ts +21 -0
  442. package/lib/core/layout/checkbox.d.ts +10 -0
  443. package/lib/core/layout/checkbox.field.d.ts +11 -0
  444. package/lib/core/layout/date-range.field.d.ts +13 -0
  445. package/lib/core/layout/date.field.d.ts +11 -0
  446. package/lib/core/layout/expression.field.d.ts +12 -0
  447. package/lib/core/layout/file.field.d.ts +14 -0
  448. package/lib/core/layout/html.field.d.ts +12 -0
  449. package/lib/core/layout/input.base.d.ts +10 -0
  450. package/lib/core/layout/input.field.d.ts +14 -0
  451. package/lib/core/layout/layout.component.d.ts +33 -0
  452. package/lib/core/layout/numeric.field.d.ts +11 -0
  453. package/lib/core/layout/select.field.d.ts +22 -0
  454. package/lib/core/layout/switch.field.d.ts +11 -0
  455. package/lib/core/layout/textarea.field.d.ts +11 -0
  456. package/lib/core/layout/timespan.field.d.ts +11 -0
  457. package/lib/core/lottie-animation.d.ts +14 -0
  458. package/lib/core/mailbox.service.d.ts +142 -0
  459. package/lib/core/models.d.ts +652 -0
  460. package/lib/core/none.component.d.ts +9 -0
  461. package/lib/core/pipes/action.pipe.d.ts +10 -0
  462. package/lib/core/pipes/calendar.pipe.d.ts +27 -0
  463. package/lib/core/pipes/date-format.pipe.d.ts +8 -0
  464. package/lib/core/pipes/daterange.pipe.d.ts +15 -0
  465. package/lib/core/pipes/difference.pipe.d.ts +7 -0
  466. package/lib/core/pipes/duration-format.pipe.d.ts +11 -0
  467. package/lib/core/pipes/duration.pipe.d.ts +8 -0
  468. package/lib/core/pipes/form.pipe.d.ts +10 -0
  469. package/lib/core/pipes/join.pipe.d.ts +10 -0
  470. package/lib/core/pipes/role.pipe.d.ts +10 -0
  471. package/lib/core/pipes/sanitize-html.pipe.d.ts +10 -0
  472. package/lib/core/pipes/sort.pipe.d.ts +12 -0
  473. package/lib/core/pipes/state.pipe.d.ts +10 -0
  474. package/lib/core/pipes/time-ago.pipe.d.ts +16 -0
  475. package/lib/core/pipes/translate.pipe.d.ts +18 -0
  476. package/lib/core/pipes/type-value.pipe.d.ts +15 -0
  477. package/lib/core/pipes/user-name.pipe.d.ts +11 -0
  478. package/lib/core/popup/popup-ref.d.ts +14 -0
  479. package/lib/core/popup/popup.component.d.ts +22 -0
  480. package/lib/core/popup/popup.service.d.ts +24 -0
  481. package/lib/core/popup/tooltip.directive.d.ts +29 -0
  482. package/lib/core/prompt/ask/ask.dialog.d.ts +22 -0
  483. package/lib/core/prompt/mask/mask.component.d.ts +10 -0
  484. package/lib/core/prompt.service.d.ts +36 -0
  485. package/lib/core/router.d.ts +22 -0
  486. package/lib/core/session.service.d.ts +82 -0
  487. package/lib/core/slots/pane-ref.d.ts +135 -0
  488. package/lib/core/slots/router.directive.d.ts +25 -0
  489. package/lib/core/slots/router.service.d.ts +36 -0
  490. package/lib/core/slots/slots.component.d.ts +212 -0
  491. package/lib/core/tagging/documents.component.d.ts +11 -0
  492. package/lib/core/tagging/edit-input.component.d.ts +65 -0
  493. package/lib/core/tagging/emoji.component.d.ts +18 -0
  494. package/lib/core/tagging/tagging-item.directive.d.ts +15 -0
  495. package/lib/core/tagging/tagging.component-base.d.ts +19 -0
  496. package/lib/core/tagging/tagging.directive.d.ts +34 -0
  497. package/lib/core/tagging/tagging.pipe.d.ts +24 -0
  498. package/lib/core/tagging/users.component.d.ts +15 -0
  499. package/lib/core/translate.service.d.ts +31 -0
  500. package/lib/core/translations.d.ts +1128 -0
  501. package/lib/core/window-title.service.d.ts +21 -0
  502. package/lib/cube/accum/accum.component.d.ts +63 -0
  503. package/lib/cube/chart/chart.component.d.ts +74 -0
  504. package/lib/cube/cube-info.service.d.ts +77 -0
  505. package/lib/cube/cube-menu.component.d.ts +12 -0
  506. package/lib/cube/cube-view.component.d.ts +31 -0
  507. package/lib/cube/cube.service.d.ts +268 -0
  508. package/lib/cube/declarations.d.ts +23 -0
  509. package/lib/cube/explore/document-item.component.d.ts +16 -0
  510. package/lib/cube/explore/explore-item.component.d.ts +14 -0
  511. package/lib/cube/explore/explore-items.component.d.ts +57 -0
  512. package/lib/cube/explore/explore.pane.component.d.ts +30 -0
  513. package/lib/cube/explore/item-resolver.service.d.ts +20 -0
  514. package/lib/cube/explore/item.pane.component.d.ts +13 -0
  515. package/lib/cube/filter/filter-tags.component.exp.d.ts +31 -0
  516. package/lib/cube/filter/filter.component.d.ts +44 -0
  517. package/lib/cube/grid/grid.component.d.ts +59 -0
  518. package/lib/cube/grid/spreadsheet.component.d.ts +62 -0
  519. package/lib/cube/matrix/matrix.base.d.ts +72 -0
  520. package/lib/cube/matrix/matrix.mobile.component.d.ts +22 -0
  521. package/lib/cube/matrix/matrix.pane.component.d.ts +36 -0
  522. package/lib/cube/matrix/popup.component.d.ts +21 -0
  523. package/lib/cube/matrix/table.component.d.ts +100 -0
  524. package/lib/cube/parallel/item.d.ts +13 -0
  525. package/lib/cube/parallel/parallel.component.d.ts +52 -0
  526. package/lib/cube/pivot/pivot.component.d.ts +103 -0
  527. package/lib/cube/sum/sum.component.d.ts +81 -0
  528. package/lib/cube/view-base.d.ts +39 -0
  529. package/lib/cube/view.mobile.component.d.ts +46 -0
  530. package/lib/cube/view.pane.component.d.ts +27 -0
  531. package/lib/dashboard/actions/actions.widget.d.ts +39 -0
  532. package/lib/dashboard/cube/accum-cube.widget.d.ts +33 -0
  533. package/lib/dashboard/cube/compare.widget.d.ts +53 -0
  534. package/lib/dashboard/cube/cube-analysis.base.d.ts +59 -0
  535. package/lib/dashboard/cube/cube-analysis.widget.d.ts +17 -0
  536. package/lib/dashboard/cube/cube-chart.widget.d.ts +32 -0
  537. package/lib/dashboard/cube/documents.widget.d.ts +30 -0
  538. package/lib/dashboard/cube/filter/filter.component.d.ts +22 -0
  539. package/lib/dashboard/dashboard.component.d.ts +24 -0
  540. package/lib/dashboard/dashboard.pane.component.d.ts +8 -0
  541. package/lib/dashboard/recents/recents.widget.d.ts +40 -0
  542. package/lib/dashboard/score/activity.widget.d.ts +50 -0
  543. package/lib/dashboard/score/compare-groups.widget.d.ts +51 -0
  544. package/lib/dashboard/score/peers-performance.widget.d.ts +65 -0
  545. package/lib/dashboard/score/pending-results.widget.d.ts +27 -0
  546. package/lib/dashboard/score/personal-score.widget.d.ts +57 -0
  547. package/lib/dashboard/widget-item.component.d.ts +33 -0
  548. package/lib/dashboard/widget-ref.d.ts +11 -0
  549. package/lib/desktop.module.d.ts +45 -0
  550. package/lib/home/about/about.dialog.d.ts +14 -0
  551. package/lib/home/home-base.component.d.ts +34 -0
  552. package/lib/home/home.desktop.component.d.ts +60 -0
  553. package/lib/home/home.mobile.component.d.ts +38 -0
  554. package/lib/home/notifications/notifications.component.d.ts +28 -0
  555. package/lib/home/options/options.component.d.ts +46 -0
  556. package/lib/home/outofoffice/outofoffice.component.d.ts +19 -0
  557. package/lib/home/search.service.d.ts +23 -0
  558. package/lib/home/sign/sign.component.d.ts +17 -0
  559. package/lib/home/tools.component.d.ts +36 -0
  560. package/lib/impersonate/impersonate.component.d.ts +27 -0
  561. package/lib/mobile.module.d.ts +25 -0
  562. package/lib/modules/chart.module.d.ts +7 -0
  563. package/lib/modules/circular-gauge.module.d.ts +7 -0
  564. package/lib/modules/date.adapter.d.ts +10 -0
  565. package/lib/modules/datepicker.intl.d.ts +30 -0
  566. package/lib/modules/dayjs.module.d.ts +6 -0
  567. package/lib/modules/diagram.module.d.ts +8 -0
  568. package/lib/modules/gantt.module.d.ts +7 -0
  569. package/lib/modules/grid.module.d.ts +7 -0
  570. package/lib/modules/material.module.d.ts +45 -0
  571. package/lib/modules/paginator.intl.d.ts +14 -0
  572. package/lib/modules/pivot.module.d.ts +7 -0
  573. package/lib/modules/schedule.module.d.ts +7 -0
  574. package/lib/modules/spreadsheet.module.d.ts +8 -0
  575. package/lib/modules/stepper.intl.d.ts +10 -0
  576. package/lib/modules/texteditor.module.d.ts +8 -0
  577. package/lib/notifications/filter.component.d.ts +9 -0
  578. package/lib/notifications/notifications-table.component.d.ts +32 -0
  579. package/lib/notifications/notifications.component-base.d.ts +12 -0
  580. package/lib/notifications/notifications.mobile.component.d.ts +8 -0
  581. package/lib/notifications/notifications.pane.component.d.ts +8 -0
  582. package/lib/notifications/notifications.service.d.ts +24 -0
  583. package/lib/notifications/types/commented.notification.d.ts +26 -0
  584. package/lib/notifications/types/cube-anomaly.notification.d.ts +29 -0
  585. package/lib/notifications/types/escalated.notification.d.ts +25 -0
  586. package/lib/notifications/types/liked.notification.d.ts +25 -0
  587. package/lib/notifications/types/long-running-task.notification.d.ts +21 -0
  588. package/lib/notifications/types/notification-base.d.ts +20 -0
  589. package/lib/notifications/types/nudge.notification.d.ts +23 -0
  590. package/lib/notifications/types/state-changed.notification.d.ts +22 -0
  591. package/lib/notifications/types/tagged.notification.d.ts +26 -0
  592. package/lib/notifications/types/text.notification.d.ts +13 -0
  593. package/lib/notifications/types/upcoming-event.notification.d.ts +20 -0
  594. package/lib/options/options.component.d.ts +67 -0
  595. package/lib/options/options.service.d.ts +14 -0
  596. package/lib/reports/arguments-component.d.ts +27 -0
  597. package/lib/reports/cube/documents.component.d.ts +34 -0
  598. package/lib/reports/cube/grid-documents.component.d.ts +28 -0
  599. package/lib/reports/cube/table-documents.component.d.ts +28 -0
  600. package/lib/reports/cube/usage-args.component.d.ts +21 -0
  601. package/lib/reports/cube/usage-base.d.ts +72 -0
  602. package/lib/reports/cube/usage-chart.component.d.ts +62 -0
  603. package/lib/reports/cube/usage-pivot.component.d.ts +66 -0
  604. package/lib/reports/cube/usage.component.d.ts +16 -0
  605. package/lib/reports/report-ref.d.ts +27 -0
  606. package/lib/reports/report-viewer.component.d.ts +47 -0
  607. package/lib/reports/report.mobile.component.d.ts +48 -0
  608. package/lib/reports/report.pane.component.d.ts +37 -0
  609. package/lib/reports/reports-menu.component.d.ts +12 -0
  610. package/lib/reports/substitution/substitution.component.d.ts +23 -0
  611. package/lib/reports/table/table-view.component.d.ts +19 -0
  612. package/lib/reports/tasks/tasks.component.d.ts +68 -0
  613. package/lib/routes.desktop.d.ts +2 -0
  614. package/lib/routes.mobile.d.ts +2 -0
  615. package/lib/scheduler/schedule.component.d.ts +43 -0
  616. package/lib/scheduler/scheduler.mobile.component.d.ts +14 -0
  617. package/lib/scheduler/scheduler.pane.component.d.ts +20 -0
  618. package/lib/shared.module.d.ts +192 -0
  619. package/lib/system.module.d.ts +34 -0
  620. package/lib/views/cube/chart.component.d.ts +39 -0
  621. package/lib/views/cube/cube-base.d.ts +46 -0
  622. package/lib/views/cube/explore.component.d.ts +43 -0
  623. package/lib/views/cube/matrix.component.d.ts +51 -0
  624. package/lib/views/cube/parallel.component.d.ts +32 -0
  625. package/lib/views/cube/pivot.component.d.ts +34 -0
  626. package/lib/views/cube/sum.component.d.ts +33 -0
  627. package/lib/views/cube/view.component.d.ts +40 -0
  628. package/lib/views/document-view-ref.d.ts +18 -0
  629. package/lib/views/timeline/timeline.component.exp.d.ts +66 -0
  630. package/lib/views/view-item.component.d.ts +28 -0
  631. package/lib/views/views.component.d.ts +18 -0
  632. package/lib/views/views.mobile.component.d.ts +10 -0
  633. package/lib/views/views.pane.component.d.ts +13 -0
  634. package/package.json +78 -78
  635. package/public-api.d.ts +145 -0
  636. package/LICENSE.md +0 -1
  637. package/karma.conf.js +0 -44
  638. package/ng-package.json +0 -11
  639. package/src/icons/pdf.svg +0 -24
  640. package/src/icons/word.svg +0 -13
  641. package/src/lib/admin/_admin-theme.scss +0 -6
  642. package/src/lib/admin/admin-dismiss.service.ts +0 -24
  643. package/src/lib/admin/admin-menu.component.html +0 -18
  644. package/src/lib/admin/admin-menu.component.ts +0 -20
  645. package/src/lib/admin/core/ace.input.ts +0 -133
  646. package/src/lib/admin/core/color-picker.input.scss +0 -17
  647. package/src/lib/admin/core/color-picker.input.ts +0 -175
  648. package/src/lib/admin/core/search.input.ts +0 -32
  649. package/src/lib/admin/diff/_configuration-diff-theme.scss +0 -84
  650. package/src/lib/admin/diff/configuration-diff.component.html +0 -24
  651. package/src/lib/admin/diff/configuration-diff.component.scss +0 -16
  652. package/src/lib/admin/diff/configuration-diff.component.ts +0 -552
  653. package/src/lib/admin/document-trace/Timeline.ts +0 -45
  654. package/src/lib/admin/document-trace/_timeline-theme.scss +0 -70
  655. package/src/lib/admin/document-trace/document-trace.component.html +0 -96
  656. package/src/lib/admin/document-trace/document-trace.component.scss +0 -16
  657. package/src/lib/admin/document-trace/document-trace.component.ts +0 -526
  658. package/src/lib/admin/document-trace/reassign.dialog.html +0 -24
  659. package/src/lib/admin/document-trace/reassign.dialog.ts +0 -34
  660. package/src/lib/admin/document-trace/trace-element.component.html +0 -55
  661. package/src/lib/admin/document-trace/trace-element.component.scss +0 -23
  662. package/src/lib/admin/document-trace/trace-element.component.ts +0 -139
  663. package/src/lib/admin/form/form.resolve.service.ts +0 -13
  664. package/src/lib/admin/form/form.service.ts +0 -49
  665. package/src/lib/admin/form/workflow/node-ref.ts +0 -8
  666. package/src/lib/admin/form/workflow/node.component.html +0 -36
  667. package/src/lib/admin/form/workflow/node.component.scss +0 -4
  668. package/src/lib/admin/form/workflow/node.component.ts +0 -129
  669. package/src/lib/admin/form/workflow/role-node.component.html +0 -40
  670. package/src/lib/admin/form/workflow/role-node.component.ts +0 -66
  671. package/src/lib/admin/form/workflow/tools.component.exp.ts +0 -13
  672. package/src/lib/admin/form/workflow/tools.component.html +0 -1
  673. package/src/lib/admin/form/workflow/workflow.component.html +0 -66
  674. package/src/lib/admin/form/workflow/workflow.component.scss +0 -57
  675. package/src/lib/admin/form/workflow/workflow.component.ts +0 -438
  676. package/src/lib/admin/indices/manage-cube-index.component.html +0 -35
  677. package/src/lib/admin/indices/manage-cube-index.component.scss +0 -16
  678. package/src/lib/admin/indices/manage-cube-index.component.ts +0 -155
  679. package/src/lib/admin/patterns/patterns.component.html +0 -70
  680. package/src/lib/admin/patterns/patterns.component.ts +0 -166
  681. package/src/lib/admin/permissions/permissions.component.html +0 -21
  682. package/src/lib/admin/permissions/permissions.component.scss +0 -7
  683. package/src/lib/admin/permissions/permissions.component.ts +0 -89
  684. package/src/lib/admin/positions/positions-popup.component.html +0 -23
  685. package/src/lib/admin/positions/positions-popup.component.ts +0 -68
  686. package/src/lib/admin/positions/positions.component.html +0 -150
  687. package/src/lib/admin/positions/positions.component.scss +0 -20
  688. package/src/lib/admin/positions/positions.component.ts +0 -464
  689. package/src/lib/admin/profiler/assign.component.html +0 -14
  690. package/src/lib/admin/profiler/outofoffice.component.html +0 -64
  691. package/src/lib/admin/profiler/outofoffice.component.ts +0 -146
  692. package/src/lib/admin/profiler/profiler.component.html +0 -110
  693. package/src/lib/admin/profiler/profiler.component.scss +0 -23
  694. package/src/lib/admin/profiler/profiler.component.ts +0 -302
  695. package/src/lib/admin/utility-ref.ts +0 -44
  696. package/src/lib/admin/utility-wrapper.component.ts +0 -52
  697. package/src/lib/admin/utility.pane.component.ts +0 -49
  698. package/src/lib/app.component.ts +0 -90
  699. package/src/lib/bizdoc.module.ts +0 -82
  700. package/src/lib/browse/_browse-theme.scss +0 -86
  701. package/src/lib/browse/browse-items.component.html +0 -171
  702. package/src/lib/browse/browse-items.component.scss +0 -52
  703. package/src/lib/browse/browse-items.component.ts +0 -460
  704. package/src/lib/browse/browse.mobile.component.html +0 -33
  705. package/src/lib/browse/browse.mobile.component.ts +0 -90
  706. package/src/lib/browse/browse.pane.component.html +0 -43
  707. package/src/lib/browse/browse.pane.component.scss +0 -4
  708. package/src/lib/browse/browse.pane.component.ts +0 -141
  709. package/src/lib/browse/expanded-item/expanded-item.component.html +0 -38
  710. package/src/lib/browse/expanded-item/expanded-item.component.scss +0 -35
  711. package/src/lib/browse/expanded-item/expanded-item.component.ts +0 -339
  712. package/src/lib/browse/filter/filter.component.html +0 -50
  713. package/src/lib/browse/filter/filter.component.scss +0 -10
  714. package/src/lib/browse/filter/filter.component.ts +0 -156
  715. package/src/lib/browse/folders-menu.component.html +0 -20
  716. package/src/lib/browse/folders-menu.component.scss +0 -15
  717. package/src/lib/browse/folders-menu.component.ts +0 -42
  718. package/src/lib/chat/_chat-theme.scss +0 -95
  719. package/src/lib/chat/chat-info.ts +0 -74
  720. package/src/lib/chat/chat-pool.component.exp.ts +0 -117
  721. package/src/lib/chat/chat-pool.component.html +0 -13
  722. package/src/lib/chat/chat-pool.component.scss +0 -10
  723. package/src/lib/chat/chat.mobile.component.html +0 -6
  724. package/src/lib/chat/chat.mobile.component.scss +0 -8
  725. package/src/lib/chat/chat.mobile.component.ts +0 -18
  726. package/src/lib/chat/chat.service.ts +0 -128
  727. package/src/lib/chat/contacts.component.html +0 -37
  728. package/src/lib/chat/contacts.component.scss +0 -49
  729. package/src/lib/chat/contacts.component.ts +0 -88
  730. package/src/lib/chat/contacts.pane.component.ts +0 -25
  731. package/src/lib/chat/conversation.component.html +0 -28
  732. package/src/lib/chat/conversation.component.scss +0 -14
  733. package/src/lib/chat/conversation.component.ts +0 -186
  734. package/src/lib/chat/conversation.pane.component.ts +0 -55
  735. package/src/lib/compose/_compose-theme.scss +0 -63
  736. package/src/lib/compose/action/action-picker.component.html +0 -25
  737. package/src/lib/compose/action/action-picker.component.scss +0 -4
  738. package/src/lib/compose/action/action-picker.component.ts +0 -72
  739. package/src/lib/compose/action/action-ref.ts +0 -19
  740. package/src/lib/compose/action/action.base.ts +0 -58
  741. package/src/lib/compose/action/action.dialog.html +0 -17
  742. package/src/lib/compose/action/action.dialog.scss +0 -1
  743. package/src/lib/compose/action/action.dialog.ts +0 -57
  744. package/src/lib/compose/action/action.pane.dialog.exp.ts +0 -77
  745. package/src/lib/compose/action/action.pane.dialog.html +0 -12
  746. package/src/lib/compose/action/assign-action.component.html +0 -23
  747. package/src/lib/compose/action/assign-action.component.ts +0 -57
  748. package/src/lib/compose/action/moveto-action.component.html +0 -33
  749. package/src/lib/compose/action/moveto-action.component.ts +0 -77
  750. package/src/lib/compose/action/return-action.component.html +0 -13
  751. package/src/lib/compose/action/return-action.component.ts +0 -42
  752. package/src/lib/compose/attachments/attachments.component.html +0 -23
  753. package/src/lib/compose/attachments/attachments.component.scss +0 -21
  754. package/src/lib/compose/attachments/attachments.component.ts +0 -114
  755. package/src/lib/compose/attachments/preview/attachment-preview.component.html +0 -17
  756. package/src/lib/compose/attachments/preview/attachment-preview.component.scss +0 -36
  757. package/src/lib/compose/attachments/preview/attachment-preview.component.ts +0 -140
  758. package/src/lib/compose/attachments/progress-button.directive.ts +0 -18
  759. package/src/lib/compose/can-deactivate-changes.service.ts +0 -22
  760. package/src/lib/compose/comments/_comments-theme.scss +0 -82
  761. package/src/lib/compose/comments/comment.component.html +0 -36
  762. package/src/lib/compose/comments/comment.component.ts +0 -160
  763. package/src/lib/compose/comments/comments.component.html +0 -27
  764. package/src/lib/compose/comments/comments.component.scss +0 -33
  765. package/src/lib/compose/comments/comments.component.ts +0 -220
  766. package/src/lib/compose/comments/comments.pane.component.ts +0 -41
  767. package/src/lib/compose/comments/edit-comment.component.html +0 -3
  768. package/src/lib/compose/comments/edit-comment.component.ts +0 -35
  769. package/src/lib/compose/comments/edits.component.html +0 -7
  770. package/src/lib/compose/comments/edits.component.ts +0 -33
  771. package/src/lib/compose/comments/quick-comment.component.exp.ts +0 -60
  772. package/src/lib/compose/comments/quick-comment.component.html +0 -5
  773. package/src/lib/compose/comments/quick-comment.component.scss +0 -11
  774. package/src/lib/compose/comments/votes.component.html +0 -7
  775. package/src/lib/compose/comments/votes.component.ts +0 -38
  776. package/src/lib/compose/compose-resolve.service.ts +0 -42
  777. package/src/lib/compose/compose.mobile.component.html +0 -67
  778. package/src/lib/compose/compose.mobile.component.scss +0 -14
  779. package/src/lib/compose/compose.mobile.component.ts +0 -97
  780. package/src/lib/compose/compose.pane.component.html +0 -68
  781. package/src/lib/compose/compose.pane.component.scss +0 -6
  782. package/src/lib/compose/compose.pane.component.ts +0 -188
  783. package/src/lib/compose/copy/copy.dialog.html +0 -21
  784. package/src/lib/compose/copy/copy.dialog.ts +0 -40
  785. package/src/lib/compose/dismiss.service.ts +0 -26
  786. package/src/lib/compose/document-resolver.service.ts +0 -13
  787. package/src/lib/compose/document.component.html +0 -5
  788. package/src/lib/compose/document.component.ts +0 -41
  789. package/src/lib/compose/document.mobile.component.ts +0 -20
  790. package/src/lib/compose/document.pane.component.ts +0 -22
  791. package/src/lib/compose/events/events.component.html +0 -6
  792. package/src/lib/compose/events/events.component.ts +0 -21
  793. package/src/lib/compose/form-ref.ts +0 -53
  794. package/src/lib/compose/form-selector/form-selector.sheet.html +0 -10
  795. package/src/lib/compose/form-selector/form-selector.sheet.ts +0 -84
  796. package/src/lib/compose/form.component.html +0 -13
  797. package/src/lib/compose/form.component.ts +0 -456
  798. package/src/lib/compose/maps/maps.component.html +0 -3
  799. package/src/lib/compose/maps/maps.component.ts +0 -22
  800. package/src/lib/compose/new-menu.component.html +0 -13
  801. package/src/lib/compose/new-menu.component.scss +0 -11
  802. package/src/lib/compose/new-menu.component.ts +0 -106
  803. package/src/lib/compose/privilage.directive.ts +0 -43
  804. package/src/lib/compose/recipient-resolver.service.ts +0 -15
  805. package/src/lib/compose/save-changes.dialog.html +0 -13
  806. package/src/lib/compose/save-changes.dialog.ts +0 -10
  807. package/src/lib/compose/state.component.ts +0 -29
  808. package/src/lib/compose/tag/tags.component.html +0 -22
  809. package/src/lib/compose/tag/tags.component.scss +0 -1
  810. package/src/lib/compose/tag/tags.component.ts +0 -83
  811. package/src/lib/compose/trace/flow.component.html +0 -19
  812. package/src/lib/compose/trace/flow.component.scss +0 -7
  813. package/src/lib/compose/trace/flow.component.ts +0 -747
  814. package/src/lib/compose/trace/people.component.ts +0 -33
  815. package/src/lib/compose/trace/trace.base.ts +0 -72
  816. package/src/lib/compose/trace/trace.component.html +0 -57
  817. package/src/lib/compose/trace/trace.component.scss +0 -21
  818. package/src/lib/compose/trace/trace.component.ts +0 -388
  819. package/src/lib/compose/trace/trace.pane.component.html +0 -3
  820. package/src/lib/compose/trace/trace.pane.component.scss +0 -5
  821. package/src/lib/compose/trace/trace.pane.component.ts +0 -47
  822. package/src/lib/compose/version-compare/_compare-theme.scss +0 -147
  823. package/src/lib/compose/version-compare/version-compare.component.ts +0 -49
  824. package/src/lib/compose/version-compare/version-compare.directive.ts +0 -292
  825. package/src/lib/compose/version-compare/version.pane.component.html +0 -19
  826. package/src/lib/compose/version-compare/version.pane.component.scss +0 -8
  827. package/src/lib/compose/version-compare/version.pane.component.ts +0 -53
  828. package/src/lib/core/NgComponentOutlet.ts +0 -31
  829. package/src/lib/core/account.service.ts +0 -30
  830. package/src/lib/core/animated-icon/animated-icon.directive.html +0 -3
  831. package/src/lib/core/animated-icon/animated-icon.directive.scss +0 -12
  832. package/src/lib/core/animated-icon/animated-icon.directive.ts +0 -41
  833. package/src/lib/core/animations.ts +0 -207
  834. package/src/lib/core/authentication.ts +0 -7
  835. package/src/lib/core/avatar/_avatar-theme.scss +0 -60
  836. package/src/lib/core/avatar/avatar.component.html +0 -6
  837. package/src/lib/core/avatar/avatar.component.ts +0 -108
  838. package/src/lib/core/base.ts +0 -43
  839. package/src/lib/core/can-activate.service.exp.ts +0 -31
  840. package/src/lib/core/colors.ts +0 -322
  841. package/src/lib/core/component-factory-resolver.ts +0 -67
  842. package/src/lib/core/configuration.ts +0 -124
  843. package/src/lib/core/controls/_daterange-theme.scss +0 -16
  844. package/src/lib/core/controls/address.input.ts +0 -173
  845. package/src/lib/core/controls/auto-complete.input.ts +0 -218
  846. package/src/lib/core/controls/combination-picker-body.html +0 -34
  847. package/src/lib/core/controls/combination-picker-body.scss +0 -40
  848. package/src/lib/core/controls/combination-picker-body.ts +0 -194
  849. package/src/lib/core/controls/combination-picker.html +0 -6
  850. package/src/lib/core/controls/combination-picker.scss +0 -9
  851. package/src/lib/core/controls/combination-picker.ts +0 -243
  852. package/src/lib/core/controls/combination-pool.html +0 -10
  853. package/src/lib/core/controls/combination-pool.scss +0 -35
  854. package/src/lib/core/controls/combination-pool.ts +0 -92
  855. package/src/lib/core/controls/file.input.html +0 -50
  856. package/src/lib/core/controls/file.input.scss +0 -41
  857. package/src/lib/core/controls/file.input.ts +0 -400
  858. package/src/lib/core/controls/select.input.ts +0 -210
  859. package/src/lib/core/controls/time-picker.html +0 -4
  860. package/src/lib/core/controls/time-picker.ts +0 -199
  861. package/src/lib/core/controls/timespan.input.ts +0 -175
  862. package/src/lib/core/datasource.service.ts +0 -80
  863. package/src/lib/core/decorators.ts +0 -56
  864. package/src/lib/core/firebase.service.ts +0 -55
  865. package/src/lib/core/functions.ts +0 -246
  866. package/src/lib/core/guide/_guide-theme.scss +0 -197
  867. package/src/lib/core/guide/guide.component.html +0 -20
  868. package/src/lib/core/guide/guide.component.ts +0 -222
  869. package/src/lib/core/guide/guide.service.ts +0 -108
  870. package/src/lib/core/guide/help-tip.component.ts +0 -43
  871. package/src/lib/core/http.interceptor.ts +0 -80
  872. package/src/lib/core/hub.service.ts +0 -202
  873. package/src/lib/core/identity/identity.component.html +0 -2
  874. package/src/lib/core/identity/identity.component.ts +0 -57
  875. package/src/lib/core/info/attachment-info.service.ts +0 -46
  876. package/src/lib/core/info/document-info.service.ts +0 -15
  877. package/src/lib/core/info/location-info.component.scss +0 -13
  878. package/src/lib/core/info/location-info.component.ts +0 -64
  879. package/src/lib/core/info/map-info.ts +0 -33
  880. package/src/lib/core/layout/autocomplete.field.ts +0 -41
  881. package/src/lib/core/layout/checkbox.field.ts +0 -21
  882. package/src/lib/core/layout/checkbox.scss +0 -13
  883. package/src/lib/core/layout/checkbox.ts +0 -21
  884. package/src/lib/core/layout/date-range.field.ts +0 -32
  885. package/src/lib/core/layout/date.field.ts +0 -26
  886. package/src/lib/core/layout/expression.field.ts +0 -26
  887. package/src/lib/core/layout/file.field.ts +0 -27
  888. package/src/lib/core/layout/html.field.ts +0 -28
  889. package/src/lib/core/layout/input.base.ts +0 -12
  890. package/src/lib/core/layout/input.field.ts +0 -43
  891. package/src/lib/core/layout/layout.component.scss +0 -9
  892. package/src/lib/core/layout/layout.component.ts +0 -189
  893. package/src/lib/core/layout/numeric.field.ts +0 -24
  894. package/src/lib/core/layout/select.field.ts +0 -52
  895. package/src/lib/core/layout/switch.field.ts +0 -21
  896. package/src/lib/core/layout/textarea.field.ts +0 -21
  897. package/src/lib/core/layout/timespan.field.ts +0 -25
  898. package/src/lib/core/lottie-animation.ts +0 -37
  899. package/src/lib/core/mailbox.service.ts +0 -471
  900. package/src/lib/core/models.ts +0 -685
  901. package/src/lib/core/none.component.scss +0 -26
  902. package/src/lib/core/none.component.ts +0 -28
  903. package/src/lib/core/pipes/action.pipe.ts +0 -18
  904. package/src/lib/core/pipes/calendar.pipe.ts +0 -84
  905. package/src/lib/core/pipes/date-format.pipe.ts +0 -12
  906. package/src/lib/core/pipes/daterange.pipe.ts +0 -45
  907. package/src/lib/core/pipes/difference.pipe.ts +0 -9
  908. package/src/lib/core/pipes/duration-format.pipe.ts +0 -42
  909. package/src/lib/core/pipes/duration.pipe.ts +0 -13
  910. package/src/lib/core/pipes/form.pipe.ts +0 -19
  911. package/src/lib/core/pipes/join.pipe.ts +0 -10
  912. package/src/lib/core/pipes/role.pipe.ts +0 -19
  913. package/src/lib/core/pipes/sanitize-html.pipe.ts +0 -10
  914. package/src/lib/core/pipes/sort.pipe.ts +0 -34
  915. package/src/lib/core/pipes/state.pipe.ts +0 -19
  916. package/src/lib/core/pipes/time-ago.pipe.ts +0 -59
  917. package/src/lib/core/pipes/translate.pipe.ts +0 -22
  918. package/src/lib/core/pipes/type-value.pipe.ts +0 -37
  919. package/src/lib/core/pipes/user-name.pipe.ts +0 -14
  920. package/src/lib/core/popup/_popup-theme.scss +0 -363
  921. package/src/lib/core/popup/popup-ref.ts +0 -19
  922. package/src/lib/core/popup/popup.component.html +0 -6
  923. package/src/lib/core/popup/popup.component.ts +0 -40
  924. package/src/lib/core/popup/popup.service.ts +0 -156
  925. package/src/lib/core/popup/tooltip.directive.ts +0 -58
  926. package/src/lib/core/prompt/ask/ask.dialog.html +0 -6
  927. package/src/lib/core/prompt/ask/ask.dialog.ts +0 -35
  928. package/src/lib/core/prompt/mask/mask.component.html +0 -1
  929. package/src/lib/core/prompt/mask/mask.component.scss +0 -14
  930. package/src/lib/core/prompt/mask/mask.component.ts +0 -15
  931. package/src/lib/core/prompt.service.ts +0 -81
  932. package/src/lib/core/router.ts +0 -31
  933. package/src/lib/core/session.service.ts +0 -265
  934. package/src/lib/core/slots/_slots-theme.scss +0 -139
  935. package/src/lib/core/slots/extended-tab.component.exp.ts +0 -35
  936. package/src/lib/core/slots/extended-tab.component.html +0 -0
  937. package/src/lib/core/slots/intro.pane.component.exp.ts +0 -23
  938. package/src/lib/core/slots/intro.pane.component.html +0 -22
  939. package/src/lib/core/slots/intro.pane.component.scss +0 -8
  940. package/src/lib/core/slots/pane-ref.ts +0 -188
  941. package/src/lib/core/slots/router.directive.ts +0 -53
  942. package/src/lib/core/slots/router.service.ts +0 -53
  943. package/src/lib/core/slots/slot.component.exp.ts +0 -49
  944. package/src/lib/core/slots/slot.component.html +0 -15
  945. package/src/lib/core/slots/slot.component.scss +0 -18
  946. package/src/lib/core/slots/slots.component.html +0 -68
  947. package/src/lib/core/slots/slots.component.scss +0 -163
  948. package/src/lib/core/slots/slots.component.ts +0 -1260
  949. package/src/lib/core/tagging/documents.component.html +0 -11
  950. package/src/lib/core/tagging/documents.component.ts +0 -19
  951. package/src/lib/core/tagging/edit-input.component.html +0 -41
  952. package/src/lib/core/tagging/edit-input.component.scss +0 -21
  953. package/src/lib/core/tagging/edit-input.component.ts +0 -211
  954. package/src/lib/core/tagging/emoji.component.ts +0 -23
  955. package/src/lib/core/tagging/tagging-item.directive.ts +0 -34
  956. package/src/lib/core/tagging/tagging.component-base.ts +0 -29
  957. package/src/lib/core/tagging/tagging.component.scss +0 -22
  958. package/src/lib/core/tagging/tagging.directive.ts +0 -130
  959. package/src/lib/core/tagging/tagging.pipe.ts +0 -76
  960. package/src/lib/core/tagging/users.component.html +0 -13
  961. package/src/lib/core/tagging/users.component.ts +0 -28
  962. package/src/lib/core/translate.service.ts +0 -128
  963. package/src/lib/core/translations.ts +0 -1138
  964. package/src/lib/core/window-title.service.ts +0 -54
  965. package/src/lib/cube/accum/accum.component.html +0 -16
  966. package/src/lib/cube/accum/accum.component.ts +0 -264
  967. package/src/lib/cube/chart/chart.component.html +0 -32
  968. package/src/lib/cube/chart/chart.component.ts +0 -344
  969. package/src/lib/cube/cube-info.service.ts +0 -135
  970. package/src/lib/cube/cube-menu.component.html +0 -13
  971. package/src/lib/cube/cube-menu.component.ts +0 -18
  972. package/src/lib/cube/cube-view.component.html +0 -66
  973. package/src/lib/cube/cube-view.component.ts +0 -186
  974. package/src/lib/cube/cube.service.ts +0 -495
  975. package/src/lib/cube/declarations.ts +0 -24
  976. package/src/lib/cube/explore/document-item.component.ts +0 -28
  977. package/src/lib/cube/explore/explore-item.component.scss +0 -4
  978. package/src/lib/cube/explore/explore-item.component.ts +0 -23
  979. package/src/lib/cube/explore/explore-items.component.html +0 -25
  980. package/src/lib/cube/explore/explore-items.component.scss +0 -7
  981. package/src/lib/cube/explore/explore-items.component.ts +0 -185
  982. package/src/lib/cube/explore/explore.pane.component.html +0 -12
  983. package/src/lib/cube/explore/explore.pane.component.ts +0 -78
  984. package/src/lib/cube/explore/item-resolver.service.ts +0 -24
  985. package/src/lib/cube/explore/item.pane.component.html +0 -3
  986. package/src/lib/cube/explore/item.pane.component.ts +0 -23
  987. package/src/lib/cube/filter/filter-tags.component.exp.ts +0 -70
  988. package/src/lib/cube/filter/filter-tags.component.html +0 -11
  989. package/src/lib/cube/filter/filter-tags.component.scss +0 -0
  990. package/src/lib/cube/filter/filter-tags.component.spec.ts +0 -25
  991. package/src/lib/cube/filter/filter.component.html +0 -25
  992. package/src/lib/cube/filter/filter.component.scss +0 -8
  993. package/src/lib/cube/filter/filter.component.ts +0 -116
  994. package/src/lib/cube/grid/grid.component.html +0 -29
  995. package/src/lib/cube/grid/grid.component.scss +0 -10
  996. package/src/lib/cube/grid/grid.component.ts +0 -223
  997. package/src/lib/cube/grid/spreadsheet.component.ts +0 -382
  998. package/src/lib/cube/matrix/_matrix.theme.scss +0 -86
  999. package/src/lib/cube/matrix/matrix.base.ts +0 -149
  1000. package/src/lib/cube/matrix/matrix.mobile.component.html +0 -28
  1001. package/src/lib/cube/matrix/matrix.mobile.component.ts +0 -60
  1002. package/src/lib/cube/matrix/matrix.pane.component.html +0 -34
  1003. package/src/lib/cube/matrix/matrix.pane.component.scss +0 -10
  1004. package/src/lib/cube/matrix/matrix.pane.component.ts +0 -83
  1005. package/src/lib/cube/matrix/popup.component.html +0 -32
  1006. package/src/lib/cube/matrix/popup.component.scss +0 -7
  1007. package/src/lib/cube/matrix/popup.component.ts +0 -55
  1008. package/src/lib/cube/matrix/table.component.html +0 -46
  1009. package/src/lib/cube/matrix/table.component.scss +0 -25
  1010. package/src/lib/cube/matrix/table.component.ts +0 -517
  1011. package/src/lib/cube/parallel/item.ts +0 -47
  1012. package/src/lib/cube/parallel/parallel.component.html +0 -22
  1013. package/src/lib/cube/parallel/parallel.component.scss +0 -13
  1014. package/src/lib/cube/parallel/parallel.component.ts +0 -166
  1015. package/src/lib/cube/pivot/pivot.component.html +0 -14
  1016. package/src/lib/cube/pivot/pivot.component.ts +0 -518
  1017. package/src/lib/cube/sum/_sum.theme.scss +0 -63
  1018. package/src/lib/cube/sum/sum.component.html +0 -60
  1019. package/src/lib/cube/sum/sum.component.scss +0 -94
  1020. package/src/lib/cube/sum/sum.component.ts +0 -437
  1021. package/src/lib/cube/view-base.ts +0 -82
  1022. package/src/lib/cube/view.mobile.component.html +0 -38
  1023. package/src/lib/cube/view.mobile.component.scss +0 -9
  1024. package/src/lib/cube/view.mobile.component.ts +0 -116
  1025. package/src/lib/cube/view.pane.component.html +0 -24
  1026. package/src/lib/cube/view.pane.component.scss +0 -12
  1027. package/src/lib/cube/view.pane.component.ts +0 -80
  1028. package/src/lib/dashboard/_table.widget.scss +0 -19
  1029. package/src/lib/dashboard/actions/actions.widget.html +0 -6
  1030. package/src/lib/dashboard/actions/actions.widget.ts +0 -118
  1031. package/src/lib/dashboard/cube/accum-cube.widget.html +0 -15
  1032. package/src/lib/dashboard/cube/accum-cube.widget.ts +0 -154
  1033. package/src/lib/dashboard/cube/compare.widget.ts +0 -219
  1034. package/src/lib/dashboard/cube/cube-analysis.base.ts +0 -113
  1035. package/src/lib/dashboard/cube/cube-analysis.widget.ts +0 -44
  1036. package/src/lib/dashboard/cube/cube-chart.widget.html +0 -7
  1037. package/src/lib/dashboard/cube/cube-chart.widget.ts +0 -144
  1038. package/src/lib/dashboard/cube/documents.widget.html +0 -19
  1039. package/src/lib/dashboard/cube/documents.widget.ts +0 -57
  1040. package/src/lib/dashboard/cube/filter/filter.component.html +0 -3
  1041. package/src/lib/dashboard/cube/filter/filter.component.ts +0 -53
  1042. package/src/lib/dashboard/cube/gauge.component.exp.ts +0 -18
  1043. package/src/lib/dashboard/dashboard.component.html +0 -18
  1044. package/src/lib/dashboard/dashboard.component.scss +0 -36
  1045. package/src/lib/dashboard/dashboard.component.ts +0 -53
  1046. package/src/lib/dashboard/dashboard.pane.component.ts +0 -19
  1047. package/src/lib/dashboard/recents/recents.widget.html +0 -32
  1048. package/src/lib/dashboard/recents/recents.widget.scss +0 -9
  1049. package/src/lib/dashboard/recents/recents.widget.ts +0 -89
  1050. package/src/lib/dashboard/score/activity.widget.html +0 -9
  1051. package/src/lib/dashboard/score/activity.widget.ts +0 -175
  1052. package/src/lib/dashboard/score/compare-groups.widget.html +0 -8
  1053. package/src/lib/dashboard/score/compare-groups.widget.ts +0 -212
  1054. package/src/lib/dashboard/score/peers-performance.widget.html +0 -23
  1055. package/src/lib/dashboard/score/peers-performance.widget.ts +0 -254
  1056. package/src/lib/dashboard/score/pending-results.widget.html +0 -31
  1057. package/src/lib/dashboard/score/pending-results.widget.ts +0 -52
  1058. package/src/lib/dashboard/score/personal-score.widget.html +0 -18
  1059. package/src/lib/dashboard/score/personal-score.widget.ts +0 -229
  1060. package/src/lib/dashboard/widget-item.component.ts +0 -92
  1061. package/src/lib/dashboard/widget-ref.ts +0 -20
  1062. package/src/lib/desktop.module.ts +0 -98
  1063. package/src/lib/home/_home-theme.scss +0 -174
  1064. package/src/lib/home/about/about.dialog.html +0 -19
  1065. package/src/lib/home/about/about.dialog.ts +0 -18
  1066. package/src/lib/home/home-base.component.ts +0 -100
  1067. package/src/lib/home/home.desktop.component.html +0 -92
  1068. package/src/lib/home/home.desktop.component.scss +0 -66
  1069. package/src/lib/home/home.desktop.component.ts +0 -211
  1070. package/src/lib/home/home.mobile.component.html +0 -81
  1071. package/src/lib/home/home.mobile.component.scss +0 -49
  1072. package/src/lib/home/home.mobile.component.ts +0 -105
  1073. package/src/lib/home/notifications/notifications.component.html +0 -18
  1074. package/src/lib/home/notifications/notifications.component.scss +0 -36
  1075. package/src/lib/home/notifications/notifications.component.ts +0 -55
  1076. package/src/lib/home/options/_options-theme.scss +0 -11
  1077. package/src/lib/home/options/options.component.html +0 -41
  1078. package/src/lib/home/options/options.component.scss +0 -16
  1079. package/src/lib/home/options/options.component.ts +0 -95
  1080. package/src/lib/home/outofoffice/outofoffice.component.html +0 -5
  1081. package/src/lib/home/outofoffice/outofoffice.component.scss +0 -10
  1082. package/src/lib/home/outofoffice/outofoffice.component.ts +0 -33
  1083. package/src/lib/home/progress-bar.directive.exp.ts +0 -24
  1084. package/src/lib/home/search.service.ts +0 -87
  1085. package/src/lib/home/sign/sign.component.html +0 -15
  1086. package/src/lib/home/sign/sign.component.ts +0 -42
  1087. package/src/lib/home/submenu.directive.exp.ts +0 -43
  1088. package/src/lib/home/tools.component.html +0 -27
  1089. package/src/lib/home/tools.component.scss +0 -15
  1090. package/src/lib/home/tools.component.ts +0 -72
  1091. package/src/lib/home/welcome/welcome.dialog.exp.ts +0 -35
  1092. package/src/lib/home/welcome/welcome.dialog.html +0 -14
  1093. package/src/lib/impersonate/impersonate.component.html +0 -17
  1094. package/src/lib/impersonate/impersonate.component.scss +0 -3
  1095. package/src/lib/impersonate/impersonate.component.spec.ts +0 -24
  1096. package/src/lib/impersonate/impersonate.component.ts +0 -60
  1097. package/src/lib/mobile.module.ts +0 -39
  1098. package/src/lib/modules/chart.module.ts +0 -53
  1099. package/src/lib/modules/circular-gauge.module.ts +0 -10
  1100. package/src/lib/modules/date.adapter.ts +0 -31
  1101. package/src/lib/modules/datepicker.intl.ts +0 -35
  1102. package/src/lib/modules/dayjs.module.ts +0 -32
  1103. package/src/lib/modules/diagram.module.ts +0 -25
  1104. package/src/lib/modules/gantt.module.ts +0 -12
  1105. package/src/lib/modules/grid.module.ts +0 -16
  1106. package/src/lib/modules/material.module.ts +0 -104
  1107. package/src/lib/modules/paginator.intl.ts +0 -16
  1108. package/src/lib/modules/pivot.module.ts +0 -23
  1109. package/src/lib/modules/schedule.module.ts +0 -12
  1110. package/src/lib/modules/spreadsheet.module.ts +0 -21
  1111. package/src/lib/modules/stepper.intl.ts +0 -12
  1112. package/src/lib/modules/texteditor.module.ts +0 -16
  1113. package/src/lib/notifications/filter.component.html +0 -6
  1114. package/src/lib/notifications/filter.component.ts +0 -16
  1115. package/src/lib/notifications/notifications-table.component.html +0 -54
  1116. package/src/lib/notifications/notifications-table.component.scss +0 -14
  1117. package/src/lib/notifications/notifications-table.component.ts +0 -94
  1118. package/src/lib/notifications/notifications.component-base.ts +0 -49
  1119. package/src/lib/notifications/notifications.mobile.component.ts +0 -13
  1120. package/src/lib/notifications/notifications.pane.component.ts +0 -16
  1121. package/src/lib/notifications/notifications.service.ts +0 -66
  1122. package/src/lib/notifications/types/commented.notification.html +0 -14
  1123. package/src/lib/notifications/types/commented.notification.ts +0 -51
  1124. package/src/lib/notifications/types/cube-anomaly.notification.ts +0 -51
  1125. package/src/lib/notifications/types/escalated.notification.ts +0 -36
  1126. package/src/lib/notifications/types/liked.notification.ts +0 -49
  1127. package/src/lib/notifications/types/long-running-task.notification.ts +0 -23
  1128. package/src/lib/notifications/types/notification-base.ts +0 -37
  1129. package/src/lib/notifications/types/nudge.notification.ts +0 -32
  1130. package/src/lib/notifications/types/state-changed.notification.ts +0 -27
  1131. package/src/lib/notifications/types/tagged.notification.ts +0 -46
  1132. package/src/lib/notifications/types/text.notification.ts +0 -13
  1133. package/src/lib/notifications/types/upcoming-event.notification.ts +0 -25
  1134. package/src/lib/options/options.component.html +0 -148
  1135. package/src/lib/options/options.component.scss +0 -19
  1136. package/src/lib/options/options.component.ts +0 -262
  1137. package/src/lib/options/options.service.ts +0 -30
  1138. package/src/lib/reports/arguments-component.ts +0 -73
  1139. package/src/lib/reports/cube/documents.component.ts +0 -50
  1140. package/src/lib/reports/cube/grid-documents.component.html +0 -25
  1141. package/src/lib/reports/cube/grid-documents.component.ts +0 -67
  1142. package/src/lib/reports/cube/table-documents.component.css +0 -18
  1143. package/src/lib/reports/cube/table-documents.component.html +0 -30
  1144. package/src/lib/reports/cube/table-documents.component.ts +0 -46
  1145. package/src/lib/reports/cube/usage-args.component.html +0 -3
  1146. package/src/lib/reports/cube/usage-args.component.ts +0 -55
  1147. package/src/lib/reports/cube/usage-base.ts +0 -113
  1148. package/src/lib/reports/cube/usage-browse.component.exp.ts +0 -93
  1149. package/src/lib/reports/cube/usage-browse.component.html +0 -27
  1150. package/src/lib/reports/cube/usage-browse.component.scss +0 -24
  1151. package/src/lib/reports/cube/usage-chart.component.html +0 -11
  1152. package/src/lib/reports/cube/usage-chart.component.ts +0 -386
  1153. package/src/lib/reports/cube/usage-pivot.component.html +0 -19
  1154. package/src/lib/reports/cube/usage-pivot.component.ts +0 -266
  1155. package/src/lib/reports/cube/usage.component.ts +0 -34
  1156. package/src/lib/reports/report-ref.ts +0 -41
  1157. package/src/lib/reports/report-viewer.component.html +0 -2
  1158. package/src/lib/reports/report-viewer.component.scss +0 -12
  1159. package/src/lib/reports/report-viewer.component.ts +0 -159
  1160. package/src/lib/reports/report.mobile.component.html +0 -17
  1161. package/src/lib/reports/report.mobile.component.scss +0 -7
  1162. package/src/lib/reports/report.mobile.component.ts +0 -117
  1163. package/src/lib/reports/report.pane.component.html +0 -9
  1164. package/src/lib/reports/report.pane.component.scss +0 -9
  1165. package/src/lib/reports/report.pane.component.ts +0 -88
  1166. package/src/lib/reports/reports-menu.component.html +0 -9
  1167. package/src/lib/reports/reports-menu.component.ts +0 -20
  1168. package/src/lib/reports/substitution/substitution.component.html +0 -26
  1169. package/src/lib/reports/substitution/substitution.component.ts +0 -34
  1170. package/src/lib/reports/table/table-view.component.html +0 -8
  1171. package/src/lib/reports/table/table-view.component.scss +0 -0
  1172. package/src/lib/reports/table/table-view.component.ts +0 -33
  1173. package/src/lib/reports/tasks/tasks.component.html +0 -21
  1174. package/src/lib/reports/tasks/tasks.component.ts +0 -115
  1175. package/src/lib/reports/timeline/timeline.component.exp.ts +0 -225
  1176. package/src/lib/reports/timeline/timeline.component.html +0 -9
  1177. package/src/lib/routes.desktop.ts +0 -196
  1178. package/src/lib/routes.mobile.ts +0 -70
  1179. package/src/lib/scheduler/schedule.component.html +0 -36
  1180. package/src/lib/scheduler/schedule.component.scss +0 -13
  1181. package/src/lib/scheduler/schedule.component.ts +0 -158
  1182. package/src/lib/scheduler/scheduler.mobile.component.ts +0 -30
  1183. package/src/lib/scheduler/scheduler.pane.component.ts +0 -49
  1184. package/src/lib/shared.module.ts +0 -374
  1185. package/src/lib/system.module.ts +0 -77
  1186. package/src/lib/views/_views.theme.scss +0 -18
  1187. package/src/lib/views/cube/chart.component.html +0 -24
  1188. package/src/lib/views/cube/chart.component.ts +0 -88
  1189. package/src/lib/views/cube/cube-base.ts +0 -126
  1190. package/src/lib/views/cube/explore.component.html +0 -33
  1191. package/src/lib/views/cube/explore.component.ts +0 -82
  1192. package/src/lib/views/cube/filter.component.exp.ts +0 -66
  1193. package/src/lib/views/cube/filter.component.html +0 -25
  1194. package/src/lib/views/cube/matrix.component.html +0 -42
  1195. package/src/lib/views/cube/matrix.component.scss +0 -3
  1196. package/src/lib/views/cube/matrix.component.ts +0 -106
  1197. package/src/lib/views/cube/parallel.component.html +0 -10
  1198. package/src/lib/views/cube/parallel.component.scss +0 -13
  1199. package/src/lib/views/cube/parallel.component.ts +0 -63
  1200. package/src/lib/views/cube/pivot.component.html +0 -8
  1201. package/src/lib/views/cube/pivot.component.ts +0 -62
  1202. package/src/lib/views/cube/sum.component.html +0 -30
  1203. package/src/lib/views/cube/sum.component.scss +0 -3
  1204. package/src/lib/views/cube/sum.component.ts +0 -71
  1205. package/src/lib/views/cube/view.component.html +0 -34
  1206. package/src/lib/views/cube/view.component.scss +0 -12
  1207. package/src/lib/views/cube/view.component.ts +0 -103
  1208. package/src/lib/views/document-view-ref.ts +0 -34
  1209. package/src/lib/views/timeline/timeline.component.exp.ts +0 -333
  1210. package/src/lib/views/timeline/timeline.component.html +0 -6
  1211. package/src/lib/views/timeline/timeline.component.scss +0 -6
  1212. package/src/lib/views/view-item.component.ts +0 -67
  1213. package/src/lib/views/views.component.html +0 -4
  1214. package/src/lib/views/views.component.scss +0 -33
  1215. package/src/lib/views/views.component.ts +0 -29
  1216. package/src/lib/views/views.mobile.component.ts +0 -19
  1217. package/src/lib/views/views.pane.component.ts +0 -33
  1218. package/src/polyfills.ts +0 -81
  1219. package/src/public-api.ts +0 -149
  1220. package/src/styles/_app.scss +0 -317
  1221. package/src/styles/_emoji-mart.scss +0 -504
  1222. package/src/styles/_syncfusion-base-definitions.scss +0 -63
  1223. package/src/styles/_syncfusion-dark-definitions.scss +0 -21
  1224. package/src/styles/_syncfusion-dark.scss +0 -2
  1225. package/src/styles/_syncfusion-icons.scss +0 -57
  1226. package/src/styles/_syncfusion-light-definitions.scss +0 -23
  1227. package/src/styles/_syncfusion-light.scss +0 -2
  1228. package/src/styles/_syncfusion.scss +0 -21
  1229. package/src/styles/_xslt.scss +0 -377
  1230. package/src/styles/brown.scss +0 -14
  1231. package/src/styles/build-xslt.ps1 +0 -2
  1232. package/src/styles/build.ps1 +0 -26
  1233. package/src/styles/dark.scss +0 -13
  1234. package/src/styles/deep-purple-light-blue.scss +0 -20
  1235. package/src/styles/deep-purple-teal.scss +0 -20
  1236. package/src/styles/default.scss +0 -21
  1237. package/src/styles/diagram-icons.eot +0 -0
  1238. package/src/styles/diagram-icons.ttf +0 -0
  1239. package/src/styles/green.scss +0 -13
  1240. package/src/styles/indigo.scss +0 -13
  1241. package/src/styles/xslt.scss +0 -21
  1242. package/src/styles/xslt.scss.map +0 -1
  1243. package/src/test.ts +0 -26
  1244. package/tsconfig.lib.json +0 -26
  1245. package/tsconfig.lib.prod.json +0 -10
  1246. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,441 @@
1
+ import { Component, ViewChild, HostListener } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { takeUntil } from 'rxjs/operators';
4
+ import { DiagramConstraints, SelectorConstraints, ConnectorDrawingTool, NodeConstraints, Diagram, UndoRedo, Node, DiagramTools, ConnectorConstraints, SymbolPalette, BpmnDiagrams, ConnectorEditing, ConnectorBridging, Snapping } from '@syncfusion/ej2-diagrams';
5
+ import { WorkflowNodeComponent } from './node.component';
6
+ import { OpenPolicy } from '../../../core/configuration';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "../../../core/prompt.service";
9
+ import * as i2 from "../form.service";
10
+ import * as i3 from "../../../core/slots/pane-ref";
11
+ import * as i4 from "../../../core/slots/router.service";
12
+ import * as i5 from "../../../core/session.service";
13
+ import * as i6 from "../../../core/translate.service";
14
+ import * as i7 from "@angular/material/toolbar";
15
+ import * as i8 from "@angular/material/button";
16
+ import * as i9 from "@angular/material/icon";
17
+ import * as i10 from "@angular/material/menu";
18
+ import * as i11 from "../../../core/popup/tooltip.directive";
19
+ import * as i12 from "@angular/common";
20
+ import * as i13 from "@angular/flex-layout/extended";
21
+ import * as i14 from "@angular/cdk/bidi";
22
+ import * as i15 from "@angular/flex-layout/flex";
23
+ import * as i16 from "../../../core/pipes/translate.pipe";
24
+ Diagram.Inject(UndoRedo, ConnectorBridging, ConnectorEditing, Snapping);
25
+ SymbolPalette.Inject(BpmnDiagrams);
26
+ function getPorts() {
27
+ const ports = [
28
+ { id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 } },
29
+ { id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 } },
30
+ { id: 'port3', shape: 'Circle', offset: { x: 1, y: 0.5 } },
31
+ { id: 'port4', shape: 'Circle', offset: { x: 0.5, y: 0 } }
32
+ ];
33
+ return ports;
34
+ }
35
+ function showPaletteIcon() {
36
+ const paletteSpace = document.getElementById('palette-space');
37
+ const isMobile = window.matchMedia('(max-width:550px)').matches;
38
+ if (isMobile) {
39
+ if (!paletteSpace.classList.contains('sb-mobile-palette-open')) {
40
+ paletteSpace.classList.add('sb-mobile-palette-open');
41
+ }
42
+ else {
43
+ paletteSpace.classList.remove('sb-mobile-palette-open');
44
+ }
45
+ }
46
+ }
47
+ function paletteIconClick() {
48
+ const isMobile = window.matchMedia('(max-width:550px)').matches;
49
+ if (isMobile) {
50
+ const paletteIcon = document.getElementById('palette-icon');
51
+ if (paletteIcon) {
52
+ paletteIcon.addEventListener('click', showPaletteIcon, false);
53
+ }
54
+ }
55
+ }
56
+ //Defines the tool
57
+ class DrawTool extends ConnectorDrawingTool {
58
+ constructor(diagram, segments) {
59
+ super(diagram.commandHandler, 'ConnectorSourceEnd', null);
60
+ this.diagram = diagram;
61
+ this.segments = segments;
62
+ }
63
+ mouseMove(args) {
64
+ if (this.diagram.selectedItems.nodes.length) {
65
+ this.diagram.drawingObject = {
66
+ type: this.segments || 'Bezier',
67
+ sourceID: this.diagram.selectedItems.nodes[0].id
68
+ };
69
+ this.inAction = true;
70
+ }
71
+ const ok = super.mouseMove(args);
72
+ return ok;
73
+ }
74
+ }
75
+ const LINK_PATH = 'M346.7,714.6l368.1-368.1c17.9-17.9,17.9-47.1,0-64.9c-17.9-17.9-47.1-17.9-64.9,0l-368,368c-17.9,17.9-17.9,47.1,0,64.9C299.6,732.5,328.9,732.5,346.7,714.6z M468.2,651c6.4,9,7.6,18.5,7.6,23.8c0,6.3-1.5,18.6-11.8,28.9L271,896.5c-10.3,10.3-22.5,11.8-28.9,11.8c-6.3,0-18.6-1.5-28.9-11.8L103.5,786.8c-10.3-10.3-11.8-22.5-11.8-28.9c0-6.4,1.5-18.6,11.8-28.9l192.9-192.9c10.3-10.3,22.5-11.8,28.9-11.8c4.5,0,11.8,0.8,19.3,4.8l58.6-58.6c-48-39.6-119.6-36.9-164.5,7.9L45.7,671.3c-47.7,47.7-47.7,125.5,0,173.2l109.7,109.7c47.7,47.7,125.5,47.7,173.2,0l192.9-192.9c46-46,47.6-120.4,4.6-168.4L468.2,651z M954.2,155.5L844.5,45.8C796.9-1.9,719-1.9,671.3,45.8L478.4,238.7c-44.8,44.8-47.5,116.5-7.9,164.5l58.6-58.6c-4-7.6-4.8-14.9-4.8-19.3c0-6.3,1.5-18.6,11.8-28.9l192.9-192.9c10.3-10.3,22.5-11.8,28.9-11.8c6.3,0,18.6,1.5,28.9,11.8l109.7,109.7c10.3,10.3,11.8,22.5,11.8,28.9c0,6.3-1.5,18.6-11.8,28.9L703.7,464c-10.3,10.3-22.5,11.8-28.9,11.8c-5.3,0-14.8-1.1-23.8-7.6l-58,58c48,43,122.3,41.5,168.4-4.6l192.9-192.9C1001.9,281.1,1001.9,203.1,954.2,155.5z';
76
+ /** workflow component*/
77
+ export class WorkflowComponent {
78
+ /** workflow ctor */
79
+ constructor(ps, _service, _pane, _router, _session, _translate) {
80
+ this.ps = ps;
81
+ this._service = _service;
82
+ this._pane = _pane;
83
+ this._router = _router;
84
+ this._session = _session;
85
+ this._translate = _translate;
86
+ this.tools = true;
87
+ this.connectorType = 'Bezier';
88
+ this.alignment = 'Center';
89
+ this.fontSize = 12;
90
+ this.saving = false;
91
+ this.dirty = false;
92
+ this.palettes = [];
93
+ this.diagramConstraints = DiagramConstraints.Default | DiagramConstraints.Bridging | DiagramConstraints.UserInteraction | DiagramConstraints.Zoom;
94
+ this.diagramTool = DiagramTools.Default;
95
+ //Defines the user handle collection for nodes in diagram
96
+ this._userHandles = [
97
+ {
98
+ name: 'connect',
99
+ pathData: LINK_PATH,
100
+ visible: true,
101
+ offset: 0,
102
+ side: 'Right',
103
+ displacement: 20,
104
+ margin: { top: 0, bottom: 0, left: 0, right: 0 }
105
+ }
106
+ ];
107
+ //SymbolPalette Properties
108
+ this.symbolMargin = { left: 10, right: 10, top: 10, bottom: 10 };
109
+ this.snapSettings = {};
110
+ this.selectedItems = {};
111
+ this.scrollSettings = {
112
+ minZoom: .5,
113
+ maxZoom: 2.5
114
+ };
115
+ this._rulerColor = this._session.getAccent(100);
116
+ this.rulerSettings = {
117
+ horizontalRuler: { markerColor: this._rulerColor },
118
+ verticalRuler: { markerColor: this._rulerColor }
119
+ };
120
+ this._destroy = new Subject();
121
+ this.nodeDefaults = () => {
122
+ const obj = {
123
+ style: {
124
+ fill: 'transparent',
125
+ strokeColor: this._session.theme.dark ? 'white' : 'black',
126
+ strokeWidth: 1
127
+ },
128
+ annotations: [{
129
+ style: {
130
+ color: this._session.theme.dark ? 'white' : 'black',
131
+ fill: 'transparent',
132
+ opacity: .8
133
+ }
134
+ }]
135
+ };
136
+ if (obj.width === undefined) {
137
+ obj.width = 145;
138
+ }
139
+ else {
140
+ const ratio = 100 / obj.width;
141
+ obj.width = 100;
142
+ obj.height *= ratio;
143
+ }
144
+ obj.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio;
145
+ obj.ports = getPorts();
146
+ return obj;
147
+ };
148
+ this.connDefaults = (obj) => {
149
+ obj.constraints = ConnectorConstraints.Default | ConnectorConstraints.Bridging | ConnectorConstraints.DragSegmentThumb;
150
+ obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
151
+ };
152
+ this._palettes();
153
+ }
154
+ getTool(action) {
155
+ let tool = null;
156
+ if (action === 'connect')
157
+ tool = new DrawTool(this.diagram, this.connectorType);
158
+ return tool;
159
+ }
160
+ ngAfterViewInit() {
161
+ }
162
+ ngOnInit() {
163
+ this.symbolPalette = new SymbolPalette({
164
+ expandMode: 'Multiple',
165
+ palettes: this.palettes,
166
+ width: "100%", height: "100%", symbolHeight: 80,
167
+ enableRtl: false, enableAnimation: false, symbolWidth: 80,
168
+ symbolMargin: this.symbolMargin,
169
+ getSymbolInfo: this.getSymbolInfo.bind(this),
170
+ getNodeDefaults: this.getSymbolDefaults.bind(this)
171
+ });
172
+ this.symbolPalette.appendTo(this.symbolPaletteEl.nativeElement);
173
+ this.diagram = new Diagram({
174
+ width: "100%", height: "100%",
175
+ snapSettings: this.snapSettings,
176
+ getConnectorDefaults: this.connDefaults.bind(this),
177
+ constraints: this.diagramConstraints,
178
+ tool: this.diagramTool,
179
+ getNodeDefaults: this.nodeDefaults.bind(this),
180
+ getCustomTool: this.getTool.bind(this),
181
+ scrollSettings: this.scrollSettings,
182
+ selectedItems: this.selectedItems,
183
+ rulerSettings: this.rulerSettings,
184
+ dragEnter: this.dragEnter.bind(this),
185
+ connectionChange: this.change.bind(this),
186
+ collectionChange: this.change.bind(this),
187
+ propertyChange: this.propertyChange.bind(this),
188
+ selectionChange: this.selectionChange.bind(this),
189
+ }, this.diagramEl.nativeElement);
190
+ paletteIconClick();
191
+ this._pane.paramsChange.pipe(takeUntil(this._destroy)).subscribe(p => {
192
+ const id = p['id'];
193
+ this._form = this._session.profile.forms.find(f => f.name === id);
194
+ this._pane.title = this._form.title;
195
+ this.params = { id: this._form.name };
196
+ });
197
+ this._pane.dataChange.pipe(takeUntil(this._destroy)).subscribe(d => {
198
+ Object.assign(this._form, d.form);
199
+ const flow = this._form.workflow;
200
+ this.diagram.nodes = flow.nodes;
201
+ this.diagram.connectors = flow.connectors;
202
+ this.diagram.dataBind();
203
+ this.diagram.add(this._versionNode(flow.version));
204
+ this.diagram.fitToPage();
205
+ this.dirty = false;
206
+ });
207
+ this._pane.resized.pipe(takeUntil(this._destroy)).subscribe(() => this.diagram.refresh());
208
+ }
209
+ _palettes() {
210
+ this._session.profile.nodes.forEach(n => {
211
+ const node = {
212
+ id: n.name,
213
+ shape: n.shape,
214
+ addInfo: {
215
+ nodeType: n.name,
216
+ title: n.title
217
+ },
218
+ };
219
+ node.node = n.name;
220
+ let palette = this.palettes.find(p => p.title === (n.palette || ''));
221
+ if (!palette) {
222
+ palette = { id: `_${n.palette}`, expanded: true, title: n.palette || '', symbols: [] };
223
+ this.palettes.push(palette);
224
+ }
225
+ palette.symbols.push(node);
226
+ });
227
+ //this.palettes.push({ id: 'design', title: this._translation.get('Design'), symbols: [{ id: 'text', shape: { type: 'Text', textContent: 'T' }, addInfo: { title: this._translation.get('Text') } }] });
228
+ /*this.palettes.push(swimlane );*/
229
+ }
230
+ _versionNode(version) {
231
+ return {
232
+ id: 'version',
233
+ shape: {
234
+ type: 'Text',
235
+ content: this._translate.get('DiagramVersion', version || 0)
236
+ },
237
+ offsetY: 5,
238
+ offsetX: 5,
239
+ style: {
240
+ fontSize: 50,
241
+ color: this._session.theme.dark ? 'white' : 'black',
242
+ opacity: .1
243
+ },
244
+ constraints: NodeConstraints.ReadOnly,
245
+ zIndex: -1
246
+ };
247
+ }
248
+ getSymbolInfo(symbol) {
249
+ return {
250
+ fit: true,
251
+ tooltip: symbol.addInfo.title,
252
+ description: { text: symbol.addInfo.title, overflow: 'Wrap', wrap: 'WrapWithOverflow' }
253
+ };
254
+ }
255
+ getSymbolDefaults(symbol) {
256
+ symbol.width = symbol.height = 40;
257
+ symbol.constraints = NodeConstraints.Default | NodeConstraints.AspectRatio;
258
+ }
259
+ pan() {
260
+ this.diagram.constraints = this.diagram.constraints | DiagramConstraints.Pan;
261
+ this.diagram.tool = DiagramTools.ZoomPan;
262
+ }
263
+ cursor() {
264
+ this.diagram.constraints = this.diagram.constraints & ~DiagramConstraints.Pan;
265
+ this.diagram.tool = DiagramTools.Default;
266
+ }
267
+ selectionChange(evt) {
268
+ const { nodes, connectors } = this.diagram.selectedItems;
269
+ if (connectors.length || nodes.length) {
270
+ if (nodes.length === 1 && nodes[0].addInfo) {
271
+ this.diagram.selectedItems.constraints = SelectorConstraints.All | SelectorConstraints.UserHandle;
272
+ this.diagram.selectedItems.userHandles = this._userHandles;
273
+ }
274
+ else
275
+ this.diagram.selectedItems.constraints = SelectorConstraints.All ^ SelectorConstraints.UserHandle;
276
+ if (connectors.length) {
277
+ const connector = connectors[0];
278
+ connectors.forEach(c => { if (!c.addInfo)
279
+ c.addInfo = {}; });
280
+ const type = connector.type;
281
+ this.connectorType = connectors.length === 1 || connectors.every(c => c.type === type) ? type : null;
282
+ if (connector.annotations.length)
283
+ this.fontSize = connector.annotations[0].style.fontSize;
284
+ this.connectorType = connectors.length === 1 || connectors.every(c => c.type === type) ? type : null;
285
+ }
286
+ if (nodes.length) {
287
+ const node = nodes[0], addInfo = node.addInfo;
288
+ if (addInfo && addInfo.nodeType) {
289
+ if (node.annotations.length)
290
+ this.fontSize = node.annotations[0].style.fontSize;
291
+ }
292
+ }
293
+ this._router.navigate(WorkflowNodeComponent, {
294
+ state: {
295
+ nodes, connectors
296
+ },
297
+ policy: OpenPolicy.Tab,
298
+ expandable: false,
299
+ group: ''
300
+ }).then(p => {
301
+ p.instance.change.
302
+ pipe(takeUntil(this._destroy)).subscribe(() => {
303
+ this.dirty = true;
304
+ this.diagram.dataBind();
305
+ });
306
+ });
307
+ }
308
+ else
309
+ this._router.collapse();
310
+ }
311
+ align(value) {
312
+ function align(n) {
313
+ n.annotations.length && Object.assign(n.annotations[0], {
314
+ offset: {
315
+ x: value === 'Right' ? 1 : value === 'Left' ? 0 : .5,
316
+ y: value === 'Top' ? 0 : value === 'Bottom' ? 1 : .5
317
+ },
318
+ verticalAlignment: value === 'Top' ? 'Bottom' : value === 'Bottom' ? 'Top' : 'Center',
319
+ horizontalAlignment: value === 'Right' ? 'Left' : value === 'Left' ? 'Right' : 'Center'
320
+ });
321
+ }
322
+ this.diagram.selectedItems.nodes.forEach(align);
323
+ this.diagram.selectedItems.connectors.forEach(align);
324
+ this.alignment = value;
325
+ this.dirty = true;
326
+ }
327
+ dragEnter(args) {
328
+ const obj = args.element;
329
+ if (obj instanceof Node) {
330
+ const { width, height } = obj;
331
+ obj.width = 100;
332
+ obj.height *= 100 / width;
333
+ obj.offsetX += (obj.width - width) / 2;
334
+ obj.offsetY += (obj.height - height) / 2;
335
+ obj.style = { fill: 'white', strokeColor: 'black' };
336
+ }
337
+ }
338
+ propertyChange(e) {
339
+ if (e.cause !== 2)
340
+ this.dirty = true;
341
+ }
342
+ change() {
343
+ this.dirty = true;
344
+ }
345
+ addText() {
346
+ this.diagram.drawingObject = {
347
+ shape: {
348
+ type: 'Text',
349
+ },
350
+ constraints: NodeConstraints.Default & ~NodeConstraints.InConnect & ~NodeConstraints.OutConnect
351
+ };
352
+ this.diagram.tool = DiagramTools.DrawOnce;
353
+ }
354
+ /**
355
+ * Ctrl-s save
356
+ * @param event
357
+ */
358
+ handleKeyboardEvent(event) {
359
+ if (this.dirty && event.ctrlKey && (event.which === 83 || event.which === 115)) {
360
+ this.save();
361
+ event.preventDefault();
362
+ }
363
+ }
364
+ bgChange(val) {
365
+ this.diagram.selectedItems.nodes.forEach(n => n.style.fill = val);
366
+ this.dirty = true;
367
+ }
368
+ colorChange(val) {
369
+ this.diagram.selectedItems.nodes.forEach(n => n.annotations.forEach(a => a.style.color = val));
370
+ this.diagram.selectedItems.connectors.forEach(c => c.annotations.forEach(a => a.style.color = val));
371
+ this.dirty = true;
372
+ }
373
+ connectorTypeChange(type) {
374
+ this.diagram.selectedItems.connectors.forEach(c => c.type = type);
375
+ this.connectorType = type;
376
+ this.dirty = true;
377
+ }
378
+ sizeChange(val) {
379
+ this.diagram.selectedItems.nodes.forEach(n => n.annotations.forEach(a => a.style.fontSize = parseInt(val)));
380
+ this.diagram.dataBind();
381
+ }
382
+ strokeChange(val) {
383
+ this.diagram.selectedItems.connectors.forEach(c => {
384
+ c.style.strokeColor = val;
385
+ if (c.annotations)
386
+ c.annotations[0].style.color = val;
387
+ });
388
+ this.diagram.selectedItems.nodes.forEach(n => n.style.strokeColor = val);
389
+ this.dirty = true;
390
+ }
391
+ save() {
392
+ this.diagram.serializationSettings = { preventDefaults: true };
393
+ const obj = JSON.parse(this.diagram.saveDiagram());
394
+ this._form.workflow.connectors = obj.connectors;
395
+ this._form.workflow.nodes = obj.nodes.filter(n => n.id !== 'version').map((n) => {
396
+ n.offsetX = Math.round(n.offsetX);
397
+ n.offsetY = Math.round(n.offsetY);
398
+ return n;
399
+ });
400
+ this.saving = true;
401
+ return this._service.save(this._form).toPromise().then(v => {
402
+ this.ps.toast('ChangesSaved');
403
+ if (this._form.workflow.version < v) {
404
+ this.ps.toast('DiagramVersion', v);
405
+ const node = this.diagram.getNodeObject('version');
406
+ node.shape.content = this._translate.get('DiagramVersion', v);
407
+ this.diagram.dataBind();
408
+ }
409
+ this._form.workflow.version = v;
410
+ this.dirty = false;
411
+ this.saving = false;
412
+ }, () => {
413
+ this.ps.error();
414
+ this.saving = false;
415
+ });
416
+ }
417
+ ngOnDestroy() {
418
+ this.symbolPalette?.destroy();
419
+ this.diagram?.destroy();
420
+ this._destroy.next();
421
+ this._destroy.complete();
422
+ }
423
+ }
424
+ WorkflowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: WorkflowComponent, deps: [{ token: i1.PromptService }, { token: i2.FormService }, { token: i3.PaneRef }, { token: i4.PanesRouter }, { token: i5.SessionService }, { token: i6.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
425
+ WorkflowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.1", type: WorkflowComponent, selector: "bizdoc-workflow", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "pane" }, viewQueries: [{ propertyName: "symbolPaletteEl", first: true, predicate: ["symbolPaletteEl"], descendants: true, static: true }, { propertyName: "diagramEl", first: true, predicate: ["diagramEl"], descendants: true, static: true }], ngImport: i0, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"], components: [{ type: i7.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { type: i8.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i10.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i11.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { type: i12.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i13.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { type: i14.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i15.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }], pipes: { "translate": i16.TranslatePipe } });
426
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.1", ngImport: i0, type: WorkflowComponent, decorators: [{
427
+ type: Component,
428
+ args: [{ selector: 'bizdoc-workflow', host: {
429
+ class: 'pane'
430
+ }, template: "<mat-toolbar>\r\n <button mat-icon-button (click)=\"tools = !tools\" [bizdocTooltip]=\"'Collapse' | translate\"><mat-icon>view_sidebar</mat-icon></button>\r\n <button mat-button (click)=\"save()\" color=\"primary\" [disabled]=\"!dirty || saving\">{{'SaveChanges' | translate}}</button>\r\n <button mat-icon-button (click)=\"diagram.fitToPage()\" [bizdocTooltip]=\"'FitToPage' | translate\"><mat-icon>fullscreen_exit</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.undo()\" [bizdocTooltip]=\"'Undo' | translate\" [disabled]=\"!diagram.historyManager?.canUndo\"><mat-icon>undo</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.redo()\" [bizdocTooltip]=\"'Redo' | translate\" [disabled]=\"!diagram.historyManager?.canRedo\"><mat-icon>redo</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"diagram.copy()\" [bizdocTooltip]=\"'Copy' | translate\" [disabled]=\"diagram.selectedItems?.connectors.length === 0 && diagram.selectedItems?.nodes.length === 0\"><mat-icon>copy</mat-icon></button>\r\n <button mat-icon-button (click)=\"diagram.paste()\" [bizdocTooltip]=\"'Paste' | translate\"><mat-icon>paste</mat-icon></button>\r\n <span class=\"tools-divider\"></span>\r\n <button mat-icon-button (click)=\"pan()\" [bizdocTooltip]=\"'Pan' | translate\"><span class=\"e-icons sf-icon-pan\"></span></button>\r\n <button mat-icon-button (click)=\"cursor()\" [bizdocTooltip]=\"'Cursor' | translate\"><span class=\"e-icons sf-icon-cursor\"></span></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"addText()\" [bizdocTooltip]=\"'Text' | translate\"><mat-icon>title</mat-icon></button>\r\n <button mat-button [matMenuTriggerFor]=\"lineMenu\" [disabled]=\"diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'ConnectorMode'|translate\">\r\n <span class=\"e-menu-icon\" [ngClass]=\"{'sf-icon-straight-line': connectorType === 'Straight',\r\n 'sf-icon-orthogonal-line': connectorType === 'Orthogonal',\r\n 'sf-icon-beizer-line': connectorType === 'Bezier'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #lineMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"connectorTypeChange('Straight')\">\r\n <span class=\"e-menu-icon sf-icon-straight-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Orthogonal')\">\r\n <span class=\"e-menu-icon sf-icon-orthogonal-line\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"connectorTypeChange('Bezier')\">\r\n <span class=\"e-menu-icon sf-icon-beizer-line\"></span>\r\n </button>\r\n </mat-menu>\r\n &nbsp;\r\n <button mat-button [matMenuTriggerFor]=\"alignMenu\" [disabled]=\"diagram.selectedItems?.nodes.length === 0 && diagram.selectedItems?.connectors.length === 0\" [bizdocTooltip]=\"'Align'|translate\">\r\n <span class=\"e-icons\" [ngClass]=\"{'sf-icon-top': alignment === 'Top',\r\n 'sf-icon-left': alignment === 'Left',\r\n 'sf-icon-center': alignment === 'Center',\r\n 'sf-icon-bottom': alignment === 'Bottom',\r\n 'sf-icon-right': alignment === 'Right'}\"></span>\r\n <mat-icon>arrow_drop_down</mat-icon>\r\n </button>\r\n <mat-menu #alignMenu panelClass=\"icon-menu-panel\">\r\n <button mat-menu-item (click)=\"align('Top')\">\r\n <span class=\"e-icons sf-icon-top\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Left')\">\r\n <span class=\"e-icons sf-icon-left\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Center')\">\r\n <span class=\"e-icons sf-icon-center\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Bottom')\">\r\n <span class=\"e-icons sf-icon-bottom\"></span>\r\n </button>\r\n <button mat-menu-item (click)=\"align('Right')\">\r\n <span class=\"e-icons sf-icon-right\"></span>\r\n </button>\r\n </mat-menu>\r\n</mat-toolbar>\r\n<div class=\"row container\">\r\n <div id=\"symbolpalette\" [style.display]=\"tools?'':'none'\">\r\n <div dir=\"ltr\" #symbolPaletteEl>\r\n </div>\r\n </div>\r\n <div #diagramEl id=\"diagram\" fxFlex dir=\"ltr\">\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;flex-direction:column;flex-grow:1;height:100%}.container{flex-grow:1;overflow-y:auto}#diagram{flex-grow:1}#symbolpalette{width:210px}::ng-deep .e-rtl{direction:ltr}::ng-deep .mat-toolbar .mat-button-toggle{background:transparent!important}.e-menu-icon{font-family:diagram-icons!important;speak:none;font-size:18px;font-style:normal;font-weight:400;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::ng-deep .icon-menu-panel{min-width:0}.tools-divider:after{content:\"|\";opacity:.6;margin:0 2px}\n"] }]
431
+ }], ctorParameters: function () { return [{ type: i1.PromptService }, { type: i2.FormService }, { type: i3.PaneRef }, { type: i4.PanesRouter }, { type: i5.SessionService }, { type: i6.TranslateService }]; }, propDecorators: { symbolPaletteEl: [{
432
+ type: ViewChild,
433
+ args: ['symbolPaletteEl', { static: true }]
434
+ }], diagramEl: [{
435
+ type: ViewChild,
436
+ args: ['diagramEl', { static: true }]
437
+ }], handleKeyboardEvent: [{
438
+ type: HostListener,
439
+ args: ['document:keydown', ['$event']]
440
+ }] } });
441
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9hZG1pbi9mb3JtL3dvcmtmbG93L3dvcmtmbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvYWRtaW4vZm9ybS93b3JrZmxvdy93b3JrZmxvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYSxZQUFZLEVBQXFDLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFDTCxrQkFBa0IsRUFBbUIsbUJBQW1CLEVBQTRDLG9CQUFvQixFQUE2QixlQUFlLEVBQ3BLLE9BQU8sRUFBYSxRQUFRLEVBQW1FLElBQUksRUFBMEIsWUFBWSxFQUFFLG9CQUFvQixFQUF1RSxhQUFhLEVBQUUsWUFBWSxFQUNqUSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQzlDLE1BQU0sMEJBQTBCLENBQUM7QUFRbEMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHekQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUVuQyxTQUFTLFFBQVE7SUFDZixNQUFNLEtBQUssR0FBcUI7UUFDOUIsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDMUQsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDMUQsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDMUQsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7S0FDM0QsQ0FBQztJQUNGLE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsZUFBZTtJQUN0QixNQUFNLFlBQVksR0FBZ0IsUUFBUSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMzRSxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2hFLElBQUksUUFBUSxFQUFFO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDOUQsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUN0RDthQUFNO1lBQ0wsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztTQUN6RDtLQUNGO0FBQ0gsQ0FBQztBQUVELFNBQVMsZ0JBQWdCO0lBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDaEUsSUFBSSxRQUFRLEVBQUU7UUFDWixNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzVELElBQUksV0FBVyxFQUFFO1lBQ2YsV0FBVyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDL0Q7S0FDRjtBQUNILENBQUM7QUFFRCxrQkFBa0I7QUFDbEIsTUFBTSxRQUFTLFNBQVEsb0JBQW9CO0lBWXpDLFlBQW9CLE9BQWdCLEVBQVUsUUFBa0I7UUFDOUQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFEeEMsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFFaEUsQ0FBQztJQWJNLFNBQVMsQ0FBQyxJQUFvQjtRQUNuQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUc7Z0JBQzNCLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVE7Z0JBQy9CLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNqRCxDQUFDO1lBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7UUFDRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUlGO0FBQ0QsTUFBTSxTQUFTLEdBQUcsc2dDQUFzZ0MsQ0FBQztBQVV6aEMsd0JBQXdCO0FBQ3hCLE1BQU0sT0FBTyxpQkFBaUI7SUFtRDVCLG9CQUFvQjtJQUNwQixZQUFvQixFQUFpQixFQUMzQixRQUFxQixFQUNyQixLQUFpQyxFQUNqQyxPQUFvQixFQUNwQixRQUF3QixFQUN4QixVQUE0QjtRQUxsQixPQUFFLEdBQUYsRUFBRSxDQUFlO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBNEI7UUFDakMsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQXBEdEMsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLGtCQUFhLEdBQWEsUUFBUSxDQUFDO1FBQ25DLGNBQVMsR0FBcUIsUUFBUSxDQUFDO1FBQ3ZDLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFPZCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUVkLGFBQVEsR0FBbUIsRUFBRSxDQUFDO1FBQzlCLHVCQUFrQixHQUF1QixrQkFBa0IsQ0FBQyxPQUFPLEdBQUcsa0JBQWtCLENBQUMsUUFBUSxHQUFHLGtCQUFrQixDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7UUFDakssZ0JBQVcsR0FBaUIsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUNqRCx5REFBeUQ7UUFDeEMsaUJBQVksR0FBc0I7WUFDakQ7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLE9BQU8sRUFBRSxJQUFJO2dCQUNiLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksRUFBRSxPQUFPO2dCQUNiLFlBQVksRUFBRSxFQUFFO2dCQUNoQixNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO2FBQ2pEO1NBQ0YsQ0FBQztRQUNGLDBCQUEwQjtRQUNqQixpQkFBWSxHQUFnQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUN6RSxpQkFBWSxHQUFzQixFQUMxQyxDQUFDO1FBQ08sa0JBQWEsR0FBa0IsRUFDdkMsQ0FBQztRQUNPLG1CQUFjLEdBQXdCO1lBQzdDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEdBQUc7U0FDYixDQUFDO1FBQ00sZ0JBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxrQkFBYSxHQUF1QjtZQUMzQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNsRCxhQUFhLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUNqRCxDQUFDO1FBRWUsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFvR2hELGlCQUFZLEdBQUcsR0FBYyxFQUFFO1lBQzdCLE1BQU0sR0FBRyxHQUFjO2dCQUNyQixLQUFLLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTztvQkFDekQsV0FBVyxFQUFFLENBQUM7aUJBQ2Y7Z0JBQ0QsV0FBVyxFQUFFLENBQUM7d0JBQ1osS0FBSyxFQUFFOzRCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTzs0QkFDbkQsSUFBSSxFQUFFLGFBQWE7NEJBQ25CLE9BQU8sRUFBRSxFQUFFO3lCQUNaO3FCQUNGLENBQUM7YUFDSCxDQUFDO1lBQ0YsSUFBSSxHQUFHLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRTtnQkFDM0IsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7YUFDakI7aUJBQU07Z0JBQ0wsTUFBTSxLQUFLLEdBQVcsR0FBRyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7Z0JBQ3RDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO2dCQUNoQixHQUFHLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQzthQUNyQjtZQUNELEdBQUcsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO1lBQ3hFLEdBQUcsQ0FBQyxLQUFLLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDdkIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUE7UUFDTSxpQkFBWSxHQUFHLENBQUMsR0FBbUIsRUFBUSxFQUFFO1lBQ2xELEdBQUcsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQztZQUN2SCxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3ZFLENBQUMsQ0FBQTtRQXpIQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQWxETSxPQUFPLENBQUMsTUFBYztRQUMzQixJQUFJLElBQUksR0FBYSxJQUFJLENBQUM7UUFDMUIsSUFBSSxNQUFNLEtBQUssU0FBUztZQUN0QixJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBOENELGVBQWU7SUFDZixDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxhQUFhLENBQUM7WUFDckMsVUFBVSxFQUFFLFVBQVU7WUFDdEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRTtZQUMvQyxTQUFTLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEVBQUU7WUFDekQsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQy9CLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDNUMsZUFBZSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ25ELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQztZQUN6QixLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNO1lBQzdCLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMvQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbEQsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQ3RCLGVBQWUsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDN0MsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7WUFDbkMsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1lBQ2pDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3BDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN4QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDeEMsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QyxlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2pELEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25FLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN4QyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2pFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQy9ELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBQ08sU0FBUztRQUNmLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEMsTUFBTSxJQUFJLEdBQWM7Z0JBQ3RCLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDVixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFO29CQUNQLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTtvQkFDaEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2lCQUNmO2FBQ0YsQ0FBQztZQUNELElBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUM1QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDWixPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO2dCQUN2RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUM3QjtZQUNELE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsd01BQXdNO1FBQ3hNLGtDQUFrQztJQUNwQyxDQUFDO0lBRU8sWUFBWSxDQUFDLE9BQWU7UUFDbEMsT0FBTztZQUNMLEVBQUUsRUFBRSxTQUFTO1lBQ2IsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxNQUFNO2dCQUNaLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDO2FBQzdEO1lBQ0QsT0FBTyxFQUFFLENBQUM7WUFDVixPQUFPLEVBQUUsQ0FBQztZQUNWLEtBQUssRUFBRTtnQkFDTCxRQUFRLEVBQUUsRUFBRTtnQkFDWixLQUFLLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ25ELE9BQU8sRUFBRSxFQUFFO2FBQ007WUFDbkIsV0FBVyxFQUFFLGVBQWUsQ0FBQyxRQUFRO1lBQ3JDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDRSxDQUFDO0lBQ2pCLENBQUM7SUErQk0sYUFBYSxDQUFDLE1BQWlCO1FBQ3BDLE9BQU87WUFDTCxHQUFHLEVBQUUsSUFBSTtZQUNULE9BQU8sRUFBRyxNQUFNLENBQUMsT0FBZSxDQUFDLEtBQUs7WUFDdEMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFHLE1BQU0sQ0FBQyxPQUFlLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1NBQ2pHLENBQUM7SUFDSixDQUFDO0lBQ00saUJBQWlCLENBQUMsTUFBaUI7UUFDeEMsTUFBTSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNsQyxNQUFNLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLFdBQVcsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsR0FBRztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztRQUM3RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUM7UUFDOUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUMzQyxDQUFDO0lBQ0QsZUFBZSxDQUFDLEdBQThCO1FBQzVDLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDekQsSUFBSSxVQUFVLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUMsR0FBRyxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQztnQkFDbEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7YUFDNUQ7O2dCQUNJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLEdBQUcsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1lBRXZHLElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtnQkFDckIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPO29CQUFFLENBQUMsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNyRyxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTTtvQkFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQzFELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO2FBQ3RHO1lBQ0QsSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNoQixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ25CLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBYyxDQUFDO2dCQUNoQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFO29CQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTTt3QkFDekIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7aUJBQ3REO2FBQ0Y7WUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxxQkFBcUIsRUFBRTtnQkFDM0MsS0FBSyxFQUFFO29CQUNMLEtBQUssRUFBRSxVQUFVO2lCQUNsQjtnQkFDRCxNQUFNLEVBQUUsVUFBVSxDQUFDLEdBQUc7Z0JBQ3RCLFVBQVUsRUFBRSxLQUFLO2dCQUNqQixLQUFLLEVBQUUsRUFBRTthQUNWLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ1QsQ0FBQyxDQUFDLFFBQWtDLENBQUMsTUFBTTtvQkFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO29CQUM1QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztvQkFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDMUIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztTQUNKOztZQUVDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUNELEtBQUssQ0FBQyxLQUF1QjtRQUMzQixTQUFTLEtBQUssQ0FBQyxDQUE2QjtZQUMxQyxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RELE1BQU0sRUFBRTtvQkFDTixDQUFDLEVBQUUsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQ3BELENBQUMsRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtpQkFDckQ7Z0JBQ0QsaUJBQWlCLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVE7Z0JBQ3JGLG1CQUFtQixFQUFFLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRO2FBQ3hGLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNNLFNBQVMsQ0FBQyxJQUF5QjtRQUN4QyxNQUFNLEdBQUcsR0FBYyxJQUFJLENBQUMsT0FBb0IsQ0FBQztRQUNqRCxJQUFJLEdBQUcsWUFBWSxJQUFJLEVBQUU7WUFDdkIsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7WUFDOUIsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7WUFDaEIsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDO1lBQzFCLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QyxHQUFHLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsR0FBRyxDQUFDLEtBQUssR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUNELGNBQWMsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUM7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDO0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUc7WUFDM0IsS0FBSyxFQUFFO2dCQUNMLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRCxXQUFXLEVBQUUsZUFBZSxDQUFDLE9BQU8sR0FBRyxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVTtTQUNuRixDQUFDO1FBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUM1QyxDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxFQUFFO1lBQzlFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjtJQUNILENBQUM7SUFDRCxRQUFRLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNELFdBQVcsQ0FBQyxHQUFXO1FBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ0QsbUJBQW1CLENBQUMsSUFBYztRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBQ0QsVUFBVSxDQUFDLEdBQVc7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxZQUFZLENBQUMsR0FBVztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQztZQUMxQixJQUFJLENBQUMsQ0FBQyxXQUFXO2dCQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUNELElBQUk7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQixHQUFHLEVBQUMsZUFBZSxFQUFFLElBQUksRUFBQyxDQUFDO1FBQzdELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBWSxFQUFFLEVBQUU7WUFDekYsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDekQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDOUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxLQUFtQixDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN6QjtZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDaEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtZQUNOLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzs7OEdBaldVLGlCQUFpQjtrR0FBakIsaUJBQWlCLG9ZQ25GOUIsZ3NJQWtFQTsyRkRpQmEsaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLGlCQUFpQixRQUdyQjt3QkFDSixLQUFLLEVBQUUsTUFBTTtxQkFDZDswT0FNK0MsZUFBZTtzQkFBOUQsU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0osU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThSeEMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgSG9zdExpc3RlbmVyLCBFbGVtZW50UmVmLCBPbkluaXQsIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7XHJcbiAgRGlhZ3JhbUNvbnN0cmFpbnRzLCBVc2VySGFuZGxlTW9kZWwsIFNlbGVjdG9yQ29uc3RyYWludHMsIFRvb2xCYXNlLCBNb3VzZUV2ZW50QXJncywgQ29ubmVjdG9yTW9kZWwsIENvbm5lY3RvckRyYXdpbmdUb29sLCBUZXh0TW9kZWwsIFBvaW50UG9ydE1vZGVsLCBOb2RlQ29uc3RyYWludHMsIFNjcm9sbFNldHRpbmdzTW9kZWwsXHJcbiAgRGlhZ3JhbSwgTm9kZU1vZGVsLCBVbmRvUmVkbywgU3ltYm9sSW5mbywgSURyYWdFbnRlckV2ZW50QXJncywgU25hcFNldHRpbmdzTW9kZWwsIE1hcmdpbk1vZGVsLCBOb2RlLCBQYWxldHRlTW9kZWwsIFNlZ21lbnRzLCBEaWFncmFtVG9vbHMsIENvbm5lY3RvckNvbnN0cmFpbnRzLCBTZWxlY3Rvck1vZGVsLCBSdWxlclNldHRpbmdzTW9kZWwsIEFsaWdubWVudE9wdGlvbnMsIFRleHRTdHlsZU1vZGVsLCBTeW1ib2xQYWxldHRlLCBCcG1uRGlhZ3JhbXMsIERhdGFCaW5kaW5nLFxyXG4gIENvbm5lY3RvckVkaXRpbmcsIENvbm5lY3RvckJyaWRnaW5nLCBTbmFwcGluZ1xyXG59IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1kaWFncmFtcyc7XHJcbmltcG9ydCB7IEZvcm0gfSBmcm9tICcuLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uL2Zvcm0uc2VydmljZSc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lUmVmIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IFBhbmVzUm91dGVyIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zbG90cy9yb3V0ZXIuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtmbG93Tm9kZUNvbXBvbmVudCB9IGZyb20gJy4vbm9kZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBZG1pbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FkbWluLWRpc21pc3Muc2VydmljZSc7XHJcbmltcG9ydCB7IE9wZW5Qb2xpY3kgfSBmcm9tICcuLi8uLi8uLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBJU2VsZWN0aW9uQ2hhbmdlRXZlbnRBcmdzIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItZGlhZ3JhbXMnO1xyXG5cclxuRGlhZ3JhbS5JbmplY3QoVW5kb1JlZG8sIENvbm5lY3RvckJyaWRnaW5nLCBDb25uZWN0b3JFZGl0aW5nLCBTbmFwcGluZyk7XHJcblN5bWJvbFBhbGV0dGUuSW5qZWN0KEJwbW5EaWFncmFtcyk7XHJcblxyXG5mdW5jdGlvbiBnZXRQb3J0cygpOiBQb2ludFBvcnRNb2RlbFtdIHtcclxuICBjb25zdCBwb3J0czogUG9pbnRQb3J0TW9kZWxbXSA9IFtcclxuICAgIHsgaWQ6ICdwb3J0MScsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAsIHk6IDAuNSB9IH0sXHJcbiAgICB7IGlkOiAncG9ydDInLCBzaGFwZTogJ0NpcmNsZScsIG9mZnNldDogeyB4OiAwLjUsIHk6IDEgfSB9LFxyXG4gICAgeyBpZDogJ3BvcnQzJywgc2hhcGU6ICdDaXJjbGUnLCBvZmZzZXQ6IHsgeDogMSwgeTogMC41IH0gfSxcclxuICAgIHsgaWQ6ICdwb3J0NCcsIHNoYXBlOiAnQ2lyY2xlJywgb2Zmc2V0OiB7IHg6IDAuNSwgeTogMCB9IH1cclxuICBdO1xyXG4gIHJldHVybiBwb3J0cztcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd1BhbGV0dGVJY29uKCk6IHZvaWQge1xyXG4gIGNvbnN0IHBhbGV0dGVTcGFjZTogSFRNTEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncGFsZXR0ZS1zcGFjZScpO1xyXG4gIGNvbnN0IGlzTW9iaWxlID0gd2luZG93Lm1hdGNoTWVkaWEoJyhtYXgtd2lkdGg6NTUwcHgpJykubWF0Y2hlcztcclxuICBpZiAoaXNNb2JpbGUpIHtcclxuICAgIGlmICghcGFsZXR0ZVNwYWNlLmNsYXNzTGlzdC5jb250YWlucygnc2ItbW9iaWxlLXBhbGV0dGUtb3BlbicpKSB7XHJcbiAgICAgIHBhbGV0dGVTcGFjZS5jbGFzc0xpc3QuYWRkKCdzYi1tb2JpbGUtcGFsZXR0ZS1vcGVuJyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBwYWxldHRlU3BhY2UuY2xhc3NMaXN0LnJlbW92ZSgnc2ItbW9iaWxlLXBhbGV0dGUtb3BlbicpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuZnVuY3Rpb24gcGFsZXR0ZUljb25DbGljaygpIHtcclxuICBjb25zdCBpc01vYmlsZSA9IHdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOjU1MHB4KScpLm1hdGNoZXM7XHJcbiAgaWYgKGlzTW9iaWxlKSB7XHJcbiAgICBjb25zdCBwYWxldHRlSWNvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwYWxldHRlLWljb24nKTtcclxuICAgIGlmIChwYWxldHRlSWNvbikge1xyXG4gICAgICBwYWxldHRlSWNvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHNob3dQYWxldHRlSWNvbiwgZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuLy9EZWZpbmVzIHRoZSB0b29sXHJcbmNsYXNzIERyYXdUb29sIGV4dGVuZHMgQ29ubmVjdG9yRHJhd2luZ1Rvb2wge1xyXG4gIHB1YmxpYyBtb3VzZU1vdmUoYXJnczogTW91c2VFdmVudEFyZ3MpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5kaWFncmFtLmRyYXdpbmdPYmplY3QgPSB7XHJcbiAgICAgICAgdHlwZTogdGhpcy5zZWdtZW50cyB8fCAnQmV6aWVyJyxcclxuICAgICAgICBzb3VyY2VJRDogdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXNbMF0uaWRcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5pbkFjdGlvbiA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvayA9IHN1cGVyLm1vdXNlTW92ZShhcmdzKTtcclxuICAgIHJldHVybiBvaztcclxuICB9XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFncmFtOiBEaWFncmFtLCBwcml2YXRlIHNlZ21lbnRzOiBTZWdtZW50cykge1xyXG4gICAgc3VwZXIoZGlhZ3JhbS5jb21tYW5kSGFuZGxlciwgJ0Nvbm5lY3RvclNvdXJjZUVuZCcsIG51bGwpO1xyXG4gIH1cclxufVxyXG5jb25zdCBMSU5LX1BBVEggPSAnTTM0Ni43LDcxNC42bDM2OC4xLTM2OC4xYzE3LjktMTcuOSwxNy45LTQ3LjEsMC02NC45Yy0xNy45LTE3LjktNDcuMS0xNy45LTY0LjksMGwtMzY4LDM2OGMtMTcuOSwxNy45LTE3LjksNDcuMSwwLDY0LjlDMjk5LjYsNzMyLjUsMzI4LjksNzMyLjUsMzQ2LjcsNzE0LjZ6IE00NjguMiw2NTFjNi40LDksNy42LDE4LjUsNy42LDIzLjhjMCw2LjMtMS41LDE4LjYtMTEuOCwyOC45TDI3MSw4OTYuNWMtMTAuMywxMC4zLTIyLjUsMTEuOC0yOC45LDExLjhjLTYuMywwLTE4LjYtMS41LTI4LjktMTEuOEwxMDMuNSw3ODYuOGMtMTAuMy0xMC4zLTExLjgtMjIuNS0xMS44LTI4LjljMC02LjQsMS41LTE4LjYsMTEuOC0yOC45bDE5Mi45LTE5Mi45YzEwLjMtMTAuMywyMi41LTExLjgsMjguOS0xMS44YzQuNSwwLDExLjgsMC44LDE5LjMsNC44bDU4LjYtNTguNmMtNDgtMzkuNi0xMTkuNi0zNi45LTE2NC41LDcuOUw0NS43LDY3MS4zYy00Ny43LDQ3LjctNDcuNywxMjUuNSwwLDE3My4ybDEwOS43LDEwOS43YzQ3LjcsNDcuNywxMjUuNSw0Ny43LDE3My4yLDBsMTkyLjktMTkyLjljNDYtNDYsNDcuNi0xMjAuNCw0LjYtMTY4LjRMNDY4LjIsNjUxeiBNOTU0LjIsMTU1LjVMODQ0LjUsNDUuOEM3OTYuOS0xLjksNzE5LTEuOSw2NzEuMyw0NS44TDQ3OC40LDIzOC43Yy00NC44LDQ0LjgtNDcuNSwxMTYuNS03LjksMTY0LjVsNTguNi01OC42Yy00LTcuNi00LjgtMTQuOS00LjgtMTkuM2MwLTYuMywxLjUtMTguNiwxMS44LTI4LjlsMTkyLjktMTkyLjljMTAuMy0xMC4zLDIyLjUtMTEuOCwyOC45LTExLjhjNi4zLDAsMTguNiwxLjUsMjguOSwxMS44bDEwOS43LDEwOS43YzEwLjMsMTAuMywxMS44LDIyLjUsMTEuOCwyOC45YzAsNi4zLTEuNSwxOC42LTExLjgsMjguOUw3MDMuNyw0NjRjLTEwLjMsMTAuMy0yMi41LDExLjgtMjguOSwxMS44Yy01LjMsMC0xNC44LTEuMS0yMy44LTcuNmwtNTgsNThjNDgsNDMsMTIyLjMsNDEuNSwxNjguNC00LjZsMTkyLjktMTkyLjlDMTAwMS45LDI4MS4xLDEwMDEuOSwyMDMuMSw5NTQuMiwxNTUuNXonO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiaXpkb2Mtd29ya2Zsb3cnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93b3JrZmxvdy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya2Zsb3cuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7XHJcbiAgICBjbGFzczogJ3BhbmUnXHJcbiAgfVxyXG59KVxyXG4vKiogd29ya2Zsb3cgY29tcG9uZW50Ki9cclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFkbWluQ29tcG9uZW50IHtcclxuICBzeW1ib2xQYWxldHRlOiBTeW1ib2xQYWxldHRlO1xyXG4gIGRpYWdyYW06IERpYWdyYW07XHJcbiAgQFZpZXdDaGlsZCgnc3ltYm9sUGFsZXR0ZUVsJywgeyBzdGF0aWM6IHRydWUgfSkgc3ltYm9sUGFsZXR0ZUVsOiBFbGVtZW50UmVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWdyYW1FbCcsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWdyYW1FbDogRWxlbWVudFJlZjtcclxuICB0b29scyA9IHRydWU7XHJcbiAgY29ubmVjdG9yVHlwZTogU2VnbWVudHMgPSAnQmV6aWVyJztcclxuICBhbGlnbm1lbnQ6IEFsaWdubWVudE9wdGlvbnMgPSAnQ2VudGVyJztcclxuICBmb250U2l6ZSA9IDEyO1xyXG4gIHB1YmxpYyBnZXRUb29sKGFjdGlvbjogc3RyaW5nKTogVG9vbEJhc2Uge1xyXG4gICAgbGV0IHRvb2w6IFRvb2xCYXNlID0gbnVsbDtcclxuICAgIGlmIChhY3Rpb24gPT09ICdjb25uZWN0JylcclxuICAgICAgdG9vbCA9IG5ldyBEcmF3VG9vbCh0aGlzLmRpYWdyYW0sIHRoaXMuY29ubmVjdG9yVHlwZSk7XHJcbiAgICByZXR1cm4gdG9vbDtcclxuICB9XHJcbiAgc2F2aW5nID0gZmFsc2U7XHJcbiAgZWxlbWVudD86IGFueTtcclxuICBkaXJ0eSA9IGZhbHNlO1xyXG4gIHBhcmFtczoge307XHJcbiAgcGFsZXR0ZXM6IFBhbGV0dGVNb2RlbFtdID0gW107XHJcbiAgZGlhZ3JhbUNvbnN0cmFpbnRzOiBEaWFncmFtQ29uc3RyYWludHMgPSBEaWFncmFtQ29uc3RyYWludHMuRGVmYXVsdCB8IERpYWdyYW1Db25zdHJhaW50cy5CcmlkZ2luZyB8IERpYWdyYW1Db25zdHJhaW50cy5Vc2VySW50ZXJhY3Rpb24gfCBEaWFncmFtQ29uc3RyYWludHMuWm9vbTtcclxuICBkaWFncmFtVG9vbDogRGlhZ3JhbVRvb2xzID0gRGlhZ3JhbVRvb2xzLkRlZmF1bHQ7XHJcbiAgLy9EZWZpbmVzIHRoZSB1c2VyIGhhbmRsZSBjb2xsZWN0aW9uIGZvciBub2RlcyBpbiBkaWFncmFtXHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdXNlckhhbmRsZXM6IFVzZXJIYW5kbGVNb2RlbFtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnY29ubmVjdCcsXHJcbiAgICAgIHBhdGhEYXRhOiBMSU5LX1BBVEgsXHJcbiAgICAgIHZpc2libGU6IHRydWUsXHJcbiAgICAgIG9mZnNldDogMCxcclxuICAgICAgc2lkZTogJ1JpZ2h0JyxcclxuICAgICAgZGlzcGxhY2VtZW50OiAyMCxcclxuICAgICAgbWFyZ2luOiB7IHRvcDogMCwgYm90dG9tOiAwLCBsZWZ0OiAwLCByaWdodDogMCB9XHJcbiAgICB9XHJcbiAgXTtcclxuICAvL1N5bWJvbFBhbGV0dGUgUHJvcGVydGllc1xyXG4gIHJlYWRvbmx5IHN5bWJvbE1hcmdpbjogTWFyZ2luTW9kZWwgPSB7IGxlZnQ6IDEwLCByaWdodDogMTAsIHRvcDogMTAsIGJvdHRvbTogMTAgfTtcclxuICByZWFkb25seSBzbmFwU2V0dGluZ3M6IFNuYXBTZXR0aW5nc01vZGVsID0ge1xyXG4gIH07XHJcbiAgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtczogU2VsZWN0b3JNb2RlbCA9IHtcclxuICB9O1xyXG4gIHJlYWRvbmx5IHNjcm9sbFNldHRpbmdzOiBTY3JvbGxTZXR0aW5nc01vZGVsID0ge1xyXG4gICAgbWluWm9vbTogLjUsXHJcbiAgICBtYXhab29tOiAyLjVcclxuICB9O1xyXG4gIHByaXZhdGUgX3J1bGVyQ29sb3IgPSB0aGlzLl9zZXNzaW9uLmdldEFjY2VudCgxMDApO1xyXG4gIHJlYWRvbmx5IHJ1bGVyU2V0dGluZ3M6IFJ1bGVyU2V0dGluZ3NNb2RlbCA9IHtcclxuICAgIGhvcml6b250YWxSdWxlcjogeyBtYXJrZXJDb2xvcjogdGhpcy5fcnVsZXJDb2xvciB9LFxyXG4gICAgdmVydGljYWxSdWxlcjogeyBtYXJrZXJDb2xvcjogdGhpcy5fcnVsZXJDb2xvciB9XHJcbiAgfTtcclxuICBwcml2YXRlIF9mb3JtOiBGb3JtO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3kgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIC8qKiB3b3JrZmxvdyBjdG9yICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwczogUHJvbXB0U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NlcnZpY2U6IEZvcm1TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcGFuZTogUGFuZVJlZjxXb3JrZmxvd0NvbXBvbmVudD4sXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuX3BhbGV0dGVzKCk7XHJcbiAgfVxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN5bWJvbFBhbGV0dGUgPSBuZXcgU3ltYm9sUGFsZXR0ZSh7XHJcbiAgICAgIGV4cGFuZE1vZGU6ICdNdWx0aXBsZScsXHJcbiAgICAgIHBhbGV0dGVzOiB0aGlzLnBhbGV0dGVzLFxyXG4gICAgICB3aWR0aDogXCIxMDAlXCIsIGhlaWdodDogXCIxMDAlXCIsIHN5bWJvbEhlaWdodDogODAsXHJcbiAgICAgIGVuYWJsZVJ0bDogZmFsc2UsIGVuYWJsZUFuaW1hdGlvbjogZmFsc2UsIHN5bWJvbFdpZHRoOiA4MCxcclxuICAgICAgc3ltYm9sTWFyZ2luOiB0aGlzLnN5bWJvbE1hcmdpbixcclxuICAgICAgZ2V0U3ltYm9sSW5mbzogdGhpcy5nZXRTeW1ib2xJbmZvLmJpbmQodGhpcyksXHJcbiAgICAgIGdldE5vZGVEZWZhdWx0czogdGhpcy5nZXRTeW1ib2xEZWZhdWx0cy5iaW5kKHRoaXMpXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc3ltYm9sUGFsZXR0ZS5hcHBlbmRUbyh0aGlzLnN5bWJvbFBhbGV0dGVFbC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuZGlhZ3JhbSA9IG5ldyBEaWFncmFtKHtcclxuICAgICAgd2lkdGg6IFwiMTAwJVwiLCBoZWlnaHQ6IFwiMTAwJVwiLFxyXG4gICAgICBzbmFwU2V0dGluZ3M6IHRoaXMuc25hcFNldHRpbmdzLFxyXG4gICAgICBnZXRDb25uZWN0b3JEZWZhdWx0czogdGhpcy5jb25uRGVmYXVsdHMuYmluZCh0aGlzKSxcclxuICAgICAgY29uc3RyYWludHM6IHRoaXMuZGlhZ3JhbUNvbnN0cmFpbnRzLFxyXG4gICAgICB0b29sOiB0aGlzLmRpYWdyYW1Ub29sLFxyXG4gICAgICBnZXROb2RlRGVmYXVsdHM6IHRoaXMubm9kZURlZmF1bHRzLmJpbmQodGhpcyksXHJcbiAgICAgIGdldEN1c3RvbVRvb2w6IHRoaXMuZ2V0VG9vbC5iaW5kKHRoaXMpLFxyXG4gICAgICBzY3JvbGxTZXR0aW5nczogdGhpcy5zY3JvbGxTZXR0aW5ncyxcclxuICAgICAgc2VsZWN0ZWRJdGVtczogdGhpcy5zZWxlY3RlZEl0ZW1zLFxyXG4gICAgICBydWxlclNldHRpbmdzOiB0aGlzLnJ1bGVyU2V0dGluZ3MsXHJcbiAgICAgIGRyYWdFbnRlcjogdGhpcy5kcmFnRW50ZXIuYmluZCh0aGlzKSxcclxuICAgICAgY29ubmVjdGlvbkNoYW5nZTogdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgY29sbGVjdGlvbkNoYW5nZTogdGhpcy5jaGFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgcHJvcGVydHlDaGFuZ2U6IHRoaXMucHJvcGVydHlDaGFuZ2UuYmluZCh0aGlzKSxcclxuICAgICAgc2VsZWN0aW9uQ2hhbmdlOiB0aGlzLnNlbGVjdGlvbkNoYW5nZS5iaW5kKHRoaXMpLFxyXG4gICAgfSwgdGhpcy5kaWFncmFtRWwubmF0aXZlRWxlbWVudCk7XHJcbiAgICBwYWxldHRlSWNvbkNsaWNrKCk7XHJcbiAgICB0aGlzLl9wYW5lLnBhcmFtc0NoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKHAgPT4ge1xyXG4gICAgICBjb25zdCBpZCA9IHBbJ2lkJ107XHJcbiAgICAgIHRoaXMuX2Zvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gaWQpO1xyXG4gICAgICB0aGlzLl9wYW5lLnRpdGxlID0gdGhpcy5fZm9ybS50aXRsZTtcclxuICAgICAgdGhpcy5wYXJhbXMgPSB7IGlkOiB0aGlzLl9mb3JtLm5hbWUgfTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5fcGFuZS5kYXRhQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoZCA9PiB7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fZm9ybSwgZC5mb3JtKTtcclxuICAgICAgY29uc3QgZmxvdyA9IHRoaXMuX2Zvcm0ud29ya2Zsb3c7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5ub2RlcyA9IGZsb3cubm9kZXM7XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5jb25uZWN0b3JzID0gZmxvdy5jb25uZWN0b3JzO1xyXG4gICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmFkZCh0aGlzLl92ZXJzaW9uTm9kZShmbG93LnZlcnNpb24pKTtcclxuICAgICAgdGhpcy5kaWFncmFtLmZpdFRvUGFnZSgpO1xyXG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX3BhbmUucmVzaXplZC5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMuZGlhZ3JhbS5yZWZyZXNoKCkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9wYWxldHRlcygpIHtcclxuICAgIHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5ub2Rlcy5mb3JFYWNoKG4gPT4ge1xyXG4gICAgICBjb25zdCBub2RlOiBOb2RlTW9kZWwgPSB7XHJcbiAgICAgICAgaWQ6IG4ubmFtZSxcclxuICAgICAgICBzaGFwZTogbi5zaGFwZSxcclxuICAgICAgICBhZGRJbmZvOiB7XHJcbiAgICAgICAgICBub2RlVHlwZTogbi5uYW1lLFxyXG4gICAgICAgICAgdGl0bGU6IG4udGl0bGVcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgICAobm9kZSBhcyBhbnkpLm5vZGUgPSBuLm5hbWU7XHJcbiAgICAgIGxldCBwYWxldHRlID0gdGhpcy5wYWxldHRlcy5maW5kKHAgPT4gcC50aXRsZSA9PT0gKG4ucGFsZXR0ZSB8fCAnJykpO1xyXG4gICAgICBpZiAoIXBhbGV0dGUpIHtcclxuICAgICAgICBwYWxldHRlID0geyBpZDogYF8ke24ucGFsZXR0ZX1gLCBleHBhbmRlZDogdHJ1ZSwgdGl0bGU6IG4ucGFsZXR0ZSB8fCAnJywgc3ltYm9sczogW10gfTtcclxuICAgICAgICB0aGlzLnBhbGV0dGVzLnB1c2gocGFsZXR0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgcGFsZXR0ZS5zeW1ib2xzLnB1c2gobm9kZSk7XHJcbiAgICB9KTtcclxuICAgIC8vdGhpcy5wYWxldHRlcy5wdXNoKHsgaWQ6ICdkZXNpZ24nLCB0aXRsZTogdGhpcy5fdHJhbnNsYXRpb24uZ2V0KCdEZXNpZ24nKSwgc3ltYm9sczogW3sgaWQ6ICd0ZXh0Jywgc2hhcGU6IHsgdHlwZTogJ1RleHQnLCB0ZXh0Q29udGVudDogJ1QnIH0sIGFkZEluZm86IHsgdGl0bGU6IHRoaXMuX3RyYW5zbGF0aW9uLmdldCgnVGV4dCcpIH0gfV0gfSk7XHJcbiAgICAvKnRoaXMucGFsZXR0ZXMucHVzaChzd2ltbGFuZSApOyovXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF92ZXJzaW9uTm9kZSh2ZXJzaW9uOiBudW1iZXIpOiBOb2RlTW9kZWwge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgaWQ6ICd2ZXJzaW9uJyxcclxuICAgICAgc2hhcGU6IHtcclxuICAgICAgICB0eXBlOiAnVGV4dCcsXHJcbiAgICAgICAgY29udGVudDogdGhpcy5fdHJhbnNsYXRlLmdldCgnRGlhZ3JhbVZlcnNpb24nLCB2ZXJzaW9uIHx8IDApXHJcbiAgICAgIH0sXHJcbiAgICAgIG9mZnNldFk6IDUsXHJcbiAgICAgIG9mZnNldFg6IDUsXHJcbiAgICAgIHN0eWxlOiB7XHJcbiAgICAgICAgZm9udFNpemU6IDUwLFxyXG4gICAgICAgIGNvbG9yOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnd2hpdGUnIDogJ2JsYWNrJyxcclxuICAgICAgICBvcGFjaXR5OiAuMVxyXG4gICAgICB9IGFzIFRleHRTdHlsZU1vZGVsLFxyXG4gICAgICBjb25zdHJhaW50czogTm9kZUNvbnN0cmFpbnRzLlJlYWRPbmx5LFxyXG4gICAgICB6SW5kZXg6IC0xXHJcbiAgICB9IGFzIFRleHRNb2RlbDtcclxuICB9XHJcbiAgbm9kZURlZmF1bHRzID0gKCk6IE5vZGVNb2RlbCA9PiB7XHJcbiAgICBjb25zdCBvYmo6IE5vZGVNb2RlbCA9IHtcclxuICAgICAgc3R5bGU6IHtcclxuICAgICAgICBmaWxsOiAndHJhbnNwYXJlbnQnLFxyXG4gICAgICAgIHN0cm9rZUNvbG9yOiB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnd2hpdGUnIDogJ2JsYWNrJyxcclxuICAgICAgICBzdHJva2VXaWR0aDogMVxyXG4gICAgICB9LFxyXG4gICAgICBhbm5vdGF0aW9uczogW3tcclxuICAgICAgICBzdHlsZToge1xyXG4gICAgICAgICAgY29sb3I6IHRoaXMuX3Nlc3Npb24udGhlbWUuZGFyayA/ICd3aGl0ZScgOiAnYmxhY2snLFxyXG4gICAgICAgICAgZmlsbDogJ3RyYW5zcGFyZW50JyxcclxuICAgICAgICAgIG9wYWNpdHk6IC44XHJcbiAgICAgICAgfVxyXG4gICAgICB9XVxyXG4gICAgfTtcclxuICAgIGlmIChvYmoud2lkdGggPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBvYmoud2lkdGggPSAxNDU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCByYXRpbzogbnVtYmVyID0gMTAwIC8gb2JqLndpZHRoO1xyXG4gICAgICBvYmoud2lkdGggPSAxMDA7XHJcbiAgICAgIG9iai5oZWlnaHQgKj0gcmF0aW87XHJcbiAgICB9XHJcbiAgICBvYmouY29uc3RyYWludHMgPSBOb2RlQ29uc3RyYWludHMuRGVmYXVsdCB8IE5vZGVDb25zdHJhaW50cy5Bc3BlY3RSYXRpbztcclxuICAgIG9iai5wb3J0cyA9IGdldFBvcnRzKCk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBwdWJsaWMgY29ubkRlZmF1bHRzID0gKG9iajogQ29ubmVjdG9yTW9kZWwpOiB2b2lkID0+IHtcclxuICAgIG9iai5jb25zdHJhaW50cyA9IENvbm5lY3RvckNvbnN0cmFpbnRzLkRlZmF1bHQgfCBDb25uZWN0b3JDb25zdHJhaW50cy5CcmlkZ2luZyB8IENvbm5lY3RvckNvbnN0cmFpbnRzLkRyYWdTZWdtZW50VGh1bWI7XHJcbiAgICBvYmouc3R5bGUuc3Ryb2tlQ29sb3IgPSB0aGlzLl9zZXNzaW9uLnRoZW1lLmRhcmsgPyAnd2hpdGUnIDogJ2JsYWNrJztcclxuICB9XHJcbiAgcHVibGljIGdldFN5bWJvbEluZm8oc3ltYm9sOiBOb2RlTW9kZWwpOiBTeW1ib2xJbmZvIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGZpdDogdHJ1ZSxcclxuICAgICAgdG9vbHRpcDogKHN5bWJvbC5hZGRJbmZvIGFzIGFueSkudGl0bGUsXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB7IHRleHQ6IChzeW1ib2wuYWRkSW5mbyBhcyBhbnkpLnRpdGxlLCBvdmVyZmxvdzogJ1dyYXAnLCB3cmFwOiAnV3JhcFdpdGhPdmVyZmxvdycgfVxyXG4gICAgfTtcclxuICB9XHJcbiAgcHVibGljIGdldFN5bWJvbERlZmF1bHRzKHN5bWJvbDogTm9kZU1vZGVsKTogdm9pZCB7XHJcbiAgICBzeW1ib2wud2lkdGggPSBzeW1ib2wuaGVpZ2h0ID0gNDA7XHJcbiAgICBzeW1ib2wuY29uc3RyYWludHMgPSBOb2RlQ29uc3RyYWludHMuRGVmYXVsdCB8IE5vZGVDb25zdHJhaW50cy5Bc3BlY3RSYXRpbztcclxuICB9XHJcbiAgcGFuKCkge1xyXG4gICAgdGhpcy5kaWFncmFtLmNvbnN0cmFpbnRzID0gdGhpcy5kaWFncmFtLmNvbnN0cmFpbnRzIHwgRGlhZ3JhbUNvbnN0cmFpbnRzLlBhbjtcclxuICAgIHRoaXMuZGlhZ3JhbS50b29sID0gRGlhZ3JhbVRvb2xzLlpvb21QYW47XHJcbiAgfVxyXG4gIGN1cnNvcigpIHtcclxuICAgIHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyA9IHRoaXMuZGlhZ3JhbS5jb25zdHJhaW50cyAmIH5EaWFncmFtQ29uc3RyYWludHMuUGFuO1xyXG4gICAgdGhpcy5kaWFncmFtLnRvb2wgPSBEaWFncmFtVG9vbHMuRGVmYXVsdDtcclxuICB9XHJcbiAgc2VsZWN0aW9uQ2hhbmdlKGV2dDogSVNlbGVjdGlvbkNoYW5nZUV2ZW50QXJncykge1xyXG4gICAgY29uc3QgeyBub2RlcywgY29ubmVjdG9ycyB9ID0gdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXM7XHJcbiAgICBpZiAoY29ubmVjdG9ycy5sZW5ndGggfHwgbm9kZXMubGVuZ3RoKSB7XHJcbiAgICAgIGlmIChub2Rlcy5sZW5ndGggPT09IDEgJiYgbm9kZXNbMF0uYWRkSW5mbykge1xyXG4gICAgICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbnN0cmFpbnRzID0gU2VsZWN0b3JDb25zdHJhaW50cy5BbGwgfCBTZWxlY3RvckNvbnN0cmFpbnRzLlVzZXJIYW5kbGU7XHJcbiAgICAgICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMudXNlckhhbmRsZXMgPSB0aGlzLl91c2VySGFuZGxlcztcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbnN0cmFpbnRzID0gU2VsZWN0b3JDb25zdHJhaW50cy5BbGwgXiBTZWxlY3RvckNvbnN0cmFpbnRzLlVzZXJIYW5kbGU7XHJcblxyXG4gICAgICBpZiAoY29ubmVjdG9ycy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBjb25uZWN0b3IgPSBjb25uZWN0b3JzWzBdO1xyXG4gICAgICAgIGNvbm5lY3RvcnMuZm9yRWFjaChjID0+IHsgaWYgKCFjLmFkZEluZm8pIGMuYWRkSW5mbyA9IHt9IH0pO1xyXG4gICAgICAgIGNvbnN0IHR5cGUgPSBjb25uZWN0b3IudHlwZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RvclR5cGUgPSBjb25uZWN0b3JzLmxlbmd0aCA9PT0gMSB8fCBjb25uZWN0b3JzLmV2ZXJ5KGMgPT4gYy50eXBlID09PSB0eXBlKSA/IHR5cGUgOiBudWxsO1xyXG4gICAgICAgIGlmIChjb25uZWN0b3IuYW5ub3RhdGlvbnMubGVuZ3RoKVxyXG4gICAgICAgICAgdGhpcy5mb250U2l6ZSA9IGNvbm5lY3Rvci5hbm5vdGF0aW9uc1swXS5zdHlsZS5mb250U2l6ZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RvclR5cGUgPSBjb25uZWN0b3JzLmxlbmd0aCA9PT0gMSB8fCBjb25uZWN0b3JzLmV2ZXJ5KGMgPT4gYy50eXBlID09PSB0eXBlKSA/IHR5cGUgOiBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChub2Rlcy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbMF0sXHJcbiAgICAgICAgICBhZGRJbmZvID0gbm9kZS5hZGRJbmZvIGFzIGFueTtcclxuICAgICAgICBpZiAoYWRkSW5mbyAmJiBhZGRJbmZvLm5vZGVUeXBlKSB7XHJcbiAgICAgICAgICBpZiAobm9kZS5hbm5vdGF0aW9ucy5sZW5ndGgpXHJcbiAgICAgICAgICAgIHRoaXMuZm9udFNpemUgPSBub2RlLmFubm90YXRpb25zWzBdLnN0eWxlLmZvbnRTaXplO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoV29ya2Zsb3dOb2RlQ29tcG9uZW50LCB7XHJcbiAgICAgICAgc3RhdGU6IHtcclxuICAgICAgICAgIG5vZGVzLCBjb25uZWN0b3JzXHJcbiAgICAgICAgfSxcclxuICAgICAgICBwb2xpY3k6IE9wZW5Qb2xpY3kuVGFiLFxyXG4gICAgICAgIGV4cGFuZGFibGU6IGZhbHNlLFxyXG4gICAgICAgIGdyb3VwOiAnJ1xyXG4gICAgICB9KS50aGVuKHAgPT4ge1xyXG4gICAgICAgIChwLmluc3RhbmNlIGFzIFdvcmtmbG93Tm9kZUNvbXBvbmVudCkuY2hhbmdlLlxyXG4gICAgICAgICAgcGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2VcclxuICAgICAgdGhpcy5fcm91dGVyLmNvbGxhcHNlKCk7XHJcbiAgfVxyXG4gIGFsaWduKHZhbHVlOiBBbGlnbm1lbnRPcHRpb25zKSB7XHJcbiAgICBmdW5jdGlvbiBhbGlnbihuOiBOb2RlTW9kZWwgfCBDb25uZWN0b3JNb2RlbCkge1xyXG4gICAgICBuLmFubm90YXRpb25zLmxlbmd0aCAmJiBPYmplY3QuYXNzaWduKG4uYW5ub3RhdGlvbnNbMF0sIHtcclxuICAgICAgICBvZmZzZXQ6IHtcclxuICAgICAgICAgIHg6IHZhbHVlID09PSAnUmlnaHQnID8gMSA6IHZhbHVlID09PSAnTGVmdCcgPyAwIDogLjUsXHJcbiAgICAgICAgICB5OiB2YWx1ZSA9PT0gJ1RvcCcgPyAwIDogdmFsdWUgPT09ICdCb3R0b20nID8gMSA6IC41XHJcbiAgICAgICAgfSxcclxuICAgICAgICB2ZXJ0aWNhbEFsaWdubWVudDogdmFsdWUgPT09ICdUb3AnID8gJ0JvdHRvbScgOiB2YWx1ZSA9PT0gJ0JvdHRvbScgPyAnVG9wJyA6ICdDZW50ZXInLFxyXG4gICAgICAgIGhvcml6b250YWxBbGlnbm1lbnQ6IHZhbHVlID09PSAnUmlnaHQnID8gJ0xlZnQnIDogdmFsdWUgPT09ICdMZWZ0JyA/ICdSaWdodCcgOiAnQ2VudGVyJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLm5vZGVzLmZvckVhY2goYWxpZ24pO1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMuY29ubmVjdG9ycy5mb3JFYWNoKGFsaWduKTtcclxuICAgIHRoaXMuYWxpZ25tZW50ID0gdmFsdWU7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgcHVibGljIGRyYWdFbnRlcihhcmdzOiBJRHJhZ0VudGVyRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBjb25zdCBvYmo6IE5vZGVNb2RlbCA9IGFyZ3MuZWxlbWVudCBhcyBOb2RlTW9kZWw7XHJcbiAgICBpZiAob2JqIGluc3RhbmNlb2YgTm9kZSkge1xyXG4gICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IG9iajtcclxuICAgICAgb2JqLndpZHRoID0gMTAwO1xyXG4gICAgICBvYmouaGVpZ2h0ICo9IDEwMCAvIHdpZHRoO1xyXG4gICAgICBvYmoub2Zmc2V0WCArPSAob2JqLndpZHRoIC0gd2lkdGgpIC8gMjtcclxuICAgICAgb2JqLm9mZnNldFkgKz0gKG9iai5oZWlnaHQgLSBoZWlnaHQpIC8gMjtcclxuICAgICAgb2JqLnN0eWxlID0geyBmaWxsOiAnd2hpdGUnLCBzdHJva2VDb2xvcjogJ2JsYWNrJyB9O1xyXG4gICAgfVxyXG4gIH1cclxuICBwcm9wZXJ0eUNoYW5nZShlKSB7XHJcbiAgICBpZiAoZS5jYXVzZSAhPT0gMikgdGhpcy5kaXJ0eSA9IHRydWU7XHJcbiAgfVxyXG4gIGNoYW5nZSgpIHtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBhZGRUZXh0KCkge1xyXG4gICAgdGhpcy5kaWFncmFtLmRyYXdpbmdPYmplY3QgPSB7XHJcbiAgICAgIHNoYXBlOiB7XHJcbiAgICAgICAgdHlwZTogJ1RleHQnLFxyXG4gICAgICB9LFxyXG4gICAgICBjb25zdHJhaW50czogTm9kZUNvbnN0cmFpbnRzLkRlZmF1bHQgJiB+Tm9kZUNvbnN0cmFpbnRzLkluQ29ubmVjdCAmIH5Ob2RlQ29uc3RyYWludHMuT3V0Q29ubmVjdFxyXG4gICAgfSBhcyBOb2RlTW9kZWw7XHJcbiAgICB0aGlzLmRpYWdyYW0udG9vbCA9IERpYWdyYW1Ub29scy5EcmF3T25jZTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQ3RybC1zIHNhdmVcclxuICAgKiBAcGFyYW0gZXZlbnRcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5kaXJ0eSAmJiBldmVudC5jdHJsS2V5ICYmIChldmVudC53aGljaCA9PT0gODMgfHwgZXZlbnQud2hpY2ggPT09IDExNSkpIHtcclxuICAgICAgdGhpcy5zYXZlKCk7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGJnQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5zdHlsZS5maWxsID0gdmFsKTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBjb2xvckNoYW5nZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMuZm9yRWFjaChuID0+IG4uYW5ub3RhdGlvbnMuZm9yRWFjaChhID0+IGEuc3R5bGUuY29sb3IgPSB2YWwpKTtcclxuICAgIHRoaXMuZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zLmNvbm5lY3RvcnMuZm9yRWFjaChjID0+IGMuYW5ub3RhdGlvbnMuZm9yRWFjaChhID0+IGEuc3R5bGUuY29sb3IgPSB2YWwpKTtcclxuICAgIHRoaXMuZGlydHkgPSB0cnVlO1xyXG4gIH1cclxuICBjb25uZWN0b3JUeXBlQ2hhbmdlKHR5cGU6IFNlZ21lbnRzKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25uZWN0b3JzLmZvckVhY2goYyA9PiBjLnR5cGUgPSB0eXBlKTtcclxuICAgIHRoaXMuY29ubmVjdG9yVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2l6ZUNoYW5nZSh2YWw6IHN0cmluZykge1xyXG4gICAgdGhpcy5kaWFncmFtLnNlbGVjdGVkSXRlbXMubm9kZXMuZm9yRWFjaChuID0+IG4uYW5ub3RhdGlvbnMuZm9yRWFjaChhID0+IGEuc3R5bGUuZm9udFNpemUgPSBwYXJzZUludCh2YWwpKSk7XHJcbiAgICB0aGlzLmRpYWdyYW0uZGF0YUJpbmQoKTtcclxuICB9XHJcbiAgc3Ryb2tlQ2hhbmdlKHZhbDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5jb25uZWN0b3JzLmZvckVhY2goYyA9PiB7XHJcbiAgICAgIGMuc3R5bGUuc3Ryb2tlQ29sb3IgPSB2YWw7XHJcbiAgICAgIGlmIChjLmFubm90YXRpb25zKSBjLmFubm90YXRpb25zWzBdLnN0eWxlLmNvbG9yID0gdmFsO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRpYWdyYW0uc2VsZWN0ZWRJdGVtcy5ub2Rlcy5mb3JFYWNoKG4gPT4gbi5zdHlsZS5zdHJva2VDb2xvciA9IHZhbCk7XHJcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcclxuICB9XHJcbiAgc2F2ZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgdGhpcy5kaWFncmFtLnNlcmlhbGl6YXRpb25TZXR0aW5ncyA9IHtwcmV2ZW50RGVmYXVsdHM6IHRydWV9O1xyXG4gICAgY29uc3Qgb2JqID0gSlNPTi5wYXJzZSh0aGlzLmRpYWdyYW0uc2F2ZURpYWdyYW0oKSk7XHJcbiAgICB0aGlzLl9mb3JtLndvcmtmbG93LmNvbm5lY3RvcnMgPSBvYmouY29ubmVjdG9ycztcclxuICAgIHRoaXMuX2Zvcm0ud29ya2Zsb3cubm9kZXMgPSBvYmoubm9kZXMuZmlsdGVyKG4gPT4gbi5pZCAhPT0gJ3ZlcnNpb24nKS5tYXAoKG46IE5vZGVNb2RlbCkgPT4ge1xyXG4gICAgICBuLm9mZnNldFggPSBNYXRoLnJvdW5kKG4ub2Zmc2V0WCk7XHJcbiAgICAgIG4ub2Zmc2V0WSA9IE1hdGgucm91bmQobi5vZmZzZXRZKTtcclxuICAgICAgcmV0dXJuIG47XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2F2aW5nID0gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLl9zZXJ2aWNlLnNhdmUodGhpcy5fZm9ybSkudG9Qcm9taXNlKCkudGhlbih2ID0+IHtcclxuICAgICAgdGhpcy5wcy50b2FzdCgnQ2hhbmdlc1NhdmVkJyk7XHJcbiAgICAgIGlmICh0aGlzLl9mb3JtLndvcmtmbG93LnZlcnNpb24gPCB2KSB7XHJcbiAgICAgICAgdGhpcy5wcy50b2FzdCgnRGlhZ3JhbVZlcnNpb24nLCB2KTtcclxuICAgICAgICBjb25zdCBub2RlID0gdGhpcy5kaWFncmFtLmdldE5vZGVPYmplY3QoJ3ZlcnNpb24nKTtcclxuICAgICAgICAobm9kZS5zaGFwZSBhcyBUZXh0TW9kZWwpLmNvbnRlbnQgPSB0aGlzLl90cmFuc2xhdGUuZ2V0KCdEaWFncmFtVmVyc2lvbicsIHYpO1xyXG4gICAgICAgIHRoaXMuZGlhZ3JhbS5kYXRhQmluZCgpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX2Zvcm0ud29ya2Zsb3cudmVyc2lvbiA9IHY7XHJcbiAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zYXZpbmcgPSBmYWxzZTtcclxuICAgIH0sICgpID0+IHtcclxuICAgICAgdGhpcy5wcy5lcnJvcigpO1xyXG4gICAgICB0aGlzLnNhdmluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zeW1ib2xQYWxldHRlPy5kZXN0cm95KCk7XHJcbiAgICB0aGlzLmRpYWdyYW0/LmRlc3Ryb3koKTtcclxuICAgIHRoaXMuX2Rlc3Ryb3kubmV4dCgpO1xyXG4gICAgdGhpcy5fZGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8bWF0LXRvb2xiYXI+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvb2xzID0gIXRvb2xzXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0NvbGxhcHNlJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj52aWV3X3NpZGViYXI8L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiAoY2xpY2spPVwic2F2ZSgpXCIgY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFkaXJ0eSB8fCBzYXZpbmdcIj57eydTYXZlQ2hhbmdlcycgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJkaWFncmFtLmZpdFRvUGFnZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0ZpdFRvUGFnZScgfCB0cmFuc2xhdGVcIj48bWF0LWljb24+ZnVsbHNjcmVlbl9leGl0PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbS51bmRvKClcIiBbYml6ZG9jVG9vbHRpcF09XCInVW5kbycgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIWRpYWdyYW0uaGlzdG9yeU1hbmFnZXI/LmNhblVuZG9cIj48bWF0LWljb24+dW5kbzwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cImRpYWdyYW0ucmVkbygpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlZG8nIHwgdHJhbnNsYXRlXCIgW2Rpc2FibGVkXT1cIiFkaWFncmFtLmhpc3RvcnlNYW5hZ2VyPy5jYW5SZWRvXCI+PG1hdC1pY29uPnJlZG88L21hdC1pY29uPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwidG9vbHMtZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbS5jb3B5KClcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29weScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiZGlhZ3JhbS5zZWxlY3RlZEl0ZW1zPy5jb25uZWN0b3JzLmxlbmd0aCA9PT0gMCAmJiBkaWFncmFtLnNlbGVjdGVkSXRlbXM/Lm5vZGVzLmxlbmd0aCA9PT0gMFwiPjxtYXQtaWNvbj5jb3B5PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiZGlhZ3JhbS5wYXN0ZSgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1Bhc3RlJyB8IHRyYW5zbGF0ZVwiPjxtYXQtaWNvbj5wYXN0ZTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgPHNwYW4gY2xhc3M9XCJ0b29scy1kaXZpZGVyXCI+PC9zcGFuPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJwYW4oKVwiIFtiaXpkb2NUb29sdGlwXT1cIidQYW4nIHwgdHJhbnNsYXRlXCI+PHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tcGFuXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJjdXJzb3IoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidDdXJzb3InIHwgdHJhbnNsYXRlXCI+PHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tY3Vyc29yXCI+PC9zcGFuPjwvYnV0dG9uPlxyXG4gIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwiYWRkVGV4dCgpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ1RleHQnIHwgdHJhbnNsYXRlXCI+PG1hdC1pY29uPnRpdGxlPC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8YnV0dG9uIG1hdC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxpbmVNZW51XCIgW2Rpc2FibGVkXT1cImRpYWdyYW0uc2VsZWN0ZWRJdGVtcz8uY29ubmVjdG9ycy5sZW5ndGggPT09IDBcIiBbYml6ZG9jVG9vbHRpcF09XCInQ29ubmVjdG9yTW9kZSd8dHJhbnNsYXRlXCI+XHJcbiAgICA8c3BhbiBjbGFzcz1cImUtbWVudS1pY29uXCIgW25nQ2xhc3NdPVwieydzZi1pY29uLXN0cmFpZ2h0LWxpbmUnOiBjb25uZWN0b3JUeXBlID09PSAnU3RyYWlnaHQnLFxyXG4gICAgICAgICAgJ3NmLWljb24tb3J0aG9nb25hbC1saW5lJzogY29ubmVjdG9yVHlwZSA9PT0gJ09ydGhvZ29uYWwnLFxyXG4gICAgICAgICAgJ3NmLWljb24tYmVpemVyLWxpbmUnOiBjb25uZWN0b3JUeXBlID09PSAnQmV6aWVyJ31cIj48L3NwYW4+XHJcbiAgICA8bWF0LWljb24+YXJyb3dfZHJvcF9kb3duPC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuICA8bWF0LW1lbnUgI2xpbmVNZW51IHBhbmVsQ2xhc3M9XCJpY29uLW1lbnUtcGFuZWxcIj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiY29ubmVjdG9yVHlwZUNoYW5nZSgnU3RyYWlnaHQnKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtbWVudS1pY29uIHNmLWljb24tc3RyYWlnaHQtbGluZVwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjb25uZWN0b3JUeXBlQ2hhbmdlKCdPcnRob2dvbmFsJylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLW1lbnUtaWNvbiBzZi1pY29uLW9ydGhvZ29uYWwtbGluZVwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJjb25uZWN0b3JUeXBlQ2hhbmdlKCdCZXppZXInKVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImUtbWVudS1pY29uIHNmLWljb24tYmVpemVyLWxpbmVcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L21hdC1tZW51PlxyXG4gICZuYnNwO1xyXG4gIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwiYWxpZ25NZW51XCIgW2Rpc2FibGVkXT1cImRpYWdyYW0uc2VsZWN0ZWRJdGVtcz8ubm9kZXMubGVuZ3RoID09PSAwICYmIGRpYWdyYW0uc2VsZWN0ZWRJdGVtcz8uY29ubmVjdG9ycy5sZW5ndGggPT09IDBcIiBbYml6ZG9jVG9vbHRpcF09XCInQWxpZ24nfHRyYW5zbGF0ZVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJlLWljb25zXCIgW25nQ2xhc3NdPVwieydzZi1pY29uLXRvcCc6IGFsaWdubWVudCA9PT0gJ1RvcCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1sZWZ0JzogYWxpZ25tZW50ID09PSAnTGVmdCcsXHJcbiAgICAgICAgICAnc2YtaWNvbi1jZW50ZXInOiBhbGlnbm1lbnQgPT09ICdDZW50ZXInLFxyXG4gICAgICAgICAgJ3NmLWljb24tYm90dG9tJzogYWxpZ25tZW50ID09PSAnQm90dG9tJyxcclxuICAgICAgICAgICdzZi1pY29uLXJpZ2h0JzogYWxpZ25tZW50ID09PSAnUmlnaHQnfVwiPjwvc3Bhbj5cclxuICAgIDxtYXQtaWNvbj5hcnJvd19kcm9wX2Rvd248L21hdC1pY29uPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxtYXQtbWVudSAjYWxpZ25NZW51IHBhbmVsQ2xhc3M9XCJpY29uLW1lbnUtcGFuZWxcIj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ1RvcCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLXRvcFwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignTGVmdCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLWxlZnRcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwiYWxpZ24oJ0NlbnRlcicpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLWNlbnRlclwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhbGlnbignQm90dG9tJylcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJlLWljb25zIHNmLWljb24tYm90dG9tXCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFsaWduKCdSaWdodCcpXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwiZS1pY29ucyBzZi1pY29uLXJpZ2h0XCI+PC9zcGFuPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9tYXQtbWVudT5cclxuPC9tYXQtdG9vbGJhcj5cclxuPGRpdiBjbGFzcz1cInJvdyBjb250YWluZXJcIj5cclxuICA8ZGl2IGlkPVwic3ltYm9scGFsZXR0ZVwiIFtzdHlsZS5kaXNwbGF5XT1cInRvb2xzPycnOidub25lJ1wiPlxyXG4gICAgPGRpdiBkaXI9XCJsdHJcIiAjc3ltYm9sUGFsZXR0ZUVsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAjZGlhZ3JhbUVsIGlkPVwiZGlhZ3JhbVwiIGZ4RmxleCBkaXI9XCJsdHJcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==