ngx-wapp-components 2.1.19 → 2.1.21

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.
@@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { CardStatus, SendingStatus, WappingServiceAppViewType } from '../shared/models/enums.model';
3
3
  import { MatDialogConfig } from '@angular/material/dialog';
4
4
  import { WappServiceDescriptionComponent } from '../shared/components/wapp-service-description/wapp-service-description.component';
5
+ import { CALENDAR, ICON_NUMBER, PARTICIPATE, PARTICIPATE_AGAIN } from '../shared/icons/mat-icons-svg';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/material/icon";
7
8
  import * as i2 from "@angular/platform-browser";
@@ -61,10 +62,10 @@ export class WappMaterialServiceViewComponent {
61
62
  this.isDraw = false;
62
63
  this.hasParticipations = false;
63
64
  this.disabledParticipationsModal = false;
64
- this.matIconRegistry.addSvgIcon("calendar", this.domSanitizer.bypassSecurityTrustResourceUrl("assets/wappIcons/mat-calendar.svg"));
65
- this.matIconRegistry.addSvgIcon("number", this.domSanitizer.bypassSecurityTrustResourceUrl("/assets/wappIcons/mat-number.svg"));
66
- this.matIconRegistry.addSvgIcon("participate", this.domSanitizer.bypassSecurityTrustResourceUrl("/assets/wappIcons/mat-participate.svg"));
67
- this.matIconRegistry.addSvgIcon("participate-again", this.domSanitizer.bypassSecurityTrustResourceUrl("/assets/wappIcons/mat-participate-again.svg"));
65
+ this.matIconRegistry.addSvgIconLiteral("calendar", this.domSanitizer.bypassSecurityTrustHtml(CALENDAR));
66
+ this.matIconRegistry.addSvgIconLiteral("number", this.domSanitizer.bypassSecurityTrustHtml(ICON_NUMBER));
67
+ this.matIconRegistry.addSvgIconLiteral("participate", this.domSanitizer.bypassSecurityTrustHtml(PARTICIPATE));
68
+ this.matIconRegistry.addSvgIconLiteral("participate-again", this.domSanitizer.bypassSecurityTrustHtml(PARTICIPATE_AGAIN));
68
69
  }
69
70
  ngOnInit() {
70
71
  }
@@ -189,10 +190,10 @@ export class WappMaterialServiceViewComponent {
189
190
  }
190
191
  }
191
192
  WappMaterialServiceViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WappMaterialServiceViewComponent, deps: [{ token: i1.MatIconRegistry }, { token: i2.DomSanitizer }, { token: i3.MaterialModalService }], target: i0.ɵɵFactoryTarget.Component });
192
- WappMaterialServiceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WappMaterialServiceViewComponent, selector: "wapp-material-service-view", inputs: { wappingServicesTranslations: "wappingServicesTranslations", disabledButtonService: "disabledButtonService", showButtonService: "showButtonService", showToggle: "showToggle", lotteryEvent: "lotteryEvent", wappingService: "wappingService" }, outputs: { wappingServiceSelected: "wappingServiceSelected", triggerButtonService: "triggerButtonService" }, ngImport: i0, template: "<wapp-main-title title=\"{{wappingService.tile3}}\" *ngIf=\"wappingService\" fxHide.xs></wapp-main-title>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n fxLayout=\"row\" fxLayout.xs=\"column\" fxLayout.sm=\"column\">\r\n <!--service image-->\r\n <div class=\"service-view\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div class=\"service-image-title\"\r\n *ngIf=\"wappingService.tile1\"\r\n [style.background-color]=\"wappingService.tile1BackgroundColor\"\r\n [style.color]=\"wappingService.tile1ForegroundColor\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div>{{wappingService.tile1}}</div>\r\n <div *ngIf=\"wappingService.showTile1Label\">{{wappingService.tile1Label}}</div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [images]=\"wappingServiceImages\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n class=\"service-tile\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4}\"\r\n [style.background-color]=\"wappingService.tile2BackgroundColor\"\r\n [style.color]=\"wappingService.tile2ForegroundColor\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div>{{wappingService.tile2}}</div>\r\n <div *ngIf=\"wappingService.showTile2Label\">{{wappingService.tile2Label}}</div>\r\n </div>\r\n \r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.ScheduledToSend) && wappingService?.enumTypeStatusECardID == ecardStatus.sent! \" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.scheduledLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent || wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.PendingRegistration) && wappingService?.enumTypeStatusECardID == ecardStatus.sent\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.sendLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent && wappingService?.enumTypeStatusECardID == ecardStatus.activated\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.receivedLabel }}\r\n </div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !showButtonService && showToggle\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"showButtonService\"\r\n color=\"accent\"\r\n class=\"service-view-button\"\r\n fxFlex=\"100\" fxHide fxShow.xs\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n <div class=\"participation-detail-container-mobile\" fxHide fxShow.xs *ngIf=\"isDraw && hasParticipations\">\r\n \r\n <div class=\"participation-detail-mobile-card\">\r\n <div class=\"participation-date-row\">\r\n <span class=\"label-light\">El ganador se decidir\u00E1 el </span>\r\n <span class=\"date-bold\">{{ lotteryEvent?.lotteryEventNextDraw?.drawDate | date:'dd/MM/yyyy' }}</span>\r\n </div>\r\n\r\n <div class=\"card-bottom-content\">\r\n <div class=\"numbers-section\">\r\n <span class=\"numbers-title\">Tus n\u00FAmeros</span>\r\n <div class=\"numbers-list-vertical\">\r\n <div class=\"number-item\" *ngFor=\"let id of lotteryEvent?.lotteryEventNextDraw?.skyWappCardTransactionIds\">\r\n {{ id }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-icon-right\">\r\n <mat-icon svgIcon=\"number\"></mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!--service info-->\r\n <div *ngIf=\"wappingService.tile3 || wappingService.tile4\" class=\"service-info-container\" fxLayout=\"column\">\r\n <div class=\"service-description-container\">\r\n <!--tile 3-->\r\n <div *ngIf=\"wappingService.tile3\" class=\"service-name mat-title\" fxHide fxShow.xs>\r\n {{wappingService.tile3}}\r\n </div>\r\n <!--tile 4-->\r\n <div *ngIf=\"wappingService.tile4 && wappingService.enumTypeStatusECardID != ecardStatus.generated\" class=\"service-description\" id=\"serviceDescription\">\r\n {{wappingService.tile4}}\r\n </div>\r\n <div class=\"service-description\" *ngIf=\"wappingService.enumTypeStatusECardID == ecardStatus.generated\">\r\n {{ wappingServicesTranslations.cardGenerated }}\r\n </div>\r\n <!--show more-->\r\n <div *ngIf=\"isOverflown()\" class=\"service-show-more-container\" (click)=\"openModalShowMoreDescription();\">\r\n <span>{{wappingServicesTranslations.showMore }}</span><mat-icon class=\"service-show-more-vector\" svgIcon=\"vector_right\"></mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail1\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"calendar\"></mat-icon>\r\n <span>{{wappingService.tileDetail1}}</span>\r\n </div>\r\n <!--tileDetail 2-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail2\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"tickets\"></mat-icon>\r\n <span>{{wappingService.tileDetail2}}</span>\r\n </div>\r\n </div>\r\n <div class=\"service-view-container-button\" fxHide.xs *ngIf=\"showButtonService\">\r\n <button mat-flat-button\r\n class=\"service-view-button\"\r\n color=\"accent\"\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [":host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:70px}@media (min-width:600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-title{position:absolute;margin-left:60px;margin-right:60px;height:32px;top:0;left:0;right:0;z-index:99;display:flex;border-radius:0 0 4.3118px 4.3118px;justify-content:center;align-items:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left}.service-info-container{width:100%}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap;mat-icon {width: 24px;}}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}.participation-detail-container{margin:16px 0;width:100%}.participation-detail-desktop-bar{border-radius:8px;padding:12px 24px;box-shadow:0 2px 4px #0000000d;gap:8px;display:flex;justify-content:flex-start;align-items:center}.participation-detail-value{margin-right:auto}.participation-detail-date{margin-left:4px}.participation-detail-container-mobile{padding:4px 12px!important}.participation-detail-mobile-card{border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:12px}.participation-date-row{width:100%;text-align:center;padding-bottom:8px}.card-bottom-content{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.numbers-section{display:flex;flex-direction:column;flex:1}.numbers-list-vertical{display:flex;flex-direction:column;margin-top:4px;max-height:120px;overflow-y:auto;&::-webkit-scrollbar{display:none}}.number-item{padding:2px 0}.numbers-title{margin:0;text-transform:none}.card-icon-right{display:flex;justify-content:center;align-items:center;margin-left:10px}.card-icon-right mat-icon{width:50px!important;height:50px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i8.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i9.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MainTitleComponent, selector: "wapp-main-title", inputs: ["title", "extraClassToApply"] }, { kind: "component", type: i11.CarouselComponent, selector: "wapp-carousel", inputs: ["images", "allowThumbnail", "infiniteCarousel", "forceMobile", "height", "isDevModeActive", "isNoImage", "onHoverImageTooltip"], outputs: ["onSetImageEvent"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
193
+ WappMaterialServiceViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WappMaterialServiceViewComponent, selector: "wapp-material-service-view", inputs: { wappingServicesTranslations: "wappingServicesTranslations", disabledButtonService: "disabledButtonService", showButtonService: "showButtonService", showToggle: "showToggle", lotteryEvent: "lotteryEvent", wappingService: "wappingService" }, outputs: { wappingServiceSelected: "wappingServiceSelected", triggerButtonService: "triggerButtonService" }, ngImport: i0, template: "<wapp-main-title title=\"{{wappingService.tile3}}\" *ngIf=\"wappingService\" fxHide.xs></wapp-main-title>\r\n<div class=\"participation-detail-container\" fxLayout=\"row\" fxHide.xs fxLayoutAlign=\"center center\" *ngIf=\"isDraw && hasParticipations\">\r\n\r\n <div class=\"participation-detail-desktop-bar\" fxFlex=\"100\" xLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <span class=\"participation-detail-label\">{{ wappingServicesTranslations?.yourNumbers }}</span>\r\n <span class=\"participation-detail-value\">\r\n {{ lotteryEvent?.lotteryEventNextDraw?.skyWappCardTransactionIds?.join(', ') }}\r\n </span>\r\n <span class=\"participation-detail-date-label\">{{ wappingServicesTranslations?.winnerDate }}</span>\r\n <span class=\"participation-detail-date\">{{ lotteryEvent?.lotteryEventNextDraw?.drawDate + 'Z' | date:'dd/MM/yyyy HH:mm' }}</span>\r\n </div>\r\n\r\n</div>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n fxLayout=\"row\" fxLayout.xs=\"column\" fxLayout.sm=\"column\">\r\n <!--service image-->\r\n <div class=\"service-view\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div class=\"service-image-title\"\r\n *ngIf=\"wappingService.tile1\"\r\n [style.background-color]=\"wappingService.tile1BackgroundColor\"\r\n [style.color]=\"wappingService.tile1ForegroundColor\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div>{{wappingService.tile1}}</div>\r\n <div *ngIf=\"wappingService.showTile1Label\">{{wappingService.tile1Label}}</div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [images]=\"wappingServiceImages\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n class=\"service-tile\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4}\"\r\n [style.background-color]=\"wappingService.tile2BackgroundColor\"\r\n [style.color]=\"wappingService.tile2ForegroundColor\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div>{{wappingService.tile2}}</div>\r\n <div *ngIf=\"wappingService.showTile2Label\">{{wappingService.tile2Label}}</div>\r\n </div>\r\n \r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.ScheduledToSend) && wappingService?.enumTypeStatusECardID == ecardStatus.sent! \" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.scheduledLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent || wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.PendingRegistration) && wappingService?.enumTypeStatusECardID == ecardStatus.sent\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.sendLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent && wappingService?.enumTypeStatusECardID == ecardStatus.activated\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.receivedLabel }}\r\n </div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !showButtonService && showToggle\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"showButtonService\"\r\n color=\"accent\"\r\n class=\"service-view-button\"\r\n fxFlex=\"100\" fxHide fxShow.xs\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n <div class=\"participation-detail-container-mobile\" fxHide fxShow.xs *ngIf=\"isDraw && hasParticipations\">\r\n \r\n <div class=\"participation-detail-mobile-card\">\r\n <div class=\"participation-date-row\">\r\n <span class=\"label-light\">El ganador se decidir\u00E1 el </span>\r\n <span class=\"date-bold\">{{ lotteryEvent?.lotteryEventNextDraw?.drawDate | date:'dd/MM/yyyy' }}</span>\r\n </div>\r\n\r\n <div class=\"card-bottom-content\">\r\n <div class=\"numbers-section\">\r\n <span class=\"numbers-title\">Tus n\u00FAmeros</span>\r\n <div class=\"numbers-list-vertical\">\r\n <div class=\"number-item\" *ngFor=\"let id of lotteryEvent?.lotteryEventNextDraw?.skyWappCardTransactionIds\">\r\n {{ id }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-icon-right\">\r\n <mat-icon svgIcon=\"number\"></mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!--service info-->\r\n <div *ngIf=\"wappingService.tile3 || wappingService.tile4\" class=\"service-info-container\" fxLayout=\"column\">\r\n <div class=\"service-description-container\">\r\n <!--tile 3-->\r\n <div *ngIf=\"wappingService.tile3\" class=\"service-name mat-title\" fxHide fxShow.xs>\r\n {{wappingService.tile3}}\r\n </div>\r\n <!--tile 4-->\r\n <div *ngIf=\"wappingService.tile4 && wappingService.enumTypeStatusECardID != ecardStatus.generated\" class=\"service-description\" id=\"serviceDescription\">\r\n {{wappingService.tile4}}\r\n </div>\r\n <div class=\"service-description\" *ngIf=\"wappingService.enumTypeStatusECardID == ecardStatus.generated\">\r\n {{ wappingServicesTranslations.cardGenerated }}\r\n </div>\r\n <!--show more-->\r\n <div *ngIf=\"isOverflown()\" class=\"service-show-more-container\" (click)=\"openModalShowMoreDescription();\">\r\n <span>{{wappingServicesTranslations.showMore }}</span><mat-icon class=\"service-show-more-vector\" svgIcon=\"vector_right\"></mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail1\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"calendar\"></mat-icon>\r\n <span>{{wappingService.tileDetail1}}</span>\r\n </div>\r\n <!--tileDetail 2-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail2\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"tickets\"></mat-icon>\r\n <span>{{wappingService.tileDetail2}}</span>\r\n </div>\r\n </div>\r\n <div class=\"service-view-container-button\" fxHide.xs *ngIf=\"showButtonService\">\r\n <button mat-flat-button\r\n class=\"service-view-button\"\r\n color=\"accent\"\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [":host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:70px}@media (min-width:600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-title{position:absolute;margin-left:60px;margin-right:60px;height:32px;top:0;left:0;right:0;z-index:99;display:flex;border-radius:0 0 4.3118px 4.3118px;justify-content:center;align-items:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left}.service-info-container{width:100%}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap;mat-icon {width: 24px;}}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}.participation-detail-container{margin:16px 0;width:100%}.participation-detail-desktop-bar{border-radius:8px;padding:12px 24px;box-shadow:0 2px 4px #0000000d;gap:8px;display:flex;justify-content:flex-start;align-items:center}.participation-detail-value{margin-right:auto}.participation-detail-date{margin-left:4px}.participation-detail-container-mobile{padding:4px 12px!important}.participation-detail-mobile-card{border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:12px}.participation-date-row{width:100%;text-align:center;padding-bottom:8px}.card-bottom-content{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.numbers-section{display:flex;flex-direction:column;flex:1}.numbers-list-vertical{display:flex;flex-direction:column;margin-top:4px;max-height:120px;overflow-y:auto}.number-item{padding:2px 0}.numbers-title{margin:0;text-transform:none}.card-icon-right{display:flex;justify-content:center;align-items:center;margin-left:10px}.card-icon-right mat-icon{width:50px!important;height:50px!important}\n"], dependencies: [{ kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i7.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i7.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i8.DefaultShowHideDirective, selector: " [fxShow], [fxShow.print], [fxShow.xs], [fxShow.sm], [fxShow.md], [fxShow.lg], [fxShow.xl], [fxShow.lt-sm], [fxShow.lt-md], [fxShow.lt-lg], [fxShow.lt-xl], [fxShow.gt-xs], [fxShow.gt-sm], [fxShow.gt-md], [fxShow.gt-lg], [fxHide], [fxHide.print], [fxHide.xs], [fxHide.sm], [fxHide.md], [fxHide.lg], [fxHide.xl], [fxHide.lt-sm], [fxHide.lt-md], [fxHide.lt-lg], [fxHide.lt-xl], [fxHide.gt-xs], [fxHide.gt-sm], [fxHide.gt-md], [fxHide.gt-lg]", inputs: ["fxShow", "fxShow.print", "fxShow.xs", "fxShow.sm", "fxShow.md", "fxShow.lg", "fxShow.xl", "fxShow.lt-sm", "fxShow.lt-md", "fxShow.lt-lg", "fxShow.lt-xl", "fxShow.gt-xs", "fxShow.gt-sm", "fxShow.gt-md", "fxShow.gt-lg", "fxHide", "fxHide.print", "fxHide.xs", "fxHide.sm", "fxHide.md", "fxHide.lg", "fxHide.xl", "fxHide.lt-sm", "fxHide.lt-md", "fxHide.lt-lg", "fxHide.lt-xl", "fxHide.gt-xs", "fxHide.gt-sm", "fxHide.gt-md", "fxHide.gt-lg"] }, { kind: "directive", type: i8.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "component", type: i9.MatLegacyButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i10.MainTitleComponent, selector: "wapp-main-title", inputs: ["title", "extraClassToApply"] }, { kind: "component", type: i11.CarouselComponent, selector: "wapp-carousel", inputs: ["images", "allowThumbnail", "infiniteCarousel", "forceMobile", "height", "isDevModeActive", "isNoImage", "onHoverImageTooltip"], outputs: ["onSetImageEvent"] }, { kind: "pipe", type: i5.DatePipe, name: "date" }] });
193
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WappMaterialServiceViewComponent, decorators: [{
194
195
  type: Component,
195
- args: [{ selector: 'wapp-material-service-view', template: "<wapp-main-title title=\"{{wappingService.tile3}}\" *ngIf=\"wappingService\" fxHide.xs></wapp-main-title>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n fxLayout=\"row\" fxLayout.xs=\"column\" fxLayout.sm=\"column\">\r\n <!--service image-->\r\n <div class=\"service-view\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div class=\"service-image-title\"\r\n *ngIf=\"wappingService.tile1\"\r\n [style.background-color]=\"wappingService.tile1BackgroundColor\"\r\n [style.color]=\"wappingService.tile1ForegroundColor\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div>{{wappingService.tile1}}</div>\r\n <div *ngIf=\"wappingService.showTile1Label\">{{wappingService.tile1Label}}</div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [images]=\"wappingServiceImages\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n class=\"service-tile\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4}\"\r\n [style.background-color]=\"wappingService.tile2BackgroundColor\"\r\n [style.color]=\"wappingService.tile2ForegroundColor\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div>{{wappingService.tile2}}</div>\r\n <div *ngIf=\"wappingService.showTile2Label\">{{wappingService.tile2Label}}</div>\r\n </div>\r\n \r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.ScheduledToSend) && wappingService?.enumTypeStatusECardID == ecardStatus.sent! \" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.scheduledLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent || wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.PendingRegistration) && wappingService?.enumTypeStatusECardID == ecardStatus.sent\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.sendLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent && wappingService?.enumTypeStatusECardID == ecardStatus.activated\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.receivedLabel }}\r\n </div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !showButtonService && showToggle\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"showButtonService\"\r\n color=\"accent\"\r\n class=\"service-view-button\"\r\n fxFlex=\"100\" fxHide fxShow.xs\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n <div class=\"participation-detail-container-mobile\" fxHide fxShow.xs *ngIf=\"isDraw && hasParticipations\">\r\n \r\n <div class=\"participation-detail-mobile-card\">\r\n <div class=\"participation-date-row\">\r\n <span class=\"label-light\">El ganador se decidir\u00E1 el </span>\r\n <span class=\"date-bold\">{{ lotteryEvent?.lotteryEventNextDraw?.drawDate | date:'dd/MM/yyyy' }}</span>\r\n </div>\r\n\r\n <div class=\"card-bottom-content\">\r\n <div class=\"numbers-section\">\r\n <span class=\"numbers-title\">Tus n\u00FAmeros</span>\r\n <div class=\"numbers-list-vertical\">\r\n <div class=\"number-item\" *ngFor=\"let id of lotteryEvent?.lotteryEventNextDraw?.skyWappCardTransactionIds\">\r\n {{ id }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-icon-right\">\r\n <mat-icon svgIcon=\"number\"></mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!--service info-->\r\n <div *ngIf=\"wappingService.tile3 || wappingService.tile4\" class=\"service-info-container\" fxLayout=\"column\">\r\n <div class=\"service-description-container\">\r\n <!--tile 3-->\r\n <div *ngIf=\"wappingService.tile3\" class=\"service-name mat-title\" fxHide fxShow.xs>\r\n {{wappingService.tile3}}\r\n </div>\r\n <!--tile 4-->\r\n <div *ngIf=\"wappingService.tile4 && wappingService.enumTypeStatusECardID != ecardStatus.generated\" class=\"service-description\" id=\"serviceDescription\">\r\n {{wappingService.tile4}}\r\n </div>\r\n <div class=\"service-description\" *ngIf=\"wappingService.enumTypeStatusECardID == ecardStatus.generated\">\r\n {{ wappingServicesTranslations.cardGenerated }}\r\n </div>\r\n <!--show more-->\r\n <div *ngIf=\"isOverflown()\" class=\"service-show-more-container\" (click)=\"openModalShowMoreDescription();\">\r\n <span>{{wappingServicesTranslations.showMore }}</span><mat-icon class=\"service-show-more-vector\" svgIcon=\"vector_right\"></mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail1\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"calendar\"></mat-icon>\r\n <span>{{wappingService.tileDetail1}}</span>\r\n </div>\r\n <!--tileDetail 2-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail2\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"tickets\"></mat-icon>\r\n <span>{{wappingService.tileDetail2}}</span>\r\n </div>\r\n </div>\r\n <div class=\"service-view-container-button\" fxHide.xs *ngIf=\"showButtonService\">\r\n <button mat-flat-button\r\n class=\"service-view-button\"\r\n color=\"accent\"\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [":host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:70px}@media (min-width:600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-title{position:absolute;margin-left:60px;margin-right:60px;height:32px;top:0;left:0;right:0;z-index:99;display:flex;border-radius:0 0 4.3118px 4.3118px;justify-content:center;align-items:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left}.service-info-container{width:100%}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap;mat-icon {width: 24px;}}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}.participation-detail-container{margin:16px 0;width:100%}.participation-detail-desktop-bar{border-radius:8px;padding:12px 24px;box-shadow:0 2px 4px #0000000d;gap:8px;display:flex;justify-content:flex-start;align-items:center}.participation-detail-value{margin-right:auto}.participation-detail-date{margin-left:4px}.participation-detail-container-mobile{padding:4px 12px!important}.participation-detail-mobile-card{border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:12px}.participation-date-row{width:100%;text-align:center;padding-bottom:8px}.card-bottom-content{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.numbers-section{display:flex;flex-direction:column;flex:1}.numbers-list-vertical{display:flex;flex-direction:column;margin-top:4px;max-height:120px;overflow-y:auto;&::-webkit-scrollbar{display:none}}.number-item{padding:2px 0}.numbers-title{margin:0;text-transform:none}.card-icon-right{display:flex;justify-content:center;align-items:center;margin-left:10px}.card-icon-right mat-icon{width:50px!important;height:50px!important}\n"] }]
196
+ args: [{ selector: 'wapp-material-service-view', template: "<wapp-main-title title=\"{{wappingService.tile3}}\" *ngIf=\"wappingService\" fxHide.xs></wapp-main-title>\r\n<div class=\"participation-detail-container\" fxLayout=\"row\" fxHide.xs fxLayoutAlign=\"center center\" *ngIf=\"isDraw && hasParticipations\">\r\n\r\n <div class=\"participation-detail-desktop-bar\" fxFlex=\"100\" xLayout=\"row\" fxLayoutAlign=\"center center\">\r\n <span class=\"participation-detail-label\">{{ wappingServicesTranslations?.yourNumbers }}</span>\r\n <span class=\"participation-detail-value\">\r\n {{ lotteryEvent?.lotteryEventNextDraw?.skyWappCardTransactionIds?.join(', ') }}\r\n </span>\r\n <span class=\"participation-detail-date-label\">{{ wappingServicesTranslations?.winnerDate }}</span>\r\n <span class=\"participation-detail-date\">{{ lotteryEvent?.lotteryEventNextDraw?.drawDate + 'Z' | date:'dd/MM/yyyy HH:mm' }}</span>\r\n </div>\r\n\r\n</div>\r\n<div class=\"service-detail-center\" *ngIf=\"wappingService\"\r\n fxLayout=\"row\" fxLayout.xs=\"column\" fxLayout.sm=\"column\">\r\n <!--service image-->\r\n <div class=\"service-view\" fxLayout=\"column\">\r\n <!--tile 1-->\r\n <div class=\"service-image-title\"\r\n *ngIf=\"wappingService.tile1\"\r\n [style.background-color]=\"wappingService.tile1BackgroundColor\"\r\n [style.color]=\"wappingService.tile1ForegroundColor\"\r\n fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div>{{wappingService.tile1}}</div>\r\n <div *ngIf=\"wappingService.showTile1Label\">{{wappingService.tile1Label}}</div>\r\n </div>\r\n <!--slideshow-->\r\n <wapp-carousel [images]=\"wappingServiceImages\"></wapp-carousel>\r\n <!--tile 2-->\r\n <div fxFlex fxLayout=\"row\"\r\n fxLayoutAlign=\"center center\"\r\n fxLayoutGap=\"5px\"\r\n class=\"service-tile\"\r\n [ngClass]=\"{'service-tile-border-bottom-radius': !wappingService.tile4}\"\r\n [style.background-color]=\"wappingService.tile2BackgroundColor\"\r\n [style.color]=\"wappingService.tile2ForegroundColor\"\r\n *ngIf=\"wappingService.tile2\">\r\n <div>{{wappingService.tile2}}</div>\r\n <div *ngIf=\"wappingService.showTile2Label\">{{wappingService.tile2Label}}</div>\r\n </div>\r\n \r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.ScheduledToSend) && wappingService?.enumTypeStatusECardID == ecardStatus.sent! \" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.scheduledLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && (wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent || wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.PendingRegistration) && wappingService?.enumTypeStatusECardID == ecardStatus.sent\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.sendLabel }}\r\n </div>\r\n </div>\r\n <div class=\"card-header-status-container sendLabel-container\" *ngIf=\"isSendGiftCard && wappingService?.dataReqToSendCard!.enumSendingStatusId == enumSendingStatus.Sent && wappingService?.enumTypeStatusECardID == ecardStatus.activated\" fxLayout=\"row\" fxLayoutGap=\"5px\">\r\n <div class=\"sendLabel\" >\r\n {{ wappingServicesTranslations.receivedLabel }}\r\n </div>\r\n </div>\r\n <!--activate toggle-->\r\n <mat-slide-toggle class=\"service-select-toggle\" color=\"accent\"\r\n *ngIf=\"wappingService.allowSelect && allowSelectSendGiftCard && !showButtonService && showToggle\"\r\n [disabled]=\"disabledToggle\"\r\n [(ngModel)]=\"wappingService.active\"\r\n (change)=\"selectWappingService()\">{{ serviceStatus }}</mat-slide-toggle>\r\n <button mat-flat-button *ngIf=\"showButtonService\"\r\n color=\"accent\"\r\n class=\"service-view-button\"\r\n fxFlex=\"100\" fxHide fxShow.xs\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n <div class=\"participation-detail-container-mobile\" fxHide fxShow.xs *ngIf=\"isDraw && hasParticipations\">\r\n \r\n <div class=\"participation-detail-mobile-card\">\r\n <div class=\"participation-date-row\">\r\n <span class=\"label-light\">El ganador se decidir\u00E1 el </span>\r\n <span class=\"date-bold\">{{ lotteryEvent?.lotteryEventNextDraw?.drawDate | date:'dd/MM/yyyy' }}</span>\r\n </div>\r\n\r\n <div class=\"card-bottom-content\">\r\n <div class=\"numbers-section\">\r\n <span class=\"numbers-title\">Tus n\u00FAmeros</span>\r\n <div class=\"numbers-list-vertical\">\r\n <div class=\"number-item\" *ngFor=\"let id of lotteryEvent?.lotteryEventNextDraw?.skyWappCardTransactionIds\">\r\n {{ id }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-icon-right\">\r\n <mat-icon svgIcon=\"number\"></mat-icon>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!--service info-->\r\n <div *ngIf=\"wappingService.tile3 || wappingService.tile4\" class=\"service-info-container\" fxLayout=\"column\">\r\n <div class=\"service-description-container\">\r\n <!--tile 3-->\r\n <div *ngIf=\"wappingService.tile3\" class=\"service-name mat-title\" fxHide fxShow.xs>\r\n {{wappingService.tile3}}\r\n </div>\r\n <!--tile 4-->\r\n <div *ngIf=\"wappingService.tile4 && wappingService.enumTypeStatusECardID != ecardStatus.generated\" class=\"service-description\" id=\"serviceDescription\">\r\n {{wappingService.tile4}}\r\n </div>\r\n <div class=\"service-description\" *ngIf=\"wappingService.enumTypeStatusECardID == ecardStatus.generated\">\r\n {{ wappingServicesTranslations.cardGenerated }}\r\n </div>\r\n <!--show more-->\r\n <div *ngIf=\"isOverflown()\" class=\"service-show-more-container\" (click)=\"openModalShowMoreDescription();\">\r\n <span>{{wappingServicesTranslations.showMore }}</span><mat-icon class=\"service-show-more-vector\" svgIcon=\"vector_right\"></mat-icon>\r\n </div>\r\n </div>\r\n <div class=\"service-tile-detail-container\" fxLayout=\"column\">\r\n <!--tileDetail 1-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail1\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"calendar\"></mat-icon>\r\n <span>{{wappingService.tileDetail1}}</span>\r\n </div>\r\n <!--tileDetail 2-->\r\n <div class=\"service-tile-detail\" *ngIf=\"wappingService.tileDetail2\" fxLayout=\"row\">\r\n <mat-icon class=\"service-tile-detail-icon\" svgIcon=\"tickets\"></mat-icon>\r\n <span>{{wappingService.tileDetail2}}</span>\r\n </div>\r\n </div>\r\n <div class=\"service-view-container-button\" fxHide.xs *ngIf=\"showButtonService\">\r\n <button mat-flat-button\r\n class=\"service-view-button\"\r\n color=\"accent\"\r\n [disabled]=\"disabledButtonService\"\r\n (click)=\"pressButtonService()\">\r\n <div class=\"service-view-participate\" *ngIf=\"isDraw\">\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"firstParticipation\" svgIcon=\"participate\"></mat-icon>\r\n <mat-icon class=\"service-view-participation-icon\" *ngIf=\"!firstParticipation\" svgIcon=\"participate-again\"></mat-icon>\r\n </div>\r\n <span class=\"service-view-button-label\">{{ wappingServicesTranslations?.buttonService }}</span>\r\n </button>\r\n </div>\r\n <!--link-->\r\n <div class=\"service-link-container\" *ngIf=\"wappingService.titleLinkUrl && wappingService.linkUrl\">\r\n <a class=\"service-link\" href=\"{{wappingService.linkUrl}}\" target=\"_blank\">\r\n <mat-icon class=\"service-link-icon\" svgIcon=\"share_square\"></mat-icon><span>{{wappingService.titleLinkUrl}}</span>\r\n </a>\r\n </div>\r\n </div>\r\n</div>", styles: [":host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:before{background:var(--mdc-switch-unselected-track-color, #a50000)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-selected-handle-color, var(--mdc-theme-primary, #fff))!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch:enabled .mdc-switch__track:after{background:var(--mdc-switch-selected-hover-track-color, #10c638)!important}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle:after{background:var(--mdc-switch-unselected-handle-color, #fff)!important}:host ::ng-deep .mdc-form-field>label{font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}:host ::ng-deep .mat-mdc-slide-toggle .mdc-switch{margin-right:8px!important}@media (max-width: 959px){.service-detail-center{align-items:center}}.service-view{position:relative;margin-right:70px}@media (min-width:600px) and (max-width: 959px){.service-view{margin-right:0;width:100%}}@media (max-width: 599px){.service-view{margin-right:0;width:100%}}.service-image-title{position:absolute;margin-left:60px;margin-right:60px;height:32px;top:0;left:0;right:0;z-index:99;display:flex;border-radius:0 0 4.3118px 4.3118px;justify-content:center;align-items:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}.service-tile{padding:14px;max-height:48px;display:flex;align-items:center;text-align:center;font:400 15px/17px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;text-transform:uppercase}.service-tile-border-bottom-radius{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.service-select-toggle{margin-top:25px;margin-right:auto;margin-left:auto;display:flex;align-items:center;text-align:left}.service-info-container{width:100%}@media (max-width: 599px){.service-info-container{padding-right:15px;padding-left:15px}}.service-name{margin-top:0;text-align:justify;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-name{margin-top:30px;margin-right:0}}@media (max-width: 599px){.service-name{margin-top:30px;margin-right:0}}.service-description{margin-top:0;text-align:left;white-space:pre-line;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:10;-webkit-box-orient:vertical}@media (min-width:600px) and (max-width: 959px){.service-description{margin-top:20px;margin-right:0}}@media (max-width: 599px){.service-description{margin-top:15px;margin-right:0}}.service-show-more-container{margin-top:5px;width:-moz-fit-content;width:fit-content;align-items:center;cursor:pointer;display:flex;text-align:left}.service-show-more-vector{width:5px!important;margin-left:10px}.service-tile-detail-container{margin-top:5px;display:flex;text-align:justify}@media (max-width: 599px){.service-tile-detail-container{margin-top:20px}}.service-tile-detail{margin-top:20px;font:400 14px/25px Inter,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal}@media (max-width: 599px){.service-tile-detail{margin-top:20px}}.service-tile-detail-icon{margin-right:10px}.service-link-container{height:100%;justify-content:flex-end;align-items:flex-end;display:flex;text-align:justify}@media (max-width: 599px){.service-link-container{margin-top:20px;justify-content:flex-start}}.service-link{display:flex;align-items:center;cursor:pointer;text-decoration:none;color:inherit}.service-link-icon{margin-right:10px}.service-options-container{border-top:1px solid #eee;margin-top:80px}@media (max-width: 599px){.service-options-container{margin-top:40px;padding-right:15px;padding-left:15px}}.service-option{height:48px;border-bottom:1px solid #eee;cursor:pointer;display:flex;align-items:center;text-align:left}.service-option-vector{width:10px!important}.actions-container{margin-top:40px}.actions-button{display:flex;align-items:center;text-align:justify}.actions-button-text{margin-left:10px}.sendLabel{margin:10px auto;display:flex;justify-content:center;align-items:center;text-align:center}.sendCard-container{flex-wrap:wrap;mat-icon {width: 24px;}}@media (min-width: 600px){.sendCard-container{display:flex;justify-content:flex-end}.sentCard-container{display:flex;justify-content:end}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:8px}}@media (max-width: 599px){.sendCard-container{display:flex;justify-content:center}.send-button{width:auto;display:flex;justify-content:center;align-items:center;margin-left:0}.sentCard-container{display:flex;justify-content:space-evenly}}.participation-detail-container{margin:16px 0;width:100%}.participation-detail-desktop-bar{border-radius:8px;padding:12px 24px;box-shadow:0 2px 4px #0000000d;gap:8px;display:flex;justify-content:flex-start;align-items:center}.participation-detail-value{margin-right:auto}.participation-detail-date{margin-left:4px}.participation-detail-container-mobile{padding:4px 12px!important}.participation-detail-mobile-card{border-radius:15px;padding:16px;display:flex;flex-direction:column;gap:12px}.participation-date-row{width:100%;text-align:center;padding-bottom:8px}.card-bottom-content{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.numbers-section{display:flex;flex-direction:column;flex:1}.numbers-list-vertical{display:flex;flex-direction:column;margin-top:4px;max-height:120px;overflow-y:auto}.number-item{padding:2px 0}.numbers-title{margin:0;text-transform:none}.card-icon-right{display:flex;justify-content:center;align-items:center;margin-left:10px}.card-icon-right mat-icon{width:50px!important;height:50px!important}\n"] }]
196
197
  }], ctorParameters: function () { return [{ type: i1.MatIconRegistry }, { type: i2.DomSanitizer }, { type: i3.MaterialModalService }]; }, propDecorators: { wappingServicesTranslations: [{
197
198
  type: Input,
198
199
  args: ['wappingServicesTranslations']
@@ -217,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
217
218
  type: Output,
218
219
  args: ['triggerButtonService']
219
220
  }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUt4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0ZBQWtGLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRbkksTUFBTSxPQUFPLGdDQUFnQztJQTZCM0MsSUFBMkIsWUFBWSxDQUFDLEtBQTBDO1FBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUcsS0FBSztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFJRCxJQUFhLGNBQWMsQ0FBQyxLQUFxQjtRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUM3QixJQUFHLEtBQUssRUFBRTtZQUNSLElB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QUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxLQUFLO1NBQ2QsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNsQyxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFNUQsT0FBTyxPQUFPLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLElBQUksT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUgsQ0FBQzs7OEhBM01VLGdDQUFnQztrSEFBaEMsZ0NBQWdDLHlhQ25CN0MsbStRQTJJTTs0RkR4SE8sZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLDRCQUE0QjtvS0FnQkEsMkJBQTJCO3NCQUFoRSxLQUFLO3VCQUFDLDZCQUE2QjtnQkFXSixxQkFBcUI7c0JBQXBELEtBQUs7dUJBQUMsdUJBQXVCO2dCQUNGLGlCQUFpQjtzQkFBNUMsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBQ0wsVUFBVTtzQkFBOUIsS0FBSzt1QkFBQyxZQUFZO2dCQUlRLFlBQVk7c0JBQXRDLEtBQUs7dUJBQUMsY0FBYztnQkFXUixjQUFjO3NCQUExQixLQUFLO2dCQVc0QixzQkFBc0I7c0JBQXZELE1BQU07dUJBQUMsd0JBQXdCO2dCQUNBLG9CQUFvQjtzQkFBbkQsTUFBTTt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFdhcHBpbmdTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy93YXBwaW5nLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXYXBwaW5nU2VydmljZUltYWdlIH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy93YXBwaW5nLXNlcnZpY2UtaW1hZ2UnO1xyXG5pbXBvcnQgeyBDYXJkU3RhdHVzLCBTZW5kaW5nU3RhdHVzLCBXYXBwaW5nU2VydmljZUFwcFZpZXdUeXBlLCBXYXBwaW5nU2VydmljZVR5cGUgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL2VudW1zLm1vZGVsJztcclxuaW1wb3J0IHsgV2FwcGluZ1NlcnZpY2VUcmFuc2xhdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhcHBpbmctc2VydmljZS10cmFuc2xhdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBXYXBwaW5nU2VydmljZUl0ZW1WaWV3IH0gZnJvbSAnLi4vc2hhcmVkL21vZGVscy93YXBwaW5nLXNlcnZpY2UtaXRlbS12aWV3JztcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IE1hdEljb25SZWdpc3RyeSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNb2RhbFNpemUgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL21vZGFsLXNpemUubW9kZWwnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZGFsU2VydmljZSB9IGZyb20gJy4uL3NoYXJlZC9zZXJ2aWNlcy9tYXRlcmlhbC1tb2RhbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgV2FwcFNlcnZpY2VEZXNjcmlwdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3NoYXJlZC9jb21wb25lbnRzL3dhcHAtc2VydmljZS1kZXNjcmlwdGlvbi93YXBwLXNlcnZpY2UtZGVzY3JpcHRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgV2FsbGV0TG90dGVyeVBhcnRpY2lwYXRpb25zUmVzcG9uc2UgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhbGxldC1sb3R0ZXJ5LXBhcnRpY2lwYXRpb25zLXJlc3BvbnNlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93YXBwLW1hdGVyaWFsLXNlcnZpY2Utdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXYXBwTWF0ZXJpYWxTZXJ2aWNlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHNlcnZpY2VJZCE6IG51bWJlcjtcclxuICB3YXBwaW5nU2VydmljZUltYWdlcyE6IFdhcHBpbmdTZXJ2aWNlSW1hZ2VbXTtcclxuICBzZXJ2aWNlU3RhdHVzITogc3RyaW5nO1xyXG4gIGlzU2VuZEdpZnRDYXJkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgZW51bVNlbmRpbmdTdGF0dXM6IHR5cGVvZiBTZW5kaW5nU3RhdHVzID0gU2VuZGluZ1N0YXR1cztcclxuICBlY2FyZFN0YXR1czogdHlwZW9mIENhcmRTdGF0dXMgPSBDYXJkU3RhdHVzXHJcbiAgdHJhbnNsYXRpb25zOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgnd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zJykgd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zOiBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyA9IHtcclxuICAgIGFjdGl2ZWRTZXJ2aWNlOiAnQWN0aXZhZGEnLFxyXG4gICAgZGlzYWJsZWRTZXJ2aWNlOiAnRGVzYWN0aXZhZGEnLFxyXG4gICAgc2NoZWR1bGVkTGFiZWw6ICdQcm9ncmFtYWRhIHBhcmEgZW52aWFyIGEge3tuYW1lfX0nLFxyXG4gICAgc2VuZExhYmVsOiAnRW52aWFkYSBhIHt7bmFtZX19JyxcclxuICAgIGNhcmRHZW5lcmF0ZWQ6ICdUdSB0YXJqZXRhIGVzdGFyw6EgZGlzcG9uaWJsZSBwYXJhIGVsIGVudsOtbyBlbiBicmV2ZXMgaW5zdGFudGVzJyxcclxuICAgIHJlY2VpdmVkTGFiZWw6IFwiRW52aWFkYSBwb3Ige3tuYW1lfX1cIixcclxuICAgIHNob3dNb3JlOiBcIk1vc3RyYXIgbcOhc1wiLFxyXG4gICAgdGl0bGU6IFwiRGVzY3JpcGNpw7NuXCIsXHJcbiAgICBidXR0b25TZXJ2aWNlOiBcIlBhcnRpY2lwYXRlXCJcclxuICB9O1xyXG4gIEBJbnB1dCgnZGlzYWJsZWRCdXR0b25TZXJ2aWNlJykgZGlzYWJsZWRCdXR0b25TZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdzaG93QnV0dG9uU2VydmljZScpIHNob3dCdXR0b25TZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdzaG93VG9nZ2xlJykgc2hvd1RvZ2dsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX2xvdHRlcnlFdmVudCE6IFdhbGxldExvdHRlcnlQYXJ0aWNpcGF0aW9uc1Jlc3BvbnNlO1xyXG4gIFxyXG4gIEBJbnB1dCgnbG90dGVyeUV2ZW50Jykgc2V0IGxvdHRlcnlFdmVudCh2YWx1ZTogV2FsbGV0TG90dGVyeVBhcnRpY2lwYXRpb25zUmVzcG9uc2UpIHtcclxuICAgIHRoaXMuX2xvdHRlcnlFdmVudCA9IHZhbHVlO1xyXG4gICAgaWYodmFsdWUpIHRoaXMuZXZhbHVhdGVEcmF3KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbG90dGVyeUV2ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvdHRlcnlFdmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dhcHBpbmdTZXJ2aWNlITogV2FwcGluZ1NlcnZpY2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB3YXBwaW5nU2VydmljZSh2YWx1ZTogV2FwcGluZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuX3dhcHBpbmdTZXJ2aWNlID0gdmFsdWU7XHJcbiAgICBpZih2YWx1ZSkge1xyXG4gICAgICB0aGlzLmluaXRXYXBwaW5nU2VydmljZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHdhcHBpbmdTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dhcHBpbmdTZXJ2aWNlO1xyXG4gIH1cclxuICBcclxuICBAT3V0cHV0KCd3YXBwaW5nU2VydmljZVNlbGVjdGVkJykgd2FwcGluZ1NlcnZpY2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCd0cmlnZ2VyQnV0dG9uU2VydmljZScpIHRyaWdnZXJCdXR0b25TZXJ2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBmaXJzdFBhcnRpY2lwYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzRHJhdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhc1BhcnRpY2lwYXRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRQYXJ0aWNpcGF0aW9uc01vZGFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtYXRJY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIG1hdGVyaWFsTW9kYWw6IE1hdGVyaWFsTW9kYWxTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1hdEljb25SZWdpc3RyeS5hZGRTdmdJY29uKFwiY2FsZW5kYXJcIiwgdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFwiYXNzZXRzL3dhcHBJY29ucy9tYXQtY2FsZW5kYXIuc3ZnXCIpKTtcclxuICAgIHRoaXMubWF0SWNvblJlZ2lzdHJ5LmFkZFN2Z0ljb24oXCJudW1iZXJcIiwgdGhpcy5kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFJlc291cmNlVXJsKFwiL2Fzc2V0cy93YXBwSWNvbnMvbWF0LW51bWJlci5zdmdcIikpO1xyXG4gICAgdGhpcy5tYXRJY29uUmVnaXN0cnkuYWRkU3ZnSWNvbihcInBhcnRpY2lwYXRlXCIsIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcIi9hc3NldHMvd2FwcEljb25zL21hdC1wYXJ0aWNpcGF0ZS5zdmdcIikpO1xyXG4gICAgdGhpcy5tYXRJY29uUmVnaXN0cnkuYWRkU3ZnSWNvbihcInBhcnRpY2lwYXRlLWFnYWluXCIsIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChcIi9hc3NldHMvd2FwcEljb25zL21hdC1wYXJ0aWNpcGF0ZS1hZ2Fpbi5zdmdcIikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdFdhcHBpbmdTZXJ2aWNlKCkge1xyXG4gICAgdGhpcy5pc1NlbmRHaWZ0Q2FyZCA9IGZhbHNlXHJcbiAgICBpZiAodGhpcy53YXBwaW5nU2VydmljZS5hY3RpdmUpXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmFjdGl2ZWRTZXJ2aWNlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmRpc2FibGVkU2VydmljZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuZGF0YVJlcVRvU2VuZENhcmQgJiYgdGhpcy53YXBwaW5nU2VydmljZS5kYXRhUmVxVG9TZW5kQ2FyZC5kYXRhUmVxVG9TZW5kQ2FyZElkICE9IDApIHtcclxuICAgICAgdGhpcy5pc1NlbmRHaWZ0Q2FyZCA9IHRydWVcclxuICAgICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IHRoaXMuZWNhcmRTdGF0dXMuc2VudCkge1xyXG4gICAgICAgIHRoaXMuYWxsb3dTZWxlY3RTZW5kR2lmdENhcmQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IHRoaXMuZWNhcmRTdGF0dXMuZ2VuZXJhdGVkKVxyXG4gICAgICB0aGlzLmFsbG93U2VsZWN0U2VuZEdpZnRDYXJkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIHRoaXMuZ2V0V2FwcGluZ1NlcnZpY2VUaWxlcygpO1xyXG4gICAgdGhpcy5nZXRXYXBwaW5nU2VydmljZUltYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVEcmF3KCl7XHJcbiAgICBpZih0aGlzLmxvdHRlcnlFdmVudC5pc1NjaGVkdWxlZEZvckRyYXcpe1xyXG4gICAgICBpZih0aGlzLmxvdHRlcnlFdmVudC5sb3R0ZXJ5RXZlbnROZXh0RHJhdy5za3lXYXBwQ2FyZFRyYW5zYWN0aW9uSWRzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHRoaXMuZmlyc3RQYXJ0aWNpcGF0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oYXNQYXJ0aWNpcGF0aW9ucyA9IHRydWU7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuZmlyc3RQYXJ0aWNpcGF0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmhhc1BhcnRpY2lwYXRpb25zID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kaXNhYmxlZFBhcnRpY2lwYXRpb25zTW9kYWwgPSBmYWxzZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmhhc1BhcnRpY2lwYXRpb25zID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXYXBwaW5nU2VydmljZVRpbGVzKCkge1xyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VUaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgIGxldCB2aWV3VGlsZXM6IFdhcHBpbmdTZXJ2aWNlSXRlbVZpZXdbXSA9IHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VUaWxlcy5maWx0ZXIodyA9PiB3LmFwcFZpZXdUeXBlID09IFdhcHBpbmdTZXJ2aWNlQXBwVmlld1R5cGUuVmlldyk7XHJcblxyXG4gICAgICBpZiAodmlld1RpbGVzICE9IG51bGwpIHtcclxuICAgICAgICB2aWV3VGlsZXMuZm9yRWFjaCgod2FwcGluZ1NlcnZpY2VUaWxlOiBXYXBwaW5nU2VydmljZUl0ZW1WaWV3KSA9PiB7XHJcbiAgICAgICAgICBpZiAod2FwcGluZ1NlcnZpY2VUaWxlLnBvc2l0aW9uID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMSA9IHdhcHBpbmdTZXJ2aWNlVGlsZS52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMUxhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnNob3dUaWxlMUxhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLnNob3dMYWJlbDtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMUJhY2tncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEJhY2tncm91bmRDb2xvcjtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMUZvcmVncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEZvcmVncm91bmRDb2xvcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh3YXBwaW5nU2VydmljZVRpbGUucG9zaXRpb24gPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyID0gd2FwcGluZ1NlcnZpY2VUaWxlLnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyTGFiZWwgPSB3YXBwaW5nU2VydmljZVRpbGUubGFiZWw7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2Uuc2hvd1RpbGUyTGFiZWwgPSB3YXBwaW5nU2VydmljZVRpbGUuc2hvd0xhYmVsO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyQmFja2dyb3VuZENvbG9yID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsQmFja2dyb3VuZENvbG9yO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyRm9yZWdyb3VuZENvbG9yID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsRm9yZWdyb3VuZENvbG9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHdhcHBpbmdTZXJ2aWNlVGlsZS5wb3NpdGlvbiA9PSAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTMgPSB3YXBwaW5nU2VydmljZVRpbGUudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTNMYWJlbCA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbDtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS5zaG93VGlsZTNMYWJlbCA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5zaG93TGFiZWw7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTNCYWNrZ3JvdW5kQ29sb3IgPSB3YXBwaW5nU2VydmljZVRpbGUubGFiZWxCYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTNGb3JlZ3JvdW5kQ29sb3IgPSB3YXBwaW5nU2VydmljZVRpbGUubGFiZWxGb3JlZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAod2FwcGluZ1NlcnZpY2VUaWxlLnBvc2l0aW9uID09IDQpIHtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNCA9IHdhcHBpbmdTZXJ2aWNlVGlsZS52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNExhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnNob3dUaWxlNExhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLnNob3dMYWJlbDtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNEJhY2tncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEJhY2tncm91bmRDb2xvcjtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNEZvcmVncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEZvcmVncm91bmRDb2xvcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZGV0YWlsVGlsZXM6IFdhcHBpbmdTZXJ2aWNlSXRlbVZpZXdbXSA9IHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VUaWxlcy5maWx0ZXIodyA9PiB3LmFwcFZpZXdUeXBlID09IFdhcHBpbmdTZXJ2aWNlQXBwVmlld1R5cGUuVmlld0RldGFpbCk7XHJcbiAgICAgIGlmIChkZXRhaWxUaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgZGV0YWlsVGlsZXMuZm9yRWFjaCgod2FwcGluZ1NlcnZpY2VUaWxlOiBXYXBwaW5nU2VydmljZUl0ZW1WaWV3KSA9PiB7XHJcbiAgICAgICAgICBpZiAod2FwcGluZ1NlcnZpY2VUaWxlLnBvc2l0aW9uID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlRGV0YWlsMSA9IHdhcHBpbmdTZXJ2aWNlVGlsZS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh3YXBwaW5nU2VydmljZVRpbGUucG9zaXRpb24gPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGVEZXRhaWwyID0gd2FwcGluZ1NlcnZpY2VUaWxlLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXYXBwaW5nU2VydmljZUltYWdlcygpIHtcclxuICAgIHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMgPSB0aGlzLndhcHBpbmdTZXJ2aWNlLndhcHBpbmdTZXJ2aWNlSW1hZ2VzO1xyXG5cclxuICAgIGlmICh0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIGxldCB3YXBwaW5nU2VydmljZUltYWdlOiBXYXBwaW5nU2VydmljZUltYWdlID0ge1xyXG4gICAgICAgIHBhdGg6IHRoaXMud2FwcGluZ1NlcnZpY2UuaW1hZ2VVcmwhLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzLnVuc2hpZnQod2FwcGluZ1NlcnZpY2VJbWFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RXYXBwaW5nU2VydmljZSgpIHtcclxuICAgIHRoaXMuZGlzYWJsZWRUb2dnbGUgPSB0cnVlO1xyXG4gICAgdGhpcy53YXBwaW5nU2VydmljZVNlbGVjdGVkLmVtaXQodGhpcy53YXBwaW5nU2VydmljZS5hY3RpdmUpO1xyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuYWN0aXZlKVxyXG4gICAgICB0aGlzLnNlcnZpY2VTdGF0dXMgPSB0aGlzLndhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5hY3RpdmVkU2VydmljZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnNlcnZpY2VTdGF0dXMgPSB0aGlzLndhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5kaXNhYmxlZFNlcnZpY2UudG9VcHBlckNhc2UoKTtcclxuXHJcbiAgICB0aGlzLmRpc2FibGVkVG9nZ2xlID0gZmFsc2VcclxuICAgIHRoaXMuaW5pdFdhcHBpbmdTZXJ2aWNlKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuTW9kYWxTaG93TW9yZURlc2NyaXB0aW9uKCkge1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGU0LFxyXG4gICAgICB0aXRsZTogdGhpcy53YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMudGl0bGVcclxuICAgIH07XHJcblxyXG4gICAgbGV0IG1vZGFsU2l6ZTogTW9kYWxTaXplID0ge1xyXG4gICAgICB3aWR0aDogXCI4NTBweFwiLFxyXG4gICAgICBoZWlnaHQ6IFwiNjAlXCJcclxuICAgIH07XHJcbiAgICB0aGlzLm1hdGVyaWFsTW9kYWwub3BlbihXYXBwU2VydmljZURlc2NyaXB0aW9uQ29tcG9uZW50LCBtb2RhbFNpemUsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBwcmVzc0J1dHRvblNlcnZpY2UoKXtcclxuICAgIHRoaXMudHJpZ2dlckJ1dHRvblNlcnZpY2UuZW1pdCgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNPdmVyZmxvd24oKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2VydmljZURlc2NyaXB0aW9uXCIpO1xyXG5cclxuICAgIHJldHVybiBlbGVtZW50ICE9IG51bGwgPyBlbGVtZW50LnNjcm9sbEhlaWdodCA+IGVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IGVsZW1lbnQuc2Nyb2xsV2lkdGggPiBlbGVtZW50LmNsaWVudFdpZHRoIDogZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjx3YXBwLW1haW4tdGl0bGUgdGl0bGU9XCJ7e3dhcHBpbmdTZXJ2aWNlLnRpbGUzfX1cIiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlXCIgZnhIaWRlLnhzPjwvd2FwcC1tYWluLXRpdGxlPlxyXG48ZGl2IGNsYXNzPVwic2VydmljZS1kZXRhaWwtY2VudGVyXCIgKm5nSWY9XCJ3YXBwaW5nU2VydmljZVwiXHJcbiAgICBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0LnhzPVwiY29sdW1uXCIgZnhMYXlvdXQuc209XCJjb2x1bW5cIj5cclxuICAgIDwhLS1zZXJ2aWNlIGltYWdlLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2VydmljZS12aWV3XCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgICA8IS0tdGlsZSAxLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtaW1hZ2UtdGl0bGVcIlxyXG4gICAgICAgICAgICAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnRpbGUxXCJcclxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwid2FwcGluZ1NlcnZpY2UudGlsZTFCYWNrZ3JvdW5kQ29sb3JcIlxyXG4gICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwid2FwcGluZ1NlcnZpY2UudGlsZTFGb3JlZ3JvdW5kQ29sb3JcIlxyXG4gICAgICAgICAgICBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCI+XHJcbiAgICAgICAgPGRpdj57e3dhcHBpbmdTZXJ2aWNlLnRpbGUxfX08L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwid2FwcGluZ1NlcnZpY2Uuc2hvd1RpbGUxTGFiZWxcIj57e3dhcHBpbmdTZXJ2aWNlLnRpbGUxTGFiZWx9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1zbGlkZXNob3ctLT5cclxuICAgICAgICA8d2FwcC1jYXJvdXNlbCBbaW1hZ2VzXT1cIndhcHBpbmdTZXJ2aWNlSW1hZ2VzXCI+PC93YXBwLWNhcm91c2VsPlxyXG4gICAgICAgIDwhLS10aWxlIDItLT5cclxuICAgICAgICA8ZGl2IGZ4RmxleCBmeExheW91dD1cInJvd1wiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICAgICAgZnhMYXlvdXRHYXA9XCI1cHhcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInNlcnZpY2UtdGlsZVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnc2VydmljZS10aWxlLWJvcmRlci1ib3R0b20tcmFkaXVzJzogIXdhcHBpbmdTZXJ2aWNlLnRpbGU0fVwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIndhcHBpbmdTZXJ2aWNlLnRpbGUyQmFja2dyb3VuZENvbG9yXCJcclxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIndhcHBpbmdTZXJ2aWNlLnRpbGUyRm9yZWdyb3VuZENvbG9yXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlMlwiPlxyXG4gICAgICAgIDxkaXY+e3t3YXBwaW5nU2VydmljZS50aWxlMn19PC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnNob3dUaWxlMkxhYmVsXCI+e3t3YXBwaW5nU2VydmljZS50aWxlMkxhYmVsfX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXItc3RhdHVzLWNvbnRhaW5lciBzZW5kTGFiZWwtY29udGFpbmVyXCIgKm5nSWY9XCJpc1NlbmRHaWZ0Q2FyZCAmJiAod2FwcGluZ1NlcnZpY2U/LmRhdGFSZXFUb1NlbmRDYXJkIS5lbnVtU2VuZGluZ1N0YXR1c0lkID09IGVudW1TZW5kaW5nU3RhdHVzLlNjaGVkdWxlZFRvU2VuZCkgJiYgd2FwcGluZ1NlcnZpY2U/LmVudW1UeXBlU3RhdHVzRUNhcmRJRCA9PSBlY2FyZFN0YXR1cy5zZW50ISBcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbmRMYWJlbFwiICA+XHJcbiAgICAgICAgICAgIHt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5zY2hlZHVsZWRMYWJlbCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlci1zdGF0dXMtY29udGFpbmVyIHNlbmRMYWJlbC1jb250YWluZXJcIiAqbmdJZj1cImlzU2VuZEdpZnRDYXJkICYmICh3YXBwaW5nU2VydmljZT8uZGF0YVJlcVRvU2VuZENhcmQhLmVudW1TZW5kaW5nU3RhdHVzSWQgPT0gZW51bVNlbmRpbmdTdGF0dXMuU2VudCB8fCB3YXBwaW5nU2VydmljZT8uZGF0YVJlcVRvU2VuZENhcmQhLmVudW1TZW5kaW5nU3RhdHVzSWQgPT0gZW51bVNlbmRpbmdTdGF0dXMuUGVuZGluZ1JlZ2lzdHJhdGlvbikgJiYgd2FwcGluZ1NlcnZpY2U/LmVudW1UeXBlU3RhdHVzRUNhcmRJRCA9PSBlY2FyZFN0YXR1cy5zZW50XCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjVweFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZW5kTGFiZWxcIiA+XHJcbiAgICAgICAgICAgIHt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5zZW5kTGFiZWwgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXItc3RhdHVzLWNvbnRhaW5lciBzZW5kTGFiZWwtY29udGFpbmVyXCIgKm5nSWY9XCJpc1NlbmRHaWZ0Q2FyZCAmJiB3YXBwaW5nU2VydmljZT8uZGF0YVJlcVRvU2VuZENhcmQhLmVudW1TZW5kaW5nU3RhdHVzSWQgPT0gZW51bVNlbmRpbmdTdGF0dXMuU2VudCAmJiB3YXBwaW5nU2VydmljZT8uZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IGVjYXJkU3RhdHVzLmFjdGl2YXRlZFwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCI1cHhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VuZExhYmVsXCIgPlxyXG4gICAgICAgICAgICB7eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMucmVjZWl2ZWRMYWJlbCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1hY3RpdmF0ZSB0b2dnbGUtLT5cclxuICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBjbGFzcz1cInNlcnZpY2Utc2VsZWN0LXRvZ2dsZVwiIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS5hbGxvd1NlbGVjdCAmJiBhbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZCAmJiAhc2hvd0J1dHRvblNlcnZpY2UgJiYgc2hvd1RvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwid2FwcGluZ1NlcnZpY2UuYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJzZWxlY3RXYXBwaW5nU2VydmljZSgpXCI+e3sgc2VydmljZVN0YXR1cyB9fTwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiAqbmdJZj1cInNob3dCdXR0b25TZXJ2aWNlXCJcclxuICAgICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS12aWV3LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBmeEZsZXg9XCIxMDBcIiBmeEhpZGUgZnhTaG93LnhzXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRCdXR0b25TZXJ2aWNlXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmVzc0J1dHRvblNlcnZpY2UoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS12aWV3LXBhcnRpY2lwYXRlXCIgKm5nSWY9XCJpc0RyYXdcIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlcnZpY2Utdmlldy1wYXJ0aWNpcGF0aW9uLWljb25cIiAqbmdJZj1cImZpcnN0UGFydGljaXBhdGlvblwiIHN2Z0ljb249XCJwYXJ0aWNpcGF0ZVwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXZpZXctcGFydGljaXBhdGlvbi1pY29uXCIgKm5nSWY9XCIhZmlyc3RQYXJ0aWNpcGF0aW9uXCIgc3ZnSWNvbj1cInBhcnRpY2lwYXRlLWFnYWluXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2VydmljZS12aWV3LWJ1dHRvbi1sYWJlbFwiPnt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucz8uYnV0dG9uU2VydmljZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhdGlvbi1kZXRhaWwtY29udGFpbmVyLW1vYmlsZVwiIGZ4SGlkZSBmeFNob3cueHMgKm5nSWY9XCJpc0RyYXcgJiYgaGFzUGFydGljaXBhdGlvbnNcIj5cclxuICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYXRpb24tZGV0YWlsLW1vYmlsZS1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFydGljaXBhdGlvbi1kYXRlLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtbGlnaHRcIj5FbCBnYW5hZG9yIHNlIGRlY2lkaXLDoSBlbCA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYXRlLWJvbGRcIj57eyBsb3R0ZXJ5RXZlbnQ/LmxvdHRlcnlFdmVudE5leHREcmF3Py5kcmF3RGF0ZSB8IGRhdGU6J2RkL01NL3l5eXknIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm90dG9tLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibnVtYmVycy1zZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibnVtYmVycy10aXRsZVwiPlR1cyBuw7ptZXJvczwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlcnMtbGlzdC12ZXJ0aWNhbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlci1pdGVtXCIgKm5nRm9yPVwibGV0IGlkIG9mIGxvdHRlcnlFdmVudD8ubG90dGVyeUV2ZW50TmV4dERyYXc/LnNreVdhcHBDYXJkVHJhbnNhY3Rpb25JZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpZCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1pY29uLXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwibnVtYmVyXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDwhLS1zZXJ2aWNlIGluZm8tLT5cclxuICAgIDxkaXYgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlMyB8fCB3YXBwaW5nU2VydmljZS50aWxlNFwiIGNsYXNzPVwic2VydmljZS1pbmZvLWNvbnRhaW5lclwiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtZGVzY3JpcHRpb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgPCEtLXRpbGUgMy0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlM1wiIGNsYXNzPVwic2VydmljZS1uYW1lIG1hdC10aXRsZVwiIGZ4SGlkZSBmeFNob3cueHM+XHJcbiAgICAgICAgICAgIHt7d2FwcGluZ1NlcnZpY2UudGlsZTN9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS10aWxlIDQtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGlsZTQgJiYgd2FwcGluZ1NlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEICE9IGVjYXJkU3RhdHVzLmdlbmVyYXRlZFwiIGNsYXNzPVwic2VydmljZS1kZXNjcmlwdGlvblwiIGlkPVwic2VydmljZURlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAgICAgIHt7d2FwcGluZ1NlcnZpY2UudGlsZTR9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRlc2NyaXB0aW9uXCIgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS5lbnVtVHlwZVN0YXR1c0VDYXJkSUQgPT0gZWNhcmRTdGF0dXMuZ2VuZXJhdGVkXCI+XHJcbiAgICAgICAgICAgIHt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5jYXJkR2VuZXJhdGVkIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLXNob3cgbW9yZS0tPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc092ZXJmbG93bigpXCIgY2xhc3M9XCJzZXJ2aWNlLXNob3ctbW9yZS1jb250YWluZXJcIiAoY2xpY2spPVwib3Blbk1vZGFsU2hvd01vcmVEZXNjcmlwdGlvbigpO1wiPlxyXG4gICAgICAgICAgICA8c3Bhbj57e3dhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5zaG93TW9yZSB9fTwvc3Bhbj48bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXNob3ctbW9yZS12ZWN0b3JcIiBzdmdJY29uPVwidmVjdG9yX3JpZ2h0XCI+PC9tYXQtaWNvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aWxlLWRldGFpbC1jb250YWluZXJcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICAgIDwhLS10aWxlRGV0YWlsIDEtLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aWxlLWRldGFpbFwiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGlsZURldGFpbDFcIiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXRpbGUtZGV0YWlsLWljb25cIiBzdmdJY29uPVwiY2FsZW5kYXJcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8c3Bhbj57e3dhcHBpbmdTZXJ2aWNlLnRpbGVEZXRhaWwxfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPCEtLXRpbGVEZXRhaWwgMi0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpbGUtZGV0YWlsXCIgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlRGV0YWlsMlwiIGZ4TGF5b3V0PVwicm93XCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlcnZpY2UtdGlsZS1kZXRhaWwtaWNvblwiIHN2Z0ljb249XCJ0aWNrZXRzXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3t3YXBwaW5nU2VydmljZS50aWxlRGV0YWlsMn19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXZpZXctY29udGFpbmVyLWJ1dHRvblwiIGZ4SGlkZS54cyAqbmdJZj1cInNob3dCdXR0b25TZXJ2aWNlXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLXZpZXctYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQnV0dG9uU2VydmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXNzQnV0dG9uU2VydmljZSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS12aWV3LXBhcnRpY2lwYXRlXCIgKm5nSWY9XCJpc0RyYXdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXZpZXctcGFydGljaXBhdGlvbi1pY29uXCIgKm5nSWY9XCJmaXJzdFBhcnRpY2lwYXRpb25cIiBzdmdJY29uPVwicGFydGljaXBhdGVcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlcnZpY2Utdmlldy1wYXJ0aWNpcGF0aW9uLWljb25cIiAqbmdJZj1cIiFmaXJzdFBhcnRpY2lwYXRpb25cIiBzdmdJY29uPVwicGFydGljaXBhdGUtYWdhaW5cIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlcnZpY2Utdmlldy1idXR0b24tbGFiZWxcIj57eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnM/LmJ1dHRvblNlcnZpY2UgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1saW5rLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtbGluay1jb250YWluZXJcIiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnRpdGxlTGlua1VybCAmJiB3YXBwaW5nU2VydmljZS5saW5rVXJsXCI+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJzZXJ2aWNlLWxpbmtcIiBocmVmPVwie3t3YXBwaW5nU2VydmljZS5saW5rVXJsfX1cIiB0YXJnZXQ9XCJfYmxhbmtcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VydmljZS1saW5rLWljb25cIiBzdmdJY29uPVwic2hhcmVfc3F1YXJlXCI+PC9tYXQtaWNvbj48c3Bhbj57e3dhcHBpbmdTZXJ2aWNlLnRpdGxlTGlua1VybH19PC9zcGFuPlxyXG4gICAgICAgIDwvYT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvd2FwcC1jb21wb25lbnRzL3NyYy9saWIvbWF0ZXJpYWwvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcvd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSx5QkFBeUIsRUFBc0IsTUFBTSw4QkFBOEIsQ0FBQztBQUt4SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHM0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFFbkksT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPdEcsTUFBTSxPQUFPLGdDQUFnQztJQTZCM0MsSUFBMkIsWUFBWSxDQUFDLEtBQTBDO1FBQ2hGLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQzNCLElBQUcsS0FBSztZQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFJRCxJQUFhLGNBQWMs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bnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgV2FwcGluZ1NlcnZpY2UgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhcHBpbmctc2VydmljZSc7XHJcbmltcG9ydCB7IFdhcHBpbmdTZXJ2aWNlSW1hZ2UgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhcHBpbmctc2VydmljZS1pbWFnZSc7XHJcbmltcG9ydCB7IENhcmRTdGF0dXMsIFNlbmRpbmdTdGF0dXMsIFdhcHBpbmdTZXJ2aWNlQXBwVmlld1R5cGUsIFdhcHBpbmdTZXJ2aWNlVHlwZSB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvZW51bXMubW9kZWwnO1xyXG5pbXBvcnQgeyBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvd2FwcGluZy1zZXJ2aWNlLXRyYW5zbGF0aW9ucy5tb2RlbCc7XHJcbmltcG9ydCB7IFdhcHBpbmdTZXJ2aWNlSXRlbVZpZXcgfSBmcm9tICcuLi9zaGFyZWQvbW9kZWxzL3dhcHBpbmctc2VydmljZS1pdGVtLXZpZXcnO1xyXG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuaW1wb3J0IHsgTWF0SWNvblJlZ2lzdHJ5IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE1vZGFsU2l6ZSB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvbW9kYWwtc2l6ZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3NlcnZpY2VzL21hdGVyaWFsLW1vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXYXBwU2VydmljZURlc2NyaXB0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2NvbXBvbmVudHMvd2FwcC1zZXJ2aWNlLWRlc2NyaXB0aW9uL3dhcHAtc2VydmljZS1kZXNjcmlwdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXYWxsZXRMb3R0ZXJ5UGFydGljaXBhdGlvbnNSZXNwb25zZSB9IGZyb20gJy4uL3NoYXJlZC9tb2RlbHMvd2FsbGV0LWxvdHRlcnktcGFydGljaXBhdGlvbnMtcmVzcG9uc2UubW9kZWwnO1xyXG5pbXBvcnQgeyBDQUxFTkRBUiwgSUNPTl9OVU1CRVIsIFBBUlRJQ0lQQVRFLCBQQVJUSUNJUEFURV9BR0FJTiB9IGZyb20gJy4uL3NoYXJlZC9pY29ucy9tYXQtaWNvbnMtc3ZnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi93YXBwLW1hdGVyaWFsLXNlcnZpY2Utdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd2FwcC1tYXRlcmlhbC1zZXJ2aWNlLXZpZXcuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXYXBwTWF0ZXJpYWxTZXJ2aWNlVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHNlcnZpY2VJZCE6IG51bWJlcjtcclxuICB3YXBwaW5nU2VydmljZUltYWdlcyE6IFdhcHBpbmdTZXJ2aWNlSW1hZ2VbXTtcclxuICBzZXJ2aWNlU3RhdHVzITogc3RyaW5nO1xyXG4gIGlzU2VuZEdpZnRDYXJkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbGxvd1NlbGVjdFNlbmRHaWZ0Q2FyZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgZW51bVNlbmRpbmdTdGF0dXM6IHR5cGVvZiBTZW5kaW5nU3RhdHVzID0gU2VuZGluZ1N0YXR1cztcclxuICBlY2FyZFN0YXR1czogdHlwZW9mIENhcmRTdGF0dXMgPSBDYXJkU3RhdHVzXHJcbiAgdHJhbnNsYXRpb25zOiBhbnk7XHJcblxyXG4gIEBJbnB1dCgnd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zJykgd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zOiBXYXBwaW5nU2VydmljZVRyYW5zbGF0aW9ucyA9IHtcclxuICAgIGFjdGl2ZWRTZXJ2aWNlOiAnQWN0aXZhZGEnLFxyXG4gICAgZGlzYWJsZWRTZXJ2aWNlOiAnRGVzYWN0aXZhZGEnLFxyXG4gICAgc2NoZWR1bGVkTGFiZWw6ICdQcm9ncmFtYWRhIHBhcmEgZW52aWFyIGEge3tuYW1lfX0nLFxyXG4gICAgc2VuZExhYmVsOiAnRW52aWFkYSBhIHt7bmFtZX19JyxcclxuICAgIGNhcmRHZW5lcmF0ZWQ6ICdUdSB0YXJqZXRhIGVzdGFyw6EgZGlzcG9uaWJsZSBwYXJhIGVsIGVudsOtbyBlbiBicmV2ZXMgaW5zdGFudGVzJyxcclxuICAgIHJlY2VpdmVkTGFiZWw6IFwiRW52aWFkYSBwb3Ige3tuYW1lfX1cIixcclxuICAgIHNob3dNb3JlOiBcIk1vc3RyYXIgbcOhc1wiLFxyXG4gICAgdGl0bGU6IFwiRGVzY3JpcGNpw7NuXCIsXHJcbiAgICBidXR0b25TZXJ2aWNlOiBcIlBhcnRpY2lwYXRlXCJcclxuICB9O1xyXG4gIEBJbnB1dCgnZGlzYWJsZWRCdXR0b25TZXJ2aWNlJykgZGlzYWJsZWRCdXR0b25TZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdzaG93QnV0dG9uU2VydmljZScpIHNob3dCdXR0b25TZXJ2aWNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdzaG93VG9nZ2xlJykgc2hvd1RvZ2dsZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIHByaXZhdGUgX2xvdHRlcnlFdmVudCE6IFdhbGxldExvdHRlcnlQYXJ0aWNpcGF0aW9uc1Jlc3BvbnNlO1xyXG4gIFxyXG4gIEBJbnB1dCgnbG90dGVyeUV2ZW50Jykgc2V0IGxvdHRlcnlFdmVudCh2YWx1ZTogV2FsbGV0TG90dGVyeVBhcnRpY2lwYXRpb25zUmVzcG9uc2UpIHtcclxuICAgIHRoaXMuX2xvdHRlcnlFdmVudCA9IHZhbHVlO1xyXG4gICAgaWYodmFsdWUpIHRoaXMuZXZhbHVhdGVEcmF3KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbG90dGVyeUV2ZW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xvdHRlcnlFdmVudDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3dhcHBpbmdTZXJ2aWNlITogV2FwcGluZ1NlcnZpY2U7XHJcblxyXG4gIEBJbnB1dCgpIHNldCB3YXBwaW5nU2VydmljZSh2YWx1ZTogV2FwcGluZ1NlcnZpY2UpIHtcclxuICAgIHRoaXMuX3dhcHBpbmdTZXJ2aWNlID0gdmFsdWU7XHJcbiAgICBpZih2YWx1ZSkge1xyXG4gICAgICB0aGlzLmluaXRXYXBwaW5nU2VydmljZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IHdhcHBpbmdTZXJ2aWNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dhcHBpbmdTZXJ2aWNlO1xyXG4gIH1cclxuICBcclxuICBAT3V0cHV0KCd3YXBwaW5nU2VydmljZVNlbGVjdGVkJykgd2FwcGluZ1NlcnZpY2VTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCd0cmlnZ2VyQnV0dG9uU2VydmljZScpIHRyaWdnZXJCdXR0b25TZXJ2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBmaXJzdFBhcnRpY2lwYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGlzRHJhdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGhhc1BhcnRpY2lwYXRpb25zOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZGlzYWJsZWRQYXJ0aWNpcGF0aW9uc01vZGFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBtYXRJY29uUmVnaXN0cnk6IE1hdEljb25SZWdpc3RyeSxcclxuICAgIHByaXZhdGUgZG9tU2FuaXRpemVyOiBEb21TYW5pdGl6ZXIsXHJcbiAgICBwcml2YXRlIG1hdGVyaWFsTW9kYWw6IE1hdGVyaWFsTW9kYWxTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLm1hdEljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbChcImNhbGVuZGFyXCIsIHRoaXMuZG9tU2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKENBTEVOREFSKSk7XHJcbiAgICB0aGlzLm1hdEljb25SZWdpc3RyeS5hZGRTdmdJY29uTGl0ZXJhbChcIm51bWJlclwiLCB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChJQ09OX05VTUJFUikpO1xyXG4gICAgdGhpcy5tYXRJY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoXCJwYXJ0aWNpcGF0ZVwiLCB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChQQVJUSUNJUEFURSkpO1xyXG4gICAgdGhpcy5tYXRJY29uUmVnaXN0cnkuYWRkU3ZnSWNvbkxpdGVyYWwoXCJwYXJ0aWNpcGF0ZS1hZ2FpblwiLCB0aGlzLmRvbVNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChQQVJUSUNJUEFURV9BR0FJTikpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdFdhcHBpbmdTZXJ2aWNlKCkge1xyXG4gICAgdGhpcy5pc1NlbmRHaWZ0Q2FyZCA9IGZhbHNlXHJcbiAgICBpZiAodGhpcy53YXBwaW5nU2VydmljZS5hY3RpdmUpXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmFjdGl2ZWRTZXJ2aWNlLnRvVXBwZXJDYXNlKCk7XHJcbiAgICBlbHNlXHJcbiAgICAgIHRoaXMuc2VydmljZVN0YXR1cyA9IHRoaXMud2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLmRpc2FibGVkU2VydmljZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuZGF0YVJlcVRvU2VuZENhcmQgJiYgdGhpcy53YXBwaW5nU2VydmljZS5kYXRhUmVxVG9TZW5kQ2FyZC5kYXRhUmVxVG9TZW5kQ2FyZElkICE9IDApIHtcclxuICAgICAgdGhpcy5pc1NlbmRHaWZ0Q2FyZCA9IHRydWVcclxuICAgICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IHRoaXMuZWNhcmRTdGF0dXMuc2VudCkge1xyXG4gICAgICAgIHRoaXMuYWxsb3dTZWxlY3RTZW5kR2lmdENhcmQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IHRoaXMuZWNhcmRTdGF0dXMuZ2VuZXJhdGVkKVxyXG4gICAgICB0aGlzLmFsbG93U2VsZWN0U2VuZEdpZnRDYXJkID0gZmFsc2U7XHJcbiAgICBcclxuICAgIHRoaXMuZ2V0V2FwcGluZ1NlcnZpY2VUaWxlcygpO1xyXG4gICAgdGhpcy5nZXRXYXBwaW5nU2VydmljZUltYWdlcygpO1xyXG4gIH1cclxuXHJcbiAgZXZhbHVhdGVEcmF3KCl7XHJcbiAgICBpZih0aGlzLmxvdHRlcnlFdmVudC5pc1NjaGVkdWxlZEZvckRyYXcpe1xyXG4gICAgICBpZih0aGlzLmxvdHRlcnlFdmVudC5sb3R0ZXJ5RXZlbnROZXh0RHJhdy5za3lXYXBwQ2FyZFRyYW5zYWN0aW9uSWRzLmxlbmd0aCA+IDApe1xyXG4gICAgICAgIHRoaXMuZmlyc3RQYXJ0aWNpcGF0aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5oYXNQYXJ0aWNpcGF0aW9ucyA9IHRydWU7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgIHRoaXMuZmlyc3RQYXJ0aWNpcGF0aW9uID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmhhc1BhcnRpY2lwYXRpb25zID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5kaXNhYmxlZFBhcnRpY2lwYXRpb25zTW9kYWwgPSBmYWxzZTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmhhc1BhcnRpY2lwYXRpb25zID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXYXBwaW5nU2VydmljZVRpbGVzKCkge1xyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VUaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgIGxldCB2aWV3VGlsZXM6IFdhcHBpbmdTZXJ2aWNlSXRlbVZpZXdbXSA9IHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VUaWxlcy5maWx0ZXIodyA9PiB3LmFwcFZpZXdUeXBlID09IFdhcHBpbmdTZXJ2aWNlQXBwVmlld1R5cGUuVmlldyk7XHJcblxyXG4gICAgICBpZiAodmlld1RpbGVzICE9IG51bGwpIHtcclxuICAgICAgICB2aWV3VGlsZXMuZm9yRWFjaCgod2FwcGluZ1NlcnZpY2VUaWxlOiBXYXBwaW5nU2VydmljZUl0ZW1WaWV3KSA9PiB7XHJcbiAgICAgICAgICBpZiAod2FwcGluZ1NlcnZpY2VUaWxlLnBvc2l0aW9uID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMSA9IHdhcHBpbmdTZXJ2aWNlVGlsZS52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMUxhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnNob3dUaWxlMUxhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLnNob3dMYWJlbDtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMUJhY2tncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEJhY2tncm91bmRDb2xvcjtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlMUZvcmVncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEZvcmVncm91bmRDb2xvcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh3YXBwaW5nU2VydmljZVRpbGUucG9zaXRpb24gPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyID0gd2FwcGluZ1NlcnZpY2VUaWxlLnZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyTGFiZWwgPSB3YXBwaW5nU2VydmljZVRpbGUubGFiZWw7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2Uuc2hvd1RpbGUyTGFiZWwgPSB3YXBwaW5nU2VydmljZVRpbGUuc2hvd0xhYmVsO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyQmFja2dyb3VuZENvbG9yID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsQmFja2dyb3VuZENvbG9yO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGUyRm9yZWdyb3VuZENvbG9yID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsRm9yZWdyb3VuZENvbG9yO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHdhcHBpbmdTZXJ2aWNlVGlsZS5wb3NpdGlvbiA9PSAzKSB7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTMgPSB3YXBwaW5nU2VydmljZVRpbGUudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTNMYWJlbCA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbDtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS5zaG93VGlsZTNMYWJlbCA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5zaG93TGFiZWw7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTNCYWNrZ3JvdW5kQ29sb3IgPSB3YXBwaW5nU2VydmljZVRpbGUubGFiZWxCYWNrZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICAgIHRoaXMud2FwcGluZ1NlcnZpY2UudGlsZTNGb3JlZ3JvdW5kQ29sb3IgPSB3YXBwaW5nU2VydmljZVRpbGUubGFiZWxGb3JlZ3JvdW5kQ29sb3I7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAod2FwcGluZ1NlcnZpY2VUaWxlLnBvc2l0aW9uID09IDQpIHtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNCA9IHdhcHBpbmdTZXJ2aWNlVGlsZS52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNExhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLmxhYmVsO1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnNob3dUaWxlNExhYmVsID0gd2FwcGluZ1NlcnZpY2VUaWxlLnNob3dMYWJlbDtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNEJhY2tncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEJhY2tncm91bmRDb2xvcjtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlNEZvcmVncm91bmRDb2xvciA9IHdhcHBpbmdTZXJ2aWNlVGlsZS5sYWJlbEZvcmVncm91bmRDb2xvcjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgZGV0YWlsVGlsZXM6IFdhcHBpbmdTZXJ2aWNlSXRlbVZpZXdbXSA9IHRoaXMud2FwcGluZ1NlcnZpY2Uud2FwcGluZ1NlcnZpY2VUaWxlcy5maWx0ZXIodyA9PiB3LmFwcFZpZXdUeXBlID09IFdhcHBpbmdTZXJ2aWNlQXBwVmlld1R5cGUuVmlld0RldGFpbCk7XHJcbiAgICAgIGlmIChkZXRhaWxUaWxlcyAhPSBudWxsKSB7XHJcbiAgICAgICAgZGV0YWlsVGlsZXMuZm9yRWFjaCgod2FwcGluZ1NlcnZpY2VUaWxlOiBXYXBwaW5nU2VydmljZUl0ZW1WaWV3KSA9PiB7XHJcbiAgICAgICAgICBpZiAod2FwcGluZ1NlcnZpY2VUaWxlLnBvc2l0aW9uID09IDEpIHtcclxuICAgICAgICAgICAgdGhpcy53YXBwaW5nU2VydmljZS50aWxlRGV0YWlsMSA9IHdhcHBpbmdTZXJ2aWNlVGlsZS52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmICh3YXBwaW5nU2VydmljZVRpbGUucG9zaXRpb24gPT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGVEZXRhaWwyID0gd2FwcGluZ1NlcnZpY2VUaWxlLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRXYXBwaW5nU2VydmljZUltYWdlcygpIHtcclxuICAgIHRoaXMud2FwcGluZ1NlcnZpY2VJbWFnZXMgPSB0aGlzLndhcHBpbmdTZXJ2aWNlLndhcHBpbmdTZXJ2aWNlSW1hZ2VzO1xyXG5cclxuICAgIGlmICh0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIGxldCB3YXBwaW5nU2VydmljZUltYWdlOiBXYXBwaW5nU2VydmljZUltYWdlID0ge1xyXG4gICAgICAgIHBhdGg6IHRoaXMud2FwcGluZ1NlcnZpY2UuaW1hZ2VVcmwhLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLndhcHBpbmdTZXJ2aWNlSW1hZ2VzLnVuc2hpZnQod2FwcGluZ1NlcnZpY2VJbWFnZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RXYXBwaW5nU2VydmljZSgpIHtcclxuICAgIHRoaXMuZGlzYWJsZWRUb2dnbGUgPSB0cnVlO1xyXG4gICAgdGhpcy53YXBwaW5nU2VydmljZVNlbGVjdGVkLmVtaXQodGhpcy53YXBwaW5nU2VydmljZS5hY3RpdmUpO1xyXG4gICAgaWYgKHRoaXMud2FwcGluZ1NlcnZpY2UuYWN0aXZlKVxyXG4gICAgICB0aGlzLnNlcnZpY2VTdGF0dXMgPSB0aGlzLndhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5hY3RpdmVkU2VydmljZS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZWxzZVxyXG4gICAgICB0aGlzLnNlcnZpY2VTdGF0dXMgPSB0aGlzLndhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucy5kaXNhYmxlZFNlcnZpY2UudG9VcHBlckNhc2UoKTtcclxuXHJcbiAgICB0aGlzLmRpc2FibGVkVG9nZ2xlID0gZmFsc2VcclxuICAgIHRoaXMuaW5pdFdhcHBpbmdTZXJ2aWNlKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuTW9kYWxTaG93TW9yZURlc2NyaXB0aW9uKCkge1xyXG4gICAgY29uc3QgZGlhbG9nQ29uZmlnID0gbmV3IE1hdERpYWxvZ0NvbmZpZygpO1xyXG4gICAgZGlhbG9nQ29uZmlnLmRhdGEgPSB7XHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLndhcHBpbmdTZXJ2aWNlLnRpbGU0LFxyXG4gICAgICB0aXRsZTogdGhpcy53YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMudGl0bGVcclxuICAgIH07XHJcblxyXG4gICAgbGV0IG1vZGFsU2l6ZTogTW9kYWxTaXplID0ge1xyXG4gICAgICB3aWR0aDogXCI4NTBweFwiLFxyXG4gICAgICBoZWlnaHQ6IFwiNjAlXCJcclxuICAgIH07XHJcbiAgICB0aGlzLm1hdGVyaWFsTW9kYWwub3BlbihXYXBwU2VydmljZURlc2NyaXB0aW9uQ29tcG9uZW50LCBtb2RhbFNpemUsIGRpYWxvZ0NvbmZpZyk7XHJcbiAgfVxyXG5cclxuICBwcmVzc0J1dHRvblNlcnZpY2UoKXtcclxuICAgIHRoaXMudHJpZ2dlckJ1dHRvblNlcnZpY2UuZW1pdCgpXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaXNPdmVyZmxvd24oKSB7XHJcbiAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwic2VydmljZURlc2NyaXB0aW9uXCIpO1xyXG5cclxuICAgIHJldHVybiBlbGVtZW50ICE9IG51bGwgPyBlbGVtZW50LnNjcm9sbEhlaWdodCA+IGVsZW1lbnQuY2xpZW50SGVpZ2h0IHx8IGVsZW1lbnQuc2Nyb2xsV2lkdGggPiBlbGVtZW50LmNsaWVudFdpZHRoIDogZmFsc2U7XHJcbiAgfVxyXG59XHJcbiIsIjx3YXBwLW1haW4tdGl0bGUgdGl0bGU9XCJ7e3dhcHBpbmdTZXJ2aWNlLnRpbGUzfX1cIiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlXCIgZnhIaWRlLnhzPjwvd2FwcC1tYWluLXRpdGxlPlxyXG48ZGl2IGNsYXNzPVwicGFydGljaXBhdGlvbi1kZXRhaWwtY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeEhpZGUueHMgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiAqbmdJZj1cImlzRHJhdyAmJiBoYXNQYXJ0aWNpcGF0aW9uc1wiPlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicGFydGljaXBhdGlvbi1kZXRhaWwtZGVza3RvcC1iYXJcIiBmeEZsZXg9XCIxMDBcIiB4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cclxuICAgIDxzcGFuIGNsYXNzPVwicGFydGljaXBhdGlvbi1kZXRhaWwtbGFiZWxcIj57eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnM/LnlvdXJOdW1iZXJzIH19PC9zcGFuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJwYXJ0aWNpcGF0aW9uLWRldGFpbC12YWx1ZVwiPlxyXG4gICAgICAgIHt7IGxvdHRlcnlFdmVudD8ubG90dGVyeUV2ZW50TmV4dERyYXc/LnNreVdhcHBDYXJkVHJhbnNhY3Rpb25JZHM/LmpvaW4oJywgJykgfX1cclxuICAgIDwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwicGFydGljaXBhdGlvbi1kZXRhaWwtZGF0ZS1sYWJlbFwiPnt7IHdhcHBpbmdTZXJ2aWNlc1RyYW5zbGF0aW9ucz8ud2lubmVyRGF0ZSB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwicGFydGljaXBhdGlvbi1kZXRhaWwtZGF0ZVwiPnt7IGxvdHRlcnlFdmVudD8ubG90dGVyeUV2ZW50TmV4dERyYXc/LmRyYXdEYXRlICsgJ1onIHwgZGF0ZTonZGQvTU0veXl5eSBISDptbScgfX08L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInNlcnZpY2UtZGV0YWlsLWNlbnRlclwiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2VcIlxyXG4gICAgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dC54cz1cImNvbHVtblwiIGZ4TGF5b3V0LnNtPVwiY29sdW1uXCI+XHJcbiAgICA8IS0tc2VydmljZSBpbWFnZS0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInNlcnZpY2Utdmlld1wiIGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPCEtLXRpbGUgMS0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWltYWdlLXRpdGxlXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aWxlMVwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIndhcHBpbmdTZXJ2aWNlLnRpbGUxQmFja2dyb3VuZENvbG9yXCJcclxuICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cIndhcHBpbmdTZXJ2aWNlLnRpbGUxRm9yZWdyb3VuZENvbG9yXCJcclxuICAgICAgICAgICAgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjVweFwiPlxyXG4gICAgICAgIDxkaXY+e3t3YXBwaW5nU2VydmljZS50aWxlMX19PC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnNob3dUaWxlMUxhYmVsXCI+e3t3YXBwaW5nU2VydmljZS50aWxlMUxhYmVsfX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tc2xpZGVzaG93LS0+XHJcbiAgICAgICAgPHdhcHAtY2Fyb3VzZWwgW2ltYWdlc109XCJ3YXBwaW5nU2VydmljZUltYWdlc1wiPjwvd2FwcC1jYXJvdXNlbD5cclxuICAgICAgICA8IS0tdGlsZSAyLS0+XHJcbiAgICAgICAgPGRpdiBmeEZsZXggZnhMYXlvdXQ9XCJyb3dcIlxyXG4gICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXHJcbiAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiNXB4XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJzZXJ2aWNlLXRpbGVcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlcnZpY2UtdGlsZS1ib3JkZXItYm90dG9tLXJhZGl1cyc6ICF3YXBwaW5nU2VydmljZS50aWxlNH1cIlxyXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJ3YXBwaW5nU2VydmljZS50aWxlMkJhY2tncm91bmRDb2xvclwiXHJcbiAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJ3YXBwaW5nU2VydmljZS50aWxlMkZvcmVncm91bmRDb2xvclwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGlsZTJcIj5cclxuICAgICAgICA8ZGl2Pnt7d2FwcGluZ1NlcnZpY2UudGlsZTJ9fTwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS5zaG93VGlsZTJMYWJlbFwiPnt7d2FwcGluZ1NlcnZpY2UudGlsZTJMYWJlbH19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyLXN0YXR1cy1jb250YWluZXIgc2VuZExhYmVsLWNvbnRhaW5lclwiICpuZ0lmPVwiaXNTZW5kR2lmdENhcmQgJiYgKHdhcHBpbmdTZXJ2aWNlPy5kYXRhUmVxVG9TZW5kQ2FyZCEuZW51bVNlbmRpbmdTdGF0dXNJZCA9PSBlbnVtU2VuZGluZ1N0YXR1cy5TY2hlZHVsZWRUb1NlbmQpICYmIHdhcHBpbmdTZXJ2aWNlPy5lbnVtVHlwZVN0YXR1c0VDYXJkSUQgPT0gZWNhcmRTdGF0dXMuc2VudCEgXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjVweFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZW5kTGFiZWxcIiAgPlxyXG4gICAgICAgICAgICB7eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuc2NoZWR1bGVkTGFiZWwgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXItc3RhdHVzLWNvbnRhaW5lciBzZW5kTGFiZWwtY29udGFpbmVyXCIgKm5nSWY9XCJpc1NlbmRHaWZ0Q2FyZCAmJiAod2FwcGluZ1NlcnZpY2U/LmRhdGFSZXFUb1NlbmRDYXJkIS5lbnVtU2VuZGluZ1N0YXR1c0lkID09IGVudW1TZW5kaW5nU3RhdHVzLlNlbnQgfHwgd2FwcGluZ1NlcnZpY2U/LmRhdGFSZXFUb1NlbmRDYXJkIS5lbnVtU2VuZGluZ1N0YXR1c0lkID09IGVudW1TZW5kaW5nU3RhdHVzLlBlbmRpbmdSZWdpc3RyYXRpb24pICYmIHdhcHBpbmdTZXJ2aWNlPy5lbnVtVHlwZVN0YXR1c0VDYXJkSUQgPT0gZWNhcmRTdGF0dXMuc2VudFwiIGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCI1cHhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VuZExhYmVsXCIgPlxyXG4gICAgICAgICAgICB7eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuc2VuZExhYmVsIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyLXN0YXR1cy1jb250YWluZXIgc2VuZExhYmVsLWNvbnRhaW5lclwiICpuZ0lmPVwiaXNTZW5kR2lmdENhcmQgJiYgd2FwcGluZ1NlcnZpY2U/LmRhdGFSZXFUb1NlbmRDYXJkIS5lbnVtU2VuZGluZ1N0YXR1c0lkID09IGVudW1TZW5kaW5nU3RhdHVzLlNlbnQgJiYgd2FwcGluZ1NlcnZpY2U/LmVudW1UeXBlU3RhdHVzRUNhcmRJRCA9PSBlY2FyZFN0YXR1cy5hY3RpdmF0ZWRcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiNXB4XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbmRMYWJlbFwiID5cclxuICAgICAgICAgICAge3sgd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zLnJlY2VpdmVkTGFiZWwgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tYWN0aXZhdGUgdG9nZ2xlLS0+XHJcbiAgICAgICAgPG1hdC1zbGlkZS10b2dnbGUgY2xhc3M9XCJzZXJ2aWNlLXNlbGVjdC10b2dnbGVcIiBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UuYWxsb3dTZWxlY3QgJiYgYWxsb3dTZWxlY3RTZW5kR2lmdENhcmQgJiYgIXNob3dCdXR0b25TZXJ2aWNlICYmIHNob3dUb2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRUb2dnbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIndhcHBpbmdTZXJ2aWNlLmFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwic2VsZWN0V2FwcGluZ1NlcnZpY2UoKVwiPnt7IHNlcnZpY2VTdGF0dXMgfX08L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gKm5nSWY9XCJzaG93QnV0dG9uU2VydmljZVwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cImFjY2VudFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInNlcnZpY2Utdmlldy1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgZnhGbGV4PVwiMTAwXCIgZnhIaWRlIGZ4U2hvdy54c1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQnV0dG9uU2VydmljZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJlc3NCdXR0b25TZXJ2aWNlKClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2Utdmlldy1wYXJ0aWNpcGF0ZVwiICpuZ0lmPVwiaXNEcmF3XCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXZpZXctcGFydGljaXBhdGlvbi1pY29uXCIgKm5nSWY9XCJmaXJzdFBhcnRpY2lwYXRpb25cIiBzdmdJY29uPVwicGFydGljaXBhdGVcIj48L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VydmljZS12aWV3LXBhcnRpY2lwYXRpb24taWNvblwiICpuZ0lmPVwiIWZpcnN0UGFydGljaXBhdGlvblwiIHN2Z0ljb249XCJwYXJ0aWNpcGF0ZS1hZ2FpblwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNlcnZpY2Utdmlldy1idXR0b24tbGFiZWxcIj57eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnM/LmJ1dHRvblNlcnZpY2UgfX08L3NwYW4+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYXRpb24tZGV0YWlsLWNvbnRhaW5lci1tb2JpbGVcIiBmeEhpZGUgZnhTaG93LnhzICpuZ0lmPVwiaXNEcmF3ICYmIGhhc1BhcnRpY2lwYXRpb25zXCI+XHJcbiAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYXJ0aWNpcGF0aW9uLWRldGFpbC1tb2JpbGUtY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBhcnRpY2lwYXRpb24tZGF0ZS1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsLWxpZ2h0XCI+RWwgZ2FuYWRvciBzZSBkZWNpZGlyw6EgZWwgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZS1ib2xkXCI+e3sgbG90dGVyeUV2ZW50Py5sb3R0ZXJ5RXZlbnROZXh0RHJhdz8uZHJhd0RhdGUgfCBkYXRlOidkZC9NTS95eXl5JyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvdHRvbS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlcnMtc2VjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm51bWJlcnMtdGl0bGVcIj5UdXMgbsO6bWVyb3M8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJudW1iZXJzLWxpc3QtdmVydGljYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJudW1iZXItaXRlbVwiICpuZ0Zvcj1cImxldCBpZCBvZiBsb3R0ZXJ5RXZlbnQ/LmxvdHRlcnlFdmVudE5leHREcmF3Py5za3lXYXBwQ2FyZFRyYW5zYWN0aW9uSWRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaWQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaWNvbi1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm51bWJlclwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tc2VydmljZSBpbmZvLS0+XHJcbiAgICA8ZGl2ICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGlsZTMgfHwgd2FwcGluZ1NlcnZpY2UudGlsZTRcIiBjbGFzcz1cInNlcnZpY2UtaW5mby1jb250YWluZXJcIiBmeExheW91dD1cImNvbHVtblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWRlc2NyaXB0aW9uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDwhLS10aWxlIDMtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGlsZTNcIiBjbGFzcz1cInNlcnZpY2UtbmFtZSBtYXQtdGl0bGVcIiBmeEhpZGUgZnhTaG93LnhzPlxyXG4gICAgICAgICAgICB7e3dhcHBpbmdTZXJ2aWNlLnRpbGUzfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tdGlsZSA0LS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnRpbGU0ICYmIHdhcHBpbmdTZXJ2aWNlLmVudW1UeXBlU3RhdHVzRUNhcmRJRCAhPSBlY2FyZFN0YXR1cy5nZW5lcmF0ZWRcIiBjbGFzcz1cInNlcnZpY2UtZGVzY3JpcHRpb25cIiBpZD1cInNlcnZpY2VEZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICB7e3dhcHBpbmdTZXJ2aWNlLnRpbGU0fX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1kZXNjcmlwdGlvblwiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UuZW51bVR5cGVTdGF0dXNFQ2FyZElEID09IGVjYXJkU3RhdHVzLmdlbmVyYXRlZFwiPlxyXG4gICAgICAgICAgICB7eyB3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuY2FyZEdlbmVyYXRlZCB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS1zaG93IG1vcmUtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNPdmVyZmxvd24oKVwiIGNsYXNzPVwic2VydmljZS1zaG93LW1vcmUtY29udGFpbmVyXCIgKGNsaWNrKT1cIm9wZW5Nb2RhbFNob3dNb3JlRGVzY3JpcHRpb24oKTtcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3t3YXBwaW5nU2VydmljZXNUcmFuc2xhdGlvbnMuc2hvd01vcmUgfX08L3NwYW4+PG1hdC1pY29uIGNsYXNzPVwic2VydmljZS1zaG93LW1vcmUtdmVjdG9yXCIgc3ZnSWNvbj1cInZlY3Rvcl9yaWdodFwiPjwvbWF0LWljb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtdGlsZS1kZXRhaWwtY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJjb2x1bW5cIj5cclxuICAgICAgICA8IS0tdGlsZURldGFpbCAxLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtdGlsZS1kZXRhaWxcIiAqbmdJZj1cIndhcHBpbmdTZXJ2aWNlLnRpbGVEZXRhaWwxXCIgZnhMYXlvdXQ9XCJyb3dcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VydmljZS10aWxlLWRldGFpbC1pY29uXCIgc3ZnSWNvbj1cImNhbGVuZGFyXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPHNwYW4+e3t3YXBwaW5nU2VydmljZS50aWxlRGV0YWlsMX19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwhLS10aWxlRGV0YWlsIDItLT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aWxlLWRldGFpbFwiICpuZ0lmPVwid2FwcGluZ1NlcnZpY2UudGlsZURldGFpbDJcIiBmeExheW91dD1cInJvd1wiPlxyXG4gICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXRpbGUtZGV0YWlsLWljb25cIiBzdmdJY29uPVwidGlja2V0c1wiPjwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7d2FwcGluZ1NlcnZpY2UudGlsZURldGFpbDJ9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS12aWV3LWNvbnRhaW5lci1idXR0b25cIiBmeEhpZGUueHMgKm5nSWY9XCJzaG93QnV0dG9uU2VydmljZVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VydmljZS12aWV3LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ1dHRvblNlcnZpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmVzc0J1dHRvblNlcnZpY2UoKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2Utdmlldy1wYXJ0aWNpcGF0ZVwiICpuZ0lmPVwiaXNEcmF3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwic2VydmljZS12aWV3LXBhcnRpY2lwYXRpb24taWNvblwiICpuZ0lmPVwiZmlyc3RQYXJ0aWNpcGF0aW9uXCIgc3ZnSWNvbj1cInBhcnRpY2lwYXRlXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZXJ2aWNlLXZpZXctcGFydGljaXBhdGlvbi1pY29uXCIgKm5nSWY9XCIhZmlyc3RQYXJ0aWNpcGF0aW9uXCIgc3ZnSWNvbj1cInBhcnRpY2lwYXRlLWFnYWluXCI+PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZXJ2aWNlLXZpZXctYnV0dG9uLWxhYmVsXCI+e3sgd2FwcGluZ1NlcnZpY2VzVHJhbnNsYXRpb25zPy5idXR0b25TZXJ2aWNlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8IS0tbGluay0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWxpbmstY29udGFpbmVyXCIgKm5nSWY9XCJ3YXBwaW5nU2VydmljZS50aXRsZUxpbmtVcmwgJiYgd2FwcGluZ1NlcnZpY2UubGlua1VybFwiPlxyXG4gICAgICAgIDxhIGNsYXNzPVwic2VydmljZS1saW5rXCIgaHJlZj1cInt7d2FwcGluZ1NlcnZpY2UubGlua1VybH19XCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInNlcnZpY2UtbGluay1pY29uXCIgc3ZnSWNvbj1cInNoYXJlX3NxdWFyZVwiPjwvbWF0LWljb24+PHNwYW4+e3t3YXBwaW5nU2VydmljZS50aXRsZUxpbmtVcmx9fTwvc3Bhbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19