@fundamental-ngx/core 0.35.0-rc.4 → 0.35.0-rc.7

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 (123) hide show
  1. package/action-bar/package.json +1 -1
  2. package/action-sheet/package.json +1 -1
  3. package/alert/package.json +1 -1
  4. package/avatar/package.json +1 -1
  5. package/avatar-group/package.json +1 -1
  6. package/bar/package.json +1 -1
  7. package/breadcrumb/package.json +1 -1
  8. package/busy-indicator/package.json +1 -1
  9. package/button/package.json +1 -1
  10. package/calendar/package.json +1 -1
  11. package/card/package.json +1 -1
  12. package/carousel/package.json +1 -1
  13. package/checkbox/package.json +1 -1
  14. package/combobox/package.json +1 -1
  15. package/date-picker/package.json +1 -1
  16. package/datetime/package.json +1 -1
  17. package/datetime-picker/package.json +1 -1
  18. package/dialog/package.json +1 -1
  19. package/dynamic-page/package.json +1 -1
  20. package/dynamic-side-content/package.json +1 -1
  21. package/esm2020/input-group/input-group.component.mjs +57 -68
  22. package/esm2020/multi-input/multi-input.component.mjs +5 -5
  23. package/esm2020/select/select.component.mjs +3 -3
  24. package/facets/package.json +1 -1
  25. package/feed-input/package.json +1 -1
  26. package/feed-list-item/package.json +1 -1
  27. package/fesm2015/fundamental-ngx-core-input-group.mjs +58 -68
  28. package/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  29. package/fesm2015/fundamental-ngx-core-multi-input.mjs +4 -4
  30. package/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  31. package/fesm2015/fundamental-ngx-core-select.mjs +2 -2
  32. package/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  33. package/fesm2020/fundamental-ngx-core-input-group.mjs +57 -67
  34. package/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  35. package/fesm2020/fundamental-ngx-core-multi-input.mjs +4 -4
  36. package/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  37. package/fesm2020/fundamental-ngx-core-select.mjs +2 -2
  38. package/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  39. package/file-uploader/package.json +1 -1
  40. package/fixed-card-layout/package.json +1 -1
  41. package/flexible-column-layout/package.json +1 -1
  42. package/form/package.json +1 -1
  43. package/formatted-text/package.json +1 -1
  44. package/grid-list/package.json +1 -1
  45. package/icon/package.json +1 -1
  46. package/illustrated-message/package.json +1 -1
  47. package/infinite-scroll/package.json +1 -1
  48. package/info-label/package.json +1 -1
  49. package/inline-help/package.json +1 -1
  50. package/input-group/esm2020/input-group.component.mjs +57 -68
  51. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs +58 -68
  52. package/input-group/fesm2015/fundamental-ngx-core-input-group.mjs.map +1 -1
  53. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs +57 -67
  54. package/input-group/fesm2020/fundamental-ngx-core-input-group.mjs.map +1 -1
  55. package/input-group/input-group.component.d.ts +30 -30
  56. package/input-group/package.json +1 -1
  57. package/layout-grid/package.json +1 -1
  58. package/layout-panel/package.json +1 -1
  59. package/link/package.json +1 -1
  60. package/list/package.json +1 -1
  61. package/menu/package.json +1 -1
  62. package/message-box/package.json +1 -1
  63. package/message-strip/package.json +1 -1
  64. package/message-toast/package.json +1 -1
  65. package/micro-process-flow/package.json +1 -1
  66. package/mobile-mode/package.json +1 -1
  67. package/multi-input/esm2020/multi-input.component.mjs +5 -5
  68. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs +4 -4
  69. package/multi-input/fesm2015/fundamental-ngx-core-multi-input.mjs.map +1 -1
  70. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs +4 -4
  71. package/multi-input/fesm2020/fundamental-ngx-core-multi-input.mjs.map +1 -1
  72. package/multi-input/multi-input.component.d.ts +1 -1
  73. package/multi-input/package.json +1 -1
  74. package/nested-list/package.json +1 -1
  75. package/notification/package.json +1 -1
  76. package/object-identifier/package.json +1 -1
  77. package/object-marker/package.json +1 -1
  78. package/object-number/package.json +1 -1
  79. package/object-status/package.json +1 -1
  80. package/package.json +1 -1
  81. package/pagination/package.json +1 -1
  82. package/panel/package.json +1 -1
  83. package/popover/package.json +1 -1
  84. package/product-switch/package.json +1 -1
  85. package/progress-indicator/package.json +1 -1
  86. package/quick-view/package.json +1 -1
  87. package/radio/package.json +1 -1
  88. package/rating-indicator/package.json +1 -1
  89. package/resizable-card-layout/package.json +1 -1
  90. package/scroll-spy/package.json +1 -1
  91. package/scrollbar/package.json +1 -1
  92. package/segmented-button/package.json +1 -1
  93. package/select/esm2020/select.component.mjs +3 -3
  94. package/select/fesm2015/fundamental-ngx-core-select.mjs +2 -2
  95. package/select/fesm2015/fundamental-ngx-core-select.mjs.map +1 -1
  96. package/select/fesm2020/fundamental-ngx-core-select.mjs +2 -2
  97. package/select/fesm2020/fundamental-ngx-core-select.mjs.map +1 -1
  98. package/select/package.json +1 -1
  99. package/shared/package.json +1 -1
  100. package/shellbar/package.json +1 -1
  101. package/side-navigation/package.json +1 -1
  102. package/slider/package.json +1 -1
  103. package/split-button/package.json +1 -1
  104. package/splitter/package.json +1 -1
  105. package/status-indicator/package.json +1 -1
  106. package/step-input/package.json +1 -1
  107. package/switch/package.json +1 -1
  108. package/table/package.json +1 -1
  109. package/tabs/package.json +1 -1
  110. package/text/package.json +1 -1
  111. package/theming/package.json +1 -1
  112. package/tile/package.json +1 -1
  113. package/time/package.json +1 -1
  114. package/time-picker/package.json +1 -1
  115. package/timeline/package.json +1 -1
  116. package/title/package.json +1 -1
  117. package/token/package.json +1 -1
  118. package/toolbar/package.json +1 -1
  119. package/tree/package.json +1 -1
  120. package/upload-collection/package.json +1 -1
  121. package/utils/package.json +1 -1
  122. package/vertical-navigation/package.json +1 -1
  123. package/wizard/package.json +1 -1
@@ -512,7 +512,7 @@ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
512
512
  useExisting: SelectComponent
513
513
  },
514
514
  SelectKeyManagerService
