@bizdoc/core 1.17.14 → 1.17.15

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 (386) hide show
  1. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  2. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  3. package/esm2020/lib/admin/architecture/cube-axes-filter.component.mjs +3 -3
  4. package/esm2020/lib/admin/architecture/designer-element.component.mjs +15 -15
  5. package/esm2020/lib/admin/architecture/designer-privileges.component.mjs +3 -3
  6. package/esm2020/lib/admin/architecture/designer.base.mjs +9 -9
  7. package/esm2020/lib/admin/architecture/designer.component.mjs +3 -3
  8. package/esm2020/lib/admin/architecture/elements/action.component.mjs +3 -3
  9. package/esm2020/lib/admin/architecture/elements/analysis-view.component.mjs +3 -3
  10. package/esm2020/lib/admin/architecture/elements/analysis-widget.component.mjs +3 -3
  11. package/esm2020/lib/admin/architecture/elements/anomaly-rule.component.mjs +3 -3
  12. package/esm2020/lib/admin/architecture/elements/attribute.component.mjs +3 -3
  13. package/esm2020/lib/admin/architecture/elements/box-form.component.mjs +3 -3
  14. package/esm2020/lib/admin/architecture/elements/configuration-datasource.component.mjs +3 -3
  15. package/esm2020/lib/admin/architecture/elements/control.component.mjs +3 -3
  16. package/esm2020/lib/admin/architecture/elements/cube-index-utility.component.mjs +3 -3
  17. package/esm2020/lib/admin/architecture/elements/cube-view.component.mjs +3 -3
  18. package/esm2020/lib/admin/architecture/elements/cube.component.mjs +3 -3
  19. package/esm2020/lib/admin/architecture/elements/document-state-widget.component.mjs +3 -3
  20. package/esm2020/lib/admin/architecture/elements/documents-report.component.mjs +3 -3
  21. package/esm2020/lib/admin/architecture/elements/documents-widget.component.mjs +3 -3
  22. package/esm2020/lib/admin/architecture/elements/explore-view.component.mjs +3 -3
  23. package/esm2020/lib/admin/architecture/elements/folder.component.mjs +3 -3
  24. package/esm2020/lib/admin/architecture/elements/form-invite.dialog.mjs +3 -3
  25. package/esm2020/lib/admin/architecture/elements/form.component.mjs +3 -3
  26. package/esm2020/lib/admin/architecture/elements/guide.component.mjs +3 -3
  27. package/esm2020/lib/admin/architecture/elements/matrix-view.component.mjs +3 -3
  28. package/esm2020/lib/admin/architecture/elements/node.component.mjs +3 -3
  29. package/esm2020/lib/admin/architecture/elements/parallel-view.component.mjs +3 -3
  30. package/esm2020/lib/admin/architecture/elements/performance-report.component.mjs +3 -3
  31. package/esm2020/lib/admin/architecture/elements/performance-widget.component.mjs +3 -3
  32. package/esm2020/lib/admin/architecture/elements/pivot-view.component.mjs +3 -3
  33. package/esm2020/lib/admin/architecture/elements/policy.component.mjs +3 -3
  34. package/esm2020/lib/admin/architecture/elements/report.component.mjs +3 -3
  35. package/esm2020/lib/admin/architecture/elements/return-to-role-action.component.mjs +3 -3
  36. package/esm2020/lib/admin/architecture/elements/role.component.mjs +3 -3
  37. package/esm2020/lib/admin/architecture/elements/rule.component.mjs +3 -3
  38. package/esm2020/lib/admin/architecture/elements/state.component.mjs +3 -3
  39. package/esm2020/lib/admin/architecture/elements/sum-view.component.mjs +3 -3
  40. package/esm2020/lib/admin/architecture/elements/tasks-report.component.mjs +3 -3
  41. package/esm2020/lib/admin/architecture/elements/type.component.mjs +3 -3
  42. package/esm2020/lib/admin/architecture/elements/usage-report.component.mjs +3 -3
  43. package/esm2020/lib/admin/architecture/elements/utility.component.mjs +3 -3
  44. package/esm2020/lib/admin/architecture/elements/view.component.mjs +3 -3
  45. package/esm2020/lib/admin/architecture/elements/widget.component.mjs +3 -3
  46. package/esm2020/lib/admin/architecture/icon-picker.component.mjs +3 -3
  47. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  48. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  49. package/esm2020/lib/admin/core/localized-string.component.mjs +3 -3
  50. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  51. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +3 -3
  52. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +3 -3
  53. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  54. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +3 -3
  55. package/esm2020/lib/admin/form/designer/box-designer.component.mjs +6 -6
  56. package/esm2020/lib/admin/form/designer/properties.component.mjs +3 -3
  57. package/esm2020/lib/admin/form/designer/section.component.mjs +3 -3
  58. package/esm2020/lib/admin/form/designer/settings.component.mjs +3 -3
  59. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  60. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  61. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  62. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +3 -3
  63. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  64. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  65. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  66. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  67. package/esm2020/lib/admin/positions/positions.component.mjs +3 -3
  68. package/esm2020/lib/admin/profiler/outofoffice.component.mjs +3 -3
  69. package/esm2020/lib/admin/profiler/profiler.component.mjs +3 -3
  70. package/esm2020/lib/admin/system.service.mjs +3 -3
  71. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  72. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  73. package/esm2020/lib/app.component.mjs +6 -6
  74. package/esm2020/lib/bizdoc.module.mjs +4 -4
  75. package/esm2020/lib/browse/browse-items.component.mjs +3 -3
  76. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  77. package/esm2020/lib/browse/browse.pane.component.mjs +3 -3
  78. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +3 -3
  79. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  80. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  81. package/esm2020/lib/chat/chat-info.mjs +3 -3
  82. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  83. package/esm2020/lib/chat/chat.service.mjs +3 -3
  84. package/esm2020/lib/chat/contacts.component.mjs +6 -6
  85. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  86. package/esm2020/lib/chat/conversation.component.mjs +3 -3
  87. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  88. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  89. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  90. package/esm2020/lib/compose/action/action.pane.dialog.exp.mjs +3 -3
  91. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  92. package/esm2020/lib/compose/action/moveto-action.component.mjs +3 -3
  93. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  94. package/esm2020/lib/compose/attachments/attachments.component.mjs +3 -3
  95. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  96. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  97. package/esm2020/lib/compose/box/box.component.mjs +3 -3
  98. package/esm2020/lib/compose/box/control.component.mjs +3 -3
  99. package/esm2020/lib/compose/box/row.component.mjs +3 -3
  100. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  101. package/esm2020/lib/compose/comments/comment.component.mjs +3 -3
  102. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  103. package/esm2020/lib/compose/comments/comments.pane.component.mjs +3 -3
  104. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  105. package/esm2020/lib/compose/comments/edits.component.mjs +3 -3
  106. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  107. package/esm2020/lib/compose/comments/votes.component.mjs +3 -3
  108. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  109. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  110. package/esm2020/lib/compose/compose.pane.component.mjs +3 -3
  111. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  112. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  113. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  114. package/esm2020/lib/compose/document.component.mjs +3 -3
  115. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  116. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  117. package/esm2020/lib/compose/events/events.component.mjs +3 -3
  118. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  119. package/esm2020/lib/compose/form.component.mjs +3 -3
  120. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  121. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  122. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  123. package/esm2020/lib/compose/state.component.mjs +3 -3
  124. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  125. package/esm2020/lib/compose/trace/flow.component.mjs +3 -3
  126. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  127. package/esm2020/lib/compose/trace/trace.base.mjs +3 -3
  128. package/esm2020/lib/compose/trace/trace.component.mjs +3 -3
  129. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  130. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  131. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  132. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +3 -3
  133. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  134. package/esm2020/lib/core/account.service.mjs +3 -3
  135. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  136. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  137. package/esm2020/lib/core/checkbox.mjs +3 -3
  138. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  139. package/esm2020/lib/core/datasource.service.mjs +3 -3
  140. package/esm2020/lib/core/fields/address.designer.mjs +3 -3
  141. package/esm2020/lib/core/fields/address.field.mjs +3 -3
  142. package/esm2020/lib/core/fields/autocomplete.field.mjs +6 -6
  143. package/esm2020/lib/core/fields/checkbox.designer.mjs +3 -3
  144. package/esm2020/lib/core/fields/checkbox.field.mjs +3 -3
  145. package/esm2020/lib/core/fields/checklist.designer.mjs +3 -3
  146. package/esm2020/lib/core/fields/checklist.field.mjs +3 -3
  147. package/esm2020/lib/core/fields/date-range.designer.mjs +3 -3
  148. package/esm2020/lib/core/fields/date-range.field.mjs +3 -3
  149. package/esm2020/lib/core/fields/date.designer.mjs +3 -3
  150. package/esm2020/lib/core/fields/date.field.mjs +3 -3
  151. package/esm2020/lib/core/fields/expression.field.mjs +6 -6
  152. package/esm2020/lib/core/fields/file.designer.mjs +3 -3
  153. package/esm2020/lib/core/fields/file.field.mjs +3 -3
  154. package/esm2020/lib/core/fields/html.designer.mjs +3 -3
  155. package/esm2020/lib/core/fields/html.field.mjs +3 -3
  156. package/esm2020/lib/core/fields/input.designer.mjs +3 -3
  157. package/esm2020/lib/core/fields/input.field.mjs +3 -3
  158. package/esm2020/lib/core/fields/localized-string.field.mjs +6 -6
  159. package/esm2020/lib/core/fields/numeric.designer.mjs +3 -3
  160. package/esm2020/lib/core/fields/numeric.field.mjs +3 -3
  161. package/esm2020/lib/core/fields/options.base.mjs +6 -6
  162. package/esm2020/lib/core/fields/options.component.mjs +3 -3
  163. package/esm2020/lib/core/fields/radio-button.designer.mjs +3 -3
  164. package/esm2020/lib/core/fields/radio-button.field.mjs +3 -3
  165. package/esm2020/lib/core/fields/select.designer.mjs +3 -3
  166. package/esm2020/lib/core/fields/select.field.mjs +3 -3
  167. package/esm2020/lib/core/fields/signature.designer.mjs +3 -3
  168. package/esm2020/lib/core/fields/signature.field.mjs +3 -3
  169. package/esm2020/lib/core/fields/switch.field.mjs +3 -3
  170. package/esm2020/lib/core/fields/textarea.designer.mjs +3 -3
  171. package/esm2020/lib/core/fields/textarea.field.mjs +3 -3
  172. package/esm2020/lib/core/fields/time.designer.mjs +3 -3
  173. package/esm2020/lib/core/fields/time.field.mjs +3 -3
  174. package/esm2020/lib/core/fields/timespan.field.mjs +6 -6
  175. package/esm2020/lib/core/fields/yesno.designer.mjs +3 -3
  176. package/esm2020/lib/core/fields/yesno.field.mjs +3 -3
  177. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  178. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  179. package/esm2020/lib/core/guide/help-tip.component.mjs +3 -3
  180. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  181. package/esm2020/lib/core/hub.service.mjs +3 -3
  182. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  183. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  184. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  185. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  186. package/esm2020/lib/core/info/map-info.mjs +3 -3
  187. package/esm2020/lib/core/inputs/address.input.mjs +3 -3
  188. package/esm2020/lib/core/inputs/auto-complete.input.mjs +3 -3
  189. package/esm2020/lib/core/inputs/combination-picker-body.mjs +3 -3
  190. package/esm2020/lib/core/inputs/combination-picker.mjs +3 -3
  191. package/esm2020/lib/core/inputs/combination-pool.mjs +3 -3
  192. package/esm2020/lib/core/inputs/file.input.mjs +3 -3
  193. package/esm2020/lib/core/inputs/select.input.mjs +3 -3
  194. package/esm2020/lib/core/inputs/signature.input.mjs +3 -3
  195. package/esm2020/lib/core/inputs/time-picker.mjs +3 -3
  196. package/esm2020/lib/core/inputs/timespan.input.mjs +3 -3
  197. package/esm2020/lib/core/layout.component.mjs +3 -3
  198. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  199. package/esm2020/lib/core/mailbox.service.mjs +3 -3
  200. package/esm2020/lib/core/none.component.mjs +3 -3
  201. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  202. package/esm2020/lib/core/pipes/calendar.pipe.mjs +3 -3
  203. package/esm2020/lib/core/pipes/date-format.pipe.mjs +3 -3
  204. package/esm2020/lib/core/pipes/daterange.pipe.mjs +6 -6
  205. package/esm2020/lib/core/pipes/difference.pipe.mjs +3 -3
  206. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +3 -3
  207. package/esm2020/lib/core/pipes/duration.pipe.mjs +3 -3
  208. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  209. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  210. package/esm2020/lib/core/pipes/localized-string.pipe.mjs +3 -3
  211. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  212. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  213. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  214. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  215. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +6 -6
  216. package/esm2020/lib/core/pipes/translate.pipe.mjs +9 -9
  217. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  218. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  219. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  220. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  221. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  222. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  223. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  224. package/esm2020/lib/core/prompt.service.mjs +3 -3
  225. package/esm2020/lib/core/router.mjs +6 -6
  226. package/esm2020/lib/core/save-changes.dialog.mjs +3 -3
  227. package/esm2020/lib/core/session.service.mjs +3 -3
  228. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  229. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  230. package/esm2020/lib/core/slots/slots.component.mjs +3 -3
  231. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  232. package/esm2020/lib/core/tagging/edit-input.component.mjs +3 -3
  233. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  234. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  235. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  236. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  237. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  238. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  239. package/esm2020/lib/core/translate.service.mjs +3 -3
  240. package/esm2020/lib/core/window-title.service.mjs +3 -3
  241. package/esm2020/lib/cube/accum/accum.component.mjs +5 -4
  242. package/esm2020/lib/cube/chart/chart.component.mjs +5 -5
  243. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  244. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  245. package/esm2020/lib/cube/cube-view.component.mjs +3 -3
  246. package/esm2020/lib/cube/cube.service.mjs +3 -3
  247. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  248. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  249. package/esm2020/lib/cube/explore/explore-items.component.mjs +8 -8
  250. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  251. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  252. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  253. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  254. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  255. package/esm2020/lib/cube/grid/grid.component.mjs +3 -3
  256. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +3 -3
  257. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  258. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  259. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  260. package/esm2020/lib/cube/matrix/popup.component.mjs +3 -3
  261. package/esm2020/lib/cube/matrix/table.component.mjs +3 -3
  262. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  263. package/esm2020/lib/cube/pivot/pivot.component.mjs +3 -3
  264. package/esm2020/lib/cube/sum/sum.component.mjs +3 -3
  265. package/esm2020/lib/cube/view-base.mjs +3 -3
  266. package/esm2020/lib/cube/view.mobile.component.mjs +9 -16
  267. package/esm2020/lib/cube/view.pane.component.mjs +3 -3
  268. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  269. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  270. package/esm2020/lib/dashboard/cube/compare.widget.mjs +3 -3
  271. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  272. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  273. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +4 -4
  274. package/esm2020/lib/dashboard/cube/document-state.widget.mjs +3 -3
  275. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  276. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  277. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  278. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  279. package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
  280. package/esm2020/lib/dashboard/score/activity.widget.mjs +3 -3
  281. package/esm2020/lib/dashboard/score/compare-groups.widget.mjs +3 -3
  282. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +3 -3
  283. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +3 -3
  284. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +3 -3
  285. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  286. package/esm2020/lib/designer.module.mjs +4 -4
  287. package/esm2020/lib/desktop.module.mjs +4 -4
  288. package/esm2020/lib/home/about/about.dialog.mjs +3 -3
  289. package/esm2020/lib/home/home-base.component.mjs +10 -21
  290. package/esm2020/lib/home/home.desktop.component.mjs +16 -6
  291. package/esm2020/lib/home/home.mobile.component.mjs +45 -31
  292. package/esm2020/lib/home/notifications/notifications.component.mjs +3 -3
  293. package/esm2020/lib/home/options/options.component.mjs +28 -21
  294. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  295. package/esm2020/lib/home/sign/sign.component.mjs +25 -15
  296. package/esm2020/lib/home/tools.component.mjs +3 -3
  297. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  298. package/esm2020/lib/mobile.module.mjs +4 -4
  299. package/esm2020/lib/modules/chart.module.mjs +4 -4
  300. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  301. package/esm2020/lib/modules/datepicker.intl.mjs +3 -3
  302. package/esm2020/lib/modules/dayjs.module.mjs +4 -4
  303. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  304. package/esm2020/lib/modules/gantt.module.mjs +4 -4
  305. package/esm2020/lib/modules/grid.module.mjs +4 -4
  306. package/esm2020/lib/modules/material.module.mjs +4 -4
  307. package/esm2020/lib/modules/paginator.intl.mjs +3 -3
  308. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  309. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  310. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  311. package/esm2020/lib/modules/stepper.intl.mjs +3 -3
  312. package/esm2020/lib/modules/texteditor.module.mjs +4 -4
  313. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  314. package/esm2020/lib/notifications/notifications-table.component.mjs +3 -3
  315. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  316. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  317. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  318. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  319. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  320. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  321. package/esm2020/lib/notifications/types/invite.notification.mjs +3 -3
  322. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  323. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  324. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  325. package/esm2020/lib/notifications/types/nudge.notification.mjs +3 -3
  326. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  327. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  328. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  329. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +3 -3
  330. package/esm2020/lib/options/options.component.mjs +3 -3
  331. package/esm2020/lib/options/options.service.mjs +3 -3
  332. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  333. package/esm2020/lib/reports/cube/documents.component.mjs +3 -3
  334. package/esm2020/lib/reports/cube/grid-documents.component.mjs +3 -3
  335. package/esm2020/lib/reports/cube/role-performance.component.mjs +3 -3
  336. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  337. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  338. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  339. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  340. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  341. package/esm2020/lib/reports/cube/usage.component.mjs +3 -3
  342. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  343. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  344. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  345. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  346. package/esm2020/lib/reports/substitution/substitution.component.mjs +3 -3
  347. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  348. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  349. package/esm2020/lib/scheduler/schedule.component.mjs +3 -3
  350. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +3 -3
  351. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +3 -3
  352. package/esm2020/lib/search/cube.component.mjs +3 -3
  353. package/esm2020/lib/search/document.component.mjs +3 -3
  354. package/esm2020/lib/search/guide.component.mjs +3 -3
  355. package/esm2020/lib/search/path.component.mjs +3 -3
  356. package/esm2020/lib/search/search.service.mjs +3 -3
  357. package/esm2020/lib/shared.module.mjs +4 -4
  358. package/esm2020/lib/system.module.mjs +4 -4
  359. package/esm2020/lib/views/cube/chart.component.mjs +3 -3
  360. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  361. package/esm2020/lib/views/cube/explore.component.mjs +3 -3
  362. package/esm2020/lib/views/cube/matrix.component.mjs +3 -3
  363. package/esm2020/lib/views/cube/parallel.component.mjs +3 -3
  364. package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
  365. package/esm2020/lib/views/cube/sum.component.mjs +3 -3
  366. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  367. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +3 -3
  368. package/esm2020/lib/views/view-item.component.mjs +3 -3
  369. package/esm2020/lib/views/views.component.mjs +3 -3
  370. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  371. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  372. package/esm2020/public-api.mjs +2 -1
  373. package/fesm2015/bizdoc-core.mjs +1888 -1860
  374. package/fesm2015/bizdoc-core.mjs.map +1 -1
  375. package/fesm2020/bizdoc-core.mjs +1876 -1854
  376. package/fesm2020/bizdoc-core.mjs.map +1 -1
  377. package/lib/cube/accum/accum.component.d.ts +1 -1
  378. package/lib/cube/view.mobile.component.d.ts +2 -3
  379. package/lib/dashboard/cube/cube-chart.widget.d.ts +1 -1
  380. package/lib/home/home-base.component.d.ts +1 -6
  381. package/lib/home/home.desktop.component.d.ts +5 -1
  382. package/lib/home/home.mobile.component.d.ts +6 -4
  383. package/lib/home/options/options.component.d.ts +4 -2
  384. package/lib/home/sign/sign.component.d.ts +5 -2
  385. package/package.json +1 -1
  386. package/public-api.d.ts +1 -0
