desy-angular 8.0.0 → 9.0.0

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 (201) hide show
  1. package/esm2022/lib/desy-angular.module.mjs +5 -5
  2. package/esm2022/lib/desy-buttons/components/button/button.component.mjs +4 -4
  3. package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +4 -4
  4. package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +4 -4
  5. package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +4 -4
  6. package/esm2022/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +4 -4
  7. package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +4 -4
  8. package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +4 -4
  9. package/esm2022/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +4 -4
  10. package/esm2022/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +4 -4
  11. package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +5 -5
  12. package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +5 -5
  13. package/esm2022/lib/desy-commons/components/content/content.component.mjs +4 -4
  14. package/esm2022/lib/desy-commons/components/description/description.component.mjs +4 -4
  15. package/esm2022/lib/desy-commons/components/divider/divider.component.mjs +4 -4
  16. package/esm2022/lib/desy-commons/components/icon/icon.component.mjs +4 -4
  17. package/esm2022/lib/desy-commons/components/title/title.component.mjs +4 -4
  18. package/esm2022/lib/desy-commons/desy-commons.module.mjs +5 -5
  19. package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +4 -4
  20. package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +5 -40
  21. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +4 -4
  22. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes.component.mjs +5 -5
  23. package/esm2022/lib/desy-forms/components/date-input/date-input-day/date-input-day.component.mjs +4 -4
  24. package/esm2022/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +4 -4
  25. package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +4 -4
  26. package/esm2022/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +4 -4
  27. package/esm2022/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +4 -4
  28. package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +4 -4
  29. package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +4 -4
  30. package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +4 -4
  31. package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +4 -4
  32. package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +4 -4
  33. package/esm2022/lib/desy-forms/components/form-field/form-field.component.mjs +4 -4
  34. package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +4 -4
  35. package/esm2022/lib/desy-forms/components/input/input.component.mjs +4 -4
  36. package/esm2022/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +4 -4
  37. package/esm2022/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +4 -4
  38. package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +4 -4
  39. package/esm2022/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +4 -4
  40. package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +4 -4
  41. package/esm2022/lib/desy-forms/components/label/label.component.mjs +4 -4
  42. package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +5 -40
  43. package/esm2022/lib/desy-forms/components/radios/radios-parent.component.mjs +4 -4
  44. package/esm2022/lib/desy-forms/components/radios/radios.component.mjs +5 -5
  45. package/esm2022/lib/desy-forms/components/search-bar/search-bar.component.mjs +4 -4
  46. package/esm2022/lib/desy-forms/components/select/option/option.component.mjs +4 -4
  47. package/esm2022/lib/desy-forms/components/select/option-group/option-group.component.mjs +4 -4
  48. package/esm2022/lib/desy-forms/components/select/select-item/select-item.component.mjs +4 -4
  49. package/esm2022/lib/desy-forms/components/select/select.component.mjs +4 -4
  50. package/esm2022/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +4 -4
  51. package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +4 -4
  52. package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +4 -4
  53. package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +4 -4
  54. package/esm2022/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.mjs +5 -5
  55. package/esm2022/lib/desy-forms/components/tree/tree-sub/tree-sub.component.mjs +4 -4
  56. package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +4 -4
  57. package/esm2022/lib/desy-forms/desy-forms.module.mjs +5 -5
  58. package/esm2022/lib/desy-forms/directives/condition.directive.mjs +4 -4
  59. package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +4 -4
  60. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +4 -4
  61. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +4 -4
  62. package/esm2022/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +4 -4
  63. package/esm2022/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +4 -4
  64. package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +5 -5
  65. package/esm2022/lib/desy-modals/desy-modals.module.mjs +5 -5
  66. package/esm2022/lib/desy-modals/services/dialog.service.mjs +4 -4
  67. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +4 -4
  68. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +4 -4
  69. package/esm2022/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +4 -4
  70. package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +4 -4
  71. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +4 -4
  72. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +4 -4
  73. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +4 -4
  74. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +4 -4
  75. package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +4 -4
  76. package/esm2022/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +4 -4
  77. package/esm2022/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +4 -4
  78. package/esm2022/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.mjs +92 -0
  79. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +4 -4
  80. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +4 -4
  81. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +4 -4
  82. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +4 -4
  83. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +5 -5
  84. package/esm2022/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +5 -5
  85. package/esm2022/lib/desy-nav/components/header/header.component.mjs +19 -8
  86. package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +4 -4
  87. package/esm2022/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +4 -4
  88. package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +4 -4
  89. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +4 -4
  90. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +4 -4
  91. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +4 -4
  92. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +4 -4
  93. package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +4 -4
  94. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +4 -6
  95. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +4 -4
  96. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +4 -4
  97. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +4 -4
  98. package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +4 -4
  99. package/esm2022/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +4 -4
  100. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +4 -4
  101. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +4 -4
  102. package/esm2022/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +4 -4
  103. package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +4 -4
  104. package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +4 -4
  105. package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +4 -4
  106. package/esm2022/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +4 -4
  107. package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +9 -13
  108. package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +18 -4
  109. package/esm2022/lib/desy-nav/desy-nav.module.mjs +10 -5
  110. package/esm2022/lib/desy-nav/interfaces/header-mobile-text-data.mjs +2 -0
  111. package/esm2022/lib/desy-nav/interfaces/menu-vertical-items-data.mjs +1 -1
  112. package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +4 -4
  113. package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +4 -4
  114. package/esm2022/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +4 -4
  115. package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +5 -5
  116. package/esm2022/lib/desy-tables/components/table/components/table-caption.component.mjs +4 -4
  117. package/esm2022/lib/desy-tables/components/table/components/table-cell.component.mjs +4 -4
  118. package/esm2022/lib/desy-tables/components/table/components/table-header.component.mjs +4 -4
  119. package/esm2022/lib/desy-tables/components/table/components/table-row.component.mjs +4 -4
  120. package/esm2022/lib/desy-tables/components/table/table.component.mjs +4 -4
  121. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +4 -4
  122. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +4 -4
  123. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +4 -4
  124. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +4 -4
  125. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +4 -4
  126. package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +5 -5
  127. package/esm2022/lib/desy-tables/desy-tables.module.mjs +5 -5
  128. package/esm2022/lib/desy-tables/directives/cell.directive.mjs +4 -4
  129. package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +4 -4
  130. package/esm2022/lib/desy-tables/directives/row.directive.mjs +4 -4
  131. package/esm2022/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +4 -4
  132. package/esm2022/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +4 -4
  133. package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +5 -5
  134. package/esm2022/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +4 -4
  135. package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +5 -5
  136. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +4 -4
  137. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +4 -4
  138. package/esm2022/lib/desy-views/components/alert/alert.component.mjs +4 -4
  139. package/esm2022/lib/desy-views/components/card/card-sectors/card-left.component.mjs +21 -0
  140. package/esm2022/lib/desy-views/components/card/card-sectors/card-right.component.mjs +21 -0
  141. package/esm2022/lib/desy-views/components/card/card-sectors/card-sub.component.mjs +21 -0
  142. package/esm2022/lib/desy-views/components/card/card-sectors/card-super.component.mjs +21 -0
  143. package/esm2022/lib/desy-views/components/card/card.component.mjs +47 -0
  144. package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +5 -40
  145. package/esm2022/lib/desy-views/components/description-list/definition/definition.component.mjs +4 -4
  146. package/esm2022/lib/desy-views/components/description-list/description-item/description-item.component.mjs +4 -4
  147. package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +4 -4
  148. package/esm2022/lib/desy-views/components/description-list/term/term.component.mjs +4 -4
  149. package/esm2022/lib/desy-views/components/details/details.component.mjs +4 -4
  150. package/esm2022/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +4 -4
  151. package/esm2022/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +4 -4
  152. package/esm2022/lib/desy-views/components/item/item-item/item-item.component.mjs +4 -4
  153. package/esm2022/lib/desy-views/components/item/item.component.mjs +4 -4
  154. package/esm2022/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +4 -4
  155. package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +4 -4
  156. package/esm2022/lib/desy-views/components/spinner/spinner.component.mjs +4 -4
  157. package/esm2022/lib/desy-views/components/status/status.component.mjs +4 -4
  158. package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +4 -4
  159. package/esm2022/lib/desy-views/components/tabs/panel/panel.component.mjs +4 -4
  160. package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +4 -4
  161. package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +12 -16
  162. package/esm2022/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +4 -4
  163. package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +4 -4
  164. package/esm2022/lib/desy-views/desy-views.module.mjs +32 -7
  165. package/esm2022/lib/desy-views/interfaces/tabs-items-data.mjs +1 -1
  166. package/esm2022/lib/desy-views/services/alert.service.mjs +4 -4
  167. package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +4 -4
  168. package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +4 -4
  169. package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +4 -4
  170. package/esm2022/lib/shared/components/content-base/content-base.component.mjs +4 -4
  171. package/esm2022/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +4 -4
  172. package/esm2022/lib/shared/directives/attribute-change.directive.mjs +4 -4
  173. package/esm2022/lib/shared/directives/click-outside.directive.mjs +4 -4
  174. package/esm2022/lib/shared/directives/content-change.directive.mjs +4 -4
  175. package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +4 -4
  176. package/esm2022/lib/shared/directives/inner-content.directive.mjs +4 -4
  177. package/esm2022/lib/shared/pipes/external-href.pipe.mjs +4 -4
  178. package/esm2022/lib/shared/pipes/inner-html.pipe.mjs +4 -4
  179. package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +4 -4
  180. package/esm2022/lib/shared/shared.module.mjs +5 -5
  181. package/esm2022/public-api.mjs +8 -1
  182. package/fesm2022/desy-angular.mjs +795 -662
  183. package/fesm2022/desy-angular.mjs.map +1 -1
  184. package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +1 -5
  185. package/lib/desy-nav/components/header/header-mobileText/header-mobile-text.component.d.ts +25 -0
  186. package/lib/desy-nav/components/header/header.component.d.ts +5 -1
  187. package/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.d.ts +1 -2
  188. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +6 -2
  189. package/lib/desy-nav/desy-nav.module.d.ts +30 -29
  190. package/lib/desy-nav/interfaces/header-mobile-text-data.d.ts +6 -0
  191. package/lib/desy-nav/interfaces/menu-vertical-items-data.d.ts +0 -1
  192. package/lib/desy-views/components/card/card-sectors/card-left.component.d.ts +10 -0
  193. package/lib/desy-views/components/card/card-sectors/card-right.component.d.ts +9 -0
  194. package/lib/desy-views/components/card/card-sectors/card-sub.component.d.ts +10 -0
  195. package/lib/desy-views/components/card/card-sectors/card-super.component.d.ts +10 -0
  196. package/lib/desy-views/components/card/card.component.d.ts +18 -0
  197. package/lib/desy-views/components/tabs/tabs.component.d.ts +1 -4
  198. package/lib/desy-views/desy-views.module.d.ts +11 -6
  199. package/lib/desy-views/interfaces/tabs-items-data.d.ts +1 -0
  200. package/package.json +2 -2
  201. package/public-api.d.ts +7 -0
