@hmcts/ccd-case-ui-toolkit 6.18.0-welsh-release → 6.18.0-welsh-release-v2

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 (269) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +4149 -7328
  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/shared/components/case-editor/case-edit/case-edit.component.js +1 -1
  6. package/esm2015/lib/shared/components/case-editor/case-edit-confirm/case-edit-confirm.component.js +2 -2
  7. package/esm2015/lib/shared/components/case-editor/case-edit-generic-errors/case-edit-generic-errors.component.js +2 -2
  8. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +25 -13
  9. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +78 -101
  10. package/esm2015/lib/shared/components/case-editor/case-editor.module.js +4 -7
  11. package/esm2015/lib/shared/components/case-editor/case-event-completion/components/case-event-completion-task-cancelled/case-event-completion-task-cancelled.component.js +2 -2
  12. package/esm2015/lib/shared/components/case-list/case-list.component.js +2 -2
  13. package/esm2015/lib/shared/components/case-viewer/case-challenged-access-request/case-challenged-access-request.component.js +70 -69
  14. package/esm2015/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.js +10 -5
  15. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +41 -53
  16. package/esm2015/lib/shared/components/case-viewer/case-viewer.module.js +2 -5
  17. package/esm2015/lib/shared/components/dialogs/delete-or-cancel-dialog/delete-or-cancel-dialog.component.js +3 -3
  18. package/esm2015/lib/shared/components/dialogs/document-dialog/document-dialog.component.js +3 -3
  19. package/esm2015/lib/shared/components/dialogs/remove-dialog/remove-dialog.component.js +3 -3
  20. package/esm2015/lib/shared/components/dialogs/save-or-discard-dialog/save-or-discard-dialog.component.js +2 -2
  21. package/esm2015/lib/shared/components/event-start/components/task-cancelled/task-cancelled.component.js +3 -3
  22. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +1 -1
  23. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +1 -1
  24. package/esm2015/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.js +4 -10
  25. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.js +42 -246
  26. package/esm2015/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.js +73 -144
  27. package/esm2015/lib/shared/components/palette/case-flag/components/index.js +5 -7
  28. package/esm2015/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.js +71 -36
  29. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.js +101 -133
  30. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.js +7 -15
  31. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +113 -186
  32. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.js +99 -286
  33. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag-state.model.js +1 -1
  34. package/esm2015/lib/shared/components/palette/case-flag/domain/case-flag.model.js +1 -1
  35. package/esm2015/lib/shared/components/palette/case-flag/domain/language.model.js +1 -1
  36. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.js +2 -3
  37. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.js +3 -8
  38. package/esm2015/lib/shared/components/palette/case-flag/enums/index.js +2 -8
  39. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.js +2 -3
  40. package/esm2015/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.js +1 -2
  41. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.js +1 -3
  42. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.js +2 -3
  43. package/esm2015/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.js +4 -8
  44. package/esm2015/lib/shared/components/palette/case-flag/index.js +1 -2
  45. package/esm2015/lib/shared/components/palette/case-flag/read-case-flag-field.component.js +50 -121
  46. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +130 -234
  47. package/esm2015/lib/shared/components/palette/case-link/write-case-link-field.component.js +2 -2
  48. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +33 -31
  49. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +2 -2
  50. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +2 -2
  51. package/esm2015/lib/shared/components/palette/index.js +1 -2
  52. package/esm2015/lib/shared/components/palette/markdown/index.js +1 -2
  53. package/esm2015/lib/shared/components/palette/markdown/markdown.component.js +4 -4
  54. package/esm2015/lib/shared/components/palette/organisation/write-organisation-field.component.js +2 -2
  55. package/esm2015/lib/shared/components/palette/palette.module.js +55 -122
  56. package/esm2015/lib/shared/components/palette/palette.service.js +2 -5
  57. package/esm2015/lib/shared/domain/case-flag/flag-type.model.js +2 -17
  58. package/esm2015/lib/shared/domain/case-view/case-view-trigger.model.js +2 -1
  59. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +1 -3
  60. package/esm2015/lib/shared/fixture/shared.test.fixture.js +1 -2
  61. package/esm2015/lib/shared/pipes/index.js +2 -3
  62. package/esm2015/lib/shared/pipes/pipes.module.js +5 -9
  63. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +3 -9
  64. package/esm2015/lib/shared/services/request/request.options.builder.js +1 -7
  65. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +5068 -7876
  66. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  67. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts +12 -4
  68. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  69. package/lib/shared/components/case-editor/case-editor.module.d.ts.map +1 -1
  70. package/lib/shared/components/case-viewer/case-event-trigger/case-event-trigger.component.d.ts.map +1 -1
  71. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -3
  72. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  73. package/lib/shared/components/case-viewer/case-viewer.module.d.ts +4 -4
  74. package/lib/shared/components/case-viewer/case-viewer.module.d.ts.map +1 -1
  75. package/lib/shared/components/palette/base-field/field-read.component.d.ts.map +1 -1
  76. package/lib/shared/components/palette/base-field/field-write.component.d.ts.map +1 -1
  77. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts +1 -2
  78. package/lib/shared/components/palette/case-flag/components/add-comments/add-comments.component.d.ts.map +1 -1
  79. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts +5 -20
  80. package/lib/shared/components/palette/case-flag/components/case-flag-summary-list/case-flag-summary-list.component.d.ts.map +1 -1
  81. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts +1 -2
  82. package/lib/shared/components/palette/case-flag/components/case-flag-table/case-flag-table.component.d.ts.map +1 -1
  83. package/lib/shared/components/palette/case-flag/components/index.d.ts +4 -6
  84. package/lib/shared/components/palette/case-flag/components/index.d.ts.map +1 -1
  85. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts +8 -4
  86. package/lib/shared/components/palette/case-flag/components/manage-case-flags/manage-case-flags.component.d.ts.map +1 -1
  87. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts +8 -10
  88. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter.component.d.ts.map +1 -1
  89. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts +1 -2
  90. package/lib/shared/components/palette/case-flag/components/select-flag-location/select-flag-location.component.d.ts.map +1 -1
  91. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +8 -12
  92. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  93. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts +9 -19
  94. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag.component.d.ts.map +1 -1
  95. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts +10 -1
  96. package/lib/shared/components/palette/case-flag/domain/case-flag-state.model.d.ts.map +1 -1
  97. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts +0 -6
  98. package/lib/shared/components/palette/case-flag/domain/case-flag.model.d.ts.map +1 -1
  99. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts +0 -1
  100. package/lib/shared/components/palette/case-flag/domain/language.model.d.ts.map +1 -1
  101. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts +1 -2
  102. package/lib/shared/components/palette/case-flag/enums/case-flag-status.enum.d.ts.map +1 -1
  103. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts +3 -8
  104. package/lib/shared/components/palette/case-flag/enums/case-flag-wizard-step-title.enum.d.ts.map +1 -1
  105. package/lib/shared/components/palette/case-flag/enums/index.d.ts +1 -7
  106. package/lib/shared/components/palette/case-flag/enums/index.d.ts.map +1 -1
  107. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts +1 -2
  108. package/lib/shared/components/palette/case-flag/enums/select-flag-error-message.enum.d.ts.map +1 -1
  109. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts +0 -1
  110. package/lib/shared/components/palette/case-flag/enums/select-flag-type-error-message.enum.d.ts.map +1 -1
  111. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts +1 -3
  112. package/lib/shared/components/palette/case-flag/enums/update-flag-error-message.enum.d.ts.map +1 -1
  113. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts +2 -3
  114. package/lib/shared/components/palette/case-flag/enums/update-flag-step.enum.d.ts.map +1 -1
  115. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts +3 -7
  116. package/lib/shared/components/palette/case-flag/enums/write-case-flag-field.enum.d.ts.map +1 -1
  117. package/lib/shared/components/palette/case-flag/index.d.ts +0 -1
  118. package/lib/shared/components/palette/case-flag/index.d.ts.map +1 -1
  119. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts +8 -11
  120. package/lib/shared/components/palette/case-flag/read-case-flag-field.component.d.ts.map +1 -1
  121. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +24 -23
  122. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  123. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +2 -3
  124. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  125. package/lib/shared/components/palette/index.d.ts +0 -1
  126. package/lib/shared/components/palette/index.d.ts.map +1 -1
  127. package/lib/shared/components/palette/markdown/index.d.ts +0 -1
  128. package/lib/shared/components/palette/markdown/index.d.ts.map +1 -1
  129. package/lib/shared/components/palette/markdown/markdown.component.d.ts +3 -3
  130. package/lib/shared/components/palette/markdown/markdown.component.d.ts.map +1 -1
  131. package/lib/shared/components/palette/palette.module.d.ts +118 -134
  132. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  133. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  134. package/lib/shared/components/search-result/search-result.component.d.ts +1 -1
  135. package/lib/shared/domain/case-flag/flag-type.model.d.ts +1 -6
  136. package/lib/shared/domain/case-flag/flag-type.model.d.ts.map +1 -1
  137. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts +1 -0
  138. package/lib/shared/domain/case-view/case-view-trigger.model.d.ts.map +1 -1
  139. package/lib/shared/domain/definition/display-context-enum.model.d.ts +1 -3
  140. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -1
  141. package/lib/shared/fixture/shared.test.fixture.d.ts.map +1 -1
  142. package/lib/shared/pipes/index.d.ts +1 -2
  143. package/lib/shared/pipes/index.d.ts.map +1 -1
  144. package/lib/shared/pipes/pipes.module.d.ts +2 -3
  145. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  146. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +2 -3
  147. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  148. package/lib/shared/services/request/request.options.builder.d.ts.map +1 -1
  149. package/package.json +1 -1
  150. package/esm2015/lib/shared/components/case-editor/services/case-flag-state.service.js +0 -19
  151. package/esm2015/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.js +0 -181
  152. package/esm2015/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.js +0 -6
  153. package/esm2015/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.js +0 -292
  154. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.js +0 -9
  155. package/esm2015/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.js +0 -12
  156. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.js +0 -6
  157. package/esm2015/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.js +0 -6
  158. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.js +0 -6
  159. package/esm2015/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.js +0 -6
  160. package/esm2015/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.js +0 -41
  161. package/esm2015/lib/shared/components/palette/case-flag/pipes/index.js +0 -5
  162. package/esm2015/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.js +0 -41
  163. package/esm2015/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.js +0 -109
  164. package/esm2015/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.js +0 -77
  165. package/esm2015/lib/shared/components/palette/markdown/markdown-component.module.js +0 -42
  166. package/esm2015/lib/shared/components/palette/query-management/__mocks__/index.js +0 -120
  167. package/esm2015/lib/shared/components/palette/query-management/components/index.js +0 -9
  168. package/esm2015/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.js +0 -64
  169. package/esm2015/lib/shared/components/palette/query-management/components/query-create/query-create.component.js +0 -18
  170. package/esm2015/lib/shared/components/palette/query-management/components/query-details/query-details.component.js +0 -56
  171. package/esm2015/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.js +0 -150
  172. package/esm2015/lib/shared/components/palette/query-management/components/query-list/query-list.component.js +0 -175
  173. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.js +0 -67
  174. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.js +0 -214
  175. package/esm2015/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.js +0 -108
  176. package/esm2015/lib/shared/components/palette/query-management/index.js +0 -6
  177. package/esm2015/lib/shared/components/palette/query-management/models/index.js +0 -7
  178. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-message.model.js +0 -2
  179. package/esm2015/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.js +0 -2
  180. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.js +0 -2
  181. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.js +0 -18
  182. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.js +0 -35
  183. package/esm2015/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.js +0 -6
  184. package/esm2015/lib/shared/components/palette/query-management/read-query-management-field.component.js +0 -83
  185. package/esm2015/lib/shared/components/palette/query-management/utils/query-management.utils.js +0 -12
  186. package/esm2015/lib/shared/components/palette/query-management/write-query-management-field.component.js +0 -45
  187. package/esm2015/lib/shared/domain/case-view/case-view-event-ids.enum.js +0 -6
  188. package/esm2015/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.js +0 -16
  189. package/esm2015/lib/shared/pipes/generic/index.js +0 -2
  190. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts +0 -11
  191. package/lib/shared/components/case-editor/services/case-flag-state.service.d.ts.map +0 -1
  192. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts +0 -28
  193. package/lib/shared/components/palette/case-flag/components/confirm-flag-status/confirm-flag-status.component.d.ts.map +0 -1
  194. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts +0 -5
  195. package/lib/shared/components/palette/case-flag/components/search-language-interpreter/search-language-interpreter-control-names.enum.d.ts.map +0 -1
  196. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts +0 -27
  197. package/lib/shared/components/palette/case-flag/components/update-flag/update-flag-add-translation-form/update-flag-add-translation-form.component.d.ts.map +0 -1
  198. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts +0 -8
  199. package/lib/shared/components/palette/case-flag/enums/case-flag-display-context-parameter.enum.d.ts.map +0 -1
  200. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts +0 -11
  201. package/lib/shared/components/palette/case-flag/enums/case-flag-form-fields.enum.d.ts.map +0 -1
  202. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts +0 -5
  203. package/lib/shared/components/palette/case-flag/enums/confirm-status-error-message.enum.d.ts.map +0 -1
  204. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts +0 -5
  205. package/lib/shared/components/palette/case-flag/enums/confirm-status-step.enum.d.ts.map +0 -1
  206. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts +0 -5
  207. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-error-message.enum.d.ts.map +0 -1
  208. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts +0 -5
  209. package/lib/shared/components/palette/case-flag/enums/update-flag-add-translation-step.enum.d.ts.map +0 -1
  210. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts +0 -19
  211. package/lib/shared/components/palette/case-flag/pipes/flag-field-display.pipe.d.ts.map +0 -1
  212. package/lib/shared/components/palette/case-flag/pipes/index.d.ts +0 -5
  213. package/lib/shared/components/palette/case-flag/pipes/index.d.ts.map +0 -1
  214. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts +0 -18
  215. package/lib/shared/components/palette/case-flag/pipes/language-interpreter-display.pipe.d.ts.map +0 -1
  216. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts +0 -25
  217. package/lib/shared/components/palette/case-flag/pipes/manage-case-flags-label-display.pipe.d.ts.map +0 -1
  218. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts +0 -21
  219. package/lib/shared/components/palette/case-flag/pipes/update-flag-title-display.pipe.d.ts.map +0 -1
  220. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts +0 -13
  221. package/lib/shared/components/palette/markdown/markdown-component.module.d.ts.map +0 -1
  222. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts +0 -3
  223. package/lib/shared/components/palette/query-management/__mocks__/index.d.ts.map +0 -1
  224. package/lib/shared/components/palette/query-management/components/index.d.ts +0 -9
  225. package/lib/shared/components/palette/query-management/components/index.d.ts.map +0 -1
  226. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts +0 -10
  227. package/lib/shared/components/palette/query-management/components/query-case-details-header/query-case-details-header.component.d.ts.map +0 -1
  228. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts +0 -9
  229. package/lib/shared/components/palette/query-management/components/query-create/query-create.component.d.ts.map +0 -1
  230. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts +0 -11
  231. package/lib/shared/components/palette/query-management/components/query-details/query-details.component.d.ts.map +0 -1
  232. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts +0 -8
  233. package/lib/shared/components/palette/query-management/components/query-details-table/query-details-table.component.d.ts.map +0 -1
  234. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts +0 -18
  235. package/lib/shared/components/palette/query-management/components/query-list/query-list.component.d.ts.map +0 -1
  236. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts +0 -17
  237. package/lib/shared/components/palette/query-management/components/query-write/query-write-add-documents/query-write-add-documents.component.d.ts.map +0 -1
  238. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts +0 -8
  239. package/lib/shared/components/palette/query-management/components/query-write/query-write-raise-query/query-write-raise-query.component.d.ts.map +0 -1
  240. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts +0 -10
  241. package/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.d.ts.map +0 -1
  242. package/lib/shared/components/palette/query-management/index.d.ts +0 -6
  243. package/lib/shared/components/palette/query-management/index.d.ts.map +0 -1
  244. package/lib/shared/components/palette/query-management/models/index.d.ts +0 -7
  245. package/lib/shared/components/palette/query-management/models/index.d.ts.map +0 -1
  246. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts +0 -14
  247. package/lib/shared/components/palette/query-management/models/party-messages/party-message.model.d.ts.map +0 -1
  248. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts +0 -7
  249. package/lib/shared/components/palette/query-management/models/party-messages/party-messages-group.model.d.ts.map +0 -1
  250. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts +0 -7
  251. package/lib/shared/components/palette/query-management/models/query-list/query-list-column/query-list-column.model.d.ts.map +0 -1
  252. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts +0 -10
  253. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +0 -1
  254. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +0 -21
  255. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +0 -1
  256. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts +0 -5
  257. package/lib/shared/components/palette/query-management/models/query-list/query-list-response-status.enum.d.ts.map +0 -1
  258. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts +0 -17
  259. package/lib/shared/components/palette/query-management/read-query-management-field.component.d.ts.map +0 -1
  260. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts +0 -7
  261. package/lib/shared/components/palette/query-management/utils/query-management.utils.d.ts.map +0 -1
  262. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts +0 -12
  263. package/lib/shared/components/palette/query-management/write-query-management-field.component.d.ts.map +0 -1
  264. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts +0 -5
  265. package/lib/shared/domain/case-view/case-view-event-ids.enum.d.ts.map +0 -1
  266. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts +0 -8
  267. package/lib/shared/pipes/generic/enum-display-description/enum-display-description.pipe.d.ts.map +0 -1
  268. package/lib/shared/pipes/generic/index.d.ts +0 -2
  269. package/lib/shared/pipes/generic/index.d.ts.map +0 -1
