@seniorsistemas/angular-components 19.7.3 → 19.7.4

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 (642) hide show
  1. package/accordion/README.md +1 -0
  2. package/accordion/lib/accordion/accordion.component.d.ts +1 -1
  3. package/accordion/lib/accordion/accordion.module.d.ts +1 -6
  4. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +1 -1
  5. package/alert/README.md +1 -1
  6. package/alert/lib/alert/alert.component.d.ts +1 -1
  7. package/alert/lib/alert/alert.module.d.ts +1 -2
  8. package/autocomplete/README.md +1 -1
  9. package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +1 -1
  10. package/badge/lib/badge/badge.component.d.ts +1 -1
  11. package/badge/lib/badge/badge.module.d.ts +3 -7
  12. package/bignumber-input/lib/bignumber-input/bignumber-input.directive.d.ts +1 -1
  13. package/bignumber-input/lib/bignumber-input/bignumber-input.module.d.ts +1 -2
  14. package/breadcrumb/README.md +9 -5
  15. package/button/README.md +1 -0
  16. package/calendar-mask/README.md +4 -2
  17. package/calendar-mask/lib/calendar-mask/calendar-mask.directive.d.ts +1 -1
  18. package/calendar-mask/lib/calendar-mask/calendar-mask.module.d.ts +1 -2
  19. package/card/lib/card/card.component.d.ts +1 -1
  20. package/card/lib/card/card.module.d.ts +1 -3
  21. package/chat/lib/chat/chat.component.d.ts +2 -1
  22. package/chat/lib/chat/chat.module.d.ts +3 -6
  23. package/chat/lib/chat/components/chat-message/chat-message.component.d.ts +1 -1
  24. package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +1 -1
  25. package/checkbox-list/lib/checkbox-list/checkbox-list.module.d.ts +1 -3
  26. package/chips/lib/chips/chip-item/chip-item.component.d.ts +1 -1
  27. package/chips/lib/chips/chips/chips.component.d.ts +1 -1
  28. package/chips/lib/chips/chips.module.d.ts +1 -6
  29. package/code-editor/README.md +1 -1
  30. package/code-editor/lib/code-editor/code-editor.component.d.ts +1 -1
  31. package/code-editor/lib/code-editor/code-editor.module.d.ts +1 -3
  32. package/collapse-link/lib/collapse-link/collapse-link.component.d.ts +1 -1
  33. package/collapse-link/lib/collapse-link/collapse-link.module.d.ts +1 -2
  34. package/common/deprecated-selector/README.md +120 -47
  35. package/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.d.ts +1 -1
  36. package/common/lib/svg-factory/components/senior-icon/senior-icon.component.d.ts +1 -1
  37. package/common/lib/svg-factory/svg-factory.directive.d.ts +1 -1
  38. package/common/lib/svg-factory/svg-factory.module.d.ts +1 -4
  39. package/confirm-dialog/README.md +3 -1
  40. package/content-generator/README.md +2 -2
  41. package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -1
  42. package/content-generator/lib/content-generator/content-generator.module.d.ts +1 -10
  43. package/control-errors/lib/control-errors/control-errors.component.d.ts +2 -2
  44. package/control-errors/lib/control-errors/control-errors.module.d.ts +1 -3
  45. package/country-phone-picker/README.md +1 -1
  46. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -1
  47. package/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.d.ts +1 -5
  48. package/currency/README.md +1 -1
  49. package/custom-fields/lib/custom-fields/custom-fields.component.d.ts +1 -1
  50. package/custom-fields/lib/custom-fields/custom-fields.module.d.ts +1 -7
  51. package/datepicker/README.md +44 -11
  52. package/datepicker/lib/datepicker/datepicker.component.d.ts +1 -0
  53. package/dynamic-form/dynamic-form/dynamic-form.module.d.ts +3 -5
  54. package/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.d.ts +1 -0
  55. package/editable-overlay/lib/editable-overlay/editable-overlay.directive.d.ts +1 -1
  56. package/editable-overlay/lib/editable-overlay/editable-overlay.module.d.ts +1 -2
  57. package/editor/README.md +8 -0
  58. package/empty-state/lib/empty-state/empty-state.component.d.ts +1 -1
  59. package/empty-state/lib/empty-state/empty-state.module.d.ts +1 -3
  60. package/empty-state/lib/empty-state/go-back/go-back.component.d.ts +1 -1
  61. package/esm2022/accordion/lib/accordion/accordion.component.mjs +3 -3
  62. package/esm2022/accordion/lib/accordion/accordion.module.mjs +4 -10
  63. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +17 -8
  64. package/esm2022/alert/lib/alert/alert.component.mjs +4 -4
  65. package/esm2022/alert/lib/alert/alert.module.mjs +4 -6
  66. package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +4 -4
  67. package/esm2022/badge/lib/badge/badge.component.mjs +7 -6
  68. package/esm2022/badge/lib/badge/badge.module.mjs +4 -9
  69. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.directive.mjs +3 -2
  70. package/esm2022/bignumber-input/lib/bignumber-input/bignumber-input.module.mjs +4 -7
  71. package/esm2022/breadcrumb/lib/breadcrumb/breadcrumb.component.mjs +6 -7
  72. package/esm2022/button/lib/button/button.component.mjs +3 -3
  73. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.directive.mjs +3 -2
  74. package/esm2022/calendar-mask/lib/calendar-mask/calendar-mask.module.mjs +4 -6
  75. package/esm2022/card/lib/card/card.component.mjs +4 -4
  76. package/esm2022/card/lib/card/card.module.mjs +4 -7
  77. package/esm2022/chat/lib/chat/chat.component.mjs +8 -7
  78. package/esm2022/chat/lib/chat/chat.module.mjs +7 -11
  79. package/esm2022/chat/lib/chat/components/chat-message/chat-message.component.mjs +6 -6
  80. package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +4 -5
  81. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +6 -7
  82. package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.module.mjs +4 -7
  83. package/esm2022/chips/lib/chips/chip-item/chip-item.component.mjs +5 -5
  84. package/esm2022/chips/lib/chips/chips/chips.component.mjs +7 -7
  85. package/esm2022/chips/lib/chips/chips.module.mjs +4 -10
  86. package/esm2022/code-editor/lib/code-editor/code-editor.component.mjs +4 -4
  87. package/esm2022/code-editor/lib/code-editor/code-editor.module.mjs +8 -11
  88. package/esm2022/collapse-link/lib/collapse-link/collapse-link.component.mjs +4 -4
  89. package/esm2022/collapse-link/lib/collapse-link/collapse-link.module.mjs +4 -6
  90. package/esm2022/common/lib/svg-factory/components/iassist-icon/iassist-icon.component.mjs +3 -3
  91. package/esm2022/common/lib/svg-factory/components/senior-icon/senior-icon.component.mjs +3 -3
  92. package/esm2022/common/lib/svg-factory/svg-factory.directive.mjs +4 -3
  93. package/esm2022/common/lib/svg-factory/svg-factory.module.mjs +4 -14
  94. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +28 -16
  95. package/esm2022/content-generator/lib/content-generator/content-generator.module.mjs +4 -42
  96. package/esm2022/control-errors/lib/control-errors/control-errors.component.mjs +3 -3
  97. package/esm2022/control-errors/lib/control-errors/control-errors.module.mjs +6 -9
  98. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +14 -14
  99. package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.module.mjs +6 -28
  100. package/esm2022/custom-fields/lib/custom-fields/custom-fields.component.mjs +6 -6
  101. package/esm2022/custom-fields/lib/custom-fields/custom-fields.module.mjs +9 -35
  102. package/esm2022/datepicker/lib/datepicker/datepicker.component.mjs +6 -3
  103. package/esm2022/dialog/lib/src/dialog/dialog.component.mjs +3 -3
  104. package/esm2022/dynamic-form/dynamic-form/dynamic-form.module.mjs +4 -6
  105. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +3 -3
  106. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
  107. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +5 -3
  108. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +3 -3
  109. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.directive.mjs +3 -2
  110. package/esm2022/editable-overlay/lib/editable-overlay/editable-overlay.module.mjs +4 -6
  111. package/esm2022/editor/lib/editor/editor.component.mjs +4 -4
  112. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +4 -4
  113. package/esm2022/empty-state/lib/empty-state/empty-state.module.mjs +4 -7
  114. package/esm2022/empty-state/lib/empty-state/go-back/go-back.component.mjs +4 -4
  115. package/esm2022/fieldset/lib/fieldset/fieldset.component.mjs +5 -5
  116. package/esm2022/fieldset/lib/fieldset/fieldset.module.mjs +4 -7
  117. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +10 -11
  118. package/esm2022/file-picker/lib/file-picker/file-picker.module.mjs +4 -11
  119. package/esm2022/gantt/lib/gantt/components/side-table/side-table.component.mjs +5 -5
  120. package/esm2022/gantt/lib/gantt/gantt.component.mjs +4 -4
  121. package/esm2022/gantt/lib/gantt/gantt.module.mjs +4 -12
  122. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +6 -7
  123. package/esm2022/global-search/lib/global-search/global-search.component.mjs +17 -10
  124. package/esm2022/global-search/lib/global-search/global-search.module.mjs +15 -33
  125. package/esm2022/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.mjs +5 -4
  126. package/esm2022/grid-menu/lib/grid-menu/grid-menu.component.mjs +4 -4
  127. package/esm2022/grid-menu/lib/grid-menu/grid-menu.module.mjs +4 -7
  128. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +5 -5
  129. package/esm2022/help-popover/lib/help-popover/help-popover.directive.mjs +3 -2
  130. package/esm2022/help-popover/lib/help-popover/help-popover.module.mjs +5 -14
  131. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +7 -8
  132. package/esm2022/image-cropper/lib/image-cropper/image-cropper.module.mjs +4 -10
  133. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.mjs +4 -3
  134. package/esm2022/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.mjs +4 -6
  135. package/esm2022/info-sign/lib/info-sign/components/info-sign/info-sign.component.mjs +6 -6
  136. package/esm2022/info-sign/lib/info-sign/info-sign.directive.mjs +4 -3
  137. package/esm2022/info-sign/lib/info-sign/info-sign.module.mjs +4 -8
  138. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.mjs +14 -10
  139. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.mjs +7 -6
  140. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.mjs +6 -6
  141. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +34 -20
  142. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +6 -6
  143. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.mjs +7 -7
  144. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +16 -15
  145. package/esm2022/inline-edit/lib/inline-edit/inline-edit.component.mjs +3 -3
  146. package/esm2022/inline-edit/lib/inline-edit/inline-edit.module.mjs +4 -89
  147. package/esm2022/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.mjs +6 -6
  148. package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +11 -10
  149. package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +7 -7
  150. package/esm2022/insights/lib/insights/insights.component.mjs +4 -5
  151. package/esm2022/insights/lib/insights/insights.module.mjs +4 -34
  152. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +18 -22
  153. package/esm2022/kanban/lib/kanban/components/kanban-item/kanban-item.component.mjs +9 -8
  154. package/esm2022/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.mjs +6 -6
  155. package/esm2022/kanban/lib/kanban/kanban.component.mjs +20 -11
  156. package/esm2022/kanban/lib/kanban/kanban.module.mjs +4 -41
  157. package/esm2022/label-value/lib/label-value/label-value.component.mjs +8 -8
  158. package/esm2022/label-value/lib/label-value/label-value.module.mjs +4 -10
  159. package/esm2022/lib/locale/fallback.mjs +3 -2
  160. package/esm2022/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.mjs +3 -3
  161. package/esm2022/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.mjs +4 -4
  162. package/esm2022/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.mjs +4 -4
  163. package/esm2022/loading-state/lib/loading-state/loading-state.component.mjs +13 -7
  164. package/esm2022/loading-state/lib/loading-state/loading-state.directive.mjs +3 -2
  165. package/esm2022/loading-state/lib/loading-state/loading-state.module.mjs +4 -20
  166. package/esm2022/locale/lib/locale/locale.module.mjs +6 -8
  167. package/esm2022/locale/lib/locale/pipes/localized-bignumber-impure.pipe.mjs +6 -5
  168. package/esm2022/locale/lib/locale/pipes/localized-bignumber.pipe.mjs +16 -15
  169. package/esm2022/locale/lib/locale/pipes/localized-currency-impure.pipe.mjs +6 -5
  170. package/esm2022/locale/lib/locale/pipes/localized-currency.pipe.mjs +11 -10
  171. package/esm2022/locale/lib/locale/pipes/localized-date-impure.pipe.mjs +6 -5
  172. package/esm2022/locale/lib/locale/pipes/localized-date.pipe.mjs +3 -2
  173. package/esm2022/locale/lib/locale/pipes/localized-number.pipe.mjs +10 -7
  174. package/esm2022/locale/lib/locale/pipes/localized-time-impure.pipe.mjs +6 -5
  175. package/esm2022/locale/lib/locale/pipes/localized-time.pipe.mjs +3 -2
  176. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.directive.mjs +7 -4
  177. package/esm2022/localized-number-input/lib/localized-number-input/localized-number-input.module.mjs +4 -6
  178. package/esm2022/mask/lib/mask/mask-formatter.module.mjs +3 -3
  179. package/esm2022/mask/lib/mask/mask-formatter.pipe.mjs +3 -2
  180. package/esm2022/mouse-events/lib/mouse-events/long-press.directive.mjs +3 -2
  181. package/esm2022/mouse-events/lib/mouse-events/mouse-events.module.mjs +5 -7
  182. package/esm2022/navigation-button/lib/navigation-button/navigation-button.component.mjs +8 -8
  183. package/esm2022/navigation-button/lib/navigation-button/navigation-button.module.mjs +4 -8
  184. package/esm2022/number-input/lib/number-input/number-input.directive.mjs +3 -2
  185. package/esm2022/number-input/lib/number-input/number-input.module.mjs +4 -6
  186. package/esm2022/numeric/lib/numeric.module.mjs +4 -6
  187. package/esm2022/numeric/lib/numeric.pipe.mjs +6 -3
  188. package/esm2022/numeric-mask/lib/numeric-mask/numeric-mask.directive.mjs +8 -3
  189. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +7 -8
  190. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +6 -8
  191. package/esm2022/object-card/lib/object-card/object-card.component.mjs +6 -6
  192. package/esm2022/object-card/lib/object-card/object-card.module.mjs +4 -10
  193. package/esm2022/paginator/lib/paginator/paginator.component.mjs +3 -3
  194. package/esm2022/panel/lib/panel/panel.component.mjs +15 -7
  195. package/esm2022/panel/lib/panel/panel.module.mjs +7 -10
  196. package/esm2022/password-strength/lib/password-strength/password-strength.component.mjs +4 -4
  197. package/esm2022/password-strength/lib/password-strength/password-strength.directive.mjs +4 -3
  198. package/esm2022/password-strength/lib/password-strength/password-strength.module.mjs +4 -7
  199. package/esm2022/pin-code-field/lib/pin-code-field/pin-code-field.component.mjs +5 -6
  200. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +9 -10
  201. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +5 -11
  202. package/esm2022/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.mjs +8 -6
  203. package/esm2022/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.mjs +4 -4
  204. package/esm2022/progressbar/lib/progressbar/progressbar.component.mjs +5 -5
  205. package/esm2022/progressbar/lib/progressbar/progressbar.module.mjs +4 -9
  206. package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +5 -5
  207. package/esm2022/rating-scale/lib/rating-scale/rating-scale.module.mjs +6 -14
  208. package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +3 -4
  209. package/esm2022/select/lib/select/select.component.mjs +3 -5
  210. package/esm2022/select-button/lib/select-button/components/select-button-item/select-button-item.component.mjs +5 -5
  211. package/esm2022/select-button/lib/select-button/select-button.component.mjs +6 -6
  212. package/esm2022/select-button/lib/select-button/select-button.module.mjs +6 -13
  213. package/esm2022/shared/lib/shared/border-button/border-button.component.mjs +5 -5
  214. package/esm2022/shared/lib/shared/border-button/border-button.module.mjs +7 -10
  215. package/esm2022/sidebar/lib/sidebar/sidebar.component.mjs +5 -5
  216. package/esm2022/sidebar/lib/sidebar/sidebar.module.mjs +4 -7
  217. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.mjs +6 -6
  218. package/esm2022/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.mjs +7 -9
  219. package/esm2022/slider/lib/slider/slider.component.mjs +6 -6
  220. package/esm2022/slider/lib/slider/slider.module.mjs +6 -9
  221. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +4 -5
  222. package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition.module.mjs +5 -13
  223. package/esm2022/split-button/lib/split-button/split-button.component.mjs +5 -5
  224. package/esm2022/split-button/lib/split-button/split-button.module.mjs +4 -6
  225. package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
  226. package/esm2022/stats-card/lib/stats-card/stats-card.component.mjs +6 -6
  227. package/esm2022/stats-card/lib/stats-card/stats-card.module.mjs +4 -8
  228. package/esm2022/stepper/lib/stepper/stepper.component.mjs +6 -6
  229. package/esm2022/stepper/lib/stepper/stepper.module.mjs +4 -7
  230. package/esm2022/structure/lib/structure/footer.component.mjs +3 -2
  231. package/esm2022/structure/lib/structure/header.component.mjs +5 -4
  232. package/esm2022/structure/lib/structure/structure.module.mjs +5 -7
  233. package/esm2022/switch/lib/switch/switch.component.mjs +4 -5
  234. package/esm2022/switch/lib/switch/switch.module.mjs +4 -6
  235. package/esm2022/table/lib/table/row-toggler/row-toggler.directive.mjs +6 -3
  236. package/esm2022/table/lib/table/table-column/table-columns.component.mjs +17 -9
  237. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +4 -4
  238. package/esm2022/table/lib/table/table.module.mjs +4 -34
  239. package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +19 -16
  240. package/esm2022/table-header/lib/table-header/table-header-checkox.module.mjs +4 -8
  241. package/esm2022/template/lib/template/template.module.mjs +4 -5
  242. package/esm2022/text-area/lib/text-area/text-area.component.mjs +9 -9
  243. package/esm2022/text-area/lib/text-area.module.mjs +5 -24
  244. package/esm2022/thumbnail/lib/thumbnail/thumbnail.component.mjs +5 -5
  245. package/esm2022/thumbnail/lib/thumbnail/thumbnail.module.mjs +7 -9
  246. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.mjs +6 -6
  247. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.mjs +9 -9
  248. package/esm2022/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +25 -14
  249. package/esm2022/thumbnails/lib/thumbnails/thumbnails.component.mjs +4 -4
  250. package/esm2022/thumbnails/lib/thumbnails/thumbnails.module.mjs +6 -14
  251. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.mjs +7 -7
  252. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.mjs +3 -3
  253. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.mjs +4 -4
  254. package/esm2022/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.mjs +6 -6
  255. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.directive.mjs +4 -3
  256. package/esm2022/tiered-menu/lib/tiered-menu/tiered-menu.module.mjs +4 -20
  257. package/esm2022/tile/lib/tile/tile.component.mjs +6 -6
  258. package/esm2022/tile/lib/tile/tile.module.mjs +4 -7
  259. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.mjs +6 -6
  260. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.mjs +5 -5
  261. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.mjs +4 -4
  262. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.mjs +5 -5
  263. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.mjs +3 -3
  264. package/esm2022/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.mjs +5 -5
  265. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.mjs +7 -7
  266. package/esm2022/timeline/lib/timeline/timeline.component.mjs +5 -6
  267. package/esm2022/timeline/lib/timeline/timeline.module.mjs +4 -20
  268. package/esm2022/toast/lib/toast/toast.component.mjs +4 -4
  269. package/esm2022/toast/lib/toast/toast.module.mjs +6 -7
  270. package/esm2022/token-list/lib/token-list/token-list.component.mjs +4 -4
  271. package/esm2022/token-list/lib/token-list/token-list.module.mjs +4 -6
  272. package/esm2022/tooltip/lib/tooltip/tooltip.module.mjs +3 -4
  273. package/esm2022/topbar/lib/topbar/topbar.component.mjs +3 -3
  274. package/esm2022/topbar/lib/topbar/topbar.module.mjs +7 -10
  275. package/esm2022/tree/lib/tree/components/tree-node-item/tree-node-item.component.mjs +6 -5
  276. package/esm2022/tree/lib/tree/tree.component.mjs +5 -5
  277. package/esm2022/tree/lib/tree/tree.module.mjs +4 -10
  278. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.component.mjs +5 -5
  279. package/esm2022/workspace-switch/lib/workspace-switch/workspace-switch.module.mjs +4 -6
  280. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +20 -17
  281. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  282. package/fesm2022/seniorsistemas-angular-components-alert.mjs +6 -8
  283. package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
  284. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +3 -3
  285. package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
  286. package/fesm2022/seniorsistemas-angular-components-badge.mjs +8 -12
  287. package/fesm2022/seniorsistemas-angular-components-badge.mjs.map +1 -1
  288. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs +5 -7
  289. package/fesm2022/seniorsistemas-angular-components-bignumber-input.mjs.map +1 -1
  290. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs +5 -6
  291. package/fesm2022/seniorsistemas-angular-components-breadcrumb.mjs.map +1 -1
  292. package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
  293. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  294. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs +5 -6
  295. package/fesm2022/seniorsistemas-angular-components-calendar-mask.mjs.map +1 -1
  296. package/fesm2022/seniorsistemas-angular-components-card.mjs +7 -9
  297. package/fesm2022/seniorsistemas-angular-components-card.mjs.map +1 -1
  298. package/fesm2022/seniorsistemas-angular-components-chat.mjs +15 -16
  299. package/fesm2022/seniorsistemas-angular-components-chat.mjs.map +1 -1
  300. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +7 -10
  301. package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
  302. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +3 -4
  303. package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
  304. package/fesm2022/seniorsistemas-angular-components-chips.mjs +14 -18
  305. package/fesm2022/seniorsistemas-angular-components-chips.mjs.map +1 -1
  306. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs +5 -7
  307. package/fesm2022/seniorsistemas-angular-components-code-editor.mjs.map +1 -1
  308. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs +6 -8
  309. package/fesm2022/seniorsistemas-angular-components-collapse-link.mjs.map +1 -1
  310. package/fesm2022/seniorsistemas-angular-components-common.mjs +9 -16
  311. package/fesm2022/seniorsistemas-angular-components-common.mjs.map +1 -1
  312. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +28 -52
  313. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  314. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs +5 -8
  315. package/fesm2022/seniorsistemas-angular-components-control-errors.mjs.map +1 -1
  316. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -37
  317. package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
  318. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs +12 -35
  319. package/fesm2022/seniorsistemas-angular-components-custom-fields.mjs.map +1 -1
  320. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs +5 -2
  321. package/fesm2022/seniorsistemas-angular-components-datepicker.mjs.map +1 -1
  322. package/fesm2022/seniorsistemas-angular-components-dialog.mjs +2 -2
  323. package/fesm2022/seniorsistemas-angular-components-dialog.mjs.map +1 -1
  324. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +12 -11
  325. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  326. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs +5 -6
  327. package/fesm2022/seniorsistemas-angular-components-editable-overlay.mjs.map +1 -1
  328. package/fesm2022/seniorsistemas-angular-components-editor.mjs +3 -3
  329. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  330. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +8 -11
  331. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  332. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs +6 -9
  333. package/fesm2022/seniorsistemas-angular-components-fieldset.mjs.map +1 -1
  334. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +11 -18
  335. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  336. package/fesm2022/seniorsistemas-angular-components-gantt.mjs +9 -16
  337. package/fesm2022/seniorsistemas-angular-components-gantt.mjs.map +1 -1
  338. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +31 -47
  339. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  340. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs +8 -10
  341. package/fesm2022/seniorsistemas-angular-components-grid-menu.mjs.map +1 -1
  342. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +10 -17
  343. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  344. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +8 -14
  345. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  346. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs +5 -6
  347. package/fesm2022/seniorsistemas-angular-components-infinite-scroll.mjs.map +1 -1
  348. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs +9 -11
  349. package/fesm2022/seniorsistemas-angular-components-info-sign.mjs.map +1 -1
  350. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +64 -121
  351. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  352. package/fesm2022/seniorsistemas-angular-components-insights.mjs +22 -47
  353. package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
  354. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +86 -113
  355. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  356. package/fesm2022/seniorsistemas-angular-components-label-value.mjs +10 -16
  357. package/fesm2022/seniorsistemas-angular-components-label-value.mjs.map +1 -1
  358. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs +40 -46
  359. package/fesm2022/seniorsistemas-angular-components-loading-state.mjs.map +1 -1
  360. package/fesm2022/seniorsistemas-angular-components-locale.mjs +40 -31
  361. package/fesm2022/seniorsistemas-angular-components-locale.mjs.map +1 -1
  362. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs +9 -8
  363. package/fesm2022/seniorsistemas-angular-components-localized-number-input.mjs.map +1 -1
  364. package/fesm2022/seniorsistemas-angular-components-mask.mjs +4 -3
  365. package/fesm2022/seniorsistemas-angular-components-mask.mjs.map +1 -1
  366. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs +55 -56
  367. package/fesm2022/seniorsistemas-angular-components-mouse-events.mjs.map +1 -1
  368. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs +9 -13
  369. package/fesm2022/seniorsistemas-angular-components-navigation-button.mjs.map +1 -1
  370. package/fesm2022/seniorsistemas-angular-components-number-input.mjs +6 -6
  371. package/fesm2022/seniorsistemas-angular-components-number-input.mjs.map +1 -1
  372. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs +7 -2
  373. package/fesm2022/seniorsistemas-angular-components-numeric-mask.mjs.map +1 -1
  374. package/fesm2022/seniorsistemas-angular-components-numeric.mjs +8 -7
  375. package/fesm2022/seniorsistemas-angular-components-numeric.mjs.map +1 -1
  376. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +14 -21
  377. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  378. package/fesm2022/seniorsistemas-angular-components-paginator.mjs +2 -2
  379. package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
  380. package/fesm2022/seniorsistemas-angular-components-panel.mjs +17 -11
  381. package/fesm2022/seniorsistemas-angular-components-panel.mjs.map +1 -1
  382. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs +8 -9
  383. package/fesm2022/seniorsistemas-angular-components-password-strength.mjs.map +1 -1
  384. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs +4 -5
  385. package/fesm2022/seniorsistemas-angular-components-pin-code-field.mjs.map +1 -1
  386. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +11 -17
  387. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  388. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs +15 -15
  389. package/fesm2022/seniorsistemas-angular-components-progressbar.mjs.map +1 -1
  390. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +8 -15
  391. package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
  392. package/fesm2022/seniorsistemas-angular-components-select-button.mjs +9 -15
  393. package/fesm2022/seniorsistemas-angular-components-select-button.mjs.map +1 -1
  394. package/fesm2022/seniorsistemas-angular-components-select.mjs +4 -6
  395. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  396. package/fesm2022/seniorsistemas-angular-components-shared.mjs +8 -11
  397. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  398. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs +7 -10
  399. package/fesm2022/seniorsistemas-angular-components-sidebar.mjs.map +1 -1
  400. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs +7 -9
  401. package/fesm2022/seniorsistemas-angular-components-slide-in-bar.mjs.map +1 -1
  402. package/fesm2022/seniorsistemas-angular-components-slider.mjs +8 -11
  403. package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
  404. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +7 -15
  405. package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
  406. package/fesm2022/seniorsistemas-angular-components-split-button.mjs +6 -8
  407. package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
  408. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
  409. package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
  410. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs +8 -12
  411. package/fesm2022/seniorsistemas-angular-components-stats-card.mjs.map +1 -1
  412. package/fesm2022/seniorsistemas-angular-components-stepper.mjs +8 -11
  413. package/fesm2022/seniorsistemas-angular-components-stepper.mjs.map +1 -1
  414. package/fesm2022/seniorsistemas-angular-components-structure.mjs +18 -18
  415. package/fesm2022/seniorsistemas-angular-components-structure.mjs.map +1 -1
  416. package/fesm2022/seniorsistemas-angular-components-switch.mjs +6 -9
  417. package/fesm2022/seniorsistemas-angular-components-switch.mjs.map +1 -1
  418. package/fesm2022/seniorsistemas-angular-components-table-header.mjs +20 -21
  419. package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
  420. package/fesm2022/seniorsistemas-angular-components-table.mjs +27 -45
  421. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  422. package/fesm2022/seniorsistemas-angular-components-template.mjs +3 -4
  423. package/fesm2022/seniorsistemas-angular-components-template.mjs.map +1 -1
  424. package/fesm2022/seniorsistemas-angular-components-text-area.mjs +12 -30
  425. package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
  426. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs +6 -8
  427. package/fesm2022/seniorsistemas-angular-components-thumbnail.mjs.map +1 -1
  428. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs +45 -37
  429. package/fesm2022/seniorsistemas-angular-components-thumbnails.mjs.map +1 -1
  430. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs +14 -25
  431. package/fesm2022/seniorsistemas-angular-components-tiered-menu.mjs.map +1 -1
  432. package/fesm2022/seniorsistemas-angular-components-tile.mjs +8 -12
  433. package/fesm2022/seniorsistemas-angular-components-tile.mjs.map +1 -1
  434. package/fesm2022/seniorsistemas-angular-components-timeline.mjs +58 -124
  435. package/fesm2022/seniorsistemas-angular-components-timeline.mjs.map +1 -1
  436. package/fesm2022/seniorsistemas-angular-components-toast.mjs +4 -5
  437. package/fesm2022/seniorsistemas-angular-components-toast.mjs.map +1 -1
  438. package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -8
  439. package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
  440. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -2
  441. package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
  442. package/fesm2022/seniorsistemas-angular-components-topbar.mjs +5 -8
  443. package/fesm2022/seniorsistemas-angular-components-topbar.mjs.map +1 -1
  444. package/fesm2022/seniorsistemas-angular-components-tree.mjs +10 -13
  445. package/fesm2022/seniorsistemas-angular-components-tree.mjs.map +1 -1
  446. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs +6 -8
  447. package/fesm2022/seniorsistemas-angular-components-workspace-switch.mjs.map +1 -1
  448. package/fesm2022/seniorsistemas-angular-components.mjs +2 -1
  449. package/fesm2022/seniorsistemas-angular-components.mjs.map +1 -1
  450. package/fieldset/lib/fieldset/fieldset.component.d.ts +1 -1
  451. package/fieldset/lib/fieldset/fieldset.module.d.ts +1 -3
  452. package/file-picker/lib/file-picker/file-picker.component.d.ts +1 -1
  453. package/file-picker/lib/file-picker/file-picker.module.d.ts +1 -7
  454. package/gantt/lib/gantt/components/side-table/side-table.component.d.ts +1 -1
  455. package/gantt/lib/gantt/gantt.component.d.ts +1 -1
  456. package/gantt/lib/gantt/gantt.module.d.ts +1 -4
  457. package/global-search/README.md +12 -1
  458. package/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.d.ts +1 -1
  459. package/global-search/lib/global-search/global-search.component.d.ts +1 -1
  460. package/global-search/lib/global-search/global-search.module.d.ts +8 -12
  461. package/grid-menu/README.md +27 -2
  462. package/grid-menu/lib/grid-menu/components/grid-menu-item/grid-menu-item.component.d.ts +1 -1
  463. package/grid-menu/lib/grid-menu/grid-menu.component.d.ts +1 -1
  464. package/grid-menu/lib/grid-menu/grid-menu.module.d.ts +1 -3
  465. package/help-popover/README.md +2 -2
  466. package/help-popover/lib/help-popover/help-popover/help-popover.component.d.ts +1 -1
  467. package/help-popover/lib/help-popover/help-popover.directive.d.ts +1 -1
  468. package/help-popover/lib/help-popover/help-popover.module.d.ts +2 -5
  469. package/ia-insight/README.md +1 -1
  470. package/image-cropper/README.md +2 -2
  471. package/image-cropper/lib/image-cropper/image-cropper.component.d.ts +1 -1
  472. package/image-cropper/lib/image-cropper/image-cropper.module.d.ts +3 -8
  473. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.directive.d.ts +1 -1
  474. package/infinite-scroll/lib/infinite-scroll/infinite-scroll.module.d.ts +1 -2
  475. package/info-sign/README.md +1 -1
  476. package/info-sign/lib/info-sign/components/info-sign/info-sign.component.d.ts +2 -2
  477. package/info-sign/lib/info-sign/info-sign.directive.d.ts +1 -1
  478. package/info-sign/lib/info-sign/info-sign.module.d.ts +1 -4
  479. package/inline-edit/lib/inline-edit/components/fields/inline-edit-calendar/inline-edit-calendar.component.d.ts +7 -6
  480. package/inline-edit/lib/inline-edit/components/fields/inline-edit-content-generator/inline-edit-content-generator.component.d.ts +4 -4
  481. package/inline-edit/lib/inline-edit/components/fields/inline-edit-lookup/inline-edit-lookup.component.d.ts +4 -4
  482. package/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.d.ts +5 -4
  483. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.d.ts +4 -4
  484. package/inline-edit/lib/inline-edit/components/fields/inline-edit-text-area/inline-edit-text-area.component.d.ts +4 -4
  485. package/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.d.ts +5 -4
  486. package/inline-edit/lib/inline-edit/inline-edit.component.d.ts +1 -1
  487. package/inline-edit/lib/inline-edit/inline-edit.module.d.ts +1 -23
  488. package/insights/lib/insights/components/insights-card/components/insights-card-loader/insights-card-loader.component.d.ts +1 -1
  489. package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +2 -1
  490. package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +1 -1
  491. package/insights/lib/insights/insights.component.d.ts +1 -1
  492. package/insights/lib/insights/insights.module.d.ts +3 -12
  493. package/kanban/lib/kanban/components/kanban-column/kanban-column.component.d.ts +5 -5
  494. package/kanban/lib/kanban/components/kanban-item/kanban-item.component.d.ts +4 -4
  495. package/kanban/lib/kanban/components/kanban-item-dragging/kanban-item-dragging.component.d.ts +1 -1
  496. package/kanban/lib/kanban/kanban.component.d.ts +1 -1
  497. package/kanban/lib/kanban/kanban.module.d.ts +3 -13
  498. package/label-value/lib/label-value/label-value.component.d.ts +1 -1
  499. package/label-value/lib/label-value/label-value.module.d.ts +1 -6
  500. package/loading-state/lib/loading-state/components/dots-indicator/dots-indicator.components.d.ts +1 -1
  501. package/loading-state/lib/loading-state/components/logo-indicator/logo-indicator.component.d.ts +1 -1
  502. package/loading-state/lib/loading-state/components/progress-bar-indicator/progress-bar-indicator.component.d.ts +1 -1
  503. package/loading-state/lib/loading-state/loading-state.component.d.ts +1 -1
  504. package/loading-state/lib/loading-state/loading-state.directive.d.ts +1 -1
  505. package/loading-state/lib/loading-state/loading-state.module.d.ts +1 -6
  506. package/locale/lib/locale/locale.module.d.ts +1 -2
  507. package/locale/lib/locale/pipes/localized-bignumber-impure.pipe.d.ts +3 -3
  508. package/locale/lib/locale/pipes/localized-bignumber.pipe.d.ts +3 -3
  509. package/locale/lib/locale/pipes/localized-currency-impure.pipe.d.ts +3 -3
  510. package/locale/lib/locale/pipes/localized-currency.pipe.d.ts +3 -3
  511. package/locale/lib/locale/pipes/localized-date-impure.pipe.d.ts +3 -3
  512. package/locale/lib/locale/pipes/localized-date.pipe.d.ts +1 -1
  513. package/locale/lib/locale/pipes/localized-number.pipe.d.ts +2 -2
  514. package/locale/lib/locale/pipes/localized-time-impure.pipe.d.ts +3 -3
  515. package/locale/lib/locale/pipes/localized-time.pipe.d.ts +1 -1
  516. package/localized-number-input/lib/localized-number-input/localized-number-input.directive.d.ts +2 -1
  517. package/localized-number-input/lib/localized-number-input/localized-number-input.module.d.ts +1 -2
  518. package/mask/lib/mask/mask-formatter.module.d.ts +1 -1
  519. package/mask/lib/mask/mask-formatter.pipe.d.ts +1 -1
  520. package/mouse-events/lib/mouse-events/long-press.directive.d.ts +1 -1
  521. package/mouse-events/lib/mouse-events/mouse-events.module.d.ts +3 -4
  522. package/navigation-button/lib/navigation-button/navigation-button.component.d.ts +1 -1
  523. package/navigation-button/lib/navigation-button/navigation-button.module.d.ts +1 -4
  524. package/number-input/lib/number-input/number-input.directive.d.ts +1 -1
  525. package/number-input/lib/number-input/number-input.module.d.ts +1 -2
  526. package/numeric/lib/numeric.module.d.ts +1 -2
  527. package/numeric/lib/numeric.pipe.d.ts +1 -1
  528. package/numeric-mask/lib/numeric-mask/numeric-mask.directive.d.ts +1 -0
  529. package/object-card/README.md +13 -1
  530. package/object-card/lib/object-card/elements/field/object-card-field.component.d.ts +1 -1
  531. package/object-card/lib/object-card/elements/main/object-card-main.component.d.ts +1 -1
  532. package/object-card/lib/object-card/object-card.component.d.ts +1 -1
  533. package/object-card/lib/object-card/object-card.module.d.ts +5 -10
  534. package/package.json +13 -13
  535. package/panel/lib/panel/panel.component.d.ts +6 -1
  536. package/panel/lib/panel/panel.module.d.ts +2 -4
  537. package/password-strength/lib/password-strength/password-strength.component.d.ts +1 -1
  538. package/password-strength/lib/password-strength/password-strength.directive.d.ts +1 -1
  539. package/password-strength/lib/password-strength/password-strength.module.d.ts +2 -4
  540. package/picklist/README.md +74 -2
  541. package/product-header/README.md +1 -1
  542. package/profile-picture-picker/README.md +1 -1
  543. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +1 -1
  544. package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.d.ts +1 -7
  545. package/progressbar/README.md +0 -1
  546. package/progressbar/lib/progressbar/components/progressbar-determinate/progressbar-determinate.component.d.ts +2 -1
  547. package/progressbar/lib/progressbar/components/progressbar-indeterminate/progressbar-indeterminate.component.d.ts +1 -1
  548. package/progressbar/lib/progressbar/progressbar.component.d.ts +1 -1
  549. package/progressbar/lib/progressbar/progressbar.module.d.ts +1 -5
  550. package/radio-button/README.md +0 -1
  551. package/rating-scale/README.md +1 -1
  552. package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +2 -2
  553. package/rating-scale/lib/rating-scale/rating-scale.module.d.ts +1 -3
  554. package/select/lib/select/select.component.d.ts +1 -1
  555. package/select-button/README.md +1 -1
  556. package/select-button/lib/select-button/components/select-button-item/select-button-item.component.d.ts +1 -1
  557. package/select-button/lib/select-button/select-button.component.d.ts +1 -1
  558. package/select-button/lib/select-button/select-button.module.d.ts +1 -3
  559. package/shared/lib/shared/border-button/border-button.component.d.ts +1 -1
  560. package/shared/lib/shared/border-button/border-button.module.d.ts +1 -3
  561. package/sidebar/lib/sidebar/sidebar.component.d.ts +1 -1
  562. package/sidebar/lib/sidebar/sidebar.module.d.ts +2 -4
  563. package/slide-in-bar/README.md +1 -1
  564. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.component.d.ts +1 -1
  565. package/slide-in-bar/lib/slide-in-bar/slide-in-bar.module.d.ts +1 -2
  566. package/slider/README.md +1 -1
  567. package/slider/lib/slider/slider.component.d.ts +1 -1
  568. package/slider/lib/slider/slider.module.d.ts +1 -3
  569. package/speech-recognition/README.md +1 -1
  570. package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +1 -1
  571. package/speech-recognition/lib/speech-recognition/speech-recognition.module.d.ts +1 -3
  572. package/split-button/README.md +1 -1
  573. package/split-button/lib/split-button/split-button.component.d.ts +1 -1
  574. package/split-button/lib/split-button/split-button.module.d.ts +1 -2
  575. package/spotlight/README.md +1 -1
  576. package/star-rating/README.md +1 -1
  577. package/stats-card/README.md +1 -1
  578. package/stats-card/lib/stats-card/stats-card.component.d.ts +1 -1
  579. package/stats-card/lib/stats-card/stats-card.module.d.ts +1 -4
  580. package/stepper/lib/stepper/stepper.component.d.ts +1 -1
  581. package/stepper/lib/stepper/stepper.module.d.ts +1 -3
  582. package/structure/lib/structure/footer.component.d.ts +1 -1
  583. package/structure/lib/structure/header.component.d.ts +1 -1
  584. package/structure/lib/structure/structure.module.d.ts +1 -2
  585. package/switch/lib/switch/switch.component.d.ts +1 -1
  586. package/switch/lib/switch/switch.module.d.ts +1 -2
  587. package/table/README.md +9 -8
  588. package/table/lib/table/row-toggler/row-toggler.directive.d.ts +1 -1
  589. package/table/lib/table/table-column/table-columns.component.d.ts +1 -1
  590. package/table/lib/table/table-paging/table-paging.component.d.ts +1 -1
  591. package/table/lib/table/table.module.d.ts +5 -12
  592. package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -1
  593. package/table-header/lib/table-header/table-header-checkox.module.d.ts +1 -4
  594. package/template/README.md +177 -0
  595. package/template/lib/template/template.module.d.ts +2 -3
  596. package/text-area/lib/text-area/text-area.component.d.ts +1 -1
  597. package/text-area/lib/text-area.module.d.ts +1 -5
  598. package/text-area-ia/README.md +1 -1
  599. package/thumbnail/lib/thumbnail/thumbnail.component.d.ts +1 -1
  600. package/thumbnail/lib/thumbnail/thumbnail.module.d.ts +1 -2
  601. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +1 -1
  602. package/thumbnails/lib/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +2 -2
  603. package/thumbnails/lib/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +5 -4
  604. package/thumbnails/lib/thumbnails/thumbnails.component.d.ts +1 -1
  605. package/thumbnails/lib/thumbnails/thumbnails.module.d.ts +1 -8
  606. package/tiered-menu/lib/tiered-menu/components/tiered-menu/tiered-menu.component.d.ts +1 -1
  607. package/tiered-menu/lib/tiered-menu/components/tiered-menu-divider/tiered-menu-divider.component.d.ts +1 -1
  608. package/tiered-menu/lib/tiered-menu/components/tiered-menu-item/tiered-menu-item.component.d.ts +1 -1
  609. package/tiered-menu/lib/tiered-menu/components/tiered-menu-nested/tiered-menu-nested.component.d.ts +1 -1
  610. package/tiered-menu/lib/tiered-menu/tiered-menu.directive.d.ts +1 -1
  611. package/tiered-menu/lib/tiered-menu/tiered-menu.module.d.ts +1 -6
  612. package/tile/lib/tile/tile.component.d.ts +1 -1
  613. package/tile/lib/tile/tile.module.d.ts +3 -5
  614. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.component.d.ts +1 -1
  615. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.component.d.ts +1 -1
  616. package/timeline/lib/timeline/components/vertical-timeline/components/collapse-option/collapse-option.component.d.ts +1 -1
  617. package/timeline/lib/timeline/components/vertical-timeline/components/collapsed-items/collapsed-items.component.d.ts +1 -1
  618. package/timeline/lib/timeline/components/vertical-timeline/components/range-line/range-line.component.d.ts +1 -1
  619. package/timeline/lib/timeline/components/vertical-timeline/components/vertical-items/vertical-items.component.d.ts +1 -1
  620. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.component.d.ts +1 -1
  621. package/timeline/lib/timeline/timeline.component.d.ts +1 -1
  622. package/timeline/lib/timeline/timeline.module.d.ts +1 -5
  623. package/toast/lib/toast/toast.component.d.ts +1 -1
  624. package/toast/lib/toast/toast.module.d.ts +3 -3
  625. package/token-list/lib/token-list/token-list.component.d.ts +1 -1
  626. package/token-list/lib/token-list/token-list.module.d.ts +1 -2
  627. package/tooltip/lib/tooltip/tooltip.module.d.ts +1 -2
  628. package/topbar/lib/topbar/topbar.component.d.ts +1 -1
  629. package/topbar/lib/topbar/topbar.module.d.ts +3 -5
  630. package/tree/lib/tree/components/tree-node-item/tree-node-item.component.d.ts +1 -1
  631. package/tree/lib/tree/tree.component.d.ts +1 -1
  632. package/tree/lib/tree/tree.module.d.ts +1 -6
  633. package/workspace-switch/lib/workspace-switch/workspace-switch.component.d.ts +1 -1
  634. package/workspace-switch/lib/workspace-switch/workspace-switch.module.d.ts +1 -2
  635. package/esm2022/insights/lib/insights/components/insights-card/components/index.mjs +0 -2
  636. package/esm2022/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.mjs +0 -20
  637. package/esm2022/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.mjs +0 -19
  638. package/esm2022/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.mjs +0 -33
  639. package/insights/lib/insights/components/insights-card/components/index.d.ts +0 -1
  640. package/timeline/lib/timeline/components/horizontal-timeline/horizontal-timeline.module.d.ts +0 -10
  641. package/timeline/lib/timeline/components/timeline-icon-item/timeline-icon-item.module.d.ts +0 -9
  642. package/timeline/lib/timeline/components/vertical-timeline/vertical-timeline.module.d.ts +0 -13
@@ -618,12 +618,13 @@ export class CalendarMaskDirective {
618
618
  }
619
619
  }
620
620
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
621
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CalendarMaskDirective, selector: "p-calendar[sCalendarMask]", inputs: { slotChar: "slotChar", autoClear: "autoClear" }, host: { listeners: { "keydown": "onKeydownEventTest($event)" } }, ngImport: i0 });
621
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: CalendarMaskDirective, isStandalone: true, selector: "p-calendar[sCalendarMask]", inputs: { slotChar: "slotChar", autoClear: "autoClear" }, host: { listeners: { "keydown": "onKeydownEventTest($event)" } }, ngImport: i0 });
622
622
  }
623
623
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskDirective, decorators: [{
624
624
  type: Directive,
625
625
  args: [{
626
626
  selector: 'p-calendar[sCalendarMask]',
627
+ standalone: true,
627
628
  }]
628
629
  }], propDecorators: { slotChar: [{
629
630
  type: Input
@@ -633,4 +634,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
633
634
  type: HostListener,
634
635
  args: ['keydown', ['$event']]
635
636
  }] } });
636
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FsZW5kYXItbWFzay9zcmMvbGliL2NhbGVuZGFyLW1hc2svY2FsZW5kYXItbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBSUgsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFN0Isd0VBQXdFO0lBQ3hFLDhDQUE4QztJQUM5QyxTQUFTLEdBQUcsMEVBQTBFLENBQUM7SUFFdkY7Ozs7T0FJRztJQUVJLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFFdEI7Ozs7O09BS0c7SUFFSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWxCLEtBQUssQ0FBTTtJQUNYLEtBQUssQ0FBb0I7SUFDekIsTUFBTSxDQUFXO0lBRWhCLEtBQUssQ0FBVTtJQUNmLElBQUksQ0FBTTtJQUNWLEtBQUssQ0FBUztJQUNkLGVBQWUsQ0FBTTtJQUNyQixlQUFlLENBQTRCO0lBQzNDLHNCQUFzQixDQUFNO0lBQzVCLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBVTtJQUNoQixNQUFNLENBQU07SUFDWixhQUFhLENBQVU7SUFDdkIsU0FBUyxDQUFVO0lBQ25CLGNBQWMsQ0FBTTtJQUNwQixhQUFhLENBQVc7SUFDeEIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUVqQixhQUFhLENBQWM7SUFDM0IsWUFBWSxDQUFjO0lBQzFCLGVBQWUsQ0FBYztJQUM3QixnQkFBZ0IsQ0FBYztJQUM5QixhQUFhLENBQWM7SUFDM0IsYUFBYSxDQUFjO0lBRTNCLFlBQVk7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBRS9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzlFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFFBQVE7UUFDWCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsR0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsQyxDQUFDO1lBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsQ0FBTTtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUNJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRO2dCQUNyQixDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFLLElBQUksQ0FBQyxLQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3pHLENBQUM7Z0JBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsQ0FBTTtRQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsSUFBSSxHQUFHLENBQUM7UUFDUixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUVoQyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0MsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQztZQUNuQixHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUVmLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNmLElBQUksR0FBRyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNFLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzlDLENBQUM7Z0JBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLFFBQVE7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLFNBQVM7WUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBTTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxJQUFTLENBQUM7UUFFZCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JFLFNBQVM7WUFDVCxPQUFPO1FBQ1gsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0QixDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRWYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXhCLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsMkNBQTJDO3dCQUMzQyxNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7NEJBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDckIsQ0FBQyxDQUFDO3dCQUVGLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNyQixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQ0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLEtBQUssT0FBTztnQkFDUixPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3JCO2dCQUNJLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWU7UUFDM0IsNENBQTRDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQy9CLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBTSxDQUFDO1FBQ1gsSUFBSSxDQUFNLENBQUM7UUFDWCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFWixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDakMsQ0FBQyxHQUFHLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNuQixTQUFTLEdBQUcsQ0FBQyxDQUFDO3dCQUNkLE1BQU07b0JBQ1YsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNsQyxNQUFNO2dCQUNWLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsR0FBRyxFQUFFLENBQUM7Z0JBQ1YsQ0FBQztnQkFDRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQzNCLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDOUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDaEUsbURBQW1EO2dCQUNuRCx1Q0FBdUM7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixDQUFDO2dCQUNELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0oscURBQXFEO2dCQUNyRCxnREFBZ0Q7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzNELENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBRXBDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsSUFBSSxHQUFRLENBQUM7UUFFYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBRW5DLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hDLE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBVTtRQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU0sV0FBVyxDQUFDLENBQU07UUFDckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRS9DLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRztZQUNSLEdBQUcsRUFBRSxPQUFPO1NBQ2YsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO2dCQUVELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYyxFQUFFLElBQWE7UUFDdkMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDZCxHQUFHLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUU5QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQztpQkFBTSxJQUFLLElBQUksQ0FBQyxLQUFhLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLEdBQUksSUFBSSxDQUFDLEtBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNsQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFFOUIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU8sY0FBYyxDQUFDLENBQVM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBUTtRQUNyQixPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxNQUFNO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBUTtRQUNyQixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxNQUFNO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQVc7UUFDckMsSUFBSSxDQUFNLENBQUM7UUFDWCxJQUFJLENBQU0sQ0FBQztRQUVYLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNYLENBQUM7UUFFRCxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV2QixLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLENBQUM7O29CQUFNLE1BQU07Z0JBRWIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBUTtRQUNuQixJQUFJLENBQU0sQ0FBQztRQUNYLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFNLENBQUM7UUFDWCxJQUFJLENBQU0sQ0FBQztRQUVYLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ1YsQ0FBQzs7b0JBQU0sTUFBTTtZQUNqQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxDQUFNO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV6QixJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRTFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixPQUFPLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3pFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQztZQUNMLENBQUM7WUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQU0sRUFBRSxHQUFHLENBQUMsS0FBTSxDQUFDLENBQUM7Z0JBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7b0JBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1FQUFtRTtvQkFDdkgsT0FBTyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakQsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQixPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsQ0FBQztZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFNLEVBQUUsR0FBRyxDQUFDLEtBQU0sQ0FBQyxDQUFDO29CQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO3dCQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRUFBbUU7d0JBQ3ZILE9BQU8sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2pELENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1YsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBZTtRQUN2QyxpQkFBaUI7UUFDakIsTUFBTSxPQUFPLEdBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVLEVBQUUsR0FBUTtRQUNwQyxJQUFJLENBQUMsQ0FBQztRQUVOLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNyQyxVQUFVLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxJQUFJLFVBQVUsRUFBRSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdEQsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksSUFBSSxHQUFHLENBQUM7WUFDaEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksSUFBSSxPQUFPLENBQUM7WUFDaEIsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksSUFBSSxLQUFLLENBQUM7WUFDbEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0QsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsQ0FBZ0I7UUFDL0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNmLDZFQUE2RTtZQUM3RSxnRUFBZ0U7WUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLGlCQUF5QixDQUFDO1lBQzlCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQztZQUMzQixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxJQUFJLGVBQWUsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO3dCQUNuRCxlQUFlLEdBQUcsS0FBSyxDQUFDO3dCQUN4QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ25CLE9BQU87b0JBQ1gsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztnQkFDM0QsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxPQUFPLElBQUksYUFBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUN2RixpQkFBaUIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUMvQixlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixDQUFDO2dCQUVELElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNuQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQzt3QkFDMUQsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUNuQixlQUFlLEdBQUcsSUFBSSxDQUFDO3dCQUN2QixPQUFPO29CQUNYLENBQUM7b0JBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNsQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQVUsRUFBRSxJQUFhO1FBQzdDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzt3R0E5cEJRLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3hDOzhCQWVVLFFBQVE7c0JBRGQsS0FBSztnQkFVQyxTQUFTO3NCQURmLEtBQUs7Z0JBMGxCTixrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XG5cbmltcG9ydCB7IENhbGVuZGFyIH0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIEBzaW5jZSAxOS42LjBcbiAqIEZhdm9yIHV0aWxpemFyIG8gY29tcG9uZW50ZTogcy1kYXRlcGlja2VyLCBxdWUgw6kgbyBjYWxlbmTDoXJpbyBvZmljaWFsIGRvIERlc2lnbiBTeXN0ZW0gZGEgU2VuaW9yLlxuICpcbiAqIEBkZXNjcmlwdGlvbiBEaXJldGl2YSBxdWUgYXBsaWNhIG3DoXNjYXJhIGRlIGVudHJhZGEgYSB1bSBjb21wb25lbnRlIGBwLWNhbGVuZGFyYCBkbyBQcmltZU5HLFxuICogZm9ybWF0YW5kbyBhdXRvbWF0aWNhbWVudGUgYSBkYXRhIGNvbmZvcm1lIG8gZm9ybWF0byBjb25maWd1cmFkbyBubyBjYWxlbmTDoXJpby5cbiAqIEludGVyY2VwdGEgb3MgZXZlbnRvcyBkZSB0ZWNsYWRvIGUgaW5wdXQgZG8gY2FtcG8gaW50ZXJubyBkbyBjYWxlbmRhciBwYXJhIGdhcmFudGlyXG4gKiBxdWUgYXBlbmFzIGVudHJhZGFzIHbDoWxpZGFzIHNlamFtIGFjZWl0YXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxwLWNhbGVuZGFyIHNDYWxlbmRhck1hc2sgWyhuZ01vZGVsKV09XCJkYXRhXCIgZGF0ZUZvcm1hdD1cImRkL21tL3l5XCIgLz5cbiAqIGBgYFxuICpcbiAqIEBjYXRlZ29yeSBJbnB1dHNcbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdwLWNhbGVuZGFyW3NDYWxlbmRhck1hc2tdJyxcbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJNYXNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xuICAgIGhvc3QgPSBpbmplY3QoQ2FsZW5kYXIpO1xuICAgIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG5cbiAgICAvLyBUT0RPOiBNdWRlaSB1bSBtb250ZSBkZSBjb2lzYSBlIHRlbSBxdWUgdGVzdGFyIHNlIGlzc28gYWluZGEgZnVuY2lvbmFcbiAgICAvLyBUT0RPOiBBaW5kYSBlc3TDoSBzZW5kbyB1c2FkYSBlc3RhIGRpcmV0aXZhP1xuICAgIFNFTEVDVE9SUyA9ICdidXR0b24sIFtocmVmXSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEsIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD1cIi0xXCJdKSc7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ2FyYWN0ZXJlIHVzYWRvIGNvbW8gcGxhY2Vob2xkZXIgcGFyYSBhcyBwb3Npw6fDtWVzIGFpbmRhIG7Do28gcHJlZW5jaGlkYXMgbmEgbcOhc2NhcmEuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnXydcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzbG90Q2hhciA9ICdfJztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBRdWFuZG8gYHRydWVgLCBsaW1wYSBhdXRvbWF0aWNhbWVudGUgbyBjYW1wbyBjYXNvIG8gdmFsb3IgZGlnaXRhZG9cbiAgICAgKiBzZWphIGludsOhbGlkbyBhbyBwZXJkZXIgbyBmb2NvLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhdXRvQ2xlYXIgPSBmYWxzZTtcblxuICAgIHB1YmxpYyB2YWx1ZTogYW55O1xuICAgIHB1YmxpYyBpbnB1dD86IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgcHVibGljIGZpbGxlZD86IGJvb2xlYW47XG5cbiAgICBwcml2YXRlIF9tYXNrPzogc3RyaW5nO1xuICAgIHByaXZhdGUgZGVmczogYW55O1xuICAgIHByaXZhdGUgdGVzdHM/OiBhbnlbXTtcbiAgICBwcml2YXRlIHBhcnRpYWxQb3NpdGlvbjogYW55O1xuICAgIHByaXZhdGUgZmlyc3ROb25NYXNrUG9zOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIHByaXZhdGUgbGFzdFJlcXVpcmVkTm9uTWFza1BvczogYW55O1xuICAgIHByaXZhdGUgbGVuPzogbnVtYmVyO1xuICAgIHByaXZhdGUgb2xkVmFsPzogc3RyaW5nO1xuICAgIHByaXZhdGUgYnVmZmVyOiBhbnk7XG4gICAgcHJpdmF0ZSBkZWZhdWx0QnVmZmVyPzogc3RyaW5nO1xuICAgIHByaXZhdGUgZm9jdXNUZXh0Pzogc3RyaW5nO1xuICAgIHByaXZhdGUgY2FyZXRUaW1lb3V0SWQ6IGFueTtcbiAgICBwcml2YXRlIGFuZHJvaWRDaHJvbWU/OiBib29sZWFuO1xuICAgIHByaXZhdGUgZmlyc3RUaW1lID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgZm9jdXNMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBibHVyTGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUga2V5ZG93bkxpc3RlbmVyPzogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIGtleXByZXNzTGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgaW5wdXRMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gICAgcHJpdmF0ZSBwYXN0ZUxpc3RlbmVyPzogKCkgPT4gdm9pZDtcblxuICAgIHByaXZhdGUgc2V0TGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLmlucHV0ID0gdGhpcy5ob3N0LmlucHV0ZmllbGRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmlucHV0Py52YWx1ZTtcblxuICAgICAgICB0aGlzLmZvY3VzTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCAnZm9jdXMnLCAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uSW5wdXRGb2N1cygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmJsdXJMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsICdibHVyJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25JbnB1dEJsdXIoZXZlbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmtleWRvd25MaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsICdrZXlkb3duJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25LZXlEb3duKGV2ZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5rZXlwcmVzc0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgJ2tleXByZXNzJywgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMub25LZXlQcmVzcyhldmVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuaW5wdXRMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXQsICdpbnB1dCcsIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLm9uSW5wdXRDaGFuZ2UoZXZlbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnBhc3RlTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCAncGFzdGUnLCAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZShldmVudCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgY29uc3QgdWEgPSBuYXZpZ2F0b3IudXNlckFnZW50O1xuICAgICAgICB0aGlzLmFuZHJvaWRDaHJvbWUgPSAvY2hyb21lL2kudGVzdCh1YSkgJiYgL2FuZHJvaWQvaS50ZXN0KHVhKTtcblxuICAgICAgICB0aGlzLmNyZWF0ZU1hc2tGcm9tRGF0ZUZvcm1hdCgpO1xuICAgICAgICB0aGlzLmluaXRNYXNrKCk7XG4gICAgfVxuXG4gICAgZ2V0IG1hc2soKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hc2sgPz8gJyc7XG4gICAgfVxuXG4gICAgc2V0IG1hc2sodmFsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbWFzayA9IHZhbDtcblxuICAgICAgICB0aGlzLmluaXRNYXNrKCk7XG4gICAgICAgIHRoaXMud3JpdGVWYWx1ZSgnJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSAnJztcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwoKTtcbiAgICAgICAgICAgIHRoaXMuZm9jdXNUZXh0ID0gdGhpcy5pbnB1dC52YWx1ZTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRmlsbGVkU3RhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbklucHV0Qmx1cihlOiBhbnkpIHtcbiAgICAgICAgdGhpcy5jaGVja1ZhbCgpO1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMudmFsdWUgIT0gdGhpcy5mb2N1c1RleHQpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAhdGhpcy5pbnB1dD8uZGlzYWJsZWQgJiZcbiAgICAgICAgICAgICAgICAodGhpcy52YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMudmFsdWUgPT09IG51bGwgfHwgKHRoaXMudmFsdWUgYXMgc3RyaW5nKS5pbmRleE9mKHRoaXMuc2xvdENoYXIpID49IDApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgICAgICAgICAgICAgZS50YXJnZXQudmFsdWUgPSAnJztcbiAgICAgICAgICAgICAgICB0aGlzLmhvc3QudXBkYXRlTW9kZWwobnVsbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XG4gICAgICAgICAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XG4gICAgICAgICAgICBldmVudC5pbml0RXZlbnQoJ2NoYW5nZScsIHRydWUsIGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQ/LmRpc3BhdGNoRXZlbnQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG9uS2V5RG93bihlOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuaG9zdC5yZWFkb25seUlucHV0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBrID0gZS53aGljaCB8fCBlLmtleUNvZGU7XG4gICAgICAgIGNvbnN0IGlQaG9uZSA9IC9pcGhvbmUvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgICAgICBsZXQgcG9zO1xuICAgICAgICBsZXQgYmVnaW47XG4gICAgICAgIGxldCBlbmQ7XG4gICAgICAgIHRoaXMub2xkVmFsID0gdGhpcy5pbnB1dD8udmFsdWU7XG5cbiAgICAgICAgLy8gQmFja3NwYWNlLCBkZWxldGUsIGFuZCBlc2NhcGUgZ2V0IHNwZWNpYWwgdHJlYXRtZW50XG4gICAgICAgIGlmIChrID09PSA4IHx8IGsgPT09IDQ2IHx8IChpUGhvbmUgJiYgayA9PT0gMTI3KSkge1xuICAgICAgICAgICAgcG9zID0gdGhpcy5jYXJldCgpO1xuICAgICAgICAgICAgYmVnaW4gPSBwb3M/LmJlZ2luO1xuICAgICAgICAgICAgZW5kID0gcG9zPy5lbmQ7XG5cbiAgICAgICAgICAgIGlmIChiZWdpbiAmJiBlbmQpIHtcbiAgICAgICAgICAgICAgICBpZiAoZW5kIC0gYmVnaW4gPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgYmVnaW4gPSBrICE9PSA0NiA/IHRoaXMuc2Vla1ByZXYoYmVnaW4pIDogKGVuZCA9IHRoaXMuc2Vla05leHQoYmVnaW4gLSAxKSk7XG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IGsgPT09IDQ2ID8gdGhpcy5zZWVrTmV4dChlbmQpIDogZW5kO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoYmVnaW4sIGVuZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zaGlmdEwoYmVnaW4sIGVuZCAtIDEpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGsgPT09IDEzKSB7XG4gICAgICAgICAgICAvLyBFbnRlclxuICAgICAgICAgICAgdGhpcy5vbklucHV0Qmx1cihlKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoayA9PT0gMjcpIHtcbiAgICAgICAgICAgIC8vIEVzY2FwZVxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQgJiYgdGhpcy5mb2N1c1RleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gdGhpcy5mb2N1c1RleHQ7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldCgwLCB0aGlzLmNoZWNrVmFsKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbktleVByZXNzKGU6IGFueSkge1xuICAgICAgICBpZiAodGhpcy5ob3N0LnJlYWRvbmx5SW5wdXQpIHJldHVybjtcblxuICAgICAgICBjb25zdCBrID0gZS53aGljaCB8fCBlLmtleUNvZGU7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuY2FyZXQoKTtcbiAgICAgICAgbGV0IHA7XG4gICAgICAgIGxldCBjO1xuICAgICAgICBsZXQgbmV4dDogYW55O1xuXG4gICAgICAgIGlmIChlLmN0cmxLZXkgfHwgZS5hbHRLZXkgfHwgZS5tZXRhS2V5IHx8IGsgPCAzMiB8fCAoayA+IDM0ICYmIGsgPCA0MSkpIHtcbiAgICAgICAgICAgIC8vIElnbm9yZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2UgaWYgKGsgJiYgayAhPT0gMTMpIHtcbiAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQocG9zPy5lbmQpICYmICFpc051bGxPclVuZGVmaW5lZChwb3M/LmJlZ2luKSkge1xuICAgICAgICAgICAgICAgIGlmIChwb3MuZW5kIC0gcG9zLmJlZ2luICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIocG9zLmJlZ2luLCBwb3MuZW5kKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGlmdEwocG9zLmJlZ2luLCBwb3MuZW5kIC0gMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHBvcz8uYmVnaW4pKSB7XG4gICAgICAgICAgICAgICAgcCA9IHRoaXMuc2Vla05leHQocG9zLmJlZ2luIC0gMSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwIDwgKHRoaXMubGVuID8/IDApKSB7XG4gICAgICAgICAgICAgICAgYyA9IFN0cmluZy5mcm9tQ2hhckNvZGUoayk7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGVzdHM/LltwXS50ZXN0KGMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRSKHApO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW3BdID0gYztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xuICAgICAgICAgICAgICAgICAgICBuZXh0ID0gdGhpcy5zZWVrTmV4dChwKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBQYXRoIGZvciBDU1AgVmlvbGF0aW9uIG9uIEZpcmVGb3ggT1MgMS4xXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm94eSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KG5leHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChwcm94eSwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KG5leHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcbiAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQ29tcGxldGVNYXNrKCk6IHN0cmluZyB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5ob3N0LnNlbGVjdGlvbk1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXNrICsgYCAke3RoaXMuaG9zdC5yYW5nZVNlcGFyYXRvcn0gYCArIHRoaXMubWFzaztcbiAgICAgICAgICAgIGNhc2UgJ3NpbmdsZSc6XG4gICAgICAgICAgICBjYXNlICdtdWx0aXBsZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWFzaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNoZWNrVmFsKGFsbG93PzogYm9vbGVhbikge1xuICAgICAgICAvLyBUcnkgdG8gcGxhY2UgY2hhcmFjdGVycyB3aGVyZSB0aGV5IGJlbG9uZ1xuICAgICAgICBjb25zdCB0ZXN0ID0gdGhpcy5pbnB1dD8udmFsdWU7XG4gICAgICAgIGxldCBsYXN0TWF0Y2ggPSAtMTtcbiAgICAgICAgbGV0IGk6IGFueTtcbiAgICAgICAgbGV0IGM6IGFueTtcbiAgICAgICAgbGV0IHBvcyA9IDA7XG5cbiAgICAgICAgZm9yIChpID0gMDsgaSA8ICh0aGlzLmxlbiA/PyAwKTsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cz8uW2ldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB0aGlzLmdldFBsYWNlaG9sZGVyKGkpO1xuICAgICAgICAgICAgICAgIHdoaWxlIChwb3MrKyA8ICh0ZXN0Py5sZW5ndGggPz8gMCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYyA9IHRlc3Q/LmNoYXJBdChwb3MgLSAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGVzdHNbaV0udGVzdChjKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSBjO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFzdE1hdGNoID0gaTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChwb3MgPiAodGVzdD8ubGVuZ3RoID8/IDApKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoaSArIDEsIHRoaXMubGVuKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5idWZmZXJbaV0gPT09IHRlc3Q/LmNoYXJBdChwb3MpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcysrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGxhc3RNYXRjaCA9IGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvdykge1xuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xuICAgICAgICB9IGVsc2UgaWYgKGxhc3RNYXRjaCArIDEgPCB0aGlzLnBhcnRpYWxQb3NpdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0NsZWFyIHx8IHRoaXMuYnVmZmVyLmpvaW4oJycpID09PSB0aGlzLmRlZmF1bHRCdWZmZXIpIHtcbiAgICAgICAgICAgICAgICAvLyBJbnZhbGlkIHZhbHVlLiBSZW1vdmUgaXQgYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGVcbiAgICAgICAgICAgICAgICAvLyBtYXNrLCB3aGljaCBpcyB0aGUgZGVmYXVsdCBiZWhhdmlvci5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dD8udmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9ICcnO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQnVmZmVyKDAsIHRoaXMubGVuKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gSW52YWxpZCB2YWx1ZSwgYnV0IHdlIG9wdCB0byBzaG93IHRoZSB2YWx1ZSB0byB0aGVcbiAgICAgICAgICAgICAgICAvLyB1c2VyIGFuZCBhbGxvdyB0aGVtIHRvIGNvcnJlY3QgdGhlaXIgbWlzdGFrZS5cbiAgICAgICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XG4gICAgICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuaW5wdXQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUuc3Vic3RyaW5nKDAsIGxhc3RNYXRjaCArIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMucGFydGlhbFBvc2l0aW9uID8gaSA6IHRoaXMuZmlyc3ROb25NYXNrUG9zO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbklucHV0Rm9jdXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvc3QucmVhZG9ubHlJbnB1dCkgcmV0dXJuO1xuXG4gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmNhcmV0VGltZW91dElkKTtcbiAgICAgICAgbGV0IHBvczogYW55O1xuXG4gICAgICAgIHRoaXMuZm9jdXNUZXh0ID0gdGhpcy5pbnB1dD8udmFsdWU7XG5cbiAgICAgICAgcG9zID0gdGhpcy5jaGVja1ZhbCgpO1xuXG4gICAgICAgIHRoaXMuY2FyZXRUaW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xuICAgICAgICAgICAgaWYgKHBvcyA9PSB0aGlzLm1hc2sucmVwbGFjZSgnPycsICcnKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KDAsIHBvcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuY2FyZXQocG9zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMTApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuYW5kcm9pZENocm9tZSkgdGhpcy5oYW5kbGVBbmRyb2lkSW5wdXQoZXZlbnQpO1xuICAgICAgICBlbHNlIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBoYW5kbGVJbnB1dENoYW5nZShldmVudDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLmhvc3QucmVhZG9ubHlJbnB1dCkgcmV0dXJuO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5jaGVja1ZhbCh0cnVlKTtcbiAgICAgICAgICAgIHRoaXMuY2FyZXQocG9zKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZXZlbnQpO1xuICAgICAgICB9LCAwKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdXBkYXRlTW9kZWwoZTogYW55KSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRWYWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgICAgICBpZiAodXBkYXRlZFZhbHVlICE9PSBudWxsIHx8IHVwZGF0ZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdXBkYXRlZFZhbHVlO1xuICAgICAgICAgICAgdGhpcy5ob3N0Lm9uVXNlcklucHV0KGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZUZpbGxlZFN0YXRlKCkge1xuICAgICAgICB0aGlzLmZpbGxlZCA9IHRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC52YWx1ZSAhPSAnJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMuaW5wdXQ/LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0TWFzaygpIHtcbiAgICAgICAgY29uc3QgY29tcGxldGVNYXNrID0gdGhpcy5jcmVhdGVDb21wbGV0ZU1hc2soKTtcblxuICAgICAgICB0aGlzLnRlc3RzID0gW107XG4gICAgICAgIHRoaXMucGFydGlhbFBvc2l0aW9uID0gY29tcGxldGVNYXNrLmxlbmd0aDtcbiAgICAgICAgdGhpcy5sZW4gPSBjb21wbGV0ZU1hc2subGVuZ3RoO1xuICAgICAgICB0aGlzLmZpcnN0Tm9uTWFza1BvcyA9IG51bGw7XG4gICAgICAgIHRoaXMuZGVmcyA9IHtcbiAgICAgICAgICAgICc5JzogJ1swLTldJyxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBtYXNrVG9rZW5zID0gY29tcGxldGVNYXNrLnNwbGl0KCcnKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtYXNrVG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBjID0gbWFza1Rva2Vuc1tpXTtcblxuICAgICAgICAgICAgaWYgKGMgPT0gJz8nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZW4tLTtcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGVmc1tjXSkge1xuICAgICAgICAgICAgICAgIHRoaXMudGVzdHMucHVzaChuZXcgUmVnRXhwKHRoaXMuZGVmc1tjXSkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmlyc3ROb25NYXNrUG9zID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyc3ROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5wYXJ0aWFsUG9zaXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy50ZXN0cy5wdXNoKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idWZmZXIgPSBbXTtcblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGMgPSBtYXNrVG9rZW5zW2ldO1xuXG4gICAgICAgICAgICBpZiAoYyAhPSAnPycpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWZzW2NdKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyLnB1c2godGhpcy5nZXRQbGFjZWhvbGRlcihpKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXIucHVzaChjKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRlZmF1bHRCdWZmZXIgPSB0aGlzLmJ1ZmZlci5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhcmV0KGZpcnN0PzogbnVtYmVyLCBsYXN0PzogbnVtYmVyKSB7XG4gICAgICAgIGxldCByYW5nZSwgYmVnaW4sIGVuZDtcblxuICAgICAgICBpZiAoIXRoaXMuaW5wdXQ/Lm9mZnNldFBhcmVudCB8fCB0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4geyBiZWdpbjogMCwgZW5kOiAwIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGZpcnN0ID09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBiZWdpbiA9IGZpcnN0O1xuICAgICAgICAgICAgZW5kID0gdHlwZW9mIGxhc3QgPT09ICdudW1iZXInID8gbGFzdCA6IGJlZ2luO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoYmVnaW4sIGVuZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCh0aGlzLmlucHV0IGFzIGFueSlbJ2NyZWF0ZVRleHRSYW5nZSddKSB7XG4gICAgICAgICAgICAgICAgcmFuZ2UgPSAodGhpcy5pbnB1dCBhcyBhbnkpWydjcmVhdGVUZXh0UmFuZ2UnXSgpO1xuICAgICAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xuICAgICAgICAgICAgICAgIHJhbmdlLm1vdmVFbmQoJ2NoYXJhY3RlcicsIGVuZCk7XG4gICAgICAgICAgICAgICAgcmFuZ2UubW92ZVN0YXJ0KCdjaGFyYWN0ZXInLCBiZWdpbik7XG4gICAgICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBiZWdpbiA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XG4gICAgICAgICAgICBlbmQgPSB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZDtcblxuICAgICAgICAgICAgcmV0dXJuIHsgYmVnaW46IGJlZ2luLCBlbmQ6IGVuZCB9O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHsgYmVnaW46IGZpcnN0ID8/IDAsIGVuZDogbGFzdCA/PyAwIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRQbGFjZWhvbGRlcihpOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGkgPCB0aGlzLnNsb3RDaGFyLmxlbmd0aCkgcmV0dXJuIHRoaXMuc2xvdENoYXIuY2hhckF0KGkpO1xuICAgICAgICByZXR1cm4gdGhpcy5zbG90Q2hhci5jaGFyQXQoMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZWVrTmV4dChwb3M6IGFueSkge1xuICAgICAgICB3aGlsZSAoKytwb3MgPCAodGhpcy5sZW4gPz8gMCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzPy5bcG9zXSkgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlZWtQcmV2KHBvczogYW55KSB7XG4gICAgICAgIHdoaWxlICgtLXBvcyA+PSAwICYmICF0aGlzLnRlc3RzPy5bcG9zXSkge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHM/Lltwb3NdKSBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcG9zO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hpZnRMKGJlZ2luOiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XG4gICAgICAgIGxldCBpOiBhbnk7XG4gICAgICAgIGxldCBqOiBhbnk7XG5cbiAgICAgICAgaWYgKGJlZ2luIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoZW5kKTtcblxuICAgICAgICBmb3IgKGkgPSBiZWdpbjsgaSA8ICh0aGlzLmxlbiA/PyAwKTsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cz8uW2ldKSB7XG4gICAgICAgICAgICAgICAgaWYgKGogPCAodGhpcy5sZW4gPz8gMCkgJiYgdGhpcy50ZXN0c1tpXS50ZXN0KHRoaXMuYnVmZmVyW2pdKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuYnVmZmVyW2pdO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltqXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuZmlyc3ROb25NYXNrUG9zKSkge1xuICAgICAgICAgICAgdGhpcy5jYXJldChNYXRoLm1heCh0aGlzLmZpcnN0Tm9uTWFza1BvcywgYmVnaW4pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hpZnRSKHBvczogYW55KSB7XG4gICAgICAgIGxldCBpOiBhbnk7XG4gICAgICAgIGxldCBjID0gdGhpcy5nZXRQbGFjZWhvbGRlcihwb3MpO1xuICAgICAgICBsZXQgajogYW55O1xuICAgICAgICBsZXQgdDogYW55O1xuXG4gICAgICAgIGZvciAoaSA9IHBvczsgaSA8ICh0aGlzLmxlbiA/PyAwKTsgaSsrKSB7XG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cz8uW2ldKSB7XG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaSk7XG4gICAgICAgICAgICAgICAgdCA9IHRoaXMuYnVmZmVyW2ldO1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gYztcblxuICAgICAgICAgICAgICAgIGlmIChqIDwgKHRoaXMubGVuID8/IDApICYmIHRoaXMudGVzdHNbal0udGVzdCh0KSkge1xuICAgICAgICAgICAgICAgICAgICBjID0gdDtcbiAgICAgICAgICAgICAgICB9IGVsc2UgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGhhbmRsZUFuZHJvaWRJbnB1dChlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgY3VyVmFsID0gdGhpcy5pbnB1dD8udmFsdWU7XG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuY2FyZXQoKTtcblxuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQocG9zPy5iZWdpbikpIHJldHVybjtcblxuICAgICAgICBpZiAodGhpcy5vbGRWYWwgJiYgdGhpcy5vbGRWYWwubGVuZ3RoICYmIHRoaXMub2xkVmFsLmxlbmd0aCA+IChjdXJWYWw/Lmxlbmd0aCA/PyAwKSkge1xuICAgICAgICAgICAgLy8gQSBkZWxldGlvbiBvciBiYWNrc3BhY2UgaGFwcGVuZWRcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwodHJ1ZSk7XG4gICAgICAgICAgICB3aGlsZSAocG9zPy5iZWdpbiA+IDAgJiYgIXRoaXMudGVzdHM/Lltwb3MuYmVnaW4gLSAxXSkge1xuICAgICAgICAgICAgICAgIHBvcy5iZWdpbi0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHBvcy5iZWdpbiA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHdoaWxlIChwb3MuYmVnaW4gPCAodGhpcy5maXJzdE5vbk1hc2tQb3MgPz8gMCkgJiYgIXRoaXMudGVzdHM/Lltwb3MuYmVnaW5dKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvcy5iZWdpbisrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldChwb3MuYmVnaW4hLCBwb3MuYmVnaW4hKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0NvbXBsZXRlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbnRWYWwgPSBjdXJWYWw/LnJlcGxhY2UodGhpcy5zbG90Q2hhciwgJycpOyAvLyBMaW1wYSBvcyBjYXJhY3RlcmVzIHBsYWNlaG9sZGVycyBleHRyYXMgY2FzbyBlbGUgZXN0ZWphIGNvbXBsZXRvXG4gICAgICAgICAgICAgICAgICAgIHNlbnRWYWwgJiYgdGhpcy51cGRhdGVDYWxlbmRhclZhbHVlKHNlbnRWYWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbCh0cnVlKTtcblxuICAgICAgICAgICAgd2hpbGUgKHBvcy5iZWdpbiA8ICh0aGlzLmxlbiA/PyAwKSAmJiAhdGhpcy50ZXN0cz8uW3Bvcy5iZWdpbl0pIHtcbiAgICAgICAgICAgICAgICBwb3MuYmVnaW4rKztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChwb3MuYmVnaW4pKSB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FyZXQocG9zLmJlZ2luISwgcG9zLmJlZ2luISk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ29tcGxldGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbnRWYWwgPSBjdXJWYWw/LnJlcGxhY2UodGhpcy5zbG90Q2hhciwgJycpOyAvLyBMaW1wYSBvcyBjYXJhY3RlcmVzIHBsYWNlaG9sZGVycyBleHRyYXMgY2FzbyBlbGUgZXN0ZWphIGNvbXBsZXRvXG4gICAgICAgICAgICAgICAgICAgICAgICBzZW50VmFsICYmIHRoaXMudXBkYXRlQ2FsZW5kYXJWYWx1ZShzZW50VmFsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhclZhbHVlKHNlbnRWYWw6IHN0cmluZykge1xuICAgICAgICAvLyBUT0RPIHZlcmlmaWNhclxuICAgICAgICBjb25zdCBkYXRlVmFsID0gPERhdGU+dGhpcy5ob3N0LnBhcnNlVmFsdWVGcm9tU3RyaW5nKHNlbnRWYWwpO1xuICAgICAgICBpZiAodGhpcy5ob3N0LmlzU2VsZWN0YWJsZShkYXRlVmFsLmdldERhdGUoKSwgZGF0ZVZhbC5nZXRNb250aCgpLCBkYXRlVmFsLmdldEZ1bGxZZWFyKCksIGZhbHNlKSkge1xuICAgICAgICAgICAgdGhpcy5ob3N0LnVwZGF0ZU1vZGVsKHNlbnRWYWwpO1xuICAgICAgICAgICAgdGhpcy5ob3N0LnVwZGF0ZVVJKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNsZWFyQnVmZmVyKHN0YXJ0OiBhbnksIGVuZDogYW55KSB7XG4gICAgICAgIGxldCBpO1xuXG4gICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kICYmIGkgPCAodGhpcy5sZW4gPz8gMCk7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHM/LltpXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgd3JpdGVCdWZmZXIoKSB7XG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5pbnB1dCkpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmJ1ZmZlci5qb2luKCcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlTWFza0Zyb21EYXRlRm9ybWF0KCkge1xuICAgICAgICBjb25zdCBjYWxlbmRhciA9IHRoaXMuaG9zdDtcbiAgICAgICAgbGV0IG1hc2sgPSB0aGlzLmF1dG9DbGVhciA/ICc/JyA6ICcnO1xuXG4gICAgICAgIGlmICghY2FsZW5kYXIudGltZU9ubHkpIHtcbiAgICAgICAgICAgIGxldCBkYXRlRm9ybWF0ID0gY2FsZW5kYXIuZGF0ZUZvcm1hdDtcbiAgICAgICAgICAgIGRhdGVGb3JtYXQgPSBkYXRlRm9ybWF0Py5yZXBsYWNlKC95L2csICd5eScpO1xuICAgICAgICAgICAgbWFzayArPSBkYXRlRm9ybWF0Py5yZXBsYWNlKC9bXi8qLC5cXC0rXFxbXFxdXFxcXF0vZywgJzknKTtcbiAgICAgICAgICAgIGlmIChjYWxlbmRhci5zaG93VGltZSkge1xuICAgICAgICAgICAgICAgIG1hc2sgKz0gJyAnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNhbGVuZGFyLnNob3dUaW1lIHx8IGNhbGVuZGFyLnRpbWVPbmx5KSB7XG4gICAgICAgICAgICBtYXNrICs9ICc5OTo5OSc7XG4gICAgICAgICAgICBpZiAoY2FsZW5kYXIuc2hvd1NlY29uZHMpIHtcbiAgICAgICAgICAgICAgICBtYXNrICs9ICc6OTknO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fbWFzayA9IG1hc2s7XG5cbiAgICAgICAgdGhpcy5pbml0TWFzaygpO1xuICAgIH1cblxuICAgIGlzQ29tcGxldGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5maXJzdE5vbk1hc2tQb3MgPz8gMDsgaSA8PSB0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3M7IGkrKykge1xuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHM/LltpXSAmJiB0aGlzLmJ1ZmZlcltpXSA9PT0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaG9zdC5pbnB1dGZpZWxkVmlld0NoaWxkICYmIHRoaXMuZmlyc3RUaW1lKSB7XG4gICAgICAgICAgICB0aGlzLmZpcnN0VGltZSA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5zZXRMaXN0ZW5lcnMoKTtcbiAgICAgICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5pbnB1dCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnR5cGUgPSAndGVsJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb2N1c0xpc3RlbmVyKSB0aGlzLmZvY3VzTGlzdGVuZXIoKTtcbiAgICAgICAgaWYgKHRoaXMuYmx1ckxpc3RlbmVyKSB0aGlzLmJsdXJMaXN0ZW5lcigpO1xuICAgICAgICBpZiAodGhpcy5rZXlkb3duTGlzdGVuZXIpIHRoaXMua2V5ZG93bkxpc3RlbmVyKCk7XG4gICAgICAgIGlmICh0aGlzLmtleXByZXNzTGlzdGVuZXIpIHRoaXMua2V5cHJlc3NMaXN0ZW5lcigpO1xuICAgICAgICBpZiAodGhpcy5pbnB1dExpc3RlbmVyKSB0aGlzLmlucHV0TGlzdGVuZXIoKTtcbiAgICAgICAgaWYgKHRoaXMucGFzdGVMaXN0ZW5lcikgdGhpcy5wYXN0ZUxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgb25LZXlkb3duRXZlbnRUZXN0KGU6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAgICAgY29uc3QgeyBrZXkgfSA9IGU7XG4gICAgICAgIGlmIChrZXkgPT0gJ1RhYicpIHtcbiAgICAgICAgICAgIC8vIEVzdGUgY8OzZGlnbyBmb2kgaW1wbGVtZW50YWRvIHBhcmEgY29ycmlnaXIgdW0gcHJvYmxlbWEgbm8gY29tcG9uZW50ZSBuYSB2OVxuICAgICAgICAgICAgLy8gRGV2ZSBzZXIgcmVtb3ZpZG8gYXNzaW0gcXVlIGF0dWFsaXphcm1vcyBvIFByaW1lTkcgcGFyYSBhIHYxMFxuICAgICAgICAgICAgY29uc3QgYWxsRm9jdXNhYmxlRWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHRoaXMuU0VMRUNUT1JTKTtcbiAgICAgICAgICAgIGxldCBuZXh0SXNGb2N1c2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ZvY3VzYWJsZTogc3RyaW5nO1xuICAgICAgICAgICAgbGV0IGZvcmNlQ2xvc2VNb2RhbCA9IHRydWU7XG4gICAgICAgICAgICBhbGxGb2N1c2FibGVFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlLnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChuZXh0SXNGb2N1c2FibGUgJiYgZWxlbWVudC5pZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c2FibGVFbGVtZW50KGVsZW1lbnQuaWQsIGZvcmNlQ2xvc2VNb2RhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0SXNGb2N1c2FibGUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBhY3RpdmVUYWdOYW1lID0gd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LnRhZ05hbWU7XG4gICAgICAgICAgICAgICAgaWYgKGUuc2hpZnRLZXkgJiYgZWxlbWVudC5pZCAmJiBlbGVtZW50LnRhZ05hbWUgPT09ICdJTlBVVCcgJiYgYWN0aXZlVGFnTmFtZSA9PSAnQlVUVE9OJykge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0ZvY3VzYWJsZSA9IGVsZW1lbnQuaWQ7XG4gICAgICAgICAgICAgICAgICAgIGZvcmNlQ2xvc2VNb2RhbCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmlkID09PSB0aGlzLmhvc3QuaW5wdXRJZCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNGb2N1c2FibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudChwcmV2aW91c0ZvY3VzYWJsZSwgZm9yY2VDbG9zZU1vZGFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlQ2xvc2VNb2RhbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgbmV4dElzRm9jdXNhYmxlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGUuc2hpZnRLZXkgJiYgZWxlbWVudC5pZCkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0ZvY3VzYWJsZSA9IGVsZW1lbnQuaWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZm9jdXNhYmxlRWxlbWVudChpZDogc3RyaW5nLCBoaWRlOiBib29sZWFuKSB7XG4gICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gd2luZG93LmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTtcbiAgICAgICAgaHRtbEVsZW1lbnQ/LmZvY3VzKCk7XG4gICAgICAgIGlmIChoaWRlKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3QuaGlkZU92ZXJsYXkoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuIl19
637
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FsZW5kYXItbWFzay9zcmMvbGliL2NhbGVuZGFyLW1hc2svY2FsZW5kYXItbWFzay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTVDOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBS0gsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixJQUFJLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFN0Isd0VBQXdFO0lBQ3hFLDhDQUE4QztJQUM5QyxTQUFTLEdBQUcsMEVBQTBFLENBQUM7SUFFdkY7Ozs7T0FJRztJQUVJLFFBQVEsR0FBRyxHQUFHLENBQUM7SUFFdEI7Ozs7O09BS0c7SUFFSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWxCLEtBQUssQ0FBTTtJQUNYLEtBQUssQ0FBb0I7SUFDekIsTUFBTSxDQUFXO0lBRWhCLEtBQUssQ0FBVTtJQUNmLElBQUksQ0FBTTtJQUNWLEtBQUssQ0FBUztJQUNkLGVBQWUsQ0FBTTtJQUNyQixlQUFlLENBQTRCO0lBQzNDLHNCQUFzQixDQUFNO0lBQzVCLEdBQUcsQ0FBVTtJQUNiLE1BQU0sQ0FBVTtJQUNoQixNQUFNLENBQU07SUFDWixhQUFhLENBQVU7SUFDdkIsU0FBUyxDQUFVO0lBQ25CLGNBQWMsQ0FBTTtJQUNwQixhQUFhLENBQVc7SUFDeEIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUVqQixhQUFhLENBQWM7SUFDM0IsWUFBWSxDQUFjO0lBQzFCLGVBQWUsQ0FBYztJQUM3QixnQkFBZ0IsQ0FBYztJQUM5QixhQUFhLENBQWM7SUFDM0IsYUFBYSxDQUFjO0lBRTNCLFlBQVk7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztRQUMxRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBRS9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUN4RSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzlFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQzFFLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDMUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFFBQVE7UUFDWCxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsR0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQVU7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUMxQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUNsQyxDQUFDO1lBRUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsQ0FBTTtRQUNyQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMvQixJQUNJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRO2dCQUNyQixDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFLLElBQUksQ0FBQyxLQUFnQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3pHLENBQUM7Z0JBQ0MsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ2hCLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEMsQ0FBQztZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEIsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRCxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7SUFFTSxTQUFTLENBQUMsQ0FBTTtRQUNuQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDL0IsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkQsSUFBSSxHQUFHLENBQUM7UUFDUixJQUFJLEtBQUssQ0FBQztRQUNWLElBQUksR0FBRyxDQUFDO1FBQ1IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUVoQyxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0MsR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNuQixLQUFLLEdBQUcsR0FBRyxFQUFFLEtBQUssQ0FBQztZQUNuQixHQUFHLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQztZQUVmLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNmLElBQUksR0FBRyxHQUFHLEtBQUssS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDcEIsS0FBSyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzNFLEdBQUcsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7Z0JBQzlDLENBQUM7Z0JBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNoQyxDQUFDO1lBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLFFBQVE7WUFDUixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQzthQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLFNBQVM7WUFDVCxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBTTtRQUNwQixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFcEMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsQ0FBQztRQUNOLElBQUksQ0FBQyxDQUFDO1FBQ04sSUFBSSxJQUFTLENBQUM7UUFFZCxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JFLFNBQVM7WUFDVCxPQUFPO1FBQ1gsQ0FBQzthQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLElBQUksR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsQ0FBQztZQUNMLENBQUM7WUFFRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2pDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUVELElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0QixDQUFDLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRWYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ25CLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRXhCLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsMkNBQTJDO3dCQUMzQyxNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7NEJBQ2YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDckIsQ0FBQyxDQUFDO3dCQUVGLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3pCLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNyQixDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQ0QsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzlCLEtBQUssT0FBTztnQkFDUixPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDbkUsS0FBSyxRQUFRLENBQUM7WUFDZCxLQUFLLFVBQVU7Z0JBQ1gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ3JCO2dCQUNJLE9BQU8sRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWU7UUFDM0IsNENBQTRDO1FBQzVDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQy9CLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBTSxDQUFDO1FBQ1gsSUFBSSxDQUFNLENBQUM7UUFDWCxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFFWixLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDeEMsT0FBTyxHQUFHLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDakMsQ0FBQyxHQUFHLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7d0JBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNuQixTQUFTLEdBQUcsQ0FBQyxDQUFDO3dCQUNkLE1BQU07b0JBQ1YsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNsQyxNQUFNO2dCQUNWLENBQUM7WUFDTCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsR0FBRyxFQUFFLENBQUM7Z0JBQ1YsQ0FBQztnQkFDRCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQzNCLFNBQVMsR0FBRyxDQUFDLENBQUM7Z0JBQ2xCLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQzthQUFNLElBQUksU0FBUyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDOUMsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDaEUsbURBQW1EO2dCQUNuRCx1Q0FBdUM7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUMxQixDQUFDO2dCQUNELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0oscURBQXFEO2dCQUNyRCxnREFBZ0Q7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzNELENBQUM7SUFFTSxZQUFZO1FBQ2YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBRXBDLFlBQVksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbEMsSUFBSSxHQUFRLENBQUM7UUFFYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBRW5DLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hDLE9BQU87WUFDWCxDQUFDO1lBQ0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsQ0FBQztRQUNMLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBVTtRQUMzQixJQUFJLElBQUksQ0FBQyxhQUFhO1lBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDOztZQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEtBQVU7UUFDL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPO1FBRXBDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDaEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRU0sV0FBVyxDQUFDLENBQU07UUFDckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxZQUFZLEtBQUssSUFBSSxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQjtRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3ZELENBQUM7SUFFTSxLQUFLO1FBQ1IsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sUUFBUTtRQUNaLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRS9DLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRztZQUNSLEdBQUcsRUFBRSxPQUFPO1NBQ2YsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN6QyxNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFeEIsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO1lBQzdCLENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUUxQyxJQUFJLElBQUksQ0FBQyxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUNqRCxDQUFDO2dCQUVELElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztZQUNMLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWpCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekMsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXhCLElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO2dCQUNYLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4QixDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYyxFQUFFLElBQWE7UUFDdkMsSUFBSSxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQztRQUV0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxZQUFZLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDckUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLEtBQUssR0FBRyxLQUFLLENBQUM7WUFDZCxHQUFHLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUU5QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDN0MsQ0FBQztpQkFBTSxJQUFLLElBQUksQ0FBQyxLQUFhLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO2dCQUNoRCxLQUFLLEdBQUksSUFBSSxDQUFDLEtBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pELEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDcEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUNsQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFFOUIsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3RDLENBQUM7UUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU8sY0FBYyxDQUFDLENBQVM7UUFDNUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBUTtRQUNyQixPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxNQUFNO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTyxRQUFRLENBQUMsR0FBUTtRQUNyQixPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFBRSxNQUFNO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTyxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQVc7UUFDckMsSUFBSSxDQUFNLENBQUM7UUFDWCxJQUFJLENBQU0sQ0FBQztRQUVYLElBQUksS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ1osT0FBTztRQUNYLENBQUM7UUFFRCxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV2QixLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDNUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLENBQUM7O29CQUFNLE1BQU07Z0JBRWIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsR0FBUTtRQUNuQixJQUFJLENBQU0sQ0FBQztRQUNYLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFNLENBQUM7UUFDWCxJQUFJLENBQU0sQ0FBQztRQUVYLEtBQUssQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbEIsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JCLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFFbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQy9DLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ1YsQ0FBQzs7b0JBQU0sTUFBTTtZQUNqQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxDQUFNO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV6QixJQUFJLGlCQUFpQixDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBRTFDLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNsRixtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNwQixPQUFPLEdBQUcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDcEQsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLE9BQU8sR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQ3pFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQztZQUNMLENBQUM7WUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQU0sRUFBRSxHQUFHLENBQUMsS0FBTSxDQUFDLENBQUM7Z0JBQ25DLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7b0JBQ3JCLE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLG1FQUFtRTtvQkFDdkgsT0FBTyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDakQsQ0FBQztZQUNMLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNWLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUVwQixPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEIsQ0FBQztZQUVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFNLEVBQUUsR0FBRyxDQUFDLEtBQU0sQ0FBQyxDQUFDO29CQUNuQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO3dCQUNyQixNQUFNLE9BQU8sR0FBRyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxtRUFBbUU7d0JBQ3ZILE9BQU8sSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2pELENBQUM7Z0JBQ0wsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ1YsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBZTtRQUN2QyxpQkFBaUI7UUFDakIsTUFBTSxPQUFPLEdBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUYsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFVLEVBQUUsR0FBUTtRQUNwQyxJQUFJLENBQUMsQ0FBQztRQUVOLEtBQUssQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNmLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QjtRQUM1QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckIsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUNyQyxVQUFVLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0MsSUFBSSxJQUFJLFVBQVUsRUFBRSxPQUFPLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDdEQsSUFBSSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLElBQUksSUFBSSxHQUFHLENBQUM7WUFDaEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pDLElBQUksSUFBSSxPQUFPLENBQUM7WUFDaEIsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksSUFBSSxLQUFLLENBQUM7WUFDbEIsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUVsQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDUCxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1RSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDL0QsT0FBTyxLQUFLLENBQUM7WUFDakIsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMzQyxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pELElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLGFBQWE7WUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBR0Qsa0JBQWtCLENBQUMsQ0FBZ0I7UUFDL0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNmLDZFQUE2RTtZQUM3RSxnRUFBZ0U7WUFDaEUsTUFBTSxvQkFBb0IsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksZUFBZSxHQUFHLEtBQUssQ0FBQztZQUM1QixJQUFJLGlCQUF5QixDQUFDO1lBQzlCLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQztZQUMzQixvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDZCxJQUFJLGVBQWUsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUM7d0JBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLGVBQWUsQ0FBQyxDQUFDO3dCQUNuRCxlQUFlLEdBQUcsS0FBSyxDQUFDO3dCQUN4QixDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ25CLE9BQU87b0JBQ1gsQ0FBQztnQkFDTCxDQUFDO2dCQUVELElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQztnQkFDM0QsSUFBSSxDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxPQUFPLElBQUksYUFBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUN2RixpQkFBaUIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO29CQUMvQixlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUM1QixDQUFDO2dCQUVELElBQUksT0FBTyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO29CQUNuQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7d0JBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQzt3QkFDMUQsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDO3dCQUNuQixlQUFlLEdBQUcsSUFBSSxDQUFDO3dCQUN2QixPQUFPO29CQUNYLENBQUM7b0JBQ0QsZUFBZSxHQUFHLElBQUksQ0FBQztnQkFDM0IsQ0FBQztxQkFBTSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO29CQUNsQyxpQkFBaUIsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLEVBQVUsRUFBRSxJQUFhO1FBQzdDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzt3R0E5cEJRLHFCQUFxQjs0RkFBckIscUJBQXFCOzs0RkFBckIscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwyQkFBMkI7b0JBQ3JDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjs4QkFlVSxRQUFRO3NCQURkLEtBQUs7Z0JBVUMsU0FBUztzQkFEZixLQUFLO2dCQTBsQk4sa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0NoZWNrZWQsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFJlbmRlcmVyMiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGlzTnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xyXG5cclxuLyoqXHJcbiAqIEBkZXByZWNhdGVkXHJcbiAqIEBzaW5jZSAxOS42LjBcclxuICogRmF2b3IgdXRpbGl6YXIgbyBjb21wb25lbnRlOiBzLWRhdGVwaWNrZXIsIHF1ZSDDqSBvIGNhbGVuZMOhcmlvIG9maWNpYWwgZG8gRGVzaWduIFN5c3RlbSBkYSBTZW5pb3IuXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvbiBEaXJldGl2YSBxdWUgYXBsaWNhIG3DoXNjYXJhIGRlIGVudHJhZGEgYSB1bSBjb21wb25lbnRlIGBwLWNhbGVuZGFyYCBkbyBQcmltZU5HLFxyXG4gKiBmb3JtYXRhbmRvIGF1dG9tYXRpY2FtZW50ZSBhIGRhdGEgY29uZm9ybWUgbyBmb3JtYXRvIGNvbmZpZ3VyYWRvIG5vIGNhbGVuZMOhcmlvLlxyXG4gKiBJbnRlcmNlcHRhIG9zIGV2ZW50b3MgZGUgdGVjbGFkbyBlIGlucHV0IGRvIGNhbXBvIGludGVybm8gZG8gY2FsZW5kYXIgcGFyYSBnYXJhbnRpclxyXG4gKiBxdWUgYXBlbmFzIGVudHJhZGFzIHbDoWxpZGFzIHNlamFtIGFjZWl0YXMuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHAtY2FsZW5kYXIgc0NhbGVuZGFyTWFzayBbKG5nTW9kZWwpXT1cImRhdGFcIiBkYXRlRm9ybWF0PVwiZGQvbW0veXlcIiAvPlxyXG4gKiBgYGBcclxuICpcclxuICogQGNhdGVnb3J5IElucHV0c1xyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ3AtY2FsZW5kYXJbc0NhbGVuZGFyTWFza10nLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTWFza0RpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkIHtcclxuICAgIGhvc3QgPSBpbmplY3QoQ2FsZW5kYXIpO1xyXG4gICAgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcclxuXHJcbiAgICAvLyBUT0RPOiBNdWRlaSB1bSBtb250ZSBkZSBjb2lzYSBlIHRlbSBxdWUgdGVzdGFyIHNlIGlzc28gYWluZGEgZnVuY2lvbmFcclxuICAgIC8vIFRPRE86IEFpbmRhIGVzdMOhIHNlbmRvIHVzYWRhIGVzdGEgZGlyZXRpdmE/XHJcbiAgICBTRUxFQ1RPUlMgPSAnYnV0dG9uLCBbaHJlZl0sIGlucHV0LCBzZWxlY3QsIHRleHRhcmVhLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIENhcmFjdGVyZSB1c2FkbyBjb21vIHBsYWNlaG9sZGVyIHBhcmEgYXMgcG9zacOnw7VlcyBhaW5kYSBuw6NvIHByZWVuY2hpZGFzIG5hIG3DoXNjYXJhLlxyXG4gICAgICpcclxuICAgICAqIEBkZWZhdWx0ICdfJ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNsb3RDaGFyID0gJ18nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIGxpbXBhIGF1dG9tYXRpY2FtZW50ZSBvIGNhbXBvIGNhc28gbyB2YWxvciBkaWdpdGFkb1xyXG4gICAgICogc2VqYSBpbnbDoWxpZG8gYW8gcGVyZGVyIG8gZm9jby5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGF1dG9DbGVhciA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyB2YWx1ZTogYW55O1xyXG4gICAgcHVibGljIGlucHV0PzogSFRNTElucHV0RWxlbWVudDtcclxuICAgIHB1YmxpYyBmaWxsZWQ/OiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgX21hc2s/OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGRlZnM6IGFueTtcclxuICAgIHByaXZhdGUgdGVzdHM/OiBhbnlbXTtcclxuICAgIHByaXZhdGUgcGFydGlhbFBvc2l0aW9uOiBhbnk7XHJcbiAgICBwcml2YXRlIGZpcnN0Tm9uTWFza1BvczogbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgIHByaXZhdGUgbGFzdFJlcXVpcmVkTm9uTWFza1BvczogYW55O1xyXG4gICAgcHJpdmF0ZSBsZW4/OiBudW1iZXI7XHJcbiAgICBwcml2YXRlIG9sZFZhbD86IHN0cmluZztcclxuICAgIHByaXZhdGUgYnVmZmVyOiBhbnk7XHJcbiAgICBwcml2YXRlIGRlZmF1bHRCdWZmZXI/OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIGZvY3VzVGV4dD86IHN0cmluZztcclxuICAgIHByaXZhdGUgY2FyZXRUaW1lb3V0SWQ6IGFueTtcclxuICAgIHByaXZhdGUgYW5kcm9pZENocm9tZT86IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIGZpcnN0VGltZSA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBmb2N1c0xpc3RlbmVyPzogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgYmx1ckxpc3RlbmVyPzogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUga2V5ZG93bkxpc3RlbmVyPzogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUga2V5cHJlc3NMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XHJcbiAgICBwcml2YXRlIGlucHV0TGlzdGVuZXI/OiAoKSA9PiB2b2lkO1xyXG4gICAgcHJpdmF0ZSBwYXN0ZUxpc3RlbmVyPzogKCkgPT4gdm9pZDtcclxuXHJcbiAgICBwcml2YXRlIHNldExpc3RlbmVycygpIHtcclxuICAgICAgICB0aGlzLmlucHV0ID0gdGhpcy5ob3N0LmlucHV0ZmllbGRWaWV3Q2hpbGQ/Lm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuaW5wdXQ/LnZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLmZvY3VzTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCAnZm9jdXMnLCAoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25JbnB1dEZvY3VzKCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuYmx1ckxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgJ2JsdXInLCAoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm9uSW5wdXRCbHVyKGV2ZW50KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0LCAna2V5ZG93bicsIChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMub25LZXlEb3duKGV2ZW50KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5rZXlwcmVzc0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgJ2tleXByZXNzJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbktleVByZXNzKGV2ZW50KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5pbnB1dExpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgJ2lucHV0JywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5vbklucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5wYXN0ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5pbnB1dCwgJ3Bhc3RlJywgKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZShldmVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDtcclxuICAgICAgICB0aGlzLmFuZHJvaWRDaHJvbWUgPSAvY2hyb21lL2kudGVzdCh1YSkgJiYgL2FuZHJvaWQvaS50ZXN0KHVhKTtcclxuXHJcbiAgICAgICAgdGhpcy5jcmVhdGVNYXNrRnJvbURhdGVGb3JtYXQoKTtcclxuICAgICAgICB0aGlzLmluaXRNYXNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IG1hc2soKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWFzayA/PyAnJztcclxuICAgIH1cclxuXHJcbiAgICBzZXQgbWFzayh2YWw6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX21hc2sgPSB2YWw7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdE1hc2soKTtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlID09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwoKTtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c1RleHQgPSB0aGlzLmlucHV0LnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbklucHV0Qmx1cihlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLmNoZWNrVmFsKCk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVGaWxsZWRTdGF0ZSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy52YWx1ZSAhPSB0aGlzLmZvY3VzVGV4dCkge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAhdGhpcy5pbnB1dD8uZGlzYWJsZWQgJiZcclxuICAgICAgICAgICAgICAgICh0aGlzLnZhbHVlID09PSB1bmRlZmluZWQgfHwgdGhpcy52YWx1ZSA9PT0gbnVsbCB8fCAodGhpcy52YWx1ZSBhcyBzdHJpbmcpLmluZGV4T2YodGhpcy5zbG90Q2hhcikgPj0gMClcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICBlLnRhcmdldC52YWx1ZSA9ICcnO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0LnVwZGF0ZU1vZGVsKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgICAgICBjb25zdCBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdIVE1MRXZlbnRzJyk7XHJcbiAgICAgICAgICAgIGV2ZW50LmluaXRFdmVudCgnY2hhbmdlJywgdHJ1ZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0Py5kaXNwYXRjaEV2ZW50KGV2ZW50KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uS2V5RG93bihlOiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5ob3N0LnJlYWRvbmx5SW5wdXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgayA9IGUud2hpY2ggfHwgZS5rZXlDb2RlO1xyXG4gICAgICAgIGNvbnN0IGlQaG9uZSA9IC9pcGhvbmUvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpO1xyXG4gICAgICAgIGxldCBwb3M7XHJcbiAgICAgICAgbGV0IGJlZ2luO1xyXG4gICAgICAgIGxldCBlbmQ7XHJcbiAgICAgICAgdGhpcy5vbGRWYWwgPSB0aGlzLmlucHV0Py52YWx1ZTtcclxuXHJcbiAgICAgICAgLy8gQmFja3NwYWNlLCBkZWxldGUsIGFuZCBlc2NhcGUgZ2V0IHNwZWNpYWwgdHJlYXRtZW50XHJcbiAgICAgICAgaWYgKGsgPT09IDggfHwgayA9PT0gNDYgfHwgKGlQaG9uZSAmJiBrID09PSAxMjcpKSB7XHJcbiAgICAgICAgICAgIHBvcyA9IHRoaXMuY2FyZXQoKTtcclxuICAgICAgICAgICAgYmVnaW4gPSBwb3M/LmJlZ2luO1xyXG4gICAgICAgICAgICBlbmQgPSBwb3M/LmVuZDtcclxuXHJcbiAgICAgICAgICAgIGlmIChiZWdpbiAmJiBlbmQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChlbmQgLSBiZWdpbiA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGJlZ2luID0gayAhPT0gNDYgPyB0aGlzLnNlZWtQcmV2KGJlZ2luKSA6IChlbmQgPSB0aGlzLnNlZWtOZXh0KGJlZ2luIC0gMSkpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVuZCA9IGsgPT09IDQ2ID8gdGhpcy5zZWVrTmV4dChlbmQpIDogZW5kO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoYmVnaW4sIGVuZCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0TChiZWdpbiwgZW5kIC0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgPT09IDEzKSB7XHJcbiAgICAgICAgICAgIC8vIEVudGVyXHJcbiAgICAgICAgICAgIHRoaXMub25JbnB1dEJsdXIoZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTW9kZWwoZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChrID09PSAyNykge1xyXG4gICAgICAgICAgICAvLyBFc2NhcGVcclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQgJiYgdGhpcy5mb2N1c1RleHQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmZvY3VzVGV4dDtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FyZXQoMCwgdGhpcy5jaGVja1ZhbCgpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGUpO1xyXG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbktleVByZXNzKGU6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmhvc3QucmVhZG9ubHlJbnB1dCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBjb25zdCBrID0gZS53aGljaCB8fCBlLmtleUNvZGU7XHJcbiAgICAgICAgY29uc3QgcG9zID0gdGhpcy5jYXJldCgpO1xyXG4gICAgICAgIGxldCBwO1xyXG4gICAgICAgIGxldCBjO1xyXG4gICAgICAgIGxldCBuZXh0OiBhbnk7XHJcblxyXG4gICAgICAgIGlmIChlLmN0cmxLZXkgfHwgZS5hbHRLZXkgfHwgZS5tZXRhS2V5IHx8IGsgPCAzMiB8fCAoayA+IDM0ICYmIGsgPCA0MSkpIHtcclxuICAgICAgICAgICAgLy8gSWdub3JlXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9IGVsc2UgaWYgKGsgJiYgayAhPT0gMTMpIHtcclxuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChwb3M/LmVuZCkgJiYgIWlzTnVsbE9yVW5kZWZpbmVkKHBvcz8uYmVnaW4pKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocG9zLmVuZCAtIHBvcy5iZWdpbiAhPT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIocG9zLmJlZ2luLCBwb3MuZW5kKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoaWZ0TChwb3MuYmVnaW4sIHBvcy5lbmQgLSAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChwb3M/LmJlZ2luKSkge1xyXG4gICAgICAgICAgICAgICAgcCA9IHRoaXMuc2Vla05leHQocG9zLmJlZ2luIC0gMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChwIDwgKHRoaXMubGVuID8/IDApKSB7XHJcbiAgICAgICAgICAgICAgICBjID0gU3RyaW5nLmZyb21DaGFyQ29kZShrKTtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzPy5bcF0udGVzdChjKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hpZnRSKHApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltwXSA9IGM7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIG5leHQgPSB0aGlzLnNlZWtOZXh0KHApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICBpZiAoL2FuZHJvaWQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhdGggZm9yIENTUCBWaW9sYXRpb24gb24gRmlyZUZveCBPUyAxLjFcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJveHkgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KG5leHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChwcm94eSwgMCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYXJldChuZXh0KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVNb2RlbChlKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUZpbGxlZFN0YXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVDb21wbGV0ZU1hc2soKTogc3RyaW5nIHtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMuaG9zdC5zZWxlY3Rpb25Nb2RlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ3JhbmdlJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm1hc2sgKyBgICR7dGhpcy5ob3N0LnJhbmdlU2VwYXJhdG9yfSBgICsgdGhpcy5tYXNrO1xyXG4gICAgICAgICAgICBjYXNlICdzaW5nbGUnOlxyXG4gICAgICAgICAgICBjYXNlICdtdWx0aXBsZSc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tYXNrO1xyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2hlY2tWYWwoYWxsb3c/OiBib29sZWFuKSB7XHJcbiAgICAgICAgLy8gVHJ5IHRvIHBsYWNlIGNoYXJhY3RlcnMgd2hlcmUgdGhleSBiZWxvbmdcclxuICAgICAgICBjb25zdCB0ZXN0ID0gdGhpcy5pbnB1dD8udmFsdWU7XHJcbiAgICAgICAgbGV0IGxhc3RNYXRjaCA9IC0xO1xyXG4gICAgICAgIGxldCBpOiBhbnk7XHJcbiAgICAgICAgbGV0IGM6IGFueTtcclxuICAgICAgICBsZXQgcG9zID0gMDtcclxuXHJcbiAgICAgICAgZm9yIChpID0gMDsgaSA8ICh0aGlzLmxlbiA/PyAwKTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzPy5baV0pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYnVmZmVyW2ldID0gdGhpcy5nZXRQbGFjZWhvbGRlcihpKTtcclxuICAgICAgICAgICAgICAgIHdoaWxlIChwb3MrKyA8ICh0ZXN0Py5sZW5ndGggPz8gMCkpIHtcclxuICAgICAgICAgICAgICAgICAgICBjID0gdGVzdD8uY2hhckF0KHBvcyAtIDEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzW2ldLnRlc3QoYykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSBjO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXN0TWF0Y2ggPSBpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAocG9zID4gKHRlc3Q/Lmxlbmd0aCA/PyAwKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJCdWZmZXIoaSArIDEsIHRoaXMubGVuKTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmJ1ZmZlcltpXSA9PT0gdGVzdD8uY2hhckF0KHBvcykpIHtcclxuICAgICAgICAgICAgICAgICAgICBwb3MrKztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChpIDwgdGhpcy5wYXJ0aWFsUG9zaXRpb24pIHtcclxuICAgICAgICAgICAgICAgICAgICBsYXN0TWF0Y2ggPSBpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChhbGxvdykge1xyXG4gICAgICAgICAgICB0aGlzLndyaXRlQnVmZmVyKCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChsYXN0TWF0Y2ggKyAxIDwgdGhpcy5wYXJ0aWFsUG9zaXRpb24pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuYXV0b0NsZWFyIHx8IHRoaXMuYnVmZmVyLmpvaW4oJycpID09PSB0aGlzLmRlZmF1bHRCdWZmZXIpIHtcclxuICAgICAgICAgICAgICAgIC8vIEludmFsaWQgdmFsdWUuIFJlbW92ZSBpdCBhbmQgcmVwbGFjZSBpdCB3aXRoIHRoZVxyXG4gICAgICAgICAgICAgICAgLy8gbWFzaywgd2hpY2ggaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pbnB1dD8udmFsdWUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlucHV0LnZhbHVlID0gJyc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyQnVmZmVyKDAsIHRoaXMubGVuKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIEludmFsaWQgdmFsdWUsIGJ1dCB3ZSBvcHQgdG8gc2hvdyB0aGUgdmFsdWUgdG8gdGhlXHJcbiAgICAgICAgICAgICAgICAvLyB1c2VyIGFuZCBhbGxvdyB0aGVtIHRvIGNvcnJlY3QgdGhlaXIgbWlzdGFrZS5cclxuICAgICAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMud3JpdGVCdWZmZXIoKTtcclxuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmlucHV0KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC52YWx1ZSA9IHRoaXMuaW5wdXQudmFsdWUuc3Vic3RyaW5nKDAsIGxhc3RNYXRjaCArIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJ0aWFsUG9zaXRpb24gPyBpIDogdGhpcy5maXJzdE5vbk1hc2tQb3M7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uSW5wdXRGb2N1cygpIHtcclxuICAgICAgICBpZiAodGhpcy5ob3N0LnJlYWRvbmx5SW5wdXQpIHJldHVybjtcclxuXHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY2FyZXRUaW1lb3V0SWQpO1xyXG4gICAgICAgIGxldCBwb3M6IGFueTtcclxuXHJcbiAgICAgICAgdGhpcy5mb2N1c1RleHQgPSB0aGlzLmlucHV0Py52YWx1ZTtcclxuXHJcbiAgICAgICAgcG9zID0gdGhpcy5jaGVja1ZhbCgpO1xyXG5cclxuICAgICAgICB0aGlzLmNhcmV0VGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgICAgICBpZiAocG9zID09IHRoaXMubWFzay5yZXBsYWNlKCc/JywgJycpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldCgwLCBwb3MpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXJldChwb3MpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMTApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbklucHV0Q2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgICAgICBpZiAodGhpcy5hbmRyb2lkQ2hyb21lKSB0aGlzLmhhbmRsZUFuZHJvaWRJbnB1dChldmVudCk7XHJcbiAgICAgICAgZWxzZSB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGlmICh0aGlzLmhvc3QucmVhZG9ubHlJbnB1dCkgcmV0dXJuO1xyXG5cclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcG9zID0gdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuICAgICAgICAgICAgdGhpcy5jYXJldChwb3MpO1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZU1vZGVsKGV2ZW50KTtcclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlTW9kZWwoZTogYW55KSB7XHJcbiAgICAgICAgY29uc3QgdXBkYXRlZFZhbHVlID0gZS50YXJnZXQudmFsdWU7XHJcbiAgICAgICAgaWYgKHVwZGF0ZWRWYWx1ZSAhPT0gbnVsbCB8fCB1cGRhdGVkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdXBkYXRlZFZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmhvc3Qub25Vc2VySW5wdXQoZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVGaWxsZWRTdGF0ZSgpIHtcclxuICAgICAgICB0aGlzLmZpbGxlZCA9IHRoaXMuaW5wdXQgJiYgdGhpcy5pbnB1dC52YWx1ZSAhPSAnJztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXMoKSB7XHJcbiAgICAgICAgdGhpcy5pbnB1dD8uZm9jdXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRNYXNrKCkge1xyXG4gICAgICAgIGNvbnN0IGNvbXBsZXRlTWFzayA9IHRoaXMuY3JlYXRlQ29tcGxldGVNYXNrKCk7XHJcblxyXG4gICAgICAgIHRoaXMudGVzdHMgPSBbXTtcclxuICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IGNvbXBsZXRlTWFzay5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5sZW4gPSBjb21wbGV0ZU1hc2subGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuZmlyc3ROb25NYXNrUG9zID0gbnVsbDtcclxuICAgICAgICB0aGlzLmRlZnMgPSB7XHJcbiAgICAgICAgICAgICc5JzogJ1swLTldJyxcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBtYXNrVG9rZW5zID0gY29tcGxldGVNYXNrLnNwbGl0KCcnKTtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgYyA9IG1hc2tUb2tlbnNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoYyA9PSAnPycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubGVuLS07XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnRpYWxQb3NpdGlvbiA9IGk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZWZzW2NdKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRlc3RzLnB1c2gobmV3IFJlZ0V4cCh0aGlzLmRlZnNbY10pKTtcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maXJzdE5vbk1hc2tQb3MgPT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpcnN0Tm9uTWFza1BvcyA9IHRoaXMudGVzdHMubGVuZ3RoIC0gMTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoaSA8IHRoaXMucGFydGlhbFBvc2l0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0UmVxdWlyZWROb25NYXNrUG9zID0gdGhpcy50ZXN0cy5sZW5ndGggLSAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50ZXN0cy5wdXNoKG51bGwpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmJ1ZmZlciA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1hc2tUb2tlbnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgYyA9IG1hc2tUb2tlbnNbaV07XHJcblxyXG4gICAgICAgICAgICBpZiAoYyAhPSAnPycpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZnNbY10pIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSkpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlci5wdXNoKGMpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRlZmF1bHRCdWZmZXIgPSB0aGlzLmJ1ZmZlci5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNhcmV0KGZpcnN0PzogbnVtYmVyLCBsYXN0PzogbnVtYmVyKSB7XHJcbiAgICAgICAgbGV0IHJhbmdlLCBiZWdpbiwgZW5kO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuaW5wdXQ/Lm9mZnNldFBhcmVudCB8fCB0aGlzLmlucHV0ICE9PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIHJldHVybiB7IGJlZ2luOiAwLCBlbmQ6IDAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0eXBlb2YgZmlyc3QgPT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgYmVnaW4gPSBmaXJzdDtcclxuICAgICAgICAgICAgZW5kID0gdHlwZW9mIGxhc3QgPT09ICdudW1iZXInID8gbGFzdCA6IGJlZ2luO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2UoYmVnaW4sIGVuZCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoKHRoaXMuaW5wdXQgYXMgYW55KVsnY3JlYXRlVGV4dFJhbmdlJ10pIHtcclxuICAgICAgICAgICAgICAgIHJhbmdlID0gKHRoaXMuaW5wdXQgYXMgYW55KVsnY3JlYXRlVGV4dFJhbmdlJ10oKTtcclxuICAgICAgICAgICAgICAgIHJhbmdlLmNvbGxhcHNlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2UubW92ZUVuZCgnY2hhcmFjdGVyJywgZW5kKTtcclxuICAgICAgICAgICAgICAgIHJhbmdlLm1vdmVTdGFydCgnY2hhcmFjdGVyJywgYmVnaW4pO1xyXG4gICAgICAgICAgICAgICAgcmFuZ2Uuc2VsZWN0KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBiZWdpbiA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcbiAgICAgICAgICAgIGVuZCA9IHRoaXMuaW5wdXQuc2VsZWN0aW9uRW5kO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHsgYmVnaW46IGJlZ2luLCBlbmQ6IGVuZCB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHsgYmVnaW46IGZpcnN0ID8/IDAsIGVuZDogbGFzdCA/PyAwIH07XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRQbGFjZWhvbGRlcihpOiBudW1iZXIpIHtcclxuICAgICAgICBpZiAoaSA8IHRoaXMuc2xvdENoYXIubGVuZ3RoKSByZXR1cm4gdGhpcy5zbG90Q2hhci5jaGFyQXQoaSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2xvdENoYXIuY2hhckF0KDApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2Vla05leHQocG9zOiBhbnkpIHtcclxuICAgICAgICB3aGlsZSAoKytwb3MgPCAodGhpcy5sZW4gPz8gMCkpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMudGVzdHM/Lltwb3NdKSBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHBvcztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNlZWtQcmV2KHBvczogYW55KSB7XHJcbiAgICAgICAgd2hpbGUgKC0tcG9zID49IDAgJiYgIXRoaXMudGVzdHM/Lltwb3NdKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzPy5bcG9zXSkgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBwb3M7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzaGlmdEwoYmVnaW46IG51bWJlciwgZW5kOiBudW1iZXIpIHtcclxuICAgICAgICBsZXQgaTogYW55O1xyXG4gICAgICAgIGxldCBqOiBhbnk7XHJcblxyXG4gICAgICAgIGlmIChiZWdpbiA8IDApIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoZW5kKTtcclxuXHJcbiAgICAgICAgZm9yIChpID0gYmVnaW47IGkgPCAodGhpcy5sZW4gPz8gMCk7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cz8uW2ldKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoaiA8ICh0aGlzLmxlbiA/PyAwKSAmJiB0aGlzLnRlc3RzW2ldLnRlc3QodGhpcy5idWZmZXJbal0pKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSB0aGlzLmJ1ZmZlcltqXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltqXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICAgICAgaiA9IHRoaXMuc2Vla05leHQoaik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy53cml0ZUJ1ZmZlcigpO1xyXG4gICAgICAgIGlmICghaXNOdWxsT3JVbmRlZmluZWQodGhpcy5maXJzdE5vbk1hc2tQb3MpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY2FyZXQoTWF0aC5tYXgodGhpcy5maXJzdE5vbk1hc2tQb3MsIGJlZ2luKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2hpZnRSKHBvczogYW55KSB7XHJcbiAgICAgICAgbGV0IGk6IGFueTtcclxuICAgICAgICBsZXQgYyA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIocG9zKTtcclxuICAgICAgICBsZXQgajogYW55O1xyXG4gICAgICAgIGxldCB0OiBhbnk7XHJcblxyXG4gICAgICAgIGZvciAoaSA9IHBvczsgaSA8ICh0aGlzLmxlbiA/PyAwKTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnRlc3RzPy5baV0pIHtcclxuICAgICAgICAgICAgICAgIGogPSB0aGlzLnNlZWtOZXh0KGkpO1xyXG4gICAgICAgICAgICAgICAgdCA9IHRoaXMuYnVmZmVyW2ldO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5idWZmZXJbaV0gPSBjO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChqIDwgKHRoaXMubGVuID8/IDApICYmIHRoaXMudGVzdHNbal0udGVzdCh0KSkge1xyXG4gICAgICAgICAgICAgICAgICAgIGMgPSB0O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaGFuZGxlQW5kcm9pZElucHV0KGU6IGFueSkge1xyXG4gICAgICAgIGNvbnN0IGN1clZhbCA9IHRoaXMuaW5wdXQ/LnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IHBvcyA9IHRoaXMuY2FyZXQoKTtcclxuXHJcbiAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHBvcz8uYmVnaW4pKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm9sZFZhbCAmJiB0aGlzLm9sZFZhbC5sZW5ndGggJiYgdGhpcy5vbGRWYWwubGVuZ3RoID4gKGN1clZhbD8ubGVuZ3RoID8/IDApKSB7XHJcbiAgICAgICAgICAgIC8vIEEgZGVsZXRpb24gb3IgYmFja3NwYWNlIGhhcHBlbmVkXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tWYWwodHJ1ZSk7XHJcbiAgICAgICAgICAgIHdoaWxlIChwb3M/LmJlZ2luID4gMCAmJiAhdGhpcy50ZXN0cz8uW3Bvcy5iZWdpbiAtIDFdKSB7XHJcbiAgICAgICAgICAgICAgICBwb3MuYmVnaW4tLTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAocG9zLmJlZ2luID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICB3aGlsZSAocG9zLmJlZ2luIDwgKHRoaXMuZmlyc3ROb25NYXNrUG9zID8/IDApICYmICF0aGlzLnRlc3RzPy5bcG9zLmJlZ2luXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBvcy5iZWdpbisrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2FyZXQocG9zLmJlZ2luISwgcG9zLmJlZ2luISk7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0NvbXBsZXRlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VudFZhbCA9IGN1clZhbD8ucmVwbGFjZSh0aGlzLnNsb3RDaGFyLCAnJyk7IC8vIExpbXBhIG9zIGNhcmFjdGVyZXMgcGxhY2Vob2xkZXJzIGV4dHJhcyBjYXNvIGVsZSBlc3RlamEgY29tcGxldG9cclxuICAgICAgICAgICAgICAgICAgICBzZW50VmFsICYmIHRoaXMudXBkYXRlQ2FsZW5kYXJWYWx1ZShzZW50VmFsKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5jaGVja1ZhbCh0cnVlKTtcclxuXHJcbiAgICAgICAgICAgIHdoaWxlIChwb3MuYmVnaW4gPCAodGhpcy5sZW4gPz8gMCkgJiYgIXRoaXMudGVzdHM/Lltwb3MuYmVnaW5dKSB7XHJcbiAgICAgICAgICAgICAgICBwb3MuYmVnaW4rKztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZChwb3MuYmVnaW4pKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhcmV0KHBvcy5iZWdpbiEsIHBvcy5iZWdpbiEpO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzQ29tcGxldGVkKCkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VudFZhbCA9IGN1clZhbD8ucmVwbGFjZSh0aGlzLnNsb3RDaGFyLCAnJyk7IC8vIExpbXBhIG9zIGNhcmFjdGVyZXMgcGxhY2Vob2xkZXJzIGV4dHJhcyBjYXNvIGVsZSBlc3RlamEgY29tcGxldG9cclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VudFZhbCAmJiB0aGlzLnVwZGF0ZUNhbGVuZGFyVmFsdWUoc2VudFZhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSwgMCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB1cGRhdGVDYWxlbmRhclZhbHVlKHNlbnRWYWw6IHN0cmluZykge1xyXG4gICAgICAgIC8vIFRPRE8gdmVyaWZpY2FyXHJcbiAgICAgICAgY29uc3QgZGF0ZVZhbCA9IDxEYXRlPnRoaXMuaG9zdC5wYXJzZVZhbHVlRnJvbVN0cmluZyhzZW50VmFsKTtcclxuICAgICAgICBpZiAodGhpcy5ob3N0LmlzU2VsZWN0YWJsZShkYXRlVmFsLmdldERhdGUoKSwgZGF0ZVZhbC5nZXRNb250aCgpLCBkYXRlVmFsLmdldEZ1bGxZZWFyKCksIGZhbHNlKSkge1xyXG4gICAgICAgICAgICB0aGlzLmhvc3QudXBkYXRlTW9kZWwoc2VudFZhbCk7XHJcbiAgICAgICAgICAgIHRoaXMuaG9zdC51cGRhdGVVSSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNsZWFyQnVmZmVyKHN0YXJ0OiBhbnksIGVuZDogYW55KSB7XHJcbiAgICAgICAgbGV0IGk7XHJcblxyXG4gICAgICAgIGZvciAoaSA9IHN0YXJ0OyBpIDwgZW5kICYmIGkgPCAodGhpcy5sZW4gPz8gMCk7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cz8uW2ldKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmJ1ZmZlcltpXSA9IHRoaXMuZ2V0UGxhY2Vob2xkZXIoaSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB3cml0ZUJ1ZmZlcigpIHtcclxuICAgICAgICBpZiAoIWlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuaW5wdXQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWUgPSB0aGlzLmJ1ZmZlci5qb2luKCcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVNYXNrRnJvbURhdGVGb3JtYXQoKSB7XHJcbiAgICAgICAgY29uc3QgY2FsZW5kYXIgPSB0aGlzLmhvc3Q7XHJcbiAgICAgICAgbGV0IG1hc2sgPSB0aGlzLmF1dG9DbGVhciA/ICc/JyA6ICcnO1xyXG5cclxuICAgICAgICBpZiAoIWNhbGVuZGFyLnRpbWVPbmx5KSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRlRm9ybWF0ID0gY2FsZW5kYXIuZGF0ZUZvcm1hdDtcclxuICAgICAgICAgICAgZGF0ZUZvcm1hdCA9IGRhdGVGb3JtYXQ/LnJlcGxhY2UoL3kvZywgJ3l5Jyk7XHJcbiAgICAgICAgICAgIG1hc2sgKz0gZGF0ZUZvcm1hdD8ucmVwbGFjZSgvW14vKiwuXFwtK1xcW1xcXVxcXFxdL2csICc5Jyk7XHJcbiAgICAgICAgICAgIGlmIChjYWxlbmRhci5zaG93VGltZSkge1xyXG4gICAgICAgICAgICAgICAgbWFzayArPSAnICc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjYWxlbmRhci5zaG93VGltZSB8fCBjYWxlbmRhci50aW1lT25seSkge1xyXG4gICAgICAgICAgICBtYXNrICs9ICc5OTo5OSc7XHJcbiAgICAgICAgICAgIGlmIChjYWxlbmRhci5zaG93U2Vjb25kcykge1xyXG4gICAgICAgICAgICAgICAgbWFzayArPSAnOjk5JztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fbWFzayA9IG1hc2s7XHJcblxyXG4gICAgICAgIHRoaXMuaW5pdE1hc2soKTtcclxuICAgIH1cclxuXHJcbiAgICBpc0NvbXBsZXRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gdGhpcy5maXJzdE5vbk1hc2tQb3MgPz8gMDsgaSA8PSB0aGlzLmxhc3RSZXF1aXJlZE5vbk1hc2tQb3M7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAodGhpcy50ZXN0cz8uW2ldICYmIHRoaXMuYnVmZmVyW2ldID09PSB0aGlzLmdldFBsYWNlaG9sZGVyKGkpKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5ob3N0LmlucHV0ZmllbGRWaWV3Q2hpbGQgJiYgdGhpcy5maXJzdFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJzdFRpbWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zZXRMaXN0ZW5lcnMoKTtcclxuICAgICAgICAgICAgaWYgKCFpc051bGxPclVuZGVmaW5lZCh0aGlzLmlucHV0KSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbnB1dC50eXBlID0gJ3RlbCc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9jdXNMaXN0ZW5lcikgdGhpcy5mb2N1c0xpc3RlbmVyKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuYmx1ckxpc3RlbmVyKSB0aGlzLmJsdXJMaXN0ZW5lcigpO1xyXG4gICAgICAgIGlmICh0aGlzLmtleWRvd25MaXN0ZW5lcikgdGhpcy5rZXlkb3duTGlzdGVuZXIoKTtcclxuICAgICAgICBpZiAodGhpcy5rZXlwcmVzc0xpc3RlbmVyKSB0aGlzLmtleXByZXNzTGlzdGVuZXIoKTtcclxuICAgICAgICBpZiAodGhpcy5pbnB1dExpc3RlbmVyKSB0aGlzLmlucHV0TGlzdGVuZXIoKTtcclxuICAgICAgICBpZiAodGhpcy5wYXN0ZUxpc3RlbmVyKSB0aGlzLnBhc3RlTGlzdGVuZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5ZG93bkV2ZW50VGVzdChlOiBLZXlib2FyZEV2ZW50KSB7XHJcbiAgICAgICAgY29uc3QgeyBrZXkgfSA9IGU7XHJcbiAgICAgICAgaWYgKGtleSA9PSAnVGFiJykge1xyXG4gICAgICAgICAgICAvLyBFc3RlIGPDs2RpZ28gZm9pIGltcGxlbWVudGFkbyBwYXJhIGNvcnJpZ2lyIHVtIHByb2JsZW1hIG5vIGNvbXBvbmVudGUgbmEgdjlcclxuICAgICAgICAgICAgLy8gRGV2ZSBzZXIgcmVtb3ZpZG8gYXNzaW0gcXVlIGF0dWFsaXphcm1vcyBvIFByaW1lTkcgcGFyYSBhIHYxMFxyXG4gICAgICAgICAgICBjb25zdCBhbGxGb2N1c2FibGVFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwodGhpcy5TRUxFQ1RPUlMpO1xyXG4gICAgICAgICAgICBsZXQgbmV4dElzRm9jdXNhYmxlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGxldCBwcmV2aW91c0ZvY3VzYWJsZTogc3RyaW5nO1xyXG4gICAgICAgICAgICBsZXQgZm9yY2VDbG9zZU1vZGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgYWxsRm9jdXNhYmxlRWxlbWVudHMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFlLnNoaWZ0S2V5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHRJc0ZvY3VzYWJsZSAmJiBlbGVtZW50LmlkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudChlbGVtZW50LmlkLCBmb3JjZUNsb3NlTW9kYWwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0SXNGb2N1c2FibGUgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGxldCBhY3RpdmVUYWdOYW1lID0gd2luZG93LmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LnRhZ05hbWU7XHJcbiAgICAgICAgICAgICAgICBpZiAoZS5zaGlmdEtleSAmJiBlbGVtZW50LmlkICYmIGVsZW1lbnQudGFnTmFtZSA9PT0gJ0lOUFVUJyAmJiBhY3RpdmVUYWdOYW1lID09ICdCVVRUT04nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNGb2N1c2FibGUgPSBlbGVtZW50LmlkO1xyXG4gICAgICAgICAgICAgICAgICAgIGZvcmNlQ2xvc2VNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChlbGVtZW50LmlkID09PSB0aGlzLmhvc3QuaW5wdXRJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c0ZvY3VzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnQocHJldmlvdXNGb2N1c2FibGUsIGZvcmNlQ2xvc2VNb2RhbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yY2VDbG9zZU1vZGFsID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBuZXh0SXNGb2N1c2FibGUgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLnNoaWZ0S2V5ICYmIGVsZW1lbnQuaWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBwcmV2aW91c0ZvY3VzYWJsZSA9IGVsZW1lbnQuaWQ7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZm9jdXNhYmxlRWxlbWVudChpZDogc3RyaW5nLCBoaWRlOiBib29sZWFuKSB7XHJcbiAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpO1xyXG4gICAgICAgIGh0bWxFbGVtZW50Py5mb2N1cygpO1xyXG4gICAgICAgIGlmIChoaWRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaG9zdC5oaWRlT3ZlcmxheSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
@@ -1,18 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { CalendarMaskDirective } from './calendar-mask.directive';
4
3
  import * as i0 from "@angular/core";
5
4
  export class CalendarMaskModule {
6
5
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, declarations: [CalendarMaskDirective], imports: [CommonModule], exports: [CalendarMaskDirective] });
8
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, imports: [CommonModule] });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, imports: [CalendarMaskDirective], exports: [CalendarMaskDirective] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule });
9
8
  }
10
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CalendarMaskModule, decorators: [{
11
10
  type: NgModule,
12
11
  args: [{
13
- declarations: [CalendarMaskDirective],
14
- imports: [CommonModule],
12
+ imports: [CalendarMaskDirective],
15
13
  exports: [CalendarMaskDirective],
16
14
  }]
17
15
  }] });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbWFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FsZW5kYXItbWFzay9zcmMvbGliL2NhbGVuZGFyLW1hc2svY2FsZW5kYXItbWFzay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxrQkFBa0I7d0dBQWxCLGtCQUFrQjt5R0FBbEIsa0JBQWtCLGlCQUpaLHFCQUFxQixhQUMxQixZQUFZLGFBQ1oscUJBQXFCO3lHQUV0QixrQkFBa0IsWUFIakIsWUFBWTs7NEZBR2Isa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBDYWxlbmRhck1hc2tEaXJlY3RpdmUgfSBmcm9tICcuL2NhbGVuZGFyLW1hc2suZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtDYWxlbmRhck1hc2tEaXJlY3RpdmVdLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICAgIGV4cG9ydHM6IFtDYWxlbmRhck1hc2tEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhck1hc2tNb2R1bGUge31cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItbWFzay5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FsZW5kYXItbWFzay9zcmMvbGliL2NhbGVuZGFyLW1hc2svY2FsZW5kYXItbWFzay5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFPLGtCQUFrQjt3R0FBbEIsa0JBQWtCO3lHQUFsQixrQkFBa0IsWUFIakIscUJBQXFCLGFBQ3JCLHFCQUFxQjt5R0FFdEIsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ2FsZW5kYXJNYXNrRGlyZWN0aXZlIH0gZnJvbSAnLi9jYWxlbmRhci1tYXNrLmRpcmVjdGl2ZSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW0NhbGVuZGFyTWFza0RpcmVjdGl2ZV0sXHJcbiAgICBleHBvcnRzOiBbQ2FsZW5kYXJNYXNrRGlyZWN0aXZlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTWFza01vZHVsZSB7fVxyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component, ContentChildren, Input } from '@angular/core';
2
2
  import { TemplateDirective } from '@seniorsistemas/angular-components/template';
3
+ import { NgStyle, NgTemplateOutlet } from '@angular/common';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
5
  /**
6
6
  * @description Componente de cartão com suporte a banner, cabeçalho (título, subtítulo e ícone)
7
7
  * e templates customizáveis para cabeçalho, corpo e rodapé via `TemplateDirective`.
@@ -78,11 +78,11 @@ export class CardComponent {
78
78
  });
79
79
  }
80
80
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
81
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, selector: "s-card", inputs: { bannerImage: "bannerImage", fullWidth: "fullWidth", title: "title", subtitle: "subtitle", icon: "icon" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div\n class=\"card\"\n [class.card--full-width]=\"fullWidth\"\n>\n @if (showBanner) {\n <div\n class=\"banner\"\n [ngStyle]=\"{ 'background-image': 'url(' + bannerImage + ')' }\"\n ></div>\n }\n\n <!-- @if (hasCustomTemplates) {\n @if (headerTemplate) {\n <div class=\"header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n }\n @if (bodyTemplate) {\n <div class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n </div>\n }\n @if (footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n } @else {\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n } -->\n\n @if(hasHeader) {\n <div class=\"header\">\n @if(headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n }\n @if(!headerTemplate) {\n <div class=\"header-content\">\n <div class=\"header-icon\" *ngIf=\"icon\">\n <i [class]=\"icon\"></i>\n </div>\n <div>\n <div class=\"header-title\" *ngIf=\"title\">\n {{ title }}\n </div>\n <div class=\"header-subtitle\" *ngIf=\"subtitle\">\n {{ subtitle }}\n </div>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"body\">\n @if(bodyTemplate) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n }@else {\n <ng-content></ng-content>\n }\n </div>\n\n @if(footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n</div>\n", styles: [".card{display:inline-flex;flex-direction:column;background-color:#fff;border-radius:4px;box-shadow:0 1px 5px #00000040;overflow:hidden}.card--full-width{width:100%}.card .banner{background-repeat:no-repeat;background-size:cover;height:150px;width:100%}.card .header{padding:16px 12px}.card .header-content{display:flex;gap:12px}.card .header-title{color:#212533;font-size:14px;font-style:normal;font-weight:700}.card .header-subtitle{color:#6e7280;font-size:14px;font-style:normal;font-weight:400}.card .header-icon{border-radius:50%;background-color:#dedce5;width:3em;display:flex;align-items:center;justify-content:center;min-height:3em}.card .body,.card .footer{padding:16px}.card .header+.body,.card .body+.footer{border-top:1px solid #c1c1cc}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CardComponent, isStandalone: true, selector: "s-card", inputs: { bannerImage: "bannerImage", fullWidth: "fullWidth", title: "title", subtitle: "subtitle", icon: "icon" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], ngImport: i0, template: "<div\r\n class=\"inline-flex flex-col bg-grayscale-0 rounded-medium shadow-[0px_1px_5px_0px_#00000040] overflow-hidden\"\r\n [class.w-full]=\"fullWidth\"\r\n>\r\n @if (showBanner) {\r\n <div\r\n class=\"bg-no-repeat bg-cover h-[150px] w-full\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + bannerImage + ')' }\"\r\n ></div>\r\n }\r\n\r\n <!-- @if (hasCustomTemplates) {\r\n @if (headerTemplate) {\r\n <div class=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (bodyTemplate) {\r\n <div class=\"body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (footerTemplate) {\r\n <div class=\"footer\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n } -->\r\n\r\n @if (hasHeader) {\r\n <div class=\"py-4 px-3\">\r\n @if (headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n }\r\n @if (!headerTemplate) {\r\n <div class=\"flex gap-3\">\r\n @if (icon) {\r\n <div class=\"rounded-[50%] bg-grayscale-20 w-[3em] flex items-center justify-center min-h-[3em]\">\r\n <i [class]=\"icon\"></i>\r\n </div>\r\n }\r\n <div>\r\n @if (title) {\r\n <div class=\"text-grayscale-90 text-sm font-bold\">\r\n {{ title }}\r\n </div>\r\n }\r\n @if (subtitle) {\r\n <div class=\"text-grayscale-60 text-sm font-normal\">\r\n {{ subtitle }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div class=\"p-4\" [class.border-t]=\"hasHeader\" [class.border-t-grayscale-30]=\"hasHeader\">\r\n @if (bodyTemplate) {\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n\r\n @if (footerTemplate) {\r\n <div class=\"p-4 border-t border-t-grayscale-30\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
82
82
  }
83
83
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardComponent, decorators: [{
84
84
  type: Component,
85
- args: [{ selector: 's-card', template: "<div\n class=\"card\"\n [class.card--full-width]=\"fullWidth\"\n>\n @if (showBanner) {\n <div\n class=\"banner\"\n [ngStyle]=\"{ 'background-image': 'url(' + bannerImage + ')' }\"\n ></div>\n }\n\n <!-- @if (hasCustomTemplates) {\n @if (headerTemplate) {\n <div class=\"header\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n </div>\n }\n @if (bodyTemplate) {\n <div class=\"body\">\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n </div>\n }\n @if (footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n } @else {\n <div class=\"body\">\n <ng-content></ng-content>\n </div>\n } -->\n\n @if(hasHeader) {\n <div class=\"header\">\n @if(headerTemplate) {\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n }\n @if(!headerTemplate) {\n <div class=\"header-content\">\n <div class=\"header-icon\" *ngIf=\"icon\">\n <i [class]=\"icon\"></i>\n </div>\n <div>\n <div class=\"header-title\" *ngIf=\"title\">\n {{ title }}\n </div>\n <div class=\"header-subtitle\" *ngIf=\"subtitle\">\n {{ subtitle }}\n </div>\n </div>\n </div>\n }\n </div>\n }\n <div class=\"body\">\n @if(bodyTemplate) {\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\n }@else {\n <ng-content></ng-content>\n }\n </div>\n\n @if(footerTemplate) {\n <div class=\"footer\">\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n }\n</div>\n", styles: [".card{display:inline-flex;flex-direction:column;background-color:#fff;border-radius:4px;box-shadow:0 1px 5px #00000040;overflow:hidden}.card--full-width{width:100%}.card .banner{background-repeat:no-repeat;background-size:cover;height:150px;width:100%}.card .header{padding:16px 12px}.card .header-content{display:flex;gap:12px}.card .header-title{color:#212533;font-size:14px;font-style:normal;font-weight:700}.card .header-subtitle{color:#6e7280;font-size:14px;font-style:normal;font-weight:400}.card .header-icon{border-radius:50%;background-color:#dedce5;width:3em;display:flex;align-items:center;justify-content:center;min-height:3em}.card .body,.card .footer{padding:16px}.card .header+.body,.card .body+.footer{border-top:1px solid #c1c1cc}\n"] }]
85
+ args: [{ selector: 's-card', standalone: true, imports: [NgStyle, NgTemplateOutlet], template: "<div\r\n class=\"inline-flex flex-col bg-grayscale-0 rounded-medium shadow-[0px_1px_5px_0px_#00000040] overflow-hidden\"\r\n [class.w-full]=\"fullWidth\"\r\n>\r\n @if (showBanner) {\r\n <div\r\n class=\"bg-no-repeat bg-cover h-[150px] w-full\"\r\n [ngStyle]=\"{ 'background-image': 'url(' + bannerImage + ')' }\"\r\n ></div>\r\n }\r\n\r\n <!-- @if (hasCustomTemplates) {\r\n @if (headerTemplate) {\r\n <div class=\"header\">\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (bodyTemplate) {\r\n <div class=\"body\">\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n </div>\r\n }\r\n @if (footerTemplate) {\r\n <div class=\"footer\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n} @else {\r\n <div class=\"body\">\r\n <ng-content></ng-content>\r\n </div>\r\n } -->\r\n\r\n @if (hasHeader) {\r\n <div class=\"py-4 px-3\">\r\n @if (headerTemplate) {\r\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\r\n }\r\n @if (!headerTemplate) {\r\n <div class=\"flex gap-3\">\r\n @if (icon) {\r\n <div class=\"rounded-[50%] bg-grayscale-20 w-[3em] flex items-center justify-center min-h-[3em]\">\r\n <i [class]=\"icon\"></i>\r\n </div>\r\n }\r\n <div>\r\n @if (title) {\r\n <div class=\"text-grayscale-90 text-sm font-bold\">\r\n {{ title }}\r\n </div>\r\n }\r\n @if (subtitle) {\r\n <div class=\"text-grayscale-60 text-sm font-normal\">\r\n {{ subtitle }}\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n <div class=\"p-4\" [class.border-t]=\"hasHeader\" [class.border-t-grayscale-30]=\"hasHeader\">\r\n @if (bodyTemplate) {\r\n <ng-container *ngTemplateOutlet=\"bodyTemplate\"></ng-container>\r\n } @else {\r\n <ng-content></ng-content>\r\n }\r\n </div>\r\n\r\n @if (footerTemplate) {\r\n <div class=\"p-4 border-t border-t-grayscale-30\">\r\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\r\n </div>\r\n }\r\n</div>\r\n" }]
86
86
  }], propDecorators: { bannerImage: [{
87
87
  type: Input
88
88
  }], fullWidth: [{
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
97
97
  type: ContentChildren,
98
98
  args: [TemplateDirective]
99
99
  }] } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7O0FBRWhGOzs7Ozs7Ozs7Ozs7R0FZRztBQU1ILE1BQU0sT0FBTyxhQUFhO0lBQ3RCLHNFQUFzRTtJQUUvRCxXQUFXLENBQVU7SUFFNUIsZ0ZBQWdGO0lBRXpFLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekIsb0VBQW9FO0lBQzNELEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEIsbUVBQW1FO0lBQzFELFFBQVEsR0FBRyxFQUFFLENBQUM7SUFFdkIscUVBQXFFO0lBQzVELElBQUksR0FBRyxFQUFFLENBQUM7SUFFWixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFNBQVMsQ0FBZ0M7SUFFekMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLGNBQWMsQ0FBd0I7SUFDdEMsWUFBWSxDQUF3QjtJQUNwQyxjQUFjLENBQXdCO0lBRTdDLElBQVcsU0FBUztRQUNoQixNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JFLE9BQU8sY0FBYyxJQUFJLG1CQUFtQixDQUFDO0lBQ2pELENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCO1FBQzNCLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBMkIsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDbkcsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVPLGNBQWM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDM0IsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDO1lBRUYsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dHQWxGUSxhQUFhOzRGQUFiLGFBQWEsNExBb0JMLGlCQUFpQiw2QkMxQ3RDLHVtRUFxRUE7OzRGRC9DYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFFBQVE7OEJBT1gsV0FBVztzQkFEakIsS0FBSztnQkFLQyxTQUFTO3NCQURmLEtBQUs7Z0JBSUcsS0FBSztzQkFBYixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsZUFBZTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgSW5wdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RlbXBsYXRlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29tcG9uZW50ZSBkZSBjYXJ0w6NvIGNvbSBzdXBvcnRlIGEgYmFubmVyLCBjYWJlw6dhbGhvICh0w610dWxvLCBzdWJ0w610dWxvIGUgw61jb25lKVxuICogZSB0ZW1wbGF0ZXMgY3VzdG9taXrDoXZlaXMgcGFyYSBjYWJlw6dhbGhvLCBjb3JwbyBlIHJvZGFww6kgdmlhIGBUZW1wbGF0ZURpcmVjdGl2ZWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzLWNhcmQgdGl0bGU9XCJUw610dWxvXCIgc3VidGl0bGU9XCJTdWJ0w610dWxvXCI+XG4gKiAgIDxuZy10ZW1wbGF0ZSBzVGVtcGxhdGUgdHlwZT1cImJvZHlcIj5Db250ZcO6ZG88L25nLXRlbXBsYXRlPlxuICogPC9zLWNhcmQ+XG4gKiBgYGBcbiAqXG4gKiBAY2F0ZWdvcnkgU3RydWN0dXJlXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncy1jYXJkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgLyoqIEBkZXNjcmlwdGlvbiBVUkwgZGEgaW1hZ2VtIGV4aWJpZGEgY29tbyBiYW5uZXIgbm8gdG9wbyBkbyBjYXJkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGJhbm5lckltYWdlPzogc3RyaW5nO1xuXG4gICAgLyoqIEBkZXNjcmlwdGlvbiBGYXogbyBjYXJkIG9jdXBhciAxMDAlIGRhIGxhcmd1cmEgZGlzcG9uw612ZWwuIEBkZWZhdWx0IGZhbHNlICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZnVsbFdpZHRoID0gZmFsc2U7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIFTDrXR1bG8gZXhpYmlkbyBubyBjYWJlw6dhbGhvIGRvIGNhcmQuIEBkZWZhdWx0ICcnICovXG4gICAgQElucHV0KCkgdGl0bGUgPSAnJztcblxuICAgIC8qKiBAZGVzY3JpcHRpb24gU3VidMOtdHVsbyBleGliaWRvIGFiYWl4byBkbyB0w610dWxvLiBAZGVmYXVsdCAnJyAqL1xuICAgIEBJbnB1dCgpIHN1YnRpdGxlID0gJyc7XG5cbiAgICAvKiogQGRlc2NyaXB0aW9uIENsYXNzZSBkbyDDrWNvbmUgZXhpYmlkbyBubyBjYWJlw6dhbGhvLiBAZGVmYXVsdCAnJyAqL1xuICAgIEBJbnB1dCgpIGljb24gPSAnJztcblxuICAgIHB1YmxpYyBzaG93QmFubmVyID0gZmFsc2U7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFRlbXBsYXRlRGlyZWN0aXZlKVxuICAgIHB1YmxpYyB0ZW1wbGF0ZXM/OiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xuXG4gICAgcHVibGljIGhhc0N1c3RvbVRlbXBsYXRlcyA9IGZhbHNlO1xuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIHB1YmxpYyBib2R5VGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICBwdWJsaWMgZm9vdGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAgIHB1YmxpYyBnZXQgaGFzSGVhZGVyKCkge1xuICAgICAgICBjb25zdCBoZWFkZXJUZW1wbGF0ZSA9ICEhdGhpcy5oZWFkZXJUZW1wbGF0ZTtcbiAgICAgICAgY29uc3QgaGFzSGVhZGVyQXR0cmlidXRlcyA9IHRoaXMudGl0bGUgfHwgdGhpcy5zdWJ0aXRsZSB8fCB0aGlzLmljb247XG4gICAgICAgIHJldHVybiBoZWFkZXJUZW1wbGF0ZSB8fCBoYXNIZWFkZXJBdHRyaWJ1dGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBuZ0FmdGVyQ29udGVudEluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMuX3NldFNob3dCYW5uZXIoKTtcbiAgICAgICAgdGhpcy5fc2V0VGVtcGxhdGVzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0SGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoJ2hlYWRlcicpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEJvZHlUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZSgnYm9keScpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEZvb3RlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKCdmb290ZXInKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDdXN0b21UZW1wbGF0ZSh0eXBlOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLnRlbXBsYXRlcz8uZmluZCgodGVtcGxhdGU6IFRlbXBsYXRlRGlyZWN0aXZlKSA9PiB0ZW1wbGF0ZS50eXBlID09PSB0eXBlKT8udGVtcGxhdGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0VGVtcGxhdGVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmhlYWRlclRlbXBsYXRlID0gdGhpcy5fZ2V0SGVhZGVyVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5ib2R5VGVtcGxhdGUgPSB0aGlzLl9nZXRCb2R5VGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5mb290ZXJUZW1wbGF0ZSA9IHRoaXMuX2dldEZvb3RlclRlbXBsYXRlKCk7XG5cbiAgICAgICAgdGhpcy5oYXNDdXN0b21UZW1wbGF0ZXMgPSAhISh0aGlzLmhlYWRlclRlbXBsYXRlIHx8IHRoaXMuYm9keVRlbXBsYXRlIHx8IHRoaXMuZm9vdGVyVGVtcGxhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldFNob3dCYW5uZXIoKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmJhbm5lckltYWdlKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaW1nID0gbmV3IEltYWdlKCk7XG4gICAgICAgICAgICBpbWcuc3JjID0gdGhpcy5iYW5uZXJJbWFnZTtcbiAgICAgICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zaG93QmFubmVyID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpbWcub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dCYW5uZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbiIsIjxkaXZcbiAgICBjbGFzcz1cImNhcmRcIlxuICAgIFtjbGFzcy5jYXJkLS1mdWxsLXdpZHRoXT1cImZ1bGxXaWR0aFwiXG4+XG4gICAgQGlmIChzaG93QmFubmVyKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYmFubmVyXCJcbiAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyBiYW5uZXJJbWFnZSArICcpJyB9XCJcbiAgICAgICAgPjwvZGl2PlxuICAgIH1cblxuICAgIDwhLS0gQGlmIChoYXNDdXN0b21UZW1wbGF0ZXMpIHtcbiAgICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChib2R5VGVtcGxhdGUpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib2R5XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChmb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgfSAtLT5cblxuICAgIEBpZihoYXNIZWFkZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgQGlmKGhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYoIWhlYWRlclRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItaWNvblwiICpuZ0lmPVwiaWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cImljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci10aXRsZVwiICpuZ0lmPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB0aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXN1YnRpdGxlXCIgKm5nSWY9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN1YnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbiAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxuICAgICAgICBAaWYoYm9keVRlbXBsYXRlKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1AZWxzZSB7XG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZihmb290ZXJUZW1wbGF0ZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUEwQixNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRTVEOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxhQUFhO0lBQ3RCLHNFQUFzRTtJQUUvRCxXQUFXLENBQVU7SUFFNUIsZ0ZBQWdGO0lBRXpFLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFFekIsb0VBQW9FO0lBQzNELEtBQUssR0FBRyxFQUFFLENBQUM7SUFFcEIsbUVBQW1FO0lBQzFELFFBQVEsR0FBRyxFQUFFLENBQUM7SUFFdkIscUVBQXFFO0lBQzVELElBQUksR0FBRyxFQUFFLENBQUM7SUFFWixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFNBQVMsQ0FBZ0M7SUFFekMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLGNBQWMsQ0FBd0I7SUFDdEMsWUFBWSxDQUF3QjtJQUNwQyxjQUFjLENBQXdCO0lBRTdDLElBQVcsU0FBUztRQUNoQixNQUFNLGNBQWMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JFLE9BQU8sY0FBYyxJQUFJLG1CQUFtQixDQUFDO0lBQ2pELENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCO1FBQzNCLE1BQU0sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTyxnQkFBZ0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGtCQUFrQjtRQUN0QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBMkIsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUM7SUFDbkcsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFFaEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEcsQ0FBQztJQUVPLGNBQWM7UUFDbEIsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUN4QixHQUFHLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDM0IsR0FBRyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDO1lBRUYsR0FBRyxDQUFDLE9BQU8sR0FBRyxHQUFHLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7Z0JBQ3hCLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dHQWxGUSxhQUFhOzRGQUFiLGFBQWEsZ05Bb0JMLGlCQUFpQiw2QkM1Q3RDLHluRkEyRUEsNENEckRjLE9BQU8sMkVBQUUsZ0JBQWdCOzs0RkFFMUIsYUFBYTtrQkFOekIsU0FBUzsrQkFDSSxRQUFRLGNBRU4sSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDOzhCQUs3QixXQUFXO3NCQURqQixLQUFLO2dCQUtDLFNBQVM7c0JBRGYsS0FBSztnQkFJRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBS0MsU0FBUztzQkFEZixlQUFlO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBJbnB1dCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICdAc2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzL3RlbXBsYXRlJztcclxuaW1wb3J0IHsgTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgY2FydMOjbyBjb20gc3Vwb3J0ZSBhIGJhbm5lciwgY2FiZcOnYWxobyAodMOtdHVsbywgc3VidMOtdHVsbyBlIMOtY29uZSlcclxuICogZSB0ZW1wbGF0ZXMgY3VzdG9taXrDoXZlaXMgcGFyYSBjYWJlw6dhbGhvLCBjb3JwbyBlIHJvZGFww6kgdmlhIGBUZW1wbGF0ZURpcmVjdGl2ZWAuXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqIGBgYGh0bWxcclxuICogPHMtY2FyZCB0aXRsZT1cIlTDrXR1bG9cIiBzdWJ0aXRsZT1cIlN1YnTDrXR1bG9cIj5cclxuICogICA8bmctdGVtcGxhdGUgc1RlbXBsYXRlIHR5cGU9XCJib2R5XCI+Q29udGXDumRvPC9uZy10ZW1wbGF0ZT5cclxuICogPC9zLWNhcmQ+XHJcbiAqIGBgYFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgU3RydWN0dXJlXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncy1jYXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbTmdTdHlsZSwgTmdUZW1wbGF0ZU91dGxldF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFVSTCBkYSBpbWFnZW0gZXhpYmlkYSBjb21vIGJhbm5lciBubyB0b3BvIGRvIGNhcmQuICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGJhbm5lckltYWdlPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gRmF6IG8gY2FyZCBvY3VwYXIgMTAwJSBkYSBsYXJndXJhIGRpc3BvbsOtdmVsLiBAZGVmYXVsdCBmYWxzZSAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmdWxsV2lkdGggPSBmYWxzZTtcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIFTDrXR1bG8gZXhpYmlkbyBubyBjYWJlw6dhbGhvIGRvIGNhcmQuIEBkZWZhdWx0ICcnICovXHJcbiAgICBASW5wdXQoKSB0aXRsZSA9ICcnO1xyXG5cclxuICAgIC8qKiBAZGVzY3JpcHRpb24gU3VidMOtdHVsbyBleGliaWRvIGFiYWl4byBkbyB0w610dWxvLiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KCkgc3VidGl0bGUgPSAnJztcclxuXHJcbiAgICAvKiogQGRlc2NyaXB0aW9uIENsYXNzZSBkbyDDrWNvbmUgZXhpYmlkbyBubyBjYWJlw6dhbGhvLiBAZGVmYXVsdCAnJyAqL1xyXG4gICAgQElucHV0KCkgaWNvbiA9ICcnO1xyXG5cclxuICAgIHB1YmxpYyBzaG93QmFubmVyID0gZmFsc2U7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihUZW1wbGF0ZURpcmVjdGl2ZSlcclxuICAgIHB1YmxpYyB0ZW1wbGF0ZXM/OiBRdWVyeUxpc3Q8VGVtcGxhdGVEaXJlY3RpdmU+O1xyXG5cclxuICAgIHB1YmxpYyBoYXNDdXN0b21UZW1wbGF0ZXMgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBoZWFkZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gICAgcHVibGljIGJvZHlUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHVua25vd24+O1xyXG4gICAgcHVibGljIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcblxyXG4gICAgcHVibGljIGdldCBoYXNIZWFkZXIoKSB7XHJcbiAgICAgICAgY29uc3QgaGVhZGVyVGVtcGxhdGUgPSAhIXRoaXMuaGVhZGVyVGVtcGxhdGU7XHJcbiAgICAgICAgY29uc3QgaGFzSGVhZGVyQXR0cmlidXRlcyA9IHRoaXMudGl0bGUgfHwgdGhpcy5zdWJ0aXRsZSB8fCB0aGlzLmljb247XHJcbiAgICAgICAgcmV0dXJuIGhlYWRlclRlbXBsYXRlIHx8IGhhc0hlYWRlckF0dHJpYnV0ZXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICBhd2FpdCB0aGlzLl9zZXRTaG93QmFubmVyKCk7XHJcbiAgICAgICAgdGhpcy5fc2V0VGVtcGxhdGVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0SGVhZGVyVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRDdXN0b21UZW1wbGF0ZSgnaGVhZGVyJyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0Qm9keVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZ2V0Q3VzdG9tVGVtcGxhdGUoJ2JvZHknKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRGb290ZXJUZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dldEN1c3RvbVRlbXBsYXRlKCdmb290ZXInKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9nZXRDdXN0b21UZW1wbGF0ZSh0eXBlOiBzdHJpbmcpOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IHVuZGVmaW5lZCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudGVtcGxhdGVzPy5maW5kKCh0ZW1wbGF0ZTogVGVtcGxhdGVEaXJlY3RpdmUpID0+IHRlbXBsYXRlLnR5cGUgPT09IHR5cGUpPy50ZW1wbGF0ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXRUZW1wbGF0ZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5oZWFkZXJUZW1wbGF0ZSA9IHRoaXMuX2dldEhlYWRlclRlbXBsYXRlKCk7XHJcbiAgICAgICAgdGhpcy5ib2R5VGVtcGxhdGUgPSB0aGlzLl9nZXRCb2R5VGVtcGxhdGUoKTtcclxuICAgICAgICB0aGlzLmZvb3RlclRlbXBsYXRlID0gdGhpcy5fZ2V0Rm9vdGVyVGVtcGxhdGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5oYXNDdXN0b21UZW1wbGF0ZXMgPSAhISh0aGlzLmhlYWRlclRlbXBsYXRlIHx8IHRoaXMuYm9keVRlbXBsYXRlIHx8IHRoaXMuZm9vdGVyVGVtcGxhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldFNob3dCYW5uZXIoKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5iYW5uZXJJbWFnZSkge1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBpbWcgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgICAgICAgaW1nLnNyYyA9IHRoaXMuYmFubmVySW1hZ2U7XHJcbiAgICAgICAgICAgIGltZy5vbmxvYWQgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dCYW5uZXIgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dCYW5uZXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cImlubGluZS1mbGV4IGZsZXgtY29sIGJnLWdyYXlzY2FsZS0wIHJvdW5kZWQtbWVkaXVtIHNoYWRvdy1bMHB4XzFweF81cHhfMHB4XyMwMDAwMDA0MF0gb3ZlcmZsb3ctaGlkZGVuXCJcclxuICAgIFtjbGFzcy53LWZ1bGxdPVwiZnVsbFdpZHRoXCJcclxuPlxyXG4gICAgQGlmIChzaG93QmFubmVyKSB7XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImJnLW5vLXJlcGVhdCBiZy1jb3ZlciBoLVsxNTBweF0gdy1mdWxsXCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGJhbm5lckltYWdlICsgJyknIH1cIlxyXG4gICAgICAgID48L2Rpdj5cclxuICAgIH1cclxuXHJcbiAgICA8IS0tIEBpZiAoaGFzQ3VzdG9tVGVtcGxhdGVzKSB7XHJcbiAgQGlmIChoZWFkZXJUZW1wbGF0ZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGVhZGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICBAaWYgKGJvZHlUZW1wbGF0ZSkge1xyXG4gICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImJvZHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIEBpZiAoZm9vdGVyVGVtcGxhdGUpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICB9XHJcbn0gQGVsc2Uge1xyXG4gIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbiAgfSAtLT5cclxuXHJcbiAgICBAaWYgKGhhc0hlYWRlcikge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJweS00IHB4LTNcIj5cclxuICAgICAgICAgICAgQGlmIChoZWFkZXJUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgQGlmICghaGVhZGVyVGVtcGxhdGUpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgQGlmIChpY29uKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLVs1MCVdIGJnLWdyYXlzY2FsZS0yMCB3LVszZW1dIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG1pbi1oLVszZW1dXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiaWNvblwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodGl0bGUpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWdyYXlzY2FsZS05MCB0ZXh0LXNtIGZvbnQtYm9sZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHN1YnRpdGxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ncmF5c2NhbGUtNjAgdGV4dC1zbSBmb250LW5vcm1hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHN1YnRpdGxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIH1cclxuICAgIDxkaXYgY2xhc3M9XCJwLTRcIiBbY2xhc3MuYm9yZGVyLXRdPVwiaGFzSGVhZGVyXCIgW2NsYXNzLmJvcmRlci10LWdyYXlzY2FsZS0zMF09XCJoYXNIZWFkZXJcIj5cclxuICAgICAgICBAaWYgKGJvZHlUZW1wbGF0ZSkge1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiYm9keVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgfSBAZWxzZSB7XHJcbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICBAaWYgKGZvb3RlclRlbXBsYXRlKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInAtNCBib3JkZXItdCBib3JkZXItdC1ncmF5c2NhbGUtMzBcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG4iXX0=
@@ -1,19 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { CardComponent } from './card.component';
4
- import { TemplateModule } from '@seniorsistemas/angular-components/template';
5
3
  import * as i0 from "@angular/core";
6
4
  export class CardModule {
7
5
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CardModule, declarations: [CardComponent], imports: [CommonModule, TemplateModule], exports: [CardComponent] });
9
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardModule, imports: [CommonModule, TemplateModule] });
6
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: CardModule, imports: [CardComponent], exports: [CardComponent] });
7
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardModule });
10
8
  }
11
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CardModule, decorators: [{
12
10
  type: NgModule,
13
11
  args: [{
14
- imports: [CommonModule, TemplateModule],
15
- declarations: [CardComponent],
12
+ imports: [CardComponent],
16
13
  exports: [CardComponent],
17
14
  }]
18
15
  }] });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQTs7QUFRNUUsTUFBTSxPQUFPLFVBQVU7d0dBQVYsVUFBVTt5R0FBVixVQUFVLGlCQUhKLGFBQWEsYUFEbEIsWUFBWSxFQUFFLGNBQWMsYUFFNUIsYUFBYTt5R0FFZCxVQUFVLFlBSlQsWUFBWSxFQUFFLGNBQWM7OzRGQUk3QixVQUFVO2tCQUx0QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUM7b0JBQ3ZDLFlBQVksRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUMzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFRlbXBsYXRlTW9kdWxlIH0gZnJvbSAnQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy90ZW1wbGF0ZSdcblxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRlbXBsYXRlTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtDYXJkQ29tcG9uZW50XSxcbiAgICBleHBvcnRzOiBbQ2FyZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIENhcmRNb2R1bGUge31cbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2FyZC9zcmMvbGliL2NhcmQvY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBTWpELE1BQU0sT0FBTyxVQUFVO3dHQUFWLFVBQVU7eUdBQVYsVUFBVSxZQUhULGFBQWEsYUFDYixhQUFhO3lHQUVkLFVBQVU7OzRGQUFWLFVBQVU7a0JBSnRCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO29CQUN4QixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENhcmRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbQ2FyZENvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbQ2FyZENvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJkTW9kdWxlIHt9XHJcbiJdfQ==
@@ -1,7 +1,7 @@
1
- import { Component, ElementRef, Input, ViewChildren } from '@angular/core';
1
+ import { Component, DestroyRef, ElementRef, Input, ViewChildren, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
+ import { ChatMessageComponent as ChatMessageComponent_1 } from './components/chat-message/chat-message.component';
2
4
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "./components/chat-message/chat-message.component";
5
5
  /**
6
6
  * @description Componente de interface de chat que exibe uma lista de mensagens
7
7
  * e faz scroll automático até a última mensagem sempre que novas são adicionadas.
@@ -15,6 +15,7 @@ import * as i2 from "./components/chat-message/chat-message.component";
15
15
  * @category Inputs
16
16
  */
17
17
  export class ChatComponent {
18
+ _destroyRef = inject(DestroyRef);
18
19
  /**
19
20
  * @description Lista de mensagens exibidas no chat.
20
21
  * Cada item é do tipo {@link ChatMessage}, contendo texto, remetente e demais metadados.
@@ -25,7 +26,7 @@ export class ChatComponent {
25
26
  messageElements = null;
26
27
  ngAfterViewInit() {
27
28
  this.scrollToBottom();
28
- this.messageElements?.changes.subscribe(() => {
29
+ this.messageElements?.changes.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {
29
30
  this.scrollToBottom();
30
31
  });
31
32
  }
@@ -33,15 +34,15 @@ export class ChatComponent {
33
34
  this.messageElements?.last?.nativeElement.scrollIntoView({ behavior: 'smooth' });
34
35
  }
35
36
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
36
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: ChatComponent, selector: "s-chat", inputs: { messages: "messages" }, viewQueries: [{ propertyName: "messageElements", predicate: ["messageElements"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"chat-container\">\n <s-chat-message #messageElements *ngFor=\"let message of messages\" [message]=\"message\"> </s-chat-message>\n</div>\n", styles: [".chat-container{min-height:500px;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.ChatMessageComponent, selector: "s-chat-message", inputs: ["message"] }] });
37
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ChatComponent, isStandalone: true, selector: "s-chat", inputs: { messages: "messages" }, viewQueries: [{ propertyName: "messageElements", predicate: ["messageElements"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div class=\"min-h-[500px] overflow-auto\">\r\n @for (message of messages; track message) {\r\n <s-chat-message\r\n #messageElements\r\n [message]=\"message\"\r\n >\r\n </s-chat-message>\r\n }\r\n</div>\r\n", dependencies: [{ kind: "component", type: ChatMessageComponent_1, selector: "s-chat-message", inputs: ["message"] }] });
37
38
  }
38
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatComponent, decorators: [{
39
40
  type: Component,
40
- args: [{ selector: 's-chat', template: "<div class=\"chat-container\">\n <s-chat-message #messageElements *ngFor=\"let message of messages\" [message]=\"message\"> </s-chat-message>\n</div>\n", styles: [".chat-container{min-height:500px;overflow:auto}\n"] }]
41
+ args: [{ selector: 's-chat', standalone: true, imports: [ChatMessageComponent_1], template: "<div class=\"min-h-[500px] overflow-auto\">\r\n @for (message of messages; track message) {\r\n <s-chat-message\r\n #messageElements\r\n [message]=\"message\"\r\n >\r\n </s-chat-message>\r\n }\r\n</div>\r\n" }]
41
42
  }], propDecorators: { messages: [{
42
43
  type: Input
43
44
  }], messageElements: [{
44
45
  type: ViewChildren,
45
46
  args: ['messageElements', { read: ElementRef }]
46
47
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQvY2hhdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQvY2hhdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUlyRzs7Ozs7Ozs7Ozs7R0FXRztBQU1ILE1BQU0sT0FBTyxhQUFhO0lBQ3RCOzs7OztPQUtHO0lBRUksUUFBUSxHQUFrQixFQUFFLENBQUM7SUFHbkIsZUFBZSxHQUE4QyxJQUFJLENBQUM7SUFFNUUsZUFBZTtRQUNsQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFdEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sY0FBYztRQUNsQixJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksRUFBRSxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQzt3R0F2QlEsYUFBYTs0RkFBYixhQUFhLGtLQVVtQixVQUFVLDZCQy9CdkQsNEpBR0E7OzRGRGtCYSxhQUFhO2tCQUx6QixTQUFTOytCQUNJLFFBQVE7OEJBWVgsUUFBUTtzQkFEZCxLQUFLO2dCQUlXLGVBQWU7c0JBRC9CLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2hhdE1lc3NhZ2UgfSBmcm9tICcuL3R5cGVzL2NoYXQtbWVzc2FnZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbXBvbmVudGUgZGUgaW50ZXJmYWNlIGRlIGNoYXQgcXVlIGV4aWJlIHVtYSBsaXN0YSBkZSBtZW5zYWdlbnNcbiAqIGUgZmF6IHNjcm9sbCBhdXRvbcOhdGljbyBhdMOpIGEgw7psdGltYSBtZW5zYWdlbSBzZW1wcmUgcXVlIG5vdmFzIHPDo28gYWRpY2lvbmFkYXMuXG4gKiBSZW5kZXJpemEgY2FkYSBtZW5zYWdlbSB2aWEge0BsaW5rIENoYXRNZXNzYWdlQ29tcG9uZW50fS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHMtY2hhdCBbbWVzc2FnZXNdPVwiY29udmVyc2FNZW5zYWdlbnNcIiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IElucHV0c1xuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3MtY2hhdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoYXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBMaXN0YSBkZSBtZW5zYWdlbnMgZXhpYmlkYXMgbm8gY2hhdC5cbiAgICAgKiBDYWRhIGl0ZW0gw6kgZG8gdGlwbyB7QGxpbmsgQ2hhdE1lc3NhZ2V9LCBjb250ZW5kbyB0ZXh0bywgcmVtZXRlbnRlIGUgZGVtYWlzIG1ldGFkYWRvcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFtdXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWVzc2FnZXM6IENoYXRNZXNzYWdlW10gPSBbXTtcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ21lc3NhZ2VFbGVtZW50cycsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWVzc2FnZUVsZW1lbnRzOiBudWxsIHwgUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PiA9IG51bGw7XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNjcm9sbFRvQm90dG9tKCk7XG5cbiAgICAgICAgdGhpcy5tZXNzYWdlRWxlbWVudHM/LmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzY3JvbGxUb0JvdHRvbSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlRWxlbWVudHM/Lmxhc3Q/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XG4gICAgfVxufVxuXG4iLCI8ZGl2IGNsYXNzPVwiY2hhdC1jb250YWluZXJcIj5cbiAgICA8cy1jaGF0LW1lc3NhZ2UgI21lc3NhZ2VFbGVtZW50cyAqbmdGb3I9XCJsZXQgbWVzc2FnZSBvZiBtZXNzYWdlc1wiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIj4gPC9zLWNoYXQtbWVzc2FnZT5cbjwvZGl2PlxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQvY2hhdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQvY2hhdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSWhFLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOztBQUVsSDs7Ozs7Ozs7Ozs7R0FXRztBQU9ILE1BQU0sT0FBTyxhQUFhO0lBQ0wsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVsRDs7Ozs7T0FLRztJQUVJLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBR25CLGVBQWUsR0FBOEMsSUFBSSxDQUFDO0lBRTVFLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3BGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNyRixDQUFDO3dHQXpCUSxhQUFhOzRGQUFiLGFBQWEsc0xBWW1CLFVBQVUsNkJDckN2RCxpUUFTQSw0Q0RjYyxzQkFBc0I7OzRGQUV2QixhQUFhO2tCQU56QixTQUFTOytCQUNJLFFBQVEsY0FFTixJQUFJLFdBQ1AsQ0FBQyxzQkFBc0IsQ0FBQzs4QkFZMUIsUUFBUTtzQkFEZCxLQUFLO2dCQUlXLGVBQWU7c0JBRC9CLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcblxyXG5pbXBvcnQgeyBDaGF0TWVzc2FnZSB9IGZyb20gJy4vdHlwZXMvY2hhdC1tZXNzYWdlJztcclxuXHJcbmltcG9ydCB7IENoYXRNZXNzYWdlQ29tcG9uZW50IGFzIENoYXRNZXNzYWdlQ29tcG9uZW50XzEgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhdC1tZXNzYWdlL2NoYXQtbWVzc2FnZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvbiBDb21wb25lbnRlIGRlIGludGVyZmFjZSBkZSBjaGF0IHF1ZSBleGliZSB1bWEgbGlzdGEgZGUgbWVuc2FnZW5zXHJcbiAqIGUgZmF6IHNjcm9sbCBhdXRvbcOhdGljbyBhdMOpIGEgw7psdGltYSBtZW5zYWdlbSBzZW1wcmUgcXVlIG5vdmFzIHPDo28gYWRpY2lvbmFkYXMuXHJcbiAqIFJlbmRlcml6YSBjYWRhIG1lbnNhZ2VtIHZpYSB7QGxpbmsgQ2hhdE1lc3NhZ2VDb21wb25lbnR9LlxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiBgYGBodG1sXHJcbiAqIDxzLWNoYXQgW21lc3NhZ2VzXT1cImNvbnZlcnNhTWVuc2FnZW5zXCIgLz5cclxuICogYGBgXHJcbiAqXHJcbiAqIEBjYXRlZ29yeSBJbnB1dHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzLWNoYXQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoYXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtDaGF0TWVzc2FnZUNvbXBvbmVudF8xXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgbWVuc2FnZW5zIGV4aWJpZGFzIG5vIGNoYXQuXHJcbiAgICAgKiBDYWRhIGl0ZW0gw6kgZG8gdGlwbyB7QGxpbmsgQ2hhdE1lc3NhZ2V9LCBjb250ZW5kbyB0ZXh0bywgcmVtZXRlbnRlIGUgZGVtYWlzIG1ldGFkYWRvcy5cclxuICAgICAqXHJcbiAgICAgKiBAZGVmYXVsdCBbXVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIG1lc3NhZ2VzOiBDaGF0TWVzc2FnZVtdID0gW107XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbignbWVzc2FnZUVsZW1lbnRzJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1lc3NhZ2VFbGVtZW50czogbnVsbCB8IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4gPSBudWxsO1xyXG5cclxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VFbGVtZW50cz8uY2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUb0JvdHRvbSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2Nyb2xsVG9Cb3R0b20oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlRWxlbWVudHM/Lmxhc3Q/Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1pbi1oLVs1MDBweF0gb3ZlcmZsb3ctYXV0b1wiPlxyXG4gICAgQGZvciAobWVzc2FnZSBvZiBtZXNzYWdlczsgdHJhY2sgbWVzc2FnZSkge1xyXG4gICAgICAgIDxzLWNoYXQtbWVzc2FnZVxyXG4gICAgICAgICAgICAjbWVzc2FnZUVsZW1lbnRzXHJcbiAgICAgICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L3MtY2hhdC1tZXNzYWdlPlxyXG4gICAgfVxyXG48L2Rpdj5cclxuIl19
@@ -1,22 +1,18 @@
1
- import { CommonModule } from "@angular/common";
2
- import { NgModule } from "@angular/core";
3
- import { TranslateModule } from "@ngx-translate/core";
4
- import { ChatComponent } from "./chat.component";
5
- import { ChatMessageComponent } from "./components/chat-message/chat-message.component";
6
- import { LocaleModule } from "@seniorsistemas/angular-components/locale";
1
+ import { NgModule } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
3
+ import { ChatComponent } from './chat.component';
7
4
  import * as i0 from "@angular/core";
8
5
  import * as i1 from "@ngx-translate/core";
9
6
  export class ChatModule {
10
7
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, declarations: [ChatComponent, ChatMessageComponent], imports: [CommonModule, LocaleModule, i1.TranslateModule], exports: [ChatComponent] });
12
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, imports: [CommonModule, LocaleModule, TranslateModule.forChild()] });
8
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, imports: [i1.TranslateModule, ChatComponent], exports: [ChatComponent] });
9
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, imports: [TranslateModule.forChild()] });
13
10
  }
14
11
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ChatModule, decorators: [{
15
12
  type: NgModule,
16
13
  args: [{
17
- imports: [CommonModule, LocaleModule, TranslateModule.forChild()],
18
- declarations: [ChatComponent, ChatMessageComponent],
14
+ imports: [TranslateModule.forChild(), ChatComponent],
19
15
  exports: [ChatComponent],
20
16
  }]
21
17
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQvY2hhdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7OztBQU96RSxNQUFNLE9BQU8sVUFBVTt3R0FBVixVQUFVO3lHQUFWLFVBQVUsaUJBSEosYUFBYSxFQUFFLG9CQUFvQixhQUR4QyxZQUFZLEVBQUUsWUFBWSxpQ0FFMUIsYUFBYTt5R0FFZCxVQUFVLFlBSlQsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFOzs0RkFJdkQsVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDakUsWUFBWSxFQUFFLENBQUMsYUFBYSxFQUFFLG9CQUFvQixDQUFDO29CQUNuRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuXG5pbXBvcnQgeyBDaGF0Q29tcG9uZW50IH0gZnJvbSBcIi4vY2hhdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IENoYXRNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jaGF0LW1lc3NhZ2UvY2hhdC1tZXNzYWdlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTG9jYWxlTW9kdWxlIH0gZnJvbSBcIkBzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvbG9jYWxlXCI7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTG9jYWxlTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKV0sXG4gICAgZGVjbGFyYXRpb25zOiBbQ2hhdENvbXBvbmVudCwgQ2hhdE1lc3NhZ2VDb21wb25lbnRdLFxuICAgIGV4cG9ydHM6IFtDaGF0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hhdE1vZHVsZSB7fVxuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvY2hhdC9zcmMvbGliL2NoYXQvY2hhdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFNakQsTUFBTSxPQUFPLFVBQVU7d0dBQVYsVUFBVTt5R0FBVixVQUFVLGdDQUhtQixhQUFhLGFBQ3pDLGFBQWE7eUdBRWQsVUFBVSxZQUhULGVBQWUsQ0FBQyxRQUFRLEVBQUU7OzRGQUczQixVQUFVO2tCQUp0QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLENBQUM7b0JBQ3BELE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDaGF0Q29tcG9uZW50IH0gZnJvbSAnLi9jaGF0LmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1RyYW5zbGF0ZU1vZHVsZS5mb3JDaGlsZCgpLCBDaGF0Q29tcG9uZW50XSxcclxuICAgIGV4cG9ydHM6IFtDaGF0Q29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENoYXRNb2R1bGUge31cclxuIl19