@hmcts/ccd-case-ui-toolkit 6.16.2-ccpay-5.2.8 → 6.18.0-welsh-release

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 (441) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +8657 -4204
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/app.config.js +1 -1
  6. package/esm2015/lib/components/banners/alert/alert.component.js +7 -5
  7. package/esm2015/lib/components/banners/alert/alert.module.js +12 -4
  8. package/esm2015/lib/components/footer/footer.component.js +55 -30
  9. package/esm2015/lib/components/footer/footers.module.js +12 -4
  10. package/esm2015/lib/components/form/date-input/date-input.component.js +56 -37
  11. package/esm2015/lib/components/form/form.module.js +8 -4
  12. package/esm2015/lib/components/header/header-bar/header-bar.component.js +32 -19
  13. package/esm2015/lib/components/header/headers.module.js +6 -4
  14. package/esm2015/lib/components/header/navigation/navigation-item.component.js +9 -7
  15. package/esm2015/lib/components/header/phase/phase.component.js +20 -9
  16. package/esm2015/lib/components/tabs/tabs.component.js +8 -5
  17. package/esm2015/lib/components/tabs/tabs.module.js +6 -2
  18. package/esm2015/lib/shared/commons/case-edit-data/case-edit-validation.model.js +1 -1
  19. package/esm2015/lib/shared/components/activity/activity-banner/activity-banner.component.js +12 -9
  20. package/esm2015/lib/shared/components/activity/activity-icon/activity-icon.component.js +11 -8
  21. package/esm2015/lib/shared/components/activity/activity.component.js +15 -10
  22. package/esm2015/lib/shared/components/activity/activity.module.js +6 -2
  23. package/esm2015/lib/shared/components/case-editor/case-create/case-create.component.js +2 -2
  24. package/esm2015/lib/shared/components/case-editor/case-edit/case-edit.component.js +13 -15
  25. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +30 -26
  26. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +2 -2
  27. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +51 -34
  28. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +129 -99
  29. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +35 -28
  30. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +51 -26
  31. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-reassigned/case-event-completion-task-reassigned.component.js +51 -28
  32. package/esm2015/lib/shared/components/case-editor/case-progress/case-progress.component.js +2 -2
  33. package/esm2015/lib/shared/components/case-editor/services/case-edit-wizard.guard.js +3 -2
  34. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +19 -0
  35. package/esm2015/lib/shared/components/case-editor/services/work-allocation.service.js +2 -2
  36. package/esm2015/lib/shared/components/case-history/case-history.component.js +89 -63
  37. package/esm2015/lib/shared/components/case-history/case-history.module.js +18 -14
  38. package/esm2015/lib/shared/components/case-list/case-list.component.js +56 -49
  39. package/esm2015/lib/shared/components/case-list/case-list.module.js +8 -4
  40. package/esm2015/lib/shared/components/case-list-filters/case-list-filters.module.js +11 -7
  41. package/esm2015/lib/shared/components/case-timeline/case-timeline.component.js +9 -6
  42. package/esm2015/lib/shared/components/case-timeline/case-timeline.module.js +12 -8
  43. package/esm2015/lib/shared/components/case-viewer/case-basic-access-view/case-basic-access-view.component.js +106 -61
  44. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +89 -69
  45. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-success/case-challenged-access-success.component.js +45 -23
  46. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +16 -13
  47. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +157 -117
  48. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-reject/case-review-specific-access-reject.component.js +32 -20
  49. package/esm2015/lib/shared/components/case-viewer/case-review-specific-access-request/case-review-specific-access-request.component.js +107 -79
  50. package/esm2015/lib/shared/components/case-viewer/case-specific-access-request/case-specific-access-request.component.js +79 -49
  51. package/esm2015/lib/shared/components/case-viewer/case-view/case-view.component.js +1 -1
  52. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +37 -27
  53. package/esm2015/lib/shared/components/case-viewer/printer/case-printer.component.js +36 -22
  54. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.component.js +63 -40
  55. package/esm2015/lib/shared/components/create-case-filters/create-case-filters.module.js +6 -2
  56. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +28 -14
  57. package/esm2015/lib/shared/components/dialogs/dialogs.module.js +6 -2
  58. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +28 -14
  59. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +28 -14
  60. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +28 -14
  61. package/esm2015/lib/shared/components/error/callback-errors.component.js +34 -23
  62. package/esm2015/lib/shared/components/error/errors.module.js +6 -2
  63. package/esm2015/lib/shared/components/error-message/error-message.component.js +14 -11
  64. package/esm2015/lib/shared/components/error-message/error-message.module.js +8 -4
  65. package/esm2015/lib/shared/components/event-start/components/multiple-tasks-exist/multiple-tasks-exist.component.js +39 -20
  66. package/esm2015/lib/shared/components/event-start/components/no-tasks-available/no-tasks-available.component.js +34 -18
  67. package/esm2015/lib/shared/components/event-start/components/task-assigned/task-assigned.component.js +34 -19
  68. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +50 -25
  69. package/esm2015/lib/shared/components/event-start/components/task-conflict/task-conflict.component.js +39 -20
  70. package/esm2015/lib/shared/components/event-start/components/task-unassigned/task-unassigned.component.js +34 -18
  71. package/esm2015/lib/shared/components/event-start/event-start.module.js +8 -4
  72. package/esm2015/lib/shared/components/event-trigger/event-trigger.component.js +27 -17
  73. package/esm2015/lib/shared/components/event-trigger/event-trigger.module.js +6 -2
  74. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.component.js +7 -5
  75. package/esm2015/lib/shared/components/loading-spinner/loading-spinner.module.js +6 -2
  76. package/esm2015/lib/shared/components/pagination/pagination.component.js +84 -67
  77. package/esm2015/lib/shared/components/pagination/pagination.module.js +8 -4
  78. package/esm2015/lib/shared/components/palette/address/write-address-field.component.js +50 -31
  79. package/esm2015/lib/shared/components/palette/base-field/abstract-field-read.component.js +1 -1
  80. package/esm2015/lib/shared/components/palette/base-field/field-read-label.component.js +10 -8
  81. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +5 -1
  82. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +1 -1
  83. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +62 -37
  84. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +246 -42
  85. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +144 -73
  86. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +181 -0
  87. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +3 -1
  88. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +62 -87
  89. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +6 -0
  90. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +133 -101
  91. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +54 -34
  92. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +186 -113
  93. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +292 -0
  94. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +286 -99
  95. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  96. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  97. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  98. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +9 -0
  99. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +12 -0
  100. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +3 -2
  101. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +8 -3
  102. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +6 -0
  103. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +6 -0
  104. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +8 -2
  105. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +3 -2
  106. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +2 -1
  107. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +6 -0
  108. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +6 -0
  109. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +3 -1
  110. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +3 -2
  111. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +8 -4
  112. package/esm2015/lib/shared/components/palette/case-flag/index.js +2 -1
  113. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +41 -0
  114. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +5 -0
  115. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +41 -0
  116. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +109 -0
  117. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +77 -0
  118. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +121 -50
  119. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +250 -141
  120. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +16 -12
  121. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +68 -57
  122. package/esm2015/lib/shared/components/palette/complex/read-complex-field-collection-table.component.js +50 -46
  123. package/esm2015/lib/shared/components/palette/complex/read-complex-field-raw.component.js +7 -6
  124. package/esm2015/lib/shared/components/palette/complex/read-complex-field-table.component.js +22 -20
  125. package/esm2015/lib/shared/components/palette/complex/write-complex-field.component.js +5 -4
  126. package/esm2015/lib/shared/components/palette/date/write-date-field.component.js +16 -12
  127. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +29 -17
  128. package/esm2015/lib/shared/components/palette/document/write-document-field.component.js +31 -25
  129. package/esm2015/lib/shared/components/palette/dynamic-list/read-dynamic-list-field.component.js +9 -7
  130. package/esm2015/lib/shared/components/palette/dynamic-list/write-dynamic-list-field.component.js +32 -20
  131. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +2 -2
  132. package/esm2015/lib/shared/components/palette/dynamic-radio-list/read-dynamic-radio-list-field.component.js +9 -7
  133. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +27 -18
  134. package/esm2015/lib/shared/components/palette/email/write-email-field.component.js +16 -12
  135. package/esm2015/lib/shared/components/palette/fixed-list/read-fixed-list-field.component.js +9 -7
  136. package/esm2015/lib/shared/components/palette/fixed-list/write-fixed-list-field.component.js +19 -14
  137. package/esm2015/lib/shared/components/palette/fixed-radio-list/read-fixed-radio-list-field.component.js +9 -7
  138. package/esm2015/lib/shared/components/palette/fixed-radio-list/write-fixed-radio-list-field.component.js +20 -15
  139. package/esm2015/lib/shared/components/palette/history/event-log/event-log-details.component.js +87 -65
  140. package/esm2015/lib/shared/components/palette/history/event-log/event-log-table.component.js +60 -46
  141. package/esm2015/lib/shared/components/palette/index.js +3 -2
  142. package/esm2015/lib/shared/components/palette/label/label-field.component.js +24 -5
  143. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +1 -1
  144. package/esm2015/lib/shared/components/palette/markdown/index.js +2 -1
  145. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +42 -0
  146. package/esm2015/lib/shared/components/palette/markdown/markdown.component.js +4 -4
  147. package/esm2015/lib/shared/components/palette/money-gbp/write-money-gbp-field.component.js +16 -12
  148. package/esm2015/lib/shared/components/palette/multi-select-list/read-multi-select-list-field.component.js +15 -11
  149. package/esm2015/lib/shared/components/palette/multi-select-list/write-multi-select-list-field.component.js +19 -14
  150. package/esm2015/lib/shared/components/palette/number/write-number-field.component.js +16 -12
  151. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-field.component.js +43 -25
  152. package/esm2015/lib/shared/components/palette/order-summary/read-order-summary-row.component.js +7 -6
  153. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-raw.component.js +41 -29
  154. package/esm2015/lib/shared/components/palette/organisation/read-organisation-field-table.component.js +48 -35
  155. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +88 -50
  156. package/esm2015/lib/shared/components/palette/palette.module.js +185 -88
  157. package/esm2015/lib/shared/components/palette/palette.service.js +5 -2
  158. package/esm2015/lib/shared/components/palette/phone-uk/write-phone-uk-field.component.js +16 -12
  159. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +120 -0
  160. package/esm2015/lib/shared/components/palette/query-management/components/index.js +9 -0
  161. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +64 -0
  162. package/esm2015/lib/shared/components/palette/query-management/components/query-create/query-create.component.js +18 -0
  163. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +56 -0
  164. package/esm2015/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.js +150 -0
  165. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +175 -0
  166. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +67 -0
  167. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +214 -0
  168. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +108 -0
  169. package/esm2015/lib/shared/components/palette/query-management/index.js +6 -0
  170. package/esm2015/lib/shared/components/palette/query-management/models/index.js +7 -0
  171. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-message.model.js +2 -0
  172. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.js +2 -0
  173. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +2 -0
  174. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +18 -0
  175. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +35 -0
  176. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.js +6 -0
  177. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +83 -0
  178. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +12 -0
  179. package/esm2015/lib/shared/components/palette/query-management/write-query-management-field.component.js +45 -0
  180. package/esm2015/lib/shared/components/palette/text/read-text-field.component.js +7 -5
  181. package/esm2015/lib/shared/components/palette/text/write-text-field.component.js +16 -12
  182. package/esm2015/lib/shared/components/palette/text-area/read-text-area-field.component.js +7 -5
  183. package/esm2015/lib/shared/components/palette/text-area/write-text-area-field.component.js +16 -12
  184. package/esm2015/lib/shared/components/palette/utils/first-error.pipe.js +22 -11
  185. package/esm2015/lib/shared/components/palette/utils/utils.module.js +12 -6
  186. package/esm2015/lib/shared/components/palette/yes-no/read-yes-no-field.component.js +7 -5
  187. package/esm2015/lib/shared/components/palette/yes-no/write-yes-no-field.component.js +20 -15
  188. package/esm2015/lib/shared/components/search-filters/search-filters.component.js +60 -35
  189. package/esm2015/lib/shared/components/search-filters/search-filters.module.js +14 -10
  190. package/esm2015/lib/shared/components/search-result/search-result.component.js +132 -95
  191. package/esm2015/lib/shared/components/search-result/search-result.module.js +16 -13
  192. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.component.js +90 -52
  193. package/esm2015/lib/shared/components/workbasket-filters/workbasket-filters.module.js +13 -9
  194. package/esm2015/lib/shared/domain/alert/alert-status-params.model.js +2 -0
  195. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +17 -2
  196. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +6 -0
  197. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +1 -2
  198. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +3 -1
  199. package/esm2015/lib/shared/fixture/shared.test.fixture.js +2 -1
  200. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +16 -0
  201. package/esm2015/lib/shared/pipes/generic/index.js +2 -0
  202. package/esm2015/lib/shared/pipes/index.js +3 -2
  203. package/esm2015/lib/shared/pipes/pipes.module.js +9 -5
  204. package/esm2015/lib/shared/services/alert/alert.service.js +28 -8
  205. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +9 -3
  206. package/esm2015/lib/shared/services/fields/fields.utils.js +22 -1
  207. package/esm2015/lib/shared/services/form/form-value.service.js +37 -43
  208. package/esm2015/lib/shared/services/request/request.options.builder.js +7 -1
  209. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +9998 -6037
  210. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  211. package/lib/app.config.d.ts.map +1 -1
  212. package/lib/components/banners/alert/alert.module.d.ts +2 -1
  213. package/lib/components/banners/alert/alert.module.d.ts.map +1 -1
  214. package/lib/components/footer/footers.module.d.ts +2 -1
  215. package/lib/components/footer/footers.module.d.ts.map +1 -1
  216. package/lib/components/form/form.module.d.ts +2 -1
  217. package/lib/components/form/form.module.d.ts.map +1 -1
  218. package/lib/components/header/headers.module.d.ts +2 -1
  219. package/lib/components/header/headers.module.d.ts.map +1 -1
  220. package/lib/components/tabs/tabs.component.d.ts.map +1 -1
  221. package/lib/components/tabs/tabs.module.d.ts +2 -1
  222. package/lib/components/tabs/tabs.module.d.ts.map +1 -1
  223. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts +1 -0
  224. package/lib/shared/commons/case-edit-data/case-edit-validation.model.d.ts.map +1 -1
  225. package/lib/shared/components/activity/activity.module.d.ts +2 -1
  226. package/lib/shared/components/activity/activity.module.d.ts.map +1 -1
  227. package/lib/shared/components/case-editor/case-edit/case-edit.component.d.ts.map +1 -1
  228. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +6 -5
  229. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  230. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  231. package/lib/shared/components/case-editor/case-editor.module.d.ts +3 -2
  232. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  233. package/lib/shared/components/case-editor/services/case-edit-wizard.guard.d.ts.map +1 -1
  234. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +11 -0
  235. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +1 -0
  236. package/lib/shared/components/case-history/case-history.module.d.ts +2 -1
  237. package/lib/shared/components/case-history/case-history.module.d.ts.map +1 -1
  238. package/lib/shared/components/case-list/case-list.module.d.ts +2 -1
  239. package/lib/shared/components/case-list/case-list.module.d.ts.map +1 -1
  240. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts +2 -1
  241. package/lib/shared/components/case-list-filters/case-list-filters.module.d.ts.map +1 -1
  242. package/lib/shared/components/case-timeline/case-timeline.module.d.ts +2 -1
  243. package/lib/shared/components/case-timeline/case-timeline.module.d.ts.map +1 -1
  244. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  245. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +3 -1
  246. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  247. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +6 -4
  248. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  249. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts +2 -1
  250. package/lib/shared/components/create-case-filters/create-case-filters.module.d.ts.map +1 -1
  251. package/lib/shared/components/dialogs/dialogs.module.d.ts +2 -1
  252. package/lib/shared/components/dialogs/dialogs.module.d.ts.map +1 -1
  253. package/lib/shared/components/error/errors.module.d.ts +2 -1
  254. package/lib/shared/components/error/errors.module.d.ts.map +1 -1
  255. package/lib/shared/components/error-message/error-message.module.d.ts +2 -1
  256. package/lib/shared/components/error-message/error-message.module.d.ts.map +1 -1
  257. package/lib/shared/components/event-start/event-start.module.d.ts +2 -1
  258. package/lib/shared/components/event-start/event-start.module.d.ts.map +1 -1
  259. package/lib/shared/components/event-trigger/event-trigger.module.d.ts +2 -1
  260. package/lib/shared/components/event-trigger/event-trigger.module.d.ts.map +1 -1
  261. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts +2 -1
  262. package/lib/shared/components/loading-spinner/loading-spinner.module.d.ts.map +1 -1
  263. package/lib/shared/components/pagination/pagination.module.d.ts +2 -1
  264. package/lib/shared/components/pagination/pagination.module.d.ts.map +1 -1
  265. package/lib/shared/components/palette/base-field/abstract-field-read.component.d.ts.map +1 -1
  266. package/lib/shared/components/palette/base-field/field-read.component.d.ts +1 -0
  267. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  268. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  269. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +2 -1
  270. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  271. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +20 -5
  272. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  273. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +2 -1
  274. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  275. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +28 -0
  276. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +1 -0
  277. package/lib/shared/components/palette/case-flag/components/index.d.ts +2 -0
  278. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  279. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +4 -8
  280. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  281. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +5 -0
  282. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +1 -0
  283. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +10 -8
  284. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  285. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +2 -1
  286. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  287. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +12 -8
  288. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  289. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +27 -0
  290. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +1 -0
  291. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +19 -9
  292. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  293. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +1 -10
  294. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  295. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +6 -0
  296. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  297. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +1 -0
  298. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  299. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +8 -0
  300. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +1 -0
  301. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +11 -0
  302. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +1 -0
  303. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +2 -1
  304. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  305. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +8 -3
  306. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  307. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +5 -0
  308. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +1 -0
  309. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +5 -0
  310. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +1 -0
  311. package/lib/shared/components/palette/case-flag/enums/index.d.ts +7 -1
  312. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  313. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +2 -1
  314. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  315. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +1 -0
  316. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  317. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +5 -0
  318. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +1 -0
  319. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +5 -0
  320. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +1 -0
  321. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +3 -1
  322. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  323. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +3 -2
  324. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  325. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +7 -3
  326. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  327. package/lib/shared/components/palette/case-flag/index.d.ts +1 -0
  328. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  329. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +19 -0
  330. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +1 -0
  331. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +5 -0
  332. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +1 -0
  333. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +18 -0
  334. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +1 -0
  335. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +25 -0
  336. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +1 -0
  337. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +21 -0
  338. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +1 -0
  339. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +11 -8
  340. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  341. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +23 -24
  342. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  343. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +3 -2
  344. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  345. package/lib/shared/components/palette/index.d.ts +2 -1
  346. package/lib/shared/components/palette/index.d.ts.map +1 -1
  347. package/lib/shared/components/palette/label/label-field.component.d.ts +2 -1
  348. package/lib/shared/components/palette/label/label-field.component.d.ts.map +1 -1
  349. package/lib/shared/components/palette/markdown/index.d.ts +1 -0
  350. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  351. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +13 -0
  352. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +1 -0
  353. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -3
  354. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  355. package/lib/shared/components/palette/palette.module.d.ts +134 -117
  356. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  357. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  358. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +3 -0
  359. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +1 -0
  360. package/lib/shared/components/palette/query-management/components/index.d.ts +9 -0
  361. package/lib/shared/components/palette/query-management/components/index.d.ts.map +1 -0
  362. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +10 -0
  363. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +1 -0
  364. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts +9 -0
  365. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts.map +1 -0
  366. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +11 -0
  367. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +1 -0
  368. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts +8 -0
  369. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts.map +1 -0
  370. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +18 -0
  371. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +1 -0
  372. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +17 -0
  373. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +1 -0
  374. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +8 -0
  375. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +1 -0
  376. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +10 -0
  377. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +1 -0
  378. package/lib/shared/components/palette/query-management/index.d.ts +6 -0
  379. package/lib/shared/components/palette/query-management/index.d.ts.map +1 -0
  380. package/lib/shared/components/palette/query-management/models/index.d.ts +7 -0
  381. package/lib/shared/components/palette/query-management/models/index.d.ts.map +1 -0
  382. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts +14 -0
  383. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts.map +1 -0
  384. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts +7 -0
  385. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts.map +1 -0
  386. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +7 -0
  387. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +1 -0
  388. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +10 -0
  389. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -0
  390. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +21 -0
  391. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -0
  392. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts +5 -0
  393. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts.map +1 -0
  394. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +17 -0
  395. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +1 -0
  396. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +7 -0
  397. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +1 -0
  398. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts +12 -0
  399. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts.map +1 -0
  400. package/lib/shared/components/palette/utils/first-error.pipe.d.ts +3 -0
  401. package/lib/shared/components/palette/utils/first-error.pipe.d.ts.map +1 -1
  402. package/lib/shared/components/palette/utils/utils.module.d.ts +2 -1
  403. package/lib/shared/components/palette/utils/utils.module.d.ts.map +1 -1
  404. package/lib/shared/components/palette/yes-no/read-yes-no-field.component.d.ts.map +1 -1
  405. package/lib/shared/components/palette/yes-no/write-yes-no-field.component.d.ts.map +1 -1
  406. package/lib/shared/components/search-filters/search-filters.module.d.ts +2 -1
  407. package/lib/shared/components/search-filters/search-filters.module.d.ts.map +1 -1
  408. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  409. package/lib/shared/components/search-result/search-result.module.d.ts +3 -2
  410. package/lib/shared/components/search-result/search-result.module.d.ts.map +1 -1
  411. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts +2 -1
  412. package/lib/shared/components/workbasket-filters/workbasket-filters.module.d.ts.map +1 -1
  413. package/lib/shared/domain/alert/alert-status-params.model.d.ts +6 -0
  414. package/lib/shared/domain/alert/alert-status-params.model.d.ts.map +1 -0
  415. package/lib/shared/domain/case-flag/flag-type.model.d.ts +6 -1
  416. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  417. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +5 -0
  418. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +1 -0
  419. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +0 -1
  420. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  421. package/lib/shared/domain/definition/display-context-enum.model.d.ts +3 -1
  422. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  423. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  424. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +8 -0
  425. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +1 -0
  426. package/lib/shared/pipes/generic/index.d.ts +2 -0
  427. package/lib/shared/pipes/generic/index.d.ts.map +1 -0
  428. package/lib/shared/pipes/index.d.ts +2 -1
  429. package/lib/shared/pipes/index.d.ts.map +1 -1
  430. package/lib/shared/pipes/pipes.module.d.ts +3 -2
  431. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  432. package/lib/shared/services/alert/alert.service.d.ts +8 -4
  433. package/lib/shared/services/alert/alert.service.d.ts.map +1 -1
  434. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +3 -2
  435. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  436. package/lib/shared/services/fields/fields.utils.d.ts +16 -0
  437. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  438. package/lib/shared/services/form/form-value.service.d.ts +14 -13
  439. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  440. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  441. package/package.json +1 -1