515
- ], queries: [{ propertyName: "_options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "_controlElementRef", first: true, predicate: ["selectControl"], descendants: true }, { propertyName: "selectOptionsListTemplate", first: true, predicate: ["selectOptionsListTemplate"], descendants: true }, { propertyName: "_dialogContainerElementRef", first: true, predicate: ["dialogContainer"], descendants: true }, { propertyName: "_overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "_optionPanel", first: true, predicate: ["optionPanel"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [isOpen]=\"_isOpen\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [disabled]=\"disabled || readonly\"\n [appendTo]=\"appendTo\"\n [closeOnEscapeKey]=\"true\"\n fillControlMode=\"at-least\"\n [maxWidth]=\"600\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n >\n <fd-popover-control>\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </fd-popover-control>\n\n <fd-popover-body class=\"fd-popover-custom-select-body\">\n <ng-container [ngTemplateOutlet]=\"selectOptionsListTemplate\"></ng-container>\n </fd-popover-body>\n </fd-popover>\n </div>\n</ng-template>\n\n<ng-template #selectInputControlTemplate>\n <div\n class=\"fd-select__control\"\n role=\"list\"\n #selectControl\n [class]=\"state ? 'is-' + state : ''\"\n [class.is-active]=\"_isOpen\"\n [class.is-expanded]=\"_isOpen\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [attr.tabindex]=\"_tabIndex\"\n [attr.id]=\"controlId\"\n [attr.aria-active]=\"_isOpen\"\n aria-live=\"polite\"\n [attr.aria-selected]=\"selected?.selected\"\n [attr.aria-expanded]=\"_isOpen\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-controls]=\"controlId + '-list-box'\"\n [attr.aria-haspopup]=\"!(this.readonly || this.disabled)\"\n [attr.aria-required]=\"required\"\n [attr.title]=\"triggerValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-activedescendant]=\"_getAriaActiveDescendant()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n >\n <div role=\"listitem\" class=\"fd-select__text-content\" [attr.aria-label]=\"triggerValue\">\n <ng-container\n [ngTemplateOutlet]=\"controlTemplate ? controlTemplate : defaultSelectContent\"\n [ngTemplateOutletContext]=\"{ $implicit: triggerValue, selected: selected }\"\n >\n </ng-container>\n\n <ng-template #defaultSelectContent>\n {{ triggerValue }}\n </ng-template>\n </div>\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-button--transparent fd-select__button\"\n *ngIf=\"!readonly\"\n [disabled]=\"disabled\"\n [glyph]=\"glyph\"\n ></button>\n </div>\n</ng-template>\n\n<ng-template #selectOptionsListTemplate>\n <ul\n #optionPanel\n fd-list\n class=\"fd-select-options\"\n role=\"listbox\"\n tabindex=\"-1\"\n [compact]=\"compact\"\n [mobileMode]=\"mobile\"\n [dropdownMode]=\"true\"\n [hasMessage]=\"!!stateMessage\"\n [attr.id]=\"controlId + '-list-box'\"\n [style.max-height]=\"maxHeight || calculatedMaxHeight + 'px'\"\n [attr.tooltip]=\"triggerValue\"\n >\n <li\n *ngIf=\"stateMessage\"\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </div>\n\n <div #dialogContainer></div>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-select{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;text-shadow:var(--fdSelect_Text_Shadow)}.fd-select:before,.fd-select:after{box-sizing:inherit;font-size:inherit}.fd-select__control{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;margin:0;border:0;white-space:nowrap;text-overflow:ellipsis;z-index:1;width:100%;min-width:2.75rem;border-radius:var(--sapField_BorderCornerRadius);padding:0 .625rem;margin:.25rem 0;height:2.25rem;box-shadow:none;color:var(--sapField_TextColor);text-shadow:var(--fdInput_Text_Shadow);background:var(--sapField_BackgroundStyle);background-color:var(--sapField_Background);border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);cursor:text;outline:none;overflow:hidden;appearance:none;-moz-appearance:none;-webkit-appearance:none;display:flex;justify-content:center;align-items:center;justify-content:space-between;padding:0;margin-bottom:0}.fd-select__control:before,.fd-select__control:after{box-sizing:inherit;font-size:inherit}.fd-select__control::placeholder{font-style:var(--fdPlaceholder_Font_Style);color:var(--sapField_PlaceholderTextColor)}.fd-select__control::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--sapSelectedColor)}.fd-select__control::-ms-clear{display:none}.fd-select__control:hover,.fd-select__control.is-hover{background:var(--sapField_Hover_BackgroundStyle);background-color:var(--sapField_Hover_Background);border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control:focus,.fd-select__control.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-width:var(--sapContent_FocusWidth);outline-style:var(--sapContent_FocusStyle);outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);box-shadow:none}.fd-select__control.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-select__control.is-success:hover,.fd-select__control.is-success.is-hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success:focus,.fd-select__control.is-success.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-select__control.is-success:focus:hover,.fd-select__control.is-success:focus.is-hover,.fd-select__control.is-success.is-focus:hover,.fd-select__control.is-success.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-select__control.is-error:hover,.fd-select__control.is-error.is-hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-select__control.is-error:focus:hover,.fd-select__control.is-error:focus.is-hover,.fd-select__control.is-error.is-focus:hover,.fd-select__control.is-error.is-focus.is-hover{box-shadow:none}.fd-select__control.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-warning:hover,.fd-select__control.is-warning.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-warning:focus:hover,.fd-select__control.is-warning:focus.is-hover,.fd-select__control.is-warning.is-focus:hover,.fd-select__control.is-warning.is-focus.is-hover{box-shadow:none}.fd-select__control.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-alert:hover,.fd-select__control.is-alert.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-alert:focus:hover,.fd-select__control.is-alert:focus.is-hover,.fd-select__control.is-alert.is-focus:hover,.fd-select__control.is-alert.is-focus.is-hover{box-shadow:none}.fd-select__control.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-select__control.is-information:hover,.fd-select__control.is-information.is-hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-select__control.is-information:focus:hover,.fd-select__control.is-information:focus.is-hover,.fd-select__control.is-information.is-focus:hover,.fd-select__control.is-information.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error,.fd-select__control.is-warning,.fd-select__control.is-alert{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error::placeholder,.fd-select__control.is-warning::placeholder,.fd-select__control.is-alert::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus,.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus,.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus,.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;outline-offset:var(--fdInput_Outline_Offset_States)}.fd-select__control.is-error::placeholder{color:var(--sapField_TextColor)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none;opacity:var(--sapContent_DisabledOpacity)}.fd-select__control[aria-disabled=true]::placeholder,.fd-select__control.is-disabled::placeholder,.fd-select__control:disabled::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);pointer-events:none}.fd-select__control[aria-readonly=true]::placeholder,.fd-select__control.is-readonly::placeholder,.fd-select__control[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true]:hover,.fd-select__control[aria-readonly=true].is-hover,.fd-select__control.is-readonly:hover,.fd-select__control.is-readonly.is-hover,.fd-select__control[readonly]:hover,.fd-select__control[readonly].is-hover{box-shadow:none}.fd-select__control[aria-readonly=true]:focus,.fd-select__control[aria-readonly=true].is-focus,.fd-select__control.is-readonly:focus,.fd-select__control.is-readonly.is-focus,.fd-select__control[readonly]:focus,.fd-select__control[readonly].is-focus{z-index:5;background:var(--sapField_Focus_Background);border-radius:var(--sapField_BorderCornerRadius)}.fd-select__control .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-hover,.fd-select__control .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-active,.fd-select__control .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control.is-success .fd-select__button:hover,.fd-select__control.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-success .fd-select__button:active,.fd-select__control.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:hover,.fd-select__control.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:active,.fd-select__control.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:hover,.fd-select__control.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:active,.fd-select__control.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:hover,.fd-select__control.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:active,.fd-select__control.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:hover,.fd-select__control.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:active,.fd-select__control.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none}.fd-select__control .fd-select__button{margin-left:.25rem}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{margin-right:.25rem;margin-left:0}.fd-select__control .fd-select__button .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button,.fd-select__control .fd-select__button .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-hover,.fd-select__control .fd-select__button .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-active,.fd-select__control .fd-select__button .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button.is-success .fd-select__button:hover,.fd-select__control .fd-select__button.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-success .fd-select__button:active,.fd-select__control .fd-select__button.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:hover,.fd-select__control .fd-select__button.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:active,.fd-select__control .fd-select__button.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:hover,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:active,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:hover,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:active,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:hover,.fd-select__control .fd-select__button.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:active,.fd-select__control .fd-select__button.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{cursor:text}.fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select__control.is-readonly .fd-select__text-content,.fd-select__control[readonly] .fd-select__text-content{padding-left:.625rem;padding-right:.625rem;min-width:calc(5rem - var(--sapField_BorderWidth) * 2)}.fd-select__control[aria-expanded=true],.fd-select__control.is-expanded{box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control[aria-expanded=true] .fd-select__button,.fd-select__control.is-expanded .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control[aria-expanded=true]:focus,.fd-select__control[aria-expanded=true].is-focus,.fd-select__control.is-expanded:focus,.fd-select__control.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control[aria-expanded=true]:hover .fd-select__button,.fd-select__control[aria-expanded=true].is-hover .fd-select__button,.fd-select__control.is-expanded:hover .fd-select__button,.fd-select__control.is-expanded.is-hover .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Hover_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color_Hover);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control.is-success[aria-expanded=true],.fd-select__control.is-success.is-expanded{box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true] .fd-select__button,.fd-select__control.is-success.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Success_Active_Text_Color);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true]:focus,.fd-select__control.is-success[aria-expanded=true].is-focus,.fd-select__control.is-success.is-expanded:focus,.fd-select__control.is-success.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-error[aria-expanded=true],.fd-select__control.is-error.is-expanded{box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true] .fd-select__button,.fd-select__control.is-error.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Error_Active_Text_Color);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true]:focus,.fd-select__control.is-error[aria-expanded=true].is-focus,.fd-select__control.is-error.is-expanded:focus,.fd-select__control.is-error.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-warning[aria-expanded=true],.fd-select__control.is-warning.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true] .fd-select__button,.fd-select__control.is-warning.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true]:focus,.fd-select__control.is-warning[aria-expanded=true].is-focus,.fd-select__control.is-warning.is-expanded:focus,.fd-select__control.is-warning.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-alert[aria-expanded=true],.fd-select__control.is-alert.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true] .fd-select__button,.fd-select__control.is-alert.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true]:focus,.fd-select__control.is-alert[aria-expanded=true].is-focus,.fd-select__control.is-alert.is-expanded:focus,.fd-select__control.is-alert.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-information[aria-expanded=true],.fd-select__control.is-information.is-expanded{box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true] .fd-select__button,.fd-select__control.is-information.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Information_Active_Text_Color);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true]:focus,.fd-select__control.is-information[aria-expanded=true].is-focus,.fd-select__control.is-information.is-expanded:focus,.fd-select__control.is-information.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__text-content{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:.625rem;min-width:calc(2.5rem - var(--sapField_BorderWidth) * 2);display:inline-block}.fd-select__text-content:before,.fd-select__text-content:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-select__text-content,.fd-select__text-content[dir=rtl]{padding-right:.625rem;padding-left:0}.fd-select--compact .fd-select__control{height:1.625rem}.fd-select--compact .fd-select__control .fd-select__text-content{padding-left:.5rem;min-width:calc(2.75rem - var(--sapField_BorderWidth) * 2)}[dir=rtl] .fd-select--compact .fd-select__control .fd-select__text-content,.fd-select--compact .fd-select__control .fd-select__text-content[dir=rtl]{padding-right:.5rem;padding-left:0}.fd-select--compact .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select--compact .fd-select__control.is-readonly .fd-select__text-content,.fd-select--compact .fd-select__control[readonly] .fd-select__text-content{padding-left:.5rem;padding-right:.5rem}.fd-popover__body>:first-child{border-radius:0}.fd-select__text-content{overflow:hidden;text-overflow:ellipsis;line-height:1rem;display:block}.fd-select-custom-class{display:inline-block;max-width:100%}.fd-popover-custom-select-body{max-width:100%}\n"], components: [{ type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "compact", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }], directives: [{ type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
515
+ ], queries: [{ propertyName: "_options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "_controlElementRef", first: true, predicate: ["selectControl"], descendants: true }, { propertyName: "selectOptionsListTemplate", first: true, predicate: ["selectOptionsListTemplate"], descendants: true }, { propertyName: "_dialogContainerElementRef", first: true, predicate: ["dialogContainer"], descendants: true }, { propertyName: "_overlayDir", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "_optionPanel", first: true, predicate: ["optionPanel"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [isOpen]=\"_isOpen\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [disabled]=\"disabled || readonly\"\n [appendTo]=\"appendTo\"\n [closeOnEscapeKey]=\"true\"\n [fillControlMode]=\"fillControlMode\"\n [maxWidth]=\"600\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n >\n <fd-popover-control>\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </fd-popover-control>\n\n <fd-popover-body class=\"fd-popover-custom-select-body\">\n <ng-container [ngTemplateOutlet]=\"selectOptionsListTemplate\"></ng-container>\n </fd-popover-body>\n </fd-popover>\n </div>\n</ng-template>\n\n<ng-template #selectInputControlTemplate>\n <div\n class=\"fd-select__control\"\n role=\"list\"\n #selectControl\n [class]=\"state ? 'is-' + state : ''\"\n [class.is-active]=\"_isOpen\"\n [class.is-expanded]=\"_isOpen\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [attr.tabindex]=\"_tabIndex\"\n [attr.id]=\"controlId\"\n [attr.aria-active]=\"_isOpen\"\n aria-live=\"polite\"\n [attr.aria-selected]=\"selected?.selected\"\n [attr.aria-expanded]=\"_isOpen\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-controls]=\"controlId + '-list-box'\"\n [attr.aria-haspopup]=\"!(this.readonly || this.disabled)\"\n [attr.aria-required]=\"required\"\n [attr.title]=\"triggerValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-activedescendant]=\"_getAriaActiveDescendant()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n >\n <div role=\"listitem\" class=\"fd-select__text-content\" [attr.aria-label]=\"triggerValue\">\n <ng-container\n [ngTemplateOutlet]=\"controlTemplate ? controlTemplate : defaultSelectContent\"\n [ngTemplateOutletContext]=\"{ $implicit: triggerValue, selected: selected }\"\n >\n </ng-container>\n\n <ng-template #defaultSelectContent>\n {{ triggerValue }}\n </ng-template>\n </div>\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-button--transparent fd-select__button\"\n *ngIf=\"!readonly\"\n [disabled]=\"disabled\"\n [glyph]=\"glyph\"\n ></button>\n </div>\n</ng-template>\n\n<ng-template #selectOptionsListTemplate>\n <ul\n #optionPanel\n fd-list\n class=\"fd-select-options\"\n role=\"listbox\"\n tabindex=\"-1\"\n [compact]=\"compact\"\n [mobileMode]=\"mobile\"\n [dropdownMode]=\"true\"\n [hasMessage]=\"!!stateMessage\"\n [attr.id]=\"controlId + '-list-box'\"\n [style.max-height]=\"maxHeight || calculatedMaxHeight + 'px'\"\n [attr.tooltip]=\"triggerValue\"\n >\n <li\n *ngIf=\"stateMessage\"\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </div>\n\n <div #dialogContainer></div>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-select{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;text-shadow:var(--fdSelect_Text_Shadow)}.fd-select:before,.fd-select:after{box-sizing:inherit;font-size:inherit}.fd-select__control{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;margin:0;border:0;white-space:nowrap;text-overflow:ellipsis;z-index:1;width:100%;min-width:2.75rem;border-radius:var(--sapField_BorderCornerRadius);padding:0 .625rem;margin:.25rem 0;height:2.25rem;box-shadow:none;color:var(--sapField_TextColor);text-shadow:var(--fdInput_Text_Shadow);background:var(--sapField_BackgroundStyle);background-color:var(--sapField_Background);border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);cursor:text;outline:none;overflow:hidden;appearance:none;-moz-appearance:none;-webkit-appearance:none;display:flex;justify-content:center;align-items:center;justify-content:space-between;padding:0;margin-bottom:0}.fd-select__control:before,.fd-select__control:after{box-sizing:inherit;font-size:inherit}.fd-select__control::placeholder{font-style:var(--fdPlaceholder_Font_Style);color:var(--sapField_PlaceholderTextColor)}.fd-select__control::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--sapSelectedColor)}.fd-select__control::-ms-clear{display:none}.fd-select__control:hover,.fd-select__control.is-hover{background:var(--sapField_Hover_BackgroundStyle);background-color:var(--sapField_Hover_Background);border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control:focus,.fd-select__control.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-width:var(--sapContent_FocusWidth);outline-style:var(--sapContent_FocusStyle);outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);box-shadow:none}.fd-select__control.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-select__control.is-success:hover,.fd-select__control.is-success.is-hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success:focus,.fd-select__control.is-success.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-select__control.is-success:focus:hover,.fd-select__control.is-success:focus.is-hover,.fd-select__control.is-success.is-focus:hover,.fd-select__control.is-success.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-select__control.is-error:hover,.fd-select__control.is-error.is-hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-select__control.is-error:focus:hover,.fd-select__control.is-error:focus.is-hover,.fd-select__control.is-error.is-focus:hover,.fd-select__control.is-error.is-focus.is-hover{box-shadow:none}.fd-select__control.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-warning:hover,.fd-select__control.is-warning.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-warning:focus:hover,.fd-select__control.is-warning:focus.is-hover,.fd-select__control.is-warning.is-focus:hover,.fd-select__control.is-warning.is-focus.is-hover{box-shadow:none}.fd-select__control.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-alert:hover,.fd-select__control.is-alert.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-alert:focus:hover,.fd-select__control.is-alert:focus.is-hover,.fd-select__control.is-alert.is-focus:hover,.fd-select__control.is-alert.is-focus.is-hover{box-shadow:none}.fd-select__control.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-select__control.is-information:hover,.fd-select__control.is-information.is-hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-select__control.is-information:focus:hover,.fd-select__control.is-information:focus.is-hover,.fd-select__control.is-information.is-focus:hover,.fd-select__control.is-information.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error,.fd-select__control.is-warning,.fd-select__control.is-alert{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error::placeholder,.fd-select__control.is-warning::placeholder,.fd-select__control.is-alert::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus,.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus,.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus,.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;outline-offset:var(--fdInput_Outline_Offset_States)}.fd-select__control.is-error::placeholder{color:var(--sapField_TextColor)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none;opacity:var(--sapContent_DisabledOpacity)}.fd-select__control[aria-disabled=true]::placeholder,.fd-select__control.is-disabled::placeholder,.fd-select__control:disabled::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);pointer-events:none}.fd-select__control[aria-readonly=true]::placeholder,.fd-select__control.is-readonly::placeholder,.fd-select__control[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true]:hover,.fd-select__control[aria-readonly=true].is-hover,.fd-select__control.is-readonly:hover,.fd-select__control.is-readonly.is-hover,.fd-select__control[readonly]:hover,.fd-select__control[readonly].is-hover{box-shadow:none}.fd-select__control[aria-readonly=true]:focus,.fd-select__control[aria-readonly=true].is-focus,.fd-select__control.is-readonly:focus,.fd-select__control.is-readonly.is-focus,.fd-select__control[readonly]:focus,.fd-select__control[readonly].is-focus{z-index:5;background:var(--sapField_Focus_Background);border-radius:var(--sapField_BorderCornerRadius)}.fd-select__control .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-hover,.fd-select__control .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-active,.fd-select__control .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control.is-success .fd-select__button:hover,.fd-select__control.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-success .fd-select__button:active,.fd-select__control.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:hover,.fd-select__control.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:active,.fd-select__control.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:hover,.fd-select__control.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:active,.fd-select__control.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:hover,.fd-select__control.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:active,.fd-select__control.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:hover,.fd-select__control.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:active,.fd-select__control.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none}.fd-select__control .fd-select__button{margin-left:.25rem}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{margin-right:.25rem;margin-left:0}.fd-select__control .fd-select__button .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button,.fd-select__control .fd-select__button .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-hover,.fd-select__control .fd-select__button .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-active,.fd-select__control .fd-select__button .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button.is-success .fd-select__button:hover,.fd-select__control .fd-select__button.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-success .fd-select__button:active,.fd-select__control .fd-select__button.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:hover,.fd-select__control .fd-select__button.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:active,.fd-select__control .fd-select__button.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:hover,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:active,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:hover,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:active,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:hover,.fd-select__control .fd-select__button.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:active,.fd-select__control .fd-select__button.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{cursor:text}.fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select__control.is-readonly .fd-select__text-content,.fd-select__control[readonly] .fd-select__text-content{padding-left:.625rem;padding-right:.625rem;min-width:calc(5rem - var(--sapField_BorderWidth) * 2)}.fd-select__control[aria-expanded=true],.fd-select__control.is-expanded{box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control[aria-expanded=true] .fd-select__button,.fd-select__control.is-expanded .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control[aria-expanded=true]:focus,.fd-select__control[aria-expanded=true].is-focus,.fd-select__control.is-expanded:focus,.fd-select__control.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control[aria-expanded=true]:hover .fd-select__button,.fd-select__control[aria-expanded=true].is-hover .fd-select__button,.fd-select__control.is-expanded:hover .fd-select__button,.fd-select__control.is-expanded.is-hover .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Hover_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color_Hover);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control.is-success[aria-expanded=true],.fd-select__control.is-success.is-expanded{box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true] .fd-select__button,.fd-select__control.is-success.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Success_Active_Text_Color);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true]:focus,.fd-select__control.is-success[aria-expanded=true].is-focus,.fd-select__control.is-success.is-expanded:focus,.fd-select__control.is-success.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-error[aria-expanded=true],.fd-select__control.is-error.is-expanded{box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true] .fd-select__button,.fd-select__control.is-error.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Error_Active_Text_Color);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true]:focus,.fd-select__control.is-error[aria-expanded=true].is-focus,.fd-select__control.is-error.is-expanded:focus,.fd-select__control.is-error.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-warning[aria-expanded=true],.fd-select__control.is-warning.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true] .fd-select__button,.fd-select__control.is-warning.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true]:focus,.fd-select__control.is-warning[aria-expanded=true].is-focus,.fd-select__control.is-warning.is-expanded:focus,.fd-select__control.is-warning.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-alert[aria-expanded=true],.fd-select__control.is-alert.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true] .fd-select__button,.fd-select__control.is-alert.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true]:focus,.fd-select__control.is-alert[aria-expanded=true].is-focus,.fd-select__control.is-alert.is-expanded:focus,.fd-select__control.is-alert.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-information[aria-expanded=true],.fd-select__control.is-information.is-expanded{box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true] .fd-select__button,.fd-select__control.is-information.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Information_Active_Text_Color);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true]:focus,.fd-select__control.is-information[aria-expanded=true].is-focus,.fd-select__control.is-information.is-expanded:focus,.fd-select__control.is-information.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__text-content{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:.625rem;min-width:calc(2.5rem - var(--sapField_BorderWidth) * 2);display:inline-block}.fd-select__text-content:before,.fd-select__text-content:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-select__text-content,.fd-select__text-content[dir=rtl]{padding-right:.625rem;padding-left:0}.fd-select--compact .fd-select__control{height:1.625rem}.fd-select--compact .fd-select__control .fd-select__text-content{padding-left:.5rem;min-width:calc(2.75rem - var(--sapField_BorderWidth) * 2)}[dir=rtl] .fd-select--compact .fd-select__control .fd-select__text-content,.fd-select--compact .fd-select__control .fd-select__text-content[dir=rtl]{padding-right:.5rem;padding-left:0}.fd-select--compact .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select--compact .fd-select__control.is-readonly .fd-select__text-content,.fd-select--compact .fd-select__control[readonly] .fd-select__text-content{padding-left:.5rem;padding-right:.5rem}.fd-popover__body>:first-child{border-radius:0}.fd-select__text-content{overflow:hidden;text-overflow:ellipsis;line-height:1rem;display:block}.fd-select-custom-class{display:inline-block;max-width:100%}.fd-popover-custom-select-body{max-width:100%}\n"], components: [{ type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig"] }, { type: i4.PopoverControlComponent, selector: "fd-popover-control" }, { type: i4.PopoverBodyComponent, selector: "fd-popover-body" }, { type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { type: i6.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "compact", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline"], outputs: ["focusEscapeList"] }], directives: [{ type: i7.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ListMessageDirective, selector: "[fd-list-message], [fdListMessage]", inputs: ["type", "class"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
516
516
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImport: i0, type: SelectComponent, decorators: [{
517
517
  type: Component,
518
518
  args: [{ selector: 'fd-select', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
@@ -524,7 +524,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
524
524
  useExisting: SelectComponent
525
525
  },
526
526
  SelectKeyManagerService
527
- ], template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [isOpen]=\"_isOpen\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [disabled]=\"disabled || readonly\"\n [appendTo]=\"appendTo\"\n [closeOnEscapeKey]=\"true\"\n fillControlMode=\"at-least\"\n [maxWidth]=\"600\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n >\n <fd-popover-control>\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </fd-popover-control>\n\n <fd-popover-body class=\"fd-popover-custom-select-body\">\n <ng-container [ngTemplateOutlet]=\"selectOptionsListTemplate\"></ng-container>\n </fd-popover-body>\n </fd-popover>\n </div>\n</ng-template>\n\n<ng-template #selectInputControlTemplate>\n <div\n class=\"fd-select__control\"\n role=\"list\"\n #selectControl\n [class]=\"state ? 'is-' + state : ''\"\n [class.is-active]=\"_isOpen\"\n [class.is-expanded]=\"_isOpen\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [attr.tabindex]=\"_tabIndex\"\n [attr.id]=\"controlId\"\n [attr.aria-active]=\"_isOpen\"\n aria-live=\"polite\"\n [attr.aria-selected]=\"selected?.selected\"\n [attr.aria-expanded]=\"_isOpen\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-controls]=\"controlId + '-list-box'\"\n [attr.aria-haspopup]=\"!(this.readonly || this.disabled)\"\n [attr.aria-required]=\"required\"\n [attr.title]=\"triggerValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-activedescendant]=\"_getAriaActiveDescendant()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n >\n <div role=\"listitem\" class=\"fd-select__text-content\" [attr.aria-label]=\"triggerValue\">\n <ng-container\n [ngTemplateOutlet]=\"controlTemplate ? controlTemplate : defaultSelectContent\"\n [ngTemplateOutletContext]=\"{ $implicit: triggerValue, selected: selected }\"\n >\n </ng-container>\n\n <ng-template #defaultSelectContent>\n {{ triggerValue }}\n </ng-template>\n </div>\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-button--transparent fd-select__button\"\n *ngIf=\"!readonly\"\n [disabled]=\"disabled\"\n [glyph]=\"glyph\"\n ></button>\n </div>\n</ng-template>\n\n<ng-template #selectOptionsListTemplate>\n <ul\n #optionPanel\n fd-list\n class=\"fd-select-options\"\n role=\"listbox\"\n tabindex=\"-1\"\n [compact]=\"compact\"\n [mobileMode]=\"mobile\"\n [dropdownMode]=\"true\"\n [hasMessage]=\"!!stateMessage\"\n [attr.id]=\"controlId + '-list-box'\"\n [style.max-height]=\"maxHeight || calculatedMaxHeight + 'px'\"\n [attr.tooltip]=\"triggerValue\"\n >\n <li\n *ngIf=\"stateMessage\"\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </div>\n\n <div #dialogContainer></div>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-select{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;text-shadow:var(--fdSelect_Text_Shadow)}.fd-select:before,.fd-select:after{box-sizing:inherit;font-size:inherit}.fd-select__control{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;margin:0;border:0;white-space:nowrap;text-overflow:ellipsis;z-index:1;width:100%;min-width:2.75rem;border-radius:var(--sapField_BorderCornerRadius);padding:0 .625rem;margin:.25rem 0;height:2.25rem;box-shadow:none;color:var(--sapField_TextColor);text-shadow:var(--fdInput_Text_Shadow);background:var(--sapField_BackgroundStyle);background-color:var(--sapField_Background);border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);cursor:text;outline:none;overflow:hidden;appearance:none;-moz-appearance:none;-webkit-appearance:none;display:flex;justify-content:center;align-items:center;justify-content:space-between;padding:0;margin-bottom:0}.fd-select__control:before,.fd-select__control:after{box-sizing:inherit;font-size:inherit}.fd-select__control::placeholder{font-style:var(--fdPlaceholder_Font_Style);color:var(--sapField_PlaceholderTextColor)}.fd-select__control::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--sapSelectedColor)}.fd-select__control::-ms-clear{display:none}.fd-select__control:hover,.fd-select__control.is-hover{background:var(--sapField_Hover_BackgroundStyle);background-color:var(--sapField_Hover_Background);border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control:focus,.fd-select__control.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-width:var(--sapContent_FocusWidth);outline-style:var(--sapContent_FocusStyle);outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);box-shadow:none}.fd-select__control.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-select__control.is-success:hover,.fd-select__control.is-success.is-hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success:focus,.fd-select__control.is-success.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-select__control.is-success:focus:hover,.fd-select__control.is-success:focus.is-hover,.fd-select__control.is-success.is-focus:hover,.fd-select__control.is-success.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-select__control.is-error:hover,.fd-select__control.is-error.is-hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-select__control.is-error:focus:hover,.fd-select__control.is-error:focus.is-hover,.fd-select__control.is-error.is-focus:hover,.fd-select__control.is-error.is-focus.is-hover{box-shadow:none}.fd-select__control.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-warning:hover,.fd-select__control.is-warning.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-warning:focus:hover,.fd-select__control.is-warning:focus.is-hover,.fd-select__control.is-warning.is-focus:hover,.fd-select__control.is-warning.is-focus.is-hover{box-shadow:none}.fd-select__control.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-alert:hover,.fd-select__control.is-alert.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-alert:focus:hover,.fd-select__control.is-alert:focus.is-hover,.fd-select__control.is-alert.is-focus:hover,.fd-select__control.is-alert.is-focus.is-hover{box-shadow:none}.fd-select__control.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-select__control.is-information:hover,.fd-select__control.is-information.is-hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-select__control.is-information:focus:hover,.fd-select__control.is-information:focus.is-hover,.fd-select__control.is-information.is-focus:hover,.fd-select__control.is-information.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error,.fd-select__control.is-warning,.fd-select__control.is-alert{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error::placeholder,.fd-select__control.is-warning::placeholder,.fd-select__control.is-alert::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus,.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus,.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus,.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;outline-offset:var(--fdInput_Outline_Offset_States)}.fd-select__control.is-error::placeholder{color:var(--sapField_TextColor)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none;opacity:var(--sapContent_DisabledOpacity)}.fd-select__control[aria-disabled=true]::placeholder,.fd-select__control.is-disabled::placeholder,.fd-select__control:disabled::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);pointer-events:none}.fd-select__control[aria-readonly=true]::placeholder,.fd-select__control.is-readonly::placeholder,.fd-select__control[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true]:hover,.fd-select__control[aria-readonly=true].is-hover,.fd-select__control.is-readonly:hover,.fd-select__control.is-readonly.is-hover,.fd-select__control[readonly]:hover,.fd-select__control[readonly].is-hover{box-shadow:none}.fd-select__control[aria-readonly=true]:focus,.fd-select__control[aria-readonly=true].is-focus,.fd-select__control.is-readonly:focus,.fd-select__control.is-readonly.is-focus,.fd-select__control[readonly]:focus,.fd-select__control[readonly].is-focus{z-index:5;background:var(--sapField_Focus_Background);border-radius:var(--sapField_BorderCornerRadius)}.fd-select__control .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-hover,.fd-select__control .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-active,.fd-select__control .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control.is-success .fd-select__button:hover,.fd-select__control.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-success .fd-select__button:active,.fd-select__control.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:hover,.fd-select__control.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:active,.fd-select__control.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:hover,.fd-select__control.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:active,.fd-select__control.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:hover,.fd-select__control.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:active,.fd-select__control.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:hover,.fd-select__control.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:active,.fd-select__control.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none}.fd-select__control .fd-select__button{margin-left:.25rem}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{margin-right:.25rem;margin-left:0}.fd-select__control .fd-select__button .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button,.fd-select__control .fd-select__button .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-hover,.fd-select__control .fd-select__button .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-active,.fd-select__control .fd-select__button .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button.is-success .fd-select__button:hover,.fd-select__control .fd-select__button.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-success .fd-select__button:active,.fd-select__control .fd-select__button.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:hover,.fd-select__control .fd-select__button.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:active,.fd-select__control .fd-select__button.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:hover,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:active,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:hover,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:active,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:hover,.fd-select__control .fd-select__button.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:active,.fd-select__control .fd-select__button.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{cursor:text}.fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select__control.is-readonly .fd-select__text-content,.fd-select__control[readonly] .fd-select__text-content{padding-left:.625rem;padding-right:.625rem;min-width:calc(5rem - var(--sapField_BorderWidth) * 2)}.fd-select__control[aria-expanded=true],.fd-select__control.is-expanded{box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control[aria-expanded=true] .fd-select__button,.fd-select__control.is-expanded .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control[aria-expanded=true]:focus,.fd-select__control[aria-expanded=true].is-focus,.fd-select__control.is-expanded:focus,.fd-select__control.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control[aria-expanded=true]:hover .fd-select__button,.fd-select__control[aria-expanded=true].is-hover .fd-select__button,.fd-select__control.is-expanded:hover .fd-select__button,.fd-select__control.is-expanded.is-hover .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Hover_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color_Hover);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control.is-success[aria-expanded=true],.fd-select__control.is-success.is-expanded{box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true] .fd-select__button,.fd-select__control.is-success.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Success_Active_Text_Color);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true]:focus,.fd-select__control.is-success[aria-expanded=true].is-focus,.fd-select__control.is-success.is-expanded:focus,.fd-select__control.is-success.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-error[aria-expanded=true],.fd-select__control.is-error.is-expanded{box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true] .fd-select__button,.fd-select__control.is-error.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Error_Active_Text_Color);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true]:focus,.fd-select__control.is-error[aria-expanded=true].is-focus,.fd-select__control.is-error.is-expanded:focus,.fd-select__control.is-error.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-warning[aria-expanded=true],.fd-select__control.is-warning.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true] .fd-select__button,.fd-select__control.is-warning.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true]:focus,.fd-select__control.is-warning[aria-expanded=true].is-focus,.fd-select__control.is-warning.is-expanded:focus,.fd-select__control.is-warning.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-alert[aria-expanded=true],.fd-select__control.is-alert.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true] .fd-select__button,.fd-select__control.is-alert.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true]:focus,.fd-select__control.is-alert[aria-expanded=true].is-focus,.fd-select__control.is-alert.is-expanded:focus,.fd-select__control.is-alert.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-information[aria-expanded=true],.fd-select__control.is-information.is-expanded{box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true] .fd-select__button,.fd-select__control.is-information.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Information_Active_Text_Color);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true]:focus,.fd-select__control.is-information[aria-expanded=true].is-focus,.fd-select__control.is-information.is-expanded:focus,.fd-select__control.is-information.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__text-content{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:.625rem;min-width:calc(2.5rem - var(--sapField_BorderWidth) * 2);display:inline-block}.fd-select__text-content:before,.fd-select__text-content:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-select__text-content,.fd-select__text-content[dir=rtl]{padding-right:.625rem;padding-left:0}.fd-select--compact .fd-select__control{height:1.625rem}.fd-select--compact .fd-select__control .fd-select__text-content{padding-left:.5rem;min-width:calc(2.75rem - var(--sapField_BorderWidth) * 2)}[dir=rtl] .fd-select--compact .fd-select__control .fd-select__text-content,.fd-select--compact .fd-select__control .fd-select__text-content[dir=rtl]{padding-right:.5rem;padding-left:0}.fd-select--compact .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select--compact .fd-select__control.is-readonly .fd-select__text-content,.fd-select--compact .fd-select__control[readonly] .fd-select__text-content{padding-left:.5rem;padding-right:.5rem}.fd-popover__body>:first-child{border-radius:0}.fd-select__text-content{overflow:hidden;text-overflow:ellipsis;line-height:1rem;display:block}.fd-select-custom-class{display:inline-block;max-width:100%}.fd-popover-custom-select-body{max-width:100%}\n"] }]
527
+ ], template: "<ng-container *ngTemplateOutlet=\"mobile ? mobileTemplate : desktopTemplate\"></ng-container>\n\n<ng-template #desktopTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <fd-popover\n additionalBodyClass=\"fd-popover-custom-list\"\n [isOpen]=\"_isOpen\"\n [triggers]=\"[]\"\n [focusTrapped]=\"true\"\n [disabled]=\"disabled || readonly\"\n [appendTo]=\"appendTo\"\n [closeOnEscapeKey]=\"true\"\n [fillControlMode]=\"fillControlMode\"\n [maxWidth]=\"600\"\n [closeOnOutsideClick]=\"closeOnOutsideClick\"\n (isOpenChange)=\"_popoverOpenChangeHandle($event)\"\n >\n <fd-popover-control>\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </fd-popover-control>\n\n <fd-popover-body class=\"fd-popover-custom-select-body\">\n <ng-container [ngTemplateOutlet]=\"selectOptionsListTemplate\"></ng-container>\n </fd-popover-body>\n </fd-popover>\n </div>\n</ng-template>\n\n<ng-template #selectInputControlTemplate>\n <div\n class=\"fd-select__control\"\n role=\"list\"\n #selectControl\n [class]=\"state ? 'is-' + state : ''\"\n [class.is-active]=\"_isOpen\"\n [class.is-expanded]=\"_isOpen\"\n [class.is-disabled]=\"disabled\"\n [class.is-readonly]=\"readonly\"\n [attr.tabindex]=\"_tabIndex\"\n [attr.id]=\"controlId\"\n [attr.aria-active]=\"_isOpen\"\n aria-live=\"polite\"\n [attr.aria-selected]=\"selected?.selected\"\n [attr.aria-expanded]=\"_isOpen\"\n [attr.aria-disabled]=\"disabled\"\n [attr.aria-readonly]=\"readonly\"\n [attr.aria-controls]=\"controlId + '-list-box'\"\n [attr.aria-haspopup]=\"!(this.readonly || this.disabled)\"\n [attr.aria-required]=\"required\"\n [attr.title]=\"triggerValue\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-activedescendant]=\"_getAriaActiveDescendant()\"\n (focus)=\"_onFocus()\"\n (blur)=\"_onBlur()\"\n >\n <div role=\"listitem\" class=\"fd-select__text-content\" [attr.aria-label]=\"triggerValue\">\n <ng-container\n [ngTemplateOutlet]=\"controlTemplate ? controlTemplate : defaultSelectContent\"\n [ngTemplateOutletContext]=\"{ $implicit: triggerValue, selected: selected }\"\n >\n </ng-container>\n\n <ng-template #defaultSelectContent>\n {{ triggerValue }}\n </ng-template>\n </div>\n <button\n fd-button\n tabindex=\"-1\"\n class=\"fd-button--transparent fd-select__button\"\n *ngIf=\"!readonly\"\n [disabled]=\"disabled\"\n [glyph]=\"glyph\"\n ></button>\n </div>\n</ng-template>\n\n<ng-template #selectOptionsListTemplate>\n <ul\n #optionPanel\n fd-list\n class=\"fd-select-options\"\n role=\"listbox\"\n tabindex=\"-1\"\n [compact]=\"compact\"\n [mobileMode]=\"mobile\"\n [dropdownMode]=\"true\"\n [hasMessage]=\"!!stateMessage\"\n [attr.id]=\"controlId + '-list-box'\"\n [style.max-height]=\"maxHeight || calculatedMaxHeight + 'px'\"\n [attr.tooltip]=\"triggerValue\"\n >\n <li\n *ngIf=\"stateMessage\"\n [attr.aria-label]=\"stateMessage\"\n fd-list-message\n tabindex=\"-1\"\n role=\"presentation\"\n [type]=\"state || 'default'\"\n [innerHtml]=\"stateMessage\"\n ></li>\n\n <ng-content></ng-content>\n </ul>\n</ng-template>\n\n<ng-template #mobileTemplate>\n <div class=\"fd-select\" [class.fd-select--compact]=\"compact\" (keydown)=\"_handleKeydown($event)\" (click)=\"toggle()\">\n <ng-container [ngTemplateOutlet]=\"selectInputControlTemplate\"></ng-container>\n </div>\n\n <div #dialogContainer></div>\n</ng-template>\n", styles: ["/*!\n * Fundamental Library Styles v0.24.0-rc.128\n * Copyright (c) 2022 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n */.fd-select{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;text-shadow:var(--fdSelect_Text_Shadow)}.fd-select:before,.fd-select:after{box-sizing:inherit;font-size:inherit}.fd-select__control{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;margin:0;border:0;white-space:nowrap;text-overflow:ellipsis;z-index:1;width:100%;min-width:2.75rem;border-radius:var(--sapField_BorderCornerRadius);padding:0 .625rem;margin:.25rem 0;height:2.25rem;box-shadow:none;color:var(--sapField_TextColor);text-shadow:var(--fdInput_Text_Shadow);background:var(--sapField_BackgroundStyle);background-color:var(--sapField_Background);border:var(--sapField_BorderWidth) var(--sapField_BorderStyle) var(--sapField_BorderColor);cursor:text;outline:none;overflow:hidden;appearance:none;-moz-appearance:none;-webkit-appearance:none;display:flex;justify-content:center;align-items:center;justify-content:space-between;padding:0;margin-bottom:0}.fd-select__control:before,.fd-select__control:after{box-sizing:inherit;font-size:inherit}.fd-select__control::placeholder{font-style:var(--fdPlaceholder_Font_Style);color:var(--sapField_PlaceholderTextColor)}.fd-select__control::selection{color:var(--sapContent_ContrastTextColor);background-color:var(--sapSelectedColor)}.fd-select__control::-ms-clear{display:none}.fd-select__control:hover,.fd-select__control.is-hover{background:var(--sapField_Hover_BackgroundStyle);background-color:var(--sapField_Hover_Background);border-color:var(--sapField_Hover_BorderColor);box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control:focus,.fd-select__control.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-width:var(--sapContent_FocusWidth);outline-style:var(--sapContent_FocusStyle);outline-color:var(--fdInput_Outline_Color);outline-offset:var(--fdInput_Outline_Offset);box-shadow:none}.fd-select__control.is-success{background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapField_SuccessBackground);border:var(--sapField_SuccessColor) var(--sapField_SuccessBorderWidth) var(--sapField_SuccessBorderStyle)}.fd-select__control.is-success:hover,.fd-select__control.is-success.is-hover{background-color:var(--fdInput_Success_Background_Color_Hover);border-color:var(--sapField_SuccessColor);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success:focus,.fd-select__control.is-success.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Success_Outline_Color)}.fd-select__control.is-success:focus:hover,.fd-select__control.is-success:focus.is-hover,.fd-select__control.is-success.is-focus:hover,.fd-select__control.is-success.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error{background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapField_InvalidBackground);border:var(--sapField_InvalidColor) var(--sapField_InvalidBorderWidth) var(--sapField_InvalidBorderStyle)}.fd-select__control.is-error:hover,.fd-select__control.is-error.is-hover{background-color:var(--fdInput_Error_Background_Color_Hover);border-color:var(--sapField_InvalidColor);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Error_Outline_Color)}.fd-select__control.is-error:focus:hover,.fd-select__control.is-error:focus.is-hover,.fd-select__control.is-error.is-focus:hover,.fd-select__control.is-error.is-focus.is-hover{box-shadow:none}.fd-select__control.is-warning{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-warning:hover,.fd-select__control.is-warning.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-warning:focus:hover,.fd-select__control.is-warning:focus.is-hover,.fd-select__control.is-warning.is-focus:hover,.fd-select__control.is-warning.is-focus.is-hover{box-shadow:none}.fd-select__control.is-alert{background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapField_WarningBackground);border:var(--sapField_WarningColor) var(--sapField_WarningBorderWidth) var(--sapField_WarningBorderStyle)}.fd-select__control.is-alert:hover,.fd-select__control.is-alert.is-hover{background-color:var(--fdInput_Warning_Background_Color_Hover);border-color:var(--sapField_WarningColor);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Warning_Outline_Color)}.fd-select__control.is-alert:focus:hover,.fd-select__control.is-alert:focus.is-hover,.fd-select__control.is-alert.is-focus:hover,.fd-select__control.is-alert.is-focus.is-hover{box-shadow:none}.fd-select__control.is-information{background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapField_InformationBackground);border:var(--sapField_InformationColor) var(--sapField_InformationBorderWidth) var(--sapField_InformationBorderStyle)}.fd-select__control.is-information:hover,.fd-select__control.is-information.is-hover{background-color:var(--fdInput_Information_Background_Color_Hover);border-color:var(--sapField_InformationColor);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;background:var(--sapField_Focus_Background);outline-color:var(--fdInput_Information_Outline_Color)}.fd-select__control.is-information:focus:hover,.fd-select__control.is-information:focus.is-hover,.fd-select__control.is-information.is-focus:hover,.fd-select__control.is-information.is-focus.is-hover{box-shadow:none}.fd-select__control.is-error,.fd-select__control.is-warning,.fd-select__control.is-alert{font-style:var(--fdInput_State_Text_Style);font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error::placeholder,.fd-select__control.is-warning::placeholder,.fd-select__control.is-alert::placeholder{font-weight:var(--fdInput_State_Font_Weight)}.fd-select__control.is-error:focus,.fd-select__control.is-error.is-focus,.fd-select__control.is-warning:focus,.fd-select__control.is-warning.is-focus,.fd-select__control.is-alert:focus,.fd-select__control.is-alert.is-focus,.fd-select__control.is-information:focus,.fd-select__control.is-information.is-focus{z-index:5;outline-offset:var(--fdInput_Outline_Offset_States)}.fd-select__control.is-error::placeholder{color:var(--sapField_TextColor)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none;opacity:var(--sapContent_DisabledOpacity)}.fd-select__control[aria-disabled=true]::placeholder,.fd-select__control.is-disabled::placeholder,.fd-select__control:disabled::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{border-color:var(--sapField_ReadOnly_BorderColor);border-radius:var(--fdInput_ReadOnly_Border_Radius);background:var(--sapField_ReadOnly_BackgroundStyle);background-color:var(--sapField_ReadOnly_Background);pointer-events:none}.fd-select__control[aria-readonly=true]::placeholder,.fd-select__control.is-readonly::placeholder,.fd-select__control[readonly]::placeholder{color:var(--fdInput_Non_Interactive_State_Placeholder_Color)}.fd-select__control[aria-readonly=true]:hover,.fd-select__control[aria-readonly=true].is-hover,.fd-select__control.is-readonly:hover,.fd-select__control.is-readonly.is-hover,.fd-select__control[readonly]:hover,.fd-select__control[readonly].is-hover{box-shadow:none}.fd-select__control[aria-readonly=true]:focus,.fd-select__control[aria-readonly=true].is-focus,.fd-select__control.is-readonly:focus,.fd-select__control.is-readonly.is-focus,.fd-select__control[readonly]:focus,.fd-select__control[readonly].is-focus{z-index:5;background:var(--sapField_Focus_Background);border-radius:var(--sapField_BorderCornerRadius)}.fd-select__control .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:hover,.fd-select__control .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-hover,.fd-select__control .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button:active,.fd-select__control .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button.is-active,.fd-select__control .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control.is-success .fd-select__button:hover,.fd-select__control.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-success .fd-select__button:active,.fd-select__control.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:hover,.fd-select__control.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-error .fd-select__button:active,.fd-select__control.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:hover,.fd-select__control.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-warning .fd-select__button:active,.fd-select__control.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:hover,.fd-select__control.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-alert .fd-select__button:active,.fd-select__control.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:hover,.fd-select__control.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control.is-information .fd-select__button:active,.fd-select__control.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-disabled=true],.fd-select__control.is-disabled,.fd-select__control:disabled{pointer-events:none}.fd-select__control .fd-select__button{margin-left:.25rem}[dir=rtl] .fd-select__control .fd-select__button,.fd-select__control .fd-select__button[dir=rtl]{margin-right:.25rem;margin-left:0}.fd-select__control .fd-select__button .fd-select__button{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border:none;z-index:auto!important;position:static!important;border-radius:var(--fdInput_Group_Button_Border_Raduis);background:var(--fdInput_Group_Button_Background);color:var(--fdInput_Group_Button_Text_Color);border-left:var(--sapButton_BorderWidth) solid transparent}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button,.fd-select__control .fd-select__button .fd-select__button[dir=rtl]{border-left:none;border-right:var(--sapButton_BorderWidth) solid transparent}.fd-select__control .fd-select__button .fd-select__button:before{display:none!important}.fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button.is-hover{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Hover_Background);color:var(--fdInput_Group_Button_Hover_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:hover,.fd-select__control .fd-select__button .fd-select__button:hover[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-hover,.fd-select__control .fd-select__button .fd-select__button.is-hover[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button.is-active{border-left:var(--fdInputGroup_ControlButton_SideBorder);background:var(--fdInput_Group_Button_Active_Background);color:var(--fdInput_Group_Button_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}[dir=rtl] .fd-select__control .fd-select__button .fd-select__button:active,.fd-select__control .fd-select__button .fd-select__button:active[dir=rtl],[dir=rtl] .fd-select__control .fd-select__button .fd-select__button.is-active,.fd-select__control .fd-select__button .fd-select__button.is-active[dir=rtl]{border-left:none;border-right:var(--fdInputGroup_ControlButton_SideBorder)}.fd-select__control .fd-select__button.is-success .fd-select__button:hover,.fd-select__control .fd-select__button.is-success .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-success .fd-select__button:active,.fd-select__control .fd-select__button.is-success .fd-select__button.is-active{color:var(--fdInput_Group_Button_Success_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Success_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:hover,.fd-select__control .fd-select__button.is-error .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-error .fd-select__button:active,.fd-select__control .fd-select__button.is-error .fd-select__button.is-active{color:var(--fdInput_Group_Button_Error_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Error_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:hover,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-warning .fd-select__button:active,.fd-select__control .fd-select__button.is-warning .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:hover,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-alert .fd-select__button:active,.fd-select__control .fd-select__button.is-alert .fd-select__button.is-active{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Warning_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:hover,.fd-select__control .fd-select__button.is-information .fd-select__button.is-hover{box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control .fd-select__button.is-information .fd-select__button:active,.fd-select__control .fd-select__button.is-information .fd-select__button.is-active{color:var(--fdInput_Group_Button_Information_Active_Text_Color);box-shadow:var(--fdInput_Group_Button_Information_Active_Box_Shadow)}.fd-select__control[aria-readonly=true],.fd-select__control.is-readonly,.fd-select__control[readonly]{cursor:text}.fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select__control.is-readonly .fd-select__text-content,.fd-select__control[readonly] .fd-select__text-content{padding-left:.625rem;padding-right:.625rem;min-width:calc(5rem - var(--sapField_BorderWidth) * 2)}.fd-select__control[aria-expanded=true],.fd-select__control.is-expanded{box-shadow:var(--fdInput_Box_Shadow_Hover)}.fd-select__control[aria-expanded=true] .fd-select__button,.fd-select__control.is-expanded .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control[aria-expanded=true]:focus,.fd-select__control[aria-expanded=true].is-focus,.fd-select__control.is-expanded:focus,.fd-select__control.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control[aria-expanded=true]:hover .fd-select__button,.fd-select__control[aria-expanded=true].is-hover .fd-select__button,.fd-select__control.is-expanded:hover .fd-select__button,.fd-select__control.is-expanded.is-hover .fd-select__button{color:var(--sapButton_Active_TextColor);background:var(--sapField_BackgroundStyle);background-color:var(--sapButton_Selected_Hover_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color_Hover);box-shadow:var(--fdInput_Group_Button_Box_Shadow)}.fd-select__control.is-success[aria-expanded=true],.fd-select__control.is-success.is-expanded{box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true] .fd-select__button,.fd-select__control.is-success.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Success_Active_Text_Color);background:var(--sapField_SuccessBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Success_Box_Shadow_Hover)}.fd-select__control.is-success[aria-expanded=true]:focus,.fd-select__control.is-success[aria-expanded=true].is-focus,.fd-select__control.is-success.is-expanded:focus,.fd-select__control.is-success.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-error[aria-expanded=true],.fd-select__control.is-error.is-expanded{box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true] .fd-select__button,.fd-select__control.is-error.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Error_Active_Text_Color);background:var(--sapField_InvalidBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Error_Box_Shadow_Hover)}.fd-select__control.is-error[aria-expanded=true]:focus,.fd-select__control.is-error[aria-expanded=true].is-focus,.fd-select__control.is-error.is-expanded:focus,.fd-select__control.is-error.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-warning[aria-expanded=true],.fd-select__control.is-warning.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true] .fd-select__button,.fd-select__control.is-warning.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-warning[aria-expanded=true]:focus,.fd-select__control.is-warning[aria-expanded=true].is-focus,.fd-select__control.is-warning.is-expanded:focus,.fd-select__control.is-warning.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-alert[aria-expanded=true],.fd-select__control.is-alert.is-expanded{box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true] .fd-select__button,.fd-select__control.is-alert.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Warning_Active_Text_Color);background:var(--sapField_WarningBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Warning_Box_Shadow_Hover)}.fd-select__control.is-alert[aria-expanded=true]:focus,.fd-select__control.is-alert[aria-expanded=true].is-focus,.fd-select__control.is-alert.is-expanded:focus,.fd-select__control.is-alert.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__control.is-information[aria-expanded=true],.fd-select__control.is-information.is-expanded{box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true] .fd-select__button,.fd-select__control.is-information.is-expanded .fd-select__button{color:var(--fdInput_Group_Button_Information_Active_Text_Color);background:var(--sapField_InformationBackgroundStyle);background-color:var(--sapButton_Selected_Background);border-left-color:var(--fdSelect_Expanded_Button_Border_Left_Color);box-shadow:var(--fdInput_Information_Box_Shadow_Hover)}.fd-select__control.is-information[aria-expanded=true]:focus,.fd-select__control.is-information[aria-expanded=true].is-focus,.fd-select__control.is-information.is-expanded:focus,.fd-select__control.is-information.is-expanded.is-focus{z-index:5;box-shadow:none}.fd-select__text-content{font-size:var(--sapFontSize);line-height:var(--sapContent_LineHeight);color:var(--sapTextColor);font-family:var(--sapFontFamily);font-weight:400;box-sizing:border-box;padding:0;margin:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:.625rem;min-width:calc(2.5rem - var(--sapField_BorderWidth) * 2);display:inline-block}.fd-select__text-content:before,.fd-select__text-content:after{box-sizing:inherit;font-size:inherit}[dir=rtl] .fd-select__text-content,.fd-select__text-content[dir=rtl]{padding-right:.625rem;padding-left:0}.fd-select--compact .fd-select__control{height:1.625rem}.fd-select--compact .fd-select__control .fd-select__text-content{padding-left:.5rem;min-width:calc(2.75rem - var(--sapField_BorderWidth) * 2)}[dir=rtl] .fd-select--compact .fd-select__control .fd-select__text-content,.fd-select--compact .fd-select__control .fd-select__text-content[dir=rtl]{padding-right:.5rem;padding-left:0}.fd-select--compact .fd-select__control[aria-readonly=true] .fd-select__text-content,.fd-select--compact .fd-select__control.is-readonly .fd-select__text-content,.fd-select--compact .fd-select__control[readonly] .fd-select__text-content{padding-left:.5rem;padding-right:.5rem}.fd-popover__body>:first-child{border-radius:0}.fd-select__text-content{overflow:hidden;text-overflow:ellipsis;line-height:1rem;display:block}.fd-select-custom-class{display:inline-block;max-width:100%}.fd-popover-custom-select-body{max-width:100%}\n"] }]
528
528
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
529
529
  type: Attribute,
530
530
  args: ['tabindex']
@@ -612,4 +612,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.4", ngImpor
612
612
  type: HostListener,
613
613
  args: ['window:resize']
614
614
  }] } });
