desy-angular 5.3.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/bundles/desy-angular.umd.js +1353 -170
  2. package/bundles/desy-angular.umd.js.map +1 -1
  3. package/bundles/desy-angular.umd.min.js +1 -1
  4. package/bundles/desy-angular.umd.min.js.map +1 -1
  5. package/desy-angular.d.ts +38 -27
  6. package/desy-angular.metadata.json +1 -1
  7. package/esm2015/desy-angular.js +39 -28
  8. package/esm2015/lib/desy-buttons/components/button/button.component.js +4 -4
  9. package/esm2015/lib/desy-buttons/components/button-loader/button-loader.component.js +2 -2
  10. package/esm2015/lib/desy-buttons/components/dropdown/dropdown.component.js +8 -5
  11. package/esm2015/lib/desy-buttons/components/listbox/listbox.component.js +2 -2
  12. package/esm2015/lib/desy-buttons/components/toggle/toggle.component.js +6 -3
  13. package/esm2015/lib/desy-commons/components/description/description.component.js +3 -2
  14. package/esm2015/lib/desy-commons/components/divider/divider.component.js +15 -0
  15. package/esm2015/lib/desy-commons/components/icon/icon.component.js +3 -2
  16. package/esm2015/lib/desy-commons/desy-commons.module.js +6 -3
  17. package/esm2015/lib/desy-commons/interfaces/description-data.js +1 -1
  18. package/esm2015/lib/desy-commons/interfaces/divider-data.js +2 -0
  19. package/esm2015/lib/desy-commons/interfaces/icon-data.js +1 -1
  20. package/esm2015/lib/desy-commons/interfaces/index.js +2 -1
  21. package/esm2015/lib/desy-forms/components/character-count/character-count.component.js +2 -2
  22. package/esm2015/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.js +5 -4
  23. package/esm2015/lib/desy-forms/components/checkboxes/checkboxes.component.js +2 -2
  24. package/esm2015/lib/desy-forms/components/date-input/date-input.component.js +11 -4
  25. package/esm2015/lib/desy-forms/components/file-upload/file-upload.component.js +11 -5
  26. package/esm2015/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.js +2 -1
  27. package/esm2015/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.js +2 -1
  28. package/esm2015/lib/desy-forms/components/input-group/input-group.component.js +2 -2
  29. package/esm2015/lib/desy-forms/components/radios/radio-item/radio-item.component.js +3 -3
  30. package/esm2015/lib/desy-forms/components/radios/radios.component.js +2 -2
  31. package/esm2015/lib/desy-forms/components/search-bar/search-bar.component.js +7 -3
  32. package/esm2015/lib/desy-forms/components/select/select.component.js +2 -2
  33. package/esm2015/lib/desy-forms/components/textarea/textarea.component.js +9 -4
  34. package/esm2015/lib/desy-forms/components/tree/tree-item/tree-item.component.js +2 -2
  35. package/esm2015/lib/desy-forms/components/tree/tree.component.js +3 -3
  36. package/esm2015/lib/desy-forms/interfaces/item-input-group-data.js +1 -1
  37. package/esm2015/lib/desy-modals/components/dialog/dialog.component.js +3 -3
  38. package/esm2015/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.js +20 -0
  39. package/esm2015/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.js +19 -0
  40. package/esm2015/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.js +3 -3
  41. package/esm2015/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.js +3 -3
  42. package/esm2015/lib/desy-modals/components/modal/modal.component.js +15 -3
  43. package/esm2015/lib/desy-modals/desy-modals.module.js +7 -1
  44. package/esm2015/lib/desy-modals/interfaces/modal-button-data.js +1 -1
  45. package/esm2015/lib/desy-nav/components/footer/footer.component.js +9 -2
  46. package/esm2015/lib/desy-nav/components/header/header-navigation/header-navigation.component.js +2 -2
  47. package/esm2015/lib/desy-nav/components/header/header-offcanvas/header-offcanvas-button/header-offcanvas-button.component.js +2 -2
  48. package/esm2015/lib/desy-nav/components/header/header-subnav/header-subnav.component.js +2 -2
  49. package/esm2015/lib/desy-nav/components/header/header.component.js +5 -2
  50. package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.js +35 -0
  51. package/esm2015/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.js +31 -0
  52. package/esm2015/lib/desy-nav/components/menu-navigation/menu-navigation.component.js +568 -0
  53. package/esm2015/lib/desy-nav/components/menubar/menubar.component.js +33 -5
  54. package/esm2015/lib/desy-nav/desy-nav.module.js +12 -2
  55. package/esm2015/lib/desy-nav/interfaces/header-navigation-item-data.js +1 -1
  56. package/esm2015/lib/desy-nav/interfaces/index.js +4 -1
  57. package/esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.js +2 -0
  58. package/esm2015/lib/desy-nav/interfaces/menu-navigation-item-sub-item.js +2 -0
  59. package/esm2015/lib/desy-nav/interfaces/menu-navigation.js +2 -0
  60. package/esm2015/lib/desy-pagination/components/pagination/pagination.component.js +48 -5
  61. package/esm2015/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.js +15 -0
  62. package/esm2015/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.js +14 -0
  63. package/esm2015/lib/desy-pagination/desy-pagination.module.js +9 -3
  64. package/esm2015/lib/desy-pagination/interfaces/index.js +1 -1
  65. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.js +16 -3
  66. package/esm2015/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.js +22 -0
  67. package/esm2015/lib/desy-tables/components/table-advanced/table-advanced.component.js +34 -3
  68. package/esm2015/lib/desy-tables/desy-tables.module.js +5 -2
  69. package/esm2015/lib/desy-tables/interfaces/head-cell-data.js +1 -1
  70. package/esm2015/lib/desy-views/components/accordion/accordion-header/accordion-header.component.js +1 -1
  71. package/esm2015/lib/desy-views/components/accordion/accordion-item/accordion-item.component.js +12 -2
  72. package/esm2015/lib/desy-views/components/accordion/accordion.component.js +32 -4
  73. package/esm2015/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.js +5 -5
  74. package/esm2015/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.js +14 -0
  75. package/esm2015/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.js +14 -0
  76. package/esm2015/lib/desy-views/components/collapsible/collapsible.component.js +2 -2
  77. package/esm2015/lib/desy-views/components/item/item.component.js +23 -5
  78. package/esm2015/lib/desy-views/components/media-object/media-object.component.js +37 -4
  79. package/esm2015/lib/desy-views/components/spinner/spinner.component.js +33 -4
  80. package/esm2015/lib/desy-views/components/status/status.component.js +36 -5
  81. package/esm2015/lib/desy-views/components/status-item/status-item.component.js +35 -4
  82. package/esm2015/lib/desy-views/components/tabs/tabs.component.js +36 -5
  83. package/esm2015/lib/desy-views/components/tooltip/tooltip.component.js +36 -5
  84. package/esm2015/lib/desy-views/desy-views.module.js +7 -7
  85. package/esm2015/public-api.js +3 -3
  86. package/fesm2015/desy-angular.js +1267 -133
  87. package/fesm2015/desy-angular.js.map +1 -1
  88. package/lib/desy-buttons/components/button/button.component.d.ts +2 -2
  89. package/lib/desy-buttons/components/dropdown/dropdown.component.d.ts +5 -4
  90. package/lib/desy-buttons/components/toggle/toggle.component.d.ts +2 -0
  91. package/lib/desy-commons/components/description/description.component.d.ts +1 -0
  92. package/lib/desy-commons/components/divider/divider.component.d.ts +6 -0
  93. package/lib/desy-commons/components/icon/icon.component.d.ts +1 -0
  94. package/lib/desy-commons/interfaces/description-data.d.ts +1 -0
  95. package/lib/desy-commons/interfaces/divider-data.d.ts +4 -0
  96. package/lib/desy-commons/interfaces/icon-data.d.ts +1 -0
  97. package/lib/desy-commons/interfaces/index.d.ts +1 -0
  98. package/lib/desy-forms/components/checkboxes/checkbox-item/checkbox-item.component.d.ts +1 -1
  99. package/lib/desy-forms/components/date-input/date-input.component.d.ts +6 -3
  100. package/lib/desy-forms/components/file-upload/file-upload.component.d.ts +6 -2
  101. package/lib/desy-forms/components/input-group/input-group-input/input-group-input.component.d.ts +1 -0
  102. package/lib/desy-forms/components/input-group/input-group-select/input-group-select.component.d.ts +1 -0
  103. package/lib/desy-forms/components/radios/radio-item/radio-item.component.d.ts +1 -1
  104. package/lib/desy-forms/components/search-bar/search-bar.component.d.ts +5 -3
  105. package/lib/desy-forms/components/textarea/textarea.component.d.ts +3 -1
  106. package/lib/desy-forms/components/tree/tree.component.d.ts +1 -1
  107. package/lib/desy-forms/interfaces/item-input-group-data.d.ts +1 -0
  108. package/lib/desy-modals/components/dialog/dialog.component.d.ts +1 -1
  109. package/lib/desy-modals/components/modal/modal-button-loader-primary/modal-button-loader-primary.component.d.ts +8 -0
  110. package/lib/desy-modals/components/modal/modal-button-loader-secondary/modal-button-loader-secondary.component.d.ts +7 -0
  111. package/lib/desy-modals/components/modal/modal-button-primary/modal-button-primary.component.d.ts +3 -3
  112. package/lib/desy-modals/components/modal/modal-button-secondary/modal-button-secondary.component.d.ts +3 -3
  113. package/lib/desy-modals/components/modal/modal.component.d.ts +8 -0
  114. package/lib/desy-modals/interfaces/modal-button-data.d.ts +16 -0
  115. package/lib/desy-nav/components/footer/footer.component.d.ts +5 -0
  116. package/lib/desy-nav/components/header/header.component.d.ts +3 -0
  117. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-item/menu-navigation-item.component.d.ts +22 -0
  118. package/lib/desy-nav/components/menu-navigation/components/menu-navigation-subitem/menu-navigation-subitem.component.d.ts +19 -0
  119. package/lib/desy-nav/components/menu-navigation/menu-navigation.component.d.ts +80 -0
  120. package/lib/desy-nav/components/menubar/menubar.component.d.ts +16 -2
  121. package/lib/desy-nav/interfaces/header-navigation-item-data.d.ts +1 -0
  122. package/lib/desy-nav/interfaces/index.d.ts +3 -0
  123. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item-sub-item.d.ts +14 -0
  124. package/lib/desy-nav/interfaces/menu-navigation-item-sub-item.d.ts +6 -0
  125. package/lib/desy-nav/interfaces/menu-navigation.d.ts +17 -0
  126. package/lib/desy-pagination/components/pagination/pagination.component.d.ts +15 -4
  127. package/lib/desy-pagination/components/pagination-item-perpage/pagination-item-perpage.component.d.ts +7 -0
  128. package/lib/desy-pagination/components/pagination-listbox-label/pagination-listbox-label.component.d.ts +4 -0
  129. package/lib/desy-tables/components/table-advanced/components/table-advanced-header-cell.component.d.ts +7 -0
  130. package/lib/desy-tables/components/table-advanced/components/table-advanced-select.component.d.ts +9 -0
  131. package/lib/desy-tables/components/table-advanced/table-advanced.component.d.ts +8 -0
  132. package/lib/desy-tables/interfaces/head-cell-data.d.ts +3 -0
  133. package/lib/desy-views/components/accordion/accordion-item/accordion-item.component.d.ts +4 -0
  134. package/lib/desy-views/components/accordion/accordion.component.d.ts +17 -3
  135. package/lib/desy-views/components/accordion-history/accordion-history-item/accordion-history-item.component.d.ts +4 -4
  136. package/lib/desy-views/components/accordion-history/accordion-item-hide-button/accordion-item-hide-button.component.d.ts +4 -0
  137. package/lib/desy-views/components/accordion-history/accordion-item-show-button/accordion-item-show-button.component.d.ts +4 -0
  138. package/lib/desy-views/components/item/item.component.d.ts +8 -4
  139. package/lib/desy-views/components/media-object/media-object.component.d.ts +19 -3
  140. package/lib/desy-views/components/spinner/spinner.component.d.ts +17 -2
  141. package/lib/desy-views/components/status/status.component.d.ts +18 -2
  142. package/lib/desy-views/components/status-item/status-item.component.d.ts +18 -3
  143. package/lib/desy-views/components/tabs/tabs.component.d.ts +18 -3
  144. package/lib/desy-views/components/tooltip/tooltip.component.d.ts +18 -3
  145. package/package.json +2 -2
  146. package/public-api.d.ts +2 -2
  147. package/esm2015/lib/desy-views/components/accordion-history/accordion-history-item-hide-button/accordion-history-item-hide-button.component.js +0 -14
  148. package/esm2015/lib/desy-views/components/accordion-history/accordion-history-item-show-button/accordion-history-item-show-button.component.js +0 -14
  149. package/lib/desy-views/components/accordion-history/accordion-history-item-hide-button/accordion-history-item-hide-button.component.d.ts +0 -4
  150. package/lib/desy-views/components/accordion-history/accordion-history-item-show-button/accordion-history-item-show-button.component.d.ts +0 -4
@@ -319,7 +319,7 @@ TreeItemComponent._treeItemKeySuffix = 0; // Sufijo estático para generar siemp
319
319
  TreeItemComponent.decorators = [
320
320
  { type: Component, args: [{
321
321
  selector: 'desy-tree-item',
322
- template: "<li *ngIf=\"allParentsExpanded && !isHidden(); else hidden\"\r\n [id]=\"id\"\r\n [class]=\"'c-tree__item focus:outline-none'\"\r\n [ngClass]=\"{\r\n 'ml-4': subLevel === 0,\r\n 'ml-8': subLevel !== 0,\r\n 'c-tree__item--focus': isFocus && !sub,\r\n 'c-tree__item--hover': isHover && !sub\r\n }\"\r\n (focusin)=\"handleItemFocus(true, !sub)\"\r\n (focusout)=\"handleItemFocus(false, !sub)\"\r\n (mouseover)=\"handleItemHover(true, !sub)\"\r\n (mouseout)=\"handleItemHover(false, !sub)\"\r\n (keydown.home)=\"handleHome($event, !sub)\"\r\n (keydown.end)=\"handleEnd($event, !sub)\"\r\n (keydown.arrowup)=\"handleArrowUp($event, !sub)\"\r\n (keydown.arrowdown)=\"handleArrowDown($event, !sub)\"\r\n (keydown.arrowright)=\"handleArrowRight($event, !sub)\"\r\n (keydown.arrowleft)=\"handleArrowLeft($event, !sub)\"\r\n role=\"treeitem\"\r\n [attr.aria-expanded]=\"sub ? (expanded ? 'true' : 'false') : null\"\r\n [attr.aria-current]=\"isActive() && subLevel === 0 ? 'page' : null\"\r\n [attr.disabled]=\"disabled && subLevel === 0 ? 'disabled' : null\"\r\n [attr.aria-disabled]=\"disabled && subLevel === 0 ? 'true' : null\"\r\n [attr.tabIndex]=\"disabled && subLevel === 0 ? '-1' : null\">\r\n <div *ngIf=\"!sub && subLevel !== 0; else childrenTree\"\r\n [id]=\"id\"\r\n [class]=\"['block', classes] | makeHtmlList\"\r\n [attr.title]=\"title ? title : null\"\r\n [attr.disabled]=\"disabled ? 'disabled' : null\"\r\n\r\n [attr.role]=\"role ? role : 'tree'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : (disabled ? 'true' : null)\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : (isActive() ? 'page' : null)\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (disabled ? '-1' : null)\">\r\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\r\n </div>\r\n</li>\r\n\r\n<ng-template #childrenTree>\r\n <div *ngIf=\"sub; else checkbox\" class=\"w-full h-full\"\r\n [ngClass]=\"{'c-tree__item--focus': isFocus && sub, 'c-tree__item--hover': isHover && sub}\"\r\n (focusin)=\"handleItemFocus(true)\"\r\n (focusout)=\"handleItemFocus(false)\"\r\n (mouseover)=\"handleItemHover(true)\"\r\n (mouseout)=\"handleItemHover(false)\"\r\n (keydown.home)=\"handleHome($event)\"\r\n (keydown.end)=\"handleEnd($event)\"\r\n (keydown.arrowup)=\"handleArrowUp($event)\"\r\n (keydown.arrowdown)=\"handleArrowDown($event)\"\r\n (keydown.arrowright)=\"handleArrowRight($event)\"\r\n (keydown.arrowLeft)=\"handleArrowLeft($event)\">\r\n <div [class]=\"['w-full flex items-center relative focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black text-left', classes] | makeHtmlList\"\r\n\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <span class=\"absolute top-3 -left-4 flex items-center w-4 h-2.5 text-primary-base font-bold\">\r\n <svg (click)=\"expandSub(false)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__minus\"><path fill=\"currentColor\" d=\"M9.286 5.714H.714a.714.714 0 010-1.428h8.572a.714.714 0 010 1.428z\"/></svg>\r\n <svg (click)=\"expandSub(true)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__plus\"><path fill=\"currentColor\" d=\"M9.286 4.286H5.893a.179.179 0 01-.179-.179V.714a.714.714 0 00-1.428 0v3.393a.179.179 0 01-.179.179H.714a.714.714 0 000 1.428h3.393a.179.179 0 01.179.179v3.393a.714.714 0 001.428 0V5.893a.179.179 0 01.179-.179h3.393a.714.714 0 000-1.428z\"/></svg>\r\n </span>\r\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\r\n</ng-template>\r\n\r\n<!-- Se incorpora el contenido m\u00EDnimo para funcionar con el objetivo de mejorar el rendimiento -->\r\n<ng-template #hidden>\r\n <li class=\"hidden\">\r\n <div #hiddenWrapper>\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </div>\r\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\r\n </li>\r\n</ng-template>\r\n\r\n<ng-template #checkbox>\r\n <!--\r\n El *ngIf=\"name || parentName\" se realiza para no crear el checkbox hasta que se ha ejecutado el configureAllItems.\r\n Esto puede dar problemas porque, hasta que no se ejecuta esto, el desy-tree-checkbox no cuenta con el type actualizado (por defecto radio).\r\n Un ejemplo en el que esto puede ser problem\u00E1tico es al ser typo checkbox y darle un valor checked=true a varios los items, ya\r\n que el type todav\u00EDa no se ha transmitido aqu\u00ED. Como por defecto el type es radio, s\u00F3lo marcar\u00E1 el \u00FAltimo. Posteriormente,\r\n ya detectar\u00E1 el tipo y permitir\u00E1 seleccionar varios items, pero hasta entonces existe este problema.\r\n -->\r\n <desy-tree-checkbox *ngIf=\"name || parentName\"\r\n [name]=\"name ? name : parentName\"\r\n [id]=\"getId()\"\r\n [value]=\"value\"\r\n [classes]=\"classes\"\r\n [type]=\"type\"\r\n [(checked)]=\"checked\" (checkedChange)=\"handleCheckboxChange($event)\"\r\n [hasError]=\"inheritedHasError\"\r\n [disabled]=\"disabled\"\r\n [hasDividers]=\"hasDividers\"\r\n [describedBy]=\"[inheritedDescribedBy, hint?.id] | makeHtmlList\"\r\n [isIndeterminate]=\"isIndeterminate\"\r\n [(indeterminateChecked)]=\"indeterminateChecked\"\r\n (indeterminateCheckedChange)=\"handleIndeterminateCheckedChange($event)\"\r\n\r\n [labelComponent]=\"label\"\r\n [hintComponent]=\"hint\"\r\n\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaDescribedBy]=\"ariaDescribedBy\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [ariaModal]=\"ariaModal\"\r\n [tabindex]=\"tabindex\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </desy-tree-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #content>\r\n <div class=\"font-bold\" *ngIf=\"isActive(); else contentLabel\">\r\n <ng-container *ngTemplateOutlet=\"contentLabel\"></ng-container>\r\n </div>\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #contentLabel>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
322
+ template: "<li *ngIf=\"allParentsExpanded && !isHidden(); else hidden\"\r\n [id]=\"id\"\r\n [class]=\"'c-tree__item focus:outline-none'\"\r\n [ngClass]=\"{\r\n 'ml-4': subLevel === 0,\r\n 'ml-8': subLevel !== 0,\r\n 'c-tree__item--focus': isFocus && !sub,\r\n 'c-tree__item--hover': isHover && !sub\r\n }\"\r\n (focusin)=\"handleItemFocus(true, !sub)\"\r\n (focusout)=\"handleItemFocus(false, !sub)\"\r\n (mouseover)=\"handleItemHover(true, !sub)\"\r\n (mouseout)=\"handleItemHover(false, !sub)\"\r\n (keydown.home)=\"handleHome($event, !sub)\"\r\n (keydown.end)=\"handleEnd($event, !sub)\"\r\n (keydown.arrowup)=\"handleArrowUp($event, !sub)\"\r\n (keydown.arrowdown)=\"handleArrowDown($event, !sub)\"\r\n (keydown.arrowright)=\"handleArrowRight($event, !sub)\"\r\n (keydown.arrowleft)=\"handleArrowLeft($event, !sub)\"\r\n role=\"treeitem\"\r\n [attr.aria-expanded]=\"sub ? (expanded ? 'true' : 'false') : null\"\r\n [attr.aria-current]=\"isActive() && subLevel === 0 ? 'page' : null\">\r\n <div *ngIf=\"!sub && subLevel !== 0; else childrenTree\"\r\n [id]=\"id\"\r\n [class]=\"['block', classes] | makeHtmlList\"\r\n [attr.title]=\"title ? title : null\"\r\n [attr.disabled]=\"disabled ? 'disabled' : null\"\r\n\r\n [attr.role]=\"role ? role : 'tree'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : (disabled ? 'true' : null)\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : (isActive() ? 'page' : null)\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : (disabled ? '-1' : null)\">\r\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\r\n </div>\r\n</li>\r\n\r\n<ng-template #childrenTree>\r\n <div *ngIf=\"sub; else checkbox\" class=\"w-full h-full\"\r\n [ngClass]=\"{'c-tree__item--focus': isFocus && sub, 'c-tree__item--hover': isHover && sub}\"\r\n (focusin)=\"handleItemFocus(true)\"\r\n (focusout)=\"handleItemFocus(false)\"\r\n (mouseover)=\"handleItemHover(true)\"\r\n (mouseout)=\"handleItemHover(false)\"\r\n (keydown.home)=\"handleHome($event)\"\r\n (keydown.end)=\"handleEnd($event)\"\r\n (keydown.arrowup)=\"handleArrowUp($event)\"\r\n (keydown.arrowdown)=\"handleArrowDown($event)\"\r\n (keydown.arrowright)=\"handleArrowRight($event)\"\r\n (keydown.arrowLeft)=\"handleArrowLeft($event)\">\r\n <div [class]=\"['w-full flex items-center relative focus:bg-warning-base focus:outline-none focus:shadow-outline-focus focus:text-black text-left', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <span class=\"absolute top-3 -left-4 flex items-center w-4 h-2.5 text-primary-base font-bold\">\r\n <svg (click)=\"expandSub(false)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__minus\"><path fill=\"currentColor\" d=\"M9.286 5.714H.714a.714.714 0 010-1.428h8.572a.714.714 0 010 1.428z\"/></svg>\r\n <svg (click)=\"expandSub(true)\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 10 10\" width=\"10\" height=\"10\" aria-hidden=\"true\" class=\"c-tree__plus\"><path fill=\"currentColor\" d=\"M9.286 4.286H5.893a.179.179 0 01-.179-.179V.714a.714.714 0 00-1.428 0v3.393a.179.179 0 01-.179.179H.714a.714.714 0 000 1.428h3.393a.179.179 0 01.179.179v3.393a.714.714 0 001.428 0V5.893a.179.179 0 01.179-.179h3.393a.714.714 0 000-1.428z\"/></svg>\r\n </span>\r\n <ng-container *ngTemplateOutlet=\"checkbox\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\r\n</ng-template>\r\n\r\n<!-- Se incorpora el contenido m\u00EDnimo para funcionar con el objetivo de mejorar el rendimiento -->\r\n<ng-template #hidden>\r\n <li class=\"hidden\">\r\n <div #hiddenWrapper>\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </div>\r\n <ng-container *desyCustomInnerContent=\"{ component: sub }\"></ng-container>\r\n </li>\r\n</ng-template>\r\n\r\n<ng-template #checkbox>\r\n <!--\r\n El *ngIf=\"name || parentName\" se realiza para no crear el checkbox hasta que se ha ejecutado el configureAllItems.\r\n Esto puede dar problemas porque, hasta que no se ejecuta esto, el desy-tree-checkbox no cuenta con el type actualizado (por defecto radio).\r\n Un ejemplo en el que esto puede ser problem\u00E1tico es al ser typo checkbox y darle un valor checked=true a varios los items, ya\r\n que el type todav\u00EDa no se ha transmitido aqu\u00ED. Como por defecto el type es radio, s\u00F3lo marcar\u00E1 el \u00FAltimo. Posteriormente,\r\n ya detectar\u00E1 el tipo y permitir\u00E1 seleccionar varios items, pero hasta entonces existe este problema.\r\n -->\r\n <desy-tree-checkbox *ngIf=\"name || parentName\"\r\n [name]=\"name ? name : parentName\"\r\n [id]=\"getId()\"\r\n [value]=\"value\"\r\n [classes]=\"classes\"\r\n [type]=\"type\"\r\n [(checked)]=\"checked\" (checkedChange)=\"handleCheckboxChange($event)\"\r\n [hasError]=\"inheritedHasError\"\r\n [disabled]=\"disabled\"\r\n [hasDividers]=\"hasDividers\"\r\n [describedBy]=\"[inheritedDescribedBy, hint?.id] | makeHtmlList\"\r\n [isIndeterminate]=\"isIndeterminate\"\r\n [(indeterminateChecked)]=\"indeterminateChecked\"\r\n (indeterminateCheckedChange)=\"handleIndeterminateCheckedChange($event)\"\r\n\r\n [labelComponent]=\"label\"\r\n [hintComponent]=\"hint\"\r\n\r\n [role]=\"role\"\r\n [ariaLabel]=\"ariaLabel\"\r\n [ariaDescribedBy]=\"ariaDescribedBy\"\r\n [ariaLabelledBy]=\"ariaLabelledBy\"\r\n [ariaHidden]=\"ariaHidden\"\r\n [ariaDisabled]=\"ariaDisabled\"\r\n [ariaControls]=\"ariaControls\"\r\n [ariaCurrent]=\"ariaCurrent\"\r\n [ariaLive]=\"ariaLive\"\r\n [ariaExpanded]=\"ariaExpanded\"\r\n [ariaErrorMessage]=\"ariaErrorMessage\"\r\n [ariaHasPopup]=\"ariaHasPopup\"\r\n [ariaModal]=\"ariaModal\"\r\n [tabindex]=\"tabindex\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </desy-tree-checkbox>\r\n</ng-template>\r\n\r\n<ng-template #content>\r\n <div class=\"font-bold\" *ngIf=\"isActive(); else contentLabel\">\r\n <ng-container *ngTemplateOutlet=\"contentLabel\"></ng-container>\r\n </div>\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n</ng-template>\r\n\r\n<ng-template #contentLabel>\r\n <ng-content select=\"desy-label\"></ng-content>\r\n</ng-template>\r\n",
323
323
  providers: [
324
324
  {
325
325
  provide: ITreeItem,
@@ -367,4 +367,4 @@ __decorate([
367
367
  __decorate([
368
368
  DesyContentChild()
369
369
  ], TreeItemComponent.prototype, "label", void 0);
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy90cmVlL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQUUsVUFBVSxFQUMzQixZQUFZLEVBQ1osVUFBVSxFQUFFLFdBQVcsRUFDdkIsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDL0YsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBWWxFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxzQkFBc0I7SUFvRTNELFlBQW9CLGNBQWlDLEVBQVUsT0FBbUI7UUFDaEYsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBbkR4RSxrQkFBYSxHQUFz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LGdCQUFnQixFQUFFOytDQUNpQztBQUduQjtJQURoQyxnQkFBZ0IsRUFBRTtnREFDb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtUcmVlU3ViQ29tcG9uZW50fSBmcm9tIFwiLi4vdHJlZS1zdWIvdHJlZS1zdWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SVRyZWVJdGVtfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9pdHJlZS1pdGVtXCI7XHJcbmltcG9ydCB7SGludENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2hpbnQvaGludC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMYWJlbENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1F1aXRUcmVlSXRlbUZvY3VzT3B0aW9uc30gZnJvbSBcIi4uL2ludGVyZmFjZXMvcXVpdC10cmVlLWl0ZW0tZm9jdXMtb3B0aW9uc1wiO1xyXG5pbXBvcnQge1RyZWVDaGVja2JveENvbXBvbmVudH0gZnJvbSBcIi4uL3RyZWUtY2hlY2tib3gvdHJlZS1jaGVja2JveC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtBY2Nlc3NpYmlsaXR5Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHNcIjtcclxuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1NlYXJjaFV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3NlYXJjaC11dGlsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LXRyZWUtaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IElUcmVlSXRlbSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUl0ZW1Db21wb25lbnQpXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBJVHJlZUl0ZW0ge1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfdHJlZUl0ZW1LZXlTdWZmaXggPSAwOyAvLyBTdWZpam8gZXN0w6F0aWNvIHBhcmEgZ2VuZXJhciBzaWVtcHJlIGNsYXZlcyBkaXN0aW50YXNcclxuICBAVmlld0NoaWxkKCdoaWRkZW5XcmFwcGVyJykgaGlkZGVuV3JhcHBlcjogRWxlbWVudFJlZjtcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdzZXREZWZhdWx0SWRSZWN1cnNpdmUnKVxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGhhc0RpdmlkZXJzOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzSW5kZXRlcm1pbmF0ZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgY2hlY2tlZDogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBjaGVja2VkQ2hhbmdlRm9yVHJlZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgZXhwYW5kZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBpbmRldGVybWluYXRlQ2hlY2tlZDogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgaW5kZXRlcm1pbmF0ZUNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZVN1YlZhbHVlcyd9KVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVHJlZVN1YkNvbXBvbmVudCkgc3ViOiBUcmVlU3ViQ29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihIaW50Q29tcG9uZW50KSBoaW50OiBIaW50Q29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihMYWJlbENvbXBvbmVudCkgbGFiZWw6IExhYmVsQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFRyZWVDaGVja2JveENvbXBvbmVudCkgY2hlY2tib3g6IFRyZWVDaGVja2JveENvbXBvbmVudDtcclxuXHJcbiAgLypcclxuICAgKiBJZGVudGlmaWNhZG9yIGRlbCB3cmFwcGVyIGRlbCBjb21wb25lbnRlLiBTZSB1dGlsaXphIHBhcmEgcmVjb3JyZXIgZWwgw6FyYm9sIGVuIHNlbnRpZG8gaW52ZXJzbyB5IHF1ZSBjYWRhIGl0ZW1cclxuICAgKiBzZXBhIGN1w6FsIGVzIHN1IGl0ZW0vw6FyYm9sIHBhZHJlLlxyXG4gICAqIEVzdG8gZXMgbmVjZXNhcmlvIHlhIHF1ZSwgYSBsYSBob3JhIGRlIGNvbnN0cnVpciB1biDDoXJib2wgZGluw6FtaWNvIGNvbiB0ZW1wbGF0ZXMsXHJcbiAgICogZWwgZGVjb3JhZG9yIEBDb250ZW50Q2hpbGRyZW4gbm8gZnVuY2lvbmEgY29ycmVjdGFtZW50ZSB5IG5vIGxvcyBkZXRlY3RhLlxyXG4gICAqIERlam8gZWwgZW5sYWNlIGRlIHVuIHByb2JsZW1hIHNpbWlsYXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIxNzUxXHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRlc3ktdHJlZS1pdGVtLWtleScpXHJcbiAgcmVhZG9ubHkgdHJlZUl0ZW1LZXk6IHN0cmluZyA9IFRyZWVJdGVtQ29tcG9uZW50LmdlbmVyYXRlU3RhdGljSXRlbUtleSgpO1xyXG5cclxuICB0eXBlOiAncmFkaW8nfCdjaGVja2JveCd8bnVsbHx1bmRlZmluZWQ7XHJcbiAgc3ViTGV2ZWw6IG51bWJlcjsgLy8gTml2ZWwgZGVudHJvIGRlbCBhcmJvbC4gMCBzb24gbG9zIGl0ZW1zIGEgbml2ZWwgZGUgcmFpei5cclxuXHJcbiAgLy8gUHJvcGllZGFkZXMgZGVmaW5pZGFzIHBvciBlbCBjb21wb25lbnRlIMOhcmJvbCBxdWUgZWwgaXRlbSBwdWVkZSB1dGlsaXphciwgc29icmVzY3JpYmlyIG8gYW1wbGlhclxyXG4gIHBhcmVudE5hbWU6IHN0cmluZztcclxuICBkZWZhdWx0SWQ7XHJcbiAgaW5oZXJpdGVkRXhwYW5kZWRGaXJzdExldmVsOiBib29sZWFuO1xyXG4gIGluaGVyaXRlZERlY291cGxlQ2hpbGRGcm9tUGFyZW50OiBib29sZWFuO1xyXG4gIGluaGVyaXRlZERlc2NyaWJlZEJ5OiBzdHJpbmc7XHJcbiAgaW5oZXJpdGVkSGFzRXJyb3I6IGJvb2xlYW47XHJcbiAgYWxsUGFyZW50c0V4cGFuZGVkID0gdHJ1ZTsgLy8gVHJ1ZSBzaSBlbCBlbGVtZW50byBlcyB2aXNpYmxlIHNlZ8O6biBsb3MgZWxlbWVudG9zIGV4cGFuZGlkb3NcclxuICBpbmhlcml0ZWRNYXRjaGVzU2VhcmNoID0gdHJ1ZTsgLy8gVHJ1ZSBzaSBlbCBlbGVtZW50byBlcyB2aXNpYmxlIHNlZ8O6biBsb3MgY3JpdGVyaW9zIGRlIGLDunNxdWVkYVxyXG4gIG9yZGVySW5UcmVlOiBudW1iZXI7XHJcblxyXG4gIC8vIEV2ZW50byBwYXJhIGVtaXRpciBhbCBjb21wb25lbnRlIGFyYm9sIGN1YW5kbyBzZSBwcmV0ZW5kZSBhYmFuZG9uYXIgZWwgZm9jbyBkZWwgaXRlbVxyXG4gIHF1aXRGb2N1czogRXZlbnRFbWl0dGVyPFF1aXRUcmVlSXRlbUZvY3VzT3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyPFF1aXRUcmVlSXRlbUZvY3VzT3B0aW9ucz4oKTtcclxuXHJcbiAgaXNGb2N1cyA9IGZhbHNlO1xyXG4gIGlzSG92ZXIgPSBmYWxzZTtcclxuICBwcml2YXRlIF9tYXRjaGVzVmFsaWRUZXh0ID0gZmFsc2U7IC8vIFRydWUgc2kgZWwgY29udGVuaWRvIGRlbCBpdGVtIGVuY2FqYSBjb24gbG9zIGNyaXRlcmlvcyBkZSBiw7pzcXVlZGEgeSBzZSBlc3TDoSBmaWx0cmFuZG9cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YiAmJiB0aGlzLnN1Yi5pdGVtTGlzdCkge1xyXG4gICAgICB0aGlzLnN1Yi5pdGVtTGlzdC5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0gYXMgVHJlZUl0ZW1Db21wb25lbnQpLnJlZnJlc2hBbGxQYXJlbnRzRXhwYW5kZWRSZWN1cnNpdmUodGhpcy5hbGxQYXJlbnRzRXhwYW5kZWQgJiYgdGhpcy5leHBhbmRlZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcclxuICAgICAgICBzd2l0Y2ggKHByb3BOYW1lKSB7XHJcbiAgICAgICAgICBjYXNlICdjaGVja2VkJzoge1xyXG4gICAgICAgICAgICAvLyBSZWFzaWduYW1vcyBlbCB2YWxvciBkZSBjaGVja2VkIGN1YW5kbyBkZXRlY3RhbW9zIGVsIGNhbWJpbyBlbiBsYSBlbnRyYWRhXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmNoZWNrZWQsIGZhbHNlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaW5oZXJpdGVkRXhwYW5kZWRGaXJzdExldmVsICYmIHRoaXMuY2hlY2tlZCAmJiAhdGhpcy5leHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRTdWIodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIE3DqXRvZG9zIGV4cHVlc3RvcyBxdWUgcGVybWl0ZW4gY29uZmlndXJhciBhbCDDrXRlbSBkZSBmb3JtYSBleHRlcm5hXHJcbiAgICovXHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja2JveD8uZm9jdXMoKTtcclxuICAgIHRoaXMuaGFuZGxlSXRlbUZvY3VzKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3ViKSB7XHJcbiAgICAgIHRoaXMuc3ViLml0ZW1MaXN0LmZvckVhY2goaXRlbSA9PiAoaXRlbSBhcyBUcmVlSXRlbUNvbXBvbmVudCkuc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCkpO1xyXG4gICAgICBpZiAodGhpcy5hcmVBbGxDaGlsZHJlbkNoZWNrZWQoKSkge1xyXG4gICAgICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGVDaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldEluZGV0ZXJtaW5hdGVDaGVja2VkKGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENoZWNrZWQodHJ1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQ2hpbGRyZW5DaGVja2VkT3JJbmRldGVybWluYXRlKCkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2V0SW5kZXRlcm1pbmF0ZUNoZWNrZWQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENoZWNrZWQoZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5pbmRldGVybWluYXRlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRJbmRldGVybWluYXRlQ2hlY2tlZChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENoZWNrZWQoZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEFsbFBhcmVudHNFeHBhbmRlZFJlY3Vyc2l2ZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGxQYXJlbnRzRXhwYW5kZWQgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLnN1Yikge1xyXG4gICAgICB0aGlzLnN1Yi5pdGVtTGlzdC5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0gYXMgVHJlZUl0ZW1Db21wb25lbnQpLnJlZnJlc2hBbGxQYXJlbnRzRXhwYW5kZWRSZWN1cnNpdmUodmFsdWUgJiYgdGhpcy5leHBhbmRlZCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kU3ViKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zdWIpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5yZWZyZXNoQWxsUGFyZW50c0V4cGFuZGVkUmVjdXJzaXZlKHRoaXMuYWxsUGFyZW50c0V4cGFuZGVkICYmIHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBHZXN0aW9uIGRlIGV2ZW50b3NcclxuICAgKi9cclxuXHJcbiAgaGFuZGxlQ2hlY2tib3hDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRDaGVja2VkKGNoZWNrZWQsIGZhbHNlKTtcclxuICAgIGlmICh0aGlzLmluaGVyaXRlZEV4cGFuZGVkRmlyc3RMZXZlbCAmJiBjaGVja2VkICYmICF0aGlzLmV4cGFuZGVkKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kU3ViKHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5kZXRlcm1pbmF0ZUNoZWNrZWRDaGFuZ2UoaW5kZXRlcm1pbmF0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbmRldGVybWluYXRlQ2hlY2tlZENoYW5nZS5lbWl0KGluZGV0ZXJtaW5hdGUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSXRlbUZvY3VzKHZhbHVlLCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICB0aGlzLmlzRm9jdXMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUl0ZW1Ib3Zlcih2YWx1ZSwgY29uZGl0aW9uPXRydWUpOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24pIHtcclxuICAgICAgdGhpcy5pc0hvdmVyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICBuZXh0RWxlbWVudDogJ3ByZXZpb3VzJyxcclxuICAgICAgICBjdXJyZW50SXRlbTogdGhpc1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUhvbWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGNvbmRpdGlvbj10cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMucXVpdEZvY3VzLmVtaXQoe1xyXG4gICAgICAgIG5leHRFbGVtZW50OiAnZmlyc3QnLFxyXG4gICAgICAgIGN1cnJlbnRJdGVtOiB0aGlzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW5kKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICBuZXh0RWxlbWVudDogJ2xhc3QnLFxyXG4gICAgICAgIGN1cnJlbnRJdGVtOiB0aGlzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQXJyb3dEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICBuZXh0RWxlbWVudDogJ25leHQnLFxyXG4gICAgICAgIGN1cnJlbnRJdGVtOiB0aGlzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQXJyb3dSaWdodChldmVudDogS2V5Ym9hcmRFdmVudCwgY29uZGl0aW9uPXRydWUpOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24gJiYgdGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3Q/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcclxuICAgICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICAgIG5leHRFbGVtZW50OiAnZmlyc3RDaGlsZCcsXHJcbiAgICAgICAgICBjdXJyZW50SXRlbTogdGhpc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3ViKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBcnJvd0xlZnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGNvbmRpdGlvbj10cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRTdWIoZmFsc2UpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3ViTGV2ZWwgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5xdWl0Rm9jdXMuZW1pdCh7XHJcbiAgICAgICAgICBuZXh0RWxlbWVudDogJ3BhcmVudCcsXHJcbiAgICAgICAgICBjdXJyZW50SXRlbTogdGhpc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBTZXR0ZXJzIGFuZCBnZXR0ZXJzXHJcbiAgICovXHJcblxyXG4gIHNldENoZWNrZWQoY2hlY2tlZDogYm9vbGVhbiwgaWdub3JlSW5UcmVlOiBib29sZWFuLCBlbWl0RXZlbnQgPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5jaGVja2VkID0gY2hlY2tlZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuaW5oZXJpdGVkRGVjb3VwbGVDaGlsZEZyb21QYXJlbnQgJiYgdGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3QgJiYgIXRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAoaXRlbSBhcyBUcmVlSXRlbUNvbXBvbmVudCkuc2V0SW5kZXRlcm1pbmF0ZUNoZWNrZWQoZmFsc2UpO1xyXG4gICAgICAgIChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXRDaGVja2VkKGNoZWNrZWQsIHRydWUpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbWl0RXZlbnQpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFpZ25vcmVJblRyZWUpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlRm9yVHJlZS5lbWl0KGNoZWNrZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SW5kZXRlcm1pbmF0ZUNoZWNrZWQoaW5kZXRlcm1pbmF0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrZWQgPSBpbmRldGVybWluYXRlO1xyXG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGVja2VkQ2hhbmdlLmVtaXQoaW5kZXRlcm1pbmF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdWJMZXZlbChzdWJMZXZlbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YkxldmVsID0gc3ViTGV2ZWw7XHJcbiAgICBpZiAodGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3QpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXRTdWJMZXZlbChzdWJMZXZlbCArIDEpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE9yZGVyUmVjdXJzaXZlbHkob3JkZXI6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICB0aGlzLm9yZGVySW5UcmVlID0gb3JkZXI7XHJcbiAgICBsZXQgbmV3T3JkZXIgPSBvcmRlciArIDE7XHJcbiAgICBpZiAodGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3QpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBuZXdPcmRlciA9IChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXRPcmRlclJlY3Vyc2l2ZWx5KG5ld09yZGVyKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3T3JkZXI7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0SWQoZGVmYXVsdElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdElkO1xyXG4gICAgdGhpcy5zZXREZWZhdWx0SWRSZWN1cnNpdmUoKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRJZFJlY3Vyc2l2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YiAmJiB0aGlzLnN1Yi5pdGVtTGlzdCkge1xyXG4gICAgICB0aGlzLnN1Yi5pdGVtTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXREZWZhdWx0SWQoYHN1Yi0ke3RoaXMuZ2V0SWQoKX0tJHtpbmRleH1gKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPyB0aGlzLmlkIDogdGhpcy5kZWZhdWx0SWQ7XHJcbiAgfVxyXG5cclxuICBpc0hpZGRlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pbmhlcml0ZWRNYXRjaGVzU2VhcmNoICYmICghdGhpcy5zdWIgfHwgdGhpcy5hcmVBbGxDaGlsZHJlbkhpZGRlbigpKTtcclxuICB9XHJcblxyXG4gIGFyZUFsbENoaWxkcmVuSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnN1Yi5pdGVtTGlzdDtcclxuICAgIHJldHVybiBjaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gIShjaGlsZCBhcyBUcmVlSXRlbUNvbXBvbmVudCkuaXNIaWRkZW4oKSkgPCAwO1xyXG4gIH1cclxuXHJcbiAgYXJlQWxsQ2hpbGRyZW5DaGVja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnN1Yi5pdGVtTGlzdDtcclxuICAgIHJldHVybiBjaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gIShjaGlsZCBhcyBUcmVlSXRlbUNvbXBvbmVudCkuY2hlY2tlZCkgPCAwO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW5DaGVja2VkT3JJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnN1Yi5pdGVtTGlzdDtcclxuICAgIHJldHVybiBjaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gKGNoaWxkIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5jaGVja2VkIHx8IChjaGlsZCBhcyBUcmVlSXRlbUNvbXBvbmVudCkuaW5kZXRlcm1pbmF0ZUNoZWNrZWQpID49IDA7XHJcbiAgfVxyXG5cclxuICBtYXRjaGVzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgbWF0Y2hlczogYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFsbFBhcmVudHNFeHBhbmRlZCAmJiAhdGhpcy5pc0hpZGRlbigpKSB7XHJcbiAgICAgIG1hdGNoZXMgPSB0aGlzLmNoZWNrYm94Py5tYXRjaGVzVGV4dCh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpdGVtVGV4dCA9IHRoaXMuaGlkZGVuV3JhcHBlci5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50O1xyXG4gICAgICBtYXRjaGVzID0gU2VhcmNoVXRpbHMuY29udGFpbnNBbnlXb3JkRnJvbShpdGVtVGV4dCwgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWF0Y2hlc1ZhbGlkVGV4dCA9IHZhbHVlID8gbWF0Y2hlcyA6IGZhbHNlO1xyXG4gICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgfVxyXG5cclxuICBnZXRLZXkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVJdGVtS2V5O1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFyZW50S2V5KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgcGFyZW50S2V5OiBzdHJpbmc7XHJcbiAgICBsZXQgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LnRhZ05hbWUgIT09ICdCT0RZJyAmJiBwYXJlbnRFbGVtZW50LnRhZ05hbWUgIT09ICdERVNZLVRSRUUtSVRFTScgJiYgcGFyZW50RWxlbWVudC50YWdOYW1lICE9PSAnREVTWS1UUkVFJykge1xyXG4gICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJlbnRFbGVtZW50LnRhZ05hbWUgPT09ICdCT0RZJykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmVudCBmb3IgdHJlZS1pdGVtIG5vdCBmb3VuZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJlbnRFbGVtZW50LnRhZ05hbWUgPT09ICdERVNZLVRSRUUnKSB7XHJcbiAgICAgIHBhcmVudEtleSA9ICdyb290JztcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyZW50RWxlbWVudC50YWdOYW1lID09PSAnREVTWS1UUkVFLUlURU0nKSB7XHJcbiAgICAgIHBhcmVudEtleSA9IHBhcmVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkZXN5LXRyZWUtaXRlbS1rZXknKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGFyZW50S2V5O1xyXG4gIH1cclxuXHJcbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUgfHwgdGhpcy5fbWF0Y2hlc1ZhbGlkVGV4dDtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogTcOpdG9kb3MgcHJpdmFkb3NcclxuICAgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhIHVuYSBjbGF2ZSDDum5pY2EgcGFyYSBlbCBjb21wb25lbnRlXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBnZW5lcmF0ZVN0YXRpY0l0ZW1LZXkoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGtleSA9ICd0cmVlLWl0ZW0ta2V5LScgKyBUcmVlSXRlbUNvbXBvbmVudC5fdHJlZUl0ZW1LZXlTdWZmaXg7XHJcbiAgICBUcmVlSXRlbUNvbXBvbmVudC5fdHJlZUl0ZW1LZXlTdWZmaXgrKztcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktZm9ybXMvY29tcG9uZW50cy90cmVlL3RyZWUtaXRlbS90cmVlLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQUUsVUFBVSxFQUMzQixZQUFZLEVBQ1osVUFBVSxFQUFFLFdBQVcsRUFDdkIsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDNUYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDckUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDL0YsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBWWxFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxzQkFBc0I7SUFvRTNELFlBQW9CLGNBQWlDLEVBQVUsT0FBbUI7UUFDaEYsS0FBSyxFQUFFLENBQUM7UUFEVSxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBbkR4RSxrQkFBYSxHQUFz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LGdCQUFnQixFQUFFOytDQUNpQztBQUduQjtJQURoQyxnQkFBZ0IsRUFBRTtnREFDb0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGRyZW4sIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtUcmVlU3ViQ29tcG9uZW50fSBmcm9tIFwiLi4vdHJlZS1zdWIvdHJlZS1zdWIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7SVRyZWVJdGVtfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9pdHJlZS1pdGVtXCI7XHJcbmltcG9ydCB7SGludENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2hpbnQvaGludC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtMYWJlbENvbXBvbmVudH0gZnJvbSBcIi4uLy4uL2xhYmVsL2xhYmVsLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1F1aXRUcmVlSXRlbUZvY3VzT3B0aW9uc30gZnJvbSBcIi4uL2ludGVyZmFjZXMvcXVpdC10cmVlLWl0ZW0tZm9jdXMtb3B0aW9uc1wiO1xyXG5pbXBvcnQge1RyZWVDaGVja2JveENvbXBvbmVudH0gZnJvbSBcIi4uL3RyZWUtY2hlY2tib3gvdHJlZS1jaGVja2JveC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtBY2Nlc3NpYmlsaXR5Q29tcG9uZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL2NvbXBvbmVudHNcIjtcclxuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge1NlYXJjaFV0aWxzfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2hhcmVkL3V0aWxzL3NlYXJjaC11dGlsc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LXRyZWUtaXRlbScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IElUcmVlSXRlbSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUl0ZW1Db21wb25lbnQpXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUl0ZW1Db21wb25lbnQgZXh0ZW5kcyBBY2Nlc3NpYmlsaXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBJVHJlZUl0ZW0ge1xyXG5cclxuICBwcml2YXRlIHN0YXRpYyBfdHJlZUl0ZW1LZXlTdWZmaXggPSAwOyAvLyBTdWZpam8gZXN0w6F0aWNvIHBhcmEgZ2VuZXJhciBzaWVtcHJlIGNsYXZlcyBkaXN0aW50YXNcclxuICBAVmlld0NoaWxkKCdoaWRkZW5XcmFwcGVyJykgaGlkZGVuV3JhcHBlcjogRWxlbWVudFJlZjtcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdzZXREZWZhdWx0SWRSZWN1cnNpdmUnKVxyXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHZhbHVlOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcclxuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGhhc0RpdmlkZXJzOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzSW5kZXRlcm1pbmF0ZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCkgY2hlY2tlZDogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgY2hlY2tlZENoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBjaGVja2VkQ2hhbmdlRm9yVHJlZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQElucHV0KCkgZXhwYW5kZWQ6IGJvb2xlYW47XHJcbiAgQE91dHB1dCgpIGV4cGFuZGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBASW5wdXQoKSBpbmRldGVybWluYXRlQ2hlY2tlZDogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgaW5kZXRlcm1pbmF0ZUNoZWNrZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZVN1YlZhbHVlcyd9KVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVHJlZVN1YkNvbXBvbmVudCkgc3ViOiBUcmVlU3ViQ29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihIaW50Q29tcG9uZW50KSBoaW50OiBIaW50Q29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCgpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihMYWJlbENvbXBvbmVudCkgbGFiZWw6IExhYmVsQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKFRyZWVDaGVja2JveENvbXBvbmVudCkgY2hlY2tib3g6IFRyZWVDaGVja2JveENvbXBvbmVudDtcclxuXHJcbiAgLypcclxuICAgKiBJZGVudGlmaWNhZG9yIGRlbCB3cmFwcGVyIGRlbCBjb21wb25lbnRlLiBTZSB1dGlsaXphIHBhcmEgcmVjb3JyZXIgZWwgw6FyYm9sIGVuIHNlbnRpZG8gaW52ZXJzbyB5IHF1ZSBjYWRhIGl0ZW1cclxuICAgKiBzZXBhIGN1w6FsIGVzIHN1IGl0ZW0vw6FyYm9sIHBhZHJlLlxyXG4gICAqIEVzdG8gZXMgbmVjZXNhcmlvIHlhIHF1ZSwgYSBsYSBob3JhIGRlIGNvbnN0cnVpciB1biDDoXJib2wgZGluw6FtaWNvIGNvbiB0ZW1wbGF0ZXMsXHJcbiAgICogZWwgZGVjb3JhZG9yIEBDb250ZW50Q2hpbGRyZW4gbm8gZnVuY2lvbmEgY29ycmVjdGFtZW50ZSB5IG5vIGxvcyBkZXRlY3RhLlxyXG4gICAqIERlam8gZWwgZW5sYWNlIGRlIHVuIHByb2JsZW1hIHNpbWlsYXI6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzIxNzUxXHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRlc3ktdHJlZS1pdGVtLWtleScpXHJcbiAgcmVhZG9ubHkgdHJlZUl0ZW1LZXk6IHN0cmluZyA9IFRyZWVJdGVtQ29tcG9uZW50LmdlbmVyYXRlU3RhdGljSXRlbUtleSgpO1xyXG5cclxuICB0eXBlOiAncmFkaW8nfCdjaGVja2JveCd8bnVsbHx1bmRlZmluZWQ7XHJcbiAgc3ViTGV2ZWw6IG51bWJlcjsgLy8gTml2ZWwgZGVudHJvIGRlbCBhcmJvbC4gMCBzb24gbG9zIGl0ZW1zIGEgbml2ZWwgZGUgcmFpei5cclxuXHJcbiAgLy8gUHJvcGllZGFkZXMgZGVmaW5pZGFzIHBvciBlbCBjb21wb25lbnRlIMOhcmJvbCBxdWUgZWwgaXRlbSBwdWVkZSB1dGlsaXphciwgc29icmVzY3JpYmlyIG8gYW1wbGlhclxyXG4gIHBhcmVudE5hbWU6IHN0cmluZztcclxuICBkZWZhdWx0SWQ7XHJcbiAgaW5oZXJpdGVkRXhwYW5kZWRGaXJzdExldmVsOiBib29sZWFuO1xyXG4gIGluaGVyaXRlZERlY291cGxlQ2hpbGRGcm9tUGFyZW50OiBib29sZWFuO1xyXG4gIGluaGVyaXRlZERlc2NyaWJlZEJ5OiBzdHJpbmc7XHJcbiAgaW5oZXJpdGVkSGFzRXJyb3I6IGJvb2xlYW47XHJcbiAgYWxsUGFyZW50c0V4cGFuZGVkID0gdHJ1ZTsgLy8gVHJ1ZSBzaSBlbCBlbGVtZW50byBlcyB2aXNpYmxlIHNlZ8O6biBsb3MgZWxlbWVudG9zIGV4cGFuZGlkb3NcclxuICBpbmhlcml0ZWRNYXRjaGVzU2VhcmNoID0gdHJ1ZTsgLy8gVHJ1ZSBzaSBlbCBlbGVtZW50byBlcyB2aXNpYmxlIHNlZ8O6biBsb3MgY3JpdGVyaW9zIGRlIGLDunNxdWVkYVxyXG4gIG9yZGVySW5UcmVlOiBudW1iZXI7XHJcblxyXG4gIC8vIEV2ZW50byBwYXJhIGVtaXRpciBhbCBjb21wb25lbnRlIGFyYm9sIGN1YW5kbyBzZSBwcmV0ZW5kZSBhYmFuZG9uYXIgZWwgZm9jbyBkZWwgaXRlbVxyXG4gIHF1aXRGb2N1czogRXZlbnRFbWl0dGVyPFF1aXRUcmVlSXRlbUZvY3VzT3B0aW9ucz4gPSBuZXcgRXZlbnRFbWl0dGVyPFF1aXRUcmVlSXRlbUZvY3VzT3B0aW9ucz4oKTtcclxuXHJcbiAgaXNGb2N1cyA9IGZhbHNlO1xyXG4gIGlzSG92ZXIgPSBmYWxzZTtcclxuICBwcml2YXRlIF9tYXRjaGVzVmFsaWRUZXh0ID0gZmFsc2U7IC8vIFRydWUgc2kgZWwgY29udGVuaWRvIGRlbCBpdGVtIGVuY2FqYSBjb24gbG9zIGNyaXRlcmlvcyBkZSBiw7pzcXVlZGEgeSBzZSBlc3TDoSBmaWx0cmFuZG9cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YiAmJiB0aGlzLnN1Yi5pdGVtTGlzdCkge1xyXG4gICAgICB0aGlzLnN1Yi5pdGVtTGlzdC5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0gYXMgVHJlZUl0ZW1Db21wb25lbnQpLnJlZnJlc2hBbGxQYXJlbnRzRXhwYW5kZWRSZWN1cnNpdmUodGhpcy5hbGxQYXJlbnRzRXhwYW5kZWQgJiYgdGhpcy5leHBhbmRlZCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGZvciAoY29uc3QgcHJvcE5hbWUgaW4gY2hhbmdlcykge1xyXG4gICAgICBpZiAoY2hhbmdlcy5oYXNPd25Qcm9wZXJ0eShwcm9wTmFtZSkpIHtcclxuICAgICAgICBzd2l0Y2ggKHByb3BOYW1lKSB7XHJcbiAgICAgICAgICBjYXNlICdjaGVja2VkJzoge1xyXG4gICAgICAgICAgICAvLyBSZWFzaWduYW1vcyBlbCB2YWxvciBkZSBjaGVja2VkIGN1YW5kbyBkZXRlY3RhbW9zIGVsIGNhbWJpbyBlbiBsYSBlbnRyYWRhXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0Q2hlY2tlZCh0aGlzLmNoZWNrZWQsIGZhbHNlLCBmYWxzZSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaW5oZXJpdGVkRXhwYW5kZWRGaXJzdExldmVsICYmIHRoaXMuY2hlY2tlZCAmJiAhdGhpcy5leHBhbmRlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leHBhbmRTdWIodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIE3DqXRvZG9zIGV4cHVlc3RvcyBxdWUgcGVybWl0ZW4gY29uZmlndXJhciBhbCDDrXRlbSBkZSBmb3JtYSBleHRlcm5hXHJcbiAgICovXHJcblxyXG4gIGZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jaGVja2JveD8uZm9jdXMoKTtcclxuICAgIHRoaXMuaGFuZGxlSXRlbUZvY3VzKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3ViKSB7XHJcbiAgICAgIHRoaXMuc3ViLml0ZW1MaXN0LmZvckVhY2goaXRlbSA9PiAoaXRlbSBhcyBUcmVlSXRlbUNvbXBvbmVudCkuc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCkpO1xyXG4gICAgICBpZiAodGhpcy5hcmVBbGxDaGlsZHJlbkNoZWNrZWQoKSkge1xyXG4gICAgICAgIGlmICh0aGlzLmluZGV0ZXJtaW5hdGVDaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldEluZGV0ZXJtaW5hdGVDaGVja2VkKGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5jaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENoZWNrZWQodHJ1ZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzQ2hpbGRyZW5DaGVja2VkT3JJbmRldGVybWluYXRlKCkpIHtcclxuICAgICAgICBpZiAoIXRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrZWQpIHtcclxuICAgICAgICAgIHRoaXMuc2V0SW5kZXRlcm1pbmF0ZUNoZWNrZWQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENoZWNrZWQoZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAodGhpcy5pbmRldGVybWluYXRlQ2hlY2tlZCkge1xyXG4gICAgICAgICAgdGhpcy5zZXRJbmRldGVybWluYXRlQ2hlY2tlZChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5jaGVja2VkKSB7XHJcbiAgICAgICAgICB0aGlzLnNldENoZWNrZWQoZmFsc2UsIHRydWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVmcmVzaEFsbFBhcmVudHNFeHBhbmRlZFJlY3Vyc2l2ZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGxQYXJlbnRzRXhwYW5kZWQgPSB2YWx1ZTtcclxuICAgIGlmICh0aGlzLnN1Yikge1xyXG4gICAgICB0aGlzLnN1Yi5pdGVtTGlzdC5mb3JFYWNoKGl0ZW0gPT4gKGl0ZW0gYXMgVHJlZUl0ZW1Db21wb25lbnQpLnJlZnJlc2hBbGxQYXJlbnRzRXhwYW5kZWRSZWN1cnNpdmUodmFsdWUgJiYgdGhpcy5leHBhbmRlZCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgZXhwYW5kU3ViKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gdmFsdWU7XHJcbiAgICBpZiAodGhpcy5zdWIpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5yZWZyZXNoQWxsUGFyZW50c0V4cGFuZGVkUmVjdXJzaXZlKHRoaXMuYWxsUGFyZW50c0V4cGFuZGVkICYmIHZhbHVlKSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBHZXN0aW9uIGRlIGV2ZW50b3NcclxuICAgKi9cclxuXHJcbiAgaGFuZGxlQ2hlY2tib3hDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRDaGVja2VkKGNoZWNrZWQsIGZhbHNlKTtcclxuICAgIGlmICh0aGlzLmluaGVyaXRlZEV4cGFuZGVkRmlyc3RMZXZlbCAmJiBjaGVja2VkICYmICF0aGlzLmV4cGFuZGVkKSB7XHJcbiAgICAgIHRoaXMuZXhwYW5kU3ViKHRydWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlSW5kZXRlcm1pbmF0ZUNoZWNrZWRDaGFuZ2UoaW5kZXRlcm1pbmF0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pbmRldGVybWluYXRlQ2hlY2tlZENoYW5nZS5lbWl0KGluZGV0ZXJtaW5hdGUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlSXRlbUZvY3VzKHZhbHVlLCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICB0aGlzLmlzRm9jdXMgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUl0ZW1Ib3Zlcih2YWx1ZSwgY29uZGl0aW9uPXRydWUpOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24pIHtcclxuICAgICAgdGhpcy5pc0hvdmVyID0gdmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBcnJvd1VwKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICBuZXh0RWxlbWVudDogJ3ByZXZpb3VzJyxcclxuICAgICAgICBjdXJyZW50SXRlbTogdGhpc1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUhvbWUoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGNvbmRpdGlvbj10cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIHRoaXMucXVpdEZvY3VzLmVtaXQoe1xyXG4gICAgICAgIG5leHRFbGVtZW50OiAnZmlyc3QnLFxyXG4gICAgICAgIGN1cnJlbnRJdGVtOiB0aGlzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRW5kKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICBuZXh0RWxlbWVudDogJ2xhc3QnLFxyXG4gICAgICAgIGN1cnJlbnRJdGVtOiB0aGlzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQXJyb3dEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjb25kaXRpb249dHJ1ZSk6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICBuZXh0RWxlbWVudDogJ25leHQnLFxyXG4gICAgICAgIGN1cnJlbnRJdGVtOiB0aGlzXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQXJyb3dSaWdodChldmVudDogS2V5Ym9hcmRFdmVudCwgY29uZGl0aW9uPXRydWUpOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24gJiYgdGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3Q/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcclxuICAgICAgICB0aGlzLnF1aXRGb2N1cy5lbWl0KHtcclxuICAgICAgICAgIG5leHRFbGVtZW50OiAnZmlyc3RDaGlsZCcsXHJcbiAgICAgICAgICBjdXJyZW50SXRlbTogdGhpc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZXhwYW5kU3ViKHRydWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBcnJvd0xlZnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGNvbmRpdGlvbj10cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoY29uZGl0aW9uKSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XHJcbiAgICAgICAgdGhpcy5leHBhbmRTdWIoZmFsc2UpO1xyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMuc3ViTGV2ZWwgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5xdWl0Rm9jdXMuZW1pdCh7XHJcbiAgICAgICAgICBuZXh0RWxlbWVudDogJ3BhcmVudCcsXHJcbiAgICAgICAgICBjdXJyZW50SXRlbTogdGhpc1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLypcclxuICAgKiBTZXR0ZXJzIGFuZCBnZXR0ZXJzXHJcbiAgICovXHJcblxyXG4gIHNldENoZWNrZWQoY2hlY2tlZDogYm9vbGVhbiwgaWdub3JlSW5UcmVlOiBib29sZWFuLCBlbWl0RXZlbnQgPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5jaGVja2VkID0gY2hlY2tlZDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIXRoaXMuaW5oZXJpdGVkRGVjb3VwbGVDaGlsZEZyb21QYXJlbnQgJiYgdGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3QgJiYgIXRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrZWQpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAoaXRlbSBhcyBUcmVlSXRlbUNvbXBvbmVudCkuc2V0SW5kZXRlcm1pbmF0ZUNoZWNrZWQoZmFsc2UpO1xyXG4gICAgICAgIChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXRDaGVja2VkKGNoZWNrZWQsIHRydWUpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChlbWl0RXZlbnQpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQoY2hlY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKCFpZ25vcmVJblRyZWUpIHtcclxuICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlRm9yVHJlZS5lbWl0KGNoZWNrZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SW5kZXRlcm1pbmF0ZUNoZWNrZWQoaW5kZXRlcm1pbmF0ZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuaW5kZXRlcm1pbmF0ZUNoZWNrZWQgPSBpbmRldGVybWluYXRlO1xyXG4gICAgICB0aGlzLmluZGV0ZXJtaW5hdGVDaGVja2VkQ2hhbmdlLmVtaXQoaW5kZXRlcm1pbmF0ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRTdWJMZXZlbChzdWJMZXZlbDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YkxldmVsID0gc3ViTGV2ZWw7XHJcbiAgICBpZiAodGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3QpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXRTdWJMZXZlbChzdWJMZXZlbCArIDEpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE9yZGVyUmVjdXJzaXZlbHkob3JkZXI6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICB0aGlzLm9yZGVySW5UcmVlID0gb3JkZXI7XHJcbiAgICBsZXQgbmV3T3JkZXIgPSBvcmRlciArIDE7XHJcbiAgICBpZiAodGhpcy5zdWIgJiYgdGhpcy5zdWIuaXRlbUxpc3QpIHtcclxuICAgICAgdGhpcy5zdWIuaXRlbUxpc3QuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBuZXdPcmRlciA9IChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXRPcmRlclJlY3Vyc2l2ZWx5KG5ld09yZGVyKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3T3JkZXI7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0SWQoZGVmYXVsdElkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVmYXVsdElkID0gZGVmYXVsdElkO1xyXG4gICAgdGhpcy5zZXREZWZhdWx0SWRSZWN1cnNpdmUoKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHRJZFJlY3Vyc2l2ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN1YiAmJiB0aGlzLnN1Yi5pdGVtTGlzdCkge1xyXG4gICAgICB0aGlzLnN1Yi5pdGVtTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgIChpdGVtIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5zZXREZWZhdWx0SWQoYHN1Yi0ke3RoaXMuZ2V0SWQoKX0tJHtpbmRleH1gKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaWQgPyB0aGlzLmlkIDogdGhpcy5kZWZhdWx0SWQ7XHJcbiAgfVxyXG5cclxuICBpc0hpZGRlbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5pbmhlcml0ZWRNYXRjaGVzU2VhcmNoICYmICghdGhpcy5zdWIgfHwgdGhpcy5hcmVBbGxDaGlsZHJlbkhpZGRlbigpKTtcclxuICB9XHJcblxyXG4gIGFyZUFsbENoaWxkcmVuSGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnN1Yi5pdGVtTGlzdDtcclxuICAgIHJldHVybiBjaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gIShjaGlsZCBhcyBUcmVlSXRlbUNvbXBvbmVudCkuaXNIaWRkZW4oKSkgPCAwO1xyXG4gIH1cclxuXHJcbiAgYXJlQWxsQ2hpbGRyZW5DaGVja2VkKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnN1Yi5pdGVtTGlzdDtcclxuICAgIHJldHVybiBjaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gIShjaGlsZCBhcyBUcmVlSXRlbUNvbXBvbmVudCkuY2hlY2tlZCkgPCAwO1xyXG4gIH1cclxuXHJcbiAgaGFzQ2hpbGRyZW5DaGVja2VkT3JJbmRldGVybWluYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgY2hpbGRyZW4gPSB0aGlzLnN1Yi5pdGVtTGlzdDtcclxuICAgIHJldHVybiBjaGlsZHJlbi5maW5kSW5kZXgoY2hpbGQgPT4gKGNoaWxkIGFzIFRyZWVJdGVtQ29tcG9uZW50KS5jaGVja2VkIHx8IChjaGlsZCBhcyBUcmVlSXRlbUNvbXBvbmVudCkuaW5kZXRlcm1pbmF0ZUNoZWNrZWQpID49IDA7XHJcbiAgfVxyXG5cclxuICBtYXRjaGVzVGV4dCh2YWx1ZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBsZXQgbWF0Y2hlczogYm9vbGVhbjtcclxuICAgIGlmICh0aGlzLmFsbFBhcmVudHNFeHBhbmRlZCAmJiAhdGhpcy5pc0hpZGRlbigpKSB7XHJcbiAgICAgIG1hdGNoZXMgPSB0aGlzLmNoZWNrYm94Py5tYXRjaGVzVGV4dCh2YWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBpdGVtVGV4dCA9IHRoaXMuaGlkZGVuV3JhcHBlci5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50O1xyXG4gICAgICBtYXRjaGVzID0gU2VhcmNoVXRpbHMuY29udGFpbnNBbnlXb3JkRnJvbShpdGVtVGV4dCwgdmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fbWF0Y2hlc1ZhbGlkVGV4dCA9IHZhbHVlID8gbWF0Y2hlcyA6IGZhbHNlO1xyXG4gICAgcmV0dXJuIG1hdGNoZXM7XHJcbiAgfVxyXG5cclxuICBnZXRLZXkoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnRyZWVJdGVtS2V5O1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFyZW50S2V5KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgcGFyZW50S2V5OiBzdHJpbmc7XHJcbiAgICBsZXQgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XHJcbiAgICB3aGlsZSAocGFyZW50RWxlbWVudCAmJiBwYXJlbnRFbGVtZW50LnRhZ05hbWUgIT09ICdCT0RZJyAmJiBwYXJlbnRFbGVtZW50LnRhZ05hbWUgIT09ICdERVNZLVRSRUUtSVRFTScgJiYgcGFyZW50RWxlbWVudC50YWdOYW1lICE9PSAnREVTWS1UUkVFJykge1xyXG4gICAgICBwYXJlbnRFbGVtZW50ID0gcGFyZW50RWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJlbnRFbGVtZW50LnRhZ05hbWUgPT09ICdCT0RZJykge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1BhcmVudCBmb3IgdHJlZS1pdGVtIG5vdCBmb3VuZCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChwYXJlbnRFbGVtZW50LnRhZ05hbWUgPT09ICdERVNZLVRSRUUnKSB7XHJcbiAgICAgIHBhcmVudEtleSA9ICdyb290JztcclxuICAgIH1cclxuXHJcbiAgICBpZiAocGFyZW50RWxlbWVudC50YWdOYW1lID09PSAnREVTWS1UUkVFLUlURU0nKSB7XHJcbiAgICAgIHBhcmVudEtleSA9IHBhcmVudEVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkZXN5LXRyZWUtaXRlbS1rZXknKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcGFyZW50S2V5O1xyXG4gIH1cclxuXHJcbiAgaXNBY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmUgfHwgdGhpcy5fbWF0Y2hlc1ZhbGlkVGV4dDtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogTcOpdG9kb3MgcHJpdmFkb3NcclxuICAgKi9cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhIHVuYSBjbGF2ZSDDum5pY2EgcGFyYSBlbCBjb21wb25lbnRlXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHN0YXRpYyBnZW5lcmF0ZVN0YXRpY0l0ZW1LZXkoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGtleSA9ICd0cmVlLWl0ZW0ta2V5LScgKyBUcmVlSXRlbUNvbXBvbmVudC5fdHJlZUl0ZW1LZXlTdWZmaXg7XHJcbiAgICBUcmVlSXRlbUNvbXBvbmVudC5fdHJlZUl0ZW1LZXlTdWZmaXgrKztcclxuICAgIHJldHVybiBrZXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -363,7 +363,7 @@ export class TreeComponent extends FormFieldComponent {
363
363
  TreeComponent.decorators = [
364
364
  { type: Component, args: [{
365
365
  selector: 'desy-tree',
366
- template: "\r\n<ng-template #innerHtml>\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n <ng-content select=\"desy-search-bar\"></ng-content>\r\n <ul [class]=\"['c-tree', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : 'tree'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-content></ng-content>\r\n </ul>\r\n</ng-template>\r\n\r\n<!-- tree -->\r\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\r\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n</div>\r\n",
366
+ template: "\r\n<ng-template #innerHtml>\r\n <ng-content select=\"desy-hint\"></ng-content>\r\n <ng-content select=\"desy-error-message\"></ng-content>\r\n <ng-content select=\"desy-search-bar\"></ng-content>\r\n <ul [class]=\"['c-tree', classes] | makeHtmlList\"\r\n [attr.role]=\"role ? role : 'tree'\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\"\r\n [attr.tabindex]=\"tabindex ? tabindex : null\">\r\n <ng-content></ng-content>\r\n </ul>\r\n</ng-template>\r\n\r\n<!-- tree -->\r\n<div [class]=\"['c-form-group', formGroupClasses] | makeHtmlList\"\r\n [ngClass]=\"{'c-form-group--error': (hasErrorsMessage() || formGroupClasses === 'c-form-group--error') }\">\r\n <ng-container *ngIf=\"hasFieldsetComponent(); else innerHtml\">\r\n <ng-content select=\"desy-fieldset\"></ng-content>\r\n </ng-container>\r\n</div>",
367
367
  providers: [
368
368
  {
369
369
  provide: NG_VALUE_ACCESSOR,
@@ -379,10 +379,10 @@ TreeComponent.ctorParameters = () => [
379
379
  TreeComponent.propDecorators = {
380
380
  idPrefix: [{ type: Input }],
381
381
  classes: [{ type: Input }],
382
- formGroupClasses: [{ type: Input }],
383
382
  name: [{ type: Input }],
384
383
  type: [{ type: Input }],
385
384
  describedBy: [{ type: Input }],
385
+ formGroupClasses: [{ type: Input }],
386
386
  expandedFirstLevel: [{ type: Input }],
387
387
  decoupleChildFromParent: [{ type: Input }],
388
388
  disableDefaultSearch: [{ type: Input }],
@@ -405,4 +405,4 @@ __decorate([
405
405
  __decorate([
406
406
  DesyContentChild({ onSetCallbackName: 'overrideSearchBarParams' })
407
407
  ], TreeComponent.prototype, "searchBarComponent", void 0);
408
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUFFLFlBQVksRUFDN0IsVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ3NCLFNBQVMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFhdEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBeUI7SUFvQzFELFlBQW9CLGNBQWlDO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBM0I1Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUk1Qiw0QkFBdUIsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQWFqRixjQUFTLEdBQXdCLEVBQUUsQ0FBQztRQUdwQyxrQ0FBNkIsR0FBbUIsRUFBRSxDQUFD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QUFXLEVBQUUsSUFBSSxFQUFFO2dDQUd4RCxlQUFlLFNBQUMsaUJBQWlCO2lDQUdqQyxlQUFlLFNBQUMsa0JBQWtCO3dCQUVsQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7QUFaL0I7SUFEUixpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQzt3REFDVjtBQUlzQjtJQUQxRCxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQzsrQ0FDMkQ7QUFHOUQ7SUFEbkMsZ0JBQWdCLENBQUMsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBQyxDQUFDO3dEQUNRO0FBR3BDO0lBRHBDLGdCQUFnQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUMsQ0FBQzt5REFDVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtUcmVlSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4vdHJlZS1pdGVtL3RyZWUtaXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtGb3JtRmllbGRDb21wb25lbnR9IGZyb20gXCIuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zfSBmcm9tIFwiLi9pbnRlcmZhY2VzL3F1aXQtdHJlZS1pdGVtLWZvY3VzLW9wdGlvbnNcIjtcclxuaW1wb3J0IHtTZWFyY2hCYXJDb21wb25lbnR9IGZyb20gXCIuLi9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnlbXT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGZvcm1Hcm91cENsYXNzZXM6IHN0cmluZztcclxuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdHlwZTogJ3JhZGlvJ3wnY2hlY2tib3gnfG51bGx8dW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRlc2NyaWJlZEJ5OiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIGV4cGFuZGVkRmlyc3RMZXZlbCA9IHRydWU7XHJcbiAgQElucHV0KCkgZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZURlZmF1bHRTZWFyY2ggPSBmYWxzZTtcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdvblNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlJylcclxuICBASW5wdXQoKSBzZWFyY2hNYXRjaFZhbHVlczogc3RyaW5nW107XHJcbiAgQE91dHB1dCgpIHNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuXHJcbiAgQERlc3lPbklucHV0Q2hhbmdlKCdjb25maWd1cmVBbGxJdGVtcycpXHJcbiAgQENvbnRlbnRDaGlsZHJlbihUcmVlSXRlbUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBhbGxJdGVtczogUXVlcnlMaXN0PFRyZWVJdGVtQ29tcG9uZW50PjtcclxuXHJcbiAgQERlc3lDb250ZW50Q2hpbGQoeyBvblNldENhbGxiYWNrTmFtZTogJ292ZXJyaWRlRmllbGRzZXRQYXJhbXMnfSlcclxuICBAQ29udGVudENoaWxkcmVuKEZpZWxkc2V0Q29tcG9uZW50KSBmaWVsZHNldENvbXBvbmVudDogRmllbGRzZXRDb21wb25lbnQ7XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZVNlYXJjaEJhclBhcmFtcyd9KVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oU2VhcmNoQmFyQ29tcG9uZW50KSBzZWFyY2hCYXJDb21wb25lbnQ6IFNlYXJjaEJhckNvbXBvbmVudDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5uZXJIdG1sJywgeyBzdGF0aWM6IHRydWUgfSkgaW5uZXJIdG1sOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICBwcml2YXRlIHJvb3RJdGVtczogVHJlZUl0ZW1Db21wb25lbnRbXSA9IFtdO1xyXG4gIHByaXZhdGUgX2l0ZW1MaXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfYWxsSXRlbUxpc3RTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIF9pdGVtTGlzdENoZWNrZWRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIHByaXZhdGUgX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IGZhbHNlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbnModGhpcy5faXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9ucyk7XHJcbiAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9ucyh0aGlzLl9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnMpO1xyXG4gICAgdGhpcy5faXRlbUxpc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLl9hbGxJdGVtTGlzdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlndXJlQWxsSXRlbXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIHNvYnJlc2NyaWJlIGVsIHZhbG9yIHBhcmEgYWN0dWFsaXphciBsb3MgaXRlbXNcclxuICAgKiBAT3ZlcnJpZGVcclxuICAgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY29uZmlndXJlQWxsSXRlbXModHJ1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBFdmVudG9zXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIEFjdHVhbGl6YSBlbCB2YWxvciBkZWwgY29tcG9uZW50ZSBhbCBjaGVja3F1ZWFyc2UgdW4gw610ZW1cclxuICAgKiBAcGFyYW0gb3JpZ2luSXRlbSDDrXRlbSBtb2RpZmljYWRvXHJcbiAgICovXHJcbiAgdXBkYXRlVmFsdWVGcm9tSXRlbXMob3JpZ2luSXRlbT86IFRyZWVJdGVtQ29tcG9uZW50KTogdm9pZCB7XHJcblxyXG4gICAgLy8gU2kgZXMgcmFkaW8sIHNlIGRlc2FjdGl2YW4gZWwgcmVzdG8gZGUgaXRlbXMgY3VhbmRvIHNlIGFjdGl2YSBvdHJvIGl0ZW1cclxuICAgIGlmICh0aGlzLnR5cGUgIT09ICdjaGVja2JveCcpIHtcclxuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xyXG4gICAgICBpdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGlmIChpdGVtICE9PSBvcmlnaW5JdGVtICYmIGl0ZW0uY2hlY2tlZCkge1xyXG4gICAgICAgICAgaXRlbS5zZXRDaGVja2VkKGZhbHNlLCB0cnVlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmICghdGhpcy5kZWNvdXBsZUNoaWxkRnJvbVBhcmVudCkge1xyXG4gICAgICB0aGlzLnJvb3RJdGVtcy5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5zZXRDaGVja2VkQXV0b21hdGljYWxseURlcGVuZGluZ09uQ2hpbGRyZW4oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy52YWx1ZSA9IFtdO1xyXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xyXG4gICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgaWYgKGl0ZW0uY2hlY2tlZCkge1xyXG4gICAgICAgIHRoaXMudmFsdWUucHVzaChpdGVtLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VzdGlvbmEgY3VhbmRvIGVsIGZvY28gYWJhbmRvbmEgdW4gw610ZW0gZGVzZGUgdW4gZXZlbnRvIGRlIHRlY2xhZG8gY29udHJvbGFkb1xyXG4gICAqIEBwYXJhbSBvcHRpb25zXHJcbiAgICovXHJcbiAgaGFuZGxlSXRlbVF1aXRGb2N1cyhvcHRpb25zOiBRdWl0VHJlZUl0ZW1Gb2N1c09wdGlvbnMpOiB2b2lkIHtcclxuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubmV4dEVsZW1lbnQpIHtcclxuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLmdldEFsbEl0ZW1zSW5PcmRlcigpO1xyXG4gICAgICBjb25zdCBmb2N1c2FibGVJdGVtcyA9IGl0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmlzSGlkZGVuKCkgJiYgIWl0ZW0uZGlzYWJsZWQgJiYgaXRlbS5hbGxQYXJlbnRzRXhwYW5kZWQpO1xyXG4gICAgICBzd2l0Y2ggKG9wdGlvbnMubmV4dEVsZW1lbnQpIHtcclxuICAgICAgICBjYXNlIFwiZmlyc3RcIjpcclxuICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zWzBdLmZvY3VzKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwibGFzdFwiOlxyXG4gICAgICAgICAgZm9jdXNhYmxlSXRlbXNbZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMV0uZm9jdXMoKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJwYXJlbnRcIjpcclxuICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdWJMZXZlbCA9IG9wdGlvbnMuY3VycmVudEl0ZW0uc3ViTGV2ZWw7XHJcbiAgICAgICAgICBpZiAoY3VycmVudFN1YkxldmVsID4gMCkge1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50SXRlbUluZGV4ID0gZm9jdXNhYmxlSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gb3B0aW9ucy5jdXJyZW50SXRlbSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGZvY3VzYWJsZUl0ZW1zLnNsaWNlKDAsIGN1cnJlbnRJdGVtSW5kZXgpLnJldmVyc2UoKS5maW5kKGl0ZW0gPT4gaXRlbS5zdWJMZXZlbCA8IGN1cnJlbnRTdWJMZXZlbCk7XHJcbiAgICAgICAgICAgIGlmIChwYXJlbnQpIHtcclxuICAgICAgICAgICAgICBwYXJlbnQuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImZpcnN0Q2hpbGRcIjpcclxuICAgICAgICBjYXNlIFwibmV4dFwiOlxyXG4gICAgICAgICAgaWYgKG9wdGlvbnMuY3VycmVudEl0ZW0pIHtcclxuICAgICAgICAgICAgbGV0IGN1cnJlbnRJdGVtSW5kZXggPSBmb2N1c2FibGVJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBvcHRpb25zLmN1cnJlbnRJdGVtKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtSW5kZXggPCBmb2N1c2FibGVJdGVtcy5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgZm9jdXNhYmxlSXRlbXNbY3VycmVudEl0ZW1JbmRleCArIDFdLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJwcmV2aW91c1wiOlxyXG4gICAgICAgICAgaWYgKG9wdGlvbnMuY3VycmVudEl0ZW0pIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW1JbmRleCA9IGZvY3VzYWJsZUl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IG9wdGlvbnMuY3VycmVudEl0ZW0pO1xyXG4gICAgICAgICAgICBpZiAoY3VycmVudEl0ZW1JbmRleCA+IDApIHtcclxuICAgICAgICAgICAgICBmb2N1c2FibGVJdGVtc1tjdXJyZW50SXRlbUluZGV4IC0gMV0uZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlYWxpemEgbGEgYsO6c3F1ZWRhIGludGVybmEgZGUgbG9zIGl0ZW1zIGVuIGVsIGNvbXBvbmVudGVcclxuICAgKiBAcGFyYW0gdmFsdWUgdGV4dG8gZGUgYsO6c3F1ZWRhXHJcbiAgICovXHJcbiAgb25TZWFyY2godmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVEZWZhdWx0U2VhcmNoKSB7XHJcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hNYXRjaFZhbHVlcyA9IHRoaXMuYWxsSXRlbXMuZmlsdGVyKGl0ZW0gPT4gaXRlbS5tYXRjaGVzVGV4dCh2YWx1ZSkpLm1hcChpdGVtID0+IGl0ZW0udmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UuZW1pdCh0aGlzLnNlYXJjaE1hdGNoVmFsdWVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRXZlbnRvcyBhbCBjYW1iaWFyIHByb3BpZWRhZGVzXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYSBsb3MgaXRlbXMgZGVsIMOhcmJvbFxyXG4gICAqL1xyXG4gIGNvbmZpZ3VyZUFsbEl0ZW1zKGlzVmFsdWVDaGFuZ2UgPSBmYWxzZSk6IHZvaWQge1xyXG5cclxuICAgIGlmICghdGhpcy5fYWxyZWFkeUNvbmZpZ3VyaW5nSXRlbXMpIHtcclxuICAgICAgdGhpcy5fYWxyZWFkeUNvbmZpZ3VyaW5nSXRlbXMgPSB0cnVlO1xyXG5cclxuICAgICAgLy8gTG8gcmVhbGl6YW1vcyBkZXNkZSB1biBzZXRUaW1lb3V0IHBhcmEgcXVlIHRvZG9zIGxvcyBpbnB1dHMsIHZhbHVlcyB5IGRlbcOhcyB2aXZhbiBlbiBwYXogeSBhcm1vbsOtYVxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5hbGxJdGVtcz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbnModGhpcy5faXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9ucyk7XHJcbiAgICAgICAgICB0aGlzLmNsZWFyU3Vic2NyaXB0aW9ucyh0aGlzLl9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnMpO1xyXG4gICAgICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICBpdGVtLnBhcmVudE5hbWUgPSB0aGlzLm5hbWU7XHJcbiAgICAgICAgICAgIGl0ZW0udHlwZSA9IHRoaXMudHlwZTtcclxuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWREZXNjcmliZWRCeSA9IHRoaXMuZ2V0RGVzY3JpYmVkQnlGb3JJdGVtcygpO1xyXG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZEV4cGFuZGVkRmlyc3RMZXZlbCA9IHRoaXMuZXhwYW5kZWRGaXJzdExldmVsO1xyXG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZERlY291cGxlQ2hpbGRGcm9tUGFyZW50ID0gdGhpcy5kZWNvdXBsZUNoaWxkRnJvbVBhcmVudDtcclxuICAgICAgICAgICAgaWYgKCh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMCkgfHwgaXNWYWx1ZUNoYW5nZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlTGlzdCA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlIDogW107XHJcbiAgICAgICAgICAgICAgaXRlbS5zZXRDaGVja2VkKCEhdmFsdWVMaXN0LmZpbmQodiA9PiB2ID09PSBpdGVtLnZhbHVlKSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaXRlbS5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBjaGVja2VkU3Vic2NyaXB0aW9uID0gaXRlbS5jaGVja2VkQ2hhbmdlRm9yVHJlZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVWYWx1ZUZyb21JdGVtcyhpdGVtKSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMucHVzaChjaGVja2VkU3Vic2NyaXB0aW9uKTtcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHF1aXRGb2N1c1N1YnNjcmlwdGlvbiA9IGl0ZW0ucXVpdEZvY3VzLnN1YnNjcmliZShvcHRpb25zID0+IHRoaXMuaGFuZGxlSXRlbVF1aXRGb2N1cyhvcHRpb25zKSk7XHJcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1MaXN0UXVpdEZvY3VzU3Vic2NyaXB0aW9ucy5wdXNoKHF1aXRGb2N1c1N1YnNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB0aGlzLnNldEVycm9ySW5JdGVtcyh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpKTtcclxuXHJcbiAgICAgICAgICB0aGlzLmJ1aWxkVHJlZSgpO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVGcm9tSXRlbXMoKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5zZWFyY2hNYXRjaFZhbHVlcykge1xyXG4gICAgICAgICAgICB0aGlzLm9uU2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFsbEl0ZW1zICYmICF0aGlzLl9hbGxJdGVtTGlzdFN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24gPSB0aGlzLmFsbEl0ZW1zLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHRoaXMuY29uZmlndXJlQWxsSXRlbXMoKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLl9hbHJlYWR5Q29uZmlndXJpbmdJdGVtcyA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1vZGlmaWNhIGxvcyBpdGVtcyB2aXNpYmxlcyBzZWfDum4gZWwgZmlsdHJvIGRlIGLDunNxdWVkYVxyXG4gICAqL1xyXG4gIG9uU2VhcmNoTWF0Y2hWYWx1ZXNDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbGxJdGVtcykge1xyXG4gICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgaXRlbS5pbmhlcml0ZWRNYXRjaGVzU2VhcmNoID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5zZWFyY2hNYXRjaFZhbHVlcyAhPT0gbnVsbCAmJiB0aGlzLnNlYXJjaE1hdGNoVmFsdWVzICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zZWFyY2hNYXRjaFZhbHVlcy5maW5kSW5kZXgodmFsdWUgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpIDwgMCkge1xyXG4gICAgICAgICAgICBpdGVtLmluaGVyaXRlZE1hdGNoZXNTZWFyY2ggPSBmYWxzZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEdldHRlcnMgYW5kIHNldHRlcnNcclxuICAgKi9cclxuXHJcbiAgZ2V0SWRQcmVmaXgoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCA6IHRoaXMubmFtZTtcclxuICB9XHJcblxyXG4gIGdldERlc2NyaWJlZEJ5KCk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGVzY3JpYmVkQnkgPSAnJztcclxuICAgIGlmICh0aGlzLmRlc2NyaWJlZEJ5KSB7XHJcbiAgICAgIGRlc2NyaWJlZEJ5ID0gdGhpcy5kZXNjcmliZWRCeTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oYXNIaW50Q29tcG9uZW50KCkgJiYgdGhpcy5oaW50Q29tcG9uZW50LmlkKSB7XHJcbiAgICAgIGRlc2NyaWJlZEJ5ID0gZGVzY3JpYmVkQnkgKyAnICcgKyB0aGlzLmhpbnRDb21wb25lbnQuaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KCkgJiYgdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQuaWQpIHtcclxuICAgICAgZGVzY3JpYmVkQnkgPSBkZXNjcmliZWRCeSArICcgJyArIHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50LmlkO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZXNjcmliZWRCeTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldnVlbHZlIGVsIHZhbG9yIGRlIGRlc2NyaWJlZEJ5IHF1ZSBzZSB0cmFuc21pdGlyw6EgYSBsb3MgaXRlbXNcclxuICAgKi9cclxuICBnZXREZXNjcmliZWRCeUZvckl0ZW1zKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgZGVzY3JpYmVkQnk7XHJcbiAgICBpZiAodGhpcy5oYXNGaWVsZHNldENvbXBvbmVudCgpKSB7XHJcbiAgICAgIGRlc2NyaWJlZEJ5ID0gdGhpcy5maWVsZHNldENvbXBvbmVudC5kZXNjcmliZWRCeTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlc2NyaWJlZEJ5ID0gdGhpcy5nZXREZXNjcmliZWRCeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkZXNjcmliZWRCeTtcclxuICB9XHJcblxyXG4gIGhhc0ZpZWxkc2V0Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5maWVsZHNldENvbXBvbmVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJyaWRlcyBzdXBlci5nZXRIaW50SWQoKTtcclxuICAgKi9cclxuICBnZXRIaW50SWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctaGludCcgOiB0aGlzLmhpbnRDb21wb25lbnQ/LmlkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogT3ZlcnJpZGVzIHN1cGVyLmdldEhpbnRJZCgpO1xyXG4gICAqL1xyXG4gIGdldEVycm9ySWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlkUHJlZml4ID8gdGhpcy5pZFByZWZpeCArICctZXJyb3InIDogdGhpcy5lcnJvck1lc3NhZ2VDb21wb25lbnQ/LmlkO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBGdW5jaW9uZXMgcGFyYSByZWVtcGxhemFyIGVsIGNvbnRlbmlkbyBkZWwgZmllbGRzZXQsIGxhYmVsLCBoaW50IG8gZXJyb3JtZXNzYWdlXHJcbiAgICovXHJcblxyXG4gIG92ZXJyaWRlRmllbGRzZXRQYXJhbXMoZmllbGRzZXQ6IEZpZWxkc2V0Q29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBmaWVsZHNldC5jYWxsZXIgPSB0aGlzLmlubmVySHRtbDtcclxuICAgIGZpZWxkc2V0LmVycm9ySWQgPSB0aGlzLmdldEVycm9ySWQoKTtcclxuICAgIGZpZWxkc2V0LmRlc2NyaWJlZEJ5ID0gdGhpcy5nZXREZXNjcmliZWRCeSgpO1xyXG4gICAgZmllbGRzZXQuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb3ZlcnJpZGVTZWFyY2hCYXJQYXJhbXMoc2VhcmNoYmFyOiBTZWFyY2hCYXJDb21wb25lbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRlZmF1bHRPbkNoYW5nZSA9IHNlYXJjaGJhci5vbkNoYW5nZTtcclxuICAgIGNvbnN0IG5ld09uQ2hhbmdlID0gdmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLm9uU2VhcmNoKHZhbHVlKTtcclxuICAgICAgZGVmYXVsdE9uQ2hhbmdlKHZhbHVlKTtcclxuICAgIH1cclxuICAgIHNlYXJjaGJhci5yZWdpc3Rlck9uQ2hhbmdlKG5ld09uQ2hhbmdlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGxsYW1hIGRlc2RlIEZvcm1GaWVsZFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlSGludFBhcmFtcyhoaW50KTogdm9pZCB7XHJcbiAgICBoaW50LmlkID0gdGhpcy5nZXRIaW50SWQoKTtcclxuICAgIGhpbnQuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2UgbGxhbWEgZGVzZGUgRm9ybUZpZWxkXHJcbiAgICovXHJcbiAgb3ZlcnJpZGVFcnJvck1lc3NhZ2VQYXJhbXMoZXJyb3JNZXNzYWdlKTogdm9pZCB7XHJcbiAgICBlcnJvck1lc3NhZ2UuaWQgPSB0aGlzLmdldEVycm9ySWQoKTtcclxuICAgIHRoaXMuc2V0RXJyb3JJbkl0ZW1zKHRoaXMuaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KCkpO1xyXG4gICAgZXJyb3JNZXNzYWdlLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGxsYW1hIGRlc2RlIEZvcm1GaWVsZFxyXG4gICAqL1xyXG4gIG9uRGVsZXRlRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRFcnJvckluSXRlbXModGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSk7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIE3DqXRvZG9zIHByaXZhZG9zXHJcbiAgICovXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbmZpZ3VyYSBsYSBlc3RydWN0dXJhIGRlbCDDoXJib2xcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYnVpbGRUcmVlKCk6IHZvaWQge1xyXG5cclxuICAgIC8vIFNlIGNyZWEgdW4gbWFwYSBwYXJhIHRlbmVyIGFjY2VzaWJsZXMgbG9zIGl0ZW1zIHBvciBrZXkgeSBzZSBib3JyYW4gbG9zIGxpc3RhZG9zIGV4aXN0ZW50ZXNcclxuICAgIGNvbnN0IGl0ZW1NYXAgPSB7fVxyXG4gICAgdGhpcy5yb290SXRlbXMgPSBbXTtcclxuICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3Qga2V5ID0gaXRlbS5nZXRLZXkoKTtcclxuICAgICAgaXRlbU1hcFtrZXldID0gaXRlbTtcclxuICAgICAgaWYgKGl0ZW0uc3ViKSB7XHJcbiAgICAgICAgaXRlbS5zdWIuaXRlbUxpc3QgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gU2UgYcOxYWRlbiBsb3MgaXRlbXMgYSBsb3MgbGlzdGFkb3MgY29ycmVzcG9uZGllbnRlc1xyXG4gICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICBjb25zdCBwYXJlbnRLZXkgPSBpdGVtLmdldFBhcmVudEtleSgpO1xyXG4gICAgICBpZiAocGFyZW50S2V5ID09PSAncm9vdCcpIHtcclxuICAgICAgICB0aGlzLnJvb3RJdGVtcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9IGVsc2UgaWYgKHBhcmVudEtleSkge1xyXG4gICAgICAgIGNvbnN0IHN1YiA9IGl0ZW1NYXBbcGFyZW50S2V5XS5zdWI7XHJcbiAgICAgICAgaWYgKHN1Yikge1xyXG4gICAgICAgICAgc3ViLml0ZW1MaXN0LnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBTZSBjb25maWd1cmFuIGxvcyBpdGVtcyBkZXNkZSByb290XHJcbiAgICBsZXQgb3JkZXIgPSAwO1xyXG4gICAgdGhpcy5yb290SXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgaXRlbS5zZXRTdWJMZXZlbCgwKTtcclxuICAgICAgaXRlbS5zZXREZWZhdWx0SWQoYCR7dGhpcy5pZFByZWZpeH0tJHtpbmRleH1gKTtcclxuICAgICAgaXRlbS5yZWZyZXNoQWxsUGFyZW50c0V4cGFuZGVkUmVjdXJzaXZlKHRydWUpO1xyXG4gICAgICBpZiAoIXRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQpIHtcclxuICAgICAgICBpdGVtLnNldENoZWNrZWRBdXRvbWF0aWNhbGx5RGVwZW5kaW5nT25DaGlsZHJlbigpO1xyXG4gICAgICB9XHJcbiAgICAgIG9yZGVyID0gaXRlbS5zZXRPcmRlclJlY3Vyc2l2ZWx5KG9yZGVyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2kgdGllbmUgdW4gbWVuc2FqZSBkZSBlcnJvciwgc2UgaW5kaWNhIGEgbG9zIGl0ZW1zXHJcbiAgICogQHBhcmFtIGhhc0Vycm9yXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIHNldEVycm9ySW5JdGVtcyhoYXNFcnJvcjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWxsSXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGl0ZW0uaW5oZXJpdGVkSGFzRXJyb3IgPSBoYXNFcnJvcjtcclxuICAgICAgICBpdGVtLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBMaW1waWEgdW4gbGlzdGFkbyBkZSBzdWJzY3JpcGNpb25lc1xyXG4gICAqIEBwYXJhbSBzdWJzY3JpcHRpb25MaXN0XHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGNsZWFyU3Vic2NyaXB0aW9ucyhzdWJzY3JpcHRpb25MaXN0OiBTdWJzY3JpcHRpb25bXSk6IHZvaWQge1xyXG4gICAgaWYgKHN1YnNjcmlwdGlvbkxpc3QubGVuZ3RoID4gMCkge1xyXG4gICAgICBzdWJzY3JpcHRpb25MaXN0LmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICBzdWJzY3JpcHRpb25MaXN0LnNwbGljZSgwLCBzdWJzY3JpcHRpb25MaXN0Lmxlbmd0aClcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERldnVlbHZlIGxvcyBpdGVtcyBkZWwgw6FyYm9sIG9yZGVuYWRvc1xyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRBbGxJdGVtc0luT3JkZXIoKTogVHJlZUl0ZW1Db21wb25lbnRbXSB7XHJcbiAgICBsZXQgbGlzdCA9IFtdO1xyXG4gICAgaWYgKHRoaXMuYWxsSXRlbXMpIHtcclxuICAgICAgbGlzdCA9IHRoaXMuYWxsSXRlbXMudG9BcnJheSgpLnNvcnQoKGEsIGIpID0+IGEub3JkZXJJblRyZWUgPiBiLm9yZGVySW5UcmVlID8gMSA6IC0xKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpc3RcclxuICB9XHJcbn1cclxuIl19
408
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LWZvcm1zL2NvbXBvbmVudHMvdHJlZS90cmVlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUFFLFlBQVksRUFDN0IsVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ3NCLFNBQVMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seURBQXlELENBQUM7QUFDekYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkRBQTJELENBQUM7QUFDNUYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFFdEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFFakUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFhdEUsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBeUI7SUFxQzFELFlBQW9CLGNBQWlDO1FBQ25ELEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBM0I1Qyx1QkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDMUIsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBRWhDLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUk1Qiw0QkFBdUIsR0FBMkIsSUFBSSxZQUFZLEVBQVksQ0FBQztRQWFqRixjQUFTLEdBQXdCLEVBQUUsQ0FBQztRQUdwQyxrQ0FBNkIsR0FBbUIsRUFBRSxDQUFD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QUFXLEVBQUUsSUFBSSxFQUFFO2dDQUd4RCxlQUFlLFNBQUMsaUJBQWlCO2lDQUdqQyxlQUFlLFNBQUMsa0JBQWtCO3dCQUVsQyxTQUFTLFNBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTs7QUFaL0I7SUFEUixpQkFBaUIsQ0FBQywyQkFBMkIsQ0FBQzt3REFDVjtBQUlzQjtJQUQxRCxpQkFBaUIsQ0FBQyxtQkFBbUIsQ0FBQzsrQ0FDMkQ7QUFHOUQ7SUFEbkMsZ0JBQWdCLENBQUMsRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBQyxDQUFDO3dEQUNRO0FBR3BDO0lBRHBDLGdCQUFnQixDQUFDLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUMsQ0FBQzt5REFDVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsIFF1ZXJ5TGlzdCxcclxuICBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RGVzeUNvbnRlbnRDaGlsZH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktY29udGVudC1jaGlsZC5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtUcmVlSXRlbUNvbXBvbmVudH0gZnJvbSBcIi4vdHJlZS1pdGVtL3RyZWUtaXRlbS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtEZXN5T25JbnB1dENoYW5nZX0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9kZWNvcmF0b3JzL2Rlc3ktb24taW5wdXQtY2hhbmdlLmRlY29yYXRvclwiO1xyXG5pbXBvcnQge05HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtGb3JtRmllbGRDb21wb25lbnR9IGZyb20gXCIuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge0ZpZWxkc2V0Q29tcG9uZW50fSBmcm9tIFwiLi4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7UXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zfSBmcm9tIFwiLi9pbnRlcmZhY2VzL3F1aXQtdHJlZS1pdGVtLWZvY3VzLW9wdGlvbnNcIjtcclxuaW1wb3J0IHtTZWFyY2hCYXJDb21wb25lbnR9IGZyb20gXCIuLi9zZWFyY2gtYmFyL3NlYXJjaC1iYXIuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktdHJlZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVHJlZUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJlZUNvbXBvbmVudCBleHRlbmRzIEZvcm1GaWVsZENvbXBvbmVudDxhbnlbXT4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIEBJbnB1dCgpIGlkUHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSB0eXBlOiAncmFkaW8nfCdjaGVja2JveCd8bnVsbHx1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGVzY3JpYmVkQnk6IHN0cmluZztcclxuXHJcbiAgQElucHV0KCkgZm9ybUdyb3VwQ2xhc3NlczogYW55O1xyXG5cclxuICBASW5wdXQoKSBleHBhbmRlZEZpcnN0TGV2ZWwgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRlY291cGxlQ2hpbGRGcm9tUGFyZW50ID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIGRpc2FibGVEZWZhdWx0U2VhcmNoID0gZmFsc2U7XHJcblxyXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnb25TZWFyY2hNYXRjaFZhbHVlc0NoYW5nZScpXHJcbiAgQElucHV0KCkgc2VhcmNoTWF0Y2hWYWx1ZXM6IHN0cmluZ1tdO1xyXG4gIEBPdXRwdXQoKSBzZWFyY2hNYXRjaFZhbHVlc0NoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZ1tdPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nW10+KCk7XHJcblxyXG4gIEBEZXN5T25JbnB1dENoYW5nZSgnY29uZmlndXJlQWxsSXRlbXMnKVxyXG4gIEBDb250ZW50Q2hpbGRyZW4oVHJlZUl0ZW1Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgYWxsSXRlbXM6IFF1ZXJ5TGlzdDxUcmVlSXRlbUNvbXBvbmVudD47XHJcblxyXG4gIEBEZXN5Q29udGVudENoaWxkKHsgb25TZXRDYWxsYmFja05hbWU6ICdvdmVycmlkZUZpZWxkc2V0UGFyYW1zJ30pXHJcbiAgQENvbnRlbnRDaGlsZHJlbihGaWVsZHNldENvbXBvbmVudCkgZmllbGRzZXRDb21wb25lbnQ6IEZpZWxkc2V0Q29tcG9uZW50O1xyXG5cclxuICBARGVzeUNvbnRlbnRDaGlsZCh7IG9uU2V0Q2FsbGJhY2tOYW1lOiAnb3ZlcnJpZGVTZWFyY2hCYXJQYXJhbXMnfSlcclxuICBAQ29udGVudENoaWxkcmVuKFNlYXJjaEJhckNvbXBvbmVudCkgc2VhcmNoQmFyQ29tcG9uZW50OiBTZWFyY2hCYXJDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lubmVySHRtbCcsIHsgc3RhdGljOiB0cnVlIH0pIGlubmVySHRtbDogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHJpdmF0ZSByb290SXRlbXM6IFRyZWVJdGVtQ29tcG9uZW50W10gPSBbXTtcclxuICBwcml2YXRlIF9pdGVtTGlzdFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgX2FsbEl0ZW1MaXN0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBfaXRlbUxpc3RDaGVja2VkU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuICBwcml2YXRlIF9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgcHJpdmF0ZSBfYWxyZWFkeUNvbmZpZ3VyaW5nSXRlbXMgPSBmYWxzZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMpO1xyXG4gICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbnModGhpcy5faXRlbUxpc3RRdWl0Rm9jdXNTdWJzY3JpcHRpb25zKTtcclxuICAgIHRoaXMuX2l0ZW1MaXN0U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZUFsbEl0ZW1zKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZSBzb2JyZXNjcmliZSBlbCB2YWxvciBwYXJhIGFjdHVhbGl6YXIgbG9zIGl0ZW1zXHJcbiAgICogQE92ZXJyaWRlXHJcbiAgICovXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLmNvbmZpZ3VyZUFsbEl0ZW1zKHRydWUpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRXZlbnRvc1xyXG4gICAqL1xyXG5cclxuICAvKipcclxuICAgKiBBY3R1YWxpemEgZWwgdmFsb3IgZGVsIGNvbXBvbmVudGUgYWwgY2hlY2txdWVhcnNlIHVuIMOtdGVtXHJcbiAgICogQHBhcmFtIG9yaWdpbkl0ZW0gw610ZW0gbW9kaWZpY2Fkb1xyXG4gICAqL1xyXG4gIHVwZGF0ZVZhbHVlRnJvbUl0ZW1zKG9yaWdpbkl0ZW0/OiBUcmVlSXRlbUNvbXBvbmVudCk6IHZvaWQge1xyXG5cclxuICAgIC8vIFNpIGVzIHJhZGlvLCBzZSBkZXNhY3RpdmFuIGVsIHJlc3RvIGRlIGl0ZW1zIGN1YW5kbyBzZSBhY3RpdmEgb3RybyBpdGVtXHJcbiAgICBpZiAodGhpcy50eXBlICE9PSAnY2hlY2tib3gnKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRBbGxJdGVtc0luT3JkZXIoKTtcclxuICAgICAgaXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpZiAoaXRlbSAhPT0gb3JpZ2luSXRlbSAmJiBpdGVtLmNoZWNrZWQpIHtcclxuICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZChmYWxzZSwgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoIXRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQpIHtcclxuICAgICAgdGhpcy5yb290SXRlbXMuZm9yRWFjaChpdGVtID0+IGl0ZW0uc2V0Q2hlY2tlZEF1dG9tYXRpY2FsbHlEZXBlbmRpbmdPbkNoaWxkcmVuKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudmFsdWUgPSBbXTtcclxuICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRBbGxJdGVtc0luT3JkZXIoKTtcclxuICAgIGl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGlmIChpdGVtLmNoZWNrZWQpIHtcclxuICAgICAgICB0aGlzLnZhbHVlLnB1c2goaXRlbS52YWx1ZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdlc3Rpb25hIGN1YW5kbyBlbCBmb2NvIGFiYW5kb25hIHVuIMOtdGVtIGRlc2RlIHVuIGV2ZW50byBkZSB0ZWNsYWRvIGNvbnRyb2xhZG9cclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGhhbmRsZUl0ZW1RdWl0Rm9jdXMob3B0aW9uczogUXVpdFRyZWVJdGVtRm9jdXNPcHRpb25zKTogdm9pZCB7XHJcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLm5leHRFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5nZXRBbGxJdGVtc0luT3JkZXIoKTtcclxuICAgICAgY29uc3QgZm9jdXNhYmxlSXRlbXMgPSBpdGVtcy5maWx0ZXIoaXRlbSA9PiAhaXRlbS5pc0hpZGRlbigpICYmICFpdGVtLmRpc2FibGVkICYmIGl0ZW0uYWxsUGFyZW50c0V4cGFuZGVkKTtcclxuICAgICAgc3dpdGNoIChvcHRpb25zLm5leHRFbGVtZW50KSB7XHJcbiAgICAgICAgY2FzZSBcImZpcnN0XCI6XHJcbiAgICAgICAgICBmb2N1c2FibGVJdGVtc1swXS5mb2N1cygpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImxhc3RcIjpcclxuICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zW2ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDFdLmZvY3VzKCk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwicGFyZW50XCI6XHJcbiAgICAgICAgICBjb25zdCBjdXJyZW50U3ViTGV2ZWwgPSBvcHRpb25zLmN1cnJlbnRJdGVtLnN1YkxldmVsO1xyXG4gICAgICAgICAgaWYgKGN1cnJlbnRTdWJMZXZlbCA+IDApIHtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudEl0ZW1JbmRleCA9IGZvY3VzYWJsZUl0ZW1zLmZpbmRJbmRleChpdGVtID0+IGl0ZW0gPT09IG9wdGlvbnMuY3VycmVudEl0ZW0pO1xyXG4gICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBmb2N1c2FibGVJdGVtcy5zbGljZSgwLCBjdXJyZW50SXRlbUluZGV4KS5yZXZlcnNlKCkuZmluZChpdGVtID0+IGl0ZW0uc3ViTGV2ZWwgPCBjdXJyZW50U3ViTGV2ZWwpO1xyXG4gICAgICAgICAgICBpZiAocGFyZW50KSB7XHJcbiAgICAgICAgICAgICAgcGFyZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgXCJmaXJzdENoaWxkXCI6XHJcbiAgICAgICAgY2FzZSBcIm5leHRcIjpcclxuICAgICAgICAgIGlmIChvcHRpb25zLmN1cnJlbnRJdGVtKSB7XHJcbiAgICAgICAgICAgIGxldCBjdXJyZW50SXRlbUluZGV4ID0gZm9jdXNhYmxlSXRlbXMuZmluZEluZGV4KGl0ZW0gPT4gaXRlbSA9PT0gb3B0aW9ucy5jdXJyZW50SXRlbSk7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50SXRlbUluZGV4IDwgZm9jdXNhYmxlSXRlbXMubGVuZ3RoIC0gMSkge1xyXG4gICAgICAgICAgICAgIGZvY3VzYWJsZUl0ZW1zW2N1cnJlbnRJdGVtSW5kZXggKyAxXS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwicHJldmlvdXNcIjpcclxuICAgICAgICAgIGlmIChvcHRpb25zLmN1cnJlbnRJdGVtKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRJdGVtSW5kZXggPSBmb2N1c2FibGVJdGVtcy5maW5kSW5kZXgoaXRlbSA9PiBpdGVtID09PSBvcHRpb25zLmN1cnJlbnRJdGVtKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRJdGVtSW5kZXggPiAwKSB7XHJcbiAgICAgICAgICAgICAgZm9jdXNhYmxlSXRlbXNbY3VycmVudEl0ZW1JbmRleCAtIDFdLmZvY3VzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWFsaXphIGxhIGLDunNxdWVkYSBpbnRlcm5hIGRlIGxvcyBpdGVtcyBlbiBlbCBjb21wb25lbnRlXHJcbiAgICogQHBhcmFtIHZhbHVlIHRleHRvIGRlIGLDunNxdWVkYVxyXG4gICAqL1xyXG4gIG9uU2VhcmNoKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlRGVmYXVsdFNlYXJjaCkge1xyXG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgPSB0aGlzLmFsbEl0ZW1zLmZpbHRlcihpdGVtID0+IGl0ZW0ubWF0Y2hlc1RleHQodmFsdWUpKS5tYXAoaXRlbSA9PiBpdGVtLnZhbHVlKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNlYXJjaE1hdGNoVmFsdWVzID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlLmVtaXQodGhpcy5zZWFyY2hNYXRjaFZhbHVlcyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAqIEV2ZW50b3MgYWwgY2FtYmlhciBwcm9waWVkYWRlc1xyXG4gICAqL1xyXG5cclxuICAvKipcclxuICAgKiBDb25maWd1cmEgbG9zIGl0ZW1zIGRlbCDDoXJib2xcclxuICAgKi9cclxuICBjb25maWd1cmVBbGxJdGVtcyhpc1ZhbHVlQ2hhbmdlID0gZmFsc2UpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMuX2FscmVhZHlDb25maWd1cmluZ0l0ZW1zKSB7XHJcbiAgICAgIHRoaXMuX2FscmVhZHlDb25maWd1cmluZ0l0ZW1zID0gdHJ1ZTtcclxuXHJcbiAgICAgIC8vIExvIHJlYWxpemFtb3MgZGVzZGUgdW4gc2V0VGltZW91dCBwYXJhIHF1ZSB0b2RvcyBsb3MgaW5wdXRzLCB2YWx1ZXMgeSBkZW3DoXMgdml2YW4gZW4gcGF6IHkgYXJtb27DrWFcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYWxsSXRlbXM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMuY2xlYXJTdWJzY3JpcHRpb25zKHRoaXMuX2l0ZW1MaXN0Q2hlY2tlZFN1YnNjcmlwdGlvbnMpO1xyXG4gICAgICAgICAgdGhpcy5jbGVhclN1YnNjcmlwdGlvbnModGhpcy5faXRlbUxpc3RRdWl0Rm9jdXNTdWJzY3JpcHRpb25zKTtcclxuICAgICAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgaXRlbS5wYXJlbnROYW1lID0gdGhpcy5uYW1lO1xyXG4gICAgICAgICAgICBpdGVtLnR5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICAgICAgICAgIGl0ZW0uaW5oZXJpdGVkRGVzY3JpYmVkQnkgPSB0aGlzLmdldERlc2NyaWJlZEJ5Rm9ySXRlbXMoKTtcclxuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWRFeHBhbmRlZEZpcnN0TGV2ZWwgPSB0aGlzLmV4cGFuZGVkRmlyc3RMZXZlbDtcclxuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWREZWNvdXBsZUNoaWxkRnJvbVBhcmVudCA9IHRoaXMuZGVjb3VwbGVDaGlsZEZyb21QYXJlbnQ7XHJcbiAgICAgICAgICAgIGlmICgodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDApIHx8IGlzVmFsdWVDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZUxpc3QgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6IFtdO1xyXG4gICAgICAgICAgICAgIGl0ZW0uc2V0Q2hlY2tlZCghIXZhbHVlTGlzdC5maW5kKHYgPT4gdiA9PT0gaXRlbS52YWx1ZSksIHRydWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGl0ZW0uZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgY2hlY2tlZFN1YnNjcmlwdGlvbiA9IGl0ZW0uY2hlY2tlZENoYW5nZUZvclRyZWUuc3Vic2NyaWJlKCgpID0+IHRoaXMudXBkYXRlVmFsdWVGcm9tSXRlbXMoaXRlbSkpO1xyXG4gICAgICAgICAgICB0aGlzLl9pdGVtTGlzdENoZWNrZWRTdWJzY3JpcHRpb25zLnB1c2goY2hlY2tlZFN1YnNjcmlwdGlvbik7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBxdWl0Rm9jdXNTdWJzY3JpcHRpb24gPSBpdGVtLnF1aXRGb2N1cy5zdWJzY3JpYmUob3B0aW9ucyA9PiB0aGlzLmhhbmRsZUl0ZW1RdWl0Rm9jdXMob3B0aW9ucykpO1xyXG4gICAgICAgICAgICB0aGlzLl9pdGVtTGlzdFF1aXRGb2N1c1N1YnNjcmlwdGlvbnMucHVzaChxdWl0Rm9jdXNTdWJzY3JpcHRpb24pO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5zZXRFcnJvckluSXRlbXModGhpcy5oYXNFcnJvck1lc3NhZ2VDb21wb25lbnQoKSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5idWlsZFRyZWUoKTtcclxuICAgICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlRnJvbUl0ZW1zKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5vblNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5hbGxJdGVtcyAmJiAhdGhpcy5fYWxsSXRlbUxpc3RTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgIHRoaXMuX2FsbEl0ZW1MaXN0U3Vic2NyaXB0aW9uID0gdGhpcy5hbGxJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNvbmZpZ3VyZUFsbEl0ZW1zKCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgdGhpcy5fYWxyZWFkeUNvbmZpZ3VyaW5nSXRlbXMgPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNb2RpZmljYSBsb3MgaXRlbXMgdmlzaWJsZXMgc2Vnw7puIGVsIGZpbHRybyBkZSBiw7pzcXVlZGFcclxuICAgKi9cclxuICBvblNlYXJjaE1hdGNoVmFsdWVzQ2hhbmdlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYWxsSXRlbXMpIHtcclxuICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgIGl0ZW0uaW5oZXJpdGVkTWF0Y2hlc1NlYXJjaCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMgIT09IG51bGwgJiYgdGhpcy5zZWFyY2hNYXRjaFZhbHVlcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgdGhpcy5hbGxJdGVtcy5mb3JFYWNoKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoTWF0Y2hWYWx1ZXMuZmluZEluZGV4KHZhbHVlID0+IGl0ZW0udmFsdWUgPT09IHZhbHVlKSA8IDApIHtcclxuICAgICAgICAgICAgaXRlbS5pbmhlcml0ZWRNYXRjaGVzU2VhcmNoID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBHZXR0ZXJzIGFuZCBzZXR0ZXJzXHJcbiAgICovXHJcblxyXG4gIGdldElkUHJlZml4KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggOiB0aGlzLm5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXREZXNjcmliZWRCeSgpOiBzdHJpbmcge1xyXG4gICAgbGV0IGRlc2NyaWJlZEJ5ID0gJyc7XHJcbiAgICBpZiAodGhpcy5kZXNjcmliZWRCeSkge1xyXG4gICAgICBkZXNjcmliZWRCeSA9IHRoaXMuZGVzY3JpYmVkQnk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaGFzSGludENvbXBvbmVudCgpICYmIHRoaXMuaGludENvbXBvbmVudC5pZCkge1xyXG4gICAgICBkZXNjcmliZWRCeSA9IGRlc2NyaWJlZEJ5ICsgJyAnICsgdGhpcy5oaW50Q29tcG9uZW50LmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpICYmIHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50LmlkKSB7XHJcbiAgICAgIGRlc2NyaWJlZEJ5ID0gZGVzY3JpYmVkQnkgKyAnICcgKyB0aGlzLmVycm9yTWVzc2FnZUNvbXBvbmVudC5pZDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGVzY3JpYmVkQnk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXZ1ZWx2ZSBlbCB2YWxvciBkZSBkZXNjcmliZWRCeSBxdWUgc2UgdHJhbnNtaXRpcsOhIGEgbG9zIGl0ZW1zXHJcbiAgICovXHJcbiAgZ2V0RGVzY3JpYmVkQnlGb3JJdGVtcygpOiBzdHJpbmcge1xyXG4gICAgbGV0IGRlc2NyaWJlZEJ5O1xyXG4gICAgaWYgKHRoaXMuaGFzRmllbGRzZXRDb21wb25lbnQoKSkge1xyXG4gICAgICBkZXNjcmliZWRCeSA9IHRoaXMuZmllbGRzZXRDb21wb25lbnQuZGVzY3JpYmVkQnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkZXNjcmliZWRCeSA9IHRoaXMuZ2V0RGVzY3JpYmVkQnkoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGVzY3JpYmVkQnk7XHJcbiAgfVxyXG5cclxuICBoYXNGaWVsZHNldENvbXBvbmVudCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuZmllbGRzZXRDb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPdmVycmlkZXMgc3VwZXIuZ2V0SGludElkKCk7XHJcbiAgICovXHJcbiAgZ2V0SGludElkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLWhpbnQnIDogdGhpcy5oaW50Q29tcG9uZW50Py5pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE92ZXJyaWRlcyBzdXBlci5nZXRIaW50SWQoKTtcclxuICAgKi9cclxuICBnZXRFcnJvcklkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCA/IHRoaXMuaWRQcmVmaXggKyAnLWVycm9yJyA6IHRoaXMuZXJyb3JNZXNzYWdlQ29tcG9uZW50Py5pZDtcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICogRnVuY2lvbmVzIHBhcmEgcmVlbXBsYXphciBlbCBjb250ZW5pZG8gZGVsIGZpZWxkc2V0LCBsYWJlbCwgaGludCBvIGVycm9ybWVzc2FnZVxyXG4gICAqL1xyXG5cclxuICBvdmVycmlkZUZpZWxkc2V0UGFyYW1zKGZpZWxkc2V0OiBGaWVsZHNldENvbXBvbmVudCk6IHZvaWQge1xyXG4gICAgZmllbGRzZXQuY2FsbGVyID0gdGhpcy5pbm5lckh0bWw7XHJcbiAgICBmaWVsZHNldC5lcnJvcklkID0gdGhpcy5nZXRFcnJvcklkKCk7XHJcbiAgICBmaWVsZHNldC5kZXNjcmliZWRCeSA9IHRoaXMuZ2V0RGVzY3JpYmVkQnkoKTtcclxuICAgIGZpZWxkc2V0LmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG92ZXJyaWRlU2VhcmNoQmFyUGFyYW1zKHNlYXJjaGJhcjogU2VhcmNoQmFyQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWZhdWx0T25DaGFuZ2UgPSBzZWFyY2hiYXIub25DaGFuZ2U7XHJcbiAgICBjb25zdCBuZXdPbkNoYW5nZSA9IHZhbHVlID0+IHtcclxuICAgICAgdGhpcy5vblNlYXJjaCh2YWx1ZSk7XHJcbiAgICAgIGRlZmF1bHRPbkNoYW5nZSh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBzZWFyY2hiYXIucmVnaXN0ZXJPbkNoYW5nZShuZXdPbkNoYW5nZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZSBsbGFtYSBkZXNkZSBGb3JtRmllbGRcclxuICAgKi9cclxuICBvdmVycmlkZUhpbnRQYXJhbXMoaGludCk6IHZvaWQge1xyXG4gICAgaGludC5pZCA9IHRoaXMuZ2V0SGludElkKCk7XHJcbiAgICBoaW50LmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNlIGxsYW1hIGRlc2RlIEZvcm1GaWVsZFxyXG4gICAqL1xyXG4gIG92ZXJyaWRlRXJyb3JNZXNzYWdlUGFyYW1zKGVycm9yTWVzc2FnZSk6IHZvaWQge1xyXG4gICAgZXJyb3JNZXNzYWdlLmlkID0gdGhpcy5nZXRFcnJvcklkKCk7XHJcbiAgICB0aGlzLnNldEVycm9ySW5JdGVtcyh0aGlzLmhhc0Vycm9yTWVzc2FnZUNvbXBvbmVudCgpKTtcclxuICAgIGVycm9yTWVzc2FnZS5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZSBsbGFtYSBkZXNkZSBGb3JtRmllbGRcclxuICAgKi9cclxuICBvbkRlbGV0ZUVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0RXJyb3JJbkl0ZW1zKHRoaXMuaGFzRXJyb3JNZXNzYWdlQ29tcG9uZW50KCkpO1xyXG4gIH1cclxuXHJcbiAgLypcclxuICAgKiBNw6l0b2RvcyBwcml2YWRvc1xyXG4gICAqL1xyXG5cclxuICAvKipcclxuICAgKiBDb25maWd1cmEgbGEgZXN0cnVjdHVyYSBkZWwgw6FyYm9sXHJcbiAgICogQHByaXZhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGJ1aWxkVHJlZSgpOiB2b2lkIHtcclxuXHJcbiAgICAvLyBTZSBjcmVhIHVuIG1hcGEgcGFyYSB0ZW5lciBhY2Nlc2libGVzIGxvcyBpdGVtcyBwb3Iga2V5IHkgc2UgYm9ycmFuIGxvcyBsaXN0YWRvcyBleGlzdGVudGVzXHJcbiAgICBjb25zdCBpdGVtTWFwID0ge31cclxuICAgIHRoaXMucm9vdEl0ZW1zID0gW107XHJcbiAgICB0aGlzLmFsbEl0ZW1zLmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IGl0ZW0uZ2V0S2V5KCk7XHJcbiAgICAgIGl0ZW1NYXBba2V5XSA9IGl0ZW07XHJcbiAgICAgIGlmIChpdGVtLnN1Yikge1xyXG4gICAgICAgIGl0ZW0uc3ViLml0ZW1MaXN0ID0gW107XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFNlIGHDsWFkZW4gbG9zIGl0ZW1zIGEgbG9zIGxpc3RhZG9zIGNvcnJlc3BvbmRpZW50ZXNcclxuICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgY29uc3QgcGFyZW50S2V5ID0gaXRlbS5nZXRQYXJlbnRLZXkoKTtcclxuICAgICAgaWYgKHBhcmVudEtleSA9PT0gJ3Jvb3QnKSB7XHJcbiAgICAgICAgdGhpcy5yb290SXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgfSBlbHNlIGlmIChwYXJlbnRLZXkpIHtcclxuICAgICAgICBjb25zdCBzdWIgPSBpdGVtTWFwW3BhcmVudEtleV0uc3ViO1xyXG4gICAgICAgIGlmIChzdWIpIHtcclxuICAgICAgICAgIHN1Yi5pdGVtTGlzdC5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gU2UgY29uZmlndXJhbiBsb3MgaXRlbXMgZGVzZGUgcm9vdFxyXG4gICAgbGV0IG9yZGVyID0gMDtcclxuICAgIHRoaXMucm9vdEl0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGl0ZW0uc2V0U3ViTGV2ZWwoMCk7XHJcbiAgICAgIGl0ZW0uc2V0RGVmYXVsdElkKGAke3RoaXMuaWRQcmVmaXh9LSR7aW5kZXh9YCk7XHJcbiAgICAgIGl0ZW0ucmVmcmVzaEFsbFBhcmVudHNFeHBhbmRlZFJlY3Vyc2l2ZSh0cnVlKTtcclxuICAgICAgaWYgKCF0aGlzLmRlY291cGxlQ2hpbGRGcm9tUGFyZW50KSB7XHJcbiAgICAgICAgaXRlbS5zZXRDaGVja2VkQXV0b21hdGljYWxseURlcGVuZGluZ09uQ2hpbGRyZW4oKTtcclxuICAgICAgfVxyXG4gICAgICBvcmRlciA9IGl0ZW0uc2V0T3JkZXJSZWN1cnNpdmVseShvcmRlcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNpIHRpZW5lIHVuIG1lbnNhamUgZGUgZXJyb3IsIHNlIGluZGljYSBhIGxvcyBpdGVtc1xyXG4gICAqIEBwYXJhbSBoYXNFcnJvclxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzZXRFcnJvckluSXRlbXMoaGFzRXJyb3I6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmFsbEl0ZW1zPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWxsSXRlbXMuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICBpdGVtLmluaGVyaXRlZEhhc0Vycm9yID0gaGFzRXJyb3I7XHJcbiAgICAgICAgaXRlbS5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTGltcGlhIHVuIGxpc3RhZG8gZGUgc3Vic2NyaXBjaW9uZXNcclxuICAgKiBAcGFyYW0gc3Vic2NyaXB0aW9uTGlzdFxyXG4gICAqIEBwcml2YXRlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjbGVhclN1YnNjcmlwdGlvbnMoc3Vic2NyaXB0aW9uTGlzdDogU3Vic2NyaXB0aW9uW10pOiB2b2lkIHtcclxuICAgIGlmIChzdWJzY3JpcHRpb25MaXN0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgc3Vic2NyaXB0aW9uTGlzdC5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICAgICAgc3Vic2NyaXB0aW9uTGlzdC5zcGxpY2UoMCwgc3Vic2NyaXB0aW9uTGlzdC5sZW5ndGgpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBEZXZ1ZWx2ZSBsb3MgaXRlbXMgZGVsIMOhcmJvbCBvcmRlbmFkb3NcclxuICAgKiBAcHJpdmF0ZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0QWxsSXRlbXNJbk9yZGVyKCk6IFRyZWVJdGVtQ29tcG9uZW50W10ge1xyXG4gICAgbGV0IGxpc3QgPSBbXTtcclxuICAgIGlmICh0aGlzLmFsbEl0ZW1zKSB7XHJcbiAgICAgIGxpc3QgPSB0aGlzLmFsbEl0ZW1zLnRvQXJyYXkoKS5zb3J0KChhLCBiKSA9PiBhLm9yZGVySW5UcmVlID4gYi5vcmRlckluVHJlZSA/IDEgOiAtMSlcclxuICAgIH1cclxuICAgIHJldHVybiBsaXN0XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1pbnB1dC1ncm91cC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9pbnRlcmZhY2VzL2l0ZW0taW5wdXQtZ3JvdXAtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNpYmlsaXR5RGF0YSB9IGZyb20gJy4vYWNjZXNpYmlsaXR5LWRhdGEnO1xyXG5pbXBvcnQgeyBMYWJlbERhdGEgfSBmcm9tICcuL2xhYmVsLWRhdGEnO1xyXG5pbXBvcnQgeyBTZWxlY3RJdGVtRGF0YSB9IGZyb20gJy4vc2VsZWN0LWl0ZW0tZGF0YSc7XHJcbmltcG9ydCB7IEl0ZW1EaXZpZGVySW5wdXRHcm91cERhdGEgfSBmcm9tICcuL2l0ZW0tZGl2aWRlci1pbnB1dC1ncm91cC1kYXRhJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUlucHV0R3JvdXBEYXRhIGV4dGVuZHMgQWNjZXNpYmlsaXR5RGF0YSB7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBpbnB1dG1vZGU/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBsYWJlbFRleHQ/OiBzdHJpbmc7XHJcbiAgbGFiZWxEYXRhPzogTGFiZWxEYXRhO1xyXG4gIHZhbHVlPzogYW55O1xyXG4gIGF1dG9jb21wbGV0ZT86IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBwYXR0ZXJuPzogc3RyaW5nO1xyXG4gIGNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgZm9ybUdyb3VwQ2xhc3Nlcz86IHN0cmluZztcclxuICBpc1NlbGVjdD86IGJvb2xlYW47XHJcbiAgc2VsZWN0SXRlbXM/OiBTZWxlY3RJdGVtRGF0YVtdO1xyXG4gIGRpdmlkZXI/OiBJdGVtRGl2aWRlcklucHV0R3JvdXBEYXRhO1xyXG4gIG1heGxlbmd0aD86IG51bWJlcjtcclxufVxyXG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1pbnB1dC1ncm91cC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1mb3Jtcy9pbnRlcmZhY2VzL2l0ZW0taW5wdXQtZ3JvdXAtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNpYmlsaXR5RGF0YSB9IGZyb20gJy4vYWNjZXNpYmlsaXR5LWRhdGEnO1xyXG5pbXBvcnQgeyBMYWJlbERhdGEgfSBmcm9tICcuL2xhYmVsLWRhdGEnO1xyXG5pbXBvcnQgeyBTZWxlY3RJdGVtRGF0YSB9IGZyb20gJy4vc2VsZWN0LWl0ZW0tZGF0YSc7XHJcbmltcG9ydCB7IEl0ZW1EaXZpZGVySW5wdXRHcm91cERhdGEgfSBmcm9tICcuL2l0ZW0tZGl2aWRlci1pbnB1dC1ncm91cC1kYXRhJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbUlucHV0R3JvdXBEYXRhIGV4dGVuZHMgQWNjZXNpYmlsaXR5RGF0YSB7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBpbnB1dG1vZGU/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBsYWJlbFRleHQ/OiBzdHJpbmc7XHJcbiAgbGFiZWxEYXRhPzogTGFiZWxEYXRhO1xyXG4gIHZhbHVlPzogYW55O1xyXG4gIGF1dG9jb21wbGV0ZT86IHN0cmluZztcclxuICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICBwYXR0ZXJuPzogc3RyaW5nO1xyXG4gIGNsYXNzZXM/OiBzdHJpbmc7XHJcbiAgZm9ybUdyb3VwQ2xhc3Nlcz86IHN0cmluZztcclxuICBpc1NlbGVjdD86IGJvb2xlYW47XHJcbiAgc2VsZWN0SXRlbXM/OiBTZWxlY3RJdGVtRGF0YVtdO1xyXG4gIGRpdmlkZXI/OiBJdGVtRGl2aWRlcklucHV0R3JvdXBEYXRhO1xyXG4gIG1heGxlbmd0aD86IG51bWJlcjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbn1cclxuIl19
@@ -98,7 +98,7 @@ DialogComponent.KEY_CODE_ESC = 'Escape';
98
98
  DialogComponent.decorators = [
99
99
  { type: Component, args: [{
100
100
  selector: 'desy-dialog',
101
- template: "<div class=\"dialog-backdrop\" [ngClass]=\"{'active': active}\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\r\n <div #focusTrapWrapper [id]=\"id\" [class]=\"classes\"\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"handleClickOutside()\" [desyClickOutsideElem]=\"childElem\">\r\n <ng-template #container></ng-template>\r\n <ng-container *ngTemplateOutlet=\"caller\"></ng-container>\r\n </div>\r\n</div>\r\n"
101
+ template: "<div class=\"dialog-backdrop\" [ngClass]=\"{'active': active}\"\r\n [attr.role]=\"role ? role : null\"\r\n [attr.aria-label]=\"ariaLabel ? ariaLabel : null\"\r\n [attr.aria-describedby]=\"ariaDescribedBy ? ariaDescribedBy : null\"\r\n [attr.aria-labelledby]=\"ariaLabelledBy ? ariaLabelledBy : null\"\r\n [attr.aria-hidden]=\"ariaHidden ? ariaHidden : null\"\r\n [attr.aria-disabled]=\"ariaDisabled ? ariaDisabled : null\"\r\n [attr.aria-controls]=\"ariaControls ? ariaControls : null\"\r\n [attr.aria-current]=\"ariaCurrent ? ariaCurrent : null\"\r\n [attr.aria-live]=\"ariaLive ? ariaLive : null\"\r\n [attr.aria-expanded]=\"ariaExpanded ? ariaExpanded : null\"\r\n [attr.aria-errormessage]=\"ariaErrorMessage ? ariaErrorMessage : null\"\r\n [attr.aria-haspopup]=\"ariaHasPopup ? ariaHasPopup : null\"\r\n [attr.aria-modal]=\"ariaModal ? ariaModal : null\">\r\n\r\n <div #focusTrapWrapper [id]=\"id\" [class]=\"classes\"\r\n [desyClickOutside]=\"clickOutsideEnabled\" (clickOutside)=\"handleClickOutside()\" [desyClickOutsideElem]=\"childElem\">\r\n <ng-template #container></ng-template>\r\n <ng-container *ngTemplateOutlet=\"caller\"></ng-container>\r\n </div>\r\n</div>"
102
102
  },] }
103
103
  ];
104
104
  DialogComponent.ctorParameters = () => [
@@ -113,9 +113,9 @@ DialogComponent.propDecorators = {
113
113
  activeChange: [{ type: Output }],
114
114
  id: [{ type: Input }],
115
115
  caller: [{ type: Input }],
116
- classes: [{ type: Input }],
117
116
  focusOnClose: [{ type: Input }],
118
117
  dismissOnBackdrop: [{ type: Input }],
118
+ classes: [{ type: Input }],
119
119
  onKeyUp: [{ type: HostListener, args: ['document:keyup', ['$event'],] }]
120
120
  };
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbW9kYWxzL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osS0FBSyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFHaEIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBQWtDLHdCQUF3QixFQUN2RSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQXlCLDRCQUE0QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBT3pCLE1BQU0sT0FBTyxlQUFnQixTQUFRLHNCQUFzQjtJQXlCekQsWUFBb0IsS0FBd0IsRUFDeEIsZ0JBQThDLEVBQzlDLGVBQXlDO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBSFUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFsQm5ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVdyRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7SUFPNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxlQUFlO1FBRWIsSUFBSSxJQUFJLENB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QUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztxQkFDeEQ7eUJBQU07d0JBQ0wsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7cUJBQy9CO2lCQUNGO3FCQUFNO29CQUNMLFNBQVMsR0FBRyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztpQkFDbkQ7Z0JBQ0QsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUNyQztnQkFDRCxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7O0FBdkhlLGlDQUFpQixHQUFHLFlBQVksQ0FBQztBQUNqQyw0QkFBWSxHQUFHLFFBQVEsQ0FBQzs7WUFQekMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2QixvdUNBQXNDO2FBQ3ZDOzs7WUFkQyxpQkFBaUI7WUFLYSw0QkFBNEI7WUFIWix3QkFBd0I7Ozt3QkFrQnJFLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7K0JBQy9DLFNBQVMsU0FBQyxrQkFBa0I7cUJBRTVCLEtBQUs7MkJBQ0wsTUFBTTtpQkFFTixLQUFLO3FCQUNMLEtBQUs7c0JBQ0wsS0FBSzsyQkFDTCxLQUFLO2dDQUNMLEtBQUs7c0JBbURMLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEV2ZW50RW1pdHRlciwgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBUeXBlLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwLCBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBGb2N1c1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2ZvY3VzLXV0aWxzJztcclxuXHJcbmxldCBudW1EaWFsb2dzT3BlbmVkID0gMDtcclxudHlwZSBEaWFsb2dDcmVhdGlvbkNhbGxiYWNrID0gKChkaWFsb2c6IERpYWxvZ0NvbXBvbmVudCwgY2FsbGVyOiBDb21wb25lbnRSZWY8YW55PikgPT4gdm9pZCk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IERJQUxPR19PUEVOX0NMQVNTID0gJ2hhcy1kaWFsb2cnO1xyXG4gIHN0YXRpYyByZWFkb25seSBLRVlfQ09ERV9FU0MgPSAnRXNjYXBlJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZm9jdXNUcmFwV3JhcHBlcicpIGZvY3VzVHJhcFdyYXBwZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASW5wdXQoKSBpZDogYW55O1xyXG4gIEBJbnB1dCgpIGNhbGxlcjogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZm9jdXNPbkNsb3NlOiBzdHJpbmd8SFRNTEVsZW1lbnQ7XHJcbiAgQElucHV0KCkgZGlzbWlzc09uQmFja2Ryb3A6IGJvb2xlYW47XHJcblxyXG4gIHB1YmxpYyBjYWxsZXJUeXBlOiBUeXBlPGFueT47XHJcbiAgcHVibGljIG9uQ2FsbGVyQ3JlYXRpb25DYWxsYmFjazogRGlhbG9nQ3JlYXRpb25DYWxsYmFjaztcclxuXHJcbiAgbGFzdEFjdGl2ZVN0YXRlID0gZmFsc2U7XHJcbiAgZm9jdXNUcmFwOiBDb25maWd1cmFibGVGb2N1c1RyYXA7XHJcbiAgY2xpY2tPdXRzaWRlRW5hYmxlZCA9IGZhbHNlO1xyXG4gIGNoaWxkRWxlbTogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmb2N1c1RyYXBGYWN0b3J5OiBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5LFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZvY3VzVHJhcFdyYXBwZXIpIHtcclxuICAgICAgdGhpcy5oYW5kbGVBY3RpdmVTdGF0ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5jYWxsZXJUeXBlKSB7XHJcbiAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLmZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeSh0aGlzLmNhbGxlclR5cGUpO1xyXG4gICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLmNvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XHJcbiAgICAgIGlmICh0aGlzLm9uQ2FsbGVyQ3JlYXRpb25DYWxsYmFjaykge1xyXG4gICAgICAgIHRoaXMub25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrKHRoaXMsIGNvbXBvbmVudCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5mb2N1c1RyYXBXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4gJiYgdGhpcy5mb2N1c1RyYXBXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW4ubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgIHRoaXMuY2hpbGRFbGVtID0gdGhpcy5mb2N1c1RyYXBXcmFwcGVyLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF07XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5oYW5kbGVBY3RpdmVTdGF0ZSgpO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICB0aGlzLmhhbmRsZUFjdGl2ZVN0YXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgcHVibGljIGRpc21pc3MoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXHJcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gRGlhbG9nQ29tcG9uZW50LktFWV9DT0RFX0VTQykge1xyXG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgdGhpcy5kaXNtaXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVBY3RpdmVTdGF0ZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5mb2N1c1RyYXApIHtcclxuICAgICAgdGhpcy5mb2N1c1RyYXAgPSB0aGlzLmZvY3VzVHJhcEZhY3RvcnkuY3JlYXRlKHRoaXMuZm9jdXNUcmFwV3JhcHBlci5uYXRpdmVFbGVtZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5hY3RpdmUgIT09IHRoaXMubGFzdEFjdGl2ZVN0YXRlKSB7XHJcbiAgICAgIHRoaXMubGFzdEFjdGl2ZVN0YXRlID0gdGhpcy5hY3RpdmU7XHJcblxyXG4gICAgICAvLyBIYWJpbGl0YXIvZGVzaGFiaWxpdGFyIHNjcm9sbFxyXG4gICAgICBpZiAodGhpcy5hY3RpdmUgJiYgbnVtRGlhbG9nc09wZW5lZCA9PT0gMCkge1xyXG4gICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZChEaWFsb2dDb21wb25lbnQuRElBTE9HX09QRU5fQ0xBU1MpO1xyXG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLmFjdGl2ZSAmJiBudW1EaWFsb2dzT3BlbmVkID09PSAxKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKERpYWxvZ0NvbXBvbmVudC5ESUFMT0dfT1BFTl9DTEFTUyk7XHJcbiAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0Lmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVBdHRyaWJ1dGUoJ2NsYXNzJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5hY3RpdmUpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZm9jdXNUcmFwLmZvY3VzSW5pdGlhbEVsZW1lbnQoKSk7XHJcbiAgICAgICAgbnVtRGlhbG9nc09wZW5lZCsrO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBmb2N1c0VsZW06IEhUTUxFbGVtZW50O1xyXG4gICAgICAgIHRoaXMuZm9jdXNUcmFwLmRlc3Ryb3koKTtcclxuICAgICAgICBpZiAodGhpcy5mb2N1c09uQ2xvc2UpIHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb2N1c09uQ2xvc2UgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGZvY3VzRWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuZm9jdXNPbkNsb3NlKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZvY3VzRWxlbSA9IHRoaXMuZm9jdXNPbkNsb3NlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmb2N1c0VsZW0gPSBGb2N1c1V0aWxzLmdldEZpcnN0Rm9jdXNhYmxlRWxlbWVudCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZm9jdXNFbGVtKSB7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGZvY3VzRWxlbS5mb2N1cygpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbnVtRGlhbG9nc09wZW5lZC0tO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xpY2tPdXRzaWRlRW5hYmxlZCA9IHRoaXMuYWN0aXZlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc21pc3NPbkJhY2tkcm9wKSB7XHJcbiAgICAgIHRoaXMuZGlzbWlzcygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbW9kYWxzL2NvbXBvbmVudHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBR1osS0FBSyxFQUNMLFNBQVMsRUFDVCxnQkFBZ0IsRUFHaEIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFFTixZQUFZLEVBQWtDLHdCQUF3QixFQUN2RSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQXlCLDRCQUE0QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRS9ELElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO0FBT3pCLE1BQU0sT0FBTyxlQUFnQixTQUFRLHNCQUFzQjtJQXlCekQsWUFBb0IsS0FBd0IsRUFDeEIsZ0JBQThDLEVBQzlDLGVBQXlDO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBSFUsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUE4QjtRQUM5QyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFsQm5ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVdyRCxvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUV4Qix3QkFBbUIsR0FBRyxLQUFLLENBQUM7SUFPNUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxlQUFlO1FBRWIsSUFBSSxJQUFJLENB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QUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztxQkFDeEQ7eUJBQU07d0JBQ0wsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7cUJBQy9CO2lCQUNGO3FCQUFNO29CQUNMLFNBQVMsR0FBRyxVQUFVLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztpQkFDbkQ7Z0JBQ0QsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO2lCQUNyQztnQkFDRCxnQkFBZ0IsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUQ7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUNoQjtJQUNILENBQUM7O0FBdkhlLGlDQUFpQixHQUFHLFlBQVksQ0FBQztBQUNqQyw0QkFBWSxHQUFHLFFBQVEsQ0FBQzs7WUFQekMsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFhO2dCQUN2Qiw2dUNBQXNDO2FBQ3ZDOzs7WUFmQyxpQkFBaUI7WUFNYSw0QkFBNEI7WUFIWix3QkFBd0I7Ozt3QkFrQnJFLFNBQVMsU0FBQyxXQUFXLEVBQUUsRUFBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUM7K0JBQy9DLFNBQVMsU0FBQyxrQkFBa0I7cUJBRTVCLEtBQUs7MkJBQ0wsTUFBTTtpQkFFTixLQUFLO3FCQUNMLEtBQUs7MkJBQ0wsS0FBSztnQ0FDTCxLQUFLO3NCQUNMLEtBQUs7c0JBbURMLFlBQVksU0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT3V0cHV0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEV2ZW50RW1pdHRlciwgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmLCBUeXBlLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgQ29uZmlndXJhYmxlRm9jdXNUcmFwLCBDb25maWd1cmFibGVGb2N1c1RyYXBGYWN0b3J5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBGb2N1c1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3V0aWxzL2ZvY3VzLXV0aWxzJztcclxuXHJcbmxldCBudW1EaWFsb2dzT3BlbmVkID0gMDtcclxudHlwZSBEaWFsb2dDcmVhdGlvbkNhbGxiYWNrID0gKChkaWFsb2c6IERpYWxvZ0NvbXBvbmVudCwgY2FsbGVyOiBDb21wb25lbnRSZWY8YW55PikgPT4gdm9pZCk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Rlc3ktZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQWNjZXNzaWJpbGl0eUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgc3RhdGljIHJlYWRvbmx5IERJQUxPR19PUEVOX0NMQVNTID0gJ2hhcy1kaWFsb2cnO1xyXG4gIHN0YXRpYyByZWFkb25seSBLRVlfQ09ERV9FU0MgPSAnRXNjYXBlJztcclxuXHJcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywge3JlYWQ6IFZpZXdDb250YWluZXJSZWZ9KSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcbiAgQFZpZXdDaGlsZCgnZm9jdXNUcmFwV3JhcHBlcicpIGZvY3VzVHJhcFdyYXBwZXI6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcclxuICBAT3V0cHV0KCkgYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBASW5wdXQoKSBpZDogYW55O1xyXG4gIEBJbnB1dCgpIGNhbGxlcjogVGVtcGxhdGVSZWY8YW55PjtcclxuICBASW5wdXQoKSBmb2N1c09uQ2xvc2U6IHN0cmluZ3xIVE1MRWxlbWVudDtcclxuICBASW5wdXQoKSBkaXNtaXNzT25CYWNrZHJvcDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjbGFzc2VzOiBzdHJpbmc7XHJcbiAgXHJcbiAgcHVibGljIGNhbGxlclR5cGU6IFR5cGU8YW55PjtcclxuICBwdWJsaWMgb25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrOiBEaWFsb2dDcmVhdGlvbkNhbGxiYWNrO1xyXG5cclxuICBsYXN0QWN0aXZlU3RhdGUgPSBmYWxzZTtcclxuICBmb2N1c1RyYXA6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcDtcclxuICBjbGlja091dHNpZGVFbmFibGVkID0gZmFsc2U7XHJcbiAgY2hpbGRFbGVtOiBFbGVtZW50UmVmO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICBwcml2YXRlIGZvY3VzVHJhcEZhY3Rvcnk6IENvbmZpZ3VyYWJsZUZvY3VzVHJhcEZhY3RvcnksXHJcbiAgICAgICAgICAgICAgcHJpdmF0ZSBmYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcikge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZm9jdXNUcmFwV3JhcHBlcikge1xyXG4gICAgICB0aGlzLmhhbmRsZUFjdGl2ZVN0YXRlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBcclxuICAgIGlmICh0aGlzLmNhbGxlclR5cGUpIHtcclxuICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuZmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KHRoaXMuY2FsbGVyVHlwZSk7XHJcbiAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuY29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcclxuICAgICAgaWYgKHRoaXMub25DYWxsZXJDcmVhdGlvbkNhbGxiYWNrKSB7XHJcbiAgICAgICAgdGhpcy5vbkNhbGxlckNyZWF0aW9uQ2FsbGJhY2sodGhpcywgY29tcG9uZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmZvY3VzVHJhcFdyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbiAmJiB0aGlzLmZvY3VzVHJhcFdyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDEpIHtcclxuICAgICAgdGhpcy5jaGlsZEVsZW0gPSB0aGlzLmZvY3VzVHJhcFdyYXBwZXIubmF0aXZlRWxlbWVudC5jaGlsZHJlblswXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmhhbmRsZUFjdGl2ZVN0YXRlKCk7XHJcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcclxuICAgIHRoaXMuaGFuZGxlQWN0aXZlU3RhdGUoKTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgZGlzbWlzcygpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcclxuICBvbktleVVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBpZiAoZXZlbnQua2V5ID09PSBEaWFsb2dDb21wb25lbnQuS0VZX0NPREVfRVNDKSB7XHJcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgICB0aGlzLmRpc21pc3MoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZUFjdGl2ZVN0YXRlKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZvY3VzVHJhcCkge1xyXG4gICAgICB0aGlzLmZvY3VzVHJhcCA9IHRoaXMuZm9jdXNUcmFwRmFjdG9yeS5jcmVhdGUodGhpcy5mb2N1c1RyYXBXcmFwcGVyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmFjdGl2ZSAhPT0gdGhpcy5sYXN0QWN0aXZlU3RhdGUpIHtcclxuICAgICAgdGhpcy5sYXN0QWN0aXZlU3RhdGUgPSB0aGlzLmFjdGl2ZTtcclxuXHJcbiAgICAgIC8vIEhhYmlsaXRhci9kZXNoYWJpbGl0YXIgc2Nyb2xsXHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZSAmJiBudW1EaWFsb2dzT3BlbmVkID09PSAwKSB7XHJcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKERpYWxvZ0NvbXBvbmVudC5ESUFMT0dfT1BFTl9DTEFTUyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuYWN0aXZlICYmIG51bURpYWxvZ3NPcGVuZWQgPT09IDEpIHtcclxuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5yZW1vdmUoRGlhbG9nQ29tcG9uZW50LkRJQUxPR19PUEVOX0NMQVNTKTtcclxuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUF0dHJpYnV0ZSgnY2xhc3MnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZSkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1c1RyYXAuZm9jdXNJbml0aWFsRWxlbWVudCgpKTtcclxuICAgICAgICBudW1EaWFsb2dzT3BlbmVkKys7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IGZvY3VzRWxlbTogSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgdGhpcy5mb2N1c1RyYXAuZGVzdHJveSgpO1xyXG4gICAgICAgIGlmICh0aGlzLmZvY3VzT25DbG9zZSkge1xyXG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZvY3VzT25DbG9zZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgZm9jdXNFbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5mb2N1c09uQ2xvc2UpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgZm9jdXNFbGVtID0gdGhpcy5mb2N1c09uQ2xvc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZvY3VzRWxlbSA9IEZvY3VzVXRpbHMuZ2V0Rmlyc3RGb2N1c2FibGVFbGVtZW50KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChmb2N1c0VsZW0pIHtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZm9jdXNFbGVtLmZvY3VzKCkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBudW1EaWFsb2dzT3BlbmVkLS07XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbGlja091dHNpZGVFbmFibGVkID0gdGhpcy5hY3RpdmUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2xpY2tPdXRzaWRlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzbWlzc09uQmFja2Ryb3ApIHtcclxuICAgICAgdGhpcy5kaXNtaXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ export class ModalButtonLoaderPrimaryComponent extends ButtonLoaderComponent {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.clickEvent = new EventEmitter();
7
+ }
8
+ }
9
+ ModalButtonLoaderPrimaryComponent.decorators = [
10
+ { type: Component, args: [{
11
+ selector: 'desy-modal-button-loader-primary',
12
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
13
+ },] }
14
+ ];
15
+ ModalButtonLoaderPrimaryComponent.propDecorators = {
16
+ classes: [{ type: Input }],
17
+ state: [{ type: Input }],
18
+ clickEvent: [{ type: Output }]
19
+ };
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9uLWxvYWRlci1wcmltYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc3ktYW5ndWxhci9zcmMvbGliL2Rlc3ktbW9kYWxzL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwtYnV0dG9uLWxvYWRlci1wcmltYXJ5L21vZGFsLWJ1dHRvbi1sb2FkZXItcHJpbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFFcEgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVFyRSxNQUFNLE9BQU8saUNBQWtDLFNBQVEscUJBQXFCO0lBSjVFOztRQU9ZLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7OztZQVJBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2dCQUM1QyxRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBRUUsS0FBSztvQkFDTCxLQUFLO3lCQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXR0b25Mb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2Rlc3ktYnV0dG9ucy9jb21wb25lbnRzL2J1dHRvbi1sb2FkZXIvYnV0dG9uLWxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2Rlc3ktYnV0dG9ucy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtNb2RhbEJ1dHRvbkRhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1vZGFsLWJ1dHRvbi1sb2FkZXItcHJpbWFyeScsXHJcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbEJ1dHRvbkxvYWRlclByaW1hcnlDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25Mb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBNb2RhbEJ1dHRvbkRhdGEge1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuICBASW5wdXQoKSBzdGF0ZTogc3RyaW5nO1xyXG4gIEBPdXRwdXQoKSBjbGlja0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { ButtonLoaderComponent } from './../../../../desy-buttons/components/button-loader/button-loader.component';
2
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
3
+ export class ModalButtonLoaderSecondaryComponent extends ButtonLoaderComponent {
4
+ constructor() {
5
+ super(...arguments);
6
+ this.clickEvent = new EventEmitter();
7
+ }
8
+ }
9
+ ModalButtonLoaderSecondaryComponent.decorators = [
10
+ { type: Component, args: [{
11
+ selector: 'desy-modal-button-loader-secondary',
12
+ template: '<ng-template #contentTemplate><ng-content></ng-content></ng-template>'
13
+ },] }
14
+ ];
15
+ ModalButtonLoaderSecondaryComponent.propDecorators = {
16
+ classes: [{ type: Input }],
17
+ clickEvent: [{ type: Output }]
18
+ };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9uLWxvYWRlci1zZWNvbmRhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1tb2RhbHMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC1idXR0b24tbG9hZGVyLXNlY29uZGFyeS9tb2RhbC1idXR0b24tbG9hZGVyLXNlY29uZGFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkVBQTZFLENBQUM7QUFFcEgsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQVFyRSxNQUFNLE9BQU8sbUNBQW9DLFNBQVEscUJBQXFCO0lBSjlFOztRQU9ZLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7OztZQVJBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsb0NBQW9DO2dCQUM5QyxRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBRUUsS0FBSzt5QkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnV0dG9uTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9kZXN5LWJ1dHRvbnMvY29tcG9uZW50cy9idXR0b24tbG9hZGVyL2J1dHRvbi1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi8uLi8uLi8uLi8uLi9kZXN5LWJ1dHRvbnMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRlbnRCYXNlQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cyc7XHJcbmltcG9ydCB7TW9kYWxCdXR0b25EYXRhfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGVzeS1tb2RhbC1idXR0b24tbG9hZGVyLXNlY29uZGFyeScsXHJcbiAgdGVtcGxhdGU6ICc8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9uZy10ZW1wbGF0ZT4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNb2RhbEJ1dHRvbkxvYWRlclNlY29uZGFyeUNvbXBvbmVudCBleHRlbmRzIEJ1dHRvbkxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsQnV0dG9uRGF0YSB7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
+ import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';
1
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { ContentBaseComponent } from '../../../../shared/components';
3
- export class ModalButtonPrimaryComponent extends ContentBaseComponent {
3
+ export class ModalButtonPrimaryComponent extends ButtonComponent {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  this.clickEvent = new EventEmitter();
@@ -16,4 +16,4 @@ ModalButtonPrimaryComponent.propDecorators = {
16
16
  classes: [{ type: Input }],
17
17
  clickEvent: [{ type: Output }]
18
18
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9uLXByaW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1tb2RhbHMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC1idXR0b24tcHJpbWFyeS9tb2RhbC1idXR0b24tcHJpbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU9uRSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsb0JBQW9CO0lBSnJFOztRQU9ZLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7OztZQVJBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBRUUsS0FBSzt5QkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtNb2RhbEJ1dHRvbkRhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1vZGFsLWJ1dHRvbi1wcmltYXJ5JyxcclxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPidcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQnV0dG9uUHJpbWFyeUNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgTW9kYWxCdXR0b25EYXRhIHtcclxuICBASW5wdXQoKSBjbGFzc2VzPzogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxufVxyXG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9uLXByaW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzeS1hbmd1bGFyL3NyYy9saWIvZGVzeS1tb2RhbHMvY29tcG9uZW50cy9tb2RhbC9tb2RhbC1idXR0b24tcHJpbWFyeS9tb2RhbC1idXR0b24tcHJpbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRckUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLGVBQWU7SUFKaEU7O1FBT1ksZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7O1lBUkEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSwyQkFBMkI7Z0JBQ3JDLFFBQVEsRUFBRSx1RUFBdUU7YUFDbEY7OztzQkFFRSxLQUFLO3lCQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2Rlc3ktYnV0dG9ucy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtNb2RhbEJ1dHRvbkRhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1vZGFsLWJ1dHRvbi1wcmltYXJ5JyxcclxuICB0ZW1wbGF0ZTogJzxuZy10ZW1wbGF0ZSAjY29udGVudFRlbXBsYXRlPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPidcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vZGFsQnV0dG9uUHJpbWFyeUNvbXBvbmVudCBleHRlbmRzIEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsQnV0dG9uRGF0YSB7XHJcbiAgQElucHV0KCkgY2xhc3Nlczogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgY2xpY2tFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
+ import { ButtonComponent } from './../../../../desy-buttons/components/button/button.component';
1
2
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { ContentBaseComponent } from '../../../../shared/components';
3
- export class ModalButtonSecondaryComponent extends ContentBaseComponent {
3
+ export class ModalButtonSecondaryComponent extends ButtonComponent {
4
4
  constructor() {
5
5
  super(...arguments);
6
6
  this.clickEvent = new EventEmitter();
@@ -16,4 +16,4 @@ ModalButtonSecondaryComponent.propDecorators = {
16
16
  classes: [{ type: Input }],
17
17
  clickEvent: [{ type: Output }]
18
18
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9uLXNlY29uZGFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW1vZGFscy9jb21wb25lbnRzL21vZGFsL21vZGFsLWJ1dHRvbi1zZWNvbmRhcnkvbW9kYWwtYnV0dG9uLXNlY29uZGFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQU9uRSxNQUFNLE9BQU8sNkJBQThCLFNBQVEsb0JBQW9CO0lBSnZFOztRQU9ZLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzVDLENBQUM7OztZQVJBLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsNkJBQTZCO2dCQUN2QyxRQUFRLEVBQUUsdUVBQXVFO2FBQ2xGOzs7c0JBRUUsS0FBSzt5QkFFTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtNb2RhbEJ1dHRvbkRhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1vZGFsLWJ1dHRvbi1zZWNvbmRhcnknLFxyXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCdXR0b25TZWNvbmRhcnlDb21wb25lbnQgZXh0ZW5kcyBDb250ZW50QmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE1vZGFsQnV0dG9uRGF0YSB7XHJcbiAgQElucHV0KCkgY2xhc3Nlcz86IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbn1cclxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYnV0dG9uLXNlY29uZGFyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXN5LWFuZ3VsYXIvc3JjL2xpYi9kZXN5LW1vZGFscy9jb21wb25lbnRzL21vZGFsL21vZGFsLWJ1dHRvbi1zZWNvbmRhcnkvbW9kYWwtYnV0dG9uLXNlY29uZGFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFRckUsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGVBQWU7SUFKbEU7O1FBT1ksZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDNUMsQ0FBQzs7O1lBUkEsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw2QkFBNkI7Z0JBQ3ZDLFFBQVEsRUFBRSx1RUFBdUU7YUFDbEY7OztzQkFFRSxLQUFLO3lCQUVMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLy4uLy4uLy4uLy4uL2Rlc3ktYnV0dG9ucy9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udGVudEJhc2VDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9jb21wb25lbnRzJztcclxuaW1wb3J0IHtNb2RhbEJ1dHRvbkRhdGF9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZXN5LW1vZGFsLWJ1dHRvbi1zZWNvbmRhcnknLFxyXG4gIHRlbXBsYXRlOiAnPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctdGVtcGxhdGU+J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9kYWxCdXR0b25TZWNvbmRhcnlDb21wb25lbnQgZXh0ZW5kcyBCdXR0b25Db21wb25lbnQgaW1wbGVtZW50cyBNb2RhbEJ1dHRvbkRhdGEge1xyXG4gIEBJbnB1dCgpIGNsYXNzZXM6IHN0cmluZztcclxuXHJcbiAgQE91dHB1dCgpIGNsaWNrRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbn1cclxuIl19