@@ -1,7 +1,10 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
2
  import { FormControl, FormGroup } from '@angular/forms';
3
- import { CaseFlagDisplayContextParameter, CaseFlagFieldState, CaseFlagStatus, CaseFlagWizardStepTitle, SelectFlagErrorMessage } from '../../enums';
3
+ import { CaseFlagFieldState, CaseFlagWizardStepTitle, SelectFlagErrorMessage } from '../../enums';
4
4
  import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/forms";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "rpx-xui-translation";
5
8
  function ManageCaseFlagsComponent_div_7_Template(rf, ctx) { if (rf & 1) {
6
9
  i0.ɵɵelementStart(0, "div", 9);
7
10
  i0.ɵɵelementStart(1, "span", 10);
@@ -22,7 +25,6 @@ function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
22
25
  i0.ɵɵelementStart(0, "div", 11);
23
26
  i0.ɵɵelement(1, "input", 12);
24
27
  i0.ɵɵelement(2, "label", 13);
25
- i0.ɵɵpipe(3, "manageCaseFlagsLabelDisplay");
26
28
  i0.ɵɵelementEnd();
27
29
  } if (rf & 2) {
28
30
  const flagDisplay_r3 = ctx.$implicit;
@@ -33,7 +35,7 @@ function ManageCaseFlagsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
33
35
  i0.ɵɵproperty("name", ctx_r1.selectedControlName)("value", flagDisplay_r3)("formControlName", ctx_r1.selectedControlName);
34
36
  i0.ɵɵadvance(1);
35
37
  i0.ɵɵpropertyInterpolate1("for", "flag-selection-", i_r4, "");
36
- i0.ɵɵproperty("innerHtml", i0.ɵɵpipeBind1(3, 6, flagDisplay_r3), i0.ɵɵsanitizeHtml);
38
+ i0.ɵɵproperty("innerHtml", flagDisplay_r3, i0.ɵɵsanitizeHtml);
37
39
  } }
38
40
  function ManageCaseFlagsComponent_div_10_Template(rf, ctx) { if (rf & 1) {
39
41
  const _r6 = i0.ɵɵgetCurrentView();
@@ -56,29 +58,23 @@ export class ManageCaseFlagsComponent {
56
58
  this.manageCaseFlagSelectedErrorMessage = null;
57
59
  this.noFlagsError = false;
58
60
  this.selectedControlName = 'selectedManageCaseLocation';
59
- this.excludedFlagStatuses = [CaseFlagStatus.INACTIVE, CaseFlagStatus.NOT_APPROVED];
60
61
  }
61
62
  ngOnInit() {
62
- this.manageCaseFlagTitle = this.setManageCaseFlagTitle(this.displayContextParameter);
63
+ this.manageCaseFlagTitle = CaseFlagWizardStepTitle.MANAGE_CASE_FLAGS;
63
64
  // Map flags instances to objects for display
64
- /* istanbul ignore else */
65
65
  if (this.flagsData) {
66
66
  this.flagsDisplayData = this.flagsData.reduce((displayData, flagsInstance) => {
67
- /* istanbul ignore else */
68
67
  if (flagsInstance.flags.details && flagsInstance.flags.details.length > 0) {
69
68
  displayData = [
70
69
  ...displayData,
71
- ...flagsInstance.flags.details.map(detail => {
72
- // Only map flags instances where the status is neither "Inactive" nor "Not approved"
73
- // This will result in some undefined mappings, which need to be filtered out after the reduce operation
74
- if (!this.excludedFlagStatuses.includes(detail.status)) {
75
- return this.mapFlagDetailForDisplay(detail, flagsInstance);
76
- }
77
- })
70
+ ...flagsInstance.flags.details.map(detail => this.mapFlagDetailForDisplay(detail, flagsInstance))
78
71
  ];
79
72
  }
80
73
  return displayData;
81
- }, []).filter(flagDetailDisplay => !!flagDetailDisplay);
74
+ }, []);
75
+ this.flagsDisplayData.forEach(flagDisplayData => {
76
+ flagDisplayData.label = this.processLabel(flagDisplayData);
77
+ });
82
78
  }
83
79
  // Add a FormControl for the selected case flag if there is at least one flags instance remaining after mapping
84
80
  if (this.flagsDisplayData && this.flagsDisplayData.length > 0) {
@@ -102,6 +98,59 @@ export class ManageCaseFlagsComponent {
102
98
  roleOnCase: flagsInstance.flags.roleOnCase
103
99
  };
104
100
  }
101
+ processLabel(flagDisplay) {
102
+ const flagDetail = flagDisplay.flagDetailDisplay.flagDetail;
103
+ const partyName = this.getPartyName(flagDisplay);
104
+ const flagName = this.getFlagName(flagDetail);
105
+ const flagDescription = this.getFlagDescription(flagDetail);
106
+ const roleOnCase = this.getRoleOnCase(flagDisplay);
107
+ const flagComment = this.getFlagComments(flagDetail);
108
+ return flagName === flagDescription
109
+ ? `${partyName}${roleOnCase} - <span class="flag-name-and-description">${flagDescription}</span>${flagComment}`
110
+ : `${partyName}${roleOnCase} - <span class="flag-name-and-description">${flagName}, ${flagDescription}</span>${flagComment}`;
111
+ }
112
+ getPartyName(flagDisplay) {
113
+ if (flagDisplay.pathToFlagsFormGroup && flagDisplay.pathToFlagsFormGroup === ManageCaseFlagsComponent.CASE_LEVEL_CASE_FLAGS_FIELD_ID) {
114
+ return 'Case level';
115
+ }
116
+ if (flagDisplay.flagDetailDisplay.partyName) {
117
+ return `${flagDisplay.flagDetailDisplay.partyName}`;
118
+ }
119
+ return '';
120
+ }
121
+ getFlagName(flagDetail) {
122
+ if (flagDetail && flagDetail.path && flagDetail.path.length > 1) {
123
+ return flagDetail.path[1].value;
124
+ }
125
+ if (flagDetail.subTypeKey && flagDetail.subTypeValue) {
126
+ return flagDetail.subTypeValue;
127
+ }
128
+ return flagDetail.name;
129
+ }
130
+ getFlagDescription(flagDetail) {
131
+ if (flagDetail && flagDetail.name) {
132
+ if (flagDetail.name === 'Other' && flagDetail.otherDescription) {
133
+ return flagDetail.otherDescription;
134
+ }
135
+ if (flagDetail.subTypeKey && flagDetail.subTypeValue) {
136
+ return flagDetail.subTypeValue;
137
+ }
138
+ return flagDetail.name;
139
+ }
140
+ return '';
141
+ }
142
+ getRoleOnCase(flagDisplay) {
143
+ if (flagDisplay && flagDisplay.roleOnCase) {
144
+ return ` (${flagDisplay.roleOnCase})`;
145
+ }
146
+ return '';
147
+ }
148
+ getFlagComments(flagDetail) {
149
+ if (flagDetail.flagComment) {
150
+ return ` (${flagDetail.flagComment})`;
151
+ }
152
+ return '';
153
+ }
105
154
  onNext() {
106
155
  // Validate flag selection
107
156
  this.validateSelection();
@@ -113,28 +162,15 @@ export class ManageCaseFlagsComponent {
113
162
  ? this.formGroup.get(this.selectedControlName).value
114
163
  : null
115
164
  });
116
- window.scrollTo(0, 0);
117
- }
118
- setManageCaseFlagTitle(displayContextParameter) {
119
- switch (displayContextParameter) {
120
- case CaseFlagDisplayContextParameter.UPDATE:
121
- return CaseFlagWizardStepTitle.MANAGE_CASE_FLAGS;
122
- case CaseFlagDisplayContextParameter.UPDATE_EXTERNAL:
123
- return CaseFlagWizardStepTitle.MANAGE_SUPPORT;
124
- default:
125
- return CaseFlagWizardStepTitle.NONE;
126
- }
127
165
  }