@@ -98,7 +98,9 @@ export class CaseEditComponent {
98
98
  form: this.form,
99
99
  });
100
100
  /* istanbul ignore else */
101
- if (!nextPage && !this.eventTrigger.show_summary && !this.eventTrigger.show_event_notes) {
101
+ if (!nextPage &&
102
+ !(this.eventTrigger.show_summary || this.eventTrigger.show_summary === null) &&
103
+ !this.eventTrigger.show_event_notes) {
102
104
  this.submitForm({
103
105
  eventTrigger: this.eventTrigger,
104
106
  form: this.form,
@@ -187,16 +189,13 @@ export class CaseEditComponent {
187
189
  // Remove collection fields that have "min" validation of greater than zero set on the FieldType but are empty;
188
190
  // these will fail validation
189
191
  this.formValueService.removeEmptyCollectionsWithMinValidation(caseEventData.data, eventTrigger.case_fields);
190
- // If this is a Case Flag submission (and thus a FlagLauncher field is present in the event trigger), the flag
191
- // details data needs populating for each Flags field, then the FlagLauncher field needs removing
192
- if (this.isCaseFlagSubmission) {
193
- this.formValueService.populateFlagDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);
194
- this.formValueService.removeFlagLauncherField(caseEventData.data, eventTrigger.case_fields);
195
- }
196
- if (this.isLinkedCasesSubmission) {
197
- this.formValueService.populateLinkedCasesDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);
198
- this.formValueService.removeComponentLauncherField(caseEventData.data, eventTrigger.case_fields);
199
- }
192
+ // For Case Flag submissions (where a FlagLauncher field is present in the event trigger), the flag details data
193
+ // needs populating for each Flags field, then the FlagLauncher field needs removing
194
+ this.formValueService.repopulateFormDataFromCaseFieldValues(caseEventData.data, eventTrigger.case_fields);
195
+ // Data population step required for Linked Cases
196
+ this.formValueService.populateLinkedCasesDetailsFromCaseFields(caseEventData.data, eventTrigger.case_fields);
197
+ // Remove "Launcher"-type fields (these have no values and are not intended to be persisted)
198
+ this.formValueService.removeCaseFieldsOfType(caseEventData.data, eventTrigger.case_fields, ['FlagLauncher', 'ComponentLauncher']);
200
199
  caseEventData.event_token = eventTrigger.event_token;
201
200
  caseEventData.ignore_warning = this.ignoreWarning;
202
201
  if (this.confirmation) {
@@ -315,8 +314,7 @@ export class CaseEditComponent {
315
314
  this.sessionStorageService.removeItem('eventUrl');
316
315
  const confirmation = this.buildConfirmation(response);
317
316
  if (confirmation && (confirmation.getHeader() || confirmation.getBody())) {
318
- // Add finally to fix sonar bug
319
- this.confirm(confirmation).finally();
317
+ this.confirm(confirmation);
320
318
  }
321
319
  else {
322
320
  this.emitSubmitted(response);
@@ -363,7 +361,7 @@ CaseEditComponent.ALERT_MESSAGE = 'Page is being refreshed so you will be redire
363
361
  CaseEditComponent.ɵfac = function CaseEditComponent_Factory(t) { return new (t || CaseEditComponent)(i0.ɵɵdirectiveInject(i1.FormBuilder), i0.ɵɵdirectiveInject(i2.CaseNotifier), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i3.ActivatedRoute), i0.ɵɵdirectiveInject(i4.FieldsUtils), i0.ɵɵdirectiveInject(i4.FieldsPurger), i0.ɵɵdirectiveInject(i5.ConditionalShowRegistrarService), i0.ɵɵdirectiveInject(i2.WizardFactoryService), i0.ɵɵdirectiveInject(i4.SessionStorageService), i0.ɵɵdirectiveInject(i4.WindowService), i0.ɵɵdirectiveInject(i4.FormValueService), i0.ɵɵdirectiveInject(i4.FormErrorService), i0.ɵɵdirectiveInject(i4.LoadingService)); };
364
362
  CaseEditComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditComponent, selectors: [["ccd-case-edit"]], inputs: { eventTrigger: "eventTrigger", submit: "submit", validate: "validate", saveDraft: "saveDraft", caseDetails: "caseDetails" }, outputs: { cancelled: "cancelled", submitted: "submitted" }, features: [i0.ɵɵProvidersFeature([GreyBarService])], decls: 1, vars: 0, template: function CaseEditComponent_Template(rf, ctx) { if (rf & 1) {
365
363
  i0.ɵɵelement(0, "router-outlet");
366
- } }, directives: [i3.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
364
+ } }, directives: [i3.RouterOutlet], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
367
365
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditComponent, [{
368
366
  type: Component,
369
367
  args: [{
@@ -387,4 +385,4 @@ CaseEditComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditComponent, sele
387
385
  }], submitted: [{
388
386
  type: Output
389
387
  }] }); })();
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBSVUsZ0JBQWdCLEVBQy9CLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFDN0UscUJBQXFCLEVBQUUsYUFBYSxFQUNyQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sV0FBVyxDQUFDO0FBRTdE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QUE4QixDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFFBQWdCO1FBQ3hDLE9BQU8sUUFBUSxDQUFDLDBCQUEwQixDQUFDLEtBQUssb0JBQW9CLENBQUM7SUFDdkUsQ0FBQzs7QUF2YnNCLG9DQUFrQixHQUFHLFFBQVEsQ0FBQztBQUM5QiwrQkFBYSxHQUFHLG9GQUFvRixDQUFDO2tGQUZqSCxpQkFBaUI7c0RBQWpCLGlCQUFpQixzUUFGakIsQ0FBQyxjQUFjLENBQUM7UUMzQjdCLGdDQUErQjs7dUZENkJsQixpQkFBaUI7Y0FON0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsMEJBQTBCO2dCQUN2QyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDaEMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQzVCOzRhQU1RLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxNQUFNO2tCQURaLEtBQUs7WUFJQyxRQUFRO2tCQURkLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxXQUFXO2tCQURqQixLQUFLO1lBSUMsU0FBUztrQkFEZixNQUFNO1lBSUEsU0FBUztrQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZSwgR3JleUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gIENhc2VFZGl0Q2FzZVN1Ym1pdCwgQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEsIENhc2VFZGl0R2V0TmV4dFBhZ2UsXG4gIENhc2VFZGl0U3VibWl0Rm9ybSxcbiAgQ2FzZUVkaXRvbkV2ZW50Q2FuQmVDb21wbGV0ZWQsXG4gIENhc2VFdmVudERhdGEsIENhc2VFdmVudFRyaWdnZXIsIENhc2VGaWVsZCxcbiAgQ2FzZVZpZXcsIERyYWZ0LCBIdHRwRXJyb3IsIFByb2ZpbGVcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vd29yay1hbGxvY2F0aW9uL1Rhc2snO1xuaW1wb3J0IHtcbiAgRmllbGRzUHVyZ2VyLCBGaWVsZHNVdGlscywgRm9ybUVycm9yU2VydmljZSwgRm9ybVZhbHVlU2VydmljZSwgTG9hZGluZ1NlcnZpY2UsXG4gIFNlc3Npb25TdG9yYWdlU2VydmljZSwgV2luZG93U2VydmljZVxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIFdpemFyZCwgV2l6YXJkUGFnZSB9IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBFdmVudENvbXBsZXRpb25QYXJhbXMgfSBmcm9tICcuLi9kb21haW4vZXZlbnQtY29tcGxldGlvbi1wYXJhbXMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyLCBXaXphcmRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2Nhc2UtZWRpdC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0dyZXlCYXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUklHSU5fUVVFUllfUEFSQU0gPSAnb3JpZ2luJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBTEVSVF9NRVNTQUdFID0gJ1BhZ2UgaXMgYmVpbmcgcmVmcmVzaGVkIHNvIHlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlIGZpcnN0IHBhZ2Ugb2YgdGhpcyBldmVudC4nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Ym1pdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHByb2ZpbGU/OiBQcm9maWxlKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlOiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2F2ZURyYWZ0OiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxEcmFmdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbjtcblxuICBwdWJsaWMgbmF2aWdhdGlvbk9yaWdpbjogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIGlzUGFnZVJlZnJlc2hlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNTdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcblxuICBwdWJsaWMgc3VibWl0UmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgcHVibGljIGlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgaWdub3JlV2FybmluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBlcnJvcjogSHR0cEVycm9yO1xuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc1N1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzVXRpbHM6IEZpZWxkc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzUHVyZ2VyOiBGaWVsZHNQdXJnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyYXJTZXJ2aWNlOiBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2l6YXJkRmFjdG9yeTogV2l6YXJkRmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd3NTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVZhbHVlU2VydmljZTogRm9ybVZhbHVlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1FcnJvclNlcnZpY2U6IEZvcm1FcnJvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMud2l6YXJkRmFjdG9yeS5jcmVhdGUodGhpcy5ldmVudFRyaWdnZXIpO1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgdGhpcy5pc1BhZ2VSZWZyZXNoZWQgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2lzUGFnZVJlZnJlc2hlZCcpKTtcblxuICAgIHRoaXMuY2hlY2tQYWdlUmVmcmVzaCgpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucm91dGVyLnVybCAmJiAhdGhpcy5pc1BhZ2VSZWZyZXNoZWQpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2V2ZW50VXJsJywgdGhpcy5yb3V0ZXIudXJsKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRhdGE6IG5ldyBGb3JtR3JvdXAoe30pLFxuICAgICAgZXZlbnQ6IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBpZDogW3RoaXMuZXZlbnRUcmlnZ2VyLmlkLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgc3VtbWFyeTogWycnXSxcbiAgICAgICAgZGVzY3JpcHRpb246IFsnJ11cbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbk9yaWdpbiA9IHBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0KSB7XG4gICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1BhZ2VSZWZyZXNoKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzUGFnZVJlZnJlc2hlZCAmJiB0aGlzLmluaXRpYWxVcmwpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgICB0aGlzLndpbmRvd3NTZXJ2aWNlLmFsZXJ0KENhc2VFZGl0Q29tcG9uZW50LkFMRVJUX01FU1NBR0UpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuaW5pdGlhbFVybF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYWdlKHBhZ2VJZDogc3RyaW5nKTogV2l6YXJkUGFnZSB7XG4gICAgcmV0dXJuIHRoaXMud2l6YXJkLmdldFBhZ2UocGFnZUlkLCB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZSh0aGlzLmV2ZW50VHJpZ2dlciwgdGhpcy5mb3JtKSk7XG4gIH1cblxuICBwdWJsaWMgZmlyc3QoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZmlyc3RQYWdlID0gdGhpcy53aXphcmQuZmlyc3RQYWdlKHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2ZpcnN0UGFnZSA/IGZpcnN0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9QYWdlKHBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZ2V0UGFnZShwYWdlSWQpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGFnZSA/IHBhZ2UuaWQgOiAnc3VibWl0J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmICF0aGlzLmluaXRpYWxVcmwpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2V2ZW50VXJsJywgdGhpcy5yb3V0ZXIudXJsKTtcbiAgICB9XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5nZXROZXh0UGFnZSh7XG4gICAgICBjdXJyZW50UGFnZUlkLFxuICAgICAgd2l6YXJkOiB0aGlzLndpemFyZCxcbiAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICBmb3JtOiB0aGlzLmZvcm0sXG4gICAgfSk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmKCFuZXh0UGFnZSAmJiAhdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ICYmICF0aGlzLmV2ZW50VHJpZ2dlci5zaG93X2V2ZW50X25vdGVzKSB7XG4gICAgICB0aGlzLnN1Ym1pdEZvcm0oe1xuICAgICAgICBldmVudFRyaWdnZXI6IHRoaXMuZXZlbnRUcmlnZ2VyLFxuICAgICAgICBmb3JtOiB0aGlzLmZvcm0sXG4gICAgICAgIHN1Ym1pdDogdGhpcy5zdWJtaXQsXG4gICAgICAgIGNhc2VEZXRhaWxzOiB0aGlzLmNhc2VEZXRhaWxzLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZWdpc3RyYXJTZXJ2aWNlLnJlc2V0KCk7XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW25leHRQYWdlID8gbmV4dFBhZ2UuaWQgOiAnc3VibWl0J10sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIHByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuZmllbGRzUHVyZ2VyLmNsZWFySGlkZGVuRmllbGRzKHRoaXMuZm9ybSwgdGhpcy53aXphcmQsIHRoaXMuZXZlbnRUcmlnZ2VyLCBjdXJyZW50UGFnZUlkKTtcbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHByZXZpb3VzUGFnZSA9IHRoaXMud2l6YXJkLnByZXZpb3VzUGFnZShjdXJyZW50UGFnZUlkLCB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZSh0aGlzLmV2ZW50VHJpZ2dlciwgdGhpcy5mb3JtKSk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoIXByZXZpb3VzUGFnZSkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGhlUXVlcnlQYXJhbXM6IFBhcmFtcyA9IHt9O1xuICAgIHRoZVF1ZXJ5UGFyYW1zW0Nhc2VFZGl0Q29tcG9uZW50Lk9SSUdJTl9RVUVSWV9QQVJBTV0gPSB0aGlzLm5hdmlnYXRpb25PcmlnaW47XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwcmV2aW91c1BhZ2UuaWRdLCB7IHF1ZXJ5UGFyYW1zOiB0aGVRdWVyeVBhcmFtcywgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNQcmV2aW91cyhjdXJyZW50UGFnZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aXphcmQuaGFzUHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWxsZWQuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIGVtaXRTdWJtaXR0ZWQocmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLnN1Ym1pdHRlZC5lbWl0KHtjYXNlSWQ6IHJlc3BvbnNlWydpZCddLCBzdGF0dXM6IHRoaXMuZ2V0U3RhdHVzKHJlc3BvbnNlKX0pO1xuICB9XG5cbiAgcHVibGljIGdldE5leHRQYWdlKHsgd2l6YXJkLCBjdXJyZW50UGFnZUlkLCBldmVudFRyaWdnZXIsIGZvcm0gfTogQ2FzZUVkaXRHZXROZXh0UGFnZSk6IFdpemFyZFBhZ2Uge1xuICAgIHJldHVybiB3aXphcmQubmV4dFBhZ2UoXG4gICAgICBjdXJyZW50UGFnZUlkLFxuICAgICAgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUoZXZlbnRUcmlnZ2VyLCBmb3JtKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgY29uZmlybShjb25maXJtYXRpb246IENvbmZpcm1hdGlvbik6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuY29uZmlybWF0aW9uID0gY29uZmlybWF0aW9uO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJ2NvbmZpcm0nXSwge3JlbGF0aXZlVG86IHRoaXMucm91dGV9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKHsgZXZlbnRUcmlnZ2VyLCBmb3JtLCBjYXNlRGV0YWlscywgc3VibWl0IH06IENhc2VFZGl0U3VibWl0Rm9ybSApOiB2b2lkIHtcbiAgICB0aGlzLmlzU3VibWl0dGluZyA9IHRydWU7XG4gICAgLy8gV2UgaGF2ZSB0byBydW4gdGhlIGV2ZW50IGNvbXBsZXRpb24gY2hlY2tzIGlmIHRhc2sgaW4gc2Vzc2lvbiBzdG9yYWdlXG4gICAgLy8gYW5kIGlmIHRoZSB0YXNrIGlzIGluIHNlc3Npb24gc3RvcmFnZSwgdGhlbiBpcyBpdCBhc3NvY2lhdGVkIHRvIHRoZSBjYXNlXG4gICAgbGV0IHRhc2tJblNlc3Npb25TdG9yYWdlOiBUYXNrO1xuICAgIGNvbnN0IHRhc2tTdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd0YXNrVG9Db21wbGV0ZScpO1xuICAgIGlmICh0YXNrU3RyKSB7XG4gICAgICB0YXNrSW5TZXNzaW9uU3RvcmFnZSA9IEpTT04ucGFyc2UodGFza1N0cik7XG4gICAgfVxuXG4gICAgaWYgKHRhc2tJblNlc3Npb25TdG9yYWdlICYmIHRhc2tJblNlc3Npb25TdG9yYWdlLmNhc2VfaWQgPT09IHRoaXMuZ2V0Q2FzZUlkKGNhc2VEZXRhaWxzKSkge1xuICAgICAgLy8gU2hvdyBldmVudCBjb21wbGV0aW9uIGNvbXBvbmVudCB0byBwZXJmb3JtIGV2ZW50IGNvbXBsZXRpb24gY2hlY2tzXG4gICAgICB0aGlzLmV2ZW50Q29tcGxldGlvblBhcmFtcyA9ICh7XG4gICAgICAgIGNhc2VJZDogdGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpLFxuICAgICAgICBldmVudElkOiB0aGlzLmdldEV2ZW50SWQoZm9ybSksXG4gICAgICAgIHRhc2s6IHRhc2tJblNlc3Npb25TdG9yYWdlXG4gICAgICB9KTtcbiAgICAgIHRoaXMuaXNFdmVudENvbXBsZXRpb25DaGVja3NSZXF1aXJlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRhc2sgbm90IGluIHNlc3Npb24gc3RvcmFnZSwgcHJvY2VlZCB0byBzdWJtaXRcbiAgICAgIGNvbnN0IGNhc2VFdmVudERhdGEgPSB0aGlzLmdlbmVyYXRlQ2FzZUV2ZW50RGF0YSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcixcbiAgICAgICAgZm9ybVxuICAgICAgfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoe2Zvcm0sXG4gICAgICAgIGNhc2VFdmVudERhdGEsXG4gICAgICAgIHN1Ym1pdFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldENhc2VJZChjYXNlRGV0YWlsczogQ2FzZVZpZXcpOiBzdHJpbmcge1xuICAgIHJldHVybiAoY2FzZURldGFpbHMgPyBjYXNlRGV0YWlscy5jYXNlX2lkIDogJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFdmVudElkKGZvcm06IEZvcm1Hcm91cCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZvcm0udmFsdWUuZXZlbnQuaWQ7XG4gfVxuXG4gcHJpdmF0ZSBnZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfTogQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEgKTogQ2FzZUV2ZW50RGF0YSB7XG4gIGNvbnN0IGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEgPSB7XG4gICAgZGF0YTogdGhpcy5yZXBsYWNlRW1wdHlDb21wbGV4RmllbGRWYWx1ZXMoXG4gICAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UoXG4gICAgICAgIHRoaXMucmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShcbiAgICAgICAgICBmb3JtLmdldCgnZGF0YScpIGFzIEZvcm1Hcm91cCwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKSkpLFxuICAgIGV2ZW50OiBmb3JtLnZhbHVlLmV2ZW50XG4gIH0gYXMgQ2FzZUV2ZW50RGF0YTtcbiAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLmNsZWFyTm9uQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gIHRoaXMuZm9ybVZhbHVlU2VydmljZS5yZW1vdmVOdWxsTGFiZWxzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZUVtcHR5RG9jdW1lbnRzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgLy8gUmVtb3ZlIGNvbGxlY3Rpb24gZmllbGRzIHRoYXQgaGF2ZSBcIm1pblwiIHZhbGlkYXRpb24gb2YgZ3JlYXRlciB0aGFuIHplcm8gc2V0IG9uIHRoZSBGaWVsZFR5cGUgYnV0IGFyZSBlbXB0eTtcbiAgLy8gdGhlc2Ugd2lsbCBmYWlsIHZhbGlkYXRpb25cbiAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZUVtcHR5Q29sbGVjdGlvbnNXaXRoTWluVmFsaWRhdGlvbihjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gIC8vIElmIHRoaXMgaXMgYSBDYXNlIEZsYWcgc3VibWlzc2lvbiAoYW5kIHRodXMgYSBGbGFnTGF1bmNoZXIgZmllbGQgaXMgcHJlc2VudCBpbiB0aGUgZXZlbnQgdHJpZ2dlciksIHRoZSBmbGFnXG4gIC8vIGRldGFpbHMgZGF0YSBuZWVkcyBwb3B1bGF0aW5nIGZvciBlYWNoIEZsYWdzIGZpZWxkLCB0aGVuIHRoZSBGbGFnTGF1bmNoZXIgZmllbGQgbmVlZHMgcmVtb3ZpbmdcbiAgaWYgKHRoaXMuaXNDYXNlRmxhZ1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucG9wdWxhdGVGbGFnRGV0YWlsc0Zyb21DYXNlRmllbGRzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRmxhZ0xhdW5jaGVyRmllbGQoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICB9XG5cbiAgaWYgKHRoaXMuaXNMaW5rZWRDYXNlc1N1Ym1pc3Npb24pIHtcbiAgICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucG9wdWxhdGVMaW5rZWRDYXNlc0RldGFpbHNGcm9tQ2FzZUZpZWxkcyhjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcyk7XG4gICAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZUNvbXBvbmVudExhdW5jaGVyRmllbGQoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICB9XG5cbiAgY2FzZUV2ZW50RGF0YS5ldmVudF90b2tlbiA9IGV2ZW50VHJpZ2dlci5ldmVudF90b2tlbjtcbiAgY2FzZUV2ZW50RGF0YS5pZ25vcmVfd2FybmluZyA9IHRoaXMuaWdub3JlV2FybmluZztcbiAgaWYgKHRoaXMuY29uZmlybWF0aW9uKSB7XG4gICAgY2FzZUV2ZW50RGF0YS5kYXRhID0ge307XG4gIH1cblxuICByZXR1cm4gY2FzZUV2ZW50RGF0YTtcbn1cblxuLyoqXG4gKiBSZXBsYWNlcyBub24tYXJyYXkgdmFsdWUgb2JqZWN0cyB3aXRoIGBudWxsYCBmb3IgYW55IENvbXBsZXgtdHlwZSBmaWVsZHMgd2hvc2UgdmFsdWUgaXMgZWZmZWN0aXZlbHkgZW1wdHksIGkuZS5cbiAqIGFsbCBpdHMgc3ViLWZpZWxkcyBhbmQgZGVzY2VuZGFudHMgYXJlIGBudWxsYCBvciBgdW5kZWZpbmVkYC5cbiAqXG4gKiBAcGFyYW0gZGF0YSBUaGUgb2JqZWN0IHRyZWUgcmVwcmVzZW50aW5nIGFsbCB0aGUgZm9ybSBmaWVsZCBkYXRhXG4gKiBAcmV0dXJucyBUaGUgZm9ybSBmaWVsZCBkYXRhIG1vZGlmaWVkIGFjY29yZGluZ2x5XG4gKi9cbnByaXZhdGUgcmVwbGFjZUVtcHR5Q29tcGxleEZpZWxkVmFsdWVzKGRhdGE6IG9iamVjdCk6IG9iamVjdCB7XG4gIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShkYXRhW2tleV0pICYmIHR5cGVvZiBkYXRhW2tleV0gPT09ICdvYmplY3QnICYmICFGaWVsZHNVdGlscy5jb250YWluc05vbkVtcHR5VmFsdWVzKGRhdGFba2V5XSkpIHtcbiAgICAgIGRhdGFba2V5XSA9IG51bGw7XG4gICAgfVxuICB9KTtcblxuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBUcmF2ZXJzZSAqYWxsKiB2YWx1ZXMgb2YgYSB7QGxpbmsgRm9ybUdyb3VwfSwgaW5jbHVkaW5nIHRob3NlIGZvciBkaXNhYmxlZCBmaWVsZHMgKGkuZS4gaGlkZGVuIG9uZXMpLCByZXBsYWNpbmcgdGhlXG4gKiB2YWx1ZSBvZiBhbnkgdGhhdCBhcmUgaGlkZGVuIEFORCBoYXZlIGByZXRhaW5faGlkZGVuX3ZhbHVlYCBzZXQgdG8gYHRydWVgIGluIHRoZSBjb3JyZXNwb25kaW5nIGBDYXNlRmllbGRgLCB3aXRoXG4gKiB0aGUgKm9yaWdpbmFsKiB2YWx1ZSBoZWxkIGluIHRoZSBgQ2FzZUZpZWxkYCBvYmplY3QuXG4gKlxuICogVGhpcyBpcyBhcyBwZXIgZGVzaWduIGluIEVVSS0zNjIyLCB3aGVyZSBhbnkgdXNlci1kcml2ZW4gdXBkYXRlcyB0byBoaWRkZW4gZmllbGRzIHdpdGggYHJldGFpbl9oaWRkZW5fdmFsdWVgID1cbiAqIGB0cnVlYCBhcmUgaWdub3JlZCAodGh1cyByZXRhaW5pbmcgdGhlIHZhbHVlIGRpc3BsYXllZCBvcmlnaW5hbGx5KS5cbiAqXG4gKiAqIEZvciBDb21wbGV4IGZpZWxkIHR5cGVzLCB0aGUgcmVwbGFjZW1lbnQgYWJvdmUgaXMgcGVyZm9ybWVkIHJlY3Vyc2l2ZWx5IGZvciBhbGwgaGlkZGVuIHN1Yi1maWVsZHMgd2l0aFxuICogYHJldGFpbl9oaWRkZW5fdmFsdWVgID0gYHRydWVgLlxuICpcbiAqICogRm9yIENvbGxlY3Rpb24gZmllbGQgdHlwZXMsIGluY2x1ZGluZyBjb2xsZWN0aW9ucyBvZiBDb21wbGV4IGFuZCBEb2N1bWVudCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGlzXG4gKiBwZXJmb3JtZWQgZm9yIGFsbCBmaWVsZHMgaW4gdGhlIGNvbGxlY3Rpb24uXG4gKlxuICogQHBhcmFtIGZvcm1Hcm91cCBUaGUgYEZvcm1Hcm91cGAgaW5zdGFuY2Ugd2hvc2UgcmF3IHZhbHVlcyBhcmUgdG8gYmUgdHJhdmVyc2VkXG4gKiBAcGFyYW0gY2FzZUZpZWxkcyBUaGUgYXJyYXkgb2Yge0BsaW5rIENhc2VGaWVsZH0gZG9tYWluIG1vZGVsIG9iamVjdHMgY29ycmVzcG9uZGluZyB0byBmaWVsZHMgaW4gYGZvcm1Hcm91cGBcbiAqIEBwYXJhbSBwYXJlbnRGaWVsZCBSZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBgQ2FzZUZpZWxkYC4gVXNlZCBmb3IgcmV0cmlldmluZyB0aGUgc3ViLWZpZWxkIHZhbHVlcyBvZiBhIENvbXBsZXggZmllbGRcbiAqIHRvIHBlcmZvcm0gcmVjdXJzaXZlIHJlcGxhY2VtZW50IC0gdGhlIHN1Yi1maWVsZCBgQ2FzZUZpZWxkYHMgdGhlbXNlbHZlcyBkbyAqbm90KiBjb250YWluIGFueSB2YWx1ZXNcbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSAqcmF3KiBmb3JtIHZhbHVlIGRhdGEgKGFzIGtleS12YWx1ZSBwYWlycyksIHdpdGggYW55IHZhbHVlIHJlcGxhY2VtZW50cyBhcyBuZWNlc3NhcnlcbiAqL1xucHJpdmF0ZSByZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKGZvcm1Hcm91cDogRm9ybUdyb3VwLCBjYXNlRmllbGRzOiBDYXNlRmllbGRbXSwgcGFyZW50RmllbGQ/OiBDYXNlRmllbGQpOiBvYmplY3Qge1xuICAvLyBHZXQgdGhlIHJhdyBmb3JtIHZhbHVlIGRhdGEsIHdoaWNoIGluY2x1ZGVzIHRoZSB2YWx1ZXMgb2YgYW55IGRpc2FibGVkIGNvbnRyb2xzLCBhcyBrZXktdmFsdWUgcGFpcnNcbiAgY29uc3QgcmF3Rm9ybVZhbHVlRGF0YSA9IGZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuXG4gIC8vIFBsYWNlIGFsbCBjYXNlIGZpZWxkcyBpbiBhIGxvb2t1cCBvYmplY3QsIHNvIHRoZXkgY2FuIGJlIHJldHJpZXZlZCBieSBpZFxuICBjb25zdCBjYXNlRmllbGRzTG9va3VwID0ge307XG4gIGZvciAobGV0IGkgPSAwLCBsZW4gPSBjYXNlRmllbGRzLmxlbmd0aDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY2FzZUZpZWxkc0xvb2t1cFtjYXNlRmllbGRzW2ldLmlkXSA9IGNhc2VGaWVsZHNbaV07XG4gIH1cblxuICAvKipcbiAgICogUmVwbGFjZSBhbnkgZm9ybSB2YWx1ZSB3aXRoIHRoZSBvcmlnaW5hbCwgd2hlcmUgaXRzIENhc2VGaWVsZCBpcyBoaWRkZW4gQU5EIGhhcyB0aGUgcmV0YWluX2hpZGRlbl92YWx1ZSBmbGFnIHNldFxuICAgKiB0byB0cnVlLlxuICAgKlxuICAgKiBJZiB0aGUgQ2FzZUZpZWxkJ3MgYGhpZGRlbmAgYXR0cmlidXRlIGlzIG51bGwgb3IgdW5kZWZpbmVkLCB0aGVuIGNoZWNrIHRoaXMgYXR0cmlidXRlIGluIHRoZSBwYXJlbnQgQ2FzZUZpZWxkIChpZlxuICAgKiBvbmUgZXhpc3RzKS4gVGhpcyBpcyBvY2N1cnJpbmcgKGFuZCBpcyBwb3NzaWJseSBhIGJ1Zykgd2hlbiBhIENhc2VGaWVsZCBpcyBhIHN1Yi1maWVsZCBvZiBhIENvbXBsZXggdHlwZSwgb3IgYW5cbiAgICogaXRlbSBpbiBhIENvbGxlY3Rpb24gdHlwZS5cbiAgICpcbiAgICogSWYgdGhlIGZpZWxkIGlzIGEgQ29tcGxleCB0eXBlIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHBlcmZvcm0gYSByZWN1cnNpdmUgcmVwbGFjZW1lbnQgZm9yIGFsbCAoaGlkZGVuKVxuICAgKiBzdWItZmllbGRzIHdpdGggcmV0YWluX2hpZGRlbl92YWx1ZSA9IHRydWUsIHVzaW5nIHRoZWlyIG9yaWdpbmFsIENhc2VGaWVsZCB2YWx1ZXMgKGZyb20gdGhlIGBmb3JtYXR0ZWRfdmFsdWVgXG4gICAqIGF0dHJpYnV0ZSkuXG4gICAqXG4gICAqIElmIHRoZSBmaWVsZCBpcyBhIENvbGxlY3Rpb24gdHlwZSB3aXRoIHJldGFpbl9oaWRkZW5fdmFsdWUgPSB0cnVlLCB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaXMgcmVwbGFjZWQgd2l0aCB0aGVcbiAgICogb3JpZ2luYWwgZnJvbSBgZm9ybWF0dGVkX3ZhbHVlYC4gVGhpcyBhcHBsaWVzIHRvICphbGwqIHR5cGVzIG9mIENvbGxlY3Rpb25zLlxuICAgKi9cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgT2JqZWN0LmtleXMocmF3Rm9ybVZhbHVlRGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgY29uc3QgY2FzZUZpZWxkOiBDYXNlRmllbGQgPSBjYXNlRmllbGRzTG9va3VwW2tleV07XG4gICAgLy8gSWYgY2FzZUZpZWxkLmhpZGRlbiBpcyBOT1QgdHJ1dGh5IGFuZCBhbHNvIE5PVCBlcXVhbCB0byBmYWxzZSwgdGhlbiBpdCBtdXN0IGJlIG51bGwvdW5kZWZpbmVkIChyZW1lbWJlciB0aGF0XG4gICAgLy8gYm90aCBudWxsIGFuZCB1bmRlZmluZWQgYXJlIGVxdWFsIHRvICpuZWl0aGVyIGZhbHNlIG5vciB0cnVlKilcbiAgICBpZiAoY2FzZUZpZWxkICYmIGNhc2VGaWVsZC5yZXRhaW5faGlkZGVuX3ZhbHVlICYmXG4gICAgICAoY2FzZUZpZWxkLmhpZGRlbiB8fCAoY2FzZUZpZWxkLmhpZGRlbiAhPT0gZmFsc2UgJiYgcGFyZW50RmllbGQgJiYgcGFyZW50RmllbGQuaGlkZGVuKSkpIHtcbiAgICAgIGlmIChjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCcpIHtcbiAgICAgICAgLy8gTm90ZTogRGVsaWJlcmF0ZSB1c2Ugb2YgZXF1YWxpdHkgKD09KSBhbmQgbm9uLWVxdWFsaXR5ICghPSkgb3BlcmF0b3JzIGZvciBudWxsIGNoZWNrcyB0aHJvdWdob3V0LCB0b1xuICAgICAgICAvLyBoYW5kbGUgYm90aCBudWxsIGFuZCB1bmRlZmluZWQgdmFsdWVzXG4gICAgICAgIGlmIChjYXNlRmllbGQudmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgIC8vIENhbGwgdGhpcyBmdW5jdGlvbiByZWN1cnNpdmVseSB0byByZXBsYWNlIHRoZSBDb21wbGV4IGZpZWxkJ3Mgc3ViLWZpZWxkcyBhcyBuZWNlc3NhcnksIHBhc3NpbmcgdGhlXG4gICAgICAgICAgLy8gQ2FzZUZpZWxkIGl0c2VsZiAodGhlIHN1Yi1maWVsZHMgZG8gbm90IGNvbnRhaW4gYW55IHZhbHVlcywgc28gdGhlc2UgbmVlZCB0byBiZSBvYnRhaW5lZCBmcm9tIHRoZVxuICAgICAgICAgIC8vIHBhcmVudClcbiAgICAgICAgICAvLyBVcGRhdGUgcmF3Rm9ybVZhbHVlRGF0YSBmb3IgdGhpcyBmaWVsZFxuICAgICAgICAgIC8vIGNyZWF0aW5nIGZvcm0gZ3JvdXAgYW5kIGFkZGluZyBjb250cm9sIGludG8gaXQgaW4gY2FzZSBjYXNlRmllbGQgaXMgb2YgY29tcGxleHQgdHlwZSBhbmQgYW5kIHBhcnQgb2YgZm9ybUdyb3VwXG4gICAgICAgICAgY29uc3QgZm9ybTogRm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgICAgaWYgKGZvcm1Hcm91cC5jb250cm9sc1trZXldLnZhbHVlKSB7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICBmb3JtLmFkZENvbnRyb2woaXRlbSwgbmV3IEZvcm1Db250cm9sKGZvcm1Hcm91cC5jb250cm9sc1trZXldLnZhbHVlW2l0ZW1dKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmF3Rm9ybVZhbHVlRGF0YVtrZXldID0gdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgICAgZm9ybSwgY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMsIGNhc2VGaWVsZCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIERlZmF1bHQgY2FzZSBhbHNvIGhhbmRsZXMgY29sbGVjdGlvbnMgb2YgKmFsbCogdHlwZXM7IHRoZSBlbnRpcmUgY29sbGVjdGlvbiBpbiByYXdGb3JtVmFsdWVEYXRhIHdpbGwgYmVcbiAgICAgICAgLy8gcmVwbGFjZWQgd2l0aCB0aGUgb3JpZ2luYWwgZnJvbSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAgICAgLy8gVXNlIHRoZSBDYXNlRmllbGQncyBleGlzdGluZyAqZm9ybWF0dGVkX3ZhbHVlKiBmcm9tIHRoZSBwYXJlbnQsIGlmIGF2YWlsYWJsZS4gKFRoaXMgaXMgbmVjZXNzYXJ5IGZvclxuICAgICAgICAvLyBDb21wbGV4IGZpZWxkcywgd2hvc2Ugc3ViLWZpZWxkcyBkbyBub3QgaG9sZCBhbnkgdmFsdWVzIGluIHRoZSBtb2RlbC4pIE90aGVyd2lzZSwgdXNlIGZvcm1hdHRlZF92YWx1ZVxuICAgICAgICAvLyBmcm9tIHRoZSBDYXNlRmllbGQgaXRzZWxmLlxuICAgICAgICBpZiAocGFyZW50RmllbGQgJiYgcGFyZW50RmllbGQuZm9ybWF0dGVkX3ZhbHVlKSB7XG4gICAgICAgICAgcmF3Rm9ybVZhbHVlRGF0YVtrZXldID0gcGFyZW50RmllbGQuZm9ybWF0dGVkX3ZhbHVlW2Nhc2VGaWVsZC5pZF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmF3Rm9ybVZhbHVlRGF0YVtrZXldID0gY2FzZUZpZWxkLmZvcm1hdHRlZF92YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIHJhd0Zvcm1WYWx1ZURhdGE7XG59XG5cbiAgcHJpdmF0ZSBjYXNlU3VibWl0KHtmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXR9OiBDYXNlRWRpdENhc2VTdWJtaXQpOiB2b2lkIHtcbiAgICBjb25zdCBsb2FkaW5nU3Bpbm5lclRva2VuID0gdGhpcy5sb2FkaW5nU2VydmljZS5yZWdpc3RlcigpO1xuXG4gICAgc3VibWl0KGNhc2VFdmVudERhdGEpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgIHRoaXMubG9hZGluZ1NlcnZpY2UudW5yZWdpc3Rlcihsb2FkaW5nU3Bpbm5lclRva2VuKTtcbiAgICAgIH0pKVxuICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgIHRoaXMuY2FzZU5vdGlmaWVyLmNhY2hlZENhc2VWaWV3ID0gbnVsbDtcbiAgICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgICAgICAgIGNvbnN0IGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uID0gdGhpcy5idWlsZENvbmZpcm1hdGlvbihyZXNwb25zZSk7XG4gICAgICAgICAgaWYgKGNvbmZpcm1hdGlvbiAmJiAoY29uZmlybWF0aW9uLmdldEhlYWRlcigpIHx8IGNvbmZpcm1hdGlvbi5nZXRCb2R5KCkpKSB7XG4gICAgICAgICAgICAvLyBBZGQgZmluYWxseSB0byBmaXggc29uYXIgYnVnXG4gICAgICAgICAgICB0aGlzLmNvbmZpcm0oY29uZmlybWF0aW9uKS5maW5hbGx5KCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFN1Ym1pdHRlZChyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0Lm5leHQoZXJyb3IpO1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuZXJyb3IuZGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5mb3JtRXJyb3JTZXJ2aWNlXG4gICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbmZpcm1hdGlvbihyZXNwb25zZTogb2JqZWN0KTogQ29uZmlybWF0aW9uIHtcbiAgICBpZiAocmVzcG9uc2VbJ2FmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZSddKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZpcm1hdGlvbihcbiAgICAgICAgcmVzcG9uc2VbJ2lkJ10sXG4gICAgICAgIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSxcbiAgICAgICAgcmVzcG9uc2VbJ2FmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZSddWydjb25maXJtYXRpb25faGVhZGVyJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2JvZHknXVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRXZlbnRDYW5CZUNvbXBsZXRlZCh7IGV2ZW50VHJpZ2dlciwgZXZlbnRDYW5CZUNvbXBsZXRlZCwgY2FzZURldGFpbHMsIGZvcm0sIHN1Ym1pdCB9OiBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCApOiB2b2lkIHtcbiAgICBpZiAoZXZlbnRDYW5CZUNvbXBsZXRlZCkge1xuICAgICAgLy8gU3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoeyBmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5hdmlnYXRlIHRvIHRhc2tzIHRhYiBvbiBjYXNlIGRldGFpbHMgcGFnZVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpfS90YXNrc2BdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cblxuICBwdWJsaWMgZ2V0U3RhdHVzKHJlc3BvbnNlOiBvYmplY3QpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmhhc0NhbGxiYWNrRmFpbGVkKHJlc3BvbnNlKSA/IHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSA6IHJlc3BvbnNlWydkZWxldGVfZHJhZnRfcmVzcG9uc2Vfc3RhdHVzJ107XG4gIH1cblxuICBwcml2YXRlIGhhc0NhbGxiYWNrRmFpbGVkKHJlc3BvbnNlOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVzcG9uc2VbJ2NhbGxiYWNrX3Jlc3BvbnNlX3N0YXR1cyddICE9PSAnQ0FMTEJBQ0tfQ09NUExFVEVEJztcbiAgfVxuXG59XG4iLCI8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4iXX0=
388
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsY0FBYyxFQUFVLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RixPQUFPLEVBSVUsZ0JBQWdCLEVBQy9CLFFBQVEsRUFDVCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxZQUFZLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFDN0UscUJBQXFCLEVBQUUsYUFBYSxFQUNyQyxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxZQUFZLEVBQXNCLE1BQU0sV0FBVyxDQUFDO0FBRTdE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LEtBQUssb0JBQW9CLENBQUM7SUFDdkUsQ0FBQzs7QUFuYnNCLG9DQUFrQixHQUFHLFFBQVEsQ0FBQztBQUM5QiwrQkFBYSxHQUFHLG9GQUFvRixDQUFDO2tGQUZqSCxpQkFBaUI7c0RBQWpCLGlCQUFpQixzUUFGakIsQ0FBQyxjQUFjLENBQUM7UUMzQjdCLGdDQUErQjs7dUZENkJsQixpQkFBaUI7Y0FON0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxlQUFlO2dCQUN6QixXQUFXLEVBQUUsMEJBQTBCO2dCQUN2QyxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDaEMsU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQzVCOzRhQU1RLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxNQUFNO2tCQURaLEtBQUs7WUFJQyxRQUFRO2tCQURkLEtBQUs7WUFJQyxTQUFTO2tCQURmLEtBQUs7WUFJQyxXQUFXO2tCQURqQixLQUFLO1lBSUMsU0FBUztrQkFEZixNQUFNO1lBSUEsU0FBUztrQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBQYXJhbXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZGl0aW9uYWxTaG93UmVnaXN0cmFyU2VydmljZSwgR3JleUJhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7XG4gIENhc2VFZGl0Q2FzZVN1Ym1pdCwgQ2FzZUVkaXRHZW5lcmF0ZUNhc2VFdmVudERhdGEsIENhc2VFZGl0R2V0TmV4dFBhZ2UsXG4gIENhc2VFZGl0U3VibWl0Rm9ybSxcbiAgQ2FzZUVkaXRvbkV2ZW50Q2FuQmVDb21wbGV0ZWQsXG4gIENhc2VFdmVudERhdGEsIENhc2VFdmVudFRyaWdnZXIsIENhc2VGaWVsZCxcbiAgQ2FzZVZpZXcsIERyYWZ0LCBIdHRwRXJyb3IsIFByb2ZpbGVcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IFRhc2sgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vd29yay1hbGxvY2F0aW9uL1Rhc2snO1xuaW1wb3J0IHtcbiAgRmllbGRzUHVyZ2VyLCBGaWVsZHNVdGlscywgRm9ybUVycm9yU2VydmljZSwgRm9ybVZhbHVlU2VydmljZSwgTG9hZGluZ1NlcnZpY2UsXG4gIFNlc3Npb25TdG9yYWdlU2VydmljZSwgV2luZG93U2VydmljZVxufSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24sIFdpemFyZCwgV2l6YXJkUGFnZSB9IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBFdmVudENvbXBsZXRpb25QYXJhbXMgfSBmcm9tICcuLi9kb21haW4vZXZlbnQtY29tcGxldGlvbi1wYXJhbXMubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZU5vdGlmaWVyLCBXaXphcmRGYWN0b3J5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnY2FzZS1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2Nhc2UtZWRpdC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW0dyZXlCYXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBPUklHSU5fUVVFUllfUEFSQU0gPSAnb3JpZ2luJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBTEVSVF9NRVNTQUdFID0gJ1BhZ2UgaXMgYmVpbmcgcmVmcmVzaGVkIHNvIHlvdSB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gdGhlIGZpcnN0IHBhZ2Ugb2YgdGhpcyBldmVudC4nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN1Ym1pdDogKGNhc2VFdmVudERhdGE6IENhc2VFdmVudERhdGEsIHByb2ZpbGU/OiBQcm9maWxlKSA9PiBPYnNlcnZhYmxlPG9iamVjdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZhbGlkYXRlOiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSwgcGFnZUlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8b2JqZWN0PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2F2ZURyYWZ0OiAoY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSkgPT4gT2JzZXJ2YWJsZTxEcmFmdD47XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VEZXRhaWxzOiBDYXNlVmlldztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbmNlbGxlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdWJtaXR0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyB3aXphcmQ6IFdpemFyZDtcblxuICBwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbjtcblxuICBwdWJsaWMgbmF2aWdhdGlvbk9yaWdpbjogYW55O1xuXG4gIHB1YmxpYyBpbml0aWFsVXJsOiBzdHJpbmc7XG5cbiAgcHVibGljIGlzUGFnZVJlZnJlc2hlZDogYm9vbGVhbjtcblxuICBwdWJsaWMgaXNTdWJtaXR0aW5nOiBib29sZWFuO1xuXG4gIHB1YmxpYyBldmVudENvbXBsZXRpb25QYXJhbXM6IEV2ZW50Q29tcGxldGlvblBhcmFtcztcblxuICBwdWJsaWMgc3VibWl0UmVzcG9uc2U6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cbiAgcHVibGljIGlzRXZlbnRDb21wbGV0aW9uQ2hlY2tzUmVxdWlyZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgaXNDYXNlRmxhZ1N1Ym1pc3Npb24gPSBmYWxzZTtcblxuICBwdWJsaWMgaWdub3JlV2FybmluZyA9IGZhbHNlO1xuXG4gIHB1YmxpYyBpc0xpbmtlZENhc2VzU3VibWlzc2lvbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBlcnJvcjogSHR0cEVycm9yO1xuXG4gIHB1YmxpYyBjYWxsYmFja0Vycm9yc1N1YmplY3Q6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzVXRpbHM6IEZpZWxkc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzUHVyZ2VyOiBGaWVsZHNQdXJnZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RyYXJTZXJ2aWNlOiBDb25kaXRpb25hbFNob3dSZWdpc3RyYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2l6YXJkRmFjdG9yeTogV2l6YXJkRmFjdG9yeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvd3NTZXJ2aWNlOiBXaW5kb3dTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybVZhbHVlU2VydmljZTogRm9ybVZhbHVlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1FcnJvclNlcnZpY2U6IEZvcm1FcnJvclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2FkaW5nU2VydmljZTogTG9hZGluZ1NlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndpemFyZCA9IHRoaXMud2l6YXJkRmFjdG9yeS5jcmVhdGUodGhpcy5ldmVudFRyaWdnZXIpO1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgdGhpcy5pc1BhZ2VSZWZyZXNoZWQgPSBKU09OLnBhcnNlKHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2lzUGFnZVJlZnJlc2hlZCcpKTtcblxuICAgIHRoaXMuY2hlY2tQYWdlUmVmcmVzaCgpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMucm91dGVyLnVybCAmJiAhdGhpcy5pc1BhZ2VSZWZyZXNoZWQpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2V2ZW50VXJsJywgdGhpcy5yb3V0ZXIudXJsKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRhdGE6IG5ldyBGb3JtR3JvdXAoe30pLFxuICAgICAgZXZlbnQ6IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgICBpZDogW3RoaXMuZXZlbnRUcmlnZ2VyLmlkLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgc3VtbWFyeTogWycnXSxcbiAgICAgICAgZGVzY3JpcHRpb246IFsnJ11cbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zOiBQYXJhbXMpID0+IHtcbiAgICAgIHRoaXMubmF2aWdhdGlvbk9yaWdpbiA9IHBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0KSB7XG4gICAgICB0aGlzLmNhbGxiYWNrRXJyb3JzU3ViamVjdC51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjaGVja1BhZ2VSZWZyZXNoKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmlzUGFnZVJlZnJlc2hlZCAmJiB0aGlzLmluaXRpYWxVcmwpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgICB0aGlzLndpbmRvd3NTZXJ2aWNlLmFsZXJ0KENhc2VFZGl0Q29tcG9uZW50LkFMRVJUX01FU1NBR0UpO1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RoaXMuaW5pdGlhbFVybF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYWdlKHBhZ2VJZDogc3RyaW5nKTogV2l6YXJkUGFnZSB7XG4gICAgcmV0dXJuIHRoaXMud2l6YXJkLmdldFBhZ2UocGFnZUlkLCB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZSh0aGlzLmV2ZW50VHJpZ2dlciwgdGhpcy5mb3JtKSk7XG4gIH1cblxuICBwdWJsaWMgZmlyc3QoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgZmlyc3RQYWdlID0gdGhpcy53aXphcmQuZmlyc3RQYWdlKHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2ZpcnN0UGFnZSA/IGZpcnN0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlVG9QYWdlKHBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgY29uc3QgcGFnZSA9IHRoaXMuZ2V0UGFnZShwYWdlSWQpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcGFnZSA/IHBhZ2UuaWQgOiAnc3VibWl0J10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZXh0KGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHRoaXMuaW5pdGlhbFVybCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ2V2ZW50VXJsJyk7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodGhpcy5yb3V0ZXIudXJsICYmICF0aGlzLmluaXRpYWxVcmwpIHtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oJ2V2ZW50VXJsJywgdGhpcy5yb3V0ZXIudXJsKTtcbiAgICB9XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIGNvbnN0IG5leHRQYWdlID0gdGhpcy5nZXROZXh0UGFnZSh7XG4gICAgICBjdXJyZW50UGFnZUlkLFxuICAgICAgd2l6YXJkOiB0aGlzLndpemFyZCxcbiAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICBmb3JtOiB0aGlzLmZvcm0sXG4gICAgfSk7XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmKCFuZXh0UGFnZSAmJlxuICAgICAgISh0aGlzLmV2ZW50VHJpZ2dlci5zaG93X3N1bW1hcnkgfHwgdGhpcy5ldmVudFRyaWdnZXIuc2hvd19zdW1tYXJ5ID09PSBudWxsKSAmJlxuICAgICAgIXRoaXMuZXZlbnRUcmlnZ2VyLnNob3dfZXZlbnRfbm90ZXMpIHtcbiAgICAgIHRoaXMuc3VibWl0Rm9ybSh7XG4gICAgICAgIGV2ZW50VHJpZ2dlcjogdGhpcy5ldmVudFRyaWdnZXIsXG4gICAgICAgIGZvcm06IHRoaXMuZm9ybSxcbiAgICAgICAgc3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2FzZURldGFpbHM6IHRoaXMuY2FzZURldGFpbHMsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlZ2lzdHJhclNlcnZpY2UucmVzZXQoKTtcblxuICAgIGNvbnN0IHRoZVF1ZXJ5UGFyYW1zOiBQYXJhbXMgPSB7fTtcbiAgICB0aGVRdWVyeVBhcmFtc1tDYXNlRWRpdENvbXBvbmVudC5PUklHSU5fUVVFUllfUEFSQU1dID0gdGhpcy5uYXZpZ2F0aW9uT3JpZ2luO1xuICAgIHJldHVybiB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbbmV4dFBhZ2UgPyBuZXh0UGFnZS5pZCA6ICdzdWJtaXQnXSwgeyBxdWVyeVBhcmFtczogdGhlUXVlcnlQYXJhbXMsIHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXMoY3VycmVudFBhZ2VJZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5maWVsZHNQdXJnZXIuY2xlYXJIaWRkZW5GaWVsZHModGhpcy5mb3JtLCB0aGlzLndpemFyZCwgdGhpcy5ldmVudFRyaWdnZXIsIGN1cnJlbnRQYWdlSWQpO1xuICAgIHRoaXMucmVnaXN0cmFyU2VydmljZS5yZXNldCgpO1xuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy53aXphcmQucHJldmlvdXNQYWdlKGN1cnJlbnRQYWdlSWQsIHRoaXMuZmllbGRzVXRpbHMuYnVpbGRDYW5TaG93UHJlZGljYXRlKHRoaXMuZXZlbnRUcmlnZ2VyLCB0aGlzLmZvcm0pKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICghcHJldmlvdXNQYWdlKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcbiAgICB9XG5cbiAgICBjb25zdCB0aGVRdWVyeVBhcmFtczogUGFyYW1zID0ge307XG4gICAgdGhlUXVlcnlQYXJhbXNbQ2FzZUVkaXRDb21wb25lbnQuT1JJR0lOX1FVRVJZX1BBUkFNXSA9IHRoaXMubmF2aWdhdGlvbk9yaWdpbjtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3ByZXZpb3VzUGFnZS5pZF0sIHsgcXVlcnlQYXJhbXM6IHRoZVF1ZXJ5UGFyYW1zLCByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG5cbiAgcHVibGljIGhhc1ByZXZpb3VzKGN1cnJlbnRQYWdlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLndpemFyZC5oYXNQcmV2aW91c1BhZ2UoY3VycmVudFBhZ2VJZCwgdGhpcy5maWVsZHNVdGlscy5idWlsZENhblNob3dQcmVkaWNhdGUodGhpcy5ldmVudFRyaWdnZXIsIHRoaXMuZm9ybSkpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbmNlbGxlZC5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFN1Ym1pdHRlZChyZXNwb25zZTogUmVjb3JkPHN0cmluZywgYW55Pik6IHZvaWQge1xuICAgIHRoaXMuc3VibWl0dGVkLmVtaXQoe2Nhc2VJZDogcmVzcG9uc2VbJ2lkJ10sIHN0YXR1czogdGhpcy5nZXRTdGF0dXMocmVzcG9uc2UpfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TmV4dFBhZ2UoeyB3aXphcmQsIGN1cnJlbnRQYWdlSWQsIGV2ZW50VHJpZ2dlciwgZm9ybSB9OiBDYXNlRWRpdEdldE5leHRQYWdlKTogV2l6YXJkUGFnZSB7XG4gICAgcmV0dXJuIHdpemFyZC5uZXh0UGFnZShcbiAgICAgIGN1cnJlbnRQYWdlSWQsXG4gICAgICB0aGlzLmZpZWxkc1V0aWxzLmJ1aWxkQ2FuU2hvd1ByZWRpY2F0ZShldmVudFRyaWdnZXIsIGZvcm0pXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBjb25maXJtKGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgdGhpcy5jb25maXJtYXRpb24gPSBjb25maXJtYXRpb247XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnY29uZmlybSddLCB7cmVsYXRpdmVUbzogdGhpcy5yb3V0ZX0pO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdEZvcm0oeyBldmVudFRyaWdnZXIsIGZvcm0sIGNhc2VEZXRhaWxzLCBzdWJtaXQgfTogQ2FzZUVkaXRTdWJtaXRGb3JtICk6IHZvaWQge1xuICAgIHRoaXMuaXNTdWJtaXR0aW5nID0gdHJ1ZTtcbiAgICAvLyBXZSBoYXZlIHRvIHJ1biB0aGUgZXZlbnQgY29tcGxldGlvbiBjaGVja3MgaWYgdGFzayBpbiBzZXNzaW9uIHN0b3JhZ2VcbiAgICAvLyBhbmQgaWYgdGhlIHRhc2sgaXMgaW4gc2Vzc2lvbiBzdG9yYWdlLCB0aGVuIGlzIGl0IGFzc29jaWF0ZWQgdG8gdGhlIGNhc2VcbiAgICBsZXQgdGFza0luU2Vzc2lvblN0b3JhZ2U6IFRhc2s7XG4gICAgY29uc3QgdGFza1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3Rhc2tUb0NvbXBsZXRlJyk7XG4gICAgaWYgKHRhc2tTdHIpIHtcbiAgICAgIHRhc2tJblNlc3Npb25TdG9yYWdlID0gSlNPTi5wYXJzZSh0YXNrU3RyKTtcbiAgICB9XG5cbiAgICBpZiAodGFza0luU2Vzc2lvblN0b3JhZ2UgJiYgdGFza0luU2Vzc2lvblN0b3JhZ2UuY2FzZV9pZCA9PT0gdGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpKSB7XG4gICAgICAvLyBTaG93IGV2ZW50IGNvbXBsZXRpb24gY29tcG9uZW50IHRvIHBlcmZvcm0gZXZlbnQgY29tcGxldGlvbiBjaGVja3NcbiAgICAgIHRoaXMuZXZlbnRDb21wbGV0aW9uUGFyYW1zID0gKHtcbiAgICAgICAgY2FzZUlkOiB0aGlzLmdldENhc2VJZChjYXNlRGV0YWlscyksXG4gICAgICAgIGV2ZW50SWQ6IHRoaXMuZ2V0RXZlbnRJZChmb3JtKSxcbiAgICAgICAgdGFzazogdGFza0luU2Vzc2lvblN0b3JhZ2VcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pc0V2ZW50Q29tcGxldGlvbkNoZWNrc1JlcXVpcmVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVGFzayBub3QgaW4gc2Vzc2lvbiBzdG9yYWdlLCBwcm9jZWVkIHRvIHN1Ym1pdFxuICAgICAgY29uc3QgY2FzZUV2ZW50RGF0YSA9IHRoaXMuZ2VuZXJhdGVDYXNlRXZlbnREYXRhKHtcbiAgICAgICAgZXZlbnRUcmlnZ2VyLFxuICAgICAgICBmb3JtXG4gICAgICB9KTtcbiAgICAgIHRoaXMuY2FzZVN1Ym1pdCh7Zm9ybSxcbiAgICAgICAgY2FzZUV2ZW50RGF0YSxcbiAgICAgICAgc3VibWl0XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUlkKGNhc2VEZXRhaWxzOiBDYXNlVmlldyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChjYXNlRGV0YWlscyA/IGNhc2VEZXRhaWxzLmNhc2VfaWQgOiAnJyk7XG4gIH1cblxuICBwcml2YXRlIGdldEV2ZW50SWQoZm9ybTogRm9ybUdyb3VwKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZm9ybS52YWx1ZS5ldmVudC5pZDtcbiB9XG5cbiBwcml2YXRlIGdlbmVyYXRlQ2FzZUV2ZW50RGF0YSh7IGV2ZW50VHJpZ2dlciwgZm9ybSB9OiBDYXNlRWRpdEdlbmVyYXRlQ2FzZUV2ZW50RGF0YSApOiBDYXNlRXZlbnREYXRhIHtcbiAgY29uc3QgY2FzZUV2ZW50RGF0YTogQ2FzZUV2ZW50RGF0YSA9IHtcbiAgICBkYXRhOiB0aGlzLnJlcGxhY2VFbXB0eUNvbXBsZXhGaWVsZFZhbHVlcyhcbiAgICAgIHRoaXMuZm9ybVZhbHVlU2VydmljZS5zYW5pdGlzZShcbiAgICAgICAgdGhpcy5yZXBsYWNlSGlkZGVuRm9ybVZhbHVlc1dpdGhPcmlnaW5hbENhc2VEYXRhKFxuICAgICAgICAgIGZvcm0uZ2V0KCdkYXRhJykgYXMgRm9ybUdyb3VwLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpKSksXG4gICAgZXZlbnQ6IGZvcm0udmFsdWUuZXZlbnRcbiAgfSBhcyBDYXNlRXZlbnREYXRhO1xuICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UuY2xlYXJOb25DYXNlRmllbGRzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlbW92ZU51bGxMYWJlbHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlEb2N1bWVudHMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAvLyBSZW1vdmUgY29sbGVjdGlvbiBmaWVsZHMgdGhhdCBoYXZlIFwibWluXCIgdmFsaWRhdGlvbiBvZiBncmVhdGVyIHRoYW4gemVybyBzZXQgb24gdGhlIEZpZWxkVHlwZSBidXQgYXJlIGVtcHR5O1xuICAvLyB0aGVzZSB3aWxsIGZhaWwgdmFsaWRhdGlvblxuICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlRW1wdHlDb2xsZWN0aW9uc1dpdGhNaW5WYWxpZGF0aW9uKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgLy8gRm9yIENhc2UgRmxhZyBzdWJtaXNzaW9ucyAod2hlcmUgYSBGbGFnTGF1bmNoZXIgZmllbGQgaXMgcHJlc2VudCBpbiB0aGUgZXZlbnQgdHJpZ2dlciksIHRoZSBmbGFnIGRldGFpbHMgZGF0YVxuICAvLyBuZWVkcyBwb3B1bGF0aW5nIGZvciBlYWNoIEZsYWdzIGZpZWxkLCB0aGVuIHRoZSBGbGFnTGF1bmNoZXIgZmllbGQgbmVlZHMgcmVtb3ZpbmdcbiAgdGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnJlcG9wdWxhdGVGb3JtRGF0YUZyb21DYXNlRmllbGRWYWx1ZXMoY2FzZUV2ZW50RGF0YS5kYXRhLCBldmVudFRyaWdnZXIuY2FzZV9maWVsZHMpO1xuICAvLyBEYXRhIHBvcHVsYXRpb24gc3RlcCByZXF1aXJlZCBmb3IgTGlua2VkIENhc2VzXG4gIHRoaXMuZm9ybVZhbHVlU2VydmljZS5wb3B1bGF0ZUxpbmtlZENhc2VzRGV0YWlsc0Zyb21DYXNlRmllbGRzKGNhc2VFdmVudERhdGEuZGF0YSwgZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzKTtcbiAgLy8gUmVtb3ZlIFwiTGF1bmNoZXJcIi10eXBlIGZpZWxkcyAodGhlc2UgaGF2ZSBubyB2YWx1ZXMgYW5kIGFyZSBub3QgaW50ZW5kZWQgdG8gYmUgcGVyc2lzdGVkKVxuICB0aGlzLmZvcm1WYWx1ZVNlcnZpY2UucmVtb3ZlQ2FzZUZpZWxkc09mVHlwZShjYXNlRXZlbnREYXRhLmRhdGEsIGV2ZW50VHJpZ2dlci5jYXNlX2ZpZWxkcywgWydGbGFnTGF1bmNoZXInLCAnQ29tcG9uZW50TGF1bmNoZXInXSk7XG4gIGNhc2VFdmVudERhdGEuZXZlbnRfdG9rZW4gPSBldmVudFRyaWdnZXIuZXZlbnRfdG9rZW47XG4gIGNhc2VFdmVudERhdGEuaWdub3JlX3dhcm5pbmcgPSB0aGlzLmlnbm9yZVdhcm5pbmc7XG4gIGlmICh0aGlzLmNvbmZpcm1hdGlvbikge1xuICAgIGNhc2VFdmVudERhdGEuZGF0YSA9IHt9O1xuICB9XG5cbiAgcmV0dXJuIGNhc2VFdmVudERhdGE7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgbm9uLWFycmF5IHZhbHVlIG9iamVjdHMgd2l0aCBgbnVsbGAgZm9yIGFueSBDb21wbGV4LXR5cGUgZmllbGRzIHdob3NlIHZhbHVlIGlzIGVmZmVjdGl2ZWx5IGVtcHR5LCBpLmUuXG4gKiBhbGwgaXRzIHN1Yi1maWVsZHMgYW5kIGRlc2NlbmRhbnRzIGFyZSBgbnVsbGAgb3IgYHVuZGVmaW5lZGAuXG4gKlxuICogQHBhcmFtIGRhdGEgVGhlIG9iamVjdCB0cmVlIHJlcHJlc2VudGluZyBhbGwgdGhlIGZvcm0gZmllbGQgZGF0YVxuICogQHJldHVybnMgVGhlIGZvcm0gZmllbGQgZGF0YSBtb2RpZmllZCBhY2NvcmRpbmdseVxuICovXG5wcml2YXRlIHJlcGxhY2VFbXB0eUNvbXBsZXhGaWVsZFZhbHVlcyhkYXRhOiBvYmplY3QpOiBvYmplY3Qge1xuICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZGF0YVtrZXldKSAmJiB0eXBlb2YgZGF0YVtrZXldID09PSAnb2JqZWN0JyAmJiAhRmllbGRzVXRpbHMuY29udGFpbnNOb25FbXB0eVZhbHVlcyhkYXRhW2tleV0pKSB7XG4gICAgICBkYXRhW2tleV0gPSBudWxsO1xuICAgIH1cbiAgfSk7XG5cbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogVHJhdmVyc2UgKmFsbCogdmFsdWVzIG9mIGEge0BsaW5rIEZvcm1Hcm91cH0sIGluY2x1ZGluZyB0aG9zZSBmb3IgZGlzYWJsZWQgZmllbGRzIChpLmUuIGhpZGRlbiBvbmVzKSwgcmVwbGFjaW5nIHRoZVxuICogdmFsdWUgb2YgYW55IHRoYXQgYXJlIGhpZGRlbiBBTkQgaGF2ZSBgcmV0YWluX2hpZGRlbl92YWx1ZWAgc2V0IHRvIGB0cnVlYCBpbiB0aGUgY29ycmVzcG9uZGluZyBgQ2FzZUZpZWxkYCwgd2l0aFxuICogdGhlICpvcmlnaW5hbCogdmFsdWUgaGVsZCBpbiB0aGUgYENhc2VGaWVsZGAgb2JqZWN0LlxuICpcbiAqIFRoaXMgaXMgYXMgcGVyIGRlc2lnbiBpbiBFVUktMzYyMiwgd2hlcmUgYW55IHVzZXItZHJpdmVuIHVwZGF0ZXMgdG8gaGlkZGVuIGZpZWxkcyB3aXRoIGByZXRhaW5faGlkZGVuX3ZhbHVlYCA9XG4gKiBgdHJ1ZWAgYXJlIGlnbm9yZWQgKHRodXMgcmV0YWluaW5nIHRoZSB2YWx1ZSBkaXNwbGF5ZWQgb3JpZ2luYWxseSkuXG4gKlxuICogKiBGb3IgQ29tcGxleCBmaWVsZCB0eXBlcywgdGhlIHJlcGxhY2VtZW50IGFib3ZlIGlzIHBlcmZvcm1lZCByZWN1cnNpdmVseSBmb3IgYWxsIGhpZGRlbiBzdWItZmllbGRzIHdpdGhcbiAqIGByZXRhaW5faGlkZGVuX3ZhbHVlYCA9IGB0cnVlYC5cbiAqXG4gKiAqIEZvciBDb2xsZWN0aW9uIGZpZWxkIHR5cGVzLCBpbmNsdWRpbmcgY29sbGVjdGlvbnMgb2YgQ29tcGxleCBhbmQgRG9jdW1lbnQgZmllbGQgdHlwZXMsIHRoZSByZXBsYWNlbWVudCBpc1xuICogcGVyZm9ybWVkIGZvciBhbGwgZmllbGRzIGluIHRoZSBjb2xsZWN0aW9uLlxuICpcbiAqIEBwYXJhbSBmb3JtR3JvdXAgVGhlIGBGb3JtR3JvdXBgIGluc3RhbmNlIHdob3NlIHJhdyB2YWx1ZXMgYXJlIHRvIGJlIHRyYXZlcnNlZFxuICogQHBhcmFtIGNhc2VGaWVsZHMgVGhlIGFycmF5IG9mIHtAbGluayBDYXNlRmllbGR9IGRvbWFpbiBtb2RlbCBvYmplY3RzIGNvcnJlc3BvbmRpbmcgdG8gZmllbGRzIGluIGBmb3JtR3JvdXBgXG4gKiBAcGFyYW0gcGFyZW50RmllbGQgUmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgYENhc2VGaWVsZGAuIFVzZWQgZm9yIHJldHJpZXZpbmcgdGhlIHN1Yi1maWVsZCB2YWx1ZXMgb2YgYSBDb21wbGV4IGZpZWxkXG4gKiB0byBwZXJmb3JtIHJlY3Vyc2l2ZSByZXBsYWNlbWVudCAtIHRoZSBzdWItZmllbGQgYENhc2VGaWVsZGBzIHRoZW1zZWx2ZXMgZG8gKm5vdCogY29udGFpbiBhbnkgdmFsdWVzXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCB0aGUgKnJhdyogZm9ybSB2YWx1ZSBkYXRhIChhcyBrZXktdmFsdWUgcGFpcnMpLCB3aXRoIGFueSB2YWx1ZSByZXBsYWNlbWVudHMgYXMgbmVjZXNzYXJ5XG4gKi9cbnByaXZhdGUgcmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShmb3JtR3JvdXA6IEZvcm1Hcm91cCwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10sIHBhcmVudEZpZWxkPzogQ2FzZUZpZWxkKTogb2JqZWN0IHtcbiAgLy8gR2V0IHRoZSByYXcgZm9ybSB2YWx1ZSBkYXRhLCB3aGljaCBpbmNsdWRlcyB0aGUgdmFsdWVzIG9mIGFueSBkaXNhYmxlZCBjb250cm9scywgYXMga2V5LXZhbHVlIHBhaXJzXG4gIGNvbnN0IHJhd0Zvcm1WYWx1ZURhdGEgPSBmb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcblxuICAvLyBQbGFjZSBhbGwgY2FzZSBmaWVsZHMgaW4gYSBsb29rdXAgb2JqZWN0LCBzbyB0aGV5IGNhbiBiZSByZXRyaWV2ZWQgYnkgaWRcbiAgY29uc3QgY2FzZUZpZWxkc0xvb2t1cCA9IHt9O1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gY2FzZUZpZWxkcy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xuICAgIGNhc2VGaWVsZHNMb29rdXBbY2FzZUZpZWxkc1tpXS5pZF0gPSBjYXNlRmllbGRzW2ldO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlcGxhY2UgYW55IGZvcm0gdmFsdWUgd2l0aCB0aGUgb3JpZ2luYWwsIHdoZXJlIGl0cyBDYXNlRmllbGQgaXMgaGlkZGVuIEFORCBoYXMgdGhlIHJldGFpbl9oaWRkZW5fdmFsdWUgZmxhZyBzZXRcbiAgICogdG8gdHJ1ZS5cbiAgICpcbiAgICogSWYgdGhlIENhc2VGaWVsZCdzIGBoaWRkZW5gIGF0dHJpYnV0ZSBpcyBudWxsIG9yIHVuZGVmaW5lZCwgdGhlbiBjaGVjayB0aGlzIGF0dHJpYnV0ZSBpbiB0aGUgcGFyZW50IENhc2VGaWVsZCAoaWZcbiAgICogb25lIGV4aXN0cykuIFRoaXMgaXMgb2NjdXJyaW5nIChhbmQgaXMgcG9zc2libHkgYSBidWcpIHdoZW4gYSBDYXNlRmllbGQgaXMgYSBzdWItZmllbGQgb2YgYSBDb21wbGV4IHR5cGUsIG9yIGFuXG4gICAqIGl0ZW0gaW4gYSBDb2xsZWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIElmIHRoZSBmaWVsZCBpcyBhIENvbXBsZXggdHlwZSB3aXRoIHJldGFpbl9oaWRkZW5fdmFsdWUgPSB0cnVlLCBwZXJmb3JtIGEgcmVjdXJzaXZlIHJlcGxhY2VtZW50IGZvciBhbGwgKGhpZGRlbilcbiAgICogc3ViLWZpZWxkcyB3aXRoIHJldGFpbl9oaWRkZW5fdmFsdWUgPSB0cnVlLCB1c2luZyB0aGVpciBvcmlnaW5hbCBDYXNlRmllbGQgdmFsdWVzIChmcm9tIHRoZSBgZm9ybWF0dGVkX3ZhbHVlYFxuICAgKiBhdHRyaWJ1dGUpLlxuICAgKlxuICAgKiBJZiB0aGUgZmllbGQgaXMgYSBDb2xsZWN0aW9uIHR5cGUgd2l0aCByZXRhaW5faGlkZGVuX3ZhbHVlID0gdHJ1ZSwgdGhlIGVudGlyZSBjb2xsZWN0aW9uIGlzIHJlcGxhY2VkIHdpdGggdGhlXG4gICAqIG9yaWdpbmFsIGZyb20gYGZvcm1hdHRlZF92YWx1ZWAuIFRoaXMgYXBwbGllcyB0byAqYWxsKiB0eXBlcyBvZiBDb2xsZWN0aW9ucy5cbiAgICovXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIE9iamVjdC5rZXlzKHJhd0Zvcm1WYWx1ZURhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgIGNvbnN0IGNhc2VGaWVsZDogQ2FzZUZpZWxkID0gY2FzZUZpZWxkc0xvb2t1cFtrZXldO1xuICAgIC8vIElmIGNhc2VGaWVsZC5oaWRkZW4gaXMgTk9UIHRydXRoeSBhbmQgYWxzbyBOT1QgZXF1YWwgdG8gZmFsc2UsIHRoZW4gaXQgbXVzdCBiZSBudWxsL3VuZGVmaW5lZCAocmVtZW1iZXIgdGhhdFxuICAgIC8vIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIGFyZSBlcXVhbCB0byAqbmVpdGhlciBmYWxzZSBub3IgdHJ1ZSopXG4gICAgaWYgKGNhc2VGaWVsZCAmJiBjYXNlRmllbGQucmV0YWluX2hpZGRlbl92YWx1ZSAmJlxuICAgICAgKGNhc2VGaWVsZC5oaWRkZW4gfHwgKGNhc2VGaWVsZC5oaWRkZW4gIT09IGZhbHNlICYmIHBhcmVudEZpZWxkICYmIHBhcmVudEZpZWxkLmhpZGRlbikpKSB7XG4gICAgICBpZiAoY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgIC8vIE5vdGU6IERlbGliZXJhdGUgdXNlIG9mIGVxdWFsaXR5ICg9PSkgYW5kIG5vbi1lcXVhbGl0eSAoIT0pIG9wZXJhdG9ycyBmb3IgbnVsbCBjaGVja3MgdGhyb3VnaG91dCwgdG9cbiAgICAgICAgLy8gaGFuZGxlIGJvdGggbnVsbCBhbmQgdW5kZWZpbmVkIHZhbHVlc1xuICAgICAgICBpZiAoY2FzZUZpZWxkLnZhbHVlICE9IG51bGwpIHtcbiAgICAgICAgICAvLyBDYWxsIHRoaXMgZnVuY3Rpb24gcmVjdXJzaXZlbHkgdG8gcmVwbGFjZSB0aGUgQ29tcGxleCBmaWVsZCdzIHN1Yi1maWVsZHMgYXMgbmVjZXNzYXJ5LCBwYXNzaW5nIHRoZVxuICAgICAgICAgIC8vIENhc2VGaWVsZCBpdHNlbGYgKHRoZSBzdWItZmllbGRzIGRvIG5vdCBjb250YWluIGFueSB2YWx1ZXMsIHNvIHRoZXNlIG5lZWQgdG8gYmUgb2J0YWluZWQgZnJvbSB0aGVcbiAgICAgICAgICAvLyBwYXJlbnQpXG4gICAgICAgICAgLy8gVXBkYXRlIHJhd0Zvcm1WYWx1ZURhdGEgZm9yIHRoaXMgZmllbGRcbiAgICAgICAgICAvLyBjcmVhdGluZyBmb3JtIGdyb3VwIGFuZCBhZGRpbmcgY29udHJvbCBpbnRvIGl0IGluIGNhc2UgY2FzZUZpZWxkIGlzIG9mIGNvbXBsZXh0IHR5cGUgYW5kIGFuZCBwYXJ0IG9mIGZvcm1Hcm91cFxuICAgICAgICAgIGNvbnN0IGZvcm06IEZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICAgIGlmIChmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZSkge1xuICAgICAgICAgICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzW2tleV0udmFsdWUpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgZm9ybS5hZGRDb250cm9sKGl0ZW0sIG5ldyBGb3JtQ29udHJvbChmb3JtR3JvdXAuY29udHJvbHNba2V5XS52YWx1ZVtpdGVtXSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IHRoaXMucmVwbGFjZUhpZGRlbkZvcm1WYWx1ZXNXaXRoT3JpZ2luYWxDYXNlRGF0YShcbiAgICAgICAgICAgIGZvcm0sIGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBjYXNlRmllbGQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBEZWZhdWx0IGNhc2UgYWxzbyBoYW5kbGVzIGNvbGxlY3Rpb25zIG9mICphbGwqIHR5cGVzOyB0aGUgZW50aXJlIGNvbGxlY3Rpb24gaW4gcmF3Rm9ybVZhbHVlRGF0YSB3aWxsIGJlXG4gICAgICAgIC8vIHJlcGxhY2VkIHdpdGggdGhlIG9yaWdpbmFsIGZyb20gZm9ybWF0dGVkX3ZhbHVlXG4gICAgICAgIC8vIFVzZSB0aGUgQ2FzZUZpZWxkJ3MgZXhpc3RpbmcgKmZvcm1hdHRlZF92YWx1ZSogZnJvbSB0aGUgcGFyZW50LCBpZiBhdmFpbGFibGUuIChUaGlzIGlzIG5lY2Vzc2FyeSBmb3JcbiAgICAgICAgLy8gQ29tcGxleCBmaWVsZHMsIHdob3NlIHN1Yi1maWVsZHMgZG8gbm90IGhvbGQgYW55IHZhbHVlcyBpbiB0aGUgbW9kZWwuKSBPdGhlcndpc2UsIHVzZSBmb3JtYXR0ZWRfdmFsdWVcbiAgICAgICAgLy8gZnJvbSB0aGUgQ2FzZUZpZWxkIGl0c2VsZi5cbiAgICAgICAgaWYgKHBhcmVudEZpZWxkICYmIHBhcmVudEZpZWxkLmZvcm1hdHRlZF92YWx1ZSkge1xuICAgICAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IHBhcmVudEZpZWxkLmZvcm1hdHRlZF92YWx1ZVtjYXNlRmllbGQuaWRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJhd0Zvcm1WYWx1ZURhdGFba2V5XSA9IGNhc2VGaWVsZC5mb3JtYXR0ZWRfdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiByYXdGb3JtVmFsdWVEYXRhO1xufVxuXG4gIHByaXZhdGUgY2FzZVN1Ym1pdCh7Zm9ybSwgY2FzZUV2ZW50RGF0YSwgc3VibWl0fTogQ2FzZUVkaXRDYXNlU3VibWl0KTogdm9pZCB7XG4gICAgY29uc3QgbG9hZGluZ1NwaW5uZXJUb2tlbiA9IHRoaXMubG9hZGluZ1NlcnZpY2UucmVnaXN0ZXIoKTtcblxuICAgIHN1Ym1pdChjYXNlRXZlbnREYXRhKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdTZXJ2aWNlLnVucmVnaXN0ZXIobG9hZGluZ1NwaW5uZXJUb2tlbik7XG4gICAgICB9KSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmNhc2VOb3RpZmllci5jYWNoZWRDYXNlVmlldyA9IG51bGw7XG4gICAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICAgICAgICBjb25zdCBjb25maXJtYXRpb246IENvbmZpcm1hdGlvbiA9IHRoaXMuYnVpbGRDb25maXJtYXRpb24ocmVzcG9uc2UpO1xuICAgICAgICAgIGlmIChjb25maXJtYXRpb24gJiYgKGNvbmZpcm1hdGlvbi5nZXRIZWFkZXIoKSB8fCBjb25maXJtYXRpb24uZ2V0Qm9keSgpKSkge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtKGNvbmZpcm1hdGlvbik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW1pdFN1Ym1pdHRlZChyZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgICAgICAgIHRoaXMuY2FsbGJhY2tFcnJvcnNTdWJqZWN0Lm5leHQoZXJyb3IpO1xuICAgICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKHRoaXMuZXJyb3IuZGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5mb3JtRXJyb3JTZXJ2aWNlXG4gICAgICAgICAgICAgIC5tYXBGaWVsZEVycm9ycyh0aGlzLmVycm9yLmRldGFpbHMuZmllbGRfZXJyb3JzLCBmb3JtLmNvbnRyb2xzWydkYXRhJ10gYXMgRm9ybUdyb3VwLCAndmFsaWRhdGlvbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmlzU3VibWl0dGluZyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbmZpcm1hdGlvbihyZXNwb25zZTogb2JqZWN0KTogQ29uZmlybWF0aW9uIHtcbiAgICBpZiAocmVzcG9uc2VbJ2FmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZSddKSB7XG4gICAgICByZXR1cm4gbmV3IENvbmZpcm1hdGlvbihcbiAgICAgICAgcmVzcG9uc2VbJ2lkJ10sXG4gICAgICAgIHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSxcbiAgICAgICAgcmVzcG9uc2VbJ2FmdGVyX3N1Ym1pdF9jYWxsYmFja19yZXNwb25zZSddWydjb25maXJtYXRpb25faGVhZGVyJ10sXG4gICAgICAgIHJlc3BvbnNlWydhZnRlcl9zdWJtaXRfY2FsbGJhY2tfcmVzcG9uc2UnXVsnY29uZmlybWF0aW9uX2JvZHknXVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uRXZlbnRDYW5CZUNvbXBsZXRlZCh7IGV2ZW50VHJpZ2dlciwgZXZlbnRDYW5CZUNvbXBsZXRlZCwgY2FzZURldGFpbHMsIGZvcm0sIHN1Ym1pdCB9OiBDYXNlRWRpdG9uRXZlbnRDYW5CZUNvbXBsZXRlZCApOiB2b2lkIHtcbiAgICBpZiAoZXZlbnRDYW5CZUNvbXBsZXRlZCkge1xuICAgICAgLy8gU3VibWl0XG4gICAgICBjb25zdCBjYXNlRXZlbnREYXRhID0gdGhpcy5nZW5lcmF0ZUNhc2VFdmVudERhdGEoeyBldmVudFRyaWdnZXIsIGZvcm0gfSk7XG4gICAgICB0aGlzLmNhc2VTdWJtaXQoeyBmb3JtLCBjYXNlRXZlbnREYXRhLCBzdWJtaXQgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5hdmlnYXRlIHRvIHRhc2tzIHRhYiBvbiBjYXNlIGRldGFpbHMgcGFnZVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7dGhpcy5nZXRDYXNlSWQoY2FzZURldGFpbHMpfS90YXNrc2BdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICB9XG5cblxuICBwdWJsaWMgZ2V0U3RhdHVzKHJlc3BvbnNlOiBvYmplY3QpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmhhc0NhbGxiYWNrRmFpbGVkKHJlc3BvbnNlKSA/IHJlc3BvbnNlWydjYWxsYmFja19yZXNwb25zZV9zdGF0dXMnXSA6IHJlc3BvbnNlWydkZWxldGVfZHJhZnRfcmVzcG9uc2Vfc3RhdHVzJ107XG4gIH1cblxuICBwcml2YXRlIGhhc0NhbGxiYWNrRmFpbGVkKHJlc3BvbnNlOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gcmVzcG9uc2VbJ2NhbGxiYWNrX3Jlc3BvbnNlX3N0YXR1cyddICE9PSAnQ0FMTEJBQ0tfQ09NUExFVEVEJztcbiAgfVxuXG59XG4iLCI8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG4iXX0=
@@ -6,17 +6,17 @@ import { CaseEditComponent } from '../case-edit/case-edit.component';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "../case-edit/case-edit.component";
8
8
  import * as i2 from "@angular/router";
9
- function CaseEditConfirmComponent_div_2_Template(rf, ctx) { if (rf & 1) {
9
+ function CaseEditConfirmComponent_div_3_Template(rf, ctx) { if (rf & 1) {
10
10
  i0.ɵɵelement(0, "div");
11
11
  } }
12
- function CaseEditConfirmComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
12
+ function CaseEditConfirmComponent_ng_template_4_Template(rf, ctx) { if (rf & 1) {
13
13
  i0.ɵɵelement(0, "ccd-markdown", 8);
14
14
  i0.ɵɵpipe(1, "ccdCaseTitle");
15
15
  } if (rf & 2) {
16
16
  const ctx_r2 = i0.ɵɵnextContext();
17
17
  i0.ɵɵproperty("content", i0.ɵɵpipeBind3(1, 1, ctx_r2.getCaseTitle(), ctx_r2.caseFields, ctx_r2.editForm.controls["data"]));
18
18
  } }
19
- function CaseEditConfirmComponent_ng_template_5_h2_0_Template(rf, ctx) { if (rf & 1) {
19
+ function CaseEditConfirmComponent_ng_template_6_h2_0_Template(rf, ctx) { if (rf & 1) {
20
20
  i0.ɵɵelementStart(0, "h2", 10);
21
21
  i0.ɵɵtext(1);
22
22
  i0.ɵɵpipe(2, "ccdCaseReference");
@@ -26,29 +26,31 @@ function CaseEditConfirmComponent_ng_template_5_h2_0_Template(rf, ctx) { if (rf
26
26
  i0.ɵɵadvance(1);
27
27
  i0.ɵɵtextInterpolate1("#", i0.ɵɵpipeBind1(2, 1, ctx_r7.getCaseId()), "");
28
28
  } }
29
- function CaseEditConfirmComponent_ng_template_5_Template(rf, ctx) { if (rf & 1) {
30
- i0.ɵɵtemplate(0, CaseEditConfirmComponent_ng_template_5_h2_0_Template, 3, 3, "h2", 9);
29
+ function CaseEditConfirmComponent_ng_template_6_Template(rf, ctx) { if (rf & 1) {
30
+ i0.ɵɵtemplate(0, CaseEditConfirmComponent_ng_template_6_h2_0_Template, 3, 3, "h2", 9);
31
31
  } if (rf & 2) {
32
32
  const ctx_r4 = i0.ɵɵnextContext();
33
33
  i0.ɵɵproperty("ngIf", ctx_r4.getCaseId());
34
34
  } }
35
- function CaseEditConfirmComponent_div_8_Template(rf, ctx) { if (rf & 1) {
35
+ function CaseEditConfirmComponent_div_9_Template(rf, ctx) { if (rf & 1) {
36
36
  i0.ɵɵelementStart(0, "div", 11);
37
37
  i0.ɵɵelement(1, "ccd-markdown", 8);
38
+ i0.ɵɵpipe(2, "rpxTranslate");
38
39
  i0.ɵɵelementEnd();
39
40
  } if (rf & 2) {
40
41
  const ctx_r5 = i0.ɵɵnextContext();
41
42
  i0.ɵɵadvance(1);
42
- i0.ɵɵproperty("content", ctx_r5.confirmation.getHeader());
43
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(2, 1, ctx_r5.confirmation.getHeader()));
43
44
  } }
44
- function CaseEditConfirmComponent_div_9_Template(rf, ctx) { if (rf & 1) {
45
+ function CaseEditConfirmComponent_div_10_Template(rf, ctx) { if (rf & 1) {
45
46
  i0.ɵɵelementStart(0, "div", 12);
46
47
  i0.ɵɵelement(1, "ccd-markdown", 8);
48
+ i0.ɵɵpipe(2, "rpxTranslate");
47
49
  i0.ɵɵelementEnd();
48
50
  } if (rf & 2) {
49
51
  const ctx_r6 = i0.ɵɵnextContext();
50
52
  i0.ɵɵadvance(1);
51
- i0.ɵɵproperty("content", ctx_r6.confirmation.getBody());
53
+ i0.ɵɵproperty("content", i0.ɵɵpipeBind1(2, 1, ctx_r6.confirmation.getBody()));
52
54
  } }
53
55
  export class CaseEditConfirmComponent {
54
56
  constructor(caseEdit, router) {
@@ -85,27 +87,29 @@ export class CaseEditConfirmComponent {
85
87
  }
86
88
  }
87
89
  CaseEditConfirmComponent.ɵfac = function CaseEditConfirmComponent_Factory(t) { return new (t || CaseEditConfirmComponent)(i0.ɵɵdirectiveInject(i1.CaseEditComponent), i0.ɵɵdirectiveInject(i2.Router)); };
88
- CaseEditConfirmComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditConfirmComponent, selectors: [["ng-component"]], decls: 12, vars: 8, consts: [[1, "heading-h1"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "formGroup", "submit"], ["id", "confirmation-header", 4, "ngIf"], ["id", "confirmation-body", 4, "ngIf"], ["type", "submit", "data-ng-click", "submit()", 1, "button"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["id", "confirmation-header"], ["id", "confirmation-body"]], template: function CaseEditConfirmComponent_Template(rf, ctx) { if (rf & 1) {
90
+ CaseEditConfirmComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditConfirmComponent, selectors: [["ng-component"]], decls: 14, vars: 12, consts: [[1, "heading-h1"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["titleBlock", ""], ["idBlock", ""], [3, "formGroup", "submit"], ["id", "confirmation-header", 4, "ngIf"], ["id", "confirmation-body", 4, "ngIf"], ["type", "submit", "data-ng-click", "submit()", 1, "button"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["id", "confirmation-header"], ["id", "confirmation-body"]], template: function CaseEditConfirmComponent_Template(rf, ctx) { if (rf & 1) {
89
91
  i0.ɵɵelementStart(0, "h1", 0);
90
92
  i0.ɵɵtext(1);
93
+ i0.ɵɵpipe(2, "rpxTranslate");
91
94
  i0.ɵɵelementEnd();
92
- i0.ɵɵtemplate(2, CaseEditConfirmComponent_div_2_Template, 1, 0, "div", 1);
93
- i0.ɵɵtemplate(3, CaseEditConfirmComponent_ng_template_3_Template, 2, 5, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
94
- i0.ɵɵtemplate(5, CaseEditConfirmComponent_ng_template_5_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
95
- i0.ɵɵelementStart(7, "form", 4);
96
- i0.ɵɵlistener("submit", function CaseEditConfirmComponent_Template_form_submit_7_listener() { return ctx.submit(); });
97
- i0.ɵɵtemplate(8, CaseEditConfirmComponent_div_8_Template, 2, 1, "div", 5);
98
- i0.ɵɵtemplate(9, CaseEditConfirmComponent_div_9_Template, 2, 1, "div", 6);
99
- i0.ɵɵelementStart(10, "button", 7);
100
- i0.ɵɵtext(11);
95
+ i0.ɵɵtemplate(3, CaseEditConfirmComponent_div_3_Template, 1, 0, "div", 1);
96
+ i0.ɵɵtemplate(4, CaseEditConfirmComponent_ng_template_4_Template, 2, 5, "ng-template", null, 2, i0.ɵɵtemplateRefExtractor);
97
+ i0.ɵɵtemplate(6, CaseEditConfirmComponent_ng_template_6_Template, 1, 1, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor);
98
+ i0.ɵɵelementStart(8, "form", 4);
99
+ i0.ɵɵlistener("submit", function CaseEditConfirmComponent_Template_form_submit_8_listener() { return ctx.submit(); });
100
+ i0.ɵɵtemplate(9, CaseEditConfirmComponent_div_9_Template, 3, 3, "div", 5);
101
+ i0.ɵɵtemplate(10, CaseEditConfirmComponent_div_10_Template, 3, 3, "div", 6);
102
+ i0.ɵɵelementStart(11, "button", 7);
103
+ i0.ɵɵtext(12);
104
+ i0.ɵɵpipe(13, "rpxTranslate");
101
105
  i0.ɵɵelementEnd();
102
106
  i0.ɵɵelementEnd();
103
107
  } if (rf & 2) {
104
- const _r1 = i0.ɵɵreference(4);
105
- const _r3 = i0.ɵɵreference(6);
106
- i0.ɵɵadvance(1);
107
- i0.ɵɵtextInterpolate(ctx.eventTrigger.name);
108
+ const _r1 = i0.ɵɵreference(5);
109
+ const _r3 = i0.ɵɵreference(7);
108
110
  i0.ɵɵadvance(1);
111
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 8, ctx.eventTrigger.name));
112
+ i0.ɵɵadvance(2);
109
113
  i0.ɵɵproperty("ngIf", ctx.getCaseTitle())("ngIfThen", _r1)("ngIfElse", _r3);
110
114
  i0.ɵɵadvance(5);
111
115
  i0.ɵɵproperty("formGroup", ctx.formGroup);
@@ -114,8 +118,8 @@ CaseEditConfirmComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditConfirmC
114
118
  i0.ɵɵadvance(1);
115
119
  i0.ɵɵproperty("ngIf", ctx.confirmation.getBody());
116
120
  i0.ɵɵadvance(2);
117
- i0.ɵɵtextInterpolate(ctx.triggerText);
118
- } }, styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
121
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 10, ctx.triggerText));
122
+ } }, styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
119
123
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditConfirmComponent, [{
120
124
  type: Component,
121
125
  args: [{
@@ -123,4 +127,4 @@ CaseEditConfirmComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditConfirmC
123
127
  styleUrls: ['../case-edit.scss']
124
128
  }]
125
129
  }], function () { return [{ type: i1.CaseEditComponent }, { type: i2.Router }]; }, null); })();
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1jb25maXJtL2Nhc2UtZWRpdC1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtY29uZmlybS9jYXNlLWVkaXQtY29uZmlybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0lDSHJFLHNCQUFpRTs7O0lBRS9ELGtDQUErRzs7OztJQUFqRywwSEFBaUY7OztJQUcvRiw4QkFBMkM7SUFBQSxZQUFxQzs7SUFBQSxpQkFBSzs7O0lBQTFDLGVBQXFDO0lBQXJDLHdFQUFxQzs7O0lBQWhGLHFGQUFxRjs7O0lBQWhGLHlDQUFpQjs7O0lBSXRCLCtCQUErRDtJQUM3RCxrQ0FBa0U7SUFDcEUsaUJBQU07OztJQURVLGVBQW9DO0lBQXBDLHlEQUFvQzs7O0lBRXBELCtCQUEyRDtJQUN6RCxrQ0FBZ0U7SUFDbEUsaUJBQU07OztJQURVLGVBQWtDO0lBQWxDLHVEQUFrQzs7QURIcEQsTUFBTSxPQUFPLHdCQUF3QjtJQVFuQyxZQUE2QixRQUEyQixFQUFtQixNQUFjO1FBQTVELGFBQVEsR0FBUixRQUFRLENBQW1CO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFObEYsZ0JBQVcsR0FBRyxrQ0FBa0MsQ0FBQztRQUNqRCxjQUFTLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQU1uQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtZQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1NBQ2hEO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxFQUFDLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRU0sU0FBUzs7UUFDZCxPQUFPLGFBQUEsSUFBSSxDQUFDLFFBQVEsMENBQUUsV0FBVywwQ0FBRSxPQUFPLEtBQUksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLO1lBQ2xFLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUU7WUFDN0IsT0FBTyxXQUFXLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDN0Q7UUFFRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7O2dHQXRDVSx3QkFBd0I7NkRBQXhCLHdCQUF3QjtRQ2JyQyw2QkFBdUI7UUFBQSxZQUFzQjtRQUFBLGlCQUFLO1FBR2xELHlFQUFpRTtRQUNqRSwwSEFFYztRQUNkLDBIQUVjO1FBRWQsK0JBQWtEO1FBQXBCLHFHQUFVLFlBQVEsSUFBQztRQUMvQyx5RUFFTTtRQUNOLHlFQUVNO1FBQ04sa0NBQThEO1FBQUEsYUFBZTtRQUFBLGlCQUFTO1FBQ3hGLGlCQUFPOzs7O1FBbkJnQixlQUFzQjtRQUF0QiwyQ0FBc0I7UUFHdkMsZUFBc0I7UUFBdEIseUNBQXNCLGlCQUFBLGlCQUFBO1FBUXRCLGVBQXVCO1FBQXZCLHlDQUF1QjtRQUNJLGVBQThCO1FBQTlCLG1EQUE4QjtRQUdoQyxlQUE0QjtRQUE1QixpREFBNEI7UUFHSyxlQUFlO1FBQWYscUNBQWU7O3VGRExsRSx3QkFBd0I7Y0FKcEMsU0FBUztlQUFDO2dCQUNULFdBQVcsRUFBRSwwQkFBMEI7Z0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgQ2FzZUV2ZW50VHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9jYXNlLXZpZXcvY2FzZS1ldmVudC10cmlnZ2VyLm1vZGVsJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IENhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2FzZS1lZGl0L2Nhc2UtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybWF0aW9uIH0gZnJvbSAnLi4vZG9tYWluL2NvbmZpcm1hdGlvbi5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICB0ZW1wbGF0ZVVybDogJy4vY2FzZS1lZGl0LWNvbmZpcm0uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi9jYXNlLWVkaXQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0Q29uZmlybUNvbXBvbmVudCB7XG4gIHB1YmxpYyBldmVudFRyaWdnZXI6IENhc2VFdmVudFRyaWdnZXI7XG4gIHB1YmxpYyB0cmlnZ2VyVGV4dCA9ICdDbG9zZSBhbmQgUmV0dXJuIHRvIGNhc2UgZGV0YWlscyc7XG4gIHB1YmxpYyBmb3JtR3JvdXAgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgcHVibGljIGNvbmZpcm1hdGlvbjogQ29uZmlybWF0aW9uO1xuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW107XG4gIHB1YmxpYyBlZGl0Rm9ybTogRm9ybUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2FzZUVkaXQ6IENhc2VFZGl0Q29tcG9uZW50LCBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyKSB7XG4gICAgdGhpcy5ldmVudFRyaWdnZXIgPSB0aGlzLmNhc2VFZGl0LmV2ZW50VHJpZ2dlcjtcbiAgICB0aGlzLmVkaXRGb3JtID0gdGhpcy5jYXNlRWRpdC5mb3JtO1xuICAgIHRoaXMuY2FzZUZpZWxkcyA9IHRoaXMuZ2V0Q2FzZUZpZWxkcygpO1xuICAgIGlmICh0aGlzLmNhc2VFZGl0LmNvbmZpcm1hdGlvbikge1xuICAgICAgdGhpcy5jb25maXJtYXRpb24gPSB0aGlzLmNhc2VFZGl0LmNvbmZpcm1hdGlvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvJ10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlRWRpdC5zdWJtaXR0ZWQuZW1pdCh7Y2FzZUlkOiB0aGlzLmNvbmZpcm1hdGlvbi5nZXRDYXNlSWQoKSwgc3RhdHVzOiB0aGlzLmNvbmZpcm1hdGlvbi5nZXRTdGF0dXMoKX0pO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNhc2VFZGl0Py5jYXNlRGV0YWlscz8uY2FzZV9pZCB8fCAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRDYXNlVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMuY2FzZUVkaXQuY2FzZURldGFpbHMgJiYgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZSAmJlxuICAgICAgdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5ID8gdGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscy5zdGF0ZS50aXRsZV9kaXNwbGF5IDogJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlRmllbGRzKCk6IENhc2VGaWVsZFtdIHtcbiAgICBpZiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscykge1xuICAgICAgcmV0dXJuIEZpZWxkc1V0aWxzLmdldENhc2VGaWVsZHModGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZXZlbnRUcmlnZ2VyLmNhc2VfZmllbGRzO1xuICB9XG59XG4iLCI8IS0tIEN1cnJlbnQgUGFnZSAmJiBFdmVudCB0cmlnZ2VyIG5hbWUgLS0+XG48aDEgY2xhc3M9XCJoZWFkaW5nLWgxXCI+e3sgZXZlbnRUcmlnZ2VyLm5hbWV9fTwvaDE+XG5cbjwhLS1DYXNlIElEIG9yIFRpdGxlIC0tPlxuPGRpdiAqbmdJZj1cImdldENhc2VUaXRsZSgpOyB0aGVuIHRpdGxlQmxvY2s7IGVsc2UgaWRCbG9ja1wiPjwvZGl2PlxuPG5nLXRlbXBsYXRlICN0aXRsZUJsb2NrPlxuICA8Y2NkLW1hcmtkb3duIFtjb250ZW50XT1cImdldENhc2VUaXRsZSgpIHwgY2NkQ2FzZVRpdGxlOiBjYXNlRmllbGRzIDogZWRpdEZvcm0uY29udHJvbHNbJ2RhdGEnXVwiPjwvY2NkLW1hcmtkb3duPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjaWRCbG9jaz5cbiAgPGgyICpuZ0lmPVwiZ2V0Q2FzZUlkKClcIiBjbGFzcz1cImhlYWRpbmctaDJcIj4je3sgZ2V0Q2FzZUlkKCkgfCBjY2RDYXNlUmVmZXJlbmNlIH19PC9oMj5cbjwvbmctdGVtcGxhdGU+XG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwXCIgKHN1Ym1pdCk9XCJzdWJtaXQoKVwiPlxuICA8ZGl2IGlkPVwiY29uZmlybWF0aW9uLWhlYWRlclwiICpuZ0lmPVwiY29uZmlybWF0aW9uLmdldEhlYWRlcigpXCI+XG4gICAgPGNjZC1tYXJrZG93biBbY29udGVudF09XCJjb25maXJtYXRpb24uZ2V0SGVhZGVyKClcIj48L2NjZC1tYXJrZG93bj5cbiAgPC9kaXY+XG4gIDxkaXYgaWQ9XCJjb25maXJtYXRpb24tYm9keVwiICpuZ0lmPVwiY29uZmlybWF0aW9uLmdldEJvZHkoKVwiPlxuICAgIDxjY2QtbWFya2Rvd24gW2NvbnRlbnRdPVwiY29uZmlybWF0aW9uLmdldEJvZHkoKVwiPjwvY2NkLW1hcmtkb3duPlxuICA8L2Rpdj5cbiAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidXR0b25cIiBkYXRhLW5nLWNsaWNrPVwic3VibWl0KClcIj57e3RyaWdnZXJUZXh0fX08L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LWNvbmZpcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1jb25maXJtL2Nhc2UtZWRpdC1jb25maXJtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtY29uZmlybS9jYXNlLWVkaXQtY29uZmlybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUl6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0lDSHJFLHNCQUFpRTs7O0lBRS9ELGtDQUErRzs7OztJQUFqRywwSEFBaUY7OztJQUcvRiw4QkFBMkM7SUFBQSxZQUFxQzs7SUFBQSxpQkFBSzs7O0lBQTFDLGVBQXFDO0lBQXJDLHdFQUFxQzs7O0lBQWhGLHFGQUFxRjs7O0lBQWhGLHlDQUFpQjs7O0lBSXRCLCtCQUErRDtJQUM3RCxrQ0FBaUY7O0lBQ25GLGlCQUFNOzs7SUFEVSxlQUFtRDtJQUFuRCwrRUFBbUQ7OztJQUVuRSwrQkFBMkQ7SUFDekQsa0NBQStFOztJQUNqRixpQkFBTTs7O0lBRFUsZUFBaUQ7SUFBakQsNkVBQWlEOztBREhuRSxNQUFNLE9BQU8sd0JBQXdCO0lBUW5DLFlBQTZCLFFBQTJCLEVBQW1CLE1BQWM7UUFBNUQsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQU5sRixnQkFBVyxHQUFHLGtDQUFrQyxDQUFDO1FBQ2pELGNBQVMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBTW5DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxFQUFFO1lBQzlCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7U0FDaEQ7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLEVBQUMsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFFTSxTQUFTOztRQUNkLE9BQU8sYUFBQSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxXQUFXLDBDQUFFLE9BQU8sS0FBSSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVNLFlBQVk7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDbEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRTtZQUM3QixPQUFPLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3RDtRQUVELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7SUFDdkMsQ0FBQzs7Z0dBdENVLHdCQUF3Qjs2REFBeEIsd0JBQXdCO1FDYnJDLDZCQUF1QjtRQUFBLFlBQXFDOztRQUFBLGlCQUFLO1FBR2pFLHlFQUFpRTtRQUNqRSwwSEFFYztRQUNkLDBIQUVjO1FBRWQsK0JBQWtEO1FBQXBCLHFHQUFVLFlBQVEsSUFBQztRQUMvQyx5RUFFTTtRQUNOLDJFQUVNO1FBQ04sa0NBQThEO1FBQUEsYUFBbUM7O1FBQUEsaUJBQVM7UUFDNUcsaUJBQU87Ozs7UUFuQmdCLGVBQXFDO1FBQXJDLGlFQUFxQztRQUd0RCxlQUFzQjtRQUF0Qix5Q0FBc0IsaUJBQUEsaUJBQUE7UUFRdEIsZUFBdUI7UUFBdkIseUNBQXVCO1FBQ0ksZUFBOEI7UUFBOUIsbURBQThCO1FBR2hDLGVBQTRCO1FBQTVCLGlEQUE0QjtRQUdLLGVBQW1DO1FBQW5DLDZEQUFtQzs7dUZETHRGLHdCQUF3QjtjQUpwQyxTQUFTO2VBQUM7Z0JBQ1QsV0FBVyxFQUFFLDBCQUEwQjtnQkFDdkMsU0FBUyxFQUFFLENBQUMsbUJBQW1CLENBQUM7YUFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBDYXNlRXZlbnRUcmlnZ2VyIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLWV2ZW50LXRyaWdnZXIubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgQ2FzZUVkaXRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXQvY2FzZS1lZGl0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb25maXJtYXRpb24gfSBmcm9tICcuLi9kb21haW4vY29uZmlybWF0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlVXJsOiAnLi9jYXNlLWVkaXQtY29uZmlybS5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4uL2Nhc2UtZWRpdC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FzZUVkaXRDb25maXJtQ29tcG9uZW50IHtcbiAgcHVibGljIGV2ZW50VHJpZ2dlcjogQ2FzZUV2ZW50VHJpZ2dlcjtcbiAgcHVibGljIHRyaWdnZXJUZXh0ID0gJ0Nsb3NlIGFuZCBSZXR1cm4gdG8gY2FzZSBkZXRhaWxzJztcbiAgcHVibGljIGZvcm1Hcm91cCA9IG5ldyBGb3JtQ29udHJvbCgpO1xuICBwdWJsaWMgY29uZmlybWF0aW9uOiBDb25maXJtYXRpb247XG4gIHB1YmxpYyBjYXNlRmllbGRzOiBDYXNlRmllbGRbXTtcbiAgcHVibGljIGVkaXRGb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjYXNlRWRpdDogQ2FzZUVkaXRDb21wb25lbnQsIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIpIHtcbiAgICB0aGlzLmV2ZW50VHJpZ2dlciA9IHRoaXMuY2FzZUVkaXQuZXZlbnRUcmlnZ2VyO1xuICAgIHRoaXMuZWRpdEZvcm0gPSB0aGlzLmNhc2VFZGl0LmZvcm07XG4gICAgdGhpcy5jYXNlRmllbGRzID0gdGhpcy5nZXRDYXNlRmllbGRzKCk7XG4gICAgaWYgKHRoaXMuY2FzZUVkaXQuY29uZmlybWF0aW9uKSB7XG4gICAgICB0aGlzLmNvbmZpcm1hdGlvbiA9IHRoaXMuY2FzZUVkaXQuY29uZmlybWF0aW9uO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nXSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHN1Ym1pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VFZGl0LnN1Ym1pdHRlZC5lbWl0KHtjYXNlSWQ6IHRoaXMuY29uZmlybWF0aW9uLmdldENhc2VJZCgpLCBzdGF0dXM6IHRoaXMuY29uZmlybWF0aW9uLmdldFN0YXR1cygpfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q2FzZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuY2FzZUVkaXQ/LmNhc2VEZXRhaWxzPy5jYXNlX2lkIHx8ICcnO1xuICB9XG5cbiAgcHVibGljIGdldENhc2VUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5jYXNlRWRpdC5jYXNlRGV0YWlscyAmJiB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlICYmXG4gICAgICB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgPyB0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzLnN0YXRlLnRpdGxlX2Rpc3BsYXkgOiAnJyk7XG4gIH1cblxuICBwcml2YXRlIGdldENhc2VGaWVsZHMoKTogQ2FzZUZpZWxkW10ge1xuICAgIGlmICh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKSB7XG4gICAgICByZXR1cm4gRmllbGRzVXRpbHMuZ2V0Q2FzZUZpZWxkcyh0aGlzLmNhc2VFZGl0LmNhc2VEZXRhaWxzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ldmVudFRyaWdnZXIuY2FzZV9maWVsZHM7XG4gIH1cbn1cbiIsIjwhLS0gQ3VycmVudCBQYWdlICYmIEV2ZW50IHRyaWdnZXIgbmFtZSAtLT5cbjxoMSBjbGFzcz1cImhlYWRpbmctaDFcIj57eyBldmVudFRyaWdnZXIubmFtZSB8IHJweFRyYW5zbGF0ZX19PC9oMT5cblxuPCEtLUNhc2UgSUQgb3IgVGl0bGUgLS0+XG48ZGl2ICpuZ0lmPVwiZ2V0Q2FzZVRpdGxlKCk7IHRoZW4gdGl0bGVCbG9jazsgZWxzZSBpZEJsb2NrXCI+PC9kaXY+XG48bmctdGVtcGxhdGUgI3RpdGxlQmxvY2s+XG4gIDxjY2QtbWFya2Rvd24gW2NvbnRlbnRdPVwiZ2V0Q2FzZVRpdGxlKCkgfCBjY2RDYXNlVGl0bGU6IGNhc2VGaWVsZHMgOiBlZGl0Rm9ybS5jb250cm9sc1snZGF0YSddXCI+PC9jY2QtbWFya2Rvd24+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNpZEJsb2NrPlxuICA8aDIgKm5nSWY9XCJnZXRDYXNlSWQoKVwiIGNsYXNzPVwiaGVhZGluZy1oMlwiPiN7eyBnZXRDYXNlSWQoKSB8IGNjZENhc2VSZWZlcmVuY2UgfX08L2gyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiAoc3VibWl0KT1cInN1Ym1pdCgpXCI+XG4gIDxkaXYgaWQ9XCJjb25maXJtYXRpb24taGVhZGVyXCIgKm5nSWY9XCJjb25maXJtYXRpb24uZ2V0SGVhZGVyKClcIj5cbiAgICA8Y2NkLW1hcmtkb3duIFtjb250ZW50XT1cImNvbmZpcm1hdGlvbi5nZXRIZWFkZXIoKSB8IHJweFRyYW5zbGF0ZVwiPjwvY2NkLW1hcmtkb3duPlxuICA8L2Rpdj5cbiAgPGRpdiBpZD1cImNvbmZpcm1hdGlvbi1ib2R5XCIgKm5nSWY9XCJjb25maXJtYXRpb24uZ2V0Qm9keSgpXCI+XG4gICAgPGNjZC1tYXJrZG93biBbY29udGVudF09XCJjb25maXJtYXRpb24uZ2V0Qm9keSgpIHwgcnB4VHJhbnNsYXRlXCI+PC9jY2QtbWFya2Rvd24+XG4gIDwvZGl2PlxuICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ1dHRvblwiIGRhdGEtbmctY2xpY2s9XCJzdWJtaXQoKVwiPnt7dGhpcy50cmlnZ2VyVGV4dCB8IHJweFRyYW5zbGF0ZX19PC9idXR0b24+XG48L2Zvcm0+XG4iXX0=
@@ -65,7 +65,7 @@ CaseEditGenericErrorsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditGe
65
65
  i0.ɵɵproperty("ngIf", ctx.error && (!(ctx.error.callbackErrors || ctx.error.callbackWarnings || ctx.error.details) && !ctx.error.message));
66
66
  i0.ɵɵadvance(1);
67
67
  i0.ɵɵproperty("ngIf", ctx.error && (ctx.error.details || ctx.error.message));
68
- } }, directives: [i1.NgIf, i1.NgForOf], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
68
+ } }, directives: [i1.NgIf, i1.NgForOf], styles: ["#fieldset-case-data[_ngcontent-%COMP%]{margin-bottom:30px}#fieldset-case-data[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{width:1%;white-space:nowrap;vertical-align:top}.compound-field[_ngcontent-%COMP%] td[_ngcontent-%COMP%]{padding:0}#confirmation-header[_ngcontent-%COMP%]{width:630px;background-color:#17958b;border:1px solid #979797;color:#fff;text-align:center}#confirmation-body[_ngcontent-%COMP%]{width:630px;background-color:#fff}.valign-top[_ngcontent-%COMP%]{vertical-align:top}.summary-fields[_ngcontent-%COMP%]{margin-bottom:30px}.summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] td[_ngcontent-%COMP%], .summary-fields[_ngcontent-%COMP%] tbody[_ngcontent-%COMP%] tr[_ngcontent-%COMP%] th[_ngcontent-%COMP%]{border-bottom:0}a.disabled[_ngcontent-%COMP%]{pointer-events:none;cursor:default}.case-field-label[_ngcontent-%COMP%]{width:45%}.case-field-content[_ngcontent-%COMP%]{width:50%}.no-bottom-border[_ngcontent-%COMP%]{border-bottom:none}.case-field-change[_ngcontent-%COMP%]{width:5%}"] });
69
69
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditGenericErrorsComponent, [{
70
70
  type: Component,
71
71
  args: [{
@@ -77,4 +77,4 @@ CaseEditGenericErrorsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: CaseEditGe
77
77
  }], null, { error: [{
78
78
  type: Input
79
79
  }] }); })();
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMvY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMvY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztJQ0Q1Qyw4QkFBc047SUFDbE4sNkJBQXdGO0lBQ3RGLHNDQUNGO0lBQUEsaUJBQUs7SUFDTCw4QkFBK0U7SUFDN0UseUJBQUc7SUFBQSxvRUFBb0Q7SUFBQSxpQkFBSTtJQUMzRCx5QkFBRztJQUFBLDRCQUFtQztJQUFBLDBCQUFVO0lBQUEsaUJBQUk7SUFBQyxpREFBZ0M7SUFBQSxpQkFBSTtJQUMzRixpQkFBTTtJQUNSLGlCQUFNOzs7SUFRRiw2QkFBdUY7SUFBQSxZQUFzQjtJQUFBLGlCQUFLOzs7SUFBM0IsZUFBc0I7SUFBdEIsMkNBQXNCOzs7SUFEL0csNkJBQW1FO0lBQ2pFLHdGQUFrSDtJQUNwSCxpQkFBSzs7O0lBRHdCLGVBQTZCO0lBQTdCLDJEQUE2Qjs7O0lBTjVELDhCQUFnSztJQUM5Siw2QkFBd0Y7SUFDdEYsZ0RBQ0Y7SUFBQSxpQkFBSztJQUNMLHlCQUFHO0lBQUEsWUFBaUI7SUFBQSxpQkFBSTtJQUN4QixtRkFFSztJQUNQLGlCQUFNOzs7SUFKRCxlQUFpQjtJQUFqQiwwQ0FBaUI7SUFDZixlQUFpQztJQUFqQyw4RkFBaUM7O0FETjFDLE1BQU0sT0FBTyw4QkFBOEI7OzRHQUE5Qiw4QkFBOEI7bUVBQTlCLDhCQUE4Qiw4R0FGOUIsRUFBRTtRQ1BmLGdGQVFRO1FBRU4sK0VBUU07O1FBbEJGLDBJQUFxRztRQVVuRyxlQUErQztRQUEvQyw0RUFBK0M7O3VGREQxQyw4QkFBOEI7Y0FOMUMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFdBQVcsRUFBRSx5Q0FBeUM7Z0JBQ3RELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNoQyxTQUFTLEVBQUUsRUFBRTthQUNkO2dCQUVpQixLQUFLO2tCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBIdHRwRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzJyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRWRpdEdlbmVyaWNFcnJvcnNDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3I6IEh0dHBFcnJvcjtcbn1cbiIsIjwhLS0gR2VuZXJpYyBlcnJvciBoZWFkaW5nIGFuZCBlcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBvbmx5IGlmIHRoZXJlIGFyZSBubyBzcGVjaWZpYyBjYWxsYmFjayBlcnJvcnMgb3Igd2FybmluZ3MsIG9yIG5vIGVycm9yIGRldGFpbHMgLS0+XG48ZGl2ICpuZ0lmPVwiZXJyb3IgJiYgKCEoZXJyb3IuY2FsbGJhY2tFcnJvcnMgfHwgZXJyb3IuY2FsbGJhY2tXYXJuaW5ncyB8fCBlcnJvci5kZXRhaWxzKSAmJiAhZXJyb3IubWVzc2FnZSlcIiBjbGFzcz1cImVycm9yLXN1bW1hcnlcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsbGVkYnk9XCJlZGl0LWNhc2UtZXZlbnRfZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgIDxoMSBjbGFzcz1cImhlYWRpbmctaDEgZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgaWQ9XCJlZGl0LWNhc2UtZXZlbnRfZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCI+XG4gICAgICBTb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIDwvaDE+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIiBpZD1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWJvZHlcIj5cbiAgICAgIDxwPldlJ3JlIHdvcmtpbmcgdG8gZml4IHRoZSBwcm9ibGVtLiBUcnkgYWdhaW4gc2hvcnRseS48L3A+XG4gICAgICA8cD48YSBocmVmPVwiZ2V0LWhlbHBcIiB0YXJnZXQ9XCJfYmxhbmtcIj5Db250YWN0IHVzPC9hPiBpZiB5b3UncmUgc3RpbGwgaGF2aW5nIHByb2JsZW1zLjwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gRXZlbnQgZXJyb3IgaGVhZGluZyBhbmQgZXJyb3IgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHNwZWNpZmljIGVycm9yIGRldGFpbHMgLS0+XG4gIDxkaXYgKm5nSWY9XCJlcnJvciAmJiAoZXJyb3IuZGV0YWlscyB8fCBlcnJvci5tZXNzYWdlKVwiIGNsYXNzPVwiZXJyb3Itc3VtbWFyeVwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWxsZWRieT1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgPGgzIGNsYXNzPVwiaGVhZGluZy1oMyBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICAgIFRoZSBldmVudCBjb3VsZCBub3QgYmUgY3JlYXRlZFxuICAgIDwvaDM+XG4gICAgPHA+e3tlcnJvci5tZXNzYWdlfX08L3A+XG4gICAgPHVsICpuZ0lmPVwiZXJyb3IuZGV0YWlscz8uZmllbGRfZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1zdW1tYXJ5LWxpc3RcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZmllbGRFcnJvciBvZiBlcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9yc1wiIGNsYXNzPVwiY2NkLWVycm9yLXN1bW1hcnktbGlcIj57e2ZpZWxkRXJyb3IubWVzc2FnZX19PC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiAgIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMvY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMvY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztJQ0Q1Qyw4QkFBc047SUFDbE4sNkJBQXdGO0lBQ3RGLHNDQUNGO0lBQUEsaUJBQUs7SUFDTCw4QkFBK0U7SUFDN0UseUJBQUc7SUFBQSxvRUFBb0Q7SUFBQSxpQkFBSTtJQUMzRCx5QkFBRztJQUFBLDRCQUFtQztJQUFBLDBCQUFVO0lBQUEsaUJBQUk7SUFBQyxpREFBZ0M7SUFBQSxpQkFBSTtJQUMzRixpQkFBTTtJQUNSLGlCQUFNOzs7SUFRRiw2QkFBdUY7SUFBQSxZQUFzQjtJQUFBLGlCQUFLOzs7SUFBM0IsZUFBc0I7SUFBdEIsMkNBQXNCOzs7SUFEL0csNkJBQW1FO0lBQ2pFLHdGQUFrSDtJQUNwSCxpQkFBSzs7O0lBRHdCLGVBQTZCO0lBQTdCLDJEQUE2Qjs7O0lBTjVELDhCQUFnSztJQUM5Siw2QkFBd0Y7SUFDdEYsZ0RBQ0Y7SUFBQSxpQkFBSztJQUNMLHlCQUFHO0lBQUEsWUFBaUI7SUFBQSxpQkFBSTtJQUN4QixtRkFFSztJQUNQLGlCQUFNOzs7SUFKRCxlQUFpQjtJQUFqQiwwQ0FBaUI7SUFDZixlQUFpQztJQUFqQyw4RkFBaUM7O0FETjFDLE1BQU0sT0FBTyw4QkFBOEI7OzRHQUE5Qiw4QkFBOEI7bUVBQTlCLDhCQUE4Qiw4R0FGOUIsRUFBRTtRQ1BmLGdGQVFRO1FBRU4sK0VBUU07O1FBbEJGLDBJQUFxRztRQVVuRyxlQUErQztRQUEvQyw0RUFBK0M7O3VGREQxQyw4QkFBOEI7Y0FOMUMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSw4QkFBOEI7Z0JBQ3hDLFdBQVcsRUFBRSx5Q0FBeUM7Z0JBQ3RELFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2dCQUNoQyxTQUFTLEVBQUUsRUFBRTthQUNkO2dCQUVpQixLQUFLO2tCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBIdHRwRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0LWdlbmVyaWMtZXJyb3JzJyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQtZ2VuZXJpYy1lcnJvcnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vY2FzZS1lZGl0LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXVxufSlcbmV4cG9ydCBjbGFzcyBDYXNlRWRpdEdlbmVyaWNFcnJvcnNDb21wb25lbnQge1xuICBASW5wdXQoKSBwdWJsaWMgZXJyb3I6IEh0dHBFcnJvcjtcbn1cbiIsIjwhLS0gR2VuZXJpYyBlcnJvciBoZWFkaW5nIGFuZCBlcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBvbmx5IGlmIHRoZXJlIGFyZSBubyBzcGVjaWZpYyBjYWxsYmFjayBlcnJvcnMgb3Igd2FybmluZ3MsIG9yIG5vIGVycm9yIGRldGFpbHMgLS0+XG48ZGl2ICpuZ0lmPVwiZXJyb3IgJiYgKCEoZXJyb3IuY2FsbGJhY2tFcnJvcnMgfHwgZXJyb3IuY2FsbGJhY2tXYXJuaW5ncyB8fCBlcnJvci5kZXRhaWxzKSAmJiAhZXJyb3IubWVzc2FnZSlcIiBjbGFzcz1cImVycm9yLXN1bW1hcnlcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsbGVkYnk9XCJlZGl0LWNhc2UtZXZlbnRfZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgIDxoMSBjbGFzcz1cImhlYWRpbmctaDEgZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCIgaWQ9XCJlZGl0LWNhc2UtZXZlbnRfZXJyb3Itc3VtbWFyeS1oZWFkaW5nXCI+XG4gICAgICBTb21ldGhpbmcgd2VudCB3cm9uZ1xuICAgIDwvaDE+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWVycm9yLXN1bW1hcnlfX2JvZHlcIiBpZD1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWJvZHlcIj5cbiAgICAgIDxwPldlJ3JlIHdvcmtpbmcgdG8gZml4IHRoZSBwcm9ibGVtLiBUcnkgYWdhaW4gc2hvcnRseS48L3A+XG4gICAgICA8cD48YSBocmVmPVwiZ2V0LWhlbHBcIiB0YXJnZXQ9XCJfYmxhbmtcIj5Db250YWN0IHVzPC9hPiBpZiB5b3UncmUgc3RpbGwgaGF2aW5nIHByb2JsZW1zLjwvcD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gRXZlbnQgZXJyb3IgaGVhZGluZyBhbmQgZXJyb3IgbWVzc2FnZSB0byBiZSBkaXNwbGF5ZWQgaWYgdGhlcmUgYXJlIHNwZWNpZmljIGVycm9yIGRldGFpbHMgLS0+XG4gIDxkaXYgKm5nSWY9XCJlcnJvciAmJiAoZXJyb3IuZGV0YWlscyB8fCBlcnJvci5tZXNzYWdlKVwiIGNsYXNzPVwiZXJyb3Itc3VtbWFyeVwiIHJvbGU9XCJncm91cFwiIGFyaWEtbGFiZWxsZWRieT1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgPGgzIGNsYXNzPVwiaGVhZGluZy1oMyBlcnJvci1zdW1tYXJ5LWhlYWRpbmdcIiBpZD1cImVkaXQtY2FzZS1ldmVudF9lcnJvci1zdW1tYXJ5LWhlYWRpbmdcIj5cbiAgICAgIFRoZSBldmVudCBjb3VsZCBub3QgYmUgY3JlYXRlZFxuICAgIDwvaDM+XG4gICAgPHA+e3tlcnJvci5tZXNzYWdlfX08L3A+XG4gICAgPHVsICpuZ0lmPVwiZXJyb3IuZGV0YWlscz8uZmllbGRfZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1zdW1tYXJ5LWxpc3RcIj5cbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZmllbGRFcnJvciBvZiBlcnJvci5kZXRhaWxzLmZpZWxkX2Vycm9yc1wiIGNsYXNzPVwiY2NkLWVycm9yLXN1bW1hcnktbGlcIj57e2ZpZWxkRXJyb3IubWVzc2FnZX19PC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbiJdfQ==