desy-angular 8.0.0 → 8.0.1

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 (176) hide show
  1. package/esm2022/lib/desy-angular.module.mjs +4 -4
  2. package/esm2022/lib/desy-buttons/components/button/button.component.mjs +3 -3
  3. package/esm2022/lib/desy-buttons/components/button-loader/button-loader.component.mjs +3 -3
  4. package/esm2022/lib/desy-buttons/components/dropdown/dropdown.component.mjs +3 -3
  5. package/esm2022/lib/desy-buttons/components/listbox/listbox-item/listbox-item.component.mjs +3 -3
  6. package/esm2022/lib/desy-buttons/components/listbox/listbox-label/listbox-label.component.mjs +3 -3
  7. package/esm2022/lib/desy-buttons/components/listbox/listbox.component.mjs +3 -3
  8. package/esm2022/lib/desy-buttons/components/pill/pill.component.mjs +3 -3
  9. package/esm2022/lib/desy-buttons/components/toggle/toggle-off-state/toggle-off-state.component.mjs +3 -3
  10. package/esm2022/lib/desy-buttons/components/toggle/toggle-on-state/toggle-on-state.component.mjs +3 -3
  11. package/esm2022/lib/desy-buttons/components/toggle/toggle.component.mjs +3 -3
  12. package/esm2022/lib/desy-buttons/desy-buttons.module.mjs +4 -4
  13. package/esm2022/lib/desy-commons/components/content/content.component.mjs +3 -3
  14. package/esm2022/lib/desy-commons/components/description/description.component.mjs +3 -3
  15. package/esm2022/lib/desy-commons/components/divider/divider.component.mjs +3 -3
  16. package/esm2022/lib/desy-commons/components/icon/icon.component.mjs +3 -3
  17. package/esm2022/lib/desy-commons/components/title/title.component.mjs +3 -3
  18. package/esm2022/lib/desy-commons/desy-commons.module.mjs +4 -4
  19. package/esm2022/lib/desy-forms/components/character-count/character-count.component.mjs +3 -3
  20. package/esm2022/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.mjs +3 -3
  21. package/esm2022/lib/desy-forms/components/checkboxes/checkboxes-parent.component.mjs +3 -3
  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 +3 -3
  24. package/esm2022/lib/desy-forms/components/date-input/date-input-divider/date-input-divider.component.mjs +3 -3
  25. package/esm2022/lib/desy-forms/components/date-input/date-input-item/date-input-item.component.mjs +3 -3
  26. package/esm2022/lib/desy-forms/components/date-input/date-input-month/date-input-month.component.mjs +3 -3
  27. package/esm2022/lib/desy-forms/components/date-input/date-input-year/date-input-year.component.mjs +3 -3
  28. package/esm2022/lib/desy-forms/components/date-input/date-input.component.mjs +3 -3
  29. package/esm2022/lib/desy-forms/components/error-message/error-message.component.mjs +3 -3
  30. package/esm2022/lib/desy-forms/components/fieldset/fieldset.component.mjs +3 -3
  31. package/esm2022/lib/desy-forms/components/fieldset/legend/legend.component.mjs +3 -3
  32. package/esm2022/lib/desy-forms/components/file-upload/file-upload.component.mjs +3 -3
  33. package/esm2022/lib/desy-forms/components/form-field/form-field.component.mjs +3 -3
  34. package/esm2022/lib/desy-forms/components/hint/hint.component.mjs +3 -3
  35. package/esm2022/lib/desy-forms/components/input/input.component.mjs +3 -3
  36. package/esm2022/lib/desy-forms/components/input-group/input-group-divider/input-group-divider.component.mjs +3 -3
  37. package/esm2022/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.mjs +3 -3
  38. package/esm2022/lib/desy-forms/components/input-group/input-group-item/input-group-item.component.mjs +3 -3
  39. package/esm2022/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.mjs +3 -3
  40. package/esm2022/lib/desy-forms/components/input-group/input-group.component.mjs +3 -3
  41. package/esm2022/lib/desy-forms/components/label/label.component.mjs +3 -3
  42. package/esm2022/lib/desy-forms/components/radios/radio-item/radio-item.component.mjs +3 -3
  43. package/esm2022/lib/desy-forms/components/radios/radios-parent.component.mjs +3 -3
  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 +3 -3
  46. package/esm2022/lib/desy-forms/components/select/option/option.component.mjs +3 -3
  47. package/esm2022/lib/desy-forms/components/select/option-group/option-group.component.mjs +3 -3
  48. package/esm2022/lib/desy-forms/components/select/select-item/select-item.component.mjs +3 -3
  49. package/esm2022/lib/desy-forms/components/select/select.component.mjs +3 -3
  50. package/esm2022/lib/desy-forms/components/template-driven-wrapper/template-driven-wrapper.component.mjs +3 -3
  51. package/esm2022/lib/desy-forms/components/textarea/textarea.component.mjs +3 -3
  52. package/esm2022/lib/desy-forms/components/tree/tree-checkbox/tree-checkbox.component.mjs +3 -3
  53. package/esm2022/lib/desy-forms/components/tree/tree-item/tree-item.component.mjs +3 -3
  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 +3 -3
  56. package/esm2022/lib/desy-forms/components/tree/tree.component.mjs +3 -3
  57. package/esm2022/lib/desy-forms/desy-forms.module.mjs +4 -4
  58. package/esm2022/lib/desy-forms/directives/condition.directive.mjs +3 -3
  59. package/esm2022/lib/desy-modals/components/dialog/dialog.component.mjs +3 -3
  60. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.mjs +3 -3
  61. package/esm2022/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.mjs +3 -3
  62. package/esm2022/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.mjs +3 -3
  63. package/esm2022/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.mjs +3 -3
  64. package/esm2022/lib/desy-modals/components/modal/modal.component.mjs +3 -3
  65. package/esm2022/lib/desy-modals/desy-modals.module.mjs +4 -4
  66. package/esm2022/lib/desy-modals/services/dialog.service.mjs +3 -3
  67. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs-item/breadcrumbs-item.component.mjs +3 -3
  68. package/esm2022/lib/desy-nav/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  69. package/esm2022/lib/desy-nav/components/error-summary/error-summary-item/error-summary-item.component.mjs +3 -3
  70. package/esm2022/lib/desy-nav/components/error-summary/error-summary.component.mjs +3 -3
  71. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta-item/footer-meta-item.component.mjs +3 -3
  72. package/esm2022/lib/desy-nav/components/footer/footer-meta/footer-meta.component.mjs +3 -3
  73. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation-item/footer-navigation-item.component.mjs +3 -3
  74. package/esm2022/lib/desy-nav/components/footer/footer-navigation/footer-navigation.component.mjs +3 -3
  75. package/esm2022/lib/desy-nav/components/footer/footer.component.mjs +3 -3
  76. package/esm2022/lib/desy-nav/components/header/header-custom-navigation/header-custom-navigation.component.mjs +3 -3
  77. package/esm2022/lib/desy-nav/components/header/header-dropdown/header-dropdown.component.mjs +3 -3
  78. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation-item/header-navigation-item.component.mjs +3 -3
  79. package/esm2022/lib/desy-nav/components/header/header-navigation/header-navigation.component.mjs +3 -3
  80. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.mjs +3 -3
  81. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-close-button/header-offcanvas-close-button.component.mjs +3 -3
  82. package/esm2022/lib/desy-nav/components/header/header-offcanvas/header-offcanvas.component.mjs +3 -3
  83. package/esm2022/lib/desy-nav/components/header/header-subnav/header-subnav.component.mjs +3 -3
  84. package/esm2022/lib/desy-nav/components/header/header.component.mjs +3 -3
  85. package/esm2022/lib/desy-nav/components/links-list/links-list-item/links-list-item.component.mjs +3 -3
  86. package/esm2022/lib/desy-nav/components/links-list/links-list-item-sub/links-list-item-sub.component.mjs +3 -3
  87. package/esm2022/lib/desy-nav/components/links-list/links-list.component.mjs +3 -3
  88. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal-item/menu-horizontal-item.component.mjs +3 -3
  89. package/esm2022/lib/desy-nav/components/menu-horizontal/menu-horizontal.component.mjs +3 -3
  90. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.mjs +3 -3
  91. package/esm2022/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.mjs +3 -3
  92. package/esm2022/lib/desy-nav/components/menu-navigation/menu-navigation.component.mjs +3 -3
  93. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item/menu-vertical-item.component.mjs +3 -3
  94. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub/menu-vertical-item-sub.component.mjs +3 -3
  95. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical-item-sub-item/menu-vertical-item-sub-item.component.mjs +3 -3
  96. package/esm2022/lib/desy-nav/components/menu-vertical/menu-vertical.component.mjs +3 -3
  97. package/esm2022/lib/desy-nav/components/menubar/components/menubar-item/menubar-item.component.mjs +3 -3
  98. package/esm2022/lib/desy-nav/components/menubar/components/menubar-label/menubar-label.component.mjs +3 -3
  99. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subitem/menubar-subitem.component.mjs +3 -3
  100. package/esm2022/lib/desy-nav/components/menubar/components/menubar-subsubitem/menubar-subsubitem.component.mjs +3 -3
  101. package/esm2022/lib/desy-nav/components/menubar/directives/menubaritem.directive.mjs +3 -3
  102. package/esm2022/lib/desy-nav/components/menubar/menubar.component.mjs +3 -3
  103. package/esm2022/lib/desy-nav/components/nav/nav-item/nav-item.component.mjs +3 -3
  104. package/esm2022/lib/desy-nav/components/nav/nav.component.mjs +3 -3
  105. package/esm2022/lib/desy-nav/components/notification/notification-item/notification-item.component.mjs +3 -3
  106. package/esm2022/lib/desy-nav/components/notification/notification.component.mjs +3 -3
  107. package/esm2022/lib/desy-nav/components/skip-link/skip-link.component.mjs +18 -4
  108. package/esm2022/lib/desy-nav/desy-nav.module.mjs +4 -4
  109. package/esm2022/lib/desy-pagination/components/pagination/pagination.component.mjs +3 -3
  110. package/esm2022/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.mjs +3 -3
  111. package/esm2022/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.mjs +3 -3
  112. package/esm2022/lib/desy-pagination/desy-pagination.module.mjs +4 -4
  113. package/esm2022/lib/desy-tables/components/table/components/table-caption.component.mjs +3 -3
  114. package/esm2022/lib/desy-tables/components/table/components/table-cell.component.mjs +3 -3
  115. package/esm2022/lib/desy-tables/components/table/components/table-header.component.mjs +3 -3
  116. package/esm2022/lib/desy-tables/components/table/components/table-row.component.mjs +3 -3
  117. package/esm2022/lib/desy-tables/components/table/table.component.mjs +3 -3
  118. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.mjs +3 -3
  119. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-header.component.mjs +3 -3
  120. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row-cell.component.mjs +3 -3
  121. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-row.component.mjs +3 -3
  122. package/esm2022/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.mjs +3 -3
  123. package/esm2022/lib/desy-tables/components/table-advanced/table-advanced.component.mjs +3 -3
  124. package/esm2022/lib/desy-tables/desy-tables.module.mjs +4 -4
  125. package/esm2022/lib/desy-tables/directives/cell.directive.mjs +3 -3
  126. package/esm2022/lib/desy-tables/directives/focus-clicked-cell.directive.mjs +3 -3
  127. package/esm2022/lib/desy-tables/directives/row.directive.mjs +3 -3
  128. package/esm2022/lib/desy-views/components/accordion/accordion-header/accordion-header.component.mjs +3 -3
  129. package/esm2022/lib/desy-views/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
  130. package/esm2022/lib/desy-views/components/accordion/accordion.component.mjs +3 -3
  131. package/esm2022/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.mjs +3 -3
  132. package/esm2022/lib/desy-views/components/accordion-history/accordion-history.component.mjs +3 -3
  133. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.mjs +3 -3
  134. package/esm2022/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.mjs +3 -3
  135. package/esm2022/lib/desy-views/components/alert/alert.component.mjs +3 -3
  136. package/esm2022/lib/desy-views/components/collapsible/collapsible.component.mjs +3 -3
  137. package/esm2022/lib/desy-views/components/description-list/definition/definition.component.mjs +3 -3
  138. package/esm2022/lib/desy-views/components/description-list/description-item/description-item.component.mjs +3 -3
  139. package/esm2022/lib/desy-views/components/description-list/description-list.component.mjs +3 -3
  140. package/esm2022/lib/desy-views/components/description-list/term/term.component.mjs +3 -3
  141. package/esm2022/lib/desy-views/components/details/details.component.mjs +3 -3
  142. package/esm2022/lib/desy-views/components/item/item-content-bottom/item-content-bottom.component.mjs +3 -3
  143. package/esm2022/lib/desy-views/components/item/item-content-right/item-content-right.component.mjs +3 -3
  144. package/esm2022/lib/desy-views/components/item/item-item/item-item.component.mjs +3 -3
  145. package/esm2022/lib/desy-views/components/item/item.component.mjs +3 -3
  146. package/esm2022/lib/desy-views/components/media-object/media-object-figure/media-object-figure.component.mjs +3 -3
  147. package/esm2022/lib/desy-views/components/media-object/media-object.component.mjs +3 -3
  148. package/esm2022/lib/desy-views/components/spinner/spinner.component.mjs +3 -3
  149. package/esm2022/lib/desy-views/components/status/status.component.mjs +3 -3
  150. package/esm2022/lib/desy-views/components/status-item/status-item.component.mjs +3 -3
  151. package/esm2022/lib/desy-views/components/tabs/panel/panel.component.mjs +3 -3
  152. package/esm2022/lib/desy-views/components/tabs/tab-item/tab-item.component.mjs +3 -3
  153. package/esm2022/lib/desy-views/components/tabs/tabs.component.mjs +3 -3
  154. package/esm2022/lib/desy-views/components/tooltip/tooltip-content/tooltip-content.component.mjs +3 -3
  155. package/esm2022/lib/desy-views/components/tooltip/tooltip.component.mjs +3 -3
  156. package/esm2022/lib/desy-views/desy-views.module.mjs +4 -4
  157. package/esm2022/lib/desy-views/services/alert.service.mjs +3 -3
  158. package/esm2022/lib/shared/components/accessibility/accessibility.component.mjs +3 -3
  159. package/esm2022/lib/shared/components/accessibility-and-content-required/accessibility-and-content-required.component.mjs +3 -3
  160. package/esm2022/lib/shared/components/accessibility-and-text-or-html-required/accessibility-and-text-or-html-required.component.mjs +3 -3
  161. package/esm2022/lib/shared/components/content-base/content-base.component.mjs +3 -3
  162. package/esm2022/lib/shared/components/text-or-html-required/text-or-html-required.component.mjs +3 -3
  163. package/esm2022/lib/shared/directives/attribute-change.directive.mjs +3 -3
  164. package/esm2022/lib/shared/directives/click-outside.directive.mjs +3 -3
  165. package/esm2022/lib/shared/directives/content-change.directive.mjs +3 -3
  166. package/esm2022/lib/shared/directives/custom-inner-content.directive.mjs +3 -3
  167. package/esm2022/lib/shared/directives/inner-content.directive.mjs +3 -3
  168. package/esm2022/lib/shared/pipes/external-href.pipe.mjs +3 -3
  169. package/esm2022/lib/shared/pipes/inner-html.pipe.mjs +3 -3
  170. package/esm2022/lib/shared/pipes/make-html-list.pipe.mjs +3 -3
  171. package/esm2022/lib/shared/shared.module.mjs +4 -4
  172. package/fesm2022/desy-angular.mjs +540 -526
  173. package/fesm2022/desy-angular.mjs.map +1 -1
  174. package/lib/desy-forms/components/tree/tree-items-generator/tree-items-generator.component.d.ts +1 -5
  175. package/lib/desy-nav/components/skip-link/skip-link.component.d.ts +6 -2
  176. package/package.json +1 -1