128
166
  validateSelection() {
129
167
  this.manageCaseFlagSelectedErrorMessage = null;
130
168
  this.errorMessages = [];
131
169
  if (!this.formGroup.get(this.selectedControlName).value) {
132
- const errorMessage = this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL ?
133
- SelectFlagErrorMessage.MANAGE_SUPPORT_FLAG_NOT_SELECTED : SelectFlagErrorMessage.MANAGE_CASE_FLAGS_FLAG_NOT_SELECTED;
134
- this.manageCaseFlagSelectedErrorMessage = errorMessage;
170
+ this.manageCaseFlagSelectedErrorMessage = SelectFlagErrorMessage.FLAG_NOT_SELECTED;
135
171
  this.errorMessages.push({
136
172
  title: '',
137
- description: errorMessage,
173
+ description: SelectFlagErrorMessage.FLAG_NOT_SELECTED,
138
174
  fieldId: 'conditional-radios-list'
139
175
  });
140
176
  }
@@ -151,8 +187,9 @@ export class ManageCaseFlagsComponent {
151
187
  });
152
188
  }
153
189
  }
190
+ ManageCaseFlagsComponent.CASE_LEVEL_CASE_FLAGS_FIELD_ID = 'caseFlags';
154
191
  ManageCaseFlagsComponent.ɵfac = function ManageCaseFlagsComponent_Factory(t) { return new (t || ManageCaseFlagsComponent)(); };
155
- ManageCaseFlagsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle", displayContextParameter: "displayContextParameter" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 11, vars: 10, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["class", "govuk-button-group", 4, "ngIf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
192
+ ManageCaseFlagsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ManageCaseFlagsComponent, selectors: [["ccd-manage-case-flags"]], inputs: { formGroup: "formGroup", flagsData: "flagsData", caseTitle: "caseTitle" }, outputs: { caseFlagStateEmitter: "caseFlagStateEmitter" }, decls: 11, vars: 10, consts: [[3, "formGroup"], [1, "govuk-form-group", 3, "ngClass"], ["aria-describedby", "manage-case-flag-heading", 1, "govuk-fieldset"], [1, "govuk-fieldset__legend", "govuk-fieldset__legend--l"], ["id", "manage-case-flag-heading", 1, "govuk-fieldset__heading"], ["id", "manage-case-flag-not-selected-error-message", "class", "govuk-error-message", 4, "ngIf"], ["data-module", "govuk-radios", "id", "conditional-radios-list", 1, "govuk-radios", "govuk-radios--conditional"], ["class", "govuk-radios__item", 4, "ngFor", "ngForOf"], ["class", "govuk-button-group", 4, "ngIf"], ["id", "manage-case-flag-not-selected-error-message", 1, "govuk-error-message"], [1, "govuk-visually-hidden"], [1, "govuk-radios__item"], ["type", "radio", 1, "govuk-radios__input", 3, "id", "name", "value", "formControlName"], [1, "govuk-label", "govuk-radios__label", 3, "for", "innerHtml"], [1, "govuk-button-group"], ["type", "button", 1, "button", "button-primary", 3, "click"]], template: function ManageCaseFlagsComponent_Template(rf, ctx) { if (rf & 1) {
156
193
  i0.ɵɵelementContainerStart(0, 0);
157
194
  i0.ɵɵelementStart(1, "div", 1);
158
195
  i0.ɵɵelementStart(2, "fieldset", 2);
@@ -164,7 +201,7 @@ ManageCaseFlagsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ManageCaseFlagsC
164
201
  i0.ɵɵelementEnd();
165
202
  i0.ɵɵtemplate(7, ManageCaseFlagsComponent_div_7_Template, 6, 6, "div", 5);
166
203
  i0.ɵɵelementStart(8, "div", 6);
167
- i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 4, 8, "div", 7);
204
+ i0.ɵɵtemplate(9, ManageCaseFlagsComponent_div_9_Template, 3, 6, "div", 7);
168
205
  i0.ɵɵelementEnd();
169
206
  i0.ɵɵelementEnd();
170
207
  i0.ɵɵelementEnd();
@@ -182,7 +219,7 @@ ManageCaseFlagsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ManageCaseFlagsC
182
219
  i0.ɵɵproperty("ngForOf", ctx.flagsDisplayData);
183
220
  i0.ɵɵadvance(1);
184
221
  i0.ɵɵproperty("ngIf", !ctx.noFlagsError);
185
- } }, styles: [".flag-name-and-description{font-weight:700}"], encapsulation: 2 });
222
+ } }, directives: [i1.NgControlStatusGroup, i1.FormGroupDirective, i2.NgClass, i2.NgIf, i2.NgForOf, i1.RadioControlValueAccessor, i1.DefaultValueAccessor, i1.NgControlStatus, i1.FormControlName], pipes: [i3.RpxTranslatePipe], styles: [".flag-name-and-description{font-weight:700}"], encapsulation: 2 });
186
223
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ManageCaseFlagsComponent, [{
187
224
  type: Component,
188
225
  args: [{
@@ -197,9 +234,7 @@ ManageCaseFlagsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ManageCaseFlagsC
197
234
  type: Input
198
235
  }], caseTitle: [{
199
236
  type: Input
200
- }], displayContextParameter: [{
201
- type: Input
202
237
  }], caseFlagStateEmitter: [{
203
238
  type: Output
204
239
  }] }); })();
205
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7OztJQ0k3SSw4QkFDNkM7SUFDM0MsZ0NBQW9DO0lBQUEsWUFBMkI7O0lBQUEsaUJBQU87SUFBQyxZQUN6RTs7SUFBQSxpQkFBTTs7O0lBRGdDLGVBQTJCO0lBQTNCLG9EQUEyQjtJQUFRLGVBQ3pFO0lBRHlFLGdHQUN6RTs7O0lBRUUsK0JBQXlGO0lBQ3ZGLDRCQUM4RTtJQUM5RSw0QkFBMEk7O0lBQzVJLGlCQUFNOzs7OztJQUgrQixlQUF5QjtJQUF6Qiw0REFBeUI7SUFBQyxpREFBNEIseUJBQUEsK0NBQUE7SUFFMUMsZUFB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QkFBdUI7Z0JBQ2pDLFdBQVcsRUFBRSxvQ0FBb0M7Z0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2dCQUNqRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0QztnQkFFaUIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1UsdUJBQXVCO2tCQUF0QyxLQUFLO1lBQ1csb0JBQW9CO2tCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCwgRmxhZ3MsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciwgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ1N0YXR1cywgQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUsIFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1tYW5hZ2UtY2FzZS1mbGFncycsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYW5hZ2UtY2FzZS1mbGFncy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21hbmFnZS1jYXNlLWZsYWdzLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTWFuYWdlQ2FzZUZsYWdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKSBwdWJsaWMgZmxhZ3NEYXRhOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoW107XG4gIEBJbnB1dCgpIHB1YmxpYyBjYXNlVGl0bGU6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXlDb250ZXh0UGFyYW1ldGVyOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdUaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZTogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnc0Rpc3BsYXlEYXRhOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBmbGFnczogRmxhZ3M7XG4gIHB1YmxpYyBub0ZsYWdzRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkQ29udHJvbE5hbWUgPSAnc2VsZWN0ZWRNYW5hZ2VDYXNlTG9jYXRpb24nO1xuICBwcml2YXRlIHJlYWRvbmx5IGV4Y2x1ZGVkRmxhZ1N0YXR1c2VzOiBDYXNlRmxhZ1N0YXR1c1tdID0gW0Nhc2VGbGFnU3RhdHVzLklOQUNUSVZFLCBDYXNlRmxhZ1N0YXR1cy5OT1RfQVBQUk9WRURdO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnVGl0bGUgPSB0aGlzLnNldE1hbmFnZUNhc2VGbGFnVGl0bGUodGhpcy5kaXNwbGF5Q29udGV4dFBhcmFtZXRlcik7XG5cbiAgICAvLyBNYXAgZmxhZ3MgaW5zdGFuY2VzIHRvIG9iamVjdHMgZm9yIGRpc3BsYXlcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLmZsYWdzRGF0YSkge1xuICAgICAgdGhpcy5mbGFnc0Rpc3BsYXlEYXRhID0gdGhpcy5mbGFnc0RhdGEucmVkdWNlKChkaXNwbGF5RGF0YSwgZmxhZ3NJbnN0YW5jZSkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgICBpZiAoZmxhZ3NJbnN0YW5jZS5mbGFncy5kZXRhaWxzICYmIGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlzcGxheURhdGEgPSBbXG4gICAgICAgICAgICAuLi5kaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIC4uLmZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5tYXAoZGV0YWlsID0+IHtcbiAgICAgICAgICAgICAgLy8gT25seSBtYXAgZmxhZ3MgaW5zdGFuY2VzIHdoZXJlIHRoZSBzdGF0dXMgaXMgbmVpdGhlciBcIkluYWN0aXZlXCIgbm9yIFwiTm90IGFwcHJvdmVkXCJcbiAgICAgICAgICAgICAgLy8gVGhpcyB3aWxsIHJlc3VsdCBpbiBzb21lIHVuZGVmaW5lZCBtYXBwaW5ncywgd2hpY2ggbmVlZCB0byBiZSBmaWx0ZXJlZCBvdXQgYWZ0ZXIgdGhlIHJlZHVjZSBvcGVyYXRpb25cbiAgICAgICAgICAgICAgaWYgKCF0aGlzLmV4Y2x1ZGVkRmxhZ1N0YXR1c2VzLmluY2x1ZGVzKGRldGFpbC5zdGF0dXMgYXMgQ2FzZUZsYWdTdGF0dXMpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZGV0YWlsLCBmbGFnc0luc3RhbmNlKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNwbGF5RGF0YTtcbiAgICAgIH0sIFtdKS5maWx0ZXIoZmxhZ0RldGFpbERpc3BsYXkgPT4gISFmbGFnRGV0YWlsRGlzcGxheSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGEgRm9ybUNvbnRyb2wgZm9yIHRoZSBzZWxlY3RlZCBjYXNlIGZsYWcgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZsYWdzIGluc3RhbmNlIHJlbWFpbmluZyBhZnRlciBtYXBwaW5nXG4gICAgaWYgKHRoaXMuZmxhZ3NEaXNwbGF5RGF0YSAmJiB0aGlzLmZsYWdzRGlzcGxheURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUsIG5ldyBGb3JtQ29udHJvbChudWxsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGZsYWdzIGRpc3BsYXkgZGF0YSBtZWFucyB0aGVyZSBhcmUgbm8gZmxhZ3MgdG8gc2VsZWN0IGZyb20uIFRoZSB1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggYSBmbGFnIHVwZGF0ZS5cbiAgICAgIC8vIChXaWxsIG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gY2hlY2sgZm9yIGNhc2UtbGV2ZWwgZmxhZ3MgaW4gZnV0dXJlKVxuICAgICAgdGhpcy5vbk5vRmxhZ3NFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtYXBGbGFnRGV0YWlsRm9yRGlzcGxheShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsLCBmbGFnc0luc3RhbmNlOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoKTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZsYWdEZXRhaWxEaXNwbGF5OiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NJbnN0YW5jZS5mbGFncy5wYXJ0eU5hbWUsXG4gICAgICAgIGZsYWdEZXRhaWwsXG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkSWQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLmlkXG4gICAgICB9LFxuICAgICAgcGF0aFRvRmxhZ3NGb3JtR3JvdXA6IGZsYWdzSW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAsXG4gICAgICBjYXNlRmllbGQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLFxuICAgICAgcm9sZU9uQ2FzZTogZmxhZ3NJbnN0YW5jZS5mbGFncy5yb2xlT25DYXNlXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBzZWxlY3Rpb25cbiAgICB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uKCk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgZXJyb3IgbWVzc2FnZXMsIGFuZCBmbGFnIHNlbGVjdGlvbiB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgc2VsZWN0ZWRGbGFnOiB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZVxuICAgICAgICA/IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlIGFzIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGhcbiAgICAgICAgOiBudWxsXG4gICAgfSk7XG5cbiAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgMCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TWFuYWdlQ2FzZUZsYWdUaXRsZShkaXNwbGF5Q29udGV4dFBhcmFtZXRlcjogc3RyaW5nKTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGUge1xuICAgIHN3aXRjaCAoZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIpIHtcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEU6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfQ0FTRV9GTEFHUztcbiAgICAgIGNhc2UgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5VUERBVEVfRVhURVJOQUw6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfU1VQUE9SVDtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5OT05FO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlID0gbnVsbDtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICBpZiAoIXRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlKSB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV9FWFRFUk5BTCA/XG4gICAgICAgIFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTUFOQUdFX1NVUFBPUlRfRkxBR19OT1RfU0VMRUNURUQgOiBTZWxlY3RGbGFnRXJyb3JNZXNzYWdlLk1BTkFHRV9DQVNFX0ZMQUdTX0ZMQUdfTk9UX1NFTEVDVEVEO1xuICAgICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlID0gZXJyb3JNZXNzYWdlO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBlcnJvck1lc3NhZ2UsXG4gICAgICAgIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCdcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Ob0ZsYWdzRXJyb3IoKTogdm9pZCB7XG4gICAgLy8gU2V0IGVycm9yIGZsYWcgb24gY29tcG9uZW50IHRvIHJlbW92ZSB0aGUgXCJOZXh0XCIgYnV0dG9uICh1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggZmxhZyBjcmVhdGlvbilcbiAgICB0aGlzLm5vRmxhZ3NFcnJvciA9IHRydWU7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzLnB1c2goe3RpdGxlOiAnJywgZGVzY3JpcHRpb246IFNlbGVjdEZsYWdFcnJvck1lc3NhZ2UuTk9fRkxBR1MsIGZpZWxkSWQ6ICdjb25kaXRpb25hbC1yYWRpb3MtbGlzdCd9KTtcbiAgICAvLyBSZXR1cm4gY2FzZSBmbGFnIGZpZWxkIHN0YXRlIGFuZCBlcnJvciBtZXNzYWdlcyB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3InOiBlcnJvck1lc3NhZ2VzLmxlbmd0aCA+IDB9XCI+XG4gICAgPGZpZWxkc2V0IGNsYXNzPVwiZ292dWstZmllbGRzZXRcIiBhcmlhLWRlc2NyaWJlZGJ5PVwibWFuYWdlLWNhc2UtZmxhZy1oZWFkaW5nXCI+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZCBnb3Z1ay1maWVsZHNldF9fbGVnZW5kLS1sXCI+XG4gICAgICAgIDxoMSBpZD1cIm1hbmFnZS1jYXNlLWZsYWctaGVhZGluZ1wiIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2hlYWRpbmdcIj5cbiAgICAgICAgICB7e21hbmFnZUNhc2VGbGFnVGl0bGUgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgICA8L2gxPlxuICAgICAgPC9sZWdlbmQ+XG4gICAgICA8ZGl2IGlkPVwibWFuYWdlLWNhc2UtZmxhZy1ub3Qtc2VsZWN0ZWQtZXJyb3ItbWVzc2FnZVwiIGNsYXNzPVwiZ292dWstZXJyb3ItbWVzc2FnZVwiXG4gICAgICAgICpuZ0lmPVwibWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXZpc3VhbGx5LWhpZGRlblwiPnt7J0Vycm9yOicgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj4ge3ttYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlIHwgcnB4VHJhbnNsYXRlfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvcyBnb3Z1ay1yYWRpb3MtLWNvbmRpdGlvbmFsXCIgZGF0YS1tb2R1bGU9XCJnb3Z1ay1yYWRpb3NcIiBpZD1cImNvbmRpdGlvbmFsLXJhZGlvcy1saXN0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1yYWRpb3NfX2l0ZW1cIiAqbmdGb3I9XCJsZXQgZmxhZ0Rpc3BsYXkgb2YgZmxhZ3NEaXNwbGF5RGF0YTsgaW5kZXggYXMgaVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLXJhZGlvc19faW5wdXRcIiBpZD1cImZsYWctc2VsZWN0aW9uLXt7aX19XCIgW25hbWVdPVwic2VsZWN0ZWRDb250cm9sTmFtZVwiXG4gICAgICAgICAgICB0eXBlPVwicmFkaW9cIiBbdmFsdWVdPVwiZmxhZ0Rpc3BsYXlcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInNlbGVjdGVkQ29udHJvbE5hbWVcIi8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstcmFkaW9zX19sYWJlbFwiIGZvcj1cImZsYWctc2VsZWN0aW9uLXt7aX19XCIgW2lubmVySHRtbF09XCJmbGFnRGlzcGxheSB8IG1hbmFnZUNhc2VGbGFnc0xhYmVsRGlzcGxheVwiPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9maWVsZHNldD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cImdvdnVrLWJ1dHRvbi1ncm91cFwiICpuZ0lmPVwiIW5vRmxhZ3NFcnJvclwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1wcmltYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvbk5leHQoKVwiPnt7J05leHQnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
240
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL2NvbXBvbmVudHMvbWFuYWdlLWNhc2UtZmxhZ3MvbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7O0lDSTVGLDhCQUM2QztJQUMzQyxnQ0FBb0M7SUFBQSxZQUEyQjs7SUFBQSxpQkFBTztJQUFDLFlBQ3pFOztJQUFBLGlCQUFNOzs7SUFEZ0MsZUFBMkI7SUFBM0Isb0RBQTJCO0lBQVEsZUFDekU7SUFEeUUsZ0dBQ3pFOzs7SUFFRSwrQkFBeUY7SUFDdkYsNEJBQzhFO0lBQzlFLDRCQUE0RztJQUM5RyxpQkFBTTs7Ozs7SUFIK0IsZUFBeUI7SUFBekIsNERBQXlCO0lBQUMsaURBQTRCLHlCQUFBLCtDQUFBO0lBRTFDLGVBQTBCO0lBQTFCLDZEQUEwQjtJQUFD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QkFBVztRQUNiLGlCQUFNO1FBQ1IsMEJBQWU7UUFFZiwyRUFFTTs7UUF6QlEseUNBQXVCO1FBQ0wsZUFBMEQ7UUFBMUQsa0ZBQTBEO1FBSWhGLGVBQ0Y7UUFERSw4RUFDRjtRQUdDLGVBQXdDO1FBQXhDLDZEQUF3QztRQUllLGVBQXFCO1FBQXJCLDhDQUFxQjtRQVVwRCxlQUFtQjtRQUFuQix3Q0FBbUI7O3VGRFh2Qyx3QkFBd0I7Y0FOcEMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSx1QkFBdUI7Z0JBQ2pDLFdBQVcsRUFBRSxvQ0FBb0M7Z0JBQ2pELFNBQVMsRUFBRSxDQUFDLG9DQUFvQyxDQUFDO2dCQUNqRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0QztnQkFLaUIsU0FBUztrQkFBeEIsS0FBSztZQUNVLFNBQVM7a0JBQXhCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1csb0JBQW9CO2tCQUFwQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdTdGF0ZSwgRmxhZ0RldGFpbCwgRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCwgRmxhZ3MsIEZsYWdzV2l0aEZvcm1Hcm91cFBhdGggfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgQ2FzZUZsYWdGaWVsZFN0YXRlLCBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZSwgU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSB9IGZyb20gJy4uLy4uL2VudW1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLW1hbmFnZS1jYXNlLWZsYWdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hbmFnZS1jYXNlLWZsYWdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFuYWdlLWNhc2UtZmxhZ3MuY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IENBU0VfTEVWRUxfQ0FTRV9GTEFHU19GSUVMRF9JRCA9ICdjYXNlRmxhZ3MnO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aFtdO1xuICBASW5wdXQoKSBwdWJsaWMgY2FzZVRpdGxlOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBwdWJsaWMgY2FzZUZsYWdTdGF0ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDYXNlRmxhZ1N0YXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FzZUZsYWdTdGF0ZT4oKTtcblxuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdUaXRsZTogQ2FzZUZsYWdXaXphcmRTdGVwVGl0bGU7XG4gIHB1YmxpYyBlcnJvck1lc3NhZ2VzOiBFcnJvck1lc3NhZ2VbXSA9IFtdO1xuICBwdWJsaWMgbWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZTogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZSA9IG51bGw7XG4gIHB1YmxpYyBmbGFnc0Rpc3BsYXlEYXRhOiBGbGFnRGV0YWlsRGlzcGxheVdpdGhGb3JtR3JvdXBQYXRoW107XG4gIHB1YmxpYyBmbGFnczogRmxhZ3M7XG4gIHB1YmxpYyBub0ZsYWdzRXJyb3IgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkQ29udHJvbE5hbWUgPSAnc2VsZWN0ZWRNYW5hZ2VDYXNlTG9jYXRpb24nO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hbmFnZUNhc2VGbGFnVGl0bGUgPSBDYXNlRmxhZ1dpemFyZFN0ZXBUaXRsZS5NQU5BR0VfQ0FTRV9GTEFHUztcblxuICAgIC8vIE1hcCBmbGFncyBpbnN0YW5jZXMgdG8gb2JqZWN0cyBmb3IgZGlzcGxheVxuICAgIGlmICh0aGlzLmZsYWdzRGF0YSkge1xuICAgICAgdGhpcy5mbGFnc0Rpc3BsYXlEYXRhID0gdGhpcy5mbGFnc0RhdGEucmVkdWNlKChkaXNwbGF5RGF0YSwgZmxhZ3NJbnN0YW5jZSkgPT4ge1xuICAgICAgICBpZiAoZmxhZ3NJbnN0YW5jZS5mbGFncy5kZXRhaWxzICYmIGZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZGlzcGxheURhdGEgPSBbXG4gICAgICAgICAgICAuLi5kaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIC4uLmZsYWdzSW5zdGFuY2UuZmxhZ3MuZGV0YWlscy5tYXAoZGV0YWlsID0+XG4gICAgICAgICAgICAgIHRoaXMubWFwRmxhZ0RldGFpbEZvckRpc3BsYXkoZGV0YWlsLCBmbGFnc0luc3RhbmNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpc3BsYXlEYXRhO1xuICAgICAgfSwgW10pO1xuXG4gICAgICB0aGlzLmZsYWdzRGlzcGxheURhdGEuZm9yRWFjaChmbGFnRGlzcGxheURhdGEgPT4ge1xuICAgICAgICBmbGFnRGlzcGxheURhdGEubGFiZWwgPSB0aGlzLnByb2Nlc3NMYWJlbChmbGFnRGlzcGxheURhdGEpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQWRkIGEgRm9ybUNvbnRyb2wgZm9yIHRoZSBzZWxlY3RlZCBjYXNlIGZsYWcgaWYgdGhlcmUgaXMgYXQgbGVhc3Qgb25lIGZsYWdzIGluc3RhbmNlIHJlbWFpbmluZyBhZnRlciBtYXBwaW5nXG4gICAgaWYgKHRoaXMuZmxhZ3NEaXNwbGF5RGF0YSAmJiB0aGlzLmZsYWdzRGlzcGxheURhdGEubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUsIG5ldyBGb3JtQ29udHJvbChudWxsKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIGZsYWdzIGRpc3BsYXkgZGF0YSBtZWFucyB0aGVyZSBhcmUgbm8gZmxhZ3MgdG8gc2VsZWN0IGZyb20uIFRoZSB1c2VyIGNhbm5vdCBwcm9jZWVkIHdpdGggYSBmbGFnIHVwZGF0ZS5cbiAgICAgIC8vIChXaWxsIG5lZWQgdG8gYmUgZXh0ZW5kZWQgdG8gY2hlY2sgZm9yIGNhc2UtbGV2ZWwgZmxhZ3MgaW4gZnV0dXJlKVxuICAgICAgdGhpcy5vbk5vRmxhZ3NFcnJvcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBtYXBGbGFnRGV0YWlsRm9yRGlzcGxheShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsLCBmbGFnc0luc3RhbmNlOiBGbGFnc1dpdGhGb3JtR3JvdXBQYXRoKTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZsYWdEZXRhaWxEaXNwbGF5OiB7XG4gICAgICAgIHBhcnR5TmFtZTogZmxhZ3NJbnN0YW5jZS5mbGFncy5wYXJ0eU5hbWUsXG4gICAgICAgIGZsYWdEZXRhaWwsXG4gICAgICAgIGZsYWdzQ2FzZUZpZWxkSWQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLmlkXG4gICAgICB9LFxuICAgICAgcGF0aFRvRmxhZ3NGb3JtR3JvdXA6IGZsYWdzSW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAsXG4gICAgICBjYXNlRmllbGQ6IGZsYWdzSW5zdGFuY2UuY2FzZUZpZWxkLFxuICAgICAgcm9sZU9uQ2FzZTogZmxhZ3NJbnN0YW5jZS5mbGFncy5yb2xlT25DYXNlXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBwcm9jZXNzTGFiZWwoZmxhZ0Rpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGZsYWdEZXRhaWwgPSBmbGFnRGlzcGxheS5mbGFnRGV0YWlsRGlzcGxheS5mbGFnRGV0YWlsO1xuICAgIGNvbnN0IHBhcnR5TmFtZSA9IHRoaXMuZ2V0UGFydHlOYW1lKGZsYWdEaXNwbGF5KTtcbiAgICBjb25zdCBmbGFnTmFtZSA9IHRoaXMuZ2V0RmxhZ05hbWUoZmxhZ0RldGFpbCk7XG4gICAgY29uc3QgZmxhZ0Rlc2NyaXB0aW9uID0gdGhpcy5nZXRGbGFnRGVzY3JpcHRpb24oZmxhZ0RldGFpbCk7XG4gICAgY29uc3Qgcm9sZU9uQ2FzZSA9IHRoaXMuZ2V0Um9sZU9uQ2FzZShmbGFnRGlzcGxheSk7XG4gICAgY29uc3QgZmxhZ0NvbW1lbnQgPSB0aGlzLmdldEZsYWdDb21tZW50cyhmbGFnRGV0YWlsKTtcblxuICAgIHJldHVybiBmbGFnTmFtZSA9PT0gZmxhZ0Rlc2NyaXB0aW9uXG4gICAgICA/IGAke3BhcnR5TmFtZX0ke3JvbGVPbkNhc2V9IC0gPHNwYW4gY2xhc3M9XCJmbGFnLW5hbWUtYW5kLWRlc2NyaXB0aW9uXCI+JHtmbGFnRGVzY3JpcHRpb259PC9zcGFuPiR7ZmxhZ0NvbW1lbnR9YFxuICAgICAgOiBgJHtwYXJ0eU5hbWV9JHtyb2xlT25DYXNlfSAtIDxzcGFuIGNsYXNzPVwiZmxhZy1uYW1lLWFuZC1kZXNjcmlwdGlvblwiPiR7ZmxhZ05hbWV9LCAke2ZsYWdEZXNjcmlwdGlvbn08L3NwYW4+JHtmbGFnQ29tbWVudH1gO1xuICB9XG5cbiAgcHVibGljIGdldFBhcnR5TmFtZShmbGFnRGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEaXNwbGF5LnBhdGhUb0ZsYWdzRm9ybUdyb3VwICYmIGZsYWdEaXNwbGF5LnBhdGhUb0ZsYWdzRm9ybUdyb3VwID09PSBNYW5hZ2VDYXNlRmxhZ3NDb21wb25lbnQuQ0FTRV9MRVZFTF9DQVNFX0ZMQUdTX0ZJRUxEX0lEKSB7XG4gICAgICByZXR1cm4gJ0Nhc2UgbGV2ZWwnO1xuICAgIH1cbiAgICBpZiAoZmxhZ0Rpc3BsYXkuZmxhZ0RldGFpbERpc3BsYXkucGFydHlOYW1lKSB7XG4gICAgICByZXR1cm4gYCR7ZmxhZ0Rpc3BsYXkuZmxhZ0RldGFpbERpc3BsYXkucGFydHlOYW1lfWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnTmFtZShmbGFnRGV0YWlsOiBGbGFnRGV0YWlsKTogc3RyaW5nIHtcbiAgICBpZiAoZmxhZ0RldGFpbCAmJiBmbGFnRGV0YWlsLnBhdGggJiYgZmxhZ0RldGFpbC5wYXRoLmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBmbGFnRGV0YWlsLnBhdGhbMV0udmFsdWU7XG4gICAgfVxuICAgIGlmIChmbGFnRGV0YWlsLnN1YlR5cGVLZXkgJiYgZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWUpIHtcbiAgICAgIHJldHVybiBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZsYWdEZXRhaWwubmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnRGVzY3JpcHRpb24oZmxhZ0RldGFpbDogRmxhZ0RldGFpbCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEZXRhaWwgJiYgZmxhZ0RldGFpbC5uYW1lKSB7XG4gICAgICBpZiAoZmxhZ0RldGFpbC5uYW1lID09PSAnT3RoZXInICYmIGZsYWdEZXRhaWwub3RoZXJEZXNjcmlwdGlvbikge1xuICAgICAgICByZXR1cm4gZmxhZ0RldGFpbC5vdGhlckRlc2NyaXB0aW9uO1xuICAgICAgfVxuICAgICAgaWYgKGZsYWdEZXRhaWwuc3ViVHlwZUtleSAmJiBmbGFnRGV0YWlsLnN1YlR5cGVWYWx1ZSkge1xuICAgICAgICByZXR1cm4gZmxhZ0RldGFpbC5zdWJUeXBlVmFsdWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmxhZ0RldGFpbC5uYW1lO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBwdWJsaWMgZ2V0Um9sZU9uQ2FzZShmbGFnRGlzcGxheTogRmxhZ0RldGFpbERpc3BsYXlXaXRoRm9ybUdyb3VwUGF0aCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEaXNwbGF5ICYmIGZsYWdEaXNwbGF5LnJvbGVPbkNhc2UpIHtcbiAgICAgIHJldHVybiBgICgke2ZsYWdEaXNwbGF5LnJvbGVPbkNhc2V9KWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXRGbGFnQ29tbWVudHMoZmxhZ0RldGFpbDogRmxhZ0RldGFpbCk6IHN0cmluZyB7XG4gICAgaWYgKGZsYWdEZXRhaWwuZmxhZ0NvbW1lbnQpIHtcbiAgICAgIHJldHVybiBgICgke2ZsYWdEZXRhaWwuZmxhZ0NvbW1lbnR9KWA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHB1YmxpYyBvbk5leHQoKTogdm9pZCB7XG4gICAgLy8gVmFsaWRhdGUgZmxhZyBzZWxlY3Rpb25cbiAgICB0aGlzLnZhbGlkYXRlU2VsZWN0aW9uKCk7XG4gICAgLy8gUmV0dXJuIGNhc2UgZmxhZyBmaWVsZCBzdGF0ZSwgZXJyb3IgbWVzc2FnZXMsIGFuZCBmbGFnIHNlbGVjdGlvbiB0byB0aGUgcGFyZW50XG4gICAgdGhpcy5jYXNlRmxhZ1N0YXRlRW1pdHRlci5lbWl0KHtcbiAgICAgIGN1cnJlbnRDYXNlRmxhZ0ZpZWxkU3RhdGU6IENhc2VGbGFnRmllbGRTdGF0ZS5GTEFHX01BTkFHRV9DQVNFX0ZMQUdTLFxuICAgICAgZXJyb3JNZXNzYWdlczogdGhpcy5lcnJvck1lc3NhZ2VzLFxuICAgICAgc2VsZWN0ZWRGbGFnOiB0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZVxuICAgICAgICA/IHRoaXMuZm9ybUdyb3VwLmdldCh0aGlzLnNlbGVjdGVkQ29udHJvbE5hbWUpLnZhbHVlIGFzIEZsYWdEZXRhaWxEaXNwbGF5V2l0aEZvcm1Hcm91cFBhdGhcbiAgICAgICAgOiBudWxsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMubWFuYWdlQ2FzZUZsYWdTZWxlY3RlZEVycm9yTWVzc2FnZSA9IG51bGw7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2VzID0gW107XG4gICAgaWYgKCF0aGlzLmZvcm1Hcm91cC5nZXQodGhpcy5zZWxlY3RlZENvbnRyb2xOYW1lKS52YWx1ZSkge1xuICAgICAgdGhpcy5tYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlID0gU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5GTEFHX05PVF9TRUxFQ1RFRDtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlcy5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5GTEFHX05PVF9TRUxFQ1RFRCxcbiAgICAgICAgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0J1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbk5vRmxhZ3NFcnJvcigpOiB2b2lkIHtcbiAgICAvLyBTZXQgZXJyb3IgZmxhZyBvbiBjb21wb25lbnQgdG8gcmVtb3ZlIHRoZSBcIk5leHRcIiBidXR0b24gKHVzZXIgY2Fubm90IHByb2NlZWQgd2l0aCBmbGFnIGNyZWF0aW9uKVxuICAgIHRoaXMubm9GbGFnc0Vycm9yID0gdHJ1ZTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBbXTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZXMucHVzaCh7dGl0bGU6ICcnLCBkZXNjcmlwdGlvbjogU2VsZWN0RmxhZ0Vycm9yTWVzc2FnZS5OT19GTEFHUywgZmllbGRJZDogJ2NvbmRpdGlvbmFsLXJhZGlvcy1saXN0J30pO1xuICAgIC8vIFJldHVybiBjYXNlIGZsYWcgZmllbGQgc3RhdGUgYW5kIGVycm9yIG1lc3NhZ2VzIHRvIHRoZSBwYXJlbnRcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVFbWl0dGVyLmVtaXQoe1xuICAgICAgY3VycmVudENhc2VGbGFnRmllbGRTdGF0ZTogQ2FzZUZsYWdGaWVsZFN0YXRlLkZMQUdfTUFOQUdFX0NBU0VfRkxBR1MsXG4gICAgICBlcnJvck1lc3NhZ2VzOiB0aGlzLmVycm9yTWVzc2FnZXNcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZm9ybS1ncm91cFwiIFtuZ0NsYXNzXT1cInsnZm9ybS1ncm91cC1lcnJvcic6IGVycm9yTWVzc2FnZXMubGVuZ3RoID4gMH1cIj5cbiAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJtYW5hZ2UtY2FzZS1mbGFnLWhlYWRpbmdcIj5cbiAgICAgIDxsZWdlbmQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9fbGVnZW5kIGdvdnVrLWZpZWxkc2V0X19sZWdlbmQtLWxcIj5cbiAgICAgICAgPGgxIGlkPVwibWFuYWdlLWNhc2UtZmxhZy1oZWFkaW5nXCIgY2xhc3M9XCJnb3Z1ay1maWVsZHNldF9faGVhZGluZ1wiPlxuICAgICAgICAgIHt7bWFuYWdlQ2FzZUZsYWdUaXRsZSB8IHJweFRyYW5zbGF0ZX19XG4gICAgICAgIDwvaDE+XG4gICAgICA8L2xlZ2VuZD5cbiAgICAgIDxkaXYgaWQ9XCJtYW5hZ2UtY2FzZS1mbGFnLW5vdC1zZWxlY3RlZC1lcnJvci1tZXNzYWdlXCIgY2xhc3M9XCJnb3Z1ay1lcnJvci1tZXNzYWdlXCJcbiAgICAgICAgKm5nSWY9XCJtYW5hZ2VDYXNlRmxhZ1NlbGVjdGVkRXJyb3JNZXNzYWdlXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstdmlzdWFsbHktaGlkZGVuXCI+e3snRXJyb3I6JyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPiB7e21hbmFnZUNhc2VGbGFnU2VsZWN0ZWRFcnJvck1lc3NhZ2UgfCBycHhUcmFuc2xhdGV9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZ292dWstcmFkaW9zIGdvdnVrLXJhZGlvcy0tY29uZGl0aW9uYWxcIiBkYXRhLW1vZHVsZT1cImdvdnVrLXJhZGlvc1wiIGlkPVwiY29uZGl0aW9uYWwtcmFkaW9zLWxpc3RcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLXJhZGlvc19faXRlbVwiICpuZ0Zvcj1cImxldCBmbGFnRGlzcGxheSBvZiBmbGFnc0Rpc3BsYXlEYXRhOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstcmFkaW9zX19pbnB1dFwiIGlkPVwiZmxhZy1zZWxlY3Rpb24te3tpfX1cIiBbbmFtZV09XCJzZWxlY3RlZENvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgIHR5cGU9XCJyYWRpb1wiIFt2YWx1ZV09XCJmbGFnRGlzcGxheVwiIFtmb3JtQ29udHJvbE5hbWVdPVwic2VsZWN0ZWRDb250cm9sTmFtZVwiLz5cbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1yYWRpb3NfX2xhYmVsXCIgZm9yPVwiZmxhZy1zZWxlY3Rpb24te3tpfX1cIiBbaW5uZXJIdG1sXT1cImZsYWdEaXNwbGF5XCI+PC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2ZpZWxkc2V0PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwiZ292dWstYnV0dG9uLWdyb3VwXCIgKm5nSWY9XCIhbm9GbGFnc0Vycm9yXCI+XG4gIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uTmV4dCgpXCI+e3snTmV4dCcgfCBycHhUcmFuc2xhdGV9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=