@@ -1,21 +1,17 @@
1
1
  import { Directive } from '@angular/core';
2
2
  import { HTTP_INTERCEPTORS } from '@angular/common/http';
3
3
  import { debounceTime } from 'rxjs';
4
- import { QuickSignComponent } from './sign/sign.component';
5
- import { QuickOptionsComponent } from './options/options.component';
6
4
  import { OutOfOfficeToast } from './outofoffice/outofoffice.component';
7
5
  import { AppHttpInterceptor } from '../core/http.interceptor';
8
6
  import { playAudio } from '../core/functions';
9
7
  import * as i0 from "@angular/core";
10
- import * as i1 from "../core/popup/popup.service";
11
- import * as i2 from "../core/session.service";
12
- import * as i3 from "../core/hub.service";
13
- import * as i4 from "../core/translate.service";
14
- import * as i5 from "@angular/material/snack-bar";
8
+ import * as i1 from "../core/session.service";
9
+ import * as i2 from "../core/hub.service";
10
+ import * as i3 from "../core/translate.service";
11
+ import * as i4 from "@angular/material/snack-bar";
15
12
  export const TOAST_DURATION = 4000;
16
13
  export class HomeBase {
17
- constructor(_popup, _session, _messaging, _translate, _snackBar, _injector, config) {
18
- this._popup = _popup;
14
+ constructor(_session, _messaging, _translate, _snackBar, _injector, config) {
19
15
  this._session = _session;
20
16
  this._messaging = _messaging;
21
17
  this._translate = _translate;
@@ -68,13 +64,6 @@ export class HomeBase {
68
64
  resize() {
69
65
  window.dispatchEvent(new Event('resize'));
70
66
  }
71
- /** options */
72
- options(evt) {
73
- this._popup.open(QuickOptionsComponent, evt.srcElement, { position: 'end' });
74
- }
75
- signout(evt) {
76
- this._popup.open(QuickSignComponent, evt.srcElement, { position: 'end' });
77
- }
78
67
  mails() {
79
68
  this._session.inboxTouch();
80
69
  }
@@ -83,9 +72,9 @@ export class HomeBase {
83
72
  this._session.notificationsTouch();
84
73
  }
85
74
  }
86
- HomeBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HomeBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
87
- HomeBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.8", type: HomeBase, ngImport: i0 });
88
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HomeBase, decorators: [{
75
+ HomeBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HomeBase, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
76
+ HomeBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.9", type: HomeBase, ngImport: i0 });
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HomeBase, decorators: [{
89
78
  type: Directive
90
- }], ctorParameters: function () { return [{ type: i1.Popup }, { type: i2.SessionService }, { type: i3.HubService }, { type: i4.TranslateService }, { type: i5.MatSnackBar }, { type: i0.Injector }, { type: undefined }]; } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBT3BDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7Ozs7QUFFOUMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQztBQUduQyxNQUFNLE9BQWdCLFFBQVE7SUFNNUIsWUFDWSxNQUFhLEVBQ2IsUUFBd0IsRUFDMUIsVUFBc0IsRUFDcEIsVUFBNEIsRUFDNUIsU0FBc0IsRUFDeEIsU0FBbUIsRUFDM0IsTUFBb0I7UUFOVixXQUFNLEdBQU4sTUFBTSxDQUFPO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFHM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FB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O0lBQ0QsTUFBTTtRQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN2QyxDQUFDOztxR0EvRW1CLFFBQVE7eUZBQVIsUUFBUTsyRkFBUixRQUFRO2tCQUQ3QixTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBJbnRlcmNlcHRvciwgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEJpekRvY0NvbmZpZywgQ2hhdFNldHRpbmdzIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUHJvZmlsZSwgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gJy4uL2NvcmUvcG9wdXAvcG9wdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBRdWlja1NpZ25Db21wb25lbnQgfSBmcm9tICcuL3NpZ24vc2lnbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBRdWlja09wdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL29wdGlvbnMvb3B0aW9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPdXRPZk9mZmljZURhdGEsIE91dE9mT2ZmaWNlVG9hc3QgfSBmcm9tICcuL291dG9mb2ZmaWNlL291dG9mb2ZmaWNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcEh0dHBJbnRlcmNlcHRvciB9IGZyb20gJy4uL2NvcmUvaHR0cC5pbnRlcmNlcHRvcic7XHJcbmltcG9ydCB7IHBsYXlBdWRpbyB9IGZyb20gJy4uL2NvcmUvZnVuY3Rpb25zJztcclxuXHJcbmV4cG9ydCBjb25zdCBUT0FTVF9EVVJBVElPTiA9IDQwMDA7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEhvbWVCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjaGF0RW5hYmxlZDogYm9vbGVhbjtcclxuICBzY2hlZHVsZXJFbmFibGVkOiBib29sZWFuO1xyXG4gIHByb2ZpbGU6IFByb2ZpbGU7XHJcbiAgbG9hZGluZzogYm9vbGVhbjtcclxuICBlbmFibGVBbmFseXNpczogYm9vbGVhbjtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCBfcG9wdXA6IFBvcHVwLFxyXG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG5cclxuICAgIHRoaXMuc2NoZWR1bGVyRW5hYmxlZCA9IGNvbmZpZy5zY2hlZHVsZXIgIT09IGZhbHNlO1xyXG4gICAgdGhpcy5jaGF0RW5hYmxlZCA9IGNvbmZpZy5jaGF0aW5nICE9PSBmYWxzZSAmJlxyXG4gICAgICAoIWNvbmZpZy5jaGF0aW5nIHx8ICEoY29uZmlnLmNoYXRpbmcgYXMgQ2hhdFNldHRpbmdzKS5hcHApO1xyXG4gICAgdGhpcy5wcm9maWxlID0gX3Nlc3Npb24ucHJvZmlsZTtcclxuICAgIHRoaXMuZW5hYmxlQW5hbHlzaXMgPSBfc2Vzc2lvbi5wcm9maWxlLmN1YmVzLnNvbWUoYyA9PiBjLnZpZXdzPy5sZW5ndGgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGludGVyY2VwdG9yID0gKHRoaXMuX2luamVjdG9yLmdldChIVFRQX0lOVEVSQ0VQVE9SUykgYXMgSHR0cEludGVyY2VwdG9yW10pLmZpbmQoaSA9PiBpIGluc3RhbmNlb2YgQXBwSHR0cEludGVyY2VwdG9yKSBhcyBBcHBIdHRwSW50ZXJjZXB0b3I7XHJcbiAgICBpbnRlcmNlcHRvci5hY3RpdmUkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGUpO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLm5ldyQuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBjb25zdCB7IG1vZGVsOiB7IGZvcm1JZDogbmFtZSwgc3ViamVjdCwgbnVtYmVyLCBwZW5kaW5nfSB9ID0gbTtcclxuICAgICAgaWYgKCFwZW5kaW5nKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gbmFtZSksIG1zZyA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ05ld01haWwnLCBmb3JtLnRpdGxlLCBudW1iZXIsIHN1YmplY3QgfHwgJycpO1xyXG4gICAgICB0aGlzLl9zbmFja0Jhci5vcGVuKG1zZywgbS51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQgPyB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPcGVuTmV3JykgOiBudWxsLCB7XHJcbiAgICAgICAgZHVyYXRpb246IDUwMDAsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbixcclxuICAgICAgICBwb2xpdGVuZXNzOiAnYXNzZXJ0aXZlJ1xyXG4gICAgICB9KS5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQtLTtcclxuICAgICAgICB0aGlzLm9uTmV3TWVzc2FnZShtLm1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kICYmXHJcbiAgICAgICAgcGxheUF1ZGlvKCdub3RpZmljYXRpb25fc2ltcGxlLTAxJyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5ub3RpZnkkLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kICYmXHJcbiAgICAgIHBsYXlBdWRpbygnbm90aWZpY2F0aW9uX3NpbXBsZS0wMScpXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuX3Nlc3Npb24uaXNJbXBlcnNvbmF0aW5nKVxyXG4gICAgICB0aGlzLl9zbmFja0Jhci5vcGVuKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ltcGVyc29uYXRpbmcnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSksIG51bGwsIHtcclxuICAgICAgICBkdXJhdGlvbjogVE9BU1RfRFVSQVRJT04sXHJcbiAgICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvblxyXG4gICAgICB9KTtcclxuICAgIGVsc2UgaWYgKHRoaXMuX3Nlc3Npb24uaXNPdXRPZk9mZmljZSkge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMub3V0T2ZPZmZpY2U7XHJcbiAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KE91dE9mT2ZmaWNlVG9hc3QsIHtcclxuICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIHN1YnN0aXR1dGVJZDogb3B0aW9ucy5zdWJzdGl0dWVJZFxyXG4gICAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNpemUoKSB7XHJcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTtcclxuICB9XHJcbiAgYWJzdHJhY3Qgb25OZXdNZXNzYWdlKG1vZGVsOiBSZWNpcGllbnRNb2RlbCk7XHJcbiAgLyoqIG9wdGlvbnMgKi9cclxuICBvcHRpb25zKGV2dDogRXZlbnQpIHtcclxuICAgIHRoaXMuX3BvcHVwLm9wZW4oUXVpY2tPcHRpb25zQ29tcG9uZW50LCBldnQuc3JjRWxlbWVudCBhcyBIVE1MRWxlbWVudCwgeyBwb3NpdGlvbjogJ2VuZCcgfSk7XHJcbiAgfVxyXG4gIHNpZ25vdXQoZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihRdWlja1NpZ25Db21wb25lbnQsIGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KTtcclxuICB9XHJcbiAgbWFpbHMoKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uLmluYm94VG91Y2goKTtcclxuICB9XHJcbiAgbm90aWZzKCkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vdGlmaWNhdGlvbnMubGVuZ3RoICYmXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ubm90aWZpY2F0aW9uc1RvdWNoKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
79
+ }], ctorParameters: function () { return [{ type: i1.SessionService }, { type: i2.HubService }, { type: i3.TranslateService }, { type: i4.MatSnackBar }, { type: i0.Injector }, { type: undefined }]; } });
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS1iYXNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLWJhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBbUIsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBU3BDLE9BQU8sRUFBbUIsZ0JBQWdCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7OztBQUU5QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBR25DLE1BQU0sT0FBZ0IsUUFBUTtJQU01QixZQUNZLFFBQXdCLEVBQzFCLFVBQXNCLEVBQ3BCLFVBQTRCLEVBQzVCLFNBQXNCLEVBQ3hCLFNBQW1CLEVBQzNCLE1BQW9CO1FBTFYsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFHM0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLEtBQUssS0FBSyxDQUFDO1FBQ25ELElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU8sS0FBSyxLQUFLO1lBQ3pDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLENBQUUsTUFBTSxDQUFDLE9BQXdCLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBQ0QsUUFBUTtRQUNOLE1BQU0sV0FBVyxHQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxrQkFBa0IsQ0FBdUIsQ0FBQztRQUNsSixXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDeEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsT0FBTztnQkFBRSxPQUFPO1lBQ3JCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRTtnQkFDMUcsUUFBUSxFQUFFLElBQUk7Z0JBQ2QsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUztnQkFDbEMsVUFBVSxFQUFFLFdBQVc7YUFDeEIsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3QixDQUFDLENBQ0EsQ0FBQztZQUNGLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSztnQkFDL0MsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSztZQUNqRCxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FDcEMsQ0FBQztRQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlO1lBQy9CLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUU7Z0JBQzFGLFFBQVEsRUFBRSxjQUFjO2dCQUN4QixnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2FBQ25DLENBQUMsQ0FBQzthQUNBLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUU7WUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztZQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixFQUFFO2dCQUNqRCxnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QixTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTO2dCQUNsQyxJQUFJLEVBQUU7b0JBQ0osWUFBWSxFQUFFLE9BQU8sQ0FBQyxXQUFXO2lCQUNmO2FBQ3JCLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUNELE1BQU07UUFDSixNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxNQUFNO1FBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU07WUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7O3FHQXZFbUIsUUFBUTt5RkFBUixRQUFROzJGQUFSLFFBQVE7a0JBRDdCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEluamVjdG9yLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cEludGVyY2VwdG9yLCBIVFRQX0lOVEVSQ0VQVE9SUyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBDaGF0U2V0dGluZ3MgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBQcm9maWxlLCBSZWNpcGllbnRNb2RlbCB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Nlc3Npb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFBvcHVwIH0gZnJvbSAnLi4vY29yZS9wb3B1cC9wb3B1cC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4uL2NvcmUvdHJhbnNsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IFF1aWNrU2lnbkNvbXBvbmVudCB9IGZyb20gJy4vc2lnbi9zaWduLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFF1aWNrT3B0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9ucy9vcHRpb25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE91dE9mT2ZmaWNlRGF0YSwgT3V0T2ZPZmZpY2VUb2FzdCB9IGZyb20gJy4vb3V0b2ZvZmZpY2Uvb3V0b2ZvZmZpY2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXBwSHR0cEludGVyY2VwdG9yIH0gZnJvbSAnLi4vY29yZS9odHRwLmludGVyY2VwdG9yJztcclxuaW1wb3J0IHsgcGxheUF1ZGlvIH0gZnJvbSAnLi4vY29yZS9mdW5jdGlvbnMnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRPQVNUX0RVUkFUSU9OID0gNDAwMDtcclxuXHJcbkBEaXJlY3RpdmUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSG9tZUJhc2UgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNoYXRFbmFibGVkOiBib29sZWFuO1xyXG4gIHNjaGVkdWxlckVuYWJsZWQ6IGJvb2xlYW47XHJcbiAgcHJvZmlsZTogUHJvZmlsZTtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG4gIGVuYWJsZUFuYWx5c2lzOiBib29sZWFuO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIF9zZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIF9zbmFja0JhcjogTWF0U25hY2tCYXIsXHJcbiAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG5cclxuICAgIHRoaXMuc2NoZWR1bGVyRW5hYmxlZCA9IGNvbmZpZy5zY2hlZHVsZXIgIT09IGZhbHNlO1xyXG4gICAgdGhpcy5jaGF0RW5hYmxlZCA9IGNvbmZpZy5jaGF0aW5nICE9PSBmYWxzZSAmJlxyXG4gICAgICAoIWNvbmZpZy5jaGF0aW5nIHx8ICEoY29uZmlnLmNoYXRpbmcgYXMgQ2hhdFNldHRpbmdzKS5hcHApO1xyXG4gICAgdGhpcy5wcm9maWxlID0gX3Nlc3Npb24ucHJvZmlsZTtcclxuICAgIHRoaXMuZW5hYmxlQW5hbHlzaXMgPSBfc2Vzc2lvbi5wcm9maWxlLmN1YmVzLnNvbWUoYyA9PiBjLnZpZXdzPy5sZW5ndGgpO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnN0IGludGVyY2VwdG9yID0gKHRoaXMuX2luamVjdG9yLmdldChIVFRQX0lOVEVSQ0VQVE9SUykgYXMgSHR0cEludGVyY2VwdG9yW10pLmZpbmQoaSA9PiBpIGluc3RhbmNlb2YgQXBwSHR0cEludGVyY2VwdG9yKSBhcyBBcHBIdHRwSW50ZXJjZXB0b3I7XHJcbiAgICBpbnRlcmNlcHRvci5hY3RpdmUkLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpLnN1YnNjcmliZShlID0+XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGUpO1xyXG4gICAgdGhpcy5fbWVzc2FnaW5nLm5ldyQuc3Vic2NyaWJlKG0gPT4ge1xyXG4gICAgICBjb25zdCB7IG1vZGVsOiB7IGZvcm1JZDogbmFtZSwgc3ViamVjdCwgbnVtYmVyLCBwZW5kaW5nfSB9ID0gbTtcclxuICAgICAgaWYgKCFwZW5kaW5nKSByZXR1cm47XHJcbiAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmluZChmID0+IGYubmFtZSA9PT0gbmFtZSksIG1zZyA9IHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ05ld01haWwnLCBmb3JtLnRpdGxlLCBudW1iZXIsIHN1YmplY3QgfHwgJycpO1xyXG4gICAgICB0aGlzLl9zbmFja0Jhci5vcGVuKG1zZywgbS51c2VySWQgPT09IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS51c2VySWQgPyB0aGlzLl90cmFuc2xhdGUuZ2V0KCdPcGVuTmV3JykgOiBudWxsLCB7XHJcbiAgICAgICAgZHVyYXRpb246IDUwMDAsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvbixcclxuICAgICAgICBwb2xpdGVuZXNzOiAnYXNzZXJ0aXZlJ1xyXG4gICAgICB9KS5vbkFjdGlvbigpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLmluYm94Q291bnQtLTtcclxuICAgICAgICB0aGlzLm9uTmV3TWVzc2FnZShtLm1vZGVsKTtcclxuICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kICYmXHJcbiAgICAgICAgcGxheUF1ZGlvKCdub3RpZmljYXRpb25fc2ltcGxlLTAxJyk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuX21lc3NhZ2luZy5ub3RpZnkkLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLl9zZXNzaW9uLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zLnNvdW5kICYmXHJcbiAgICAgIHBsYXlBdWRpbygnbm90aWZpY2F0aW9uX3NpbXBsZS0wMScpXHJcbiAgICApO1xyXG4gICAgaWYgKHRoaXMuX3Nlc3Npb24uaXNJbXBlcnNvbmF0aW5nKVxyXG4gICAgICB0aGlzLl9zbmFja0Jhci5vcGVuKHRoaXMuX3RyYW5zbGF0ZS5nZXQoJ0ltcGVyc29uYXRpbmcnLCB0aGlzLl9zZXNzaW9uLnByb2ZpbGUubmFtZSksIG51bGwsIHtcclxuICAgICAgICBkdXJhdGlvbjogVE9BU1RfRFVSQVRJT04sXHJcbiAgICAgICAgdmVydGljYWxQb3NpdGlvbjogJ3RvcCcsXHJcbiAgICAgICAgZGlyZWN0aW9uOiB0aGlzLl9zZXNzaW9uLmRpcmVjdGlvblxyXG4gICAgICB9KTtcclxuICAgIGVsc2UgaWYgKHRoaXMuX3Nlc3Npb24uaXNPdXRPZk9mZmljZSkge1xyXG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm9wdGlvbnMub3V0T2ZPZmZpY2U7XHJcbiAgICAgIHRoaXMuX3NuYWNrQmFyLm9wZW5Gcm9tQ29tcG9uZW50KE91dE9mT2ZmaWNlVG9hc3QsIHtcclxuICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAndG9wJyxcclxuICAgICAgICBkaXJlY3Rpb246IHRoaXMuX3Nlc3Npb24uZGlyZWN0aW9uLFxyXG4gICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgIHN1YnN0aXR1dGVJZDogb3B0aW9ucy5zdWJzdGl0dWVJZFxyXG4gICAgICAgIH0gYXMgT3V0T2ZPZmZpY2VEYXRhXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICByZXNpemUoKSB7XHJcbiAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZScpKTtcclxuICB9XHJcbiAgYWJzdHJhY3Qgb25OZXdNZXNzYWdlKG1vZGVsOiBSZWNpcGllbnRNb2RlbCk7XHJcbiAgbWFpbHMoKSB7XHJcbiAgICB0aGlzLl9zZXNzaW9uLmluYm94VG91Y2goKTtcclxuICB9XHJcbiAgbm90aWZzKCkge1xyXG4gICAgdGhpcy5fc2Vzc2lvbi5wcm9maWxlLm5vdGlmaWNhdGlvbnMubGVuZ3RoICYmXHJcbiAgICAgIHRoaXMuX3Nlc3Npb24ubm90aWZpY2F0aW9uc1RvdWNoKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -5,6 +5,8 @@ import { BIZDOC_CONFIG, OpenPolicy } from '../core/configuration';
5
5
  import { submenuAnimation } from '../core/animations';
6
6
  import { HomeBase } from './home-base.component';
7
7
  import { NavigationStart } from '../core/slots/pane-ref';
8
+ import { QuickOptionsComponent } from './options/options.component';
9
+ import { QuickSignComponent } from './sign/sign.component';
8
10
  import * as i0 from "@angular/core";
9
11
  import * as i1 from "../core/slots/router.service";
10
12
  import * as i2 from "../core/mailbox.service";
@@ -31,10 +33,11 @@ import * as i22 from "../compose/new-menu.component";
31
33
  import * as i23 from "../core/pipes/translate.pipe";
32
34
  /** desktop home comp */
33
35
  export class HomeComponent extends HomeBase {
34
- constructor(_router, _mailbox, injector, session, popup, messaging, translate, _sb, snackBar, config) {
35
- super(popup, session, messaging, translate, snackBar, injector, config);
36
+ constructor(_router, _mailbox, injector, session, _popup, messaging, translate, _sb, snackBar, config) {
37
+ super(session, messaging, translate, snackBar, injector, config);
36
38
  this._router = _router;
37
39
  this._mailbox = _mailbox;
40
+ this._popup = _popup;
38
41
  this._sb = _sb;
39
42
  this.sysAdmin = this._session.isSystem;
40
43
  this._submenuMode = localStorage.getItem('submenuMode') || 'full';
@@ -90,6 +93,13 @@ export class HomeComponent extends HomeBase {
90
93
  this._pinned = value;
91
94
  this._is('pinned', value);
92
95
  }
96
+ /** options */
97
+ options(evt) {
98
+ this._popup.open(QuickOptionsComponent, evt.srcElement, { position: 'end' });
99
+ }
100
+ signout(evt) {
101
+ this._popup.open(QuickSignComponent, evt.srcElement, { position: 'end' });
102
+ }
93
103
  nav(path) {
94
104
  this._router.navigate([path]);
95
105
  this.submenu = null;
@@ -202,9 +212,9 @@ export class HomeComponent extends HomeBase {
202
212
  }
203
213
  }
204
214
  }
205
- HomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HomeComponent, deps: [{ token: i1.PanesRouter }, { token: i2.MailboxService }, { token: i0.Injector }, { token: i3.SessionService }, { token: i4.Popup }, { token: i5.HubService }, { token: i6.TranslateService }, { token: i7.PromptService }, { token: i8.MatSnackBar }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
206
- HomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.8", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "mat-app-background" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\r\n [class.dialog]=\"dialog\"\r\n class=\"nav-menu row\">\r\n <!--[class.loading]=\"loading\"-->\r\n <div class=\"column\">\r\n <div>\r\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\" *ngIf=\"forms.length\">\r\n <button mat-raised-button class=\"compose\"\r\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n (click)=\"opennew()\" [disabled]=\"creating\"\r\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\r\n <mat-icon>add</mat-icon>\r\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\r\n </button>\r\n </div>\r\n <mat-nav-list>\r\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\r\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\r\n data-help=\"dashboard\"\r\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon>apps</mat-icon><span class=\"nav-label\">{{'Dashboard' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n [class.active]=\"activeMenu === 'mailbox'\"\r\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\r\n <mat-icon matListIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\">inbox</mat-icon>\r\n <span class=\"nav-label\">{{'Mailbox' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\" *ngIf=\"schedulerEnabled\"\r\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\r\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\">{{ 'Scheduler' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item *ngIf='chatEnabled' data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\r\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\r\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\">chat</mat-icon><span class=\"nav-label\">{{ 'Chat' | translate}}</span>\r\n </mat-list-item>\r\n <mat-divider></mat-divider>\r\n <mat-list-item *ngIf=\"enableAnalysis && profile.cubes.length\"\r\n (click)=\"opensubmenu('cube')\"\r\n [class.active]=\"activeMenu === 'cube'\"\r\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\r\n <mat-icon matListIcon>equalizer</mat-icon><span class=\"nav-label\">{{'Cube' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"profile.reports.length\"\r\n (click)=\"opensubmenu('reports')\"\r\n [class.active]=\"activeMenu === 'reports'\"\r\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\r\n <mat-icon matListIcon>list_alt</mat-icon><span class=\"nav-label\">{{'Reports' | translate}}</span>\r\n </mat-list-item>\r\n <ng-container *ngIf=\"sysAdmin\">\r\n <mat-divider></mat-divider>\r\n <mat-list-item (click)=\"opensubmenu('admin')\"\r\n [class.active]=\"activeMenu === 'admin'\"\r\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\r\n <mat-icon matListIcon>device_hub</mat-icon>\r\n <span class=\"nav-label\">{{'Workflow' | translate}}</span>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-nav-list>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\r\n <!--@animate-->\r\n <div class=\"sign-in\">\r\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\r\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\r\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"submenu\" class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\r\n <div class=\"action\" *ngIf=\"submenu !== 'new'\">\r\n <button mat-icon-button (click)=\"togglePinned()\"><mat-icon class=\"mat-icon-rtl-mirror\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\" [inline]=\"true\">{{pinned ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right'}}</mat-icon></button>\r\n </div>\r\n <ng-container [ngSwitch]=\"submenu\">\r\n <bizdoc-new-menu *ngSwitchCase=\"'new'\" (change)=\"closesubmenu()\"></bizdoc-new-menu>\r\n <bizdoc-folders-menu *ngSwitchCase=\"'mailbox'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\r\n <bizdoc-admin-menu *ngSwitchCase=\"'admin'\" [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\r\n <bizdoc-reports-menu *ngSwitchCase=\"'reports'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\r\n <bizdoc-cube-menu *ngSwitchCase=\"'cube'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\r\n </ng-container>\r\n </div>\r\n <div class=\"backdrop\" *ngIf=\"dialog\"></div>\r\n</div>\r\n<bizdoc-panes-outlet (dialogChange)=\"dialog = $event\"></bizdoc-panes-outlet>\r\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden}.nav-menu .sub-menu .action{display:flex;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0}.nav-menu .new-container button{min-width:35px;padding:0 10px;height:40px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;flex-direction:row;overflow:hidden;margin-bottom:5px}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}\n"], dependencies: [{ kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i10.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i11.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { kind: "component", type: i11.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i11.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i13.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"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i15.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i17.AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { kind: "component", type: i18.SlotsComponent, selector: "bizdoc-panes-outlet", outputs: ["dialogChange"] }, { kind: "component", type: i19.CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i20.ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i21.FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i22.ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { kind: "pipe", type: i23.TranslatePipe, name: "translate" }], animations: [submenuAnimation] });
207
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImport: i0, type: HomeComponent, decorators: [{
215
+ HomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HomeComponent, deps: [{ token: i1.PanesRouter }, { token: i2.MailboxService }, { token: i0.Injector }, { token: i3.SessionService }, { token: i4.Popup }, { token: i5.HubService }, { token: i6.TranslateService }, { token: i7.PromptService }, { token: i8.MatSnackBar }, { token: BIZDOC_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
216
+ HomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.9", type: HomeComponent, selector: "bizdoc-home", host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" }, classAttribute: "mat-app-background" }, viewQueries: [{ propertyName: "drawer", first: true, predicate: MatSidenav, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\r\n [class.dialog]=\"dialog\"\r\n class=\"nav-menu row\">\r\n <!--[class.loading]=\"loading\"-->\r\n <div class=\"column\">\r\n <div>\r\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\" *ngIf=\"forms.length\">\r\n <button mat-raised-button class=\"compose\"\r\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n (click)=\"opennew()\" [disabled]=\"creating\"\r\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\r\n <mat-icon>add</mat-icon>\r\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\r\n </button>\r\n </div>\r\n <mat-nav-list>\r\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\r\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\r\n data-help=\"dashboard\"\r\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon>apps</mat-icon><span class=\"nav-label\">{{'Dashboard' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n [class.active]=\"activeMenu === 'mailbox'\"\r\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\r\n <mat-icon matListIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\">inbox</mat-icon>\r\n <span class=\"nav-label\">{{'Mailbox' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\" *ngIf=\"schedulerEnabled\"\r\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\r\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\">{{ 'Scheduler' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item *ngIf='chatEnabled' data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\r\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\r\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\">chat</mat-icon><span class=\"nav-label\">{{ 'Chat' | translate}}</span>\r\n </mat-list-item>\r\n <mat-divider></mat-divider>\r\n <mat-list-item *ngIf=\"enableAnalysis && profile.cubes.length\"\r\n (click)=\"opensubmenu('cube')\"\r\n [class.active]=\"activeMenu === 'cube'\"\r\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\r\n <mat-icon matListIcon>equalizer</mat-icon><span class=\"nav-label\">{{'Cube' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"profile.reports.length\"\r\n (click)=\"opensubmenu('reports')\"\r\n [class.active]=\"activeMenu === 'reports'\"\r\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\r\n <mat-icon matListIcon>list_alt</mat-icon><span class=\"nav-label\">{{'Reports' | translate}}</span>\r\n </mat-list-item>\r\n <ng-container *ngIf=\"sysAdmin\">\r\n <mat-divider></mat-divider>\r\n <mat-list-item (click)=\"opensubmenu('admin')\"\r\n [class.active]=\"activeMenu === 'admin'\"\r\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\r\n <mat-icon matListIcon>device_hub</mat-icon>\r\n <span class=\"nav-label\">{{'Workflow' | translate}}</span>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-nav-list>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\r\n <!--@animate-->\r\n <div class=\"sign-in\">\r\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\r\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\r\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"submenu\" class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\r\n <div class=\"action\" *ngIf=\"submenu !== 'new'\">\r\n <button mat-icon-button (click)=\"togglePinned()\"><mat-icon class=\"mat-icon-rtl-mirror\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\" [inline]=\"true\">{{pinned ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right'}}</mat-icon></button>\r\n </div>\r\n <ng-container [ngSwitch]=\"submenu\">\r\n <bizdoc-new-menu *ngSwitchCase=\"'new'\" (change)=\"closesubmenu()\"></bizdoc-new-menu>\r\n <bizdoc-folders-menu *ngSwitchCase=\"'mailbox'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\r\n <bizdoc-admin-menu *ngSwitchCase=\"'admin'\" [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\r\n <bizdoc-reports-menu *ngSwitchCase=\"'reports'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\r\n <bizdoc-cube-menu *ngSwitchCase=\"'cube'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\r\n </ng-container>\r\n </div>\r\n <div class=\"backdrop\" *ngIf=\"dialog\"></div>\r\n</div>\r\n<bizdoc-panes-outlet (dialogChange)=\"dialog = $event\"></bizdoc-panes-outlet>\r\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden}.nav-menu .sub-menu .action{display:flex;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0}.nav-menu .new-container button{min-width:35px;padding:0 10px;height:40px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;flex-direction:row;overflow:hidden;margin-bottom:5px}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}\n"], dependencies: [{ kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i10.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i11.MatNavList, selector: "mat-nav-list", inputs: ["disableRipple", "disabled"], exportAs: ["matNavList"] }, { kind: "component", type: i11.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["disableRipple", "disabled"], exportAs: ["matListItem"] }, { kind: "directive", type: i11.MatListIconCssMatStyler, selector: "[mat-list-icon], [matListIcon]" }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i13.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"] }, { kind: "component", type: i14.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i15.MatIconAnimate, selector: "[matAnimate]" }, { kind: "directive", type: i16.TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: i17.AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: ["collapsed"] }, { kind: "component", type: i18.SlotsComponent, selector: "bizdoc-panes-outlet", outputs: ["dialogChange"] }, { kind: "component", type: i19.CubeMenuComponent, selector: "bizdoc-cube-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i20.ReportsMenuComponent, selector: "bizdoc-reports-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i21.FoldersMenuComponent, selector: "bizdoc-folders-menu", inputs: ["collapsed"], outputs: ["change"] }, { kind: "component", type: i22.ComposeMenuComponent, selector: "bizdoc-new-menu", outputs: ["change"] }, { kind: "pipe", type: i23.TranslatePipe, name: "translate" }], animations: [submenuAnimation] });
217
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.9", ngImport: i0, type: HomeComponent, decorators: [{
208
218
  type: Component,
209
219
  args: [{ selector: 'bizdoc-home', host: { class: 'mat-app-background' }, animations: [submenuAnimation], template: "<div [class.nav-collapsed]=\"collapsed\" [class.nav-open]=\"submenu\"\r\n [class.dialog]=\"dialog\"\r\n class=\"nav-menu row\">\r\n <!--[class.loading]=\"loading\"-->\r\n <div class=\"column\">\r\n <div>\r\n <div [class.active]=\"activeMenu === 'new'\" class=\"new-container\" *ngIf=\"forms.length\">\r\n <button mat-raised-button class=\"compose\"\r\n [bizdocTooltip]=\"'Compose'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n (click)=\"opennew()\" [disabled]=\"creating\"\r\n [attr.aria-label]=\"'Compose'| translate\" color=\"primary\" data-help=\"compose\">\r\n <mat-icon>add</mat-icon>\r\n <span class=\"nav-label\">{{'Compose'| translate}}</span>\r\n </button>\r\n </div>\r\n <mat-nav-list>\r\n <mat-list-item [attr.aria-label]=\"'Dashboard' | translate\"\r\n (click)=\"nav('dashboard')\" [class.active]=\"activeMenu === 'dashboard'\"\r\n data-help=\"dashboard\"\r\n [bizdocTooltip]=\"'Dashboard'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon>apps</mat-icon><span class=\"nav-label\">{{'Dashboard' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item (click)=\"mails()\" [bizdocTooltip]=\"'Mailbox'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n [class.active]=\"activeMenu === 'mailbox'\"\r\n [attr.aria-label]=\"'Mailbox' | translate\" data-help=\"folders\">\r\n <mat-icon matListIcon [matBadge]=\"profile.inboxCount\" [matBadgeHidden]=\"profile.inboxCount < 1\" matBadgeColor=\"accent\">inbox</mat-icon>\r\n <span class=\"nav-label\">{{'Mailbox' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item [attr.aria-label]=\"'Scheduler' | translate\" *ngIf=\"schedulerEnabled\"\r\n (click)=\"nav('schedule')\" [class.active]=\"activeMenu === 'schedule'\"\r\n [bizdocTooltip]=\"'Scheduler'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon class=\"mat-icon-rtl-mirror\">date_range</mat-icon><span class=\"nav-label\">{{ 'Scheduler' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item *ngIf='chatEnabled' data-help=\"chat\" [attr.aria-label]=\"'Chat' | translate\"\r\n (click)=\"nav('contacts')\" [class.active]=\"activeMenu === 'contacts'\"\r\n [bizdocTooltip]=\"'Chat'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">\r\n <mat-icon matListIcon [matBadge]=\"profile.conversationsCount\" [matBadgeHidden]=\"!profile.conversationsCount\" matBadgeColor=\"accent\">chat</mat-icon><span class=\"nav-label\">{{ 'Chat' | translate}}</span>\r\n </mat-list-item>\r\n <mat-divider></mat-divider>\r\n <mat-list-item *ngIf=\"enableAnalysis && profile.cubes.length\"\r\n (click)=\"opensubmenu('cube')\"\r\n [class.active]=\"activeMenu === 'cube'\"\r\n [bizdocTooltip]=\"'Cube'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\"\r\n data-help=\"cube\" [attr.aria-label]=\"'Cube' | translate\">\r\n <mat-icon matListIcon>equalizer</mat-icon><span class=\"nav-label\">{{'Cube' | translate}}</span>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"profile.reports.length\"\r\n (click)=\"opensubmenu('reports')\"\r\n [class.active]=\"activeMenu === 'reports'\"\r\n [bizdocTooltip]=\"'Reports'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" data-help=\"reports\" [attr.aria-label]=\"'Reports' | translate\">\r\n <mat-icon matListIcon>list_alt</mat-icon><span class=\"nav-label\">{{'Reports' | translate}}</span>\r\n </mat-list-item>\r\n <ng-container *ngIf=\"sysAdmin\">\r\n <mat-divider></mat-divider>\r\n <mat-list-item (click)=\"opensubmenu('admin')\"\r\n [class.active]=\"activeMenu === 'admin'\"\r\n [bizdocTooltip]=\"'System'|translate\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\" [attr.aria-label]=\"'System' | translate\">\r\n <mat-icon matListIcon>device_hub</mat-icon>\r\n <span class=\"nav-label\">{{'Workflow' | translate}}</span>\r\n </mat-list-item>\r\n </ng-container>\r\n </mat-nav-list>\r\n </div>\r\n <span class=\"divider\"></span>\r\n <!--<lottie name=\"lf30_editor_qr7zgmcs\" *ngIf=\"loading\"></lottie>-->\r\n <!--@animate-->\r\n <div class=\"sign-in\">\r\n <button mat-icon-button data-help=\"sign-in\" [bizdocTooltip]=\"'Settings' | translate\" bizdocTooltipPosition=\"above\"\r\n [attr.aria-label]=\"'Settings' | translate\" (click)=\"options($event)\">\r\n <mat-icon matAnimate=\"rotate\">settingson</mat-icon>\r\n </button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [attr.aria-label]=\"'Power' | translate\" (click)=\"signout($event)\" [bizdocTooltip]=\"'Exit'|translate\" bizdocTooltipPosition=\"above\">\r\n <mat-icon class=\"mat-icon-rtl-mirror\">logout</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"submenu\" class=\"sub-menu\" (mouseleave)=\"collapsesubmenu()\" [@submenu]=\"submenuMode\" (@submenu.done)=\"resize()\">\r\n <div class=\"action\" *ngIf=\"submenu !== 'new'\">\r\n <button mat-icon-button (click)=\"togglePinned()\"><mat-icon class=\"mat-icon-rtl-mirror\" [bizdocTooltip]=\"(pinned?'Collapse':'Expand')|translate\" [inline]=\"true\">{{pinned ? 'keyboard_double_arrow_left' : 'keyboard_double_arrow_right'}}</mat-icon></button>\r\n </div>\r\n <ng-container [ngSwitch]=\"submenu\">\r\n <bizdoc-new-menu *ngSwitchCase=\"'new'\" (change)=\"closesubmenu()\"></bizdoc-new-menu>\r\n <bizdoc-folders-menu *ngSwitchCase=\"'mailbox'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-folders-menu>\r\n <bizdoc-admin-menu *ngSwitchCase=\"'admin'\" [collapsed]=\"submenuMode === 'shrink'\"></bizdoc-admin-menu>\r\n <bizdoc-reports-menu *ngSwitchCase=\"'reports'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-reports-menu>\r\n <bizdoc-cube-menu *ngSwitchCase=\"'cube'\" [collapsed]=\"submenuMode === 'shrink'\" (change)=\"collapsesubmenu()\"></bizdoc-cube-menu>\r\n </ng-container>\r\n </div>\r\n <div class=\"backdrop\" *ngIf=\"dialog\"></div>\r\n</div>\r\n<bizdoc-panes-outlet (dialogChange)=\"dialog = $event\"></bizdoc-panes-outlet>\r\n", styles: [":host{display:flex;position:absolute;height:100%;width:100%}.nav-menu{height:100%;z-index:1}.nav-menu .sub-menu{min-width:200px;display:block;z-index:1;overflow-x:hidden}.nav-menu .sub-menu .action{display:flex;flex-direction:row-reverse}.nav-menu .new-container{margin:8px 8px 0}.nav-menu .new-container button{min-width:35px;padding:0 10px;height:40px}.nav-menu .nav-icon{display:none}.nav-menu.nav-collapsed .nav-icon{display:unset}.nav-menu.nav-collapsed .nav-label{display:none}.nav-menu.nav-collapsed .sign-in{flex-direction:column;align-items:center}.nav-menu .sign-in{display:flex;flex-direction:row;overflow:hidden;margin-bottom:5px}.backdrop{position:absolute;z-index:200;width:100%;height:100%;display:block;background:#424242;opacity:.8}\n"] }]
210
220
  }], ctorParameters: function () { return [{ type: i1.PanesRouter }, { type: i2.MailboxService }, { type: i0.Injector }, { type: i3.SessionService }, { type: i4.Popup }, { type: i5.HubService }, { type: i6.TranslateService }, { type: i7.PromptService }, { type: i8.MatSnackBar }, { type: undefined, decorators: [{
@@ -217,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.8", ngImpor
217
227
  type: HostListener,
218
228
  args: ['document:keydown', ['$event']]
219
229
  }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLmRlc2t0b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9ob21lL2hvbWUuZGVza3RvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBSzdFLHdCQUF3QjtBQVF4QixNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFzRHpDLFlBQ1UsT0FBb0IsRUFDcEIsUUFBd0IsRUFDaEMsUUFBa0IsRUFDbEIsT0FBdUIsRUFDdkIsS0FBWSxFQUNaLFNBQXFCLEVBQ3JCLFNBQTJCLEVBQ25CLEdBQWtCLEVBQzFCLFFBQXFCLEVBQ0UsTUFBb0I7UUFDM0MsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBVmhFLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDcEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFNeEIsUUFBRyxHQUFILEdBQUcsQ0FBZTtRQTVEbkIsYUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO1FBQ25DLGlCQUFZLEdBQXNCLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFRLElBQUksTUFBTSxDQUFDO1FBQ3RGLFVBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBUXhCLGFBQVEsR0FBVyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBdUJuRCxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFRbEQsWUFBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBcUJsRCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksZUFBZSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ3JHLFNBQVMsQ0FBQyxDQUFDLENBQXFCLEVBQUUsRUFBRSxDQUNsQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDdkMsQ0FBQztJQUNOLENBQUM7SUEvREQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBVyxXQUFXLENBQUMsS0FBd0I7UUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUdELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLElBQUksS0FBSztZQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDOztZQUM3QyxZQUFZLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDTyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQWE7UUFDN0IsSUFBSSxHQUFHLEtBQUssU0FBUztZQUNuQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDOztZQUUxQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUNPLFlBQVksQ0FBQyxJQUFJLEVBQUUsUUFBUTtRQUNqQyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUNELElBQVcsU0FBUyxDQUFDLEtBQUs7UUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQVcsTUFBTSxDQUFDLEtBQUs7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQW1CRCxHQUFHLENBQUMsSUFBSTtRQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELFlBQVksQ0FBQyxLQUFxQjtRQUNoQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQ3REO1lBQ0UsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUN0QixNQUFNLEVBQUUsVUFBVSxDQUFDLEtBQUs7U0FDekIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLO2dCQUN4QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7O2dCQUVwQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNCOztZQUNJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ08sT0FBTztRQUNiLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ3RDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsRUFDbEQ7Z0JBQ0UsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN4QixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFO2FBQ25CLENBQUMsQ0FBQztRQUNQLENBQUMsRUFBRSxDQUFDLENBQW9CLEVBQUUsRUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLFVBQVUsQ0FBQyxRQUFzRDtRQUN2RSxJQUFJLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxLQUFLLGVBQWU7WUFDL0MsUUFBUyxRQUFxQyxDQUFDLElBQUksRUFBRTtnQkFDbkQsS0FBSyxDQUFDO29CQUNKLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7b0JBQ25DLE1BQU07Z0JBQ1I7b0JBQ0UsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDNUI7O1lBQ0UsUUFBUyxRQUE4QixDQUFDLE1BQU0sRUFBRTtnQkFDbkQsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUMvQixNQUFNO2dCQUNSLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxRQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1RCxNQUFNO2dCQUNSLEtBQUssR0FBRyxFQUFFLFVBQVU7b0JBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUM3QixNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDcEI7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVk7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUk7WUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7YUFDaEU7WUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztTQUMzQjtJQUNILENBQUM7SUFDRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLO1lBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDMUUsQ0FBQztJQUNELFlBQVk7UUFDVixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3JELENBQUM7SUFDUSxLQUFLO1FBQ1osS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBQ0Q7OztPQUdHO0lBRUgsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxFQUFFLENBQUMsRUFBRTtZQUMvRCxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSztnQkFDeEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7aUJBQ2pCO2dCQUNILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFDekIsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO3FCQUNaO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztpQkFDM0I7YUFDRjtZQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN4QjthQUNJLElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTtZQUM3QyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDckUsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7YUFDN0I7aUJBQ0k7Z0JBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2FBQzlCO1NBQ0Y7SUFDSCxDQUFDOzswR0F2TFUsYUFBYSx3UUFnRWQsYUFBYTs4RkFoRVosYUFBYSw2TUFxRGIsVUFBVSxxRkMvRXZCLHd5TkE0RkEsMHlHRHBFYyxDQUFDLGdCQUFnQixDQUFDOzJGQUVuQixhQUFhO2tCQVB6QixTQUFTOytCQUNFLGFBQWEsUUFHakIsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQzs7MEJBa0UzQixNQUFNOzJCQUFDLGFBQWE7NENBWGtCLE1BQU07c0JBQTlDLFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkEwR3ZDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBJbmplY3QsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xyXG5pbXBvcnQgeyBNYXRTbmFja0JhciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NuYWNrLWJhcic7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBCaXpEb2NDb25maWcsIEJJWkRPQ19DT05GSUcsIE9wZW5Qb2xpY3kgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBzdWJtZW51QW5pbWF0aW9uIH0gZnJvbSAnLi4vY29yZS9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgUmVjaXBpZW50TW9kZWwgfSBmcm9tICcuLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFNlc3Npb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9zZXNzaW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQYW5lc1JvdXRlciB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcm91dGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb3B1cCB9IGZyb20gJy4uL2NvcmUvcG9wdXAvcG9wdXAuc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4uL2NvcmUvaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIb21lQmFzZSB9IGZyb20gJy4vaG9tZS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25QYW5lQmFzZSwgTmF2aWdhdGlvblN0YXJ0IH0gZnJvbSAnLi4vY29yZS9zbG90cy9wYW5lLXJlZic7XHJcbmltcG9ydCB7IE1haWxib3hTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9tYWlsYm94LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgUHJvbXB0U2VydmljZSB9IGZyb20gJy4uL2NvcmUvcHJvbXB0LnNlcnZpY2UnO1xyXG5cclxuLyoqIGRlc2t0b3AgaG9tZSBjb21wICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYml6ZG9jLWhvbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ob21lLmRlc2t0b3AuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hvbWUuZGVza3RvcC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGhvc3Q6IHsgY2xhc3M6ICdtYXQtYXBwLWJhY2tncm91bmQnIH0sXHJcbiAgYW5pbWF0aW9uczogW3N1Ym1lbnVBbmltYXRpb25dXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIb21lQ29tcG9uZW50IGV4dGVuZHMgSG9tZUJhc2Uge1xyXG4gIGRpYWxvZzogYm9vbGVhbjtcclxuICByZWFkb25seSBzeXNBZG1pbiA9IHRoaXMuX3Nlc3Npb24uaXNTeXN0ZW07XHJcbiAgcHJpdmF0ZSBfc3VibWVudU1vZGU6ICdmdWxsJyB8ICdzaHJpbmsnID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1Ym1lbnVNb2RlJykgYXMgYW55IHx8ICdmdWxsJztcclxuICByZWFkb25seSBmb3JtcyA9IHRoaXMuX3Nlc3Npb24ucHJvZmlsZS5mb3Jtcy5maWx0ZXIoZiA9PiBmLmNyZWF0YWJsZSk7XHJcbiAgY3JlYXRpbmc6IGJvb2xlYW47XHJcbiAgcHJpdmF0ZSBfY29sbGFwc2VUb2dnbGUgPSBmYWxzZTtcclxuICBwdWJsaWMgZ2V0IHN1Ym1lbnVNb2RlKCk6ICdmdWxsJyB8ICdzaHJpbmsnIHtcclxuICAgIHJldHVybiB0aGlzLl9zdWJtZW51TW9kZTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzdWJtZW51TW9kZSh2YWx1ZTogJ2Z1bGwnIHwgJ3NocmluaycpIHtcclxuICAgIHRoaXMuX3N1Ym1lbnVNb2RlID0gdmFsdWU7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3VibWVudU1vZGUnLCB2YWx1ZSlcclxuICB9XHJcbiAgcHJpdmF0ZSBfc3VibWVudTogc3RyaW5nID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N1Ym1lbnUnKTtcclxuICBwcml2YXRlIF9wYXRoOiBzdHJpbmc7XHJcbiAgZ2V0IGFjdGl2ZU1lbnUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudSB8fCB0aGlzLl9wYXRoO1xyXG4gIH1cclxuICBwdWJsaWMgZ2V0IHN1Ym1lbnUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9zdWJtZW51O1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHN1Ym1lbnUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fc3VibWVudSA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlKSBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc3VibWVudScsIHZhbHVlKTtcclxuICAgIGVsc2UgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3N1Ym1lbnUnKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaXMobmFtZSwgdmFsPzogYm9vbGVhbikge1xyXG4gICAgaWYgKHZhbCA9PT0gdW5kZWZpbmVkKVxyXG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0obmFtZSkgPT09ICcxJztcclxuICAgIGVsc2VcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0obmFtZSwgdmFsID8gJzEnIDogJzAnKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfaXNPckRlZmF1bHQobmFtZSwgJGRlZmF1bHQpIHtcclxuICAgIGNvbnN0IHZhbCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpO1xyXG4gICAgcmV0dXJuIHZhbCA/IHZhbCA9PT0gJzEnIDogJGRlZmF1bHQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbGxhcHNlZCA9IHRoaXMuX2lzT3JEZWZhdWx0KCdjb2xsYXBzZWQnLCB0cnVlKTtcclxuICBwdWJsaWMgZ2V0IGNvbGxhcHNlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb2xsYXBzZWQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgY29sbGFwc2VkKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9jb2xsYXBzZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzKCdjb2xsYXBzZWQnLCB0aGlzLmNvbGxhcHNlZCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3Bpbm5lZCA9IHRoaXMuX2lzT3JEZWZhdWx0KCdwaW5uZWQnLCB0cnVlKTtcclxuICBwdWJsaWMgZ2V0IHBpbm5lZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9waW5uZWQ7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgcGlubmVkKHZhbHVlKSB7XHJcbiAgICB0aGlzLl9waW5uZWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2lzKCdwaW5uZWQnLCB2YWx1ZSlcclxuICB9XHJcbiAgQFZpZXdDaGlsZChNYXRTaWRlbmF2LCB7IHN0YXRpYzogdHJ1ZSB9KSBkcmF3ZXI6IE1hdFNpZGVuYXY7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBfbWFpbGJveDogTWFpbGJveFNlcnZpY2UsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICBzZXNzaW9uOiBTZXNzaW9uU2VydmljZSxcclxuICAgIHBvcHVwOiBQb3B1cCxcclxuICAgIG1lc3NhZ2luZzogSHViU2VydmljZSxcclxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgX3NiOiBQcm9tcHRTZXJ2aWNlLFxyXG4gICAgc25hY2tCYXI6IE1hdFNuYWNrQmFyLFxyXG4gICAgQEluamVjdChCSVpET0NfQ09ORklHKSBjb25maWc6IEJpekRvY0NvbmZpZykge1xyXG4gICAgc3VwZXIocG9wdXAsIHNlc3Npb24sIG1lc3NhZ2luZywgdHJhbnNsYXRlLCBzbmFja0JhciwgaW5qZWN0b3IsIGNvbmZpZyk7XHJcbiAgICBfcm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgJiYgZS5wYW5lLnBhdGggJiYgZS5wYW5lLm1vZGUgPT09ICdwYW5lJykpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZSkgPT5cclxuICAgICAgICB0aGlzLl9wYXRoID0gZS5wYW5lLnBhdGguc3BsaXQoJy8nKVswXVxyXG4gICAgICApO1xyXG4gIH1cclxuICBuYXYocGF0aCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtwYXRoXSk7XHJcbiAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gICAgdGhpcy5jb2xsYXBzZXN1Ym1lbnUoKTtcclxuICB9XHJcbiAgb25OZXdNZXNzYWdlKG1vZGVsOiBSZWNpcGllbnRNb2RlbCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgbW9kZWwuaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGF0ZTogeyBpdGVtOiBtb2RlbCB9LFxyXG4gICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhclxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgY2xvc2VzdWJtZW51KCkge1xyXG4gICAgdGhpcy5zdWJtZW51ID0gbnVsbDtcclxuICB9XHJcbiAgb3Blbm5ldygpIHtcclxuICAgIGlmICh0aGlzLmZvcm1zLmxlbmd0aCA+IDEpIHtcclxuICAgICAgaWYgKHRoaXMuc3VibWVudSA9PT0gJ25ldycpXHJcbiAgICAgICAgdGhpcy5jbG9zZXN1Ym1lbnUoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMub3BlbnN1Ym1lbnUoJ25ldycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB0aGlzLl9jcmVhdGUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlKCkge1xyXG4gICAgdGhpcy5jcmVhdGluZyA9IHRydWU7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNyZWF0ZSh0aGlzLmZvcm1zWzBdLm5hbWUpLlxyXG4gICAgICBzdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIHIuaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhcixcclxuICAgICAgICAgICAgc3RhdGU6IHsgaXRlbTogciB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSwgKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlRXJyKGUpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRpbmcgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVFcnIocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlIHwgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKSB7XHJcbiAgICBpZiAocmVzcG9uc2UuY29uc3RydWN0b3IubmFtZSA9PT0gJ1Bvc2l0aW9uRXJyb3InKVxyXG4gICAgICBzd2l0Y2ggKChyZXNwb25zZSBhcyBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IpLmNvZGUpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVXNlckRlbmllZEdlb0VycicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKCdHZW9FcnInKTtcclxuICAgICAgfVxyXG4gICAgZWxzZSBzd2l0Y2ggKChyZXNwb25zZSBhcyBIdHRwRXJyb3JSZXNwb25zZSkuc3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgNDAxOlxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKCdVbmF1dGhvcml6ZWQnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA0MDY6XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3JTdHJpbmcoKHJlc3BvbnNlIGFzIEh0dHBFcnJvclJlc3BvbnNlKS5lcnJvcik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgNDI2OiAvLyBsaWNlbnNlXHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ0xpY2Vuc2VFcnInKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbnN1Ym1lbnUobWVudTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zdWJtZW51ID09PSBtZW51KVxyXG4gICAgICB0aGlzLnN1Ym1lbnVNb2RlID0gdGhpcy5zdWJtZW51TW9kZSA9PT0gJ2Z1bGwnID8gJ3NocmluaycgOiAnZnVsbCc7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdWJtZW51ID0gbWVudTtcclxuICAgICAgdGhpcy5zdWJtZW51TW9kZSA9ICdmdWxsJztcclxuICAgIH1cclxuICB9XHJcbiAgY29sbGFwc2VzdWJtZW51KCkge1xyXG4gICAgaWYgKCF0aGlzLnBpbm5lZCAmJiB0aGlzLnN1Ym1lbnUgIT09ICduZXcnKSB0aGlzLnN1Ym1lbnVNb2RlID0gJ3Nocmluayc7XHJcbiAgfVxyXG4gIHRvZ2dsZVBpbm5lZCgpIHtcclxuICAgIHRoaXMucGlubmVkID0gIXRoaXMucGlubmVkO1xyXG4gICAgdGhpcy5zdWJtZW51TW9kZSA9IHRoaXMucGlubmVkID8gJ2Z1bGwnIDogJ3Nocmluayc7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG1haWxzKCkge1xyXG4gICAgc3VwZXIubWFpbHMoKTtcclxuICAgIHRoaXMub3BlbnN1Ym1lbnUoJ21haWxib3gnKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQWx0ICsgbi9OLCBDdHJsICsgLlxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5hbHRLZXkgJiYgKGV2ZW50LndoaWNoID09PSAxMTAgfHwgZXZlbnQud2hpY2ggPT09IDc4KSkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ID09PSAnbmV3JylcclxuICAgICAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5mb3Jtcy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGUoKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VibWVudSA9ICduZXcnO1xyXG4gICAgICAgICAgdGhpcy5zdWJtZW51TW9kZSA9ICdmdWxsJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQud2hpY2ggPT09IDE5MCkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ICYmICF0aGlzLl9jb2xsYXBzZVRvZ2dsZSkge1xyXG4gICAgICAgIHRoaXMuc3VibWVudU1vZGUgPSB0aGlzLnN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJyA/ICdmdWxsJyA6ICdzaHJpbmsnO1xyXG4gICAgICAgIHRoaXMuX2NvbGxhcHNlVG9nZ2xlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuICAgICAgICB0aGlzLl9jb2xsYXBzZVRvZ2dsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2NsYXNzLm5hdi1jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCIgW2NsYXNzLm5hdi1vcGVuXT1cInN1Ym1lbnVcIlxyXG4gICAgIFtjbGFzcy5kaWFsb2ddPVwiZGlhbG9nXCJcclxuICAgICBjbGFzcz1cIm5hdi1tZW51IHJvd1wiPlxyXG4gIDwhLS1bY2xhc3MubG9hZGluZ109XCJsb2FkaW5nXCItLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8ZGl2IFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ25ldydcIiBjbGFzcz1cIm5ldy1jb250YWluZXJcIiAqbmdJZj1cImZvcm1zLmxlbmd0aFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJjb21wb3NlXCJcclxuICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidDb21wb3NlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5uZXcoKVwiIFtkaXNhYmxlZF09XCJjcmVhdGluZ1wiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDb21wb3NlJ3wgdHJhbnNsYXRlXCIgY29sb3I9XCJwcmltYXJ5XCIgZGF0YS1oZWxwPVwiY29tcG9zZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J0NvbXBvc2UnfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxtYXQtbmF2LWxpc3Q+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInRGFzaGJvYXJkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdignZGFzaGJvYXJkJylcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdkYXNoYm9hcmQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlbHA9XCJkYXNoYm9hcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidEYXNoYm9hcmQnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmFwcHM8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCI+e3snRGFzaGJvYXJkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwibWFpbHMoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidNYWlsYm94J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ21haWxib3gnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNYWlsYm94JyB8IHRyYW5zbGF0ZVwiIGRhdGEtaGVscD1cImZvbGRlcnNcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SWNvbiBbbWF0QmFkZ2VdPVwicHJvZmlsZS5pbmJveENvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cInByb2ZpbGUuaW5ib3hDb3VudCA8IDFcIiBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCI+aW5ib3g8L21hdC1pY29uPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIj57eydNYWlsYm94JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidTY2hlZHVsZXInIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJzY2hlZHVsZXJFbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2KCdzY2hlZHVsZScpXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnc2NoZWR1bGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInU2NoZWR1bGVyJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5kYXRlX3JhbmdlPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7ICdTY2hlZHVsZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0lmPSdjaGF0RW5hYmxlZCcgZGF0YS1oZWxwPVwiY2hhdFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NoYXQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2KCdjb250YWN0cycpXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnY29udGFjdHMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInQ2hhdCd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEljb24gW21hdEJhZGdlXT1cInByb2ZpbGUuY29udmVyc2F0aW9uc0NvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cIiFwcm9maWxlLmNvbnZlcnNhdGlvbnNDb3VudFwiIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIj5jaGF0PC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7ICdDaGF0JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdJZj1cImVuYWJsZUFuYWx5c2lzICYmIHByb2ZpbGUuY3ViZXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ2N1YmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnY3ViZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidDdWJlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVscD1cImN1YmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDdWJlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmVxdWFsaXplcjwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIj57eydDdWJlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdJZj1cInByb2ZpbGUucmVwb3J0cy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuc3VibWVudSgncmVwb3J0cycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdyZXBvcnRzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlcG9ydHMnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiIGRhdGEtaGVscD1cInJlcG9ydHNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXBvcnRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmxpc3RfYWx0PC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J1JlcG9ydHMnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzeXNBZG1pblwiPlxyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ2FkbWluJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnYWRtaW4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidTeXN0ZW0nfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1N5c3RlbScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmRldmljZV9odWI8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J1dvcmtmbG93JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1uYXYtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgPCEtLTxsb3R0aWUgbmFtZT1cImxmMzBfZWRpdG9yX3FyN3pnbWNzXCIgKm5nSWY9XCJsb2FkaW5nXCI+PC9sb3R0aWU+LS0+XHJcbiAgICA8IS0tQGFuaW1hdGUtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWduLWluXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cInNpZ24taW5cIiBbYml6ZG9jVG9vbHRpcF09XCInU2V0dGluZ3MnIHwgdHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJvcHRpb25zKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPnNldHRpbmdzb248L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQb3dlcicgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwic2lnbm91dCgkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0V4aXQnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmxvZ291dDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInN1Ym1lbnVcIiBjbGFzcz1cInN1Yi1tZW51XCIgKG1vdXNlbGVhdmUpPVwiY29sbGFwc2VzdWJtZW51KClcIiBbQHN1Ym1lbnVdPVwic3VibWVudU1vZGVcIiAoQHN1Ym1lbnUuZG9uZSk9XCJyZXNpemUoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvblwiICpuZ0lmPVwic3VibWVudSAhPT0gJ25ldydcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVBpbm5lZCgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiIFtiaXpkb2NUb29sdGlwXT1cIihwaW5uZWQ/J0NvbGxhcHNlJzonRXhwYW5kJyl8dHJhbnNsYXRlXCIgW2lubGluZV09XCJ0cnVlXCI+e3twaW5uZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X2xlZnQnIDogJ2tleWJvYXJkX2RvdWJsZV9hcnJvd19yaWdodCd9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInN1Ym1lbnVcIj5cclxuICAgICAgPGJpemRvYy1uZXctbWVudSAqbmdTd2l0Y2hDYXNlPVwiJ25ldydcIiAoY2hhbmdlKT1cImNsb3Nlc3VibWVudSgpXCI+PC9iaXpkb2MtbmV3LW1lbnU+XHJcbiAgICAgIDxiaXpkb2MtZm9sZGVycy1tZW51ICpuZ1N3aXRjaENhc2U9XCInbWFpbGJveCdcIiBbY29sbGFwc2VkXT1cInN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJ1wiIChjaGFuZ2UpPVwiY29sbGFwc2VzdWJtZW51KClcIj48L2JpemRvYy1mb2xkZXJzLW1lbnU+XHJcbiAgICAgIDxiaXpkb2MtYWRtaW4tbWVudSAqbmdTd2l0Y2hDYXNlPVwiJ2FkbWluJ1wiIFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCI+PC9iaXpkb2MtYWRtaW4tbWVudT5cclxuICAgICAgPGJpemRvYy1yZXBvcnRzLW1lbnUgKm5nU3dpdGNoQ2FzZT1cIidyZXBvcnRzJ1wiIFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLXJlcG9ydHMtbWVudT5cclxuICAgICAgPGJpemRvYy1jdWJlLW1lbnUgKm5nU3dpdGNoQ2FzZT1cIidjdWJlJ1wiIFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLWN1YmUtbWVudT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwiZGlhbG9nXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48Yml6ZG9jLXBhbmVzLW91dGxldCAoZGlhbG9nQ2hhbmdlKT1cImRpYWxvZyA9ICRldmVudFwiPjwvYml6ZG9jLXBhbmVzLW91dGxldD5cclxuIl19
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvaG9tZS9ob21lLmRlc2t0b3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9ob21lL2hvbWUuZGVza3RvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlCLE9BQU8sRUFBZ0IsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBT3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQXNCLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRTNELHdCQUF3QjtBQVF4QixNQUFNLE9BQU8sYUFBYyxTQUFRLFFBQVE7SUFzRHpDLFlBQ1UsT0FBb0IsRUFDcEIsUUFBd0IsRUFDaEMsUUFBa0IsRUFDbEIsT0FBdUIsRUFDZixNQUFhLEVBQ3JCLFNBQXFCLEVBQ3JCLFNBQTJCLEVBQ25CLEdBQWtCLEVBQzFCLFFBQXFCLEVBQ0UsTUFBb0I7UUFDM0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUs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QyxRQUFRLENBQUM7Z0JBQ3JFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO2FBQzdCO2lCQUNJO2dCQUNILElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQzthQUM5QjtTQUNGO0lBQ0gsQ0FBQzs7MEdBOUxVLGFBQWEsd1FBZ0VkLGFBQWE7OEZBaEVaLGFBQWEsNk1BcURiLFVBQVUscUZDakZ2Qix3eU5BNEZBLDB5R0RsRWMsQ0FBQyxnQkFBZ0IsQ0FBQzsyRkFFbkIsYUFBYTtrQkFQekIsU0FBUzsrQkFDRSxhQUFhLFFBR2pCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLGNBQ3pCLENBQUMsZ0JBQWdCLENBQUM7OzBCQWtFM0IsTUFBTTsyQkFBQyxhQUFhOzRDQVhrQixNQUFNO3NCQUE5QyxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBaUh2QyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgSW5qZWN0LCBIb3N0TGlzdGVuZXIsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNpZGVuYXYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcclxuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQml6RG9jQ29uZmlnLCBCSVpET0NfQ09ORklHLCBPcGVuUG9saWN5IH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgc3VibWVudUFuaW1hdGlvbiB9IGZyb20gJy4uL2NvcmUvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IFJlY2lwaWVudE1vZGVsIH0gZnJvbSAnLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4uL2NvcmUvc2Vzc2lvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tICcuLi9jb3JlL3Nsb3RzL3JvdXRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUG9wdXAgfSBmcm9tICcuLi9jb3JlL3BvcHVwL3BvcHVwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IEh1YlNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2h1Yi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSG9tZUJhc2UgfSBmcm9tICcuL2hvbWUtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uUGFuZUJhc2UsIE5hdmlnYXRpb25TdGFydCB9IGZyb20gJy4uL2NvcmUvc2xvdHMvcGFuZS1yZWYnO1xyXG5pbXBvcnQgeyBNYWlsYm94U2VydmljZSB9IGZyb20gJy4uL2NvcmUvbWFpbGJveC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFByb21wdFNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL3Byb21wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUXVpY2tPcHRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9vcHRpb25zL29wdGlvbnMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUXVpY2tTaWduQ29tcG9uZW50IH0gZnJvbSAnLi9zaWduL3NpZ24uY29tcG9uZW50JztcclxuXHJcbi8qKiBkZXNrdG9wIGhvbWUgY29tcCAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JpemRvYy1ob21lJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaG9tZS5kZXNrdG9wLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ob21lLmRlc2t0b3AuY29tcG9uZW50LnNjc3MnXSxcclxuICBob3N0OiB7IGNsYXNzOiAnbWF0LWFwcC1iYWNrZ3JvdW5kJyB9LFxyXG4gIGFuaW1hdGlvbnM6IFtzdWJtZW51QW5pbWF0aW9uXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSG9tZUNvbXBvbmVudCBleHRlbmRzIEhvbWVCYXNlIHtcclxuICBkaWFsb2c6IGJvb2xlYW47XHJcbiAgcmVhZG9ubHkgc3lzQWRtaW4gPSB0aGlzLl9zZXNzaW9uLmlzU3lzdGVtO1xyXG4gIHByaXZhdGUgX3N1Ym1lbnVNb2RlOiAnZnVsbCcgfCAnc2hyaW5rJyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJtZW51TW9kZScpIGFzIGFueSB8fCAnZnVsbCc7XHJcbiAgcmVhZG9ubHkgZm9ybXMgPSB0aGlzLl9zZXNzaW9uLnByb2ZpbGUuZm9ybXMuZmlsdGVyKGYgPT4gZi5jcmVhdGFibGUpO1xyXG4gIGNyZWF0aW5nOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX2NvbGxhcHNlVG9nZ2xlID0gZmFsc2U7XHJcbiAgcHVibGljIGdldCBzdWJtZW51TW9kZSgpOiAnZnVsbCcgfCAnc2hyaW5rJyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudU1vZGU7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXQgc3VibWVudU1vZGUodmFsdWU6ICdmdWxsJyB8ICdzaHJpbmsnKSB7XHJcbiAgICB0aGlzLl9zdWJtZW51TW9kZSA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Ym1lbnVNb2RlJywgdmFsdWUpXHJcbiAgfVxyXG4gIHByaXZhdGUgX3N1Ym1lbnU6IHN0cmluZyA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdzdWJtZW51Jyk7XHJcbiAgcHJpdmF0ZSBfcGF0aDogc3RyaW5nO1xyXG4gIGdldCBhY3RpdmVNZW51KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Ym1lbnUgfHwgdGhpcy5fcGF0aDtcclxuICB9XHJcbiAgcHVibGljIGdldCBzdWJtZW51KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3VibWVudTtcclxuICB9XHJcbiAgcHVibGljIHNldCBzdWJtZW51KHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3N1Ym1lbnUgPSB2YWx1ZTtcclxuICAgIGlmICh2YWx1ZSkgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3N1Ym1lbnUnLCB2YWx1ZSk7XHJcbiAgICBlbHNlIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdzdWJtZW51Jyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lzKG5hbWUsIHZhbD86IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZClcclxuICAgICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKG5hbWUpID09PSAnMSc7XHJcbiAgICBlbHNlXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG5hbWUsIHZhbCA/ICcxJyA6ICcwJyk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lzT3JEZWZhdWx0KG5hbWUsICRkZWZhdWx0KSB7XHJcbiAgICBjb25zdCB2YWwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShuYW1lKTtcclxuICAgIHJldHVybiB2YWwgPyB2YWwgPT09ICcxJyA6ICRkZWZhdWx0O1xyXG4gIH1cclxuICBwcml2YXRlIF9jb2xsYXBzZWQgPSB0aGlzLl9pc09yRGVmYXVsdCgnY29sbGFwc2VkJywgdHJ1ZSk7XHJcbiAgcHVibGljIGdldCBjb2xsYXBzZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGNvbGxhcHNlZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5fY29sbGFwc2VkID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pcygnY29sbGFwc2VkJywgdGhpcy5jb2xsYXBzZWQpO1xyXG4gIH1cclxuICBwcml2YXRlIF9waW5uZWQgPSB0aGlzLl9pc09yRGVmYXVsdCgncGlubmVkJywgdHJ1ZSk7XHJcbiAgcHVibGljIGdldCBwaW5uZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcGlubmVkO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IHBpbm5lZCh2YWx1ZSkge1xyXG4gICAgdGhpcy5fcGlubmVkID0gdmFsdWU7XHJcbiAgICB0aGlzLl9pcygncGlubmVkJywgdmFsdWUpXHJcbiAgfVxyXG4gIEBWaWV3Q2hpbGQoTWF0U2lkZW5hdiwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyOiBNYXRTaWRlbmF2O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBQYW5lc1JvdXRlcixcclxuICAgIHByaXZhdGUgX21haWxib3g6IE1haWxib3hTZXJ2aWNlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgc2Vzc2lvbjogU2Vzc2lvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9wb3B1cDogUG9wdXAsXHJcbiAgICBtZXNzYWdpbmc6IEh1YlNlcnZpY2UsXHJcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zYjogUHJvbXB0U2VydmljZSxcclxuICAgIHNuYWNrQmFyOiBNYXRTbmFja0JhcixcclxuICAgIEBJbmplY3QoQklaRE9DX0NPTkZJRykgY29uZmlnOiBCaXpEb2NDb25maWcpIHtcclxuICAgIHN1cGVyKHNlc3Npb24sIG1lc3NhZ2luZywgdHJhbnNsYXRlLCBzbmFja0JhciwgaW5qZWN0b3IsIGNvbmZpZyk7XHJcbiAgICBfcm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQgJiYgZS5wYW5lLnBhdGggJiYgZS5wYW5lLm1vZGUgPT09ICdwYW5lJykpLlxyXG4gICAgICBzdWJzY3JpYmUoKGU6IE5hdmlnYXRpb25QYW5lQmFzZSkgPT5cclxuICAgICAgICB0aGlzLl9wYXRoID0gZS5wYW5lLnBhdGguc3BsaXQoJy8nKVswXVxyXG4gICAgICApO1xyXG4gIH1cclxuICAvKiogb3B0aW9ucyAqL1xyXG4gIG9wdGlvbnMoZXZ0OiBFdmVudCkge1xyXG4gICAgdGhpcy5fcG9wdXAub3BlbihRdWlja09wdGlvbnNDb21wb25lbnQsIGV2dC5zcmNFbGVtZW50IGFzIEhUTUxFbGVtZW50LCB7IHBvc2l0aW9uOiAnZW5kJyB9KTtcclxuICB9XHJcbiAgc2lnbm91dChldnQ6IEV2ZW50KSB7XHJcbiAgICB0aGlzLl9wb3B1cC5vcGVuKFF1aWNrU2lnbkNvbXBvbmVudCwgZXZ0LnNyY0VsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHsgcG9zaXRpb246ICdlbmQnIH0pO1xyXG4gIH1cclxuICBuYXYocGF0aCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFtwYXRoXSk7XHJcbiAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gICAgdGhpcy5jb2xsYXBzZXN1Ym1lbnUoKTtcclxuICB9XHJcbiAgb25OZXdNZXNzYWdlKG1vZGVsOiBSZWNpcGllbnRNb2RlbCkge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKFsnbWFpbGJveC9pJywgbW9kZWwuaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgIHtcclxuICAgICAgICBzdGF0ZTogeyBpdGVtOiBtb2RlbCB9LFxyXG4gICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhclxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgY2xvc2VzdWJtZW51KCkge1xyXG4gICAgdGhpcy5zdWJtZW51ID0gbnVsbDtcclxuICB9XHJcbiAgb3Blbm5ldygpIHtcclxuICAgIGlmICh0aGlzLmZvcm1zLmxlbmd0aCA+IDEpIHtcclxuICAgICAgaWYgKHRoaXMuc3VibWVudSA9PT0gJ25ldycpXHJcbiAgICAgICAgdGhpcy5jbG9zZXN1Ym1lbnUoKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMub3BlbnN1Ym1lbnUoJ25ldycpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB0aGlzLl9jcmVhdGUoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY3JlYXRlKCkge1xyXG4gICAgdGhpcy5jcmVhdGluZyA9IHRydWU7XHJcbiAgICB0aGlzLl9tYWlsYm94LmNyZWF0ZSh0aGlzLmZvcm1zWzBdLm5hbWUpLlxyXG4gICAgICBzdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbJ21haWxib3gvaScsIHIuaWQuZW5jb2RlSWQoKV0sXHJcbiAgICAgICAgICB7XHJcbiAgICAgICAgICAgIHBvbGljeTogT3BlblBvbGljeS5DbGVhcixcclxuICAgICAgICAgICAgc3RhdGU6IHsgaXRlbTogciB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSwgKGU6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faGFuZGxlRXJyKGUpO1xyXG4gICAgICAgIHRoaXMuY3JlYXRpbmcgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVFcnIocmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlIHwgR2VvbG9jYXRpb25Qb3NpdGlvbkVycm9yKSB7XHJcbiAgICBpZiAocmVzcG9uc2UuY29uc3RydWN0b3IubmFtZSA9PT0gJ1Bvc2l0aW9uRXJyb3InKVxyXG4gICAgICBzd2l0Y2ggKChyZXNwb25zZSBhcyBHZW9sb2NhdGlvblBvc2l0aW9uRXJyb3IpLmNvZGUpIHtcclxuICAgICAgICBjYXNlIDE6XHJcbiAgICAgICAgICB0aGlzLl9zYi5lcnJvcignVXNlckRlbmllZEdlb0VycicpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHRoaXMuX3NiLmVycm9yKCdHZW9FcnInKTtcclxuICAgICAgfVxyXG4gICAgZWxzZSBzd2l0Y2ggKChyZXNwb25zZSBhcyBIdHRwRXJyb3JSZXNwb25zZSkuc3RhdHVzKSB7XHJcbiAgICAgIGNhc2UgNDAxOlxyXG4gICAgICAgIHRoaXMuX3NiLmVycm9yKCdVbmF1dGhvcml6ZWQnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSA0MDY6XHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3JTdHJpbmcoKHJlc3BvbnNlIGFzIEh0dHBFcnJvclJlc3BvbnNlKS5lcnJvcik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgNDI2OiAvLyBsaWNlbnNlXHJcbiAgICAgICAgdGhpcy5fc2IuZXJyb3IoJ0xpY2Vuc2VFcnInKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zYi5lcnJvcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbnN1Ym1lbnUobWVudTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zdWJtZW51ID09PSBtZW51KVxyXG4gICAgICB0aGlzLnN1Ym1lbnVNb2RlID0gdGhpcy5zdWJtZW51TW9kZSA9PT0gJ2Z1bGwnID8gJ3NocmluaycgOiAnZnVsbCc7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5zdWJtZW51ID0gbWVudTtcclxuICAgICAgdGhpcy5zdWJtZW51TW9kZSA9ICdmdWxsJztcclxuICAgIH1cclxuICB9XHJcbiAgY29sbGFwc2VzdWJtZW51KCkge1xyXG4gICAgaWYgKCF0aGlzLnBpbm5lZCAmJiB0aGlzLnN1Ym1lbnUgIT09ICduZXcnKSB0aGlzLnN1Ym1lbnVNb2RlID0gJ3Nocmluayc7XHJcbiAgfVxyXG4gIHRvZ2dsZVBpbm5lZCgpIHtcclxuICAgIHRoaXMucGlubmVkID0gIXRoaXMucGlubmVkO1xyXG4gICAgdGhpcy5zdWJtZW51TW9kZSA9IHRoaXMucGlubmVkID8gJ2Z1bGwnIDogJ3Nocmluayc7XHJcbiAgfVxyXG4gIG92ZXJyaWRlIG1haWxzKCkge1xyXG4gICAgc3VwZXIubWFpbHMoKTtcclxuICAgIHRoaXMub3BlbnN1Ym1lbnUoJ21haWxib3gnKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQWx0ICsgbi9OLCBDdHJsICsgLlxyXG4gICAqIEBwYXJhbSBldmVudFxyXG4gICAqL1xyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxyXG4gIGhhbmRsZUtleWJvYXJkRXZlbnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5hbHRLZXkgJiYgKGV2ZW50LndoaWNoID09PSAxMTAgfHwgZXZlbnQud2hpY2ggPT09IDc4KSkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ID09PSAnbmV3JylcclxuICAgICAgICB0aGlzLnN1Ym1lbnUgPSBudWxsO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5mb3Jtcy5sZW5ndGggPT09IDEpXHJcbiAgICAgICAgICB0aGlzLl9jcmVhdGUoKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuc3VibWVudSA9ICduZXcnO1xyXG4gICAgICAgICAgdGhpcy5zdWJtZW51TW9kZSA9ICdmdWxsJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGV2ZW50LmN0cmxLZXkgJiYgZXZlbnQud2hpY2ggPT09IDE5MCkge1xyXG4gICAgICBpZiAodGhpcy5zdWJtZW51ICYmICF0aGlzLl9jb2xsYXBzZVRvZ2dsZSkge1xyXG4gICAgICAgIHRoaXMuc3VibWVudU1vZGUgPSB0aGlzLnN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJyA/ICdmdWxsJyA6ICdzaHJpbmsnO1xyXG4gICAgICAgIHRoaXMuX2NvbGxhcHNlVG9nZ2xlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLmNvbGxhcHNlZCA9ICF0aGlzLmNvbGxhcHNlZDtcclxuICAgICAgICB0aGlzLl9jb2xsYXBzZVRvZ2dsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgW2NsYXNzLm5hdi1jb2xsYXBzZWRdPVwiY29sbGFwc2VkXCIgW2NsYXNzLm5hdi1vcGVuXT1cInN1Ym1lbnVcIlxyXG4gICAgIFtjbGFzcy5kaWFsb2ddPVwiZGlhbG9nXCJcclxuICAgICBjbGFzcz1cIm5hdi1tZW51IHJvd1wiPlxyXG4gIDwhLS1bY2xhc3MubG9hZGluZ109XCJsb2FkaW5nXCItLT5cclxuICA8ZGl2IGNsYXNzPVwiY29sdW1uXCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8ZGl2IFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ25ldydcIiBjbGFzcz1cIm5ldy1jb250YWluZXJcIiAqbmdJZj1cImZvcm1zLmxlbmd0aFwiPlxyXG4gICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJjb21wb3NlXCJcclxuICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidDb21wb3NlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5uZXcoKVwiIFtkaXNhYmxlZF09XCJjcmVhdGluZ1wiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidDb21wb3NlJ3wgdHJhbnNsYXRlXCIgY29sb3I9XCJwcmltYXJ5XCIgZGF0YS1oZWxwPVwiY29tcG9zZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uPmFkZDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J0NvbXBvc2UnfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxtYXQtbmF2LWxpc3Q+XHJcbiAgICAgICAgPG1hdC1saXN0LWl0ZW0gW2F0dHIuYXJpYS1sYWJlbF09XCInRGFzaGJvYXJkJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm5hdignZGFzaGJvYXJkJylcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdkYXNoYm9hcmQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWhlbHA9XCJkYXNoYm9hcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidEYXNoYm9hcmQnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmFwcHM8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwibmF2LWxhYmVsXCI+e3snRGFzaGJvYXJkJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwibWFpbHMoKVwiIFtiaXpkb2NUb29sdGlwXT1cIidNYWlsYm94J3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlTWVudSA9PT0gJ21haWxib3gnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidNYWlsYm94JyB8IHRyYW5zbGF0ZVwiIGRhdGEtaGVscD1cImZvbGRlcnNcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SWNvbiBbbWF0QmFkZ2VdPVwicHJvZmlsZS5pbmJveENvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cInByb2ZpbGUuaW5ib3hDb3VudCA8IDFcIiBtYXRCYWRnZUNvbG9yPVwiYWNjZW50XCI+aW5ib3g8L21hdC1pY29uPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIj57eydNYWlsYm94JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSBbYXR0ci5hcmlhLWxhYmVsXT1cIidTY2hlZHVsZXInIHwgdHJhbnNsYXRlXCIgKm5nSWY9XCJzY2hlZHVsZXJFbmFibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2KCdzY2hlZHVsZScpXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnc2NoZWR1bGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInU2NoZWR1bGVyJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIj5cclxuICAgICAgICAgIDxtYXQtaWNvbiBtYXRMaXN0SWNvbiBjbGFzcz1cIm1hdC1pY29uLXJ0bC1taXJyb3JcIj5kYXRlX3JhbmdlPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7ICdTY2hlZHVsZXInIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxtYXQtbGlzdC1pdGVtICpuZ0lmPSdjaGF0RW5hYmxlZCcgZGF0YS1oZWxwPVwiY2hhdFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ0NoYXQnIHwgdHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmF2KCdjb250YWN0cycpXCIgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnY29udGFjdHMnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbYml6ZG9jVG9vbHRpcF09XCInQ2hhdCd8dHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiZW5kXCIgW2JpemRvY1Rvb2x0aXBEaXNhYmxlZF09XCIhY29sbGFwc2VkXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24gbWF0TGlzdEljb24gW21hdEJhZGdlXT1cInByb2ZpbGUuY29udmVyc2F0aW9uc0NvdW50XCIgW21hdEJhZGdlSGlkZGVuXT1cIiFwcm9maWxlLmNvbnZlcnNhdGlvbnNDb3VudFwiIG1hdEJhZGdlQ29sb3I9XCJhY2NlbnRcIj5jaGF0PC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7ICdDaGF0JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWRpdmlkZXI+PC9tYXQtZGl2aWRlcj5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdJZj1cImVuYWJsZUFuYWx5c2lzICYmIHByb2ZpbGUuY3ViZXMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ2N1YmUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnY3ViZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidDdWJlJ3x0cmFuc2xhdGVcIiBiaXpkb2NUb29sdGlwUG9zaXRpb249XCJlbmRcIiBbYml6ZG9jVG9vbHRpcERpc2FibGVkXT1cIiFjb2xsYXBzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIGRhdGEtaGVscD1cImN1YmVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidDdWJlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmVxdWFsaXplcjwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJuYXYtbGFiZWxcIj57eydDdWJlJyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LWxpc3QtaXRlbT5cclxuICAgICAgICA8bWF0LWxpc3QtaXRlbSAqbmdJZj1cInByb2ZpbGUucmVwb3J0cy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuc3VibWVudSgncmVwb3J0cycpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZU1lbnUgPT09ICdyZXBvcnRzJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW2JpemRvY1Rvb2x0aXBdPVwiJ1JlcG9ydHMnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiIGRhdGEtaGVscD1cInJlcG9ydHNcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZXBvcnRzJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmxpc3RfYWx0PC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J1JlcG9ydHMnIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzeXNBZG1pblwiPlxyXG4gICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XHJcbiAgICAgICAgICA8bWF0LWxpc3QtaXRlbSAoY2xpY2spPVwib3BlbnN1Ym1lbnUoJ2FkbWluJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVNZW51ID09PSAnYWRtaW4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtiaXpkb2NUb29sdGlwXT1cIidTeXN0ZW0nfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImVuZFwiIFtiaXpkb2NUb29sdGlwRGlzYWJsZWRdPVwiIWNvbGxhcHNlZFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1N5c3RlbScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIG1hdExpc3RJY29uPmRldmljZV9odWI8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1sYWJlbFwiPnt7J1dvcmtmbG93JyB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtbGlzdC1pdGVtPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1uYXYtbGlzdD5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgPCEtLTxsb3R0aWUgbmFtZT1cImxmMzBfZWRpdG9yX3FyN3pnbWNzXCIgKm5nSWY9XCJsb2FkaW5nXCI+PC9sb3R0aWU+LS0+XHJcbiAgICA8IS0tQGFuaW1hdGUtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJzaWduLWluXCI+XHJcbiAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGRhdGEtaGVscD1cInNpZ24taW5cIiBbYml6ZG9jVG9vbHRpcF09XCInU2V0dGluZ3MnIHwgdHJhbnNsYXRlXCIgYml6ZG9jVG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NldHRpbmdzJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJvcHRpb25zKCRldmVudClcIj5cclxuICAgICAgICA8bWF0LWljb24gbWF0QW5pbWF0ZT1cInJvdGF0ZVwiPnNldHRpbmdzb248L21hdC1pY29uPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiBbYXR0ci5hcmlhLWxhYmVsXT1cIidQb3dlcicgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwic2lnbm91dCgkZXZlbnQpXCIgW2JpemRvY1Rvb2x0aXBdPVwiJ0V4aXQnfHRyYW5zbGF0ZVwiIGJpemRvY1Rvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XHJcbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiPmxvZ291dDwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqbmdJZj1cInN1Ym1lbnVcIiBjbGFzcz1cInN1Yi1tZW51XCIgKG1vdXNlbGVhdmUpPVwiY29sbGFwc2VzdWJtZW51KClcIiBbQHN1Ym1lbnVdPVwic3VibWVudU1vZGVcIiAoQHN1Ym1lbnUuZG9uZSk9XCJyZXNpemUoKVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFjdGlvblwiICpuZ0lmPVwic3VibWVudSAhPT0gJ25ldydcIj5cclxuICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cInRvZ2dsZVBpbm5lZCgpXCI+PG1hdC1pY29uIGNsYXNzPVwibWF0LWljb24tcnRsLW1pcnJvclwiIFtiaXpkb2NUb29sdGlwXT1cIihwaW5uZWQ/J0NvbGxhcHNlJzonRXhwYW5kJyl8dHJhbnNsYXRlXCIgW2lubGluZV09XCJ0cnVlXCI+e3twaW5uZWQgPyAna2V5Ym9hcmRfZG91YmxlX2Fycm93X2xlZnQnIDogJ2tleWJvYXJkX2RvdWJsZV9hcnJvd19yaWdodCd9fTwvbWF0LWljb24+PC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInN1Ym1lbnVcIj5cclxuICAgICAgPGJpemRvYy1uZXctbWVudSAqbmdTd2l0Y2hDYXNlPVwiJ25ldydcIiAoY2hhbmdlKT1cImNsb3Nlc3VibWVudSgpXCI+PC9iaXpkb2MtbmV3LW1lbnU+XHJcbiAgICAgIDxiaXpkb2MtZm9sZGVycy1tZW51ICpuZ1N3aXRjaENhc2U9XCInbWFpbGJveCdcIiBbY29sbGFwc2VkXT1cInN1Ym1lbnVNb2RlID09PSAnc2hyaW5rJ1wiIChjaGFuZ2UpPVwiY29sbGFwc2VzdWJtZW51KClcIj48L2JpemRvYy1mb2xkZXJzLW1lbnU+XHJcbiAgICAgIDxiaXpkb2MtYWRtaW4tbWVudSAqbmdTd2l0Y2hDYXNlPVwiJ2FkbWluJ1wiIFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCI+PC9iaXpkb2MtYWRtaW4tbWVudT5cclxuICAgICAgPGJpemRvYy1yZXBvcnRzLW1lbnUgKm5nU3dpdGNoQ2FzZT1cIidyZXBvcnRzJ1wiIFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLXJlcG9ydHMtbWVudT5cclxuICAgICAgPGJpemRvYy1jdWJlLW1lbnUgKm5nU3dpdGNoQ2FzZT1cIidjdWJlJ1wiIFtjb2xsYXBzZWRdPVwic3VibWVudU1vZGUgPT09ICdzaHJpbmsnXCIgKGNoYW5nZSk9XCJjb2xsYXBzZXN1Ym1lbnUoKVwiPjwvYml6ZG9jLWN1YmUtbWVudT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJiYWNrZHJvcFwiICpuZ0lmPVwiZGlhbG9nXCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48Yml6ZG9jLXBhbmVzLW91dGxldCAoZGlhbG9nQ2hhbmdlKT1cImRpYWxvZyA9ICRldmVudFwiPjwvYml6ZG9jLXBhbmVzLW91dGxldD5cclxuIl19