615
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFHVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUEy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U0FBUztzQkFEUixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBVU4sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBU04scUJBQXFCO3NCQURwQixLQUFLO2dCQUtOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS0csWUFBWTtzQkFEcEIsTUFBTTtnQkFLRSxXQUFXO3NCQURuQixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUt2RCxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsZUFBZTtnQkFLMUIseUJBQXlCO3NCQUR4QixTQUFTO3VCQUFDLDJCQUEyQjtnQkFNdEMsMEJBQTBCO3NCQUR6QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFRNUIsV0FBVztzQkFEVixTQUFTO3VCQUFDLG1CQUFtQjtnQkFPOUIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBOEQ5QyxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaXNEZXZNb2RlLFxuICAgIEF0dHJpYnV0ZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTZWxmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG1lcmdlLCBPYnNlcnZhYmxlLCBkZWZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUG9wb3ZlckZpbGxNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eVNlcnZpY2UsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBNb2JpbGVNb2RlQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcblxuaW1wb3J0IHsgU0VMRUNUX0NPTVBPTkVOVCwgU2VsZWN0SW50ZXJmYWNlIH0gZnJvbSAnLi9zZWxlY3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbGVjdEtleU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3Qta2V5LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQsIEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlIH0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1tb2JpbGUvc2VsZWN0LW1vYmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0TW9iaWxlTW9kdWxlIH0gZnJvbSAnLi9zZWxlY3QtbW9iaWxlL3NlbGVjdC1tb2JpbGUubW9kdWxlJztcblxubGV0IHNlbGVjdFVuaXF1ZUlkID0gMDtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gXCJAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkXCJgIGluc3RlYWQgKi9cbmV4cG9ydCB0eXBlIFNlbGVjdENvbnRyb2xTdGF0ZSA9IEZvcm1TdGF0ZXM7XG5cbmNvbnN0IFNFTEVDVF9IRUFERVJfSURFTlRJRklFUiA9ICcuZmQtbGlzdF9fZ3JvdXAtaGVhZGVyJztcblxuZXhwb3J0IGNvbnN0IFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUID0gMjUwO1xuXG4vKiogVGhlIGhlaWdodCBvZiB0aGUgc2VsZWN0IGl0ZW1zIGluIGByZW1gIHVuaXRzLiAqL1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9JVEVNX0hFSUdIVF9FTSA9IDQ7XG5cbi8qKlxuICogU2VsZWN0IGNvbXBvbmVudCBpbnRlbmRlZCB0byBtaW1pY1xuICogdGhlIGJlaGF2aW91ciBvZiB0aGUgbmF0aXZlIHNlbGVjdCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LWN1c3RvbS1jbGFzc10nOiAnaW5saW5lJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1zZWxlY3QtY3VzdG9tLWNsYXNzLS1tb2JpbGVdJzogJ21vYmlsZSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTRUxFQ1RfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgU2VsZWN0SW50ZXJmYWNlLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgLyoqIElkIG9mIHRoZSBjb250cm9sLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udHJvbElkID0gYGZkLXNlbGVjdC0ke3NlbGVjdFVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBIb2xkcyB0aGUgY29udHJvbCBzdGF0ZSBvZiBzZWxlY3QgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlOiBOdWxsYWJsZTxGb3JtU3RhdGVzPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgY29tcG9uZW50IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gbW9iaWxlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGUgPSBmYWxzZTtcblxuICAgIC8qKiBIb2xkcyB0aGUgbWVzc2FnZSB3aXRoIHJlc3BlY3QgdG8gc3RhdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlTWVzc2FnZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgY29tcG9uZW50IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2VsZWN0IGNvbXBvbmVudCBpcyByZWFkb25seS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICAvKiogUGxhY2Vob2xkZXIgZm9yIHRoZSBzZWxlY3QuIEFwcGVhcnMgaW4gdGhlIHRyaWdnZXJib3ggaWYgbm8gb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5faW50ZXJuYWxWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgaXMgaW4gY29tcGFjdCBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29tcGFjdD86IGJvb2xlYW47XG5cbiAgICAvKiogQGRlcHJlY2F0ZWRcbiAgICAgKiBpdCBpcyBoYW5kbGVkIGludGVybmFsbHkgYnkgY29udHJvbFRlbXBsYXRlICE9IG51bGx8dW5kZWZpbmVkIGlzXG4gICAgICogRXF1YWwgYXMgZXh0ZW5kZWRCb2R5VGVtcGxhdGUgYXMgdHJ1ZS5cbiAgICAgKiBXaGV0aGVyIG9wdGlvbiBjb21wb25lbnRzIGNvbnRhaW4gbW9yZSB0aGFuIGJhc2ljIHRleHQuICovXG4gICAgQElucHV0KClcbiAgICBleHRlbmRlZEJvZHlUZW1wbGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1heCBoZWlnaHQgb2YgdGhlIHBvcG92ZXIuIEFueSBvdmVyZmxvd2luZyBlbGVtZW50cyB3aWxsIGJlIGFjY2Vzc2libGUgdGhyb3VnaCBzY3JvbGxpbmcuICovXG4gICAgQElucHV0KClcbiAgICBtYXhIZWlnaHQ6IHN0cmluZztcblxuICAgIC8qKiBHbHlwaCB0byBhZGQgaWNvbiBpbiB0aGUgc2VsZWN0IGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoID0gJ3NsaW0tYXJyb3ctZG93bic7XG5cbiAgICAvKiogV2hldGhlciBjbG9zZSB0aGUgcG9wb3ZlciBvbiBvdXRzaWRlIGNsaWNrLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbk91dHNpZGVDbGljayA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBQcmVzZXQgb3B0aW9ucyBmb3IgdGhlIFNlbGVjdCBib2R5IHdpZHRoLCB3aGF0ZXZlciBpcyBjaG9zZW4sIHRoZSBib2R5IGhhcyBhIDYwMHB4IGxpbWl0LlxuICAgICAqICogYGF0LWxlYXN0YCB3aWxsIGFwcGx5IGEgbWluaW11bSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC4gLSBEZWZhdWx0XG4gICAgICogKiBgZXF1YWxgIHdpbGwgYXBwbHkgYSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKiAqICdmaXQtY29udGVudCcgd2lsbCBhcHBseSB3aWR0aCBuZWVkZWQgdG8gcHJvcGVybHkgZGlzcGxheSBpdGVtcyBpbnNpZGUsIGluZGVwZW5kZW50IG9mIGNvbnRyb2wuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWxsQ29udHJvbE1vZGU6IFBvcG92ZXJGaWxsTW9kZSA9ICdhdC1sZWFzdCc7XG5cbiAgICAvKiogQ3VzdG9tIHRlbXBsYXRlIHVzZWQgdG8gYnVpbGQgY29udHJvbCBib2R5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIFRoZSBlbGVtZW50IHRvIHdoaWNoIHRoZSBwb3BvdmVyIHNob3VsZCBiZSBhcHBlbmRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcGVuZFRvOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgdW5zZWxlY3RlZCBhbmQgdmFsdWUgY2hhbmdlZCB0byB1bmRlZmluZWQsIHdoZW4gdGhlIGN1cnJlbnQgdmFsdWUgaXNcbiAgICAgKiBub3QgcHJlc2VudGVkIGluIG9wdGlvbiBhcnJheS4gU3dpdGNoaW5nIGl0IG9mZiBjYW4gYmUgaGFuZHksIHdoZW4gdGhlcmUgaXMgc29tZSBkZWxheSBiZXR3ZWVuIHByb3ZpZGluZ1xuICAgICAqIHBvc3NpYmxlIG9wdGlvbnMgYW5kIGNob3NlbiB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuc2VsZWN0TWlzc2luZ09wdGlvbiA9IHRydWU7XG5cbiAgICAvKiogVGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcyBhZnRlciB0aGUgbGFzdCBrZXlkb3duIGJlZm9yZSBmb2N1c2luZyBvciBzZWxlY3Rpbmcgb3B0aW9uIGJhc2VkIG9uIGFscGhhbnVtZXJpYyBrZXlzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCA9IDI1MDtcblxuICAgIC8qKiBCaW5kcyB0byBjb250cm9sIGFyaWEtbGFiZWxsZWRCeSBhdHRyaWJ1dGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgY29udHJvbCBhcmlhLWxhYmVsIGF0dHJpYnV0ZSB2YWx1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNlbGVjdCBJbnB1dCBNb2JpbGUgQ29uZmlndXJhdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlQ29uZmlnOiBNb2JpbGVNb2RlQ29uZmlnID0geyBoYXNDbG9zZUJ1dHRvbjogdHJ1ZSB9O1xuXG4gICAgLyoqIFNob3VsZCBzZWxlY3QgYmUgaW5saW5lZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlubGluZSA9IHRydWU7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9vcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2VsZWN0Q29udHJvbCcpXG4gICAgX2NvbnRyb2xFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gZWxlbWVudCBjb250YWluaW5nIGxpc3Qgb2Ygb3B0aW9ucyAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGUnKVxuICAgIHNlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlZmVyZW5jZSB0byByb290IGVsZW1lbnQgZm9yIHRoZSBtb2JpbGUgbW9kZSBkaWFsb2cgKi9cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dDb250YWluZXInKVxuICAgIF9kaWFsb2dDb250YWluZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmxheSBwYW5lIGNvbnRhaW5pbmcgdGhlIG9wdGlvbnMuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSlcbiAgICBfb3ZlcmxheURpcjogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogUmVmZXJlbnQgdG8gdGhlIG9wdGlvbjtzIGNvbnRhaW5lclxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ29wdGlvblBhbmVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgX29wdGlvblBhbmVsOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIFdoZXRoZXIgcG9wb3ZlciBpcyBvcGVuZWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2lzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdGFiSW5kZXg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2xpdmVBbm5vdW5jZXI6IExpdmVBbm5vdW5jZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbnRlcm5hbFZhbHVlOiBhbnk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYWxjdWxhdGVkTWF4SGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ydGwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxPcHRpb25Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRyaWdnZXJzIHdoZW4gY29tcG9uZW50IGlzIGRlc3Ryb3llZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDb21iaW5lZCBzdHJlYW0gb2YgYWxsIG9mIHRoZSBjaGlsZCBvcHRpb25zJyBjaGFuZ2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzOiBPYnNlcnZhYmxlPEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlPiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBfb3B0aW9ucz8uY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKF9vcHRpb25zKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGlvbkNoYW5nZSkpKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb250cm9sRWxlbUZvbnRTaXplID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFN0b3JlZCBjYWxjdWxhdGVkIG1heEhlaWdodCBmcm9tIE9wdGlvbiBQYW5lbFxuICAgICAqL1xuICAgIHByaXZhdGUgX21heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIF9yZXNpemVTY3JvbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVDYWxjdWxhdGVkSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCA/IC0xIDogMDtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWQoKTogT3B0aW9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdO1xuICAgIH1cblxuICAgIC8qKiBSZXRyaWV2ZXMgc2VsZWN0ZWQgdmFsdWUgaWYgYW55LiAqL1xuICAgIGdldCB0cmlnZ2VyVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZW1wdHlWYWx1ZSA9ICcgJztcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgZW1wdHlWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC52aWV3VmFsdWUgfHwgdGhpcy5wbGFjZWhvbGRlciB8fCBlbXB0eVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBlcXVhbCB0byBjbG9zZVxuICAgICAqIFRlbGxzIHRoZSBPcHRpb25MaXN0IGlmIGl0J3MgY2xvc2FibGUgYnkgc2ltcGx5IHNlbGVjdGluZyB0aGUgaXRlbSBlaXRoZXIgd2l0aCBDTElDSyB8IFNQQUNFIHwgRU5URVIuXG4gICAgICogV2hlbiB3ZSBhcmUgaW4gbW9iaWxlIG1vZGUgKG1vYmlsZT10cnVlKSBhbmQgaGF2ZSB3ZSBoYXZlIGVuYWJsZWQgY29uZmlybWF0aW9uIGJ1dHRvbnMgdGhlbiB3ZVxuICAgICAqIGRvbnQgY2xvc2Ugb3B0aW9uIGxpc3QuIFdlIGNsb3NlIG9ubHkgYWZ0ZXIgd2UgaGl0IGNvbmZpcm0gYnV0dG9uLlxuICAgICAqL1xuICAgIGdldCBjYW5DbG9zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEodGhpcy5tb2JpbGUgJiYgdGhpcy5tb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIGNvbnRyb2wgY2FuIGJlIGludGVyYWN0ZWQgd2l0aCAqL1xuICAgIGdldCBpc0ludGVyYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHdlIGNhbiBlbWl0IGEgdmFsdWUuIFRoZXkgYXJlIDMgZGlmZmVyZW50IHBhdGhzIHdoZXJlIHdlIGNhbiBlbWl0IHZhbHVlOlxuICAgICAqICAtIFdlIGFyZSBub3QgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09ZmFsc2VcbiAgICAgKiAgLSBXZSBhcmUgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09dHJ1ZSBhbmQgbW9iaWxlIGRpYWxvZyBhcyBqdXN0IGNsb3NlIFggYnV0dG9uIHRvIGRpc21pc3MgaXRcbiAgICAgKiAgLSBXZSBhcmUgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09dHJ1ZSBhbmQgbW9iaWxlIGRpYWxvZyBoYXMgQXBwcm92ZUJ1dHRvbiBhdmFpbGFibGUgYW5kXG4gICAgICogIGRpYWxvZyBpcyBjbG9zZWQuIChtZWFuaW5nIHdlIGFscmVhZHkgY2xpY2tlZCB0aGlzIGJ1dHRvbilcbiAgICAgKi9cbiAgICBnZXQgY2FuRW1pdFZhbHVlQ2hhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubW9iaWxlIHx8XG4gICAgICAgICAgICAodGhpcy5tb2JpbGUgJiZcbiAgICAgICAgICAgICAgICAvLyBBcHByb3ZlICsgQ2FuY2VsXG4gICAgICAgICAgICAgICAgISF0aGlzLm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCAmJlxuICAgICAgICAgICAgICAgICF0aGlzLl9pc09wZW4pIHx8XG4gICAgICAgICAgICAvLyBDbG9zZUJ1dHRvbi4gRW1pdHMgd2hlbiB5b3UgY2xpY2sgb24gdGhlIG9wdGlvbiBpdGVtXG4gICAgICAgICAgICAoISF0aGlzLm1vYmlsZUNvbmZpZy5oYXNDbG9zZUJ1dHRvbiAmJiAhIXRoaXMubW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ID09PSBmYWxzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb21wYXJlV2l0aCA9IChvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiA9PiBvMSA9PT0gbzI7XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY29tcGFyZSB0aGUgb3B0aW9uIHZhbHVlcyB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZXMuICovXG4gICAgZ2V0IGNvbXBhcmVXaXRoKCk6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBhcmVXaXRoO1xuICAgIH1cblxuICAgIHNldCBjb21wYXJlV2l0aChmbjogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2NvbXBhcmVXaXRoYCBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbjtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICAvLyBBIGRpZmZlcmVudCBjb21wYXJhdG9yIG1lYW5zIHRoZSBzZWxlY3Rpb24gY291bGQgY2hhbmdlLlxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWQgfHwgdGhpcy5faXNPcGVuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGNhbGN1bGF0ZWRNYXhIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heEhlaWdodCB8fCB0aGlzLl9jYWxjdWxhdGVkTWF4SGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIF90YWJJbmRleDogc3RyaW5nLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9rZXlNYW5hZ2VyU2VydmljZTogU2VsZWN0S2V5TWFuYWdlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90YWJJbmRleCA9IHBhcnNlSW50KF90YWJJbmRleCwgMTApIHx8IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcmlhTGFiZWwgPSB0aGlzLmFyaWFMYWJlbCB8fCB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5hcmlhTGFiZWxsZWRCeSB8fCB0aGlzLnBsYWNlaG9sZGVyO1xuXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3QgPT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZS5faXNDb21wYWN0RGVuc2l0eS5zdWJzY3JpYmUoKGlzQ29tcGFjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBhY3QgPSBpc0NvbXBhY3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9pbml0S2V5TWFuYWdlcih0aGlzKTtcbiAgICAgICAgdGhpcy5fc2V0dXBNb2JpbGVNb2RlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyRXZlbnRzQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1sndHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCddICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci53aXRoVHlwZUFoZWFkKHRoaXMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkID8gLTEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9jbGVhbnVwQ29tbW9uQmVoYXZpb3IoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbnMgdGhlIHNlbGVjdCBwb3BvdmVyIGJvZHkuICovXG4gICAgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSB8fCAhdGhpcy5fb3B0aW9ucyB8fCAhdGhpcy5fZ2V0SXRlbUNvdW50KCkgfHwgdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9jb250cm9sRWxlbUZvbnRTaXplID0gcGFyc2VJbnQoXG4gICAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZvbnRTaXplIHx8ICcwJyxcbiAgICAgICAgICAgIDEwXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xvc2UoZm9yY2VDbG9zZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc09wZW4gJiYgKGZvcmNlQ2xvc2UgfHwgdGhpcy5jbG9zZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJyk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZvY3VzZXMgc2VsZWN0IGNvbnRyb2wuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9jb250cm9sRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQmx1cnMgc2VsZWN0IGNvbnRyb2wuICovXG4gICAgYmx1cigpOiB2b2lkIHtcbiAgICAgICAgKHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5ibHVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGZyb20gQ29udHJvbFZhbHVlIEFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFNlbGVjdGlvbkJ5VmFsdWUodmFsdWU6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdPcHRpb24gPSB0aGlzLl9zZWxlY3RWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gU2hpZnQgZm9jdXMgdG8gdGhlIGFjdGl2ZSBpdGVtLiBOb3RlIHRoYXQgd2Ugc2hvdWxkbid0IGRvIHRoaXMgaW4gbXVsdGlwbGVcbiAgICAgICAgLy8gbW9kZSwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IHdoYXQgb3B0aW9uIHRoZSB1c2VyIGludGVyYWN0ZWQgd2l0aCBsYXN0LlxuICAgICAgICBpZiAoY29ycmVzcG9uZGluZ09wdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShjb3JyZXNwb25kaW5nT3B0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgcmVzZXQgdGhlIGhpZ2hsaWdodGVkIG9wdGlvbi4gTm90ZSB0aGF0IHdlIG9ubHkgd2FudCB0byBkbyB0aGlzIHdoaWxlXG4gICAgICAgICAgICAvLyBjbG9zZWQsIGJlY2F1c2UgZG9pbmcgaXQgd2hpbGUgb3BlbiBjYW4gc2hpZnQgdGhlIHVzZXIncyBmb2N1cyB1bm5lY2Vzc2FyaWx5LlxuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RWYWx1ZSh2YWx1ZTogYW55KTogT3B0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY29ycmVzcG9uZGluZ09wdGlvbiA9IHRoaXMuX29wdGlvbnMuZmluZCgob3B0aW9uOiBPcHRpb25Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gVHJlYXQgbnVsbCBhcyBhIHNwZWNpYWwgcmVzZXQgdmFsdWUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZSAhPSBudWxsICYmIHRoaXMuX2NvbXBhcmVXaXRoKG9wdGlvbi52YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90aWZ5IGRldmVsb3BlcnMgb2YgZXJyb3JzIGluIHRoZWlyIGNvbXBhcmF0b3IuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChjb3JyZXNwb25kaW5nT3B0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3JyZXNwb25kaW5nT3B0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3BvcG92ZXJPcGVuQ2hhbmdlSGFuZGxlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpc09wZW4gPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIF9rZXlNYW5hZ2VyU2VydmljZS4gKi9cbiAgICBfZ2V0S2V5U2VydmljZSgpOiBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIgJiYgIXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsZWFudXBDb21tb25CZWhhdmlvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbml0aWFsaXplU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZlciBzZXR0aW5nIHRoZSB2YWx1ZSBpbiBvcmRlciB0byBhdm9pZCB0aGUgXCJFeHByZXNzaW9uXG4gICAgICAgIC8vIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkXCIgZXJyb3JzIGZyb20gQW5ndWxhci5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHRoaXMubmdDb250cm9sID8gdGhpcy5uZ0NvbnRyb2wudmFsdWUgOiB0aGlzLl9pbnRlcm5hbFZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhwb3NlIGV4cG9zZSBvdXRzaWRlIG9mIHRoaXMgbWl4aW4gdG8gZ2l2ZSBjb21wb25lbnQgYWJpbGl0eVxuICAgICAqIHRvIHVwZGF0ZSBjYWx1Y2xhdGVkTWF4SGVpZ2h0IGlmIG5lZWRlZFxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdXBkYXRlQ2FsY3VsYXRlZEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlZE1heEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAqIDAuNDU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ2V0T3B0aW9uU2Nyb2xsUG9zaXRpb24ob3B0aW9uSW5kZXg6IG51bWJlciwgaXRlbUhlaWdodDogbnVtYmVyLCBjdXJyZW50U2Nyb2xsUG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG9wdGlvbkhlaWdodCA9IHRoaXMuX29wdGlvbnMuZ2V0KG9wdGlvbkluZGV4KT8uX2dldEh0bWxFbGVtZW50KCkub2Zmc2V0SGVpZ2h0IHx8IGl0ZW1IZWlnaHQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbk9mZnNldCA9IG9wdGlvbkluZGV4ICogb3B0aW9uSGVpZ2h0O1xuICAgICAgICBpZiAob3B0aW9uT2Zmc2V0IDwgY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uT2Zmc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbk9mZnNldCArIG9wdGlvbkhlaWdodCA+IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiArIFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgb3B0aW9uT2Zmc2V0IC0gU0VMRUNUX1BBTkVMX01BWF9IRUlHSFQgKyBvcHRpb25IZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50U2Nyb2xsUG9zaXRpb247XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ2V0SXRlbUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBhbHNvIGluY2x1ZGUgYm9yZGVyIHdpdGggZGVmYXVsdCB2YWx1ZSAxLlxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbEVsZW1Gb250U2l6ZSAqIFNFTEVDVF9JVEVNX0hFSUdIVF9FTSArIDE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5pdGlhbGl6ZUNvbW1vbkJlaGF2aW9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxPcHRpb25Db21wb25lbnQ+KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2NvbXBvbmVudCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FsY3VsYXRlZEhlaWdodCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lzUnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fcnRsU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICAgICAgdGhpcy5fcnRsU2VydmljZS5ydGwuc3Vic2NyaWJlKChydGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcnRsID0gcnRsO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGwgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVnaXN0ZXJFdmVudHNBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5hZGRlZC5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5fc2VsZWN0KCkpO1xuICAgICAgICAgICAgZXZlbnQucmVtb3ZlZC5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5fZGVzZWxlY3QoKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX29wdGlvbnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzZXRPcHRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplU2VsZWN0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICB0aGlzLl9pc09wZW5cbiAgICAgICAgICAgICAgICA/IHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9oYW5kbGVPcGVuS2V5ZG93bihldmVudClcbiAgICAgICAgICAgICAgICA6IHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9oYW5kbGVDbG9zZWRLZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5faXNPcGVuICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtLmlkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2V0T3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZE9yRGVzdHJveWVkID0gbWVyZ2UodGhpcy5fb3B0aW9ucy5jaGFuZ2VzLCB0aGlzLl9kZXN0cm95KTtcblxuICAgICAgICB0aGlzLl9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29uU2VsZWN0KGV2ZW50LnNvdXJjZSwgZXZlbnQuaXNVc2VySW5wdXQpO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnQuaXNVc2VySW5wdXQgJiYgdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBMaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIF9vcHRpb25zIGFuZCByZWFjdCBhY2NvcmRpbmdseS5cbiAgICAgICAgLy8gSGFuZGxlcyBjYXNlcyBsaWtlIHRoZSBsYWJlbHMgb2YgdGhlIHNlbGVjdGVkIF9vcHRpb25zIGNoYW5naW5nLlxuICAgICAgICBtZXJnZSguLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uX3N0YXRlQ2hhbmdlcykpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwoY2hhbmdlZE9yRGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEludm9rZWQgd2hlbiBhbiBvcHRpb24gaXMgY2xpY2tlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblNlbGVjdChvcHRpb246IE9wdGlvbkNvbXBvbmVudCwgaXNVc2VySW5wdXQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2FzU2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbik7XG4gICAgICAgIGlmICgob3B0aW9uLnZhbHVlID09PSBudWxsIHx8IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSAmJiB0aGlzLnVuc2VsZWN0TWlzc2luZ09wdGlvbikge1xuICAgICAgICAgICAgb3B0aW9uLl9kZXNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRTZWxlY3RDaGFuZ2Uob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3YXNTZWxlY3RlZCAhPT0gb3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID8gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KG9wdGlvbikgOiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzVXNlcklucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdhc1NlbGVjdGVkICE9PSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbikgfHwgdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRTZWxlY3RDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZW1pdFNlbGVjdENoYW5nZShkZWZhdWx0VmFsPzogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbkVtaXRWYWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxWYWx1ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQgJiYgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoICE9PSAwXG4gICAgICAgICAgICAgICAgICAgID8gKHRoaXMuc2VsZWN0ZWQgYXMgT3B0aW9uQ29tcG9uZW50KS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGRlZmF1bHRWYWw7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5faW50ZXJuYWxWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2ludGVybmFsVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEl0ZW1Db3VudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fb3B0aW9uUGFuZWwgJiYgdGhpcy5faGVhZGVyRWxlbWVudHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sZW5ndGggKyB0aGlzLl9oZWFkZXJFbGVtZW50cygpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oZWFkZXJFbGVtZW50cygpOiBOb2RlTGlzdE9mPEVsZW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvblBhbmVsPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoU0VMRUNUX0hFQURFUl9JREVOVElGSUVSKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX3NldHVwTW9iaWxlTW9kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBTRUxFQ1RfQ09NUE9ORU5ULCB1c2VWYWx1ZTogdGhpcyB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlRHluYW1pY01vZHVsZShcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uc0xpc3RUZW1wbGF0ZSxcbiAgICAgICAgICAgIFNlbGVjdE1vYmlsZU1vZHVsZSxcbiAgICAgICAgICAgIFNlbGVjdE1vYmlsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBpbmplY3RvclxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGUgPyBtb2JpbGVUZW1wbGF0ZSA6IGRlc2t0b3BUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Rlc2t0b3BUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtc2VsZWN0XCIgW2NsYXNzLmZkLXNlbGVjdC0tY29tcGFjdF09XCJjb21wYWN0XCIgKGtleWRvd24pPVwiX2hhbmRsZUtleWRvd24oJGV2ZW50KVwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAgICAgYWRkaXRpb25hbEJvZHlDbGFzcz1cImZkLXBvcG92ZXItY3VzdG9tLWxpc3RcIlxuICAgICAgICAgICAgW2lzT3Blbl09XCJfaXNPcGVuXCJcbiAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXG4gICAgICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgICAgICBbY2xvc2VPbkVzY2FwZUtleV09XCJ0cnVlXCJcbiAgICAgICAgICAgIGZpbGxDb250cm9sTW9kZT1cImF0LWxlYXN0XCJcbiAgICAgICAgICAgIFttYXhXaWR0aF09XCI2MDBcIlxuICAgICAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiY2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9wb3BvdmVyT3BlbkNoYW5nZUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdElucHV0Q29udHJvbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cblxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keSBjbGFzcz1cImZkLXBvcG92ZXItY3VzdG9tLXNlbGVjdC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtc2VsZWN0X19jb250cm9sXCJcbiAgICAgICAgcm9sZT1cImxpc3RcIlxuICAgICAgICAjc2VsZWN0Q29udHJvbFxuICAgICAgICBbY2xhc3NdPVwic3RhdGUgPyAnaXMtJyArIHN0YXRlIDogJydcIlxuICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cIl9pc09wZW5cIlxuICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5pcy1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cIl90YWJJbmRleFwiXG4gICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2xJZFwiXG4gICAgICAgIFthdHRyLmFyaWEtYWN0aXZlXT1cIl9pc09wZW5cIlxuICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkPy5zZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJjb250cm9sSWQgKyAnLWxpc3QtYm94J1wiXG4gICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cInRyaWdnZXJWYWx1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIl9nZXRBcmlhQWN0aXZlRGVzY2VuZGFudCgpXCJcbiAgICAgICAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICAgICAgICAoYmx1cik9XCJfb25CbHVyKClcIlxuICAgID5cbiAgICAgICAgPGRpdiByb2xlPVwibGlzdGl0ZW1cIiBjbGFzcz1cImZkLXNlbGVjdF9fdGV4dC1jb250ZW50XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0cmlnZ2VyVmFsdWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250cm9sVGVtcGxhdGUgPyBjb250cm9sVGVtcGxhdGUgOiBkZWZhdWx0U2VsZWN0Q29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0cmlnZ2VyVmFsdWUsIHNlbGVjdGVkOiBzZWxlY3RlZCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTZWxlY3RDb250ZW50PlxuICAgICAgICAgICAgICAgIHt7IHRyaWdnZXJWYWx1ZSB9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWJ1dHRvbi0tdHJhbnNwYXJlbnQgZmQtc2VsZWN0X19idXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0T3B0aW9uc0xpc3RUZW1wbGF0ZT5cbiAgICA8dWxcbiAgICAgICAgI29wdGlvblBhbmVsXG4gICAgICAgIGZkLWxpc3RcbiAgICAgICAgY2xhc3M9XCJmZC1zZWxlY3Qtb3B0aW9uc1wiXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxuICAgICAgICBbbW9iaWxlTW9kZV09XCJtb2JpbGVcIlxuICAgICAgICBbZHJvcGRvd25Nb2RlXT1cInRydWVcIlxuICAgICAgICBbaGFzTWVzc2FnZV09XCIhIXN0YXRlTWVzc2FnZVwiXG4gICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2xJZCArICctbGlzdC1ib3gnXCJcbiAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0IHx8IGNhbGN1bGF0ZWRNYXhIZWlnaHQgKyAncHgnXCJcbiAgICAgICAgW2F0dHIudG9vbHRpcF09XCJ0cmlnZ2VyVmFsdWVcIlxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBmZC1saXN0LW1lc3NhZ2VcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBbdHlwZV09XCJzdGF0ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJzdGF0ZU1lc3NhZ2VcIlxuICAgICAgICA+PC9saT5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZkLXNlbGVjdFwiIFtjbGFzcy5mZC1zZWxlY3QtLWNvbXBhY3RdPVwiY29tcGFjdFwiIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAjZGlhbG9nQ29udGFpbmVyPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
615
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFNBQVMsRUFHVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYyxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSXpHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBbUIsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUEy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U0FBUztzQkFEUixLQUFLO2dCQUtOLEtBQUs7c0JBREosS0FBSztnQkFLTixtQkFBbUI7c0JBRGxCLEtBQUs7Z0JBVU4sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGVBQWU7c0JBRGQsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBU04scUJBQXFCO3NCQURwQixLQUFLO2dCQUtOLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLTixjQUFjO3NCQURiLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixNQUFNO3NCQURMLEtBQUs7Z0JBS0csWUFBWTtzQkFEcEIsTUFBTTtnQkFLRSxXQUFXO3NCQURuQixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxlQUFlLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUt2RCxrQkFBa0I7c0JBRGpCLFNBQVM7dUJBQUMsZUFBZTtnQkFLMUIseUJBQXlCO3NCQUR4QixTQUFTO3VCQUFDLDJCQUEyQjtnQkFNdEMsMEJBQTBCO3NCQUR6QixTQUFTO3VCQUFDLGlCQUFpQjtnQkFRNUIsV0FBVztzQkFEVixTQUFTO3VCQUFDLG1CQUFtQjtnQkFPOUIsWUFBWTtzQkFEWCxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBOEQ5QyxvQkFBb0I7c0JBRG5CLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaXNEZXZNb2RlLFxuICAgIEF0dHJpYnV0ZSxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTZWxmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTGl2ZUFubm91bmNlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2xsZWN0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIG1lcmdlLCBPYnNlcnZhYmxlLCBkZWZlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUG9wb3ZlckZpbGxNb2RlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eVNlcnZpY2UsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLCBSdGxTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3V0aWxzJztcbmltcG9ydCB7IEZvcm1TdGF0ZXMsIE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NoYXJlZCc7XG5pbXBvcnQgeyBNb2JpbGVNb2RlQ29uZmlnIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL21vYmlsZS1tb2RlJztcblxuaW1wb3J0IHsgU0VMRUNUX0NPTVBPTkVOVCwgU2VsZWN0SW50ZXJmYWNlIH0gZnJvbSAnLi9zZWxlY3QuaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlbGVjdEtleU1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3Qta2V5LW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQsIEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlIH0gZnJvbSAnLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RNb2JpbGVDb21wb25lbnQgfSBmcm9tICcuL3NlbGVjdC1tb2JpbGUvc2VsZWN0LW1vYmlsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0TW9iaWxlTW9kdWxlIH0gZnJvbSAnLi9zZWxlY3QtbW9iaWxlL3NlbGVjdC1tb2JpbGUubW9kdWxlJztcblxubGV0IHNlbGVjdFVuaXF1ZUlkID0gMDtcblxuLyoqIEBkZXByZWNhdGVkIHVzZSBgaW1wb3J0IHsgRm9ybVN0YXRlcyB9IGZyb20gXCJAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2hhcmVkXCJgIGluc3RlYWQgKi9cbmV4cG9ydCB0eXBlIFNlbGVjdENvbnRyb2xTdGF0ZSA9IEZvcm1TdGF0ZXM7XG5cbmNvbnN0IFNFTEVDVF9IRUFERVJfSURFTlRJRklFUiA9ICcuZmQtbGlzdF9fZ3JvdXAtaGVhZGVyJztcblxuZXhwb3J0IGNvbnN0IFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUID0gMjUwO1xuXG4vKiogVGhlIGhlaWdodCBvZiB0aGUgc2VsZWN0IGl0ZW1zIGluIGByZW1gIHVuaXRzLiAqL1xuZXhwb3J0IGNvbnN0IFNFTEVDVF9JVEVNX0hFSUdIVF9FTSA9IDQ7XG5cbi8qKlxuICogU2VsZWN0IGNvbXBvbmVudCBpbnRlbmRlZCB0byBtaW1pY1xuICogdGhlIGJlaGF2aW91ciBvZiB0aGUgbmF0aXZlIHNlbGVjdCBlbGVtZW50LlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgICdbY2xhc3MuZmQtc2VsZWN0LWN1c3RvbS1jbGFzc10nOiAnaW5saW5lJyxcbiAgICAgICAgJ1tjbGFzcy5mZC1zZWxlY3QtY3VzdG9tLWNsYXNzLS1tb2JpbGVdJzogJ21vYmlsZSdcbiAgICB9LFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTRUxFQ1RfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdENvbXBvbmVudFxuICAgICAgICB9LFxuICAgICAgICBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgU2VsZWN0SW50ZXJmYWNlLCBPbkluaXQsIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gICAgLyoqIElkIG9mIHRoZSBjb250cm9sLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udHJvbElkID0gYGZkLXNlbGVjdC0ke3NlbGVjdFVuaXF1ZUlkKyt9YDtcblxuICAgIC8qKiBIb2xkcyB0aGUgY29udHJvbCBzdGF0ZSBvZiBzZWxlY3QgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlOiBOdWxsYWJsZTxGb3JtU3RhdGVzPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgY29tcG9uZW50IHNob3VsZCBiZSBkaXNwbGF5ZWQgaW4gbW9iaWxlIG1vZGUuICovXG4gICAgQElucHV0KClcbiAgICBtb2JpbGUgPSBmYWxzZTtcblxuICAgIC8qKiBIb2xkcyB0aGUgbWVzc2FnZSB3aXRoIHJlc3BlY3QgdG8gc3RhdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIHN0YXRlTWVzc2FnZTogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgY29tcG9uZW50IGlzIGRpc2FibGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBpdCBpcyBtYW5kYXRvcnkgZmllbGQgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlcXVpcmVkID0gZmFsc2U7XG5cbiAgICAvKiogV2hldGhlciB0aGUgc2VsZWN0IGNvbXBvbmVudCBpcyByZWFkb25seS4gKi9cbiAgICBASW5wdXQoKVxuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG5cbiAgICAvKiogUGxhY2Vob2xkZXIgZm9yIHRoZSBzZWxlY3QuIEFwcGVhcnMgaW4gdGhlIHRyaWdnZXJib3ggaWYgbm8gb3B0aW9uIGlzIHNlbGVjdGVkLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcGxhY2Vob2xkZXI6IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnRlcm5hbFZhbHVlO1xuICAgIH1cblxuICAgIHNldCB2YWx1ZShuZXdWYWx1ZTogYW55KSB7XG4gICAgICAgIGlmIChuZXdWYWx1ZSAhPT0gdGhpcy5faW50ZXJuYWxWYWx1ZSkge1xuICAgICAgICAgICAgdGhpcy53cml0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2ludGVybmFsVmFsdWUgPSBuZXdWYWx1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIHRoZSBzZWxlY3QgaXMgaW4gY29tcGFjdCBtb2RlLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29tcGFjdD86IGJvb2xlYW47XG5cbiAgICAvKiogQGRlcHJlY2F0ZWRcbiAgICAgKiBpdCBpcyBoYW5kbGVkIGludGVybmFsbHkgYnkgY29udHJvbFRlbXBsYXRlICE9IG51bGx8dW5kZWZpbmVkIGlzXG4gICAgICogRXF1YWwgYXMgZXh0ZW5kZWRCb2R5VGVtcGxhdGUgYXMgdHJ1ZS5cbiAgICAgKiBXaGV0aGVyIG9wdGlvbiBjb21wb25lbnRzIGNvbnRhaW4gbW9yZSB0aGFuIGJhc2ljIHRleHQuICovXG4gICAgQElucHV0KClcbiAgICBleHRlbmRlZEJvZHlUZW1wbGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqIE1heCBoZWlnaHQgb2YgdGhlIHBvcG92ZXIuIEFueSBvdmVyZmxvd2luZyBlbGVtZW50cyB3aWxsIGJlIGFjY2Vzc2libGUgdGhyb3VnaCBzY3JvbGxpbmcuICovXG4gICAgQElucHV0KClcbiAgICBtYXhIZWlnaHQ6IHN0cmluZztcblxuICAgIC8qKiBHbHlwaCB0byBhZGQgaWNvbiBpbiB0aGUgc2VsZWN0IGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGdseXBoID0gJ3NsaW0tYXJyb3ctZG93bic7XG5cbiAgICAvKiogV2hldGhlciBjbG9zZSB0aGUgcG9wb3ZlciBvbiBvdXRzaWRlIGNsaWNrLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY2xvc2VPbk91dHNpZGVDbGljayA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBQcmVzZXQgb3B0aW9ucyBmb3IgdGhlIFNlbGVjdCBib2R5IHdpZHRoLCB3aGF0ZXZlciBpcyBjaG9zZW4sIHRoZSBib2R5IGhhcyBhIDYwMHB4IGxpbWl0LlxuICAgICAqICogYGF0LWxlYXN0YCB3aWxsIGFwcGx5IGEgbWluaW11bSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC4gLSBEZWZhdWx0XG4gICAgICogKiBgZXF1YWxgIHdpbGwgYXBwbHkgYSB3aWR0aCB0byB0aGUgYm9keSBlcXVpdmFsZW50IHRvIHRoZSB3aWR0aCBvZiB0aGUgY29udHJvbC5cbiAgICAgKiAqICdmaXQtY29udGVudCcgd2lsbCBhcHBseSB3aWR0aCBuZWVkZWQgdG8gcHJvcGVybHkgZGlzcGxheSBpdGVtcyBpbnNpZGUsIGluZGVwZW5kZW50IG9mIGNvbnRyb2wuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmaWxsQ29udHJvbE1vZGU6IFBvcG92ZXJGaWxsTW9kZSA9ICdhdC1sZWFzdCc7XG5cbiAgICAvKiogQ3VzdG9tIHRlbXBsYXRlIHVzZWQgdG8gYnVpbGQgY29udHJvbCBib2R5LiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udHJvbFRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIFRoZSBlbGVtZW50IHRvIHdoaWNoIHRoZSBwb3BvdmVyIHNob3VsZCBiZSBhcHBlbmRlZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFwcGVuZFRvOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogSWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgdW5zZWxlY3RlZCBhbmQgdmFsdWUgY2hhbmdlZCB0byB1bmRlZmluZWQsIHdoZW4gdGhlIGN1cnJlbnQgdmFsdWUgaXNcbiAgICAgKiBub3QgcHJlc2VudGVkIGluIG9wdGlvbiBhcnJheS4gU3dpdGNoaW5nIGl0IG9mZiBjYW4gYmUgaGFuZHksIHdoZW4gdGhlcmUgaXMgc29tZSBkZWxheSBiZXR3ZWVuIHByb3ZpZGluZ1xuICAgICAqIHBvc3NpYmxlIG9wdGlvbnMgYW5kIGNob3NlbiB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuc2VsZWN0TWlzc2luZ09wdGlvbiA9IHRydWU7XG5cbiAgICAvKiogVGltZSB0byB3YWl0IGluIG1pbGxpc2Vjb25kcyBhZnRlciB0aGUgbGFzdCBrZXlkb3duIGJlZm9yZSBmb2N1c2luZyBvciBzZWxlY3Rpbmcgb3B0aW9uIGJhc2VkIG9uIGFscGhhbnVtZXJpYyBrZXlzLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCA9IDI1MDtcblxuICAgIC8qKiBCaW5kcyB0byBjb250cm9sIGFyaWEtbGFiZWxsZWRCeSBhdHRyaWJ1dGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGFyaWFMYWJlbGxlZEJ5OiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNldHMgY29udHJvbCBhcmlhLWxhYmVsIGF0dHJpYnV0ZSB2YWx1ZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgYXJpYUxhYmVsOiBOdWxsYWJsZTxzdHJpbmc+O1xuXG4gICAgLyoqIFNlbGVjdCBJbnB1dCBNb2JpbGUgQ29uZmlndXJhdGlvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbW9iaWxlQ29uZmlnOiBNb2JpbGVNb2RlQ29uZmlnID0geyBoYXNDbG9zZUJ1dHRvbjogdHJ1ZSB9O1xuXG4gICAgLyoqIFNob3VsZCBzZWxlY3QgYmUgaW5saW5lZC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlubGluZSA9IHRydWU7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBwb3BvdmVyIG9wZW4gc3RhdGUgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBpc09wZW5DaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy4gKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9vcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQFZpZXdDaGlsZCgnc2VsZWN0Q29udHJvbCcpXG4gICAgX2NvbnRyb2xFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gZWxlbWVudCBjb250YWluaW5nIGxpc3Qgb2Ygb3B0aW9ucyAqL1xuICAgIEBWaWV3Q2hpbGQoJ3NlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGUnKVxuICAgIHNlbGVjdE9wdGlvbnNMaXN0VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlZmVyZW5jZSB0byByb290IGVsZW1lbnQgZm9yIHRoZSBtb2JpbGUgbW9kZSBkaWFsb2cgKi9cbiAgICBAVmlld0NoaWxkKCdkaWFsb2dDb250YWluZXInKVxuICAgIF9kaWFsb2dDb250YWluZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmxheSBwYW5lIGNvbnRhaW5pbmcgdGhlIG9wdGlvbnMuXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoQ2RrQ29ubmVjdGVkT3ZlcmxheSlcbiAgICBfb3ZlcmxheURpcjogQ2RrQ29ubmVjdGVkT3ZlcmxheTtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogUmVmZXJlbnQgdG8gdGhlIG9wdGlvbjtzIGNvbnRhaW5lclxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ29wdGlvblBhbmVsJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gICAgX29wdGlvblBhbmVsOiBFbGVtZW50UmVmO1xuXG4gICAgLyoqIFdoZXRoZXIgcG9wb3ZlciBpcyBvcGVuZWRcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2lzT3BlbiA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdGFiSW5kZXg6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2xpdmVBbm5vdW5jZXI6IExpdmVBbm5vdW5jZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbnRlcm5hbFZhbHVlOiBhbnk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jYWxjdWxhdGVkTWF4SGVpZ2h0OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9ydGwgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGlvbk1vZGVsOiBTZWxlY3Rpb25Nb2RlbDxPcHRpb25Db21wb25lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFRyaWdnZXJzIHdoZW4gY29tcG9uZW50IGlzIGRlc3Ryb3llZFxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9kZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDb21iaW5lZCBzdHJlYW0gb2YgYWxsIG9mIHRoZSBjaGlsZCBvcHRpb25zJyBjaGFuZ2UgZXZlbnRzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IF9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzOiBPYnNlcnZhYmxlPEZkT3B0aW9uU2VsZWN0aW9uQ2hhbmdlPiA9IGRlZmVyKCgpID0+IHtcbiAgICAgICAgY29uc3QgX29wdGlvbnMgPSB0aGlzLl9vcHRpb25zO1xuXG4gICAgICAgIHJldHVybiBfb3B0aW9ucz8uY2hhbmdlcy5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKF9vcHRpb25zKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGlvbkNoYW5nZSkpKVxuICAgICAgICApO1xuICAgIH0pO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jb250cm9sRWxlbUZvbnRTaXplID0gMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFN0b3JlZCBjYWxjdWxhdGVkIG1heEhlaWdodCBmcm9tIE9wdGlvbiBQYW5lbFxuICAgICAqL1xuICAgIHByaXZhdGUgX21heEhlaWdodDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICAgIF9yZXNpemVTY3JvbGxIYW5kbGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVDYWxjdWxhdGVkSGVpZ2h0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gdGhpcy5kaXNhYmxlZCA/IC0xIDogMDtcbiAgICB9XG5cbiAgICBnZXQgc2VsZWN0ZWQoKTogT3B0aW9uQ29tcG9uZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdGVkWzBdO1xuICAgIH1cblxuICAgIC8qKiBSZXRyaWV2ZXMgc2VsZWN0ZWQgdmFsdWUgaWYgYW55LiAqL1xuICAgIGdldCB0cmlnZ2VyVmFsdWUoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZW1wdHlWYWx1ZSA9ICcgJztcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucGxhY2Vob2xkZXIgfHwgZW1wdHlWYWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZC52aWV3VmFsdWUgfHwgdGhpcy5wbGFjZWhvbGRlciB8fCBlbXB0eVZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBlcXVhbCB0byBjbG9zZVxuICAgICAqIFRlbGxzIHRoZSBPcHRpb25MaXN0IGlmIGl0J3MgY2xvc2FibGUgYnkgc2ltcGx5IHNlbGVjdGluZyB0aGUgaXRlbSBlaXRoZXIgd2l0aCBDTElDSyB8IFNQQUNFIHwgRU5URVIuXG4gICAgICogV2hlbiB3ZSBhcmUgaW4gbW9iaWxlIG1vZGUgKG1vYmlsZT10cnVlKSBhbmQgaGF2ZSB3ZSBoYXZlIGVuYWJsZWQgY29uZmlybWF0aW9uIGJ1dHRvbnMgdGhlbiB3ZVxuICAgICAqIGRvbnQgY2xvc2Ugb3B0aW9uIGxpc3QuIFdlIGNsb3NlIG9ubHkgYWZ0ZXIgd2UgaGl0IGNvbmZpcm0gYnV0dG9uLlxuICAgICAqL1xuICAgIGdldCBjYW5DbG9zZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEodGhpcy5tb2JpbGUgJiYgdGhpcy5tb2JpbGVDb25maWcuYXBwcm92ZUJ1dHRvblRleHQpO1xuICAgIH1cblxuICAgIC8qKiBXaGV0aGVyIGNvbnRyb2wgY2FuIGJlIGludGVyYWN0ZWQgd2l0aCAqL1xuICAgIGdldCBpc0ludGVyYWN0aXZlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrIGlmIHdlIGNhbiBlbWl0IGEgdmFsdWUuIFRoZXkgYXJlIDMgZGlmZmVyZW50IHBhdGhzIHdoZXJlIHdlIGNhbiBlbWl0IHZhbHVlOlxuICAgICAqICAtIFdlIGFyZSBub3QgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09ZmFsc2VcbiAgICAgKiAgLSBXZSBhcmUgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09dHJ1ZSBhbmQgbW9iaWxlIGRpYWxvZyBhcyBqdXN0IGNsb3NlIFggYnV0dG9uIHRvIGRpc21pc3MgaXRcbiAgICAgKiAgLSBXZSBhcmUgaW4gbW9iaWxlIG1vZGUgW21vYmlsZV09dHJ1ZSBhbmQgbW9iaWxlIGRpYWxvZyBoYXMgQXBwcm92ZUJ1dHRvbiBhdmFpbGFibGUgYW5kXG4gICAgICogIGRpYWxvZyBpcyBjbG9zZWQuIChtZWFuaW5nIHdlIGFscmVhZHkgY2xpY2tlZCB0aGlzIGJ1dHRvbilcbiAgICAgKi9cbiAgICBnZXQgY2FuRW1pdFZhbHVlQ2hhbmdlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgIXRoaXMubW9iaWxlIHx8XG4gICAgICAgICAgICAodGhpcy5tb2JpbGUgJiZcbiAgICAgICAgICAgICAgICAvLyBBcHByb3ZlICsgQ2FuY2VsXG4gICAgICAgICAgICAgICAgISF0aGlzLm1vYmlsZUNvbmZpZy5hcHByb3ZlQnV0dG9uVGV4dCAmJlxuICAgICAgICAgICAgICAgICF0aGlzLl9pc09wZW4pIHx8XG4gICAgICAgICAgICAvLyBDbG9zZUJ1dHRvbi4gRW1pdHMgd2hlbiB5b3UgY2xpY2sgb24gdGhlIG9wdGlvbiBpdGVtXG4gICAgICAgICAgICAoISF0aGlzLm1vYmlsZUNvbmZpZy5oYXNDbG9zZUJ1dHRvbiAmJiAhIXRoaXMubW9iaWxlQ29uZmlnLmFwcHJvdmVCdXR0b25UZXh0ID09PSBmYWxzZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9jb21wYXJlV2l0aCA9IChvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiA9PiBvMSA9PT0gbzI7XG5cbiAgICAvKiogRnVuY3Rpb24gdG8gY29tcGFyZSB0aGUgb3B0aW9uIHZhbHVlcyB3aXRoIHRoZSBzZWxlY3RlZCB2YWx1ZXMuICovXG4gICAgZ2V0IGNvbXBhcmVXaXRoKCk6IChvMTogYW55LCBvMjogYW55KSA9PiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbXBhcmVXaXRoO1xuICAgIH1cblxuICAgIHNldCBjb21wYXJlV2l0aChmbjogKG8xOiBhbnksIG8yOiBhbnkpID0+IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHR5cGVvZiBmbiAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ2NvbXBhcmVXaXRoYCBtdXN0IGJlIGEgZnVuY3Rpb24uJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29tcGFyZVdpdGggPSBmbjtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGlvbk1vZGVsKSB7XG4gICAgICAgICAgICAvLyBBIGRpZmZlcmVudCBjb21wYXJhdG9yIG1lYW5zIHRoZSBzZWxlY3Rpb24gY291bGQgY2hhbmdlLlxuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZVNlbGVjdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgZm9jdXNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzZWQgfHwgdGhpcy5faXNPcGVuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IGNhbGN1bGF0ZWRNYXhIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heEhlaWdodCB8fCB0aGlzLl9jYWxjdWxhdGVkTWF4SGVpZ2h0O1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIF90YWJJbmRleDogc3RyaW5nLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9rZXlNYW5hZ2VyU2VydmljZTogU2VsZWN0S2V5TWFuYWdlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IER5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBAU2VsZigpIHByaXZhdGUgcmVhZG9ubHkgbmdDb250cm9sOiBOZ0NvbnRyb2wsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfY29udGVudERlbnNpdHlTZXJ2aWNlOiBDb250ZW50RGVuc2l0eVNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICAgICAgICB0aGlzLm5nQ29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90YWJJbmRleCA9IHBhcnNlSW50KF90YWJJbmRleCwgMTApIHx8IDA7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcmlhTGFiZWwgPSB0aGlzLmFyaWFMYWJlbCB8fCB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICB0aGlzLmFyaWFMYWJlbGxlZEJ5ID0gdGhpcy5hcmlhTGFiZWxsZWRCeSB8fCB0aGlzLnBsYWNlaG9sZGVyO1xuXG4gICAgICAgIHRoaXMuX2luaXRpYWxpemVDb21tb25CZWhhdmlvcigpO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbXBhY3QgPT09IHVuZGVmaW5lZCAmJiB0aGlzLl9jb250ZW50RGVuc2l0eVNlcnZpY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnREZW5zaXR5U2VydmljZS5faXNDb21wYWN0RGVuc2l0eS5zdWJzY3JpYmUoKGlzQ29tcGFjdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBhY3QgPSBpc0NvbXBhY3Q7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9pbml0S2V5TWFuYWdlcih0aGlzKTtcbiAgICAgICAgdGhpcy5fc2V0dXBNb2JpbGVNb2RlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlZ2lzdGVyRXZlbnRzQWZ0ZXJDb250ZW50SW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoY2hhbmdlc1sndHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCddICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci53aXRoVHlwZUFoZWFkKHRoaXMudHlwZWFoZWFkRGVib3VuY2VJbnRlcnZhbCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXSkge1xuICAgICAgICAgICAgdGhpcy5fdGFiSW5kZXggPSB0aGlzLmRpc2FibGVkID8gLTEgOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl9jbGVhbnVwQ29tbW9uQmVoYXZpb3IoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICAgIC8qKiBUb2dnbGVzIHRoZSBvcGVuIHN0YXRlIG9mIHRoZSBzZWxlY3QuICovXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc09wZW4gPyB0aGlzLmNsb3NlKCkgOiB0aGlzLm9wZW4oKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbnMgdGhlIHNlbGVjdCBwb3BvdmVyIGJvZHkuICovXG4gICAgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSB8fCAhdGhpcy5fb3B0aW9ucyB8fCAhdGhpcy5fZ2V0SXRlbUNvdW50KCkgfHwgdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faXNPcGVuID0gdHJ1ZTtcblxuICAgICAgICB0aGlzLl9jb250cm9sRWxlbUZvbnRTaXplID0gcGFyc2VJbnQoXG4gICAgICAgICAgICBnZXRDb21wdXRlZFN0eWxlKHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLmZvbnRTaXplIHx8ICcwJyxcbiAgICAgICAgICAgIDEwXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbihudWxsKTtcbiAgICAgICAgdGhpcy5faGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcblxuICAgICAgICB0aGlzLmlzT3BlbkNoYW5nZS5lbWl0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY2xvc2UoZm9yY2VDbG9zZTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc09wZW4gJiYgKGZvcmNlQ2xvc2UgfHwgdGhpcy5jbG9zZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2lzT3BlbiA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLl9pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJyk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG5cbiAgICAgICAgICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEZvY3VzZXMgc2VsZWN0IGNvbnRyb2wuICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgICh0aGlzLl9jb250cm9sRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQmx1cnMgc2VsZWN0IGNvbnRyb2wuICovXG4gICAgYmx1cigpOiB2b2lkIHtcbiAgICAgICAgKHRoaXMuX2NvbnRyb2xFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5ibHVyKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIGZyb20gQ29udHJvbFZhbHVlIEFjY2Vzc29yICovXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9vcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NldFNlbGVjdGlvbkJ5VmFsdWUodmFsdWU6IGFueSB8IGFueVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmNsZWFyKCk7XG4gICAgICAgIGNvbnN0IGNvcnJlc3BvbmRpbmdPcHRpb24gPSB0aGlzLl9zZWxlY3RWYWx1ZSh2YWx1ZSk7XG5cbiAgICAgICAgLy8gU2hpZnQgZm9jdXMgdG8gdGhlIGFjdGl2ZSBpdGVtLiBOb3RlIHRoYXQgd2Ugc2hvdWxkbid0IGRvIHRoaXMgaW4gbXVsdGlwbGVcbiAgICAgICAgLy8gbW9kZSwgYmVjYXVzZSB3ZSBkb24ndCBrbm93IHdoYXQgb3B0aW9uIHRoZSB1c2VyIGludGVyYWN0ZWQgd2l0aCBsYXN0LlxuICAgICAgICBpZiAoY29ycmVzcG9uZGluZ09wdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShjb3JyZXNwb25kaW5nT3B0aW9uKTtcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAvLyBPdGhlcndpc2UgcmVzZXQgdGhlIGhpZ2hsaWdodGVkIG9wdGlvbi4gTm90ZSB0aGF0IHdlIG9ubHkgd2FudCB0byBkbyB0aGlzIHdoaWxlXG4gICAgICAgICAgICAvLyBjbG9zZWQsIGJlY2F1c2UgZG9pbmcgaXQgd2hpbGUgb3BlbiBjYW4gc2hpZnQgdGhlIHVzZXIncyBmb2N1cyB1bm5lY2Vzc2FyaWx5LlxuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSgtMSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZWxlY3RWYWx1ZSh2YWx1ZTogYW55KTogT3B0aW9uQ29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY29ycmVzcG9uZGluZ09wdGlvbiA9IHRoaXMuX29wdGlvbnMuZmluZCgob3B0aW9uOiBPcHRpb25Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gVHJlYXQgbnVsbCBhcyBhIHNwZWNpYWwgcmVzZXQgdmFsdWUuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbi52YWx1ZSAhPSBudWxsICYmIHRoaXMuX2NvbXBhcmVXaXRoKG9wdGlvbi52YWx1ZSwgdmFsdWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTm90aWZ5IGRldmVsb3BlcnMgb2YgZXJyb3JzIGluIHRoZWlyIGNvbXBhcmF0b3IuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihlcnJvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNvcnJlc3BvbmRpbmdPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbk1vZGVsLnNlbGVjdChjb3JyZXNwb25kaW5nT3B0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb3JyZXNwb25kaW5nT3B0aW9uO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3BvcG92ZXJPcGVuQ2hhbmdlSGFuZGxlKGlzT3BlbjogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpc09wZW4gPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm5zIF9rZXlNYW5hZ2VyU2VydmljZS4gKi9cbiAgICBfZ2V0S2V5U2VydmljZSgpOiBTZWxlY3RLZXlNYW5hZ2VyU2VydmljZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgICAgIHRoaXMuX3RhYkluZGV4ID0gLTE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaGlnaGxpZ2h0Q29ycmVjdE9wdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmIHRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0Rmlyc3RJdGVtQWN0aXZlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIgJiYgIXRoaXMuX3NlbGVjdGlvbk1vZGVsLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbSh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NsZWFudXBDb21tb25CZWhhdmlvcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9pbml0aWFsaXplU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZlciBzZXR0aW5nIHRoZSB2YWx1ZSBpbiBvcmRlciB0byBhdm9pZCB0aGUgXCJFeHByZXNzaW9uXG4gICAgICAgIC8vIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkXCIgZXJyb3JzIGZyb20gQW5ndWxhci5cbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3Rpb25CeVZhbHVlKHRoaXMubmdDb250cm9sID8gdGhpcy5uZ0NvbnRyb2wudmFsdWUgOiB0aGlzLl9pbnRlcm5hbFZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXhwb3NlIGV4cG9zZSBvdXRzaWRlIG9mIHRoaXMgbWl4aW4gdG8gZ2l2ZSBjb21wb25lbnQgYWJpbGl0eVxuICAgICAqIHRvIHVwZGF0ZSBjYWx1Y2xhdGVkTWF4SGVpZ2h0IGlmIG5lZWRlZFxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdXBkYXRlQ2FsY3VsYXRlZEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsY3VsYXRlZE1heEhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAqIDAuNDU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ2V0T3B0aW9uU2Nyb2xsUG9zaXRpb24ob3B0aW9uSW5kZXg6IG51bWJlciwgaXRlbUhlaWdodDogbnVtYmVyLCBjdXJyZW50U2Nyb2xsUG9zaXRpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG9wdGlvbkhlaWdodCA9IHRoaXMuX29wdGlvbnMuZ2V0KG9wdGlvbkluZGV4KT8uX2dldEh0bWxFbGVtZW50KCkub2Zmc2V0SGVpZ2h0IHx8IGl0ZW1IZWlnaHQ7XG4gICAgICAgIGNvbnN0IG9wdGlvbk9mZnNldCA9IG9wdGlvbkluZGV4ICogb3B0aW9uSGVpZ2h0O1xuICAgICAgICBpZiAob3B0aW9uT2Zmc2V0IDwgY3VycmVudFNjcm9sbFBvc2l0aW9uKSB7XG4gICAgICAgICAgICByZXR1cm4gb3B0aW9uT2Zmc2V0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9wdGlvbk9mZnNldCArIG9wdGlvbkhlaWdodCA+IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiArIFNFTEVDVF9QQU5FTF9NQVhfSEVJR0hUKSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5tYXgoMCwgb3B0aW9uT2Zmc2V0IC0gU0VMRUNUX1BBTkVMX01BWF9IRUlHSFQgKyBvcHRpb25IZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjdXJyZW50U2Nyb2xsUG9zaXRpb247XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZ2V0SXRlbUhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICAvLyBhbHNvIGluY2x1ZGUgYm9yZGVyIHdpdGggZGVmYXVsdCB2YWx1ZSAxLlxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbEVsZW1Gb250U2l6ZSAqIFNFTEVDVF9JVEVNX0hFSUdIVF9FTSArIDE7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfaW5pdGlhbGl6ZUNvbW1vbkJlaGF2aW9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxPcHRpb25Db21wb25lbnQ+KGZhbHNlKTtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2NvbXBvbmVudCA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5fdXBkYXRlQ2FsY3VsYXRlZEhlaWdodCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2lzUnRsKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5fcnRsU2VydmljZSkge1xuICAgICAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgICAgICAgICAgdGhpcy5fcnRsU2VydmljZS5ydGwuc3Vic2NyaWJlKChydGwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fcnRsID0gcnRsO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGwgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfcmVnaXN0ZXJFdmVudHNBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5jaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBldmVudC5hZGRlZC5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5fc2VsZWN0KCkpO1xuICAgICAgICAgICAgZXZlbnQucmVtb3ZlZC5mb3JFYWNoKChvcHRpb24pID0+IG9wdGlvbi5fZGVzZWxlY3QoKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX29wdGlvbnMuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fcmVzZXRPcHRpb25zKCk7XG4gICAgICAgICAgICB0aGlzLl9pbml0aWFsaXplU2VsZWN0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICAgICAgICB0aGlzLl9pc09wZW5cbiAgICAgICAgICAgICAgICA/IHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9oYW5kbGVPcGVuS2V5ZG93bihldmVudClcbiAgICAgICAgICAgICAgICA6IHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9oYW5kbGVDbG9zZWRLZXlkb3duKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2dldEFyaWFBY3RpdmVEZXNjZW5kYW50KCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodGhpcy5faXNPcGVuICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyICYmIHRoaXMuX2tleU1hbmFnZXJTZXJ2aWNlLl9rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyU2VydmljZS5fa2V5TWFuYWdlci5hY3RpdmVJdGVtLmlkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uRm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uQmx1cigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9jdXNlZCA9IGZhbHNlO1xuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jlc2V0T3B0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2hhbmdlZE9yRGVzdHJveWVkID0gbWVyZ2UodGhpcy5fb3B0aW9ucy5jaGFuZ2VzLCB0aGlzLl9kZXN0cm95KTtcblxuICAgICAgICB0aGlzLl9vcHRpb25TZWxlY3Rpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX29uU2VsZWN0KGV2ZW50LnNvdXJjZSwgZXZlbnQuaXNVc2VySW5wdXQpO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnQuaXNVc2VySW5wdXQgJiYgdGhpcy5faXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBMaXN0ZW4gdG8gY2hhbmdlcyBpbiB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgdGhlIF9vcHRpb25zIGFuZCByZWFjdCBhY2NvcmRpbmdseS5cbiAgICAgICAgLy8gSGFuZGxlcyBjYXNlcyBsaWtlIHRoZSBsYWJlbHMgb2YgdGhlIHNlbGVjdGVkIF9vcHRpb25zIGNoYW5naW5nLlxuICAgICAgICBtZXJnZSguLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uX3N0YXRlQ2hhbmdlcykpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwoY2hhbmdlZE9yRGVzdHJveWVkKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEludm9rZWQgd2hlbiBhbiBvcHRpb24gaXMgY2xpY2tlZC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vblNlbGVjdChvcHRpb246IE9wdGlvbkNvbXBvbmVudCwgaXNVc2VySW5wdXQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgd2FzU2VsZWN0ZWQgPSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbik7XG4gICAgICAgIGlmICgob3B0aW9uLnZhbHVlID09PSBudWxsIHx8IG9wdGlvbi52YWx1ZSA9PT0gdW5kZWZpbmVkKSAmJiB0aGlzLnVuc2VsZWN0TWlzc2luZ09wdGlvbikge1xuICAgICAgICAgICAgb3B0aW9uLl9kZXNlbGVjdCgpO1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuY2xlYXIoKTtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRTZWxlY3RDaGFuZ2Uob3B0aW9uLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh3YXNTZWxlY3RlZCAhPT0gb3B0aW9uLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgb3B0aW9uLnNlbGVjdGVkID8gdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0KG9wdGlvbikgOiB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5kZXNlbGVjdChvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzVXNlcklucHV0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fa2V5TWFuYWdlclNlcnZpY2UuX2tleU1hbmFnZXIuc2V0QWN0aXZlSXRlbShvcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHdhc1NlbGVjdGVkICE9PSB0aGlzLl9zZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbikgfHwgdGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRTZWxlY3RDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZW1pdFNlbGVjdENoYW5nZShkZWZhdWx0VmFsPzogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNhbkVtaXRWYWx1ZUNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5faW50ZXJuYWxWYWx1ZSA9XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQgJiYgdGhpcy5fc2VsZWN0aW9uTW9kZWwuc2VsZWN0ZWQubGVuZ3RoICE9PSAwXG4gICAgICAgICAgICAgICAgICAgID8gKHRoaXMuc2VsZWN0ZWQgYXMgT3B0aW9uQ29tcG9uZW50KS52YWx1ZVxuICAgICAgICAgICAgICAgICAgICA6IGRlZmF1bHRWYWw7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5faW50ZXJuYWxWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX2ludGVybmFsVmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEl0ZW1Db3VudCgpOiBudW1iZXIge1xuICAgICAgICBpZiAodGhpcy5fb3B0aW9uUGFuZWwgJiYgdGhpcy5faGVhZGVyRWxlbWVudHMoKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sZW5ndGggKyB0aGlzLl9oZWFkZXJFbGVtZW50cygpLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5sZW5ndGg7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oZWFkZXJFbGVtZW50cygpOiBOb2RlTGlzdE9mPEVsZW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvblBhbmVsPy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoU0VMRUNUX0hFQURFUl9JREVOVElGSUVSKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX3NldHVwTW9iaWxlTW9kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBTRUxFQ1RfQ09NUE9ORU5ULCB1c2VWYWx1ZTogdGhpcyB9XSxcbiAgICAgICAgICAgIHBhcmVudDogdGhpcy5faW5qZWN0b3JcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fZHluYW1pY0NvbXBvbmVudFNlcnZpY2UuY3JlYXRlRHluYW1pY01vZHVsZShcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uc0xpc3RUZW1wbGF0ZSxcbiAgICAgICAgICAgIFNlbGVjdE1vYmlsZU1vZHVsZSxcbiAgICAgICAgICAgIFNlbGVjdE1vYmlsZUNvbXBvbmVudCxcbiAgICAgICAgICAgIHRoaXMuX3ZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICBpbmplY3RvclxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJtb2JpbGUgPyBtb2JpbGVUZW1wbGF0ZSA6IGRlc2t0b3BUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Rlc2t0b3BUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmQtc2VsZWN0XCIgW2NsYXNzLmZkLXNlbGVjdC0tY29tcGFjdF09XCJjb21wYWN0XCIgKGtleWRvd24pPVwiX2hhbmRsZUtleWRvd24oJGV2ZW50KVwiIChjbGljayk9XCJ0b2dnbGUoKVwiPlxuICAgICAgICA8ZmQtcG9wb3ZlclxuICAgICAgICAgICAgYWRkaXRpb25hbEJvZHlDbGFzcz1cImZkLXBvcG92ZXItY3VzdG9tLWxpc3RcIlxuICAgICAgICAgICAgW2lzT3Blbl09XCJfaXNPcGVuXCJcbiAgICAgICAgICAgIFt0cmlnZ2Vyc109XCJbXVwiXG4gICAgICAgICAgICBbZm9jdXNUcmFwcGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgICAgICBbY2xvc2VPbkVzY2FwZUtleV09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtmaWxsQ29udHJvbE1vZGVdPVwiZmlsbENvbnRyb2xNb2RlXCJcbiAgICAgICAgICAgIFttYXhXaWR0aF09XCI2MDBcIlxuICAgICAgICAgICAgW2Nsb3NlT25PdXRzaWRlQ2xpY2tdPVwiY2xvc2VPbk91dHNpZGVDbGlja1wiXG4gICAgICAgICAgICAoaXNPcGVuQ2hhbmdlKT1cIl9wb3BvdmVyT3BlbkNoYW5nZUhhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInNlbGVjdElucHV0Q29udHJvbFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cblxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keSBjbGFzcz1cImZkLXBvcG92ZXItY3VzdG9tLXNlbGVjdC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RPcHRpb25zTGlzdFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cbiAgICAgICAgPC9mZC1wb3BvdmVyPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZT5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmQtc2VsZWN0X19jb250cm9sXCJcbiAgICAgICAgcm9sZT1cImxpc3RcIlxuICAgICAgICAjc2VsZWN0Q29udHJvbFxuICAgICAgICBbY2xhc3NdPVwic3RhdGUgPyAnaXMtJyArIHN0YXRlIDogJydcIlxuICAgICAgICBbY2xhc3MuaXMtYWN0aXZlXT1cIl9pc09wZW5cIlxuICAgICAgICBbY2xhc3MuaXMtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFtjbGFzcy5pcy1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5pcy1yZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgIFthdHRyLnRhYmluZGV4XT1cIl90YWJJbmRleFwiXG4gICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2xJZFwiXG4gICAgICAgIFthdHRyLmFyaWEtYWN0aXZlXT1cIl9pc09wZW5cIlxuICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cInNlbGVjdGVkPy5zZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiX2lzT3BlblwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbYXR0ci5hcmlhLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJjb250cm9sSWQgKyAnLWxpc3QtYm94J1wiXG4gICAgICAgIFthdHRyLmFyaWEtaGFzcG9wdXBdPVwiISh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cInRyaWdnZXJWYWx1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZEJ5XCJcbiAgICAgICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIl9nZXRBcmlhQWN0aXZlRGVzY2VuZGFudCgpXCJcbiAgICAgICAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICAgICAgICAoYmx1cik9XCJfb25CbHVyKClcIlxuICAgID5cbiAgICAgICAgPGRpdiByb2xlPVwibGlzdGl0ZW1cIiBjbGFzcz1cImZkLXNlbGVjdF9fdGV4dC1jb250ZW50XCIgW2F0dHIuYXJpYS1sYWJlbF09XCJ0cmlnZ2VyVmFsdWVcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250cm9sVGVtcGxhdGUgPyBjb250cm9sVGVtcGxhdGUgOiBkZWZhdWx0U2VsZWN0Q29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiB0cmlnZ2VyVmFsdWUsIHNlbGVjdGVkOiBzZWxlY3RlZCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRTZWxlY3RDb250ZW50PlxuICAgICAgICAgICAgICAgIHt7IHRyaWdnZXJWYWx1ZSB9fVxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBjbGFzcz1cImZkLWJ1dHRvbi0tdHJhbnNwYXJlbnQgZmQtc2VsZWN0X19idXR0b25cIlxuICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHlcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJnbHlwaFwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjc2VsZWN0T3B0aW9uc0xpc3RUZW1wbGF0ZT5cbiAgICA8dWxcbiAgICAgICAgI29wdGlvblBhbmVsXG4gICAgICAgIGZkLWxpc3RcbiAgICAgICAgY2xhc3M9XCJmZC1zZWxlY3Qtb3B0aW9uc1wiXG4gICAgICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIFtjb21wYWN0XT1cImNvbXBhY3RcIlxuICAgICAgICBbbW9iaWxlTW9kZV09XCJtb2JpbGVcIlxuICAgICAgICBbZHJvcGRvd25Nb2RlXT1cInRydWVcIlxuICAgICAgICBbaGFzTWVzc2FnZV09XCIhIXN0YXRlTWVzc2FnZVwiXG4gICAgICAgIFthdHRyLmlkXT1cImNvbnRyb2xJZCArICctbGlzdC1ib3gnXCJcbiAgICAgICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0IHx8IGNhbGN1bGF0ZWRNYXhIZWlnaHQgKyAncHgnXCJcbiAgICAgICAgW2F0dHIudG9vbHRpcF09XCJ0cmlnZ2VyVmFsdWVcIlxuICAgID5cbiAgICAgICAgPGxpXG4gICAgICAgICAgICAqbmdJZj1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInN0YXRlTWVzc2FnZVwiXG4gICAgICAgICAgICBmZC1saXN0LW1lc3NhZ2VcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgICBbdHlwZV09XCJzdGF0ZSB8fCAnZGVmYXVsdCdcIlxuICAgICAgICAgICAgW2lubmVySHRtbF09XCJzdGF0ZU1lc3NhZ2VcIlxuICAgICAgICA+PC9saT5cblxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbW9iaWxlVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImZkLXNlbGVjdFwiIFtjbGFzcy5mZC1zZWxlY3QtLWNvbXBhY3RdPVwiY29tcGFjdFwiIChrZXlkb3duKT1cIl9oYW5kbGVLZXlkb3duKCRldmVudClcIiAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJzZWxlY3RJbnB1dENvbnRyb2xUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAjZGlhbG9nQ29udGFpbmVyPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/core/facets",
3
- "version": "0.35.0-rc.4",
3
+ "version": "0.35.0-rc.7",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^13.0.0",
6
6
  "@angular/core": "^13.0.0"