@@ -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 IconComponent extends ContentBaseComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: IconComponent, selector: "desy-icon", inputs: { type: "type", containerClasses: "containerClasses" }, usesInheritance: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n" }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IconComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: IconComponent, selector: "desy-icon", inputs: { type: "type", containerClasses: "containerClasses" }, usesInheritance: true, ngImport: i0, template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n" }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: IconComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: IconComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'desy-icon', template: "<ng-template #contentTemplate>\n <ng-content></ng-content>\n</ng-template>\n" }]
11
11
  }], propDecorators: { type: [{
@@ -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 TitleComponent extends ContentBaseComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: TitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: TitleComponent, selector: "desy-title", inputs: { classes: "classes" }, 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.8", ngImport: i0, type: TitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: TitleComponent, selector: "desy-title", inputs: { classes: "classes" }, 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: TitleComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: TitleComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-title',
@@ -9,8 +9,8 @@ import { DescriptionComponent } from './components/description/description.compo
9
9
  import { DividerComponent } from './components/divider/divider.component';
10
10
  import * as i0 from "@angular/core";
11
11
  export class DesyCommonsModule {
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DesyCommonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.7", ngImport: i0, type: DesyCommonsModule, declarations: [IconComponent,
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DesyCommonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
13
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.8", ngImport: i0, type: DesyCommonsModule, declarations: [IconComponent,
14
14
  ContentComponent,
15
15
  DescriptionComponent,
16
16
  TitleComponent,
@@ -21,11 +21,11 @@ export class DesyCommonsModule {
21
21
  DescriptionComponent,
22
22
  TitleComponent,
23
23
  DividerComponent] }); }
24
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DesyCommonsModule, imports: [CommonModule,
24
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DesyCommonsModule, imports: [CommonModule,
25
25
  SharedModule,
26
26
  NgxTippyModule] }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DesyCommonsModule, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DesyCommonsModule, decorators: [{
29
29
  type: NgModule,
30
30
  args: [{
31
31
  declarations: [
@@ -83,8 +83,8 @@ export class CharacterCountComponent extends FormFieldComponent {
83
83
  this.textarea.writeValue(value);
84
84
  }
85
85
  }
86
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CharacterCountComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CharacterCountComponent, selector: "desy-character-count", inputs: { name: "name", type: "type", rows: "rows", placeholder: "placeholder", maxlength: "maxlength", countbbdd: "countbbdd", maxwords: "maxwords", threshold: "threshold", formGroupClasses: "formGroupClasses", countMessageClasses: "countMessageClasses", classes: "classes" }, providers: [
86
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CharacterCountComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
87
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: CharacterCountComponent, selector: "desy-character-count", inputs: { name: "name", type: "type", rows: "rows", placeholder: "placeholder", maxlength: "maxlength", countbbdd: "countbbdd", maxwords: "maxwords", threshold: "threshold", formGroupClasses: "formGroupClasses", countMessageClasses: "countMessageClasses", classes: "classes" }, providers: [
88
88
  {
89
89
  provide: NG_VALUE_ACCESSOR,
90
90
  useExisting: forwardRef(() => CharacterCountComponent),
@@ -92,7 +92,7 @@ export class CharacterCountComponent extends FormFieldComponent {
92
92
  }
93
93
  ], viewQueries: [{ propertyName: "textarea", first: true, predicate: TextareaComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<desy-textarea\n [id]=\"id\"\n [name]=\"name\"\n [describedBy]=\"id + '-info'\"\n [rows]=\"rows\"\n [placeholder]=\"placeholder\"\n [formGroupClasses]=\"[formGroupClasses ? formGroupClasses : 'mb-0'] | makeHtmlList\"\n [classes]=\"['js-character-count', hasErrorsMessage() ? 'border-alert-base ring-2 ring-alert-base' : null, classes] | makeHtmlList\"\n [labelRef]=\"labelRef\" [labelData]=\"labelData\" [labelText]=\"labelText\"\n [hintRef]=\"hintRef\" [hintData]=\"hintData\" [hintText]=\"hintText\"\n [errorMessageRef]=\"errorMessageRef\" [errorMessageData]=\"errorMessageData\" [errorMessageText]=\"errorMessageText\"\n [role]=\"role\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [ariaHidden]=\"ariaHidden\"\n [ariaDisabled]=\"ariaDisabled\"\n [ariaControls]=\"ariaControls\"\n [ariaCurrent]=\"ariaCurrent\"\n [ariaLive]=\"ariaLive\"\n [ariaExpanded]=\"ariaExpanded\"\n [ariaErrorMessage]=\"ariaErrorMessage\"\n [ariaHasPopup]=\"ariaHasPopup\"\n [tabindex]=\"tabindex\"></desy-textarea>\n\n<desy-hint *ngIf=\"!!displayCountMessage\"\n [id]=\"id + '-info'\" [classes]=\"['mt-xs text-sm', countMessageClasses] | makeHtmlList\" ariaLive=\"polite\"\n [text]=\"'Puedes escribir hasta ' + remaining + (maxlength ? ' caracteres' : ' palabras')\"></desy-hint>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.HintComponent, selector: "desy-hint", inputs: ["id", "classes", "html", "text"] }, { kind: "component", type: i3.TextareaComponent, selector: "desy-textarea", inputs: ["name", "rows", "placeholder", "describedBy", "formGroupClasses", "classes", "autocomplete", "maxlength"] }, { kind: "pipe", type: i4.MakeHtmlListPipe, name: "makeHtmlList" }] }); }
94
94
  }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CharacterCountComponent, decorators: [{
95
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CharacterCountComponent, decorators: [{
96
96
  type: Component,
97
97
  args: [{ selector: 'desy-character-count', providers: [
98
98
  {
@@ -137,8 +137,8 @@ export class CheckboxItemComponent extends AccessibilityComponent {
137
137
  getDescribedBy() {
138
138
  return !this.checkboxes.hasFieldset() ? this.checkboxes.describedBy : null;
139
139
  }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CheckboxItemComponent, deps: [{ token: i1.CheckboxesParentComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
141
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CheckboxItemComponent, selector: "desy-checkbox-item", inputs: { id: "id", value: "value", name: "name", conditional: "conditional", disabled: "disabled", isIndeterminate: "isIndeterminate", indeterminateChecked: "indeterminateChecked", classes: "classes", checked: "checked" }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, host: { properties: { "class": "this.classesHost" } }, queries: [{ propertyName: "labelComponentList", predicate: LabelComponent }, { propertyName: "hintComponentList", predicate: HintComponent }, { propertyName: "conditionalContentList", predicate: ContentComponent }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [checked]=\"checked\"\n [attr.id]=\"checkboxId\"\n [attr.name]=\"name ? name : getNameCheckbox()\"\n type=\"checkbox\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [attr.disabled]=\"disabled || parentDisabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + checkboxId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError() ? true : null\"\n\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : 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-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 </div>\n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"checkboxId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n</div>\n\n<div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && (input.checked || input.indeterminate)\" @displayConditional\n class=\"mb-base ml-5 py-sm pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + checkboxId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i4.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "pipe", type: i5.MakeHtmlListPipe, name: "makeHtmlList" }], animations: [
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CheckboxItemComponent, deps: [{ token: i1.CheckboxesParentComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: CheckboxItemComponent, selector: "desy-checkbox-item", inputs: { id: "id", value: "value", name: "name", conditional: "conditional", disabled: "disabled", isIndeterminate: "isIndeterminate", indeterminateChecked: "indeterminateChecked", classes: "classes", checked: "checked" }, outputs: { checkedChange: "checkedChange", indeterminateChange: "indeterminateChange" }, host: { properties: { "class": "this.classesHost" } }, queries: [{ propertyName: "labelComponentList", predicate: LabelComponent }, { propertyName: "hintComponentList", predicate: HintComponent }, { propertyName: "conditionalContentList", predicate: ContentComponent }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"relative flex items-start py-base\">\n <div class=\"flex items-center mx-sm\">\n <input #input class=\"w-6 h-6 transition duration-150 ease-in-out border-black focus:border-black focus:shadow-outline-focus-input focus:ring-4 focus:ring-offset-0 focus:ring-warning-base disabled:bg-neutral-base disabled:border-neutral-base text-primary-base\"\n [checked]=\"checked\"\n [attr.id]=\"checkboxId\"\n [attr.name]=\"name ? name : getNameCheckbox()\"\n type=\"checkbox\"\n [value]=\"value\" (change)=\"hasChanged()\"\n [attr.disabled]=\"disabled || parentDisabled ? true : null\"\n [attr.aria-controls]=\"conditionalContentList && conditionalContentList.length > 0 ? 'conditional-' + checkboxId : null\"\n [attr.aria-describedby]=\"[getDescribedBy(), getItemHintId()] | makeHtmlList:null\"\n [attr.aria-invalid]=\"hasError() ? true : null\"\n\n [attr.role]=\"role ? role : null\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : 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-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 </div>\n <div class=\"pt-0.5 leading-5\">\n <ng-container *ngIf=\"labelComponentList && labelComponentList.length > 0\">\n <ng-content select=\"desy-label\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!(labelComponentList && labelComponentList.length > 0)\">\n <desy-label [for]=\"checkboxId\">\n <ng-content></ng-content>\n </desy-label>\n </ng-container>\n <ng-content select=\"desy-hint\"></ng-content>\n </div>\n</div>\n\n<div *ngIf=\"conditional && conditionalContentList && conditionalContentList.length > 0 && (input.checked || input.indeterminate)\" @displayConditional\n class=\"mb-base ml-5 py-sm pl-6 origin-top-left border-l-2 border-primary-base\"\n [attr.id]=\"'conditional-' + checkboxId\">\n <ng-container *desyCustomInnerContent=\"{ component: conditionalContentList.first }\"></ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i4.LabelComponent, selector: "desy-label", inputs: ["id", "classes", "html", "text", "isPageHeading", "headingLevel", "for"] }, { kind: "pipe", type: i5.MakeHtmlListPipe, name: "makeHtmlList" }], animations: [
142
142
  trigger('displayConditional', [
143
143
  state('void', style({
144
144
  opacity: '0.0',
@@ -161,7 +161,7 @@ __decorate([
161
161
  DesyOnInputChange('setIndeterminateStatus'),
162
162
  __metadata("design:type", Boolean)
163
163
  ], CheckboxItemComponent.prototype, "indeterminateChecked", void 0);
164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CheckboxItemComponent, decorators: [{
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CheckboxItemComponent, decorators: [{
165
165
  type: Component,
166
166
  args: [{ selector: 'desy-checkbox-item', animations: [
167
167
  trigger('displayConditional', [
@@ -2,10 +2,10 @@ import { Component } from '@angular/core';
2
2
  import { FormFieldComponent } from '../form-field/form-field.component';
3
3
  import * as i0 from "@angular/core";
4
4
  export class CheckboxesParentComponent extends FormFieldComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CheckboxesParentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CheckboxesParentComponent, selector: "desy-checkboxes-parent", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CheckboxesParentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: CheckboxesParentComponent, selector: "desy-checkboxes-parent", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CheckboxesParentComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CheckboxesParentComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'desy-checkboxes-parent',
@@ -29,7 +29,7 @@ export class CheckboxesComponent extends CheckboxesParentComponent {
29
29
  this.updateItemListFlag = false;
30
30
  }
31
31
  ngDoCheck() {
32
- if (this.updateValueFromCheckboxItemsFlag && (this.nextValue === null || this.nextValue === undefined)) {
32
+ if (this.updateValueFromCheckboxItemsFlag) {
33
33
  this.updateValueFromCheckboxItemsFlag = false;
34
34
  if (!this.updateItemListFlag || (!this.value || this.value.length === 0)) {
35
35
  const items = this.getCheckboxItems();
@@ -181,8 +181,8 @@ export class CheckboxesComponent extends CheckboxesParentComponent {
181
181
  }
182
182
  return checkboxItems;
183
183
  }
184
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CheckboxesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
185
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: CheckboxesComponent, selector: "desy-checkboxes", inputs: { fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", idPrefix: "idPrefix", name: "name", items: "items", formGroupClasses: "formGroupClasses", hasDividers: "hasDividers", hasError: "hasError", classes: "classes", describedBy: "describedBy" }, outputs: { itemsChange: "itemsChange" }, providers: [
184
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CheckboxesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
185
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: CheckboxesComponent, selector: "desy-checkboxes", inputs: { fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", idPrefix: "idPrefix", name: "name", items: "items", formGroupClasses: "formGroupClasses", hasDividers: "hasDividers", hasError: "hasError", classes: "classes", describedBy: "describedBy" }, outputs: { itemsChange: "itemsChange" }, providers: [
186
186
  {
187
187
  provide: NG_VALUE_ACCESSOR,
188
188
  useExisting: forwardRef(() => CheckboxesComponent),
@@ -210,7 +210,7 @@ __decorate([
210
210
  DesyContentChild(),
211
211
  __metadata("design:type", LegendComponent)
212
212
  ], CheckboxesComponent.prototype, "legendComponent", void 0);
213
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: CheckboxesComponent, decorators: [{
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: CheckboxesComponent, decorators: [{
214
214
  type: Component,
215
215
  args: [{ selector: 'desy-checkboxes', providers: [
216
216
  {
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImpor
265
265
  type: ViewChildren,
266
266
  args: [CheckboxItemComponent]
267
267
  }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvY2hlY2tib3hlcy9jaGVja2JveGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9jaGVja2JveGVzL2NoZWNrYm94ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUFXLFlBQVksRUFDdEMsVUFBVSxFQUNWLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUVULFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNyQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7QUFrQjFFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx5QkFBeUI7SUFmbEU7O1FBc0NZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7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QUNEOzRCQUNFLE9BQU8sRUFBRSx5QkFBeUI7NEJBQ2xDLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjs4QkFhUSxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdXLFFBQVE7c0JBQXhCLEtBQUs7Z0JBR1csSUFBSTtzQkFBcEIsS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ1csV0FBVztzQkFBM0IsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDVyxXQUFXO3NCQUEzQixLQUFLO2dCQUc4QixpQkFBaUI7c0JBQXBELGVBQWU7dUJBQUMsaUJBQWlCO2dCQUdBLGVBQWU7c0JBQWhELGVBQWU7dUJBQUMsZUFBZTtnQkFFUSxzQkFBc0I7c0JBQTdELGVBQWU7dUJBQUMscUJBQXFCO2dCQUVJLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDSCx1QkFBdUI7c0JBQTNELFlBQVk7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sIERvQ2hlY2ssIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZpZWxkc2V0RGF0YSwgTGVnZW5kRGF0YSwgSXRlbUNoZWNrYm94RGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTGVnZW5kQ29tcG9uZW50IH0gZnJvbSAnLi4vZmllbGRzZXQvbGVnZW5kL2xlZ2VuZC5jb21wb25lbnQnO1xuaW1wb3J0IHtDaGVja2JveEl0ZW1Db21wb25lbnR9IGZyb20gJy4vY2hlY2tib3gtaXRlbS9jaGVja2JveC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQge0hpbnRDb21wb25lbnR9IGZyb20gJy4uL2hpbnQvaGludC5jb21wb25lbnQnO1xuaW1wb3J0IHtFcnJvck1lc3NhZ2VDb21wb25lbnR9IGZyb20gJy4uL2Vycm9yLW1lc3NhZ2UvZXJyb3ItbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHtGaWVsZHNldENvbXBvbmVudH0gZnJvbSAnLi4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcbmltcG9ydCB7TWFrZUh0bWxMaXN0UGlwZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3BpcGVzL21ha2UtaHRtbC1saXN0LnBpcGUnO1xuaW1wb3J0IHtEZXN5Q29udGVudENoaWxkfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy9kZXN5LWNvbnRlbnQtY2hpbGQuZGVjb3JhdG9yJztcbmltcG9ydCB7RGVzeU9uSW5wdXRDaGFuZ2V9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvcic7XG5pbXBvcnQgeyBDaGVja2JveGVzUGFyZW50Q29tcG9uZW50IH0gZnJvbSAnLi9jaGVja2JveGVzLXBhcmVudC5jb21wb25lbnQnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Rlc3ktY2hlY2tib3hlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveGVzLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDaGVja2JveGVzQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBDaGVja2JveGVzUGFyZW50Q29tcG9uZW50LFxuICAgICAgdXNlRXhpc3Rpbmc6IENoZWNrYm94ZXNDb21wb25lbnQsXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENoZWNrYm94ZXNDb21wb25lbnQgZXh0ZW5kcyBDaGVja2JveGVzUGFyZW50Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgRG9DaGVjayB7XG4gIFxuICAvKipcbiAgICogZmllbGRzZXQsIGRpZmVyZW50ZXMgZm9ybWFzIGRlIGltcGxlbWVudGFyLCBlbnVtZXJhZGFzIHBvciBwcmlvcmlkYWRcbiAgICogMSkgaW5jbHVpciBjb21wb25lbnRlIEZpZWxkc2V0Q29tcG9uZW50XG4gICAqIDIpIGluY2x1aXIgb2JqZXRvIEZpZWxkc2V0RGF0YSAoaW50ZXJmYXogZXhwdWVzdGEpXG4gICAqIDMpIGluY2x1aXIgY29tcG9uZW50ZSBMZWdlbmRDb21wb25lbnRcbiAgICogNCkgaW5jbHVpciB0ZW1wbGF0ZSBsZWdlbmRcbiAgICogNSkgaW5jbHVpciBsZWdlbmREYXRhIC0gaW5jbHVpciB1biBmaWVsZHNldCBjb24gdW5hIGxlZ2VuZGEgY29uIGxvcyBwYXJhbWV0cm9zIHBhc2Fkb3MgIChpbnRlcmZheiBleHB1ZXN0YSlcbiAgICogNikgaW5jbHVpciBsZWdlbmRUZXh0IC0gaW5jbHVpciB1biBmaWVsZHNldCBjb24gdW4gdGV4dG8gZW4gbGEgbGVnZW5kYVxuICAgKi9cbiAgQElucHV0KCkgZmllbGRzZXREYXRhOiBGaWVsZHNldERhdGE7XG4gIEBJbnB1dCgpIGxlZ2VuZFJlZjogVGVtcGxhdGVSZWY8TGVnZW5kQ29tcG9uZW50PjtcbiAgQElucHV0KCkgbGVnZW5kRGF0YTogTGVnZW5kRGF0YTtcbiAgQElucHV0KCkgbGVnZW5kVGV4dDogc3RyaW5nO1xuXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25JZFByZWZpeENoYW5nZScpXG4gIEBJbnB1dCgpIGRlY2xhcmUgaWRQcmVmaXg6IHN0cmluZztcbiAgXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25OYW1lQ2hhbmdlJylcbiAgQElucHV0KCkgZGVjbGFyZSBuYW1lOiBzdHJpbmc7XG4gIFxuICBASW5wdXQoKSBpdGVtczogSXRlbUNoZWNrYm94RGF0YVtdO1xuICBAT3V0cHV0KCkgaXRlbXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEl0ZW1DaGVja2JveERhdGFbXT4oKTtcbiAgXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBoYXNEaXZpZGVyczogYm9vbGVhbjtcbiAgQElucHV0KCkgaGFzRXJyb3I6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcbiAgQElucHV0KCkgZGVjbGFyZSBkZXNjcmliZWRCeTogc3RyaW5nO1xuICBcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcbiAgQENvbnRlbnRDaGlsZHJlbihGaWVsZHNldENvbXBvbmVudCkgZmllbGRzZXRDb21wb25lbnQ6IEZpZWxkc2V0Q29tcG9uZW50O1xuICBcbiAgQERlc3lDb250ZW50Q2hpbGQoKVxuICBAQ29udGVudENoaWxkcmVuKExlZ2VuZENvbXBvbmVudCkgbGVnZW5kQ29tcG9uZW50OiBMZWdlbmRDb21wb25lbnQ7XG4gIFxuICBAQ29udGVudENoaWxkcmVuKENoZWNrYm94SXRlbUNvbXBvbmVudCkgY2hlY2tib3hDb21wb25lbnRJdGVtczogUXVlcnlMaXN0PENoZWNrYm94SXRlbUNvbXBvbmVudD47XG4gIFxuICBAVmlld0NoaWxkKCdpbm5lckh0bWwnLCB7IHN0YXRpYzogdHJ1ZSB9KSBpbm5lckh0bWw6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGRyZW4oQ2hlY2tib3hJdGVtQ29tcG9uZW50KSBjaGVja2JveENvbXBvbmVudEl0ZW1zMjogUXVlcnlMaXN0PENoZWNrYm94SXRlbUNvbXBvbmVudD47XG5cbiAgLy8gRmxhZ3NcbiAgcHJpdmF0ZSBuZXh0VmFsdWUgPSBudWxsOyAgICAgICAgICAgICAgICAgICAgICAgICAvLyBQcsOzeGltbyB2YWxvciBlbiBlbCBjb21wb25lbnRlXG4gIHByaXZhdGUgdXBkYXRlQ2hla2JveElkc0ZsYWcgPSBmYWxzZTsgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBzZSBoYW4gbW9kaWZpY2FkbyBsb3MgaWRzIGRlIGxvcyBpdGVtc1xuICBwcml2YXRlIGNvbnRlbnRJbml0RmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAgICAgIC8vIEluZGljYSBxdWUgc2UgaW5pY2lhbGl6YWRvIGVsIGNvbmVuaWRvXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtc0ZsYWcgPSBmYWxzZTsgLy8gSW5kaWNhIHF1ZSBzZSBoYSBzZWxlY2Npb25hZG8vZGVzZWxlY2Npb25hZG8gdW4gaXRlbVxuICBwcml2YXRlIHVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlOyAgIC8vIEluZGljYSBxdWUgc2UgZGViZSBzZWxlY2Npb25hci9kZXNlbGVjY2lvbmFyIHVuIGl0ZW1cbiAgcHJpdmF0ZSB1cGRhdGVJdGVtTGlzdEZsYWcgPSBmYWxzZTsgICAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIHNlIGhhIGNyZWFkby9tb2RpZmljYWRvIGVsIGxpc3RhZG8gZGUgaXRlbXNcblxuICAvKipcbiAgICogQ2VudHJhbGl6YSB5IGNvb3JkaW5hIGxvcyBjYW1iaW9zIGVuIGVsIGNvbXBvbmVudGVcbiAgICovXG4gIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICBcbiAgICAvLyBUT0RPIEVzdGEgZ2VzdGnDs24gcmVzdWx0YSBlbmdvcnJvc2EgeSBkaWZpY2lsIGRlIHNlZ3Vpci4gRXN0dWRpYXIgc2kgZXMgbWVqb3JhYmxlIHV0aWxpemFuZG8gc2lnbmFscyBhIHBhcnRpciBkZSBhbmd1bGFyIDE2XG4gICAgXG4gICAgaWYgKHRoaXMudXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtc0ZsYWcgJiYgKHRoaXMubmV4dFZhbHVlID09PSBudWxsIHx8IHRoaXMubmV4dFZhbHVlID09PSB1bmRlZmluZWQpKSB7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlRnJvbUNoZWNrYm94SXRlbXNGbGFnID0gZmFsc2U7XG4gICAgICBcbiAgICAgIC8qXG4gICAgICAgKiBTZSBtb2RpZmljYSBlbCB2YWxvciBkZXNkZSBsb3MgaXRlbXMsIGEgbm8gc2VyIHF1ZSBsYSBsaXN0YSBzZSBhY2FiZSBkZSBjcmVhclxuICAgICAgICogeSB5YSB0ZW5nYSB1biB2YWxvci4gRW4gZXNlIGNhc28sIHByZXZhbGVjZSBlbCB2YWxvciBleGlzdGVudGUuXG4gICAgICAgKi9cbiAgICAgIGlmICghdGhpcy51cGRhdGVJdGVtTGlzdEZsYWcgfHwgKCF0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUubGVuZ3RoID09PSAwKSkge1xuICAgICAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0Q2hlY2tib3hJdGVtcygpO1xuICAgICAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCAmJiBpdGVtcy5maW5kSW5kZXgoaXRlbSA9PiAhaXRlbS5pc0luaXQoKSkgPCAwKSB7XG4gICAgICAgICAgdGhpcy5uZXh0VmFsdWUgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiBpdGVtLmNoZWNrZWQpLm1hcChpdGVtID0+IGl0ZW0uZ2V0VmFsdWUoKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgXG4gICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5pdGVtc0NoYW5nZS5lbWl0KHRoaXMuaXRlbXMpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLm5leHRWYWx1ZSAhPT0gbnVsbCAmJiAodGhpcy5uZXh0VmFsdWUubGVuZ3RoID4gMCB8fCAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMubmV4dFZhbHVlO1xuICAgICAgdGhpcy5uZXh0VmFsdWUgPSBudWxsO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZVRvQ2hlY2tib3hJdGVtc0ZsYWcgPSB0cnVlO1xuXG4gICAgICBzZXRUaW1lb3V0KCgpICA9PiB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXBkYXRlQ2hla2JveElkc0ZsYWcpIHtcbiAgICAgIGNvbnN0IGNoZWNrYm94SXRlbXMgPSB0aGlzLmdldENoZWNrYm94SXRlbXMoKTtcbiAgICAgIGlmIChjaGVja2JveEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2hlY2tib3hJdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4gaXRlbS51cGRhdGVDaGVja2JveElkKGluZGV4KSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUNoZWtib3hJZHNGbGFnID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudXBkYXRlVmFsdWVUb0NoZWNrYm94SXRlbXNGbGFnKSB7XG4gICAgICBjb25zdCBjaGVja2JveEl0ZW1zID0gdGhpcy5nZXRDaGVja2JveEl0ZW1zKCk7XG4gICAgICBpZiAoY2hlY2tib3hJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVUb0NoZWNrYm94SXRlbXNGbGFnID0gZmFsc2U7XG4gICAgICAgIGNoZWNrYm94SXRlbXMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBjb25zdCBpdGVtQ2hlY2tlZCA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlLmZpbmRJbmRleCh2ID0+IHYgPT09IGl0ZW0udmFsdWUpID4gLTEgOiB0aGlzLnZhbHVlID09PSBpdGVtLnZhbHVlO1xuICAgICAgICAgIGlmIChpdGVtQ2hlY2tlZCAhPT0gaXRlbS5sYXN0Q2hlY2tlZCkge1xuICAgICAgICAgICAgaXRlbS5zZXRDaGVja2VkKGl0ZW1DaGVja2VkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZUl0ZW1MaXN0RmxhZykge1xuICAgICAgdGhpcy51cGRhdGVJdGVtTGlzdEZsYWcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZW50SW5pdEZsYWcgPSB0cnVlO1xuICAgIHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZShjaGFuZ2UgPT4ge1xuICAgICAgdGhpcy51cGRhdGVJdGVtTGlzdEZsYWcgPSB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHdyaXRlVmFsdWUgZGUgRm9ybUZpZWxkIHBhcmEgZ2VzdGlvbmFyIGVuIHVuIMO6bmljbyBwdW50byBlbCB2YWxvciBkZSB2YWx1ZVxuICAgKiBAcGFyYW0gdmFsdWUgbnVldm8gdmFsb3IgYSBlc3RhYmxlY2VyXG4gICAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnlbXSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5uZXh0VmFsdWUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBvbklkUHJlZml4Q2hhbmdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbnRlbnRJbml0RmxhZykge1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlQ2hlY2tib3hJZHMoKTtcbiAgICB9XG4gICAgdGhpcy5wcm9wYWdhdGVOZXdJZFByZWZpeFZhbHVlKCk7XG4gIH1cblxuXG4gIG9uTmFtZUNoYW5nZSgpOiB2b2lkIHtcblxuICAgIGlmICh0aGlzLmNvbnRlbnRJbml0RmxhZykge1xuICAgICAgdGhpcy5tYXJrRm9yVXBkYXRlQ2hlY2tib3hJZHMoKTtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgbG9zIGNvbXBvbmVudGVzIGV4dGVybm9zIHF1ZSB0aWVuZW4gdmFsb3JlcyBkZXBlbmRpZW50ZXMgZGUgaWRQcmVmaXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oaW50Q29tcG9uZW50KSB7XG4gICAgICB0aGlzLm92ZXJyaWRlSGludFBhcmFtcyh0aGlzLmhpbnRDb21wb25lbnQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZUVycm9yTWVzc2FnZVBhcmFtcyh0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgLy8gQWwgaGFjZXIgZWwgb3ZlcnJpZGUgZGUgaGludCBvIGVycm9yIHlhIHNlIGFwbGljYSBzb2JyZSBlbCBmaWVsZHNldCwgcG9yIGxvIHF1ZSBzw7NsbyBlcyBuZWNlc2FyaW8gYXBsaWNhcmxvIGRpcmVjdGFtZW50ZVxuICAgIC8vIHNvYnJlIGVsIGZpZWxkc2V0IGN1YW5kbyBuaW5ndW5vIGRlIGVzdG9zIGV4aXN0ZVxuICAgIGlmICghdGhpcy5oaW50Q29tcG9uZW50ICYmICF0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLmZpZWxkc2V0Q29tcG9uZW50KSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgbWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlQ2hla2JveElkc0ZsYWcgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdHVhbGl6YSBlbCB2YWxvciBjdWFuZG8gc2UgcHJvZHVjZSB1biBjYW1iaW8gZW4gbG9zIGl0ZW1zLCB0YW50byBpbnRlcm5vIGNvbW8gZXh0ZXJub1xuICAgKi9cbiAgdXBkYXRlVmFsdWVGcm9tQ2hlY2tib3hJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlRnJvbUNoZWNrYm94SXRlbXNGbGFnID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWVtcGxhem8gZGUgZnVuY2lvbmVzIGRlIEZvcm1GaWVsZFxuICAgKi9cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgc3VwZXIuc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkKTtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuZ2V0Q2hlY2tib3hJdGVtcygpO1xuICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBpdGVtcy5mb3JFYWNoKGkgPT4gaS5wYXJlbnREaXNhYmxlZCA9IGlzRGlzYWJsZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qXG4gICAqIEZ1bmNpb25lcyBwYXJhIHJlZW1wbGF6YXIgZWwgY29udGVuaWRvIGRlbCBmaWVsZHNldCwgbGFiZWwsIGhpbnQgbyBlcnJvcm1lc3NhZ2VcbiAgICovXG5cbiAgb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyhmaWVsZHNldDogRmllbGRzZXRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBmaWVsZHNldC5jYWxsZXIgPSB0aGlzLmlubmVySHRtbDtcbiAgICBmaWVsZHNldC5lcnJvcklkID0gdGhpcy5nZXRFcnJvcklkKCk7XG4gICAgZmllbGRzZXQuZGVzY3JpYmVkQnkgPSBuZXcgTWFrZUh0bWxMaXN0UGlwZSgpLnRyYW5zZm9ybShbdGhpcy5nZXRIaW50SWQoKSwgdGhpcy5nZXRFcnJvcklkKCldLCBudWxsKTtcbiAgICBmaWVsZHNldC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvdmVycmlkZUhpbnRQYXJhbXMoaGludDogSGludENvbXBvbmVudCk6IHZvaWQge1xuICAgIGhpbnQuaWQgPSB0aGlzLmdldEhpbnRJZCgpO1xuICAgIGhpbnQuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKGVycm9yTWVzc2FnZTogRXJyb3JNZXNzYWdlQ29tcG9uZW50KTogdm9pZCB7XG4gICAgZXJyb3JNZXNzYWdlLmlkID0gdGhpcy5nZXRFcnJvcklkKCk7XG4gICAgZXJyb3JNZXNzYWdlLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZUhpbnQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG9uRGVsZXRlRXJyb3JNZXNzYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuXG4gIC8qXG4gICAqIEZ1bmNpb25lcyBwYXJhIHJlY3VwZXJhciB2YWxvcmVzIGNvbXVuZXNcbiAgICovXG5cblxuICBoYXNGaWVsZHNldCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpIHx8IHRoaXMuaGFzTGVnZW5kQ29tcG9uZW50KCkgfHwgdGhpcy5sZWdlbmRSZWYgfHwgdGhpcy5maWVsZHNldERhdGEgfHxcbiAgICAgICh0aGlzLmxlZ2VuZERhdGEgJiYgKHRoaXMubGVnZW5kRGF0YS50ZXh0IHx8IHRoaXMubGVnZW5kRGF0YS5odG1sKSkgfHwgdGhpcy5sZWdlbmRUZXh0KTtcbiAgfVxuXG4gIGhhc0ZpZWxkc2V0Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZmllbGRzZXRDb21wb25lbnQ7XG4gIH1cblxuICBoYXNMZWdlbmRDb21wb25lbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5sZWdlbmRDb21wb25lbnQ7XG4gIH1cblxuICBnZXRFcnJvcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGFzRXJyb3JzTWVzc2FnZSgpID8gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1lcnJvcicgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRIaW50SWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5oYXNIaW50KCkgPyB0aGlzLmdldElkUHJlZml4KCkgKyAnLWhpbnQnIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0SWRQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiB0aGlzLm5hbWU7XG4gIH1cblxuICBnZXRDaGVja2JveEl0ZW1zKCk6IENoZWNrYm94SXRlbUNvbXBvbmVudFtdIHtcbiAgICBsZXQgY2hlY2tib3hJdGVtcyA9IFtdO1xuICAgIGlmICh0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMgJiYgdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgIGNoZWNrYm94SXRlbXMgPSB0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMudG9BcnJheSgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zMiAmJiB0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMyLmxlbmd0aCA+IDApIHtcbiAgICAgIGNoZWNrYm94SXRlbXMgPSB0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMyLnRvQXJyYXkoKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoZWNrYm94SXRlbXM7XG4gIH1cbn1cbiIsIjxkaXYgW2NsYXNzXT1cIlsnYy1mb3JtLWdyb3VwJywgZm9ybUdyb3VwQ2xhc3Nlc10gfCBtYWtlSHRtbExpc3RcIlxuICAgICBbbmdDbGFzc109XCJ7J2MtZm9ybS1ncm91cC0tZXJyb3InOiAoaGFzRXJyb3JzTWVzc2FnZSgpIHx8IGZvcm1Hcm91cENsYXNzZXMgPT09ICdjLWZvcm0tZ3JvdXAtLWVycm9yJykgfVwiPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRmllbGRzZXRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktZmllbGRzZXRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0ZpZWxkc2V0Q29tcG9uZW50KClcIj5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cImZpZWxkc2V0RGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImZpZWxkc2V0RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImZpZWxkc2V0RGF0YS5pZFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmREYXRhXT1cImZpZWxkc2V0RGF0YS5sZWdlbmRcIlxuICAgICAgICAgICAgICAgICAgICBbaGVhZGluZ0xldmVsXT1cImZpZWxkc2V0RGF0YS5oZWFkaW5nTGV2ZWxcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbZmllbGRzZXREYXRhLmRlc2NyaWJlZEJ5LCBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiZmllbGRzZXREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImZpZWxkc2V0RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiZmllbGRzZXREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiZmllbGRzZXREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImZpZWxkc2V0RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cImZpZWxkc2V0RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiZmllbGRzZXREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImZpZWxkc2V0RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiZmllbGRzZXREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiZmllbGRzZXREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJmaWVsZHNldERhdGEudGFiaW5kZXhcIj48L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICEhbGVnZW5kQ29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFJlZl09XCJsZWdlbmRUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPlxuICAgICAgPG5nLXRlbXBsYXRlICNsZWdlbmRUZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1sZWdlbmRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgIWxlZ2VuZENvbXBvbmVudCAmJiBsZWdlbmRSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kUmVmXT1cImxlZ2VuZFJlZlwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPjwvZGVzeS1maWVsZHNldD5cbiAgICA8ZGVzeS1maWVsZHNldCAqbmdJZj1cIiFmaWVsZHNldERhdGEgJiYgIWxlZ2VuZENvbXBvbmVudCAmJiAhbGVnZW5kUmVmICYmIGxlZ2VuZERhdGFcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kRGF0YV09XCJ7dGV4dDogbGVnZW5kRGF0YS50ZXh0LCBodG1sOiBsZWdlbmREYXRhLmh0bWwsICBjbGFzc2VzOiBsZWdlbmREYXRhLmNsYXNzZXMsIGlzUGFnZUhlYWRpbmc6IGxlZ2VuZERhdGEuaXNQYWdlSGVhZGluZ31cIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj48L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFsZWdlbmRDb21wb25lbnQgJiYgIWxlZ2VuZFJlZiAmJiAhbGVnZW5kRGF0YSAmJiBsZWdlbmRUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFRleHRdPVwibGVnZW5kVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtjYWxsZXJdPVwiaW5uZXJIdG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9ySWRdPVwiZ2V0RXJyb3JJZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rlc2NyaWJlZEJ5XT1cIlsgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiPjwvZGVzeS1maWVsZHNldD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0ZpZWxkc2V0KClcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lckh0bWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2lubmVySHRtbD5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0hpbnRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktaGludFwiPjwvbmctY29udGVudD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaGFzSGludENvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImhpbnRSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWhpbnRSZWYgJiYgaGludERhdGFcIlxuICAgICAgICAgICAgICAgW2lkXT1cImdldEhpbnRJZCgpXCJcbiAgICAgICAgICAgICAgIFt0ZXh0XT1cImhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgW2h0bWxdPVwiaGludERhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICBbY2xhc3Nlc109XCJoaW50RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgIFtyb2xlXT1cImhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJoaW50RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgW2FyaWFEZXNjcmliZWRCeV09XCJoaW50RGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImhpbnREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJoaW50RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJoaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImhpbnREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJoaW50RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJoaW50RGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaGludERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJoaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuICAgIDxkZXN5LWhpbnQgKm5nSWY9XCIhaGludFJlZiAmJiAhaGludERhdGEgJiYgaGludFRleHRcIiBbdGV4dF09XCJoaW50VGV4dFwiIFtpZF09XCJnZXRIaW50SWQoKVwiPjwvZGVzeS1oaW50PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWVycm9yLW1lc3NhZ2VcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVycm9yTWVzc2FnZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgIDxkZXN5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIhZXJyb3JNZXNzYWdlUmVmICYmIGVycm9yTWVzc2FnZURhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiZXJyb3JNZXNzYWdlRGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cImVycm9yTWVzc2FnZURhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmlzdWFsbHlIaWRkZW5UZXh0XT1cImVycm9yTWVzc2FnZURhdGEudmlzdWFsbHlIaWRkZW5UZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImVycm9yTWVzc2FnZURhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJlcnJvck1lc3NhZ2VEYXRhLnRhYmluZGV4XCI+PC9kZXN5LWVycm9yLW1lc3NhZ2U+XG4gICAgPGRlc3ktZXJyb3ItbWVzc2FnZSAqbmdJZj1cIiFlcnJvck1lc3NhZ2VSZWYgJiYgIWVycm9yTWVzc2FnZURhdGEgJiYgZXJyb3JNZXNzYWdlVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJlcnJvck1lc3NhZ2VUZXh0XCIgW2lkXT1cImdldEVycm9ySWQoKVwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IFtjbGFzc109XCJbJ2MtY2hlY2tib3hlcycsIGNsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgICBbYXR0ci5yb2xlXT1cInJvbGUgPyByb2xlIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwgPyBhcmlhTGFiZWwgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkQnkgPyBhcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtaGlkZGVuXT1cImFyaWFIaWRkZW4gPyBhcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJhcmlhRGlzYWJsZWQgPyBhcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImFyaWFDb250cm9scyA/IGFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtY3VycmVudF09XCJhcmlhQ3VycmVudCA/IGFyaWFDdXJyZW50IDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1saXZlXT1cImFyaWFMaXZlID8gYXJpYUxpdmUgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImFyaWFFeHBhbmRlZCA/IGFyaWFFeHBhbmRlZCA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtZXJyb3JtZXNzYWdlXT1cImFyaWFFcnJvck1lc3NhZ2UgPyBhcmlhRXJyb3JNZXNzYWdlIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1oYXNwb3B1cF09XCJhcmlhSGFzUG9wdXAgPyBhcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgICBbYXR0ci50YWJpbmRleF09XCJ0YWJpbmRleCA/IHRhYmluZGV4IDogbnVsbFwiPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNoZWNrYm94Q29tcG9uZW50SXRlbXMgJiYgY2hlY2tib3hDb21wb25lbnRJdGVtcy5sZW5ndGggPiAwXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWNoZWNrYm94LWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoY2hlY2tib3hDb21wb25lbnRJdGVtcyAmJiBjaGVja2JveENvbXBvbmVudEl0ZW1zLmxlbmd0aCA+IDApICYmIGl0ZW1zXCI+XG4gICAgICA8ZGVzeS1jaGVja2JveC1pdGVtICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zOyBpbmRleCBhcyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIml0ZW0uaWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZCB8fCBkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cIml0ZW0ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0uY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpdGVtLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgWyhjaGVja2VkKV09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY29uZGl0aW9uYWxdPVwiaXRlbS5jb25kaXRpb25hbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0luZGV0ZXJtaW5hdGVdPVwiaXRlbS5pc0luZGV0ZXJtaW5hdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5kZXRlcm1pbmF0ZUNoZWNrZWRdPVwiaXRlbS5pbmRldGVybWluYXRlQ2hlY2tlZFwiXG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3JvbGVdPVwiaXRlbS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaXRlbS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cIml0ZW0uYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cIml0ZW0uYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cIml0ZW0uYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaXRlbS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJpdGVtLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIml0ZW0udGFiaW5kZXhcIj5cbiAgICAgICAgPGRlc3ktbGFiZWwgW3RleHRdPVwiaXRlbS50ZXh0XCIgW2h0bWxdPVwiaXRlbS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5jbGFzc2VzIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEucm9sZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRGVzY3JpYmVkQnk6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxhYmVsbGVkQnldPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGFiZWxsZWRCeSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFIaWRkZW4gOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFEaXNhYmxlZCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUNvbnRyb2xzXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUNvbnRyb2xzIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFDdXJyZW50IDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXhwYW5kZWRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRXJyb3JNZXNzYWdlIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhSGFzUG9wdXAgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cInRhYmluZGV4ID8gaXRlbS5sYWJlbERhdGEudGFiaW5kZXggOiBudWxsXCI+PC9kZXN5LWxhYmVsPlxuICAgICAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiaXRlbS5oaW50RGF0YSAmJiAoaXRlbS5oaW50RGF0YS50ZXh0IHx8IGl0ZW0uaGludERhdGEuaHRtbClcIlxuICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIml0ZW0uaGludERhdGEudGV4dFwiXG4gICAgICAgICAgICAgICAgICAgW2h0bWxdPVwiaXRlbS5oaW50RGF0YS5odG1sXCJcbiAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJpdGVtLmhpbnREYXRhLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0uaGludERhdGEucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmhpbnREYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFEZXNjcmliZWRCeV09XCJpdGVtLmhpbnREYXRhLmFyaWFEZXNjcmliZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uaGludERhdGEuYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cIml0ZW0uaGludERhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJpdGVtLmhpbnREYXRhLmFyaWFEaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmhpbnREYXRhLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cIml0ZW0uaGludERhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJpdGVtLmhpbnREYXRhLmFyaWFMaXZlXCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uaGludERhdGEuYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJpdGVtLmhpbnREYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhSGFzUG9wdXBdPVwiaXRlbS5oaW50RGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLmhpbnREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWhpbnQ+XG4gICAgICAgIDxkZXN5LWhpbnQgKm5nSWY9XCIhaXRlbS5oaW50RGF0YSAmJiBpdGVtLmhpbnRUZXh0XCIgW3RleHRdPVwiaXRlbS5oaW50VGV4dFwiPjwvZGVzeS1oaW50PlxuICAgICAgICA8ZGVzeS1jb250ZW50ICpuZ0lmPVwiaXRlbS5jb25kaXRpb25hbEh0bWxcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbS5jb25kaXRpb25hbEh0bWxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kZXN5LWNvbnRlbnQ+XG4gICAgICA8L2Rlc3ktY2hlY2tib3gtaXRlbT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3hlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvY2hlY2tib3hlcy9jaGVja2JveGVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy9jaGVja2JveGVzL2NoZWNrYm94ZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUFXLFlBQVksRUFDdEMsVUFBVSxFQUNWLEtBQUssRUFBRSxNQUFNLEVBQ2IsU0FBUyxFQUVULFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUNyQyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHOUUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7QUFrQjFFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx5QkFBeUI7SUFmbEU7O1FBc0NZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7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c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR1csUUFBUTtzQkFBeEIsS0FBSztnQkFHVyxJQUFJO3NCQUFwQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDVyxXQUFXO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNXLFdBQVc7c0JBQTNCLEtBQUs7Z0JBRzhCLGlCQUFpQjtzQkFBcEQsZUFBZTt1QkFBQyxpQkFBaUI7Z0JBR0EsZUFBZTtzQkFBaEQsZUFBZTt1QkFBQyxlQUFlO2dCQUVRLHNCQUFzQjtzQkFBN0QsZUFBZTt1QkFBQyxxQkFBcUI7Z0JBRUksU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNILHVCQUF1QjtzQkFBM0QsWUFBWTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbiwgRG9DaGVjaywgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCwgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmllbGRzZXREYXRhLCBMZWdlbmREYXRhLCBJdGVtQ2hlY2tib3hEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMZWdlbmRDb21wb25lbnQgfSBmcm9tICcuLi9maWVsZHNldC9sZWdlbmQvbGVnZW5kLmNvbXBvbmVudCc7XG5pbXBvcnQge0NoZWNrYm94SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9jaGVja2JveC1pdGVtL2NoZWNrYm94LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7SGludENvbXBvbmVudH0gZnJvbSAnLi4vaGludC9oaW50LmNvbXBvbmVudCc7XG5pbXBvcnQge0Vycm9yTWVzc2FnZUNvbXBvbmVudH0gZnJvbSAnLi4vZXJyb3ItbWVzc2FnZS9lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tICcuLi9maWVsZHNldC9maWVsZHNldC5jb21wb25lbnQnO1xuaW1wb3J0IHtNYWtlSHRtbExpc3RQaXBlfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvcGlwZXMvbWFrZS1odG1sLWxpc3QucGlwZSc7XG5pbXBvcnQge0Rlc3lDb250ZW50Q2hpbGR9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3InO1xuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2RlY29yYXRvcnMvZGVzeS1vbi1pbnB1dC1jaGFuZ2UuZGVjb3JhdG9yJztcbmltcG9ydCB7IENoZWNrYm94ZXNQYXJlbnRDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94ZXMtcGFyZW50LmNvbXBvbmVudCc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGVzeS1jaGVja2JveGVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94ZXMuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94ZXNDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IENoZWNrYm94ZXNQYXJlbnRDb21wb25lbnQsXG4gICAgICB1c2VFeGlzdGluZzogQ2hlY2tib3hlc0NvbXBvbmVudCxcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hlc0NvbXBvbmVudCBleHRlbmRzIENoZWNrYm94ZXNQYXJlbnRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBEb0NoZWNrIHtcbiAgXG4gIC8qKlxuICAgKiBmaWVsZHNldCwgZGlmZXJlbnRlcyBmb3JtYXMgZGUgaW1wbGVtZW50YXIsIGVudW1lcmFkYXMgcG9yIHByaW9yaWRhZFxuICAgKiAxKSBpbmNsdWlyIGNvbXBvbmVudGUgRmllbGRzZXRDb21wb25lbnRcbiAgICogMikgaW5jbHVpciBvYmpldG8gRmllbGRzZXREYXRhIChpbnRlcmZheiBleHB1ZXN0YSlcbiAgICogMykgaW5jbHVpciBjb21wb25lbnRlIExlZ2VuZENvbXBvbmVudFxuICAgKiA0KSBpbmNsdWlyIHRlbXBsYXRlIGxlZ2VuZFxuICAgKiA1KSBpbmNsdWlyIGxlZ2VuZERhdGEgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1bmEgbGVnZW5kYSBjb24gbG9zIHBhcmFtZXRyb3MgcGFzYWRvcyAgKGludGVyZmF6IGV4cHVlc3RhKVxuICAgKiA2KSBpbmNsdWlyIGxlZ2VuZFRleHQgLSBpbmNsdWlyIHVuIGZpZWxkc2V0IGNvbiB1biB0ZXh0byBlbiBsYSBsZWdlbmRhXG4gICAqL1xuICBASW5wdXQoKSBmaWVsZHNldERhdGE6IEZpZWxkc2V0RGF0YTtcbiAgQElucHV0KCkgbGVnZW5kUmVmOiBUZW1wbGF0ZVJlZjxMZWdlbmRDb21wb25lbnQ+O1xuICBASW5wdXQoKSBsZWdlbmREYXRhOiBMZWdlbmREYXRhO1xuICBASW5wdXQoKSBsZWdlbmRUZXh0OiBzdHJpbmc7XG5cbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbklkUHJlZml4Q2hhbmdlJylcbiAgQElucHV0KCkgZGVjbGFyZSBpZFByZWZpeDogc3RyaW5nO1xuICBcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvbk5hbWVDaGFuZ2UnKVxuICBASW5wdXQoKSBkZWNsYXJlIG5hbWU6IHN0cmluZztcbiAgXG4gIEBJbnB1dCgpIGl0ZW1zOiBJdGVtQ2hlY2tib3hEYXRhW107XG4gIEBPdXRwdXQoKSBpdGVtc0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8SXRlbUNoZWNrYm94RGF0YVtdPigpO1xuICBcbiAgQElucHV0KCkgZm9ybUdyb3VwQ2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBkZWNsYXJlIGhhc0RpdmlkZXJzOiBib29sZWFuO1xuICBASW5wdXQoKSBoYXNFcnJvcjogYm9vbGVhbjtcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xuICBASW5wdXQoKSBkZWNsYXJlIGRlc2NyaWJlZEJ5OiBzdHJpbmc7XG4gIFxuICBARGVzeUNvbnRlbnRDaGlsZCh7IG9uU2V0Q2FsbGJhY2tOYW1lOiAnb3ZlcnJpZGVGaWVsZHNldFBhcmFtcyd9KVxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XG4gIFxuICBARGVzeUNvbnRlbnRDaGlsZCgpXG4gIEBDb250ZW50Q2hpbGRyZW4oTGVnZW5kQ29tcG9uZW50KSBsZWdlbmRDb21wb25lbnQ6IExlZ2VuZENvbXBvbmVudDtcbiAgXG4gIEBDb250ZW50Q2hpbGRyZW4oQ2hlY2tib3hJdGVtQ29tcG9uZW50KSBjaGVja2JveENvbXBvbmVudEl0ZW1zOiBRdWVyeUxpc3Q8Q2hlY2tib3hJdGVtQ29tcG9uZW50PjtcbiAgXG4gIEBWaWV3Q2hpbGQoJ2lubmVySHRtbCcsIHsgc3RhdGljOiB0cnVlIH0pIGlubmVySHRtbDogVGVtcGxhdGVSZWY8YW55PjtcbiAgQFZpZXdDaGlsZHJlbihDaGVja2JveEl0ZW1Db21wb25lbnQpIGNoZWNrYm94Q29tcG9uZW50SXRlbXMyOiBRdWVyeUxpc3Q8Q2hlY2tib3hJdGVtQ29tcG9uZW50PjtcblxuICAvLyBGbGFnc1xuICBwcml2YXRlIG5leHRWYWx1ZSA9IG51bGw7ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFByw7N4aW1vIHZhbG9yIGVuIGVsIGNvbXBvbmVudGVcbiAgcHJpdmF0ZSB1cGRhdGVDaGVrYm94SWRzRmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAvLyBJbmRpY2EgcXVlIHNlIGhhbiBtb2RpZmljYWRvIGxvcyBpZHMgZGUgbG9zIGl0ZW1zXG4gIHByaXZhdGUgY29udGVudEluaXRGbGFnID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBzZSBpbmljaWFsaXphZG8gZWwgY29uZW5pZG9cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlOyAvLyBJbmRpY2EgcXVlIHNlIGhhIHNlbGVjY2lvbmFkby9kZXNlbGVjY2lvbmFkbyB1biBpdGVtXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVUb0NoZWNrYm94SXRlbXNGbGFnID0gZmFsc2U7ICAgLy8gSW5kaWNhIHF1ZSBzZSBkZWJlIHNlbGVjY2lvbmFyL2Rlc2VsZWNjaW9uYXIgdW4gaXRlbVxuICBwcml2YXRlIHVwZGF0ZUl0ZW1MaXN0RmxhZyA9IGZhbHNlOyAgICAgICAgICAgICAgIC8vIEluZGljYSBxdWUgc2UgaGEgY3JlYWRvL21vZGlmaWNhZG8gZWwgbGlzdGFkbyBkZSBpdGVtc1xuXG4gIC8qKlxuICAgKiBDZW50cmFsaXphIHkgY29vcmRpbmEgbG9zIGNhbWJpb3MgZW4gZWwgY29tcG9uZW50ZVxuICAgKi9cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIFxuICAgIC8vIFRPRE8gRXN0YSBnZXN0acOzbiByZXN1bHRhIGVuZ29ycm9zYSB5IGRpZmljaWwgZGUgc2VndWlyLiBFc3R1ZGlhciBzaSBlcyBtZWpvcmFibGUgdXRpbGl6YW5kbyBzaWduYWxzIGEgcGFydGlyIGRlIGFuZ3VsYXIgMTZcbiAgICBcbiAgICBpZiAodGhpcy51cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZykge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlO1xuICAgICAgXG4gICAgICAvKlxuICAgICAgICogU2UgbW9kaWZpY2EgZWwgdmFsb3IgZGVzZGUgbG9zIGl0ZW1zLCBhIG5vIHNlciBxdWUgbGEgbGlzdGEgc2UgYWNhYmUgZGUgY3JlYXJcbiAgICAgICAqIHkgeWEgdGVuZ2EgdW4gdmFsb3IuIEVuIGVzZSBjYXNvLCBwcmV2YWxlY2UgZWwgdmFsb3IgZXhpc3RlbnRlLlxuICAgICAgICovXG4gICAgICBpZiAoIXRoaXMudXBkYXRlSXRlbUxpc3RGbGFnIHx8ICghdGhpcy52YWx1ZSB8fCB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldENoZWNrYm94SXRlbXMoKTtcbiAgICAgICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmxlbmd0aCA+IDAgJiYgaXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gIWl0ZW0uaXNJbml0KCkpIDwgMCkge1xuICAgICAgICAgIHRoaXMubmV4dFZhbHVlID0gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5jaGVja2VkKS5tYXAoaXRlbSA9PiBpdGVtLmdldFZhbHVlKCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gIFxuICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuaXRlbXNDaGFuZ2UuZW1pdCh0aGlzLml0ZW1zKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5uZXh0VmFsdWUgIT09IG51bGwgJiYgKHRoaXMubmV4dFZhbHVlLmxlbmd0aCA+IDAgfHwgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPiAwKSkpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm5leHRWYWx1ZTtcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVUb0NoZWNrYm94SXRlbXNGbGFnID0gdHJ1ZTtcblxuICAgICAgc2V0VGltZW91dCgoKSAgPT4ge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLml0ZW1zQ2hhbmdlLmVtaXQodGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZUNoZWtib3hJZHNGbGFnKSB7XG4gICAgICBjb25zdCBjaGVja2JveEl0ZW1zID0gdGhpcy5nZXRDaGVja2JveEl0ZW1zKCk7XG4gICAgICBpZiAoY2hlY2tib3hJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNoZWNrYm94SXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IGl0ZW0udXBkYXRlQ2hlY2tib3hJZChpbmRleCkpO1xuICAgICAgfVxuICAgICAgdGhpcy51cGRhdGVDaGVrYm94SWRzRmxhZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZykge1xuICAgICAgY29uc3QgY2hlY2tib3hJdGVtcyA9IHRoaXMuZ2V0Q2hlY2tib3hJdGVtcygpO1xuICAgICAgaWYgKGNoZWNrYm94SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlVG9DaGVja2JveEl0ZW1zRmxhZyA9IGZhbHNlO1xuICAgICAgICBjaGVja2JveEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgY29uc3QgaXRlbUNoZWNrZWQgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZS5maW5kSW5kZXgodiA9PiB2ID09PSBpdGVtLnZhbHVlKSA+IC0xIDogdGhpcy52YWx1ZSA9PT0gaXRlbS52YWx1ZTtcbiAgICAgICAgICBpZiAoaXRlbUNoZWNrZWQgIT09IGl0ZW0ubGFzdENoZWNrZWQpIHtcbiAgICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZChpdGVtQ2hlY2tlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy51cGRhdGVJdGVtTGlzdEZsYWcpIHtcbiAgICAgIHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnID0gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGVudEluaXRGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrYm94Q29tcG9uZW50SXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoY2hhbmdlID0+IHtcbiAgICAgIHRoaXMudXBkYXRlSXRlbUxpc3RGbGFnID0gdHJ1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZSBzb2JyZXNjcmliZSBlbCB3cml0ZVZhbHVlIGRlIEZvcm1GaWVsZCBwYXJhIGdlc3Rpb25hciBlbiB1biDDum5pY28gcHVudG8gZWwgdmFsb3IgZGUgdmFsdWVcbiAgICogQHBhcmFtIHZhbHVlIG51ZXZvIHZhbG9yIGEgZXN0YWJsZWNlclxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55W10pOiB2b2lkIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMubmV4dFZhbHVlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgb25JZFByZWZpeENoYW5nZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb250ZW50SW5pdEZsYWcpIHtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XG4gICAgfVxuICAgIHRoaXMucHJvcGFnYXRlTmV3SWRQcmVmaXhWYWx1ZSgpO1xuICB9XG5cblxuICBvbk5hbWVDaGFuZ2UoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5jb250ZW50SW5pdEZsYWcpIHtcbiAgICAgIHRoaXMubWFya0ZvclVwZGF0ZUNoZWNrYm94SWRzKCk7XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wYWdhdGVOZXdJZFByZWZpeFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogQWN0dWFsaXphIGxvcyBjb21wb25lbnRlcyBleHRlcm5vcyBxdWUgdGllbmVuIHZhbG9yZXMgZGVwZW5kaWVudGVzIGRlIGlkUHJlZml4XG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHByb3BhZ2F0ZU5ld0lkUHJlZml4VmFsdWUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGludENvbXBvbmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZUhpbnRQYXJhbXModGhpcy5oaW50Q29tcG9uZW50KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVFcnJvck1lc3NhZ2VQYXJhbXModGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQpO1xuICAgIH1cblxuICAgIC8vIEFsIGhhY2VyIGVsIG92ZXJyaWRlIGRlIGhpbnQgbyBlcnJvciB5YSBzZSBhcGxpY2Egc29icmUgZWwgZmllbGRzZXQsIHBvciBsbyBxdWUgc8OzbG8gZXMgbmVjZXNhcmlvIGFwbGljYXJsbyBkaXJlY3RhbWVudGVcbiAgICAvLyBzb2JyZSBlbCBmaWVsZHNldCBjdWFuZG8gbmluZ3VubyBkZSBlc3RvcyBleGlzdGVcbiAgICBpZiAoIXRoaXMuaGludENvbXBvbmVudCAmJiAhdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy5maWVsZHNldENvbXBvbmVudCkge1xuICAgICAgdGhpcy5vdmVycmlkZUZpZWxkc2V0UGFyYW1zKHRoaXMuZmllbGRzZXRDb21wb25lbnQpO1xuICAgIH1cbiAgfVxuXG4gIG1hcmtGb3JVcGRhdGVDaGVja2JveElkcygpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUNoZWtib3hJZHNGbGFnID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3R1YWxpemEgZWwgdmFsb3IgY3VhbmRvIHNlIHByb2R1Y2UgdW4gY2FtYmlvIGVuIGxvcyBpdGVtcywgdGFudG8gaW50ZXJubyBjb21vIGV4dGVybm9cbiAgICovXG4gIHVwZGF0ZVZhbHVlRnJvbUNoZWNrYm94SXRlbXMoKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVWYWx1ZUZyb21DaGVja2JveEl0ZW1zRmxhZyA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogUmVlbXBsYXpvIGRlIGZ1bmNpb25lcyBkZSBGb3JtRmllbGRcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHN1cGVyLnNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZCk7XG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldENoZWNrYm94SXRlbXMoKTtcbiAgICBpZiAoaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgaXRlbXMuZm9yRWFjaChpID0+IGkucGFyZW50RGlzYWJsZWQgPSBpc0Rpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWVtcGxhemFyIGVsIGNvbnRlbmlkbyBkZWwgZmllbGRzZXQsIGxhYmVsLCBoaW50IG8gZXJyb3JtZXNzYWdlXG4gICAqL1xuXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XG4gICAgZmllbGRzZXQuY2FsbGVyID0gdGhpcy5pbm5lckh0bWw7XG4gICAgZmllbGRzZXQuZXJyb3JJZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gbmV3IE1ha2VIdG1sTGlzdFBpcGUoKS50cmFuc2Zvcm0oW3RoaXMuZ2V0SGludElkKCksIHRoaXMuZ2V0RXJyb3JJZCgpXSwgbnVsbCk7XG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGVIaW50UGFyYW1zKGhpbnQ6IEhpbnRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBoaW50LmlkID0gdGhpcy5nZXRIaW50SWQoKTtcbiAgICBoaW50LmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZUVycm9yTWVzc2FnZVBhcmFtcyhlcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZUNvbXBvbmVudCk6IHZvaWQge1xuICAgIGVycm9yTWVzc2FnZS5pZCA9IHRoaXMuZ2V0RXJyb3JJZCgpO1xuICAgIGVycm9yTWVzc2FnZS5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cbiAgb25EZWxldGVIaW50KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhhc0ZpZWxkc2V0Q29tcG9uZW50KCkpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWVsZHNldFBhcmFtcyh0aGlzLmZpZWxkc2V0Q29tcG9uZW50KTtcbiAgICB9XG4gIH1cblxuICBvbkRlbGV0ZUVycm9yTWVzc2FnZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmllbGRzZXRQYXJhbXModGhpcy5maWVsZHNldENvbXBvbmVudCk7XG4gICAgfVxuICB9XG5cblxuICAvKlxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWN1cGVyYXIgdmFsb3JlcyBjb211bmVzXG4gICAqL1xuXG5cbiAgaGFzRmllbGRzZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSB8fCB0aGlzLmhhc0xlZ2VuZENvbXBvbmVudCgpIHx8IHRoaXMubGVnZW5kUmVmIHx8IHRoaXMuZmllbGRzZXREYXRhIHx8XG4gICAgICAodGhpcy5sZWdlbmREYXRhICYmICh0aGlzLmxlZ2VuZERhdGEudGV4dCB8fCB0aGlzLmxlZ2VuZERhdGEuaHRtbCkpIHx8IHRoaXMubGVnZW5kVGV4dCk7XG4gIH1cblxuICBoYXNGaWVsZHNldENvbXBvbmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmZpZWxkc2V0Q29tcG9uZW50O1xuICB9XG5cbiAgaGFzTGVnZW5kQ29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubGVnZW5kQ29tcG9uZW50O1xuICB9XG5cbiAgZ2V0RXJyb3JJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmhhc0Vycm9yc01lc3NhZ2UoKSA/IHRoaXMuZ2V0SWRQcmVmaXgoKSArICctZXJyb3InIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0SGludElkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaGFzSGludCgpID8gdGhpcy5nZXRJZFByZWZpeCgpICsgJy1oaW50JyA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggPyB0aGlzLmlkUHJlZml4IDogdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0Q2hlY2tib3hJdGVtcygpOiBDaGVja2JveEl0ZW1Db21wb25lbnRbXSB7XG4gICAgbGV0IGNoZWNrYm94SXRlbXMgPSBbXTtcbiAgICBpZiAodGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zICYmIHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGVja2JveEl0ZW1zID0gdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zLnRvQXJyYXkoKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuY2hlY2tib3hDb21wb25lbnRJdGVtczIgJiYgdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zMi5sZW5ndGggPiAwKSB7XG4gICAgICBjaGVja2JveEl0ZW1zID0gdGhpcy5jaGVja2JveENvbXBvbmVudEl0ZW1zMi50b0FycmF5KCk7XG4gICAgfVxuICAgIHJldHVybiBjaGVja2JveEl0ZW1zO1xuICB9XG59XG4iLCI8ZGl2IFtjbGFzc109XCJbJ2MtZm9ybS1ncm91cCcsIGZvcm1Hcm91cENsYXNzZXNdIHwgbWFrZUh0bWxMaXN0XCJcbiAgICAgW25nQ2xhc3NdPVwieydjLWZvcm0tZ3JvdXAtLWVycm9yJzogKGhhc0Vycm9yc01lc3NhZ2UoKSB8fCBmb3JtR3JvdXBDbGFzc2VzID09PSAnYy1mb3JtLWdyb3VwLS1lcnJvcicpIH1cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0ZpZWxkc2V0Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWZpZWxkc2V0XCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGaWVsZHNldENvbXBvbmVudCgpXCI+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCJmaWVsZHNldERhdGFcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJmaWVsZHNldERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZHNldERhdGEuaWRcIlxuICAgICAgICAgICAgICAgICAgICBbbGVnZW5kRGF0YV09XCJmaWVsZHNldERhdGEubGVnZW5kXCJcbiAgICAgICAgICAgICAgICAgICAgW2hlYWRpbmdMZXZlbF09XCJmaWVsZHNldERhdGEuaGVhZGluZ0xldmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiW2ZpZWxkc2V0RGF0YS5kZXNjcmliZWRCeSwgZ2V0SGludElkKCksIGdldEVycm9ySWQoKV0gfCBtYWtlSHRtbExpc3Q6bnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cImZpZWxkc2V0RGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJmaWVsZHNldERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cImZpZWxkc2V0RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImZpZWxkc2V0RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFEaXNhYmxlZF09XCJmaWVsZHNldERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJmaWVsZHNldERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImZpZWxkc2V0RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhTGl2ZV09XCJmaWVsZHNldERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cImZpZWxkc2V0RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImZpZWxkc2V0RGF0YS5hcmlhSGFzUG9wdXBcIlxuICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZmllbGRzZXREYXRhLnRhYmluZGV4XCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhIWxlZ2VuZENvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRSZWZdPVwibGVnZW5kVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjbGVnZW5kVGVtcGxhdGU+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRlc3ktbGVnZW5kXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFsZWdlbmRDb21wb25lbnQgJiYgbGVnZW5kUmVmXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZFJlZl09XCJsZWdlbmRSZWZcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj48L2Rlc3ktZmllbGRzZXQ+XG4gICAgPGRlc3ktZmllbGRzZXQgKm5nSWY9XCIhZmllbGRzZXREYXRhICYmICFsZWdlbmRDb21wb25lbnQgJiYgIWxlZ2VuZFJlZiAmJiBsZWdlbmREYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgW2xlZ2VuZERhdGFdPVwie3RleHQ6IGxlZ2VuZERhdGEudGV4dCwgaHRtbDogbGVnZW5kRGF0YS5odG1sLCAgY2xhc3NlczogbGVnZW5kRGF0YS5jbGFzc2VzLCBpc1BhZ2VIZWFkaW5nOiBsZWdlbmREYXRhLmlzUGFnZUhlYWRpbmd9XCJcbiAgICAgICAgICAgICAgICAgICAgW2NhbGxlcl09XCJpbm5lckh0bWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JJZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICBbZGVzY3JpYmVkQnldPVwiWyBnZXRIaW50SWQoKSwgZ2V0RXJyb3JJZCgpXSB8IG1ha2VIdG1sTGlzdDpudWxsXCI+PC9kZXN5LWZpZWxkc2V0PlxuICAgIDxkZXN5LWZpZWxkc2V0ICpuZ0lmPVwiIWZpZWxkc2V0RGF0YSAmJiAhbGVnZW5kQ29tcG9uZW50ICYmICFsZWdlbmRSZWYgJiYgIWxlZ2VuZERhdGEgJiYgbGVnZW5kVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtsZWdlbmRUZXh0XT1cImxlZ2VuZFRleHRcIlxuICAgICAgICAgICAgICAgICAgICBbY2FsbGVyXT1cImlubmVySHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcklkXT1cImdldEVycm9ySWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkZXNjcmliZWRCeV09XCJbIGdldEhpbnRJZCgpLCBnZXRFcnJvcklkKCldIHwgbWFrZUh0bWxMaXN0Om51bGxcIj48L2Rlc3ktZmllbGRzZXQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNGaWVsZHNldCgpXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNpbm5lckh0bWw+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNIaW50Q29tcG9uZW50KClcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkZXN5LWhpbnRcIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWhhc0hpbnRDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaW50UmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGRlc3ktaGludCAqbmdJZj1cIiFoaW50UmVmICYmIGhpbnREYXRhXCJcbiAgICAgICAgICAgICAgIFtpZF09XCJnZXRIaW50SWQoKVwiXG4gICAgICAgICAgICAgICBbdGV4dF09XCJoaW50RGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgIFtodG1sXT1cImhpbnREYXRhLmh0bWxcIlxuICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaGludERhdGEuY2xhc3Nlc1wiXG4gICAgICAgICAgICAgICBbcm9sZV09XCJoaW50RGF0YS5yb2xlXCJcbiAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaGludERhdGEuYXJpYUxhYmVsXCJcbiAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaGludERhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJoaW50RGF0YS5hcmlhTGFiZWxsZWRCeVwiXG4gICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJoaW50RGF0YS5hcmlhSGlkZGVuXCJcbiAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaGludERhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaGludERhdGEuYXJpYUNvbnRyb2xzXCJcbiAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJoaW50RGF0YS5hcmlhQ3VycmVudFwiXG4gICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaGludERhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJoaW50RGF0YS5hcmlhRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaGludERhdGEuYXJpYUVycm9yTWVzc2FnZVwiXG4gICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cImhpbnREYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaGludERhdGEudGFiaW5kZXhcIj48L2Rlc3ktaGludD5cbiAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWhpbnRSZWYgJiYgIWhpbnREYXRhICYmIGhpbnRUZXh0XCIgW3RleHRdPVwiaGludFRleHRcIiBbaWRdPVwiZ2V0SGludElkKClcIj48L2Rlc3ktaGludD5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1lcnJvci1tZXNzYWdlXCI+PC9uZy1jb250ZW50PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFoYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlcnJvck1lc3NhZ2VSZWZcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8ZGVzeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwiIWVycm9yTWVzc2FnZVJlZiAmJiBlcnJvck1lc3NhZ2VEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJnZXRFcnJvcklkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlRGF0YS50ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtodG1sXT1cImVycm9yTWVzc2FnZURhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJlcnJvck1lc3NhZ2VEYXRhLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc3VhbGx5SGlkZGVuVGV4dF09XCJlcnJvck1lc3NhZ2VEYXRhLnZpc3VhbGx5SGlkZGVuVGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJlcnJvck1lc3NhZ2VEYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhSGlkZGVuXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiZXJyb3JNZXNzYWdlRGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDdXJyZW50XT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUN1cnJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cImVycm9yTWVzc2FnZURhdGEuYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUVycm9yTWVzc2FnZV09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFFcnJvck1lc3NhZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJlcnJvck1lc3NhZ2VEYXRhLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiZXJyb3JNZXNzYWdlRGF0YS50YWJpbmRleFwiPjwvZGVzeS1lcnJvci1tZXNzYWdlPlxuICAgIDxkZXN5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIhZXJyb3JNZXNzYWdlUmVmICYmICFlcnJvck1lc3NhZ2VEYXRhICYmIGVycm9yTWVzc2FnZVRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwiZXJyb3JNZXNzYWdlVGV4dFwiIFtpZF09XCJnZXRFcnJvcklkKClcIj48L2Rlc3ktZXJyb3ItbWVzc2FnZT5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBbY2xhc3NdPVwiWydjLWNoZWNrYm94ZXMnLCBjbGFzc2VzXSB8IG1ha2VIdG1sTGlzdFwiXG4gICAgICAgW2F0dHIucm9sZV09XCJyb2xlID8gcm9sZSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsID8gYXJpYUxhYmVsIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5ID8gYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJhcmlhSGlkZGVuID8gYXJpYUhpZGRlbiA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiYXJpYURpc2FibGVkID8gYXJpYURpc2FibGVkIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHMgPyBhcmlhQ29udHJvbHMgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWN1cnJlbnRdPVwiYXJpYUN1cnJlbnQgPyBhcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtbGl2ZV09XCJhcmlhTGl2ZSA/IGFyaWFMaXZlIDogbnVsbFwiXG4gICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJhcmlhRXhwYW5kZWQgPyBhcmlhRXhwYW5kZWQgOiBudWxsXCJcbiAgICAgICBbYXR0ci5hcmlhLWVycm9ybWVzc2FnZV09XCJhcmlhRXJyb3JNZXNzYWdlID8gYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiYXJpYUhhc1BvcHVwID8gYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgW2F0dHIudGFiaW5kZXhdPVwidGFiaW5kZXggPyB0YWJpbmRleCA6IG51bGxcIj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjaGVja2JveENvbXBvbmVudEl0ZW1zICYmIGNoZWNrYm94Q29tcG9uZW50SXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZGVzeS1jaGVja2JveC1pdGVtXCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGNoZWNrYm94Q29tcG9uZW50SXRlbXMgJiYgY2hlY2tib3hDb21wb25lbnRJdGVtcy5sZW5ndGggPiAwKSAmJiBpdGVtc1wiPlxuICAgICAgPGRlc3ktY2hlY2tib3gtaXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtczsgaW5kZXggYXMgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJpdGVtLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWQgfHwgZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpdGVtLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3Nlc109XCJpdGVtLmNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFsoY2hlY2tlZCldPVwiaXRlbS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbmRpdGlvbmFsXT1cIml0ZW0uY29uZGl0aW9uYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNJbmRldGVybWluYXRlXT1cIml0ZW0uaXNJbmRldGVybWluYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2luZGV0ZXJtaW5hdGVDaGVja2VkXT1cIml0ZW0uaW5kZXRlcm1pbmF0ZUNoZWNrZWRcIlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtyb2xlXT1cIml0ZW0ucm9sZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0uYXJpYURlc2NyaWJlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0uYXJpYUxhYmVsbGVkQnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYURpc2FibGVkXT1cIml0ZW0uYXJpYURpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmFyaWFDb250cm9sc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFMaXZlXT1cIml0ZW0uYXJpYUxpdmVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0uYXJpYUV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2FyaWFIYXNQb3B1cF09XCJpdGVtLmFyaWFIYXNQb3B1cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpdGVtLnRhYmluZGV4XCI+XG4gICAgICAgIDxkZXN5LWxhYmVsIFt0ZXh0XT1cIml0ZW0udGV4dFwiIFtodG1sXT1cIml0ZW0uaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc2VzXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuY2xhc3NlcyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLnJvbGUgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFMYWJlbCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYURlc2NyaWJlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYURlc2NyaWJlZEJ5OiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFMYWJlbGxlZEJ5XT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUxhYmVsbGVkQnkgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFIaWRkZW5dPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhSGlkZGVuIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhRGlzYWJsZWQgOiBudWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW2FyaWFDb250cm9sc109XCJpdGVtLmxhYmVsRGF0YSA/IGl0ZW0ubGFiZWxEYXRhLmFyaWFDb250cm9scyA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUN1cnJlbnRdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhQ3VycmVudCA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5sYWJlbERhdGEgPyBpdGVtLmxhYmVsRGF0YS5hcmlhTGl2ZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUV4cGFuZGVkXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUV4cGFuZGVkIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFthcmlhRXJyb3JNZXNzYWdlXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUVycm9yTWVzc2FnZSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0ubGFiZWxEYXRhID8gaXRlbS5sYWJlbERhdGEuYXJpYUhhc1BvcHVwIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJ0YWJpbmRleCA/IGl0ZW0ubGFiZWxEYXRhLnRhYmluZGV4IDogbnVsbFwiPjwvZGVzeS1sYWJlbD5cbiAgICAgICAgPGRlc3ktaGludCAqbmdJZj1cIml0ZW0uaGludERhdGEgJiYgKGl0ZW0uaGludERhdGEudGV4dCB8fCBpdGVtLmhpbnREYXRhLmh0bWwpXCJcbiAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJpdGVtLmhpbnREYXRhLnRleHRcIlxuICAgICAgICAgICAgICAgICAgIFtodG1sXT1cIml0ZW0uaGludERhdGEuaHRtbFwiXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzZXNdPVwiaXRlbS5oaW50RGF0YS5jbGFzc2VzXCJcbiAgICAgICAgICAgICAgICAgICBbcm9sZV09XCJpdGVtLmhpbnREYXRhLnJvbGVcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhRGVzY3JpYmVkQnldPVwiaXRlbS5oaW50RGF0YS5hcmlhRGVzY3JpYmVkQnlcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhTGFiZWxsZWRCeV09XCJpdGVtLmhpbnREYXRhLmFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUhpZGRlbl09XCJpdGVtLmhpbnREYXRhLmFyaWFIaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgIFthcmlhRGlzYWJsZWRdPVwiaXRlbS5oaW50RGF0YS5hcmlhRGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhQ29udHJvbHNdPVwiaXRlbS5oaW50RGF0YS5hcmlhQ29udHJvbHNcIlxuICAgICAgICAgICAgICAgICAgIFthcmlhQ3VycmVudF09XCJpdGVtLmhpbnREYXRhLmFyaWFDdXJyZW50XCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUxpdmVdPVwiaXRlbS5oaW50RGF0YS5hcmlhTGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFFeHBhbmRlZF09XCJpdGVtLmhpbnREYXRhLmFyaWFFeHBhbmRlZFwiXG4gICAgICAgICAgICAgICAgICAgW2FyaWFFcnJvck1lc3NhZ2VdPVwiaXRlbS5oaW50RGF0YS5hcmlhRXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICBbYXJpYUhhc1BvcHVwXT1cIml0ZW0uaGludERhdGEuYXJpYUhhc1BvcHVwXCJcbiAgICAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXRlbS5oaW50RGF0YS50YWJpbmRleFwiPjwvZGVzeS1oaW50PlxuICAgICAgICA8ZGVzeS1oaW50ICpuZ0lmPVwiIWl0ZW0uaGludERhdGEgJiYgaXRlbS5oaW50VGV4dFwiIFt0ZXh0XT1cIml0ZW0uaGludFRleHRcIj48L2Rlc3ktaGludD5cbiAgICAgICAgPGRlc3ktY29udGVudCAqbmdJZj1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW0uY29uZGl0aW9uYWxIdG1sXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGVzeS1jb250ZW50PlxuICAgICAgPC9kZXN5LWNoZWNrYm94LWl0ZW0+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -9,14 +9,14 @@ export class DateInputDayComponent extends DateInputItemComponent {
9
9
  super(...arguments);
10
10
  this.valueChange = new EventEmitter();
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputDayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DateInputDayComponent, selector: "desy-input-day", inputs: { id: "id", name: "name", labelText: "labelText", labelData: "labelData", disabled: "disabled", hasErrors: "hasErrors", value: "value", autocomplete: "autocomplete", pattern: "pattern", classes: "classes", maxlength: "maxlength", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDayComponent) }], queries: [{ propertyName: "labelComponent", predicate: LabelComponent }], viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputDayComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: DateInputDayComponent, selector: "desy-input-day", inputs: { id: "id", name: "name", labelText: "labelText", labelData: "labelData", disabled: "disabled", hasErrors: "hasErrors", value: "value", autocomplete: "autocomplete", pattern: "pattern", classes: "classes", maxlength: "maxlength", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDayComponent) }], queries: [{ propertyName: "labelComponent", predicate: LabelComponent }], viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }); }
14
14
  }
15
15
  __decorate([
16
16
  DesyContentChild(),
17
17
  __metadata("design:type", LabelComponent)
18
18
  ], DateInputDayComponent.prototype, "labelComponent", void 0);
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputDayComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputDayComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'desy-input-day', providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDayComponent) }], template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }]
22
22
  }], propDecorators: { id: [{
@@ -6,10 +6,10 @@ export class DateInputDividerComponent extends DateInputItemComponent {
6
6
  super(...arguments);
7
7
  this.divider = this;
8
8
  }
9
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputDividerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DateInputDividerComponent, selector: "desy-date-input-divider", providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDividerComponent) }], viewQueries: [{ propertyName: "dividerContent", first: true, predicate: ["dividerContent"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #dividerContent>\n <ng-content></ng-content>\n</ng-template>" }); }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputDividerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: DateInputDividerComponent, selector: "desy-date-input-divider", providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDividerComponent) }], viewQueries: [{ propertyName: "dividerContent", first: true, predicate: ["dividerContent"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #dividerContent>\n <ng-content></ng-content>\n</ng-template>" }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputDividerComponent, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputDividerComponent, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'desy-date-input-divider', providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputDividerComponent) }], template: "<ng-template #dividerContent>\n <ng-content></ng-content>\n</ng-template>" }]
15
15
  }], propDecorators: { dividerContent: [{
@@ -1,10 +1,10 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class DateInputItemComponent {
4
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DateInputItemComponent, selector: "desy-date-input-item", inputs: { classes: "classes" }, ngImport: i0, template: '', isInline: true }); }
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
5
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: DateInputItemComponent, selector: "desy-date-input-item", inputs: { classes: "classes" }, ngImport: i0, template: '', isInline: true }); }
6
6
  }
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputItemComponent, decorators: [{
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputItemComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{
10
10
  selector: 'desy-date-input-item',
@@ -9,14 +9,14 @@ export class DateInputMonthComponent extends DateInputItemComponent {
9
9
  super(...arguments);
10
10
  this.valueChange = new EventEmitter();
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputMonthComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DateInputMonthComponent, selector: "desy-input-month", inputs: { id: "id", name: "name", labelText: "labelText", labelData: "labelData", disabled: "disabled", hasErrors: "hasErrors", value: "value", autocomplete: "autocomplete", pattern: "pattern", classes: "classes", maxlength: "maxlength", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputMonthComponent) }], queries: [{ propertyName: "labelComponent", predicate: LabelComponent }], viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputMonthComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: DateInputMonthComponent, selector: "desy-input-month", inputs: { id: "id", name: "name", labelText: "labelText", labelData: "labelData", disabled: "disabled", hasErrors: "hasErrors", value: "value", autocomplete: "autocomplete", pattern: "pattern", classes: "classes", maxlength: "maxlength", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputMonthComponent) }], queries: [{ propertyName: "labelComponent", predicate: LabelComponent }], viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }); }
14
14
  }
15
15
  __decorate([
16
16
  DesyContentChild(),
17
17
  __metadata("design:type", LabelComponent)
18
18
  ], DateInputMonthComponent.prototype, "labelComponent", void 0);
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputMonthComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputMonthComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'desy-input-month', providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputMonthComponent) }], template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }]
22
22
  }], propDecorators: { id: [{
@@ -9,14 +9,14 @@ export class DateInputYearComponent extends DateInputItemComponent {
9
9
  super(...arguments);
10
10
  this.valueChange = new EventEmitter();
11
11
  }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputYearComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DateInputYearComponent, selector: "desy-input-year", inputs: { id: "id", name: "name", disabled: "disabled", hasErrors: "hasErrors", value: "value", autocomplete: "autocomplete", pattern: "pattern", classes: "classes", maxlength: "maxlength", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputYearComponent) }], queries: [{ propertyName: "labelComponent", predicate: LabelComponent }], viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }); }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputYearComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: DateInputYearComponent, selector: "desy-input-year", inputs: { id: "id", name: "name", disabled: "disabled", hasErrors: "hasErrors", value: "value", autocomplete: "autocomplete", pattern: "pattern", classes: "classes", maxlength: "maxlength", placeholder: "placeholder" }, outputs: { valueChange: "valueChange" }, providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputYearComponent) }], queries: [{ propertyName: "labelComponent", predicate: LabelComponent }], viewQueries: [{ propertyName: "labelRef", first: true, predicate: ["label"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }); }
14
14
  }
15
15
  __decorate([
16
16
  DesyContentChild(),
17
17
  __metadata("design:type", LabelComponent)
18
18
  ], DateInputYearComponent.prototype, "labelComponent", void 0);
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputYearComponent, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputYearComponent, decorators: [{
20
20
  type: Component,
21
21
  args: [{ selector: 'desy-input-year', providers: [{ provide: DateInputItemComponent, useExisting: forwardRef(() => DateInputYearComponent) }], template: "<ng-template #label>\n <ng-content select=\"desy-label\"></ng-content>\n</ng-template>\n" }]
22
22
  }], propDecorators: { id: [{
@@ -199,8 +199,8 @@ export class DateInputComponent extends FormFieldComponent {
199
199
  getItemDividerHtml(item) {
200
200
  return item.divider.html ? item.divider.html : `<p>${StringUtils.escapeHtml(item.divider.text)}</p>`;
201
201
  }
202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
203
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: DateInputComponent, selector: "desy-date-input", inputs: { ngModelGroup: "ngModelGroup", items: "items", namePrefix: "namePrefix", classes: "classes", errorMessage: "errorMessage", id: "id", formGroupClasses: "formGroupClasses", fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", placeholder: "placeholder" }, outputs: { itemsChange: "itemsChange" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputComponent, deps: [{ token: i1.ControlContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: DateInputComponent, selector: "desy-date-input", inputs: { ngModelGroup: "ngModelGroup", items: "items", namePrefix: "namePrefix", classes: "classes", errorMessage: "errorMessage", id: "id", formGroupClasses: "formGroupClasses", fieldsetData: "fieldsetData", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", placeholder: "placeholder" }, outputs: { itemsChange: "itemsChange" }, host: { properties: { "class.c-form-group": "this.cfg", "class.c-form-group--error": "this.cfgr", "class": "this.formGroupClasses" } }, providers: [
204
204
  {
205
205
  provide: NG_VALUE_ACCESSOR,
206
206
  useExisting: forwardRef(() => DateInputComponent),
@@ -228,7 +228,7 @@ __decorate([
228
228
  DesyContentChild(),
229
229
  __metadata("design:type", LegendComponent)
230
230
  ], DateInputComponent.prototype, "legendComponent", void 0);
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: DateInputComponent, decorators: [{
231
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: DateInputComponent, decorators: [{
232
232
  type: Component,
233
233
  args: [{ selector: 'desy-date-input', providers: [
234
234
  {
@@ -11,10 +11,10 @@ export class ErrorMessageComponent extends AccessibilityComponent {
11
11
  detectChanges() {
12
12
  this.changeDetectorRef.detectChanges();
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ErrorMessageComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: ErrorMessageComponent, selector: "desy-error-message", inputs: { id: "id", classes: "classes", html: "html", text: "text", visuallyHiddenText: "visuallyHiddenText" }, usesInheritance: true, ngImport: i0, template: "<p class=\"block font-semibold text-alert-base\" [ngClass]=\"classes\"\n [attr.id]=\"id ? id : null\"\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 <span class=\"sr-only\">{{visuallyHiddenText ? visuallyHiddenText : 'Error'}}:</span>\n <ng-content></ng-content>\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n</p>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: ErrorMessageComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: ErrorMessageComponent, selector: "desy-error-message", inputs: { id: "id", classes: "classes", html: "html", text: "text", visuallyHiddenText: "visuallyHiddenText" }, usesInheritance: true, ngImport: i0, template: "<p class=\"block font-semibold text-alert-base\" [ngClass]=\"classes\"\n [attr.id]=\"id ? id : null\"\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 <span class=\"sr-only\">{{visuallyHiddenText ? visuallyHiddenText : 'Error'}}:</span>\n <ng-content></ng-content>\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n</p>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }] }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: ErrorMessageComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: ErrorMessageComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'desy-error-message', template: "<p class=\"block font-semibold text-alert-base\" [ngClass]=\"classes\"\n [attr.id]=\"id ? id : null\"\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 <span class=\"sr-only\">{{visuallyHiddenText ? visuallyHiddenText : 'Error'}}:</span>\n <ng-content></ng-content>\n <ng-container *desyCustomInnerContent=\"{ html: html, text: text }\"></ng-container>\n</p>\n" }]
20
20
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { id: [{
@@ -16,8 +16,8 @@ export class FieldsetComponent extends AccessibilityComponent {
16
16
  detectChanges() {
17
17
  this.changeDetectorRef.detectChanges();
18
18
  }
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FieldsetComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.7", type: FieldsetComponent, selector: "desy-fieldset", inputs: { describedBy: "describedBy", errorId: "errorId", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", classes: "classes", caller: "caller", id: "id", headingLevel: "headingLevel" }, queries: [{ propertyName: "legendComponent", predicate: LegendComponent }, { propertyName: "contentComponent", predicate: ContentComponent }], usesInheritance: true, ngImport: i0, template: "<fieldset [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"describedBy ? describedBy : ariaDescribedBy\"\n [attr.aria-errormessage]=\"errorId ? errorId : ariaErrorMessage\"\n\n [attr.id]=\"id\"\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 ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"legendComponent\">\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!legendComponent\">\n <ng-container *ngTemplateOutlet=\"legendRef\"></ng-container>\n <desy-legend *ngIf=\"!legendRef && legendData\"\n [text]=\"legendData.text\"\n [html]=\"legendData.html\"\n [classes]=\"legendData.classes\"\n [isPageHeading]=\"legendData.isPageHeading\"\n [headingLevel]=\"headingLevel\"></desy-legend>\n <desy-legend *ngIf=\"!legendRef && !legendData && legendText\" [text]=\"legendText\" [headingLevel]=\"headingLevel\"></desy-legend>\n </ng-container>\n\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n</fieldset>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i3.LegendComponent, selector: "desy-legend", inputs: ["classes", "isPageHeading", "headingLevel"] }] }); }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: FieldsetComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.8", type: FieldsetComponent, selector: "desy-fieldset", inputs: { describedBy: "describedBy", errorId: "errorId", legendRef: "legendRef", legendData: "legendData", legendText: "legendText", classes: "classes", caller: "caller", id: "id", headingLevel: "headingLevel" }, queries: [{ propertyName: "legendComponent", predicate: LegendComponent }, { propertyName: "contentComponent", predicate: ContentComponent }], usesInheritance: true, ngImport: i0, template: "<fieldset [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"describedBy ? describedBy : ariaDescribedBy\"\n [attr.aria-errormessage]=\"errorId ? errorId : ariaErrorMessage\"\n\n [attr.id]=\"id\"\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 ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"legendComponent\">\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!legendComponent\">\n <ng-container *ngTemplateOutlet=\"legendRef\"></ng-container>\n <desy-legend *ngIf=\"!legendRef && legendData\"\n [text]=\"legendData.text\"\n [html]=\"legendData.html\"\n [classes]=\"legendData.classes\"\n [isPageHeading]=\"legendData.isPageHeading\"\n [headingLevel]=\"headingLevel\"></desy-legend>\n <desy-legend *ngIf=\"!legendRef && !legendData && legendText\" [text]=\"legendText\" [headingLevel]=\"headingLevel\"></desy-legend>\n </ng-container>\n\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n</fieldset>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CustomInnerContentDirective, selector: "[desyCustomInnerContent]", inputs: ["desyCustomInnerContent"] }, { kind: "component", type: i3.LegendComponent, selector: "desy-legend", inputs: ["classes", "isPageHeading", "headingLevel"] }] }); }
21
21
  }
22
22
  __decorate([
23
23
  DesyContentChild(),
@@ -27,7 +27,7 @@ __decorate([
27
27
  DesyContentChild(),
28
28
  __metadata("design:type", ContentComponent)
29
29
  ], FieldsetComponent.prototype, "contentComponent", void 0);
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.7", ngImport: i0, type: FieldsetComponent, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.8", ngImport: i0, type: FieldsetComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'desy-fieldset', template: "<fieldset [class]=\"classes\"\n [attr.role]=\"role\"\n [attr.aria-describedby]=\"describedBy ? describedBy : ariaDescribedBy\"\n [attr.aria-errormessage]=\"errorId ? errorId : ariaErrorMessage\"\n\n [attr.id]=\"id\"\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 ? ariaHasPopup : null\"\n [attr.tabindex]=\"tabindex ? tabindex : null\">\n\n <ng-container *ngIf=\"legendComponent\">\n <ng-content select=\"desy-legend\"></ng-content>\n </ng-container>\n <ng-container *ngIf=\"!legendComponent\">\n <ng-container *ngTemplateOutlet=\"legendRef\"></ng-container>\n <desy-legend *ngIf=\"!legendRef && legendData\"\n [text]=\"legendData.text\"\n [html]=\"legendData.html\"\n [classes]=\"legendData.classes\"\n [isPageHeading]=\"legendData.isPageHeading\"\n [headingLevel]=\"headingLevel\"></desy-legend>\n <desy-legend *ngIf=\"!legendRef && !legendData && legendText\" [text]=\"legendText\" [headingLevel]=\"headingLevel\"></desy-legend>\n </ng-container>\n\n <ng-container *desyCustomInnerContent=\"{ component: contentComponent, template: caller }\"></ng-container>\n</fieldset>\n" }]
33
33
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { describedBy: [{