@@ -92,10 +92,10 @@ export class NavComponent extends AccessibilityComponent {
92
92
  isFocusableItem(item) {
93
93
  return !item.active && !item.disabled;
94
94
  }
95
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
96
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NavComponent, selector: "desy-nav", inputs: { hasNav: "hasNav", idPrefix: "idPrefix", items: "items", classes: "classes" }, outputs: { clickEvent: "clickEvent" }, queries: [{ propertyName: "itemComponentList", predicate: NavItemComponent }], usesInheritance: true, ngImport: i0, template: "<ng-template #innerHtml>\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\n <li>\n <span *ngIf=\"item.active\"\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex\"\n (click)=\"onClick($event, item)\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </span>\n <a *ngIf=\"!item.active && item.href\"\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\n </a>\n <a *ngIf=\"!item.active && !item.href\"\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\n </a>\n </li>\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\n <div class=\"sr-only\">Separador</div>\n </li>\n </ng-container>\n</ng-template>\n\n\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\n [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n</ul>\n<ng-template #wrapIntoNav>\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul>\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }, { kind: "pipe", type: i5.ExternalHrefPipe, name: "externalHref" }] }); }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NavComponent, selector: "desy-nav", inputs: { hasNav: "hasNav", idPrefix: "idPrefix", items: "items", classes: "classes" }, outputs: { clickEvent: "clickEvent" }, queries: [{ propertyName: "itemComponentList", predicate: NavItemComponent }], usesInheritance: true, ngImport: i0, template: "<ng-template #innerHtml>\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\n <li>\n <span *ngIf=\"item.active\"\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex\"\n (click)=\"onClick($event, item)\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </span>\n <a *ngIf=\"!item.active && item.href\"\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\n </a>\n <a *ngIf=\"!item.active && !item.href\"\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\n </a>\n </li>\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\n <div class=\"sr-only\">Separador</div>\n </li>\n </ng-container>\n</ng-template>\n\n\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\n [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n</ul>\n<ng-template #wrapIntoNav>\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul>\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }, { kind: "pipe", type: i5.ExternalHrefPipe, name: "externalHref" }] }); }
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NavComponent, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NavComponent, decorators: [{
99
99
  type: Component,
100
100
  args: [{ selector: 'desy-nav', template: "<ng-template #innerHtml>\n <ng-container *ngFor=\"let item of getItemList(); index as i\">\n <li>\n <span *ngIf=\"item.active\"\n [class]=\"['flex items-center px-base py-sm font-semibold', item.classes] | makeHtmlList\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-disabled]=\"item.disabled ? item.disabled : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"hasNav ? 'true' : 'page'\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n [attr.tabindex]=\"item.tabindex\"\n (click)=\"onClick($event, item)\">\n <strong>\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </strong>\n </span>\n <a *ngIf=\"!item.active && item.href\"\n [href]=\"item.href | externalHref\" [target]=\"item.target\"\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\n </a>\n <a *ngIf=\"!item.active && !item.href\"\n [routerLink]=\"item.routerLink\" [fragment]=\"item.fragment\"\n [class]=\"['flex items-center px-base py-sm hover:bg-primary-base hover:text-white focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black', item.classes] | makeHtmlList\"\n [ngClass]=\"{'pointer-events-none': item.disabled}\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.tabindex]=\"item.disabled ? -1 : item.tabindex\"\n [attr.id]=\"getItemId(item, i)\"\n [attr.title]=\"item.title ? item.title : null\"\n [attr.role]=\"item.role ? item.role : null\"\n [attr.aria-label]=\"item.ariaLabel ? item.ariaLabel : null\"\n [attr.aria-describedby]=\"item.ariaDescribedBy ? item.ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"item.ariaLabelledBy ? item.ariaLabelledBy : null\"\n [attr.aria-hidden]=\"item.ariaHidden ? item.ariaHidden : null\"\n [attr.aria-controls]=\"item.ariaControls ? item.ariaControls : null\"\n [attr.aria-current]=\"item.ariaCurrent ? item.ariaCurrent : null\"\n [attr.aria-live]=\"item.ariaLive ? item.ariaLive : null\"\n [attr.aria-expanded]=\"item.ariaExpanded ? item.ariaExpanded : null\"\n [attr.aria-errormessage]=\"item.ariaErrorMessage ? item.ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"item.ariaHasPopup ? item.ariaHasPopup : null\"\n (keydown.arrowUp)=\"movePrevious($event, i)\"\n (keydown.arrowDown)=\"moveNext($event, i)\"\n (click)=\"onClick($event, item)\"\n (keydown.space)=\"simulateClick($event, item, i)\"\n (keydown.enter)=\"simulateClick($event, item, i)\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n <svg *ngIf=\"item.disabled\" viewBox=\"0 0 140 140\" height=\"1em\" width=\"1em\" xmlns=\"http://www.w3.org/2000/svg\" class=\"inline-block align-middle ml-sm text-neutral-base fill-current\" aria-hidden=\"true\" focusable=\"false\" ><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zM20 70a50 50 0 0174.8-43.4 2.51 2.51 0 011.23 1.84 2.48 2.48 0 01-.71 2.1L30.54 95.32a2.51 2.51 0 01-3.94-.52A49.63 49.63 0 0120 70zm100 0a50 50 0 01-74.8 43.4 2.51 2.51 0 01-1.23-1.84 2.48 2.48 0 01.71-2.1l64.78-64.78a2.51 2.51 0 013.94.52A49.63 49.63 0 01120 70z\"/></svg>\n </a>\n </li>\n <li *ngIf=\"item.divider\" class=\"my-sm border-b border-neutral-base\" aria-hidden=\"true\">\n <div class=\"sr-only\">Separador</div>\n </li>\n </ng-container>\n</ng-template>\n\n\n<ul *ngIf=\"!hasNav; else wrapIntoNav\"\n [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n</ul>\n<ng-template #wrapIntoNav>\n <nav [class]=\"['text-sm', classes] | makeHtmlList\"\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n <ul>\n <ng-container *ngTemplateOutlet=\"innerHtml\"></ng-container>\n </ul>\n </nav>\n</ng-template>\n" }]
101
101
  }], propDecorators: { hasNav: [{
@@ -112,4 +112,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
112
112
  type: ContentChildren,
113
113
  args: [NavItemComponent]
114
114
  }] } });
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbmF2L2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7OztBQU8vRCxNQUFNLE9BQU8sWUFBYSxTQUFRLHNCQUFzQjtJQUp4RDs7UUFNVyxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBS2IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0tBZ0c3RDtJQTdGQyxPQUFPLENBQUMsS0FBVSxFQUFFLElBQWlCO1FBQ25DLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUMxQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFD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RSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzVCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RixJQUFJLFFBQVEsRUFBRTtnQkFDWixRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWSxFQUFFLElBQWlCLEVBQUUsS0FBYTtRQUMxRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBR08sZUFBZSxDQUFDLElBQWlCO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDOzhHQXJHVSxZQUFZO2tHQUFaLFlBQVksaU5BUU4sZ0JBQWdCLG9EQzNCbkMsMndSQTJIQTs7MkZEeEdhLFlBQVk7a0JBSnhCLFNBQVM7K0JBQ0UsVUFBVTs4QkFLWCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQzRCLGlCQUFpQjtzQkFBbkQsZUFBZTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50XG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7TmF2SXRlbURhdGEsIE5hdkl0ZW1FdmVudERhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtOYXZJdGVtQ29tcG9uZW50fSBmcm9tICcuL25hdi1pdGVtL25hdi1pdGVtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZDb21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBoYXNOYXYgPSB0cnVlO1xuICBASW5wdXQoKSBpZFByZWZpeDogc3RyaW5nO1xuICBASW5wdXQoKSBpdGVtczogTmF2SXRlbURhdGFbXTtcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxOYXZJdGVtRXZlbnREYXRhPigpO1xuICBAQ29udGVudENoaWxkcmVuKE5hdkl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8TmF2SXRlbUNvbXBvbmVudD47XG5cbiAgb25DbGljayhldmVudDogYW55LCBpdGVtOiBOYXZJdGVtRGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zQWN0aXZlQ2hhbmdlID0gW107XG4gICAgaWYgKCFpdGVtLmFjdGl2ZSkge1xuICAgICAgaXRlbXNBY3RpdmVDaGFuZ2UucHVzaChpdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtTGlzdCA9IHRoaXMuZ2V0SXRlbUxpc3QoKTtcbiAgICBpdGVtTGlzdC5mb3JFYWNoKGkgPT4ge1xuICAgICAgaWYgKGkuYWN0aXZlICYmIGkgIT09IGl0ZW0pIHtcbiAgICAgICAgaXRlbXNBY3RpdmVDaGFuZ2UucHVzaChpKTtcbiAgICAgIH1cbiAgICAgIGkuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgaXRlbS5hY3RpdmUgPSB0cnVlO1xuXG4gICAgLy8gU2UgZW1pdGUgZWwgZXZlbnRvIHPDs2xvIHBhcmEgbG9zIGl0ZW1zIGN1eW8gdmFsb3IgZGUgYWN0aXZlIGhhIHNpZG8gbW9kaWZpY2Fkb1xuICAgIGl0ZW1zQWN0aXZlQ2hhbmdlLmZvckVhY2goaSA9PiB7XG4gICAgICBpZiAoaSBpbnN0YW5jZW9mICBOYXZJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgIGkuYWN0aXZlQ2hhbmdlLmVtaXQoaS5hY3RpdmUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoeyBpdGVtLCBldmVudCB9KTtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE5hdkl0ZW1Db21wb25lbnQpIHtcbiAgICAgIGl0ZW0uY2xpY2tFdmVudC5lbWl0KHsgaXRlbSwgZXZlbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbUxpc3QoKTogTmF2SXRlbURhdGFbXSB7XG4gICAgY29uc3QgaXRlbUxpc3QgPSB0aGlzLml0ZW1Db21wb25lbnRMaXN0ICYmIHRoaXMuaXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogdGhpcy5pdGVtcztcbiAgICBcbiAgICByZXR1cm4gaXRlbUxpc3Q7XG4gIH1cblxuICBnZXRJdGVtSWQoaXRlbTogTmF2SXRlbURhdGEsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCBpZDtcbiAgICBpZiAoaXRlbS5pZCkge1xuICAgICAgaWQgPSBpdGVtLmlkO1xuICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIGlkID0gdGhpcy5nZXRJZFByZWZpeCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZCA9IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctJyArIGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6ICduYXYtaXRlbSc7XG4gIH1cblxuICBtb3ZlUHJldmlvdXMoZXZlbnQ6IEV2ZW50LCBjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1MaXN0KCk7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG4gICAgd2hpbGUgKG5leHRJbmRleCA+PSAwICYmICF0aGlzLmlzRm9jdXNhYmxlSXRlbShpdGVtc1tuZXh0SW5kZXhdKSkge1xuICAgICAgbmV4dEluZGV4LS07XG4gICAgfVxuXG4gICAgaWYgKG5leHRJbmRleCA8IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgY29uc3QgaXRlbUVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmdldEl0ZW1JZChpdGVtc1tuZXh0SW5kZXhdLCBuZXh0SW5kZXgpKTtcbiAgICAgIGlmIChpdGVtRWxlbSkge1xuICAgICAgICBpdGVtRWxlbS5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1vdmVOZXh0KGV2ZW50OiBFdmVudCwgY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtTGlzdCgpO1xuICAgIGxldCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuICAgIHdoaWxlIChuZXh0SW5kZXggPCBpdGVtcy5sZW5ndGggJiYgIXRoaXMuaXNGb2N1c2FibGVJdGVtKGl0ZW1zW25leHRJbmRleF0pKSB7XG4gICAgICBuZXh0SW5kZXgrKztcbiAgICB9XG5cbiAgICBpZiAobmV4dEluZGV4IDwgaXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpdGVtRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0SXRlbUlkKGl0ZW1zW25leHRJbmRleF0sIG5leHRJbmRleCkpO1xuICAgICAgaWYgKGl0ZW1FbGVtKSB7XG4gICAgICAgIGl0ZW1FbGVtLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2ltdWxhdGVDbGljayhldmVudDogRXZlbnQsIGl0ZW06IE5hdkl0ZW1EYXRhLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5nZXRJdGVtSWQoaXRlbSwgaW5kZXgpKTtcbiAgICBlbGVtZW50Py5jbGljaygpO1xuICB9XG5cblxuICBwcml2YXRlIGlzRm9jdXNhYmxlSXRlbShpdGVtOiBOYXZJdGVtRGF0YSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXRlbS5hY3RpdmUgJiYgIWl0ZW0uZGlzYWJsZWQ7XG4gIH1cblxufVxuIiwiPG5nLXRlbXBsYXRlICNpbm5lckh0bWw+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbUxpc3QoKTsgaW5kZXggYXMgaVwiPlxuICAgIDxsaT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICBbY2xhc3NdPVwiWydmbGV4IGl0ZW1zLWNlbnRlciBweC1iYXNlIHB5LXNtIGZvbnQtc2VtaWJvbGQnLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImdldEl0ZW1JZChpdGVtLCBpKVwiXG4gICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpdGVtLnRpdGxlID8gaXRlbS50aXRsZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJpdGVtLnJvbGUgPyBpdGVtLnJvbGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5hcmlhTGFiZWwgPyBpdGVtLmFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeSA/IGl0ZW0uYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeSA/IGl0ZW0uYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uYXJpYUhpZGRlbiA/IGl0ZW0uYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkID8gaXRlbS5kaXNhYmxlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpdGVtLmFyaWFDb250cm9scyA/IGl0ZW0uYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaGFzTmF2ID8gJ3RydWUnIDogJ3BhZ2UnXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJpdGVtLmFyaWFMaXZlID8gaXRlbS5hcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZCA/IGl0ZW0uYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2UgPyBpdGVtLmFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXAgPyBpdGVtLmFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0sIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhICpuZ0lmPVwiIWl0ZW0uYWN0aXZlICYmIGl0ZW0uaHJlZlwiXG4gICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS5ocmVmIHwgZXh0ZXJuYWxIcmVmXCIgW3RhcmdldF09XCJpdGVtLnRhcmdldFwiXG4gICAgICAgICAgICAgW2NsYXNzXT1cIlsnZmxleCBpdGVtcy1jZW50ZXIgcHgtYmFzZSBweS1zbSBob3ZlcjpiZy1wcmltYXJ5LWJhc2UgaG92ZXI6dGV4dC13aGl0ZSBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2snLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3BvaW50ZXItZXZlbnRzLW5vbmUnOiBpdGVtLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXRlbS5kaXNhYmxlZCA/IC0xIDogaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpdGVtLnRpdGxlID8gaXRlbS50aXRsZSA6IG51bGxcIlxuICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiaXRlbS5yb2xlID8gaXRlbS5yb2xlIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCA/IGl0ZW0uYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeSA/IGl0ZW0uYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnkgPyBpdGVtLmFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuID8gaXRlbS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpdGVtLmFyaWFDb250cm9scyA/IGl0ZW0uYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uYXJpYUN1cnJlbnQgPyBpdGVtLmFyaWFDdXJyZW50IDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmUgPyBpdGVtLmFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZCA/IGl0ZW0uYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlID8gaXRlbS5hcmlhRXJyb3JNZXNzYWdlIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cCA/IGl0ZW0uYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJtb3ZlUHJldmlvdXMoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm1vdmVOZXh0KCRldmVudCwgaSlcIlxuICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNpbXVsYXRlQ2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiXG4gICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2ltdWxhdGVDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0sIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdGVtLmRpc2FibGVkXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgaGVpZ2h0PVwiMWVtXCIgd2lkdGg9XCIxZW1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpbmxpbmUtYmxvY2sgYWxpZ24tbWlkZGxlIG1sLXNtIHRleHQtbmV1dHJhbC1iYXNlIGZpbGwtY3VycmVudFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCIgPjxwYXRoIGQ9XCJNNzAgMGE3MCA3MCAwIDEwNzAgNzBBNzAuMDggNzAuMDggMCAwMDcwIDB6TTIwIDcwYTUwIDUwIDAgMDE3NC44LTQzLjQgMi41MSAyLjUxIDAgMDExLjIzIDEuODQgMi40OCAyLjQ4IDAgMDEtLjcxIDIuMUwzMC41NCA5NS4zMmEyLjUxIDIuNTEgMCAwMS0zLjk0LS41MkE0OS42MyA0OS42MyAwIDAxMjAgNzB6bTEwMCAwYTUwIDUwIDAgMDEtNzQuOCA0My40IDIuNTEgMi41MSAwIDAxLTEuMjMtMS44NCAyLjQ4IDIuNDggMCAwMS43MS0yLjFsNjQuNzgtNjQuNzhhMi41MSAyLjUxIDAgMDEzLjk0LjUyQTQ5LjYzIDQ5LjYzIDAgMDExMjAgNzB6XCIvPjwvc3ZnPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YSAqbmdJZj1cIiFpdGVtLmFjdGl2ZSAmJiAhaXRlbS5ocmVmXCJcbiAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiIFtmcmFnbWVudF09XCJpdGVtLmZyYWdtZW50XCJcbiAgICAgICAgICAgICAgIFtjbGFzc109XCJbJ2ZsZXggaXRlbXMtY2VudGVyIHB4LWJhc2UgcHktc20gaG92ZXI6YmctcHJpbWFyeS1iYXNlIGhvdmVyOnRleHQtd2hpdGUgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyBmb2N1czp0ZXh0LWJsYWNrJywgaXRlbS5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3BvaW50ZXItZXZlbnRzLW5vbmUnOiBpdGVtLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIml0ZW0uZGlzYWJsZWQgPyAtMSA6IGl0ZW0udGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIml0ZW0udGl0bGUgPyBpdGVtLnRpdGxlIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIml0ZW0ucm9sZSA/IGl0ZW0ucm9sZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCA/IGl0ZW0uYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5ID8gaXRlbS5hcmlhRGVzY3JpYmVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5ID8gaXRlbS5hcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuID8gaXRlbS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIml0ZW0uYXJpYUNvbnRyb2xzID8gaXRlbS5hcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50ID8gaXRlbS5hcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmUgPyBpdGVtLmFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkID8gaXRlbS5hcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZSA/IGl0ZW0uYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cCA/IGl0ZW0uYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cIm1vdmVQcmV2aW91cygkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJtb3ZlTmV4dCgkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2ltdWxhdGVDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNpbXVsYXRlQ2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLCBodG1sOiBpdGVtLmh0bWwsIHRleHQ6IGl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXRlbS5kaXNhYmxlZFwiIHZpZXdCb3g9XCIwIDAgMTQwIDE0MFwiIGhlaWdodD1cIjFlbVwiIHdpZHRoPVwiMWVtXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaW5saW5lLWJsb2NrIGFsaWduLW1pZGRsZSBtbC1zbSB0ZXh0LW5ldXRyYWwtYmFzZSBmaWxsLWN1cnJlbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiID48cGF0aCBkPVwiTTcwIDBhNzAgNzAgMCAxMDcwIDcwQTcwLjA4IDcwLjA4IDAgMDA3MCAwek0yMCA3MGE1MCA1MCAwIDAxNzQuOC00My40IDIuNTEgMi41MSAwIDAxMS4yMyAxLjg0IDIuNDggMi40OCAwIDAxLS43MSAyLjFMMzAuNTQgOTUuMzJhMi41MSAyLjUxIDAgMDEtMy45NC0uNTJBNDkuNjMgNDkuNjMgMCAwMTIwIDcwem0xMDAgMGE1MCA1MCAwIDAxLTc0LjggNDMuNCAyLjUxIDIuNTEgMCAwMS0xLjIzLTEuODQgMi40OCAyLjQ4IDAgMDEuNzEtMi4xbDY0Ljc4LTY0Ljc4YTIuNTEgMi41MSAwIDAxMy45NC41MkE0OS42MyA0OS42MyAwIDAxMTIwIDcwelwiLz48L3N2Zz5cbiAgICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nSWY9XCJpdGVtLmRpdmlkZXJcIiBjbGFzcz1cIm15LXNtIGJvcmRlci1iIGJvcmRlci1uZXV0cmFsLWJhc2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNyLW9ubHlcIj5TZXBhcmFkb3I8L2Rpdj5cbiAgICA8L2xpPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPHVsICpuZ0lmPVwiIWhhc05hdjsgZWxzZSB3cmFwSW50b05hdlwiXG4gICAgW2NsYXNzXT1cIlsndGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5ID8gYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGl2ZV09XCJhcmlhTGl2ZSA/IGFyaWFMaXZlIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwID8gYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXggPyB0YWJpbmRleCA6IG51bGxcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVySHRtbFwiPjwvbmctY29udGFpbmVyPlxuPC91bD5cbjxuZy10ZW1wbGF0ZSAjd3JhcEludG9OYXY+XG4gIDxuYXYgW2NsYXNzXT1cIlsndGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSA/IGFyaWFEZXNjcmliZWRCeSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgPyBhcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZCA/IGFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9scyA/IGFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmUgPyBhcmlhTGl2ZSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZCA/IGFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cCA/IGFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleCA/IHRhYmluZGV4IDogbnVsbFwiPlxuICAgIDx1bD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lckh0bWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbmF2L2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxzQkFBc0IsRUFDdkIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7OztBQU8vRCxNQUFNLE9BQU8sWUFBYSxTQUFRLHNCQUFzQjtJQUp4RDs7UUFNVyxXQUFNLEdBQUcsSUFBSSxDQUFDO1FBS2IsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0tBZ0c3RDtJQTdGQyxPQUFPLENBQUMsS0FBVSxFQUFFLElBQWlCO1FBQ25DLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFO2dCQUMxQixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDM0I7WUFDRCxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBR25CLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsWUFBYSxnQkFBZ0IsRUFBRTtnQkFDbEMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2FBQy9CO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksSUFBSSxZQUFZLGdCQUFnQixFQUFFO1lBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBRTdILE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBaUIsRUFBRSxLQUFhO1FBQ3hDLElBQUksRUFBRSxDQUFDO1FBQ1AsSUFBSSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1gsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7U0FDZDthQUFNLElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtZQUN0QixFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUM7U0FDdkM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFZLEVBQUUsWUFBb0I7UUFDN0MsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFNBQVMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUU7WUFDaEUsU0FBUyxFQUFFLENBQUM7U0FDYjtRQUVELElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDNUIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3RGLElBQUksUUFBUSxFQUFFO2dCQUNaLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNsQjtTQUNGO0lBQ0gsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFZLEVBQUUsWUFBb0I7UUFDekMsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQyxJQUFJLFNBQVMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sU0FBUyxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1lBQzFFLFNBQVMsRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFO1lBQzVCLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RixJQUFJLFFBQVEsRUFBRTtnQkFDWixRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDbEI7U0FDRjtJQUNILENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWSxFQUFFLElBQWlCLEVBQUUsS0FBYTtRQUMxRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBR08sZUFBZSxDQUFDLElBQWlCO1FBQ3ZDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDOytHQXJHVSxZQUFZO21HQUFaLFlBQVksaU5BUU4sZ0JBQWdCLG9EQzNCbkMsMndSQTJIQTs7NEZEeEdhLFlBQVk7a0JBSnhCLFNBQVM7K0JBQ0UsVUFBVTs4QkFLWCxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQzRCLGlCQUFpQjtzQkFBbkQsZUFBZTt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50XG59IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcbmltcG9ydCB7TmF2SXRlbURhdGEsIE5hdkl0ZW1FdmVudERhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtOYXZJdGVtQ29tcG9uZW50fSBmcm9tICcuL25hdi1pdGVtL25hdi1pdGVtLmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBOYXZDb21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBoYXNOYXYgPSB0cnVlO1xuICBASW5wdXQoKSBpZFByZWZpeDogc3RyaW5nO1xuICBASW5wdXQoKSBpdGVtczogTmF2SXRlbURhdGFbXTtcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxOYXZJdGVtRXZlbnREYXRhPigpO1xuICBAQ29udGVudENoaWxkcmVuKE5hdkl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb25lbnRMaXN0OiBRdWVyeUxpc3Q8TmF2SXRlbUNvbXBvbmVudD47XG5cbiAgb25DbGljayhldmVudDogYW55LCBpdGVtOiBOYXZJdGVtRGF0YSk6IHZvaWQge1xuICAgIGNvbnN0IGl0ZW1zQWN0aXZlQ2hhbmdlID0gW107XG4gICAgaWYgKCFpdGVtLmFjdGl2ZSkge1xuICAgICAgaXRlbXNBY3RpdmVDaGFuZ2UucHVzaChpdGVtKTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtTGlzdCA9IHRoaXMuZ2V0SXRlbUxpc3QoKTtcbiAgICBpdGVtTGlzdC5mb3JFYWNoKGkgPT4ge1xuICAgICAgaWYgKGkuYWN0aXZlICYmIGkgIT09IGl0ZW0pIHtcbiAgICAgICAgaXRlbXNBY3RpdmVDaGFuZ2UucHVzaChpKTtcbiAgICAgIH1cbiAgICAgIGkuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgaXRlbS5hY3RpdmUgPSB0cnVlO1xuXG4gICAgLy8gU2UgZW1pdGUgZWwgZXZlbnRvIHPDs2xvIHBhcmEgbG9zIGl0ZW1zIGN1eW8gdmFsb3IgZGUgYWN0aXZlIGhhIHNpZG8gbW9kaWZpY2Fkb1xuICAgIGl0ZW1zQWN0aXZlQ2hhbmdlLmZvckVhY2goaSA9PiB7XG4gICAgICBpZiAoaSBpbnN0YW5jZW9mICBOYXZJdGVtQ29tcG9uZW50KSB7XG4gICAgICAgIGkuYWN0aXZlQ2hhbmdlLmVtaXQoaS5hY3RpdmUpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5jbGlja0V2ZW50LmVtaXQoeyBpdGVtLCBldmVudCB9KTtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE5hdkl0ZW1Db21wb25lbnQpIHtcbiAgICAgIGl0ZW0uY2xpY2tFdmVudC5lbWl0KHsgaXRlbSwgZXZlbnQgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0SXRlbUxpc3QoKTogTmF2SXRlbURhdGFbXSB7XG4gICAgY29uc3QgaXRlbUxpc3QgPSB0aGlzLml0ZW1Db21wb25lbnRMaXN0ICYmIHRoaXMuaXRlbUNvbXBvbmVudExpc3QubGVuZ3RoID4gMCA/IHRoaXMuaXRlbUNvbXBvbmVudExpc3QudG9BcnJheSgpIDogdGhpcy5pdGVtcztcbiAgICBcbiAgICByZXR1cm4gaXRlbUxpc3Q7XG4gIH1cblxuICBnZXRJdGVtSWQoaXRlbTogTmF2SXRlbURhdGEsIGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCBpZDtcbiAgICBpZiAoaXRlbS5pZCkge1xuICAgICAgaWQgPSBpdGVtLmlkO1xuICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgIGlkID0gdGhpcy5nZXRJZFByZWZpeCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZCA9IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctJyArIGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBnZXRJZFByZWZpeCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6ICduYXYtaXRlbSc7XG4gIH1cblxuICBtb3ZlUHJldmlvdXMoZXZlbnQ6IEV2ZW50LCBjdXJyZW50SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEl0ZW1MaXN0KCk7XG4gICAgbGV0IG5leHRJbmRleCA9IGN1cnJlbnRJbmRleCAtIDE7XG4gICAgd2hpbGUgKG5leHRJbmRleCA+PSAwICYmICF0aGlzLmlzRm9jdXNhYmxlSXRlbShpdGVtc1tuZXh0SW5kZXhdKSkge1xuICAgICAgbmV4dEluZGV4LS07XG4gICAgfVxuXG4gICAgaWYgKG5leHRJbmRleCA8IGl0ZW1zLmxlbmd0aCkge1xuICAgICAgY29uc3QgaXRlbUVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmdldEl0ZW1JZChpdGVtc1tuZXh0SW5kZXhdLCBuZXh0SW5kZXgpKTtcbiAgICAgIGlmIChpdGVtRWxlbSkge1xuICAgICAgICBpdGVtRWxlbS5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG1vdmVOZXh0KGV2ZW50OiBFdmVudCwgY3VycmVudEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRJdGVtTGlzdCgpO1xuICAgIGxldCBuZXh0SW5kZXggPSBjdXJyZW50SW5kZXggKyAxO1xuICAgIHdoaWxlIChuZXh0SW5kZXggPCBpdGVtcy5sZW5ndGggJiYgIXRoaXMuaXNGb2N1c2FibGVJdGVtKGl0ZW1zW25leHRJbmRleF0pKSB7XG4gICAgICBuZXh0SW5kZXgrKztcbiAgICB9XG5cbiAgICBpZiAobmV4dEluZGV4IDwgaXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpdGVtRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZ2V0SXRlbUlkKGl0ZW1zW25leHRJbmRleF0sIG5leHRJbmRleCkpO1xuICAgICAgaWYgKGl0ZW1FbGVtKSB7XG4gICAgICAgIGl0ZW1FbGVtLmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2ltdWxhdGVDbGljayhldmVudDogRXZlbnQsIGl0ZW06IE5hdkl0ZW1EYXRhLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5nZXRJdGVtSWQoaXRlbSwgaW5kZXgpKTtcbiAgICBlbGVtZW50Py5jbGljaygpO1xuICB9XG5cblxuICBwcml2YXRlIGlzRm9jdXNhYmxlSXRlbShpdGVtOiBOYXZJdGVtRGF0YSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhaXRlbS5hY3RpdmUgJiYgIWl0ZW0uZGlzYWJsZWQ7XG4gIH1cblxufVxuIiwiPG5nLXRlbXBsYXRlICNpbm5lckh0bWw+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZ2V0SXRlbUxpc3QoKTsgaW5kZXggYXMgaVwiPlxuICAgIDxsaT5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICBbY2xhc3NdPVwiWydmbGV4IGl0ZW1zLWNlbnRlciBweC1iYXNlIHB5LXNtIGZvbnQtc2VtaWJvbGQnLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICAgIFthdHRyLmlkXT1cImdldEl0ZW1JZChpdGVtLCBpKVwiXG4gICAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpdGVtLnRpdGxlID8gaXRlbS50aXRsZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJpdGVtLnJvbGUgPyBpdGVtLnJvbGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaXRlbS5hcmlhTGFiZWwgPyBpdGVtLmFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeSA/IGl0ZW0uYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeSA/IGl0ZW0uYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cIml0ZW0uYXJpYUhpZGRlbiA/IGl0ZW0uYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkID8gaXRlbS5kaXNhYmxlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpdGVtLmFyaWFDb250cm9scyA/IGl0ZW0uYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiaGFzTmF2ID8gJ3RydWUnIDogJ3BhZ2UnXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJpdGVtLmFyaWFMaXZlID8gaXRlbS5hcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZCA/IGl0ZW0uYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2UgPyBpdGVtLmFyaWFFcnJvck1lc3NhZ2UgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXAgPyBpdGVtLmFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgICAoY2xpY2spPVwib25DbGljaygkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgIDxzdHJvbmc+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0sIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zdHJvbmc+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxhICpuZ0lmPVwiIWl0ZW0uYWN0aXZlICYmIGl0ZW0uaHJlZlwiXG4gICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS5ocmVmIHwgZXh0ZXJuYWxIcmVmXCIgW3RhcmdldF09XCJpdGVtLnRhcmdldFwiXG4gICAgICAgICAgICAgW2NsYXNzXT1cIlsnZmxleCBpdGVtcy1jZW50ZXIgcHgtYmFzZSBweS1zbSBob3ZlcjpiZy1wcmltYXJ5LWJhc2UgaG92ZXI6dGV4dC13aGl0ZSBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnNoYWRvdy1vdXRsaW5lLWZvY3VzIGZvY3VzOnRleHQtYmxhY2snLCBpdGVtLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3BvaW50ZXItZXZlbnRzLW5vbmUnOiBpdGVtLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXRlbS5kaXNhYmxlZCA/IC0xIDogaXRlbS50YWJpbmRleFwiXG4gICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICBbYXR0ci50aXRsZV09XCJpdGVtLnRpdGxlID8gaXRlbS50aXRsZSA6IG51bGxcIlxuICAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiaXRlbS5yb2xlID8gaXRlbS5yb2xlIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCA/IGl0ZW0uYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeSA/IGl0ZW0uYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnkgPyBpdGVtLmFyaWFMYWJlbGxlZEJ5IDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuID8gaXRlbS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJpdGVtLmFyaWFDb250cm9scyA/IGl0ZW0uYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uYXJpYUN1cnJlbnQgPyBpdGVtLmFyaWFDdXJyZW50IDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmUgPyBpdGVtLmFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZCA/IGl0ZW0uYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1lcnJvcm1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlID8gaXRlbS5hcmlhRXJyb3JNZXNzYWdlIDogbnVsbFwiXG4gICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cCA/IGl0ZW0uYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgKGtleWRvd24uYXJyb3dVcCk9XCJtb3ZlUHJldmlvdXMoJGV2ZW50LCBpKVwiXG4gICAgICAgICAgICAgKGtleWRvd24uYXJyb3dEb3duKT1cIm1vdmVOZXh0KCRldmVudCwgaSlcIlxuICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cInNpbXVsYXRlQ2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiXG4gICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwic2ltdWxhdGVDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0sIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpdGVtLmRpc2FibGVkXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgaGVpZ2h0PVwiMWVtXCIgd2lkdGg9XCIxZW1cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJpbmxpbmUtYmxvY2sgYWxpZ24tbWlkZGxlIG1sLXNtIHRleHQtbmV1dHJhbC1iYXNlIGZpbGwtY3VycmVudFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIGZvY3VzYWJsZT1cImZhbHNlXCIgPjxwYXRoIGQ9XCJNNzAgMGE3MCA3MCAwIDEwNzAgNzBBNzAuMDggNzAuMDggMCAwMDcwIDB6TTIwIDcwYTUwIDUwIDAgMDE3NC44LTQzLjQgMi41MSAyLjUxIDAgMDExLjIzIDEuODQgMi40OCAyLjQ4IDAgMDEtLjcxIDIuMUwzMC41NCA5NS4zMmEyLjUxIDIuNTEgMCAwMS0zLjk0LS41MkE0OS42MyA0OS42MyAwIDAxMjAgNzB6bTEwMCAwYTUwIDUwIDAgMDEtNzQuOCA0My40IDIuNTEgMi41MSAwIDAxLTEuMjMtMS44NCAyLjQ4IDIuNDggMCAwMS43MS0yLjFsNjQuNzgtNjQuNzhhMi41MSAyLjUxIDAgMDEzLjk0LjUyQTQ5LjYzIDQ5LjYzIDAgMDExMjAgNzB6XCIvPjwvc3ZnPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8YSAqbmdJZj1cIiFpdGVtLmFjdGl2ZSAmJiAhaXRlbS5ocmVmXCJcbiAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiIFtmcmFnbWVudF09XCJpdGVtLmZyYWdtZW50XCJcbiAgICAgICAgICAgICAgIFtjbGFzc109XCJbJ2ZsZXggaXRlbXMtY2VudGVyIHB4LWJhc2UgcHktc20gaG92ZXI6YmctcHJpbWFyeS1iYXNlIGhvdmVyOnRleHQtd2hpdGUgZm9jdXM6Ymctd2FybmluZy1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpzaGFkb3ctb3V0bGluZS1mb2N1cyBmb2N1czp0ZXh0LWJsYWNrJywgaXRlbS5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3BvaW50ZXItZXZlbnRzLW5vbmUnOiBpdGVtLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLnRhYmluZGV4XT1cIml0ZW0uZGlzYWJsZWQgPyAtMSA6IGl0ZW0udGFiaW5kZXhcIlxuICAgICAgICAgICAgICAgW2F0dHIuaWRdPVwiZ2V0SXRlbUlkKGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIml0ZW0udGl0bGUgPyBpdGVtLnRpdGxlIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIml0ZW0ucm9sZSA/IGl0ZW0ucm9sZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpdGVtLmFyaWFMYWJlbCA/IGl0ZW0uYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5ID8gaXRlbS5hcmlhRGVzY3JpYmVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5ID8gaXRlbS5hcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuID8gaXRlbS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cIml0ZW0uYXJpYUNvbnRyb2xzID8gaXRlbS5hcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50ID8gaXRlbS5hcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1saXZlXT1cIml0ZW0uYXJpYUxpdmUgPyBpdGVtLmFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkID8gaXRlbS5hcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZSA/IGl0ZW0uYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cCA/IGl0ZW0uYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bi5hcnJvd1VwKT1cIm1vdmVQcmV2aW91cygkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLmFycm93RG93bik9XCJtb3ZlTmV4dCgkZXZlbnQsIGkpXCJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwic2ltdWxhdGVDbGljaygkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInNpbXVsYXRlQ2xpY2soJGV2ZW50LCBpdGVtLCBpKVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLCBodG1sOiBpdGVtLmh0bWwsIHRleHQ6IGl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXRlbS5kaXNhYmxlZFwiIHZpZXdCb3g9XCIwIDAgMTQwIDE0MFwiIGhlaWdodD1cIjFlbVwiIHdpZHRoPVwiMWVtXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaW5saW5lLWJsb2NrIGFsaWduLW1pZGRsZSBtbC1zbSB0ZXh0LW5ldXRyYWwtYmFzZSBmaWxsLWN1cnJlbnRcIiBhcmlhLWhpZGRlbj1cInRydWVcIiBmb2N1c2FibGU9XCJmYWxzZVwiID48cGF0aCBkPVwiTTcwIDBhNzAgNzAgMCAxMDcwIDcwQTcwLjA4IDcwLjA4IDAgMDA3MCAwek0yMCA3MGE1MCA1MCAwIDAxNzQuOC00My40IDIuNTEgMi41MSAwIDAxMS4yMyAxLjg0IDIuNDggMi40OCAwIDAxLS43MSAyLjFMMzAuNTQgOTUuMzJhMi41MSAyLjUxIDAgMDEtMy45NC0uNTJBNDkuNjMgNDkuNjMgMCAwMTIwIDcwem0xMDAgMGE1MCA1MCAwIDAxLTc0LjggNDMuNCAyLjUxIDIuNTEgMCAwMS0xLjIzLTEuODQgMi40OCAyLjQ4IDAgMDEuNzEtMi4xbDY0Ljc4LTY0Ljc4YTIuNTEgMi41MSAwIDAxMy45NC41MkE0OS42MyA0OS42MyAwIDAxMTIwIDcwelwiLz48L3N2Zz5cbiAgICAgICAgICA8L2E+XG4gICAgPC9saT5cbiAgICA8bGkgKm5nSWY9XCJpdGVtLmRpdmlkZXJcIiBjbGFzcz1cIm15LXNtIGJvcmRlci1iIGJvcmRlci1uZXV0cmFsLWJhc2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNyLW9ubHlcIj5TZXBhcmFkb3I8L2Rpdj5cbiAgICA8L2xpPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctdGVtcGxhdGU+XG5cblxuPHVsICpuZ0lmPVwiIWhhc05hdjsgZWxzZSB3cmFwSW50b05hdlwiXG4gICAgW2NsYXNzXT1cIlsndGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaWJlZEJ5ID8gYXJpYURlc2NyaWJlZEJ5IDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtbGl2ZV09XCJhcmlhTGl2ZSA/IGFyaWFMaXZlIDogbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwID8gYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXggPyB0YWJpbmRleCA6IG51bGxcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVySHRtbFwiPjwvbmctY29udGFpbmVyPlxuPC91bD5cbjxuZy10ZW1wbGF0ZSAjd3JhcEludG9OYXY+XG4gIDxuYXYgW2NsYXNzXT1cIlsndGV4dC1zbScsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbCA/IGFyaWFMYWJlbCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSA/IGFyaWFEZXNjcmliZWRCeSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgPyBhcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZCA/IGFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9scyA/IGFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWxpdmVdPVwiYXJpYUxpdmUgPyBhcmlhTGl2ZSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZCA/IGFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cCA/IGFyaWFIYXNQb3B1cCA6IG51bGxcIlxuICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleCA/IHRhYmluZGV4IDogbnVsbFwiPlxuICAgIDx1bD5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lckh0bWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L25hdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -2,10 +2,10 @@ import { Component, Input } from '@angular/core';
2
2
  import { ContentBaseComponent } from '../../../../shared/components';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NotificationItemComponent extends ContentBaseComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NotificationItemComponent, selector: "desy-notification-item", inputs: { href: "href", target: "target", routerLink: "routerLink", fragment: "fragment", id: "id" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationItemComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NotificationItemComponent, selector: "desy-notification-item", inputs: { href: "href", target: "target", routerLink: "routerLink", fragment: "fragment", id: "id" }, usesInheritance: true, ngImport: i0, template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>', isInline: true }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationItemComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationItemComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-notification-item',
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
22
22
  }], id: [{
23
23
  type: Input
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1uYXYvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQU9uRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9COzhHQUF0RCx5QkFBeUI7a0dBQXpCLHlCQUF5QiwyTEFGMUIsdUVBQXVFOzsyRkFFdEUseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSx1RUFBdUU7aUJBQ2xGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQge05vdGlmaWNhdGlvbkl0ZW1zRGF0YX0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktbm90aWZpY2F0aW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPidcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgTm90aWZpY2F0aW9uSXRlbXNEYXRhIHtcbiAgQElucHV0KCkgaHJlZjogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlckxpbms/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZyYWdtZW50Pzogc3RyaW5nO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xufVxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1uYXYvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOztBQU9uRSxNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9COytHQUF0RCx5QkFBeUI7bUdBQXpCLHlCQUF5QiwyTEFGMUIsdUVBQXVFOzs0RkFFdEUseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFFBQVEsRUFBRSx1RUFBdUU7aUJBQ2xGOzhCQUVVLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQge05vdGlmaWNhdGlvbkl0ZW1zRGF0YX0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktbm90aWZpY2F0aW9uLWl0ZW0nLFxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPidcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uSXRlbUNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgTm90aWZpY2F0aW9uSXRlbXNEYXRhIHtcbiAgQElucHV0KCkgaHJlZjogc3RyaW5nO1xuICBASW5wdXQoKSB0YXJnZXQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJvdXRlckxpbms/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGZyYWdtZW50Pzogc3RyaW5nO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xufVxuIl19
@@ -44,22 +44,20 @@ export class NotificationComponent extends AccessibilityComponent {
44
44
  this.displayDefaultIcon = empty;
45
45
  this.changeDetectorRef.detectChanges();
46
46
  }
47
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: NotificationComponent, selector: "desy-notification", inputs: { id: "id", classes: "classes", isOpen: "isOpen", title: "title", description: "description", content: "content", items: "items", icon: "icon", type: "type", isDismissible: "isDismissible", headingLevel: "headingLevel" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "titleComponent", predicate: TitleComponent }, { propertyName: "descriptionComponent", predicate: DescriptionComponent }, { propertyName: "contentComponent", predicate: ContentComponent }, { propertyName: "iconComponent", predicate: IconComponent }, { propertyName: "itemCompontents", predicate: NotificationItemComponent }], usesInheritance: true, ngImport: i0, template: "<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-notification ' + classes : type==='success' ? 'c-notification c-notification--' + type : type==='alert' ? 'c-notification c-notification--' + type : 'c-notification c-notification--primary') \"\n *ngIf=\"isOpen && !isDismissing\"\n @displayNotification\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngIf=\"iconComponent || icon || type\" class=\"h-full mr-base\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container *ngIf=\"displayDefaultIcon && type\">\n <ng-container [ngSwitch]=\"getType()\">\n <svg *ngSwitchCase=\"'success'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-success-dark\" aria-label=\"\u00C9xito\" focusable=\"false\" role=\"img\"><path d=\"M39.94 125a19.88 19.88 0 01-15.53-7.81L2.48 92.26a10 10 0 0115-13.2l20.55 23.39a2.5 2.5 0 003.68.08l81-84.42a10.002 10.002 0 1114.5 13.78l-82.02 86.33A19.41 19.41 0 0139.94 125z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'alert'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-alert-base\" aria-label=\"Error\" focusable=\"false\" role=\"img\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'info'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-primary-base\" aria-label=\"Informaci\u00F3n\" focusable=\"false\" role=\"img\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"lg:flex flex-1 self-center\">\n <div class=\"lg:flex-1 lg:self-center\">\n <ng-container *ngIf=\"titleComponent || title\" [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h5>\n <p *ngSwitchDefault [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ng-container *ngIf=\"descriptionComponent || description\">\n <p [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ul *ngIf=\"(itemCompontents && itemCompontents.length > 0) || items\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <li *ngIf=\"item.routerLink || item.href\">\n <a *ngIf=\"item.routerLink\" class=\"c-link\"\n [routerLink]=\"item.routerLink\"\n [fragment]=\"item.fragment\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n <a *ngIf=\"!item.routerLink && item.href\" class=\"c-link\"\n [href]=\"item.href | externalHref\"\n [target]=\"item.target\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n </li>\n <li *ngIf=\"!item.routerLink && !item.href\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n <p *ngIf=\"contentComponent || content\" [class]=\"['text-sm', contentComponent ? contentComponent.classes : content.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: contentComponent,\n html: content ? content.html : null,\n text: content ? content.text : null\n }\"></ng-container>\n </p>\n </div>\n <ng-container *ngIf=\"isDismissible\">\n <div class=\"absolute top-0 right-0 p-sm\">\n <button (click)=\"dismiss()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar notificaci\u00F3n\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }, { kind: "pipe", type: i5.ExternalHrefPipe, name: "externalHref" }], animations: [
47
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: NotificationComponent, selector: "desy-notification", inputs: { id: "id", classes: "classes", isOpen: "isOpen", title: "title", description: "description", content: "content", items: "items", icon: "icon", type: "type", isDismissible: "isDismissible", headingLevel: "headingLevel" }, outputs: { isOpenChange: "isOpenChange" }, queries: [{ propertyName: "titleComponent", predicate: TitleComponent }, { propertyName: "descriptionComponent", predicate: DescriptionComponent }, { propertyName: "contentComponent", predicate: ContentComponent }, { propertyName: "iconComponent", predicate: IconComponent }, { propertyName: "itemCompontents", predicate: NotificationItemComponent }], usesInheritance: true, ngImport: i0, template: "<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-notification ' + classes : type==='success' ? 'c-notification c-notification--' + type : type==='alert' ? 'c-notification c-notification--' + type : 'c-notification c-notification--primary') \"\n *ngIf=\"isOpen && !isDismissing\"\n @displayNotification\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngIf=\"iconComponent || icon || type\" class=\"h-full mr-base\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container *ngIf=\"displayDefaultIcon && type\">\n <ng-container [ngSwitch]=\"getType()\">\n <svg *ngSwitchCase=\"'success'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-success-dark\" aria-label=\"\u00C9xito\" focusable=\"false\" role=\"img\"><path d=\"M39.94 125a19.88 19.88 0 01-15.53-7.81L2.48 92.26a10 10 0 0115-13.2l20.55 23.39a2.5 2.5 0 003.68.08l81-84.42a10.002 10.002 0 1114.5 13.78l-82.02 86.33A19.41 19.41 0 0139.94 125z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'alert'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-alert-base\" aria-label=\"Error\" focusable=\"false\" role=\"img\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'info'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-primary-base\" aria-label=\"Informaci\u00F3n\" focusable=\"false\" role=\"img\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"lg:flex flex-1 self-center\">\n <div class=\"lg:flex-1 lg:self-center\">\n <ng-container *ngIf=\"titleComponent || title\" [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h5>\n <p *ngSwitchDefault [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ng-container *ngIf=\"descriptionComponent || description\">\n <p [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ul *ngIf=\"(itemCompontents && itemCompontents.length > 0) || items\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <li *ngIf=\"item.routerLink || item.href\">\n <a *ngIf=\"item.routerLink\" class=\"c-link\"\n [routerLink]=\"item.routerLink\"\n [fragment]=\"item.fragment\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n <a *ngIf=\"!item.routerLink && item.href\" class=\"c-link\"\n [href]=\"item.href | externalHref\"\n [target]=\"item.target\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n </li>\n <li *ngIf=\"!item.routerLink && !item.href\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n <p *ngIf=\"contentComponent || content\" [class]=\"['text-sm', contentComponent ? contentComponent.classes : content.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: contentComponent,\n html: content ? content.html : null,\n text: content ? content.text : null\n }\"></ng-container>\n </p>\n </div>\n <ng-container *ngIf=\"isDismissible\">\n <div class=\"absolute top-0 right-0 p-sm\">\n <button (click)=\"dismiss()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar notificaci\u00F3n\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 pointer-events-none\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }, { kind: "pipe", type: i5.ExternalHrefPipe, name: "externalHref" }], animations: [
49
49
  trigger('displayNotification', [
50
50
  state('void', style({
51
51
  opacity: '0.0',
52
- transform: 'scaleY(0.95)'
53
52
  })),
54
53
  state('*', style({
55
54
  opacity: '1.0',
56
- transform: 'scaleY(1.0)'
57
55
  })),
58
56
  transition(':enter', [
59
- animate('100ms ease-out')
57
+ animate('150ms ease-out')
60
58
  ]),
61
59
  transition(':leave', [
62
- animate('75ms ease-in')
60
+ animate('150ms ease-in')
63
61
  ])
64
62
  ])
65
63
  ] }); }
@@ -80,26 +78,24 @@ __decorate([
80
78
  DesyContentChild(),
81
79
  __metadata("design:type", IconComponent)
82
80
  ], NotificationComponent.prototype, "iconComponent", void 0);
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: NotificationComponent, decorators: [{
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: NotificationComponent, decorators: [{
84
82
  type: Component,
85
83
  args: [{ selector: 'desy-notification', animations: [
86
84
  trigger('displayNotification', [
87
85
  state('void', style({
88
86
  opacity: '0.0',
89
- transform: 'scaleY(0.95)'
90
87
  })),
91
88
  state('*', style({
92
89
  opacity: '1.0',
93
- transform: 'scaleY(1.0)'
94
90
  })),
95
91
  transition(':enter', [
96
- animate('100ms ease-out')
92
+ animate('150ms ease-out')
97
93
  ]),
98
94
  transition(':leave', [
99
- animate('75ms ease-in')
95
+ animate('150ms ease-in')
100
96
  ])
101
97
  ])
102
- ], template: "<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-notification ' + classes : type==='success' ? 'c-notification c-notification--' + type : type==='alert' ? 'c-notification c-notification--' + type : 'c-notification c-notification--primary') \"\n *ngIf=\"isOpen && !isDismissing\"\n @displayNotification\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngIf=\"iconComponent || icon || type\" class=\"h-full mr-base\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container *ngIf=\"displayDefaultIcon && type\">\n <ng-container [ngSwitch]=\"getType()\">\n <svg *ngSwitchCase=\"'success'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-success-dark\" aria-label=\"\u00C9xito\" focusable=\"false\" role=\"img\"><path d=\"M39.94 125a19.88 19.88 0 01-15.53-7.81L2.48 92.26a10 10 0 0115-13.2l20.55 23.39a2.5 2.5 0 003.68.08l81-84.42a10.002 10.002 0 1114.5 13.78l-82.02 86.33A19.41 19.41 0 0139.94 125z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'alert'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-alert-base\" aria-label=\"Error\" focusable=\"false\" role=\"img\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'info'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-primary-base\" aria-label=\"Informaci\u00F3n\" focusable=\"false\" role=\"img\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"lg:flex flex-1 self-center\">\n <div class=\"lg:flex-1 lg:self-center\">\n <ng-container *ngIf=\"titleComponent || title\" [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h5>\n <p *ngSwitchDefault [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ng-container *ngIf=\"descriptionComponent || description\">\n <p [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ul *ngIf=\"(itemCompontents && itemCompontents.length > 0) || items\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <li *ngIf=\"item.routerLink || item.href\">\n <a *ngIf=\"item.routerLink\" class=\"c-link\"\n [routerLink]=\"item.routerLink\"\n [fragment]=\"item.fragment\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n <a *ngIf=\"!item.routerLink && item.href\" class=\"c-link\"\n [href]=\"item.href | externalHref\"\n [target]=\"item.target\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n </li>\n <li *ngIf=\"!item.routerLink && !item.href\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n <p *ngIf=\"contentComponent || content\" [class]=\"['text-sm', contentComponent ? contentComponent.classes : content.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: contentComponent,\n html: content ? content.html : null,\n text: content ? content.text : null\n }\"></ng-container>\n </p>\n </div>\n <ng-container *ngIf=\"isDismissible\">\n <div class=\"absolute top-0 right-0 p-sm\">\n <button (click)=\"dismiss()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar notificaci\u00F3n\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
98
+ ], template: "<div [attr.id]=\"id ? id : null\" [class]=\"(classes ? 'c-notification ' + classes : type==='success' ? 'c-notification c-notification--' + type : type==='alert' ? 'c-notification c-notification--' + type : 'c-notification c-notification--primary') \"\n *ngIf=\"isOpen && !isDismissing\"\n @displayNotification\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-errormessage]=\"ariaErrorMessage\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.aria-disabled]=\"ariaDisabled\"\n [attr.aria-controls]=\"ariaControls\"\n [attr.aria-current]=\"ariaCurrent\"\n [attr.aria-live]=\"ariaLive\"\n [attr.aria-expanded]=\"ariaExpanded\"\n [attr.aria-haspopup]=\"ariaHasPopup\"\n [attr.tabindex]=\"tabindex\">\n <div *ngIf=\"iconComponent || icon || type\" class=\"h-full mr-base\">\n <ng-container *desyCustomInnerContent=\"{ component: iconComponent, html: icon ? icon.html : null }\"></ng-container>\n <ng-container *ngIf=\"displayDefaultIcon && type\">\n <ng-container [ngSwitch]=\"getType()\">\n <svg *ngSwitchCase=\"'success'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-success-dark\" aria-label=\"\u00C9xito\" focusable=\"false\" role=\"img\"><path d=\"M39.94 125a19.88 19.88 0 01-15.53-7.81L2.48 92.26a10 10 0 0115-13.2l20.55 23.39a2.5 2.5 0 003.68.08l81-84.42a10.002 10.002 0 1114.5 13.78l-82.02 86.33A19.41 19.41 0 0139.94 125z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'alert'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-alert-base\" aria-label=\"Error\" focusable=\"false\" role=\"img\"><path d=\"M138.42 118.29l-55-110a15 15 0 00-26.84 0l-55 110A15 15 0 0015 140h110a15 15 0 0013.42-21.71zM62.5 50a7.5 7.5 0 0115 0v30a7.5 7.5 0 01-15 0zm7.5 70a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n <svg *ngSwitchCase=\"'info'\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-5 h-5 text-primary-base\" aria-label=\"Informaci\u00F3n\" focusable=\"false\" role=\"img\"><path d=\"M70 0a70 70 0 1070 70A70.08 70.08 0 0070 0zm7.5 105a7.5 7.5 0 01-15 0V70a7.5 7.5 0 0115 0zM70 50a10 10 0 1110-10 10 10 0 01-10 10z\" fill=\"currentColor\"/></svg>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"lg:flex flex-1 self-center\">\n <div class=\"lg:flex-1 lg:self-center\">\n <ng-container *ngIf=\"titleComponent || title\" [ngSwitch]=\"headingLevel\">\n <h1 *ngSwitchCase=\"1\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </h5>\n <p *ngSwitchDefault [id]=\"id ? id + '-title' : null\" tabindex=\"-1\"\n [class]=\"['font-bold pr-base focus:outline-none focus:underline', titleComponent ? titleComponent.classes : title.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: titleComponent,\n html: title ? title.html : null,\n text: title ? title.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ng-container *ngIf=\"descriptionComponent || description\">\n <p [class]=\"descriptionComponent ? descriptionComponent.classes : description.classes\">\n <ng-container *desyCustomInnerContent=\"{\n component: descriptionComponent,\n html: description ? description.html : null,\n text: description ? description.text : null\n }\"></ng-container>\n </p>\n </ng-container>\n <ul *ngIf=\"(itemCompontents && itemCompontents.length > 0) || items\">\n <ng-container *ngFor=\"let item of getItems(); index as i\">\n <li *ngIf=\"item.routerLink || item.href\">\n <a *ngIf=\"item.routerLink\" class=\"c-link\"\n [routerLink]=\"item.routerLink\"\n [fragment]=\"item.fragment\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n <a *ngIf=\"!item.routerLink && item.href\" class=\"c-link\"\n [href]=\"item.href | externalHref\"\n [target]=\"item.target\"\n [ngClass]=\"{'c-link--alert': type==='alert'}\"\n [attr.id]=\"item.id ? item.id : null\"\n [attr.role]=\"item.role\"\n [attr.ariaLabel]=\"item.ariaLabel\"\n [attr.ariaDescribedBy]=\"item.ariaDescribedBy\"\n [attr.ariaLabelledBy]=\"item.ariaLabelledBy\"\n [attr.ariaHidden]=\"item.ariaHidden\"\n [attr.ariaDisabled]=\"item.ariaDisabled\"\n [attr.ariaControls]=\"item.ariaControls\"\n [attr.ariaCurrent]=\"item.ariaCurrent\"\n [attr.ariaLive]=\"item.ariaLive\"\n [attr.ariaExpanded]=\"item.ariaExpanded\"\n [attr.ariaErrorMessage]=\"item.ariaErrorMessage\"\n [attr.ariaHasPopup]=\"item.ariaHasPopup\"\n [attr.tabindex]=\"item.tabindex\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </a>\n </li>\n <li *ngIf=\"!item.routerLink && !item.href\">\n <ng-container *desyCustomInnerContent=\"{ component: item, html: item.html, text: item.text }\"></ng-container>\n </li>\n </ng-container>\n </ul>\n <p *ngIf=\"contentComponent || content\" [class]=\"['text-sm', contentComponent ? contentComponent.classes : content.classes] | makeHtmlList\">\n <ng-container *desyCustomInnerContent=\"{\n component: contentComponent,\n html: content ? content.html : null,\n text: content ? content.text : null\n }\"></ng-container>\n </p>\n </div>\n <ng-container *ngIf=\"isDismissible\">\n <div class=\"absolute top-0 right-0 p-sm\">\n <button (click)=\"dismiss()\" class=\"p-sm focus:bg-warning-base focus:border-warning-base focus:shadow-outline-black focus:text-black focus:outline-none\" aria-label=\"X: Cerrar notificaci\u00F3n\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 140 140\" width=\"1em\" height=\"1em\" class=\"w-4 h-4 pointer-events-none\" aria-hidden=\"true\" role=\"presentation\"><path d=\"M85.91 71.77a2.5 2.5 0 010-3.54l46.16-46.16a10 10 0 10-14.14-14.14L71.77 54.09a2.5 2.5 0 01-3.54 0L22.07 7.93A10 10 0 007.93 22.07l46.16 46.16a2.5 2.5 0 010 3.54L7.93 117.93a10 10 0 0014.14 14.14l46.16-46.16a2.5 2.5 0 013.54 0l46.16 46.16a10 10 0 0014.14-14.14z\" fill=\"currentColor\"/></svg>\n </button>\n </div>\n </ng-container>\n </div>\n</div>\n" }]
103
99
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
104
100
  type: Input
105
101
  }], classes: [{
@@ -140,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
140
136
  type: ContentChildren,
141
137
  args: [NotificationItemComponent]
142
138
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbmF2L2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDdEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQzVGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBd0J6RixNQUFNLE9BQU8scUJBQXNCLFNBQVEsc0JBQXNCO0lBa0MvRCxZQUFvQixpQkFBb0M7UUFDdEQsS0FBSyxFQUFF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QUU7Z0NBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQUM7NkJBQ3hCLENBQUM7eUJBQ0gsQ0FBQztxQkFDSDt3R0FJUSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUVFLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRzJCLGNBQWM7c0JBQTlDLGVBQWU7dUJBQUMsY0FBYztnQkFHUSxvQkFBb0I7c0JBQTFELGVBQWU7dUJBQUMsb0JBQW9CO2dCQUdGLGdCQUFnQjtzQkFBbEQsZUFBZTt1QkFBQyxnQkFBZ0I7Z0JBR0QsYUFBYTtzQkFBNUMsZUFBZTt1QkFBQyxhQUFhO2dCQUVjLGVBQWU7c0JBQTFELGVBQWU7dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25JdGVtc0RhdGF9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1RpdGxlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9kZXN5LWNvbW1vbnMvY29tcG9uZW50cy90aXRsZS90aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHtJY29uQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9kZXN5LWNvbW1vbnMvY29tcG9uZW50cy9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7RGVzY3JpcHRpb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2Rlc2NyaXB0aW9uL2Rlc2NyaXB0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRlbnRDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2NvbnRlbnQvY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHtOb3RpZmljYXRpb25JdGVtQ29tcG9uZW50fSBmcm9tICcuL25vdGlmaWNhdGlvbi1pdGVtL25vdGlmaWNhdGlvbi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0NvbnRlbnREYXRhLCBEZXNjcmlwdGlvbkRhdGEsIEljb25EYXRhLCBUaXRsZURhdGF9IGZyb20gJy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9pbnRlcmZhY2VzJztcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1jb250ZW50LWNoaWxkLmRlY29yYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdkaXNwbGF5Tm90aWZpY2F0aW9uJywgW1xuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7XG4gICAgICAgIG9wYWNpdHk6ICcwLjAnLFxuICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVkoMC45NSknXG4gICAgICB9KSksXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogJzEuMCcsXG4gICAgICAgIHRyYW5zZm9ybTogJ3NjYWxlWSgxLjApJ1xuICAgICAgfSkpLFxuICAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuICAgICAgICBhbmltYXRlKCcxMDBtcyBlYXNlLW91dCcpXG4gICAgICBdKSxcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgYW5pbWF0ZSgnNzVtcyBlYXNlLWluJylcbiAgICAgIF0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzT3BlbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQElucHV0KCkgdGl0bGU6IFRpdGxlRGF0YTtcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IERlc2NyaXB0aW9uRGF0YTtcbiAgQElucHV0KCkgY29udGVudDogQ29udGVudERhdGE7XG4gIEBJbnB1dCgpIGl0ZW1zOiBOb3RpZmljYXRpb25JdGVtc0RhdGFbXTtcblxuICBASW5wdXQoKSBpY29uOiBJY29uRGF0YTtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xuICBASW5wdXQoKSBpc0Rpc21pc3NpYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWFkaW5nTGV2ZWw6IG51bWJlcjtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oVGl0bGVDb21wb25lbnQpIHRpdGxlQ29tcG9uZW50OiBUaXRsZUNvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oRGVzY3JpcHRpb25Db21wb25lbnQpIGRlc2NyaXB0aW9uQ29tcG9uZW50OiBEZXNjcmlwdGlvbkNvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oQ29udGVudENvbXBvbmVudCkgY29udGVudENvbXBvbmVudDogQ29udGVudENvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oSWNvbkNvbXBvbmVudCkgaWNvbkNvbXBvbmVudDogSWNvbkNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkcmVuKE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb250ZW50czogUXVlcnlMaXN0PE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gIGlzRGlzbWlzc2luZyA9IGZhbHNlO1xuICBkaXNwbGF5RGVmYXVsdEljb24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIC8vIFNlIGVtaXRlIDc1bXMgbcOhcyB0YXJkZSBwYXJhIHBvZGVyIHZpc3VhbGl6YXIgbGEgYW5pbWFjacOzbiBlbiBjdWFscXVpZXIgY2Fzb1xuICAgIHRoaXMuaXNEaXNtaXNzaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNEaXNtaXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9LCA3NSk7XG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgbGV0IHR5cGU6IHN0cmluZztcbiAgICBpZiAodGhpcy50eXBlKXtcbiAgICAgIHR5cGUgPSB0aGlzLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBnZXRJdGVtcygpOiBOb3RpZmljYXRpb25JdGVtc0RhdGFbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbUNvbXBvbnRlbnRzICYmIHRoaXMuaXRlbUNvbXBvbnRlbnRzLmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb250ZW50cy50b0FycmF5KCkgOiB0aGlzLml0ZW1zO1xuICB9XG5cbiAgaGFuZGxlSWNvbkVtcHR5KGVtcHR5OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5RGVmYXVsdEljb24gPSBlbXB0eTtcblxuICAgIC8vIENvbW8gcXVlIGVsIGNvbnRlbmlkbyB2YWPDrW8gc2UgY29tcHJ1ZWJhIGEgcG9zdGVyaW9yaSwgZXMgbmVjZXNhcmlvIGZvcnphciBsYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgcGFyYSBtb3N0cmFyIGVsIGljb25vIHBvciBkZWZlY3RvXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgW2F0dHIuaWRdPVwiaWQgPyBpZCA6IG51bGxcIiBbY2xhc3NdPVwiKGNsYXNzZXMgPyAnYy1ub3RpZmljYXRpb24gJyArIGNsYXNzZXMgOiB0eXBlPT09J3N1Y2Nlc3MnID8gJ2Mtbm90aWZpY2F0aW9uIGMtbm90aWZpY2F0aW9uLS0nICsgdHlwZSA6IHR5cGU9PT0nYWxlcnQnID8gJ2Mtbm90aWZpY2F0aW9uIGMtbm90aWZpY2F0aW9uLS0nICsgdHlwZSA6ICdjLW5vdGlmaWNhdGlvbiBjLW5vdGlmaWNhdGlvbi0tcHJpbWFyeScpIFwiXG4gICAgICpuZ0lmPVwiaXNPcGVuICYmICFpc0Rpc21pc3NpbmdcIlxuICAgICBAZGlzcGxheU5vdGlmaWNhdGlvblxuICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cImFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImFyaWFIaWRkZW5cIlxuICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZFwiXG4gICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzXCJcbiAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50XCJcbiAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlXCJcbiAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWRcIlxuICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cFwiXG4gICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCI+XG4gIDxkaXYgKm5nSWY9XCJpY29uQ29tcG9uZW50IHx8IGljb24gfHwgdHlwZVwiIGNsYXNzPVwiaC1mdWxsIG1yLWJhc2VcIj5cbiAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGljb25Db21wb25lbnQsIGh0bWw6IGljb24gPyBpY29uLmh0bWwgOiBudWxsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheURlZmF1bHRJY29uICYmIHR5cGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImdldFR5cGUoKVwiPlxuICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInc3VjY2VzcydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInctNSBoLTUgdGV4dC1zdWNjZXNzLWRhcmtcIiBhcmlhLWxhYmVsPVwiw4l4aXRvXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+PHBhdGggZD1cIk0zOS45NCAxMjVhMTkuODggMTkuODggMCAwMS0xNS41My03LjgxTDIuNDggOTIuMjZhMTAgMTAgMCAwMTE1LTEzLjJsMjAuNTUgMjMuMzlhMi41IDIuNSAwIDAwMy42OC4wOGw4MS04NC40MmExMC4wMDIgMTAuMDAyIDAgMTExNC41IDEzLjc4bC04Mi4wMiA4Ni4zM0ExOS40MSAxOS40MSAwIDAxMzkuOTQgMTI1elwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+XG4gICAgICAgIDxzdmcgKm5nU3dpdGNoQ2FzZT1cIidhbGVydCdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInctNSBoLTUgdGV4dC1hbGVydC1iYXNlXCIgYXJpYS1sYWJlbD1cIkVycm9yXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+PHBhdGggZD1cIk0xMzguNDIgMTE4LjI5bC01NS0xMTBhMTUgMTUgMCAwMC0yNi44NCAwbC01NSAxMTBBMTUgMTUgMCAwMDE1IDE0MGgxMTBhMTUgMTUgMCAwMDEzLjQyLTIxLjcxek02Mi41IDUwYTcuNSA3LjUgMCAwMTE1IDB2MzBhNy41IDcuNSAwIDAxLTE1IDB6bTcuNSA3MGExMCAxMCAwIDExMTAtMTAgMTAgMTAgMCAwMS0xMCAxMHpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPlxuICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInaW5mbydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInctNSBoLTUgdGV4dC1wcmltYXJ5LWJhc2VcIiBhcmlhLWxhYmVsPVwiSW5mb3JtYWNpw7NuXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+PHBhdGggZD1cIk03MCAwYTcwIDcwIDAgMTA3MCA3MEE3MC4wOCA3MC4wOCAwIDAwNzAgMHptNy41IDEwNWE3LjUgNy41IDAgMDEtMTUgMFY3MGE3LjUgNy41IDAgMDExNSAwek03MCA1MGExMCAxMCAwIDExMTAtMTAgMTAgMTAgMCAwMS0xMCAxMHpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGc6ZmxleCBmbGV4LTEgc2VsZi1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGc6ZmxleC0xIGxnOnNlbGYtY2VudGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGVDb21wb25lbnQgfHwgdGl0bGVcIiBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsXCI+XG4gICAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiMVwiIFtpZF09XCJpZCA/IGlkICsgJy10aXRsZScgOiBudWxsXCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiWydmb250LWJvbGQgcHItYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6dW5kZXJsaW5lJywgdGl0bGVDb21wb25lbnQgPyB0aXRsZUNvbXBvbmVudC5jbGFzc2VzIDogdGl0bGUuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aXRsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGh0bWw6IHRpdGxlID8gdGl0bGUuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiB0aXRsZSA/IHRpdGxlLnRleHQgOiBudWxsXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2gxPlxuICAgICAgICA8aDIgKm5nU3dpdGNoQ2FzZT1cIjJcIiBbaWRdPVwiaWQgPyBpZCArICctdGl0bGUnIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIlsnZm9udC1ib2xkIHByLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnVuZGVybGluZScsIHRpdGxlQ29tcG9uZW50ID8gdGl0bGVDb21wb25lbnQuY2xhc3NlcyA6IHRpdGxlLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGl0bGVDb21wb25lbnQsXG4gICAgICAgICAgICBodG1sOiB0aXRsZSA/IHRpdGxlLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogdGl0bGUgPyB0aXRsZS50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2lkXT1cImlkID8gaWQgKyAnLXRpdGxlJyA6IG51bGxcIiB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJbJ2ZvbnQtYm9sZCBwci1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czp1bmRlcmxpbmUnLCB0aXRsZUNvbXBvbmVudCA/IHRpdGxlQ29tcG9uZW50LmNsYXNzZXMgOiB0aXRsZS5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRpdGxlQ29tcG9uZW50LFxuICAgICAgICAgICAgaHRtbDogdGl0bGUgPyB0aXRsZS5odG1sIDogbnVsbCxcbiAgICAgICAgICAgIHRleHQ6IHRpdGxlID8gdGl0bGUudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiNFwiIFtpZF09XCJpZCA/IGlkICsgJy10aXRsZScgOiBudWxsXCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiWydmb250LWJvbGQgcHItYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6dW5kZXJsaW5lJywgdGl0bGVDb21wb25lbnQgPyB0aXRsZUNvbXBvbmVudC5jbGFzc2VzIDogdGl0bGUuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aXRsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGh0bWw6IHRpdGxlID8gdGl0bGUuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiB0aXRsZSA/IHRpdGxlLnRleHQgOiBudWxsXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2g0PlxuICAgICAgICA8aDUgKm5nU3dpdGNoQ2FzZT1cIjVcIiBbaWRdPVwiaWQgPyBpZCArICctdGl0bGUnIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIlsnZm9udC1ib2xkIHByLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnVuZGVybGluZScsIHRpdGxlQ29tcG9uZW50ID8gdGl0bGVDb21wb25lbnQuY2xhc3NlcyA6IHRpdGxlLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGl0bGVDb21wb25lbnQsXG4gICAgICAgICAgICBodG1sOiB0aXRsZSA/IHRpdGxlLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogdGl0bGUgPyB0aXRsZS50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oNT5cbiAgICAgICAgPHAgKm5nU3dpdGNoRGVmYXVsdCBbaWRdPVwiaWQgPyBpZCArICctdGl0bGUnIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICBbY2xhc3NdPVwiWydmb250LWJvbGQgcHItYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6dW5kZXJsaW5lJywgdGl0bGVDb21wb25lbnQgPyB0aXRsZUNvbXBvbmVudC5jbGFzc2VzIDogdGl0bGUuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aXRsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGh0bWw6IHRpdGxlID8gdGl0bGUuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiB0aXRsZSA/IHRpdGxlLnRleHQgOiBudWxsXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXNjcmlwdGlvbkNvbXBvbmVudCB8fCBkZXNjcmlwdGlvblwiPlxuICAgICAgICA8cCBbY2xhc3NdPVwiZGVzY3JpcHRpb25Db21wb25lbnQgPyBkZXNjcmlwdGlvbkNvbXBvbmVudC5jbGFzc2VzIDogZGVzY3JpcHRpb24uY2xhc3Nlc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGRlc2NyaXB0aW9uQ29tcG9uZW50LFxuICAgICAgICAgICAgaHRtbDogZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbi5odG1sIDogbnVsbCxcbiAgICAgICAgICAgIHRleHQ6IGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb24udGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHVsICpuZ0lmPVwiKGl0ZW1Db21wb250ZW50cyAmJiBpdGVtQ29tcG9udGVudHMubGVuZ3RoID4gMCkgfHwgaXRlbXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiaXRlbS5yb3V0ZXJMaW5rIHx8IGl0ZW0uaHJlZlwiPlxuICAgICAgICAgICAgPGEgKm5nSWY9XCJpdGVtLnJvdXRlckxpbmtcIiBjbGFzcz1cImMtbGlua1wiXG4gICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cIml0ZW0uZnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjLWxpbmstLWFsZXJ0JzogdHlwZT09PSdhbGVydCd9XCJcbiAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIml0ZW0uaWQgPyBpdGVtLmlkIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbSwgaHRtbDogaXRlbS5odG1sLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGEgKm5nSWY9XCIhaXRlbS5yb3V0ZXJMaW5rICYmIGl0ZW0uaHJlZlwiIGNsYXNzPVwiYy1saW5rXCJcbiAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0uaHJlZiB8IGV4dGVybmFsSHJlZlwiXG4gICAgICAgICAgICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYy1saW5rLS1hbGVydCc6IHR5cGU9PT0nYWxlcnQnfVwiXG4gICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpdGVtLmlkID8gaXRlbS5pZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJpdGVtLnJvbGVcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFEZXNjcmliZWRCeV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhTGFiZWxsZWRCeV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFIaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFEaXNhYmxlZF09XCJpdGVtLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhQ29udHJvbHNdPVwiaXRlbS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhTGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFFeHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhSGFzUG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0sIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSAqbmdJZj1cIiFpdGVtLnJvdXRlckxpbmsgJiYgIWl0ZW0uaHJlZlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLCBodG1sOiBpdGVtLmh0bWwsIHRleHQ6IGl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3VsPlxuICAgICAgPHAgKm5nSWY9XCJjb250ZW50Q29tcG9uZW50IHx8IGNvbnRlbnRcIiBbY2xhc3NdPVwiWyd0ZXh0LXNtJywgY29udGVudENvbXBvbmVudCA/IGNvbnRlbnRDb21wb25lbnQuY2xhc3NlcyA6IGNvbnRlbnQuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICBjb21wb25lbnQ6IGNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgICAgaHRtbDogY29udGVudCA/IGNvbnRlbnQuaHRtbCA6IG51bGwsXG4gICAgICAgICAgdGV4dDogY29udGVudCA/IGNvbnRlbnQudGV4dCA6IG51bGxcbiAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Rpc21pc3NpYmxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCBwLXNtXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRpc21pc3MoKVwiIGNsYXNzPVwicC1zbSBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6Ym9yZGVyLXdhcm5pbmctYmFzZSBmb2N1czpzaGFkb3ctb3V0bGluZS1ibGFjayBmb2N1czp0ZXh0LWJsYWNrIGZvY3VzOm91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJYOiBDZXJyYXIgbm90aWZpY2FjacOzblwiPlxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTQwIDE0MFwiIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgY2xhc3M9XCJ3LTQgaC00XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPjxwYXRoIGQ9XCJNODUuOTEgNzEuNzdhMi41IDIuNSAwIDAxMC0zLjU0bDQ2LjE2LTQ2LjE2YTEwIDEwIDAgMTAtMTQuMTQtMTQuMTRMNzEuNzcgNTQuMDlhMi41IDIuNSAwIDAxLTMuNTQgMEwyMi4wNyA3LjkzQTEwIDEwIDAgMDA3LjkzIDIyLjA3bDQ2LjE2IDQ2LjE2YTIuNSAyLjUgMCAwMTAgMy41NEw3LjkzIDExNy45M2ExMCAxMCAwIDAwMTQuMTQgMTQuMTRsNDYuMTYtNDYuMTZhMi41IDIuNSAwIDAxMy41NCAwbDQ2LjE2IDQ2LjE2YTEwIDEwIDAgMDAxNC4xNC0xNC4xNHpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbmF2L2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW5hdi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBRVYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFcEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDdEYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ3hHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDREQUE0RCxDQUFDO0FBQzVGLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHlEQUF5RCxDQUFDOzs7Ozs7O0FBc0J6RixNQUFNLE9BQU8scUJBQXNCLFNBQVEsc0JBQXNCO0lBa0MvRCxZQUFvQixpQkFBb0M7UUFDdEQsS0FBSyxFQUFF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QUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBRUUsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFHMkIsY0FBYztzQkFBOUMsZUFBZTt1QkFBQyxjQUFjO2dCQUdRLG9CQUFvQjtzQkFBMUQsZUFBZTt1QkFBQyxvQkFBb0I7Z0JBR0YsZ0JBQWdCO3NCQUFsRCxlQUFlO3VCQUFDLGdCQUFnQjtnQkFHRCxhQUFhO3NCQUE1QyxlQUFlO3VCQUFDLGFBQWE7Z0JBRWMsZUFBZTtzQkFBMUQsZUFBZTt1QkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEFjY2Vzc2liaWxpdHlDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XG5pbXBvcnQge05vdGlmaWNhdGlvbkl0ZW1zRGF0YX0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7VGl0bGVDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL3RpdGxlL3RpdGxlLmNvbXBvbmVudCc7XG5pbXBvcnQge0ljb25Db21wb25lbnR9IGZyb20gJy4uLy4uLy4uL2Rlc3ktY29tbW9ucy9jb21wb25lbnRzL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtEZXNjcmlwdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvZGVzY3JpcHRpb24vZGVzY3JpcHRpb24uY29tcG9uZW50JztcbmltcG9ydCB7Q29udGVudENvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2NvbXBvbmVudHMvY29udGVudC9jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge05vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnR9IGZyb20gJy4vbm90aWZpY2F0aW9uLWl0ZW0vbm90aWZpY2F0aW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7Q29udGVudERhdGEsIERlc2NyaXB0aW9uRGF0YSwgSWNvbkRhdGEsIFRpdGxlRGF0YX0gZnJvbSAnLi4vLi4vLi4vZGVzeS1jb21tb25zL2ludGVyZmFjZXMnO1xuaW1wb3J0IHtEZXN5Q29udGVudENoaWxkfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1ub3RpZmljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ2Rpc3BsYXlOb3RpZmljYXRpb24nLCBbXG4gICAgICBzdGF0ZSgndm9pZCcsIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogJzAuMCcsXG4gICAgICB9KSksXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtcbiAgICAgICAgb3BhY2l0eTogJzEuMCcsXG4gICAgICB9KSksXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4gICAgICAgIGFuaW1hdGUoJzE1MG1zIGVhc2Utb3V0JylcbiAgICAgIF0pLFxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuICAgICAgICBhbmltYXRlKCcxNTBtcyBlYXNlLWluJylcbiAgICAgIF0pXG4gICAgXSlcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IHtcblxuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGlzT3BlbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBpc09wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQElucHV0KCkgdGl0bGU6IFRpdGxlRGF0YTtcbiAgQElucHV0KCkgZGVzY3JpcHRpb246IERlc2NyaXB0aW9uRGF0YTtcbiAgQElucHV0KCkgY29udGVudDogQ29udGVudERhdGE7XG4gIEBJbnB1dCgpIGl0ZW1zOiBOb3RpZmljYXRpb25JdGVtc0RhdGFbXTtcblxuICBASW5wdXQoKSBpY29uOiBJY29uRGF0YTtcbiAgQElucHV0KCkgdHlwZTogc3RyaW5nO1xuICBASW5wdXQoKSBpc0Rpc21pc3NpYmxlOiBib29sZWFuO1xuICBASW5wdXQoKSBoZWFkaW5nTGV2ZWw6IG51bWJlcjtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oVGl0bGVDb21wb25lbnQpIHRpdGxlQ29tcG9uZW50OiBUaXRsZUNvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oRGVzY3JpcHRpb25Db21wb25lbnQpIGRlc2NyaXB0aW9uQ29tcG9uZW50OiBEZXNjcmlwdGlvbkNvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oQ29udGVudENvbXBvbmVudCkgY29udGVudENvbXBvbmVudDogQ29udGVudENvbXBvbmVudDtcblxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oSWNvbkNvbXBvbmVudCkgaWNvbkNvbXBvbmVudDogSWNvbkNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkcmVuKE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQpIGl0ZW1Db21wb250ZW50czogUXVlcnlMaXN0PE5vdGlmaWNhdGlvbkl0ZW1Db21wb25lbnQ+O1xuXG4gIGlzRGlzbWlzc2luZyA9IGZhbHNlO1xuICBkaXNwbGF5RGVmYXVsdEljb24gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBkaXNtaXNzKCk6IHZvaWQge1xuICAgIC8vIFNlIGVtaXRlIDc1bXMgbcOhcyB0YXJkZSBwYXJhIHBvZGVyIHZpc3VhbGl6YXIgbGEgYW5pbWFjacOzbiBlbiBjdWFscXVpZXIgY2Fzb1xuICAgIHRoaXMuaXNEaXNtaXNzaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuaXNEaXNtaXNzaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KGZhbHNlKTtcbiAgICB9LCA3NSk7XG4gIH1cblxuICBnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgbGV0IHR5cGU6IHN0cmluZztcbiAgICBpZiAodGhpcy50eXBlKXtcbiAgICAgIHR5cGUgPSB0aGlzLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG4gIH1cblxuICBnZXRJdGVtcygpOiBOb3RpZmljYXRpb25JdGVtc0RhdGFbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbUNvbXBvbnRlbnRzICYmIHRoaXMuaXRlbUNvbXBvbnRlbnRzLmxlbmd0aCA+IDAgPyB0aGlzLml0ZW1Db21wb250ZW50cy50b0FycmF5KCkgOiB0aGlzLml0ZW1zO1xuICB9XG5cbiAgaGFuZGxlSWNvbkVtcHR5KGVtcHR5OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5RGVmYXVsdEljb24gPSBlbXB0eTtcblxuICAgIC8vIENvbW8gcXVlIGVsIGNvbnRlbmlkbyB2YWPDrW8gc2UgY29tcHJ1ZWJhIGEgcG9zdGVyaW9yaSwgZXMgbmVjZXNhcmlvIGZvcnphciBsYSBkZXRlY2Npw7NuIGRlIGNhbWJpb3MgcGFyYSBtb3N0cmFyIGVsIGljb25vIHBvciBkZWZlY3RvXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cbn1cbiIsIjxkaXYgW2F0dHIuaWRdPVwiaWQgPyBpZCA6IG51bGxcIiBbY2xhc3NdPVwiKGNsYXNzZXMgPyAnYy1ub3RpZmljYXRpb24gJyArIGNsYXNzZXMgOiB0eXBlPT09J3N1Y2Nlc3MnID8gJ2Mtbm90aWZpY2F0aW9uIGMtbm90aWZpY2F0aW9uLS0nICsgdHlwZSA6IHR5cGU9PT0nYWxlcnQnID8gJ2Mtbm90aWZpY2F0aW9uIGMtbm90aWZpY2F0aW9uLS0nICsgdHlwZSA6ICdjLW5vdGlmaWNhdGlvbiBjLW5vdGlmaWNhdGlvbi0tcHJpbWFyeScpIFwiXG4gICAgICpuZ0lmPVwiaXNPcGVuICYmICFpc0Rpc21pc3NpbmdcIlxuICAgICBAZGlzcGxheU5vdGlmaWNhdGlvblxuICAgICBbYXR0ci5yb2xlXT1cInJvbGVcIlxuICAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeVwiXG4gICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cImFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeVwiXG4gICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImFyaWFIaWRkZW5cIlxuICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImFyaWFEaXNhYmxlZFwiXG4gICAgIFthdHRyLmFyaWEtY29udHJvbHNdPVwiYXJpYUNvbnRyb2xzXCJcbiAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImFyaWFDdXJyZW50XCJcbiAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlXCJcbiAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWRcIlxuICAgICBbYXR0ci5hcmlhLWhhc3BvcHVwXT1cImFyaWFIYXNQb3B1cFwiXG4gICAgIFthdHRyLnRhYmluZGV4XT1cInRhYmluZGV4XCI+XG4gIDxkaXYgKm5nSWY9XCJpY29uQ29tcG9uZW50IHx8IGljb24gfHwgdHlwZVwiIGNsYXNzPVwiaC1mdWxsIG1yLWJhc2VcIj5cbiAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGljb25Db21wb25lbnQsIGh0bWw6IGljb24gPyBpY29uLmh0bWwgOiBudWxsIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheURlZmF1bHRJY29uICYmIHR5cGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImdldFR5cGUoKVwiPlxuICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInc3VjY2VzcydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInctNSBoLTUgdGV4dC1zdWNjZXNzLWRhcmtcIiBhcmlhLWxhYmVsPVwiw4l4aXRvXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+PHBhdGggZD1cIk0zOS45NCAxMjVhMTkuODggMTkuODggMCAwMS0xNS41My03LjgxTDIuNDggOTIuMjZhMTAgMTAgMCAwMTE1LTEzLjJsMjAuNTUgMjMuMzlhMi41IDIuNSAwIDAwMy42OC4wOGw4MS04NC40MmExMC4wMDIgMTAuMDAyIDAgMTExNC41IDEzLjc4bC04Mi4wMiA4Ni4zM0ExOS40MSAxOS40MSAwIDAxMzkuOTQgMTI1elwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+XG4gICAgICAgIDxzdmcgKm5nU3dpdGNoQ2FzZT1cIidhbGVydCdcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInctNSBoLTUgdGV4dC1hbGVydC1iYXNlXCIgYXJpYS1sYWJlbD1cIkVycm9yXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+PHBhdGggZD1cIk0xMzguNDIgMTE4LjI5bC01NS0xMTBhMTUgMTUgMCAwMC0yNi44NCAwbC01NSAxMTBBMTUgMTUgMCAwMDE1IDE0MGgxMTBhMTUgMTUgMCAwMDEzLjQyLTIxLjcxek02Mi41IDUwYTcuNSA3LjUgMCAwMTE1IDB2MzBhNy41IDcuNSAwIDAxLTE1IDB6bTcuNSA3MGExMCAxMCAwIDExMTAtMTAgMTAgMTAgMCAwMS0xMCAxMHpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPlxuICAgICAgICA8c3ZnICpuZ1N3aXRjaENhc2U9XCInaW5mbydcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCAxNDAgMTQwXCIgd2lkdGg9XCIxZW1cIiBoZWlnaHQ9XCIxZW1cIiBjbGFzcz1cInctNSBoLTUgdGV4dC1wcmltYXJ5LWJhc2VcIiBhcmlhLWxhYmVsPVwiSW5mb3JtYWNpw7NuXCIgZm9jdXNhYmxlPVwiZmFsc2VcIiByb2xlPVwiaW1nXCI+PHBhdGggZD1cIk03MCAwYTcwIDcwIDAgMTA3MCA3MEE3MC4wOCA3MC4wOCAwIDAwNzAgMHptNy41IDEwNWE3LjUgNy41IDAgMDEtMTUgMFY3MGE3LjUgNy41IDAgMDExNSAwek03MCA1MGExMCAxMCAwIDExMTAtMTAgMTAgMTAgMCAwMS0xMCAxMHpcIiBmaWxsPVwiY3VycmVudENvbG9yXCIvPjwvc3ZnPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibGc6ZmxleCBmbGV4LTEgc2VsZi1jZW50ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGc6ZmxleC0xIGxnOnNlbGYtY2VudGVyXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGVDb21wb25lbnQgfHwgdGl0bGVcIiBbbmdTd2l0Y2hdPVwiaGVhZGluZ0xldmVsXCI+XG4gICAgICAgIDxoMSAqbmdTd2l0Y2hDYXNlPVwiMVwiIFtpZF09XCJpZCA/IGlkICsgJy10aXRsZScgOiBudWxsXCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiWydmb250LWJvbGQgcHItYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6dW5kZXJsaW5lJywgdGl0bGVDb21wb25lbnQgPyB0aXRsZUNvbXBvbmVudC5jbGFzc2VzIDogdGl0bGUuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aXRsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGh0bWw6IHRpdGxlID8gdGl0bGUuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiB0aXRsZSA/IHRpdGxlLnRleHQgOiBudWxsXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2gxPlxuICAgICAgICA8aDIgKm5nU3dpdGNoQ2FzZT1cIjJcIiBbaWRdPVwiaWQgPyBpZCArICctdGl0bGUnIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIlsnZm9udC1ib2xkIHByLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnVuZGVybGluZScsIHRpdGxlQ29tcG9uZW50ID8gdGl0bGVDb21wb25lbnQuY2xhc3NlcyA6IHRpdGxlLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGl0bGVDb21wb25lbnQsXG4gICAgICAgICAgICBodG1sOiB0aXRsZSA/IHRpdGxlLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogdGl0bGUgPyB0aXRsZS50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oMj5cbiAgICAgICAgPGgzICpuZ1N3aXRjaENhc2U9XCIzXCIgW2lkXT1cImlkID8gaWQgKyAnLXRpdGxlJyA6IG51bGxcIiB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIFtjbGFzc109XCJbJ2ZvbnQtYm9sZCBwci1iYXNlIGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czp1bmRlcmxpbmUnLCB0aXRsZUNvbXBvbmVudCA/IHRpdGxlQ29tcG9uZW50LmNsYXNzZXMgOiB0aXRsZS5jbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IHRpdGxlQ29tcG9uZW50LFxuICAgICAgICAgICAgaHRtbDogdGl0bGUgPyB0aXRsZS5odG1sIDogbnVsbCxcbiAgICAgICAgICAgIHRleHQ6IHRpdGxlID8gdGl0bGUudGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaDM+XG4gICAgICAgIDxoNCAqbmdTd2l0Y2hDYXNlPVwiNFwiIFtpZF09XCJpZCA/IGlkICsgJy10aXRsZScgOiBudWxsXCIgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBbY2xhc3NdPVwiWydmb250LWJvbGQgcHItYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6dW5kZXJsaW5lJywgdGl0bGVDb21wb25lbnQgPyB0aXRsZUNvbXBvbmVudC5jbGFzc2VzIDogdGl0bGUuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aXRsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGh0bWw6IHRpdGxlID8gdGl0bGUuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiB0aXRsZSA/IHRpdGxlLnRleHQgOiBudWxsXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2g0PlxuICAgICAgICA8aDUgKm5nU3dpdGNoQ2FzZT1cIjVcIiBbaWRdPVwiaWQgPyBpZCArICctdGl0bGUnIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgW2NsYXNzXT1cIlsnZm9udC1ib2xkIHByLWJhc2UgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnVuZGVybGluZScsIHRpdGxlQ29tcG9uZW50ID8gdGl0bGVDb21wb25lbnQuY2xhc3NlcyA6IHRpdGxlLmNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICAgIGNvbXBvbmVudDogdGl0bGVDb21wb25lbnQsXG4gICAgICAgICAgICBodG1sOiB0aXRsZSA/IHRpdGxlLmh0bWwgOiBudWxsLFxuICAgICAgICAgICAgdGV4dDogdGl0bGUgPyB0aXRsZS50ZXh0IDogbnVsbFxuICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oNT5cbiAgICAgICAgPHAgKm5nU3dpdGNoRGVmYXVsdCBbaWRdPVwiaWQgPyBpZCArICctdGl0bGUnIDogbnVsbFwiIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICBbY2xhc3NdPVwiWydmb250LWJvbGQgcHItYmFzZSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6dW5kZXJsaW5lJywgdGl0bGVDb21wb25lbnQgPyB0aXRsZUNvbXBvbmVudC5jbGFzc2VzIDogdGl0bGUuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwie1xuICAgICAgICAgICAgY29tcG9uZW50OiB0aXRsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIGh0bWw6IHRpdGxlID8gdGl0bGUuaHRtbCA6IG51bGwsXG4gICAgICAgICAgICB0ZXh0OiB0aXRsZSA/IHRpdGxlLnRleHQgOiBudWxsXG4gICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXNjcmlwdGlvbkNvbXBvbmVudCB8fCBkZXNjcmlwdGlvblwiPlxuICAgICAgICA8cCBbY2xhc3NdPVwiZGVzY3JpcHRpb25Db21wb25lbnQgPyBkZXNjcmlwdGlvbkNvbXBvbmVudC5jbGFzc2VzIDogZGVzY3JpcHRpb24uY2xhc3Nlc1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7XG4gICAgICAgICAgICBjb21wb25lbnQ6IGRlc2NyaXB0aW9uQ29tcG9uZW50LFxuICAgICAgICAgICAgaHRtbDogZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbi5odG1sIDogbnVsbCxcbiAgICAgICAgICAgIHRleHQ6IGRlc2NyaXB0aW9uID8gZGVzY3JpcHRpb24udGV4dCA6IG51bGxcbiAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPHVsICpuZ0lmPVwiKGl0ZW1Db21wb250ZW50cyAmJiBpdGVtQ29tcG9udGVudHMubGVuZ3RoID4gMCkgfHwgaXRlbXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICAgPGxpICpuZ0lmPVwiaXRlbS5yb3V0ZXJMaW5rIHx8IGl0ZW0uaHJlZlwiPlxuICAgICAgICAgICAgPGEgKm5nSWY9XCJpdGVtLnJvdXRlckxpbmtcIiBjbGFzcz1cImMtbGlua1wiXG4gICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlckxpbmtcIlxuICAgICAgICAgICAgICAgW2ZyYWdtZW50XT1cIml0ZW0uZnJhZ21lbnRcIlxuICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydjLWxpbmstLWFsZXJ0JzogdHlwZT09PSdhbGVydCd9XCJcbiAgICAgICAgICAgICAgIFthdHRyLmlkXT1cIml0ZW0uaWQgPyBpdGVtLmlkIDogbnVsbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5yb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKmRlc3lDdXN0b21Jbm5lckNvbnRlbnQ9XCJ7IGNvbXBvbmVudDogaXRlbSwgaHRtbDogaXRlbS5odG1sLCB0ZXh0OiBpdGVtLnRleHQgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPGEgKm5nSWY9XCIhaXRlbS5yb3V0ZXJMaW5rICYmIGl0ZW0uaHJlZlwiIGNsYXNzPVwiYy1saW5rXCJcbiAgICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0uaHJlZiB8IGV4dGVybmFsSHJlZlwiXG4gICAgICAgICAgICAgICBbdGFyZ2V0XT1cIml0ZW0udGFyZ2V0XCJcbiAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnYy1saW5rLS1hbGVydCc6IHR5cGU9PT0nYWxlcnQnfVwiXG4gICAgICAgICAgICAgICBbYXR0ci5pZF09XCJpdGVtLmlkID8gaXRlbS5pZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgW2F0dHIucm9sZV09XCJpdGVtLnJvbGVcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFEZXNjcmliZWRCeV09XCJpdGVtLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhTGFiZWxsZWRCeV09XCJpdGVtLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFIaWRkZW5dPVwiaXRlbS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFEaXNhYmxlZF09XCJpdGVtLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhQ29udHJvbHNdPVwiaXRlbS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgW2F0dHIuYXJpYUN1cnJlbnRdPVwiaXRlbS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhTGl2ZV09XCJpdGVtLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgIFthdHRyLmFyaWFFeHBhbmRlZF09XCJpdGVtLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0uYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICBbYXR0ci5hcmlhSGFzUG9wdXBdPVwiaXRlbS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaXRlbS50YWJpbmRleFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpkZXN5Q3VzdG9tSW5uZXJDb250ZW50PVwieyBjb21wb25lbnQ6IGl0ZW0sIGh0bWw6IGl0ZW0uaHRtbCwgdGV4dDogaXRlbS50ZXh0IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSAqbmdJZj1cIiFpdGVtLnJvdXRlckxpbmsgJiYgIWl0ZW0uaHJlZlwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cInsgY29tcG9uZW50OiBpdGVtLCBodG1sOiBpdGVtLmh0bWwsIHRleHQ6IGl0ZW0udGV4dCB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3VsPlxuICAgICAgPHAgKm5nSWY9XCJjb250ZW50Q29tcG9uZW50IHx8IGNvbnRlbnRcIiBbY2xhc3NdPVwiWyd0ZXh0LXNtJywgY29udGVudENvbXBvbmVudCA/IGNvbnRlbnRDb21wb25lbnQuY2xhc3NlcyA6IGNvbnRlbnQuY2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqZGVzeUN1c3RvbUlubmVyQ29udGVudD1cIntcbiAgICAgICAgICBjb21wb25lbnQ6IGNvbnRlbnRDb21wb25lbnQsXG4gICAgICAgICAgaHRtbDogY29udGVudCA/IGNvbnRlbnQuaHRtbCA6IG51bGwsXG4gICAgICAgICAgdGV4dDogY29udGVudCA/IGNvbnRlbnQudGV4dCA6IG51bGxcbiAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0Rpc21pc3NpYmxlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgdG9wLTAgcmlnaHQtMCBwLXNtXCI+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRpc21pc3MoKVwiIGNsYXNzPVwicC1zbSBmb2N1czpiZy13YXJuaW5nLWJhc2UgZm9jdXM6Ym9yZGVyLXdhcm5pbmctYmFzZSBmb2N1czpzaGFkb3ctb3V0bGluZS1ibGFjayBmb2N1czp0ZXh0LWJsYWNrIGZvY3VzOm91dGxpbmUtbm9uZVwiIGFyaWEtbGFiZWw9XCJYOiBDZXJyYXIgbm90aWZpY2FjacOzblwiPlxuICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMTQwIDE0MFwiIHdpZHRoPVwiMWVtXCIgaGVpZ2h0PVwiMWVtXCIgY2xhc3M9XCJ3LTQgaC00IHBvaW50ZXItZXZlbnRzLW5vbmVcIiBhcmlhLWhpZGRlbj1cInRydWVcIiByb2xlPVwicHJlc2VudGF0aW9uXCI+PHBhdGggZD1cIk04NS45MSA3MS43N2EyLjUgMi41IDAgMDEwLTMuNTRsNDYuMTYtNDYuMTZhMTAgMTAgMCAxMC0xNC4xNC0xNC4xNEw3MS43NyA1NC4wOWEyLjUgMi41IDAgMDEtMy41NCAwTDIyLjA3IDcuOTNBMTAgMTAgMCAwMDcuOTMgMjIuMDdsNDYuMTYgNDYuMTZhMi41IDIuNSAwIDAxMCAzLjU0TDcuOTMgMTE3LjkzYTEwIDEwIDAgMDAxNC4xNCAxNC4xNGw0Ni4xNi00Ni4xNmEyLjUgMi41IDAgMDEzLjU0IDBsNDYuMTYgNDYuMTZhMTAgMTAgMCAwMDE0LjE0LTE0LjE0elwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIi8+PC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=