simpo-component-library 3.6.526 → 3.6.527
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.
- package/esm2022/lib/directive/button-editor.directive.mjs +4 -4
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +10 -3
- package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +6 -3
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +2 -1
- package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +2 -2
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +7 -3
- package/esm2022/lib/sections/header-section/header-section.component.mjs +4 -4
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +62 -5
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
- package/fesm2022/simpo-component-library.mjs +88 -19
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/store-list/store-list.component.d.ts +2 -1
- package/lib/ecommerce/sections/store-page/store-page.component.d.ts +2 -0
- package/lib/sections/image-grid-section/image-grid-section.component.d.ts +14 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.527.tgz +0 -0
- package/simpo-component-library-3.6.526.tgz +0 -0
@@ -85,8 +85,11 @@ export class StorePageComponent extends BaseSection {
|
|
85
85
|
dialNumber(phone) {
|
86
86
|
window.location.href = `tel:${phone}`;
|
87
87
|
}
|
88
|
+
get stylesLayout() {
|
89
|
+
return { ...this.styles?.layout };
|
90
|
+
}
|
88
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorePageComponent, deps: [{ token: i1.RestService }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
89
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StorePageComponent, isStandalone: true, selector: "simpo-store-page", inputs: { data: "data", edit: "edit", customClass: "customClass", delete: "delete", index: "index" }, usesInheritance: true, ngImport: i0, template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoBackground]=\"styles?.background\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"styles?.layout\">\r\n <div class=\"w-100 row store-details\" *ngIf=\"!loading\">\r\n <div class=\"col-4 store-img\">\r\n <img [src]=\"storeData?.storeImageUrls[0]\" alt=\"Image\" class=\"w-100 h-100\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\">\r\n </div>\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3 store-container\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <h4 class=\"store-name mb-2\">{{storeData?.storeName}}\r\n </h4>\r\n <p class=\"store-address mb-2 f-14\">{{storeData?.addressDetails?.addressLine}} ,\r\n {{storeData?.addressDetails?.city}} , {{storeData?.addressDetails?.state}} ,\r\n {{storeData?.addressDetails?.pincode}}</p>\r\n <a [href]=\"storeData?.addressDetails?.mapUrl\" class=\"view-directions\" target=\"_blank\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">VIEW\r\n DIRECTIONS</a>\r\n </div>\r\n <div class=\"d-flex gap-2\">\r\n <button class=\"btn btn-success rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\" width: 30px !important;height: 33px; background-color: #25d366 !important; border-color: #25d366 !important;\"\r\n (click)=\"openWhatsapp(storeData?.storeContactDetails?.mobile)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"height: 20px;\">\r\n <path fill=\"#ffffff\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg> </button>\r\n <button class=\"btn btn-light rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\"width: 30px !important; height: 33px;\" (click)=\"dialNumber(storeData?.storeContactDetails?.mobile)\">\r\n <mat-icon> phone</mat-icon>\r\n <!-- <button class=\"btn book-visit-btn\">BOOK A VISIT</button> -->\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 px-2\">\r\n <h5 class=\"mb-3\">Facilities</h5>\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <div class=\"d-flex align-items-center gap- facility-text\">\r\n <mat-icon\r\n class=\"f-18 d-flex align-items-center justify-content-center\">access_time</mat-icon>\r\n <span> {{getTime(storeData?.storeHours)}}\r\n </span>\r\n </div>\r\n <div class=\"facility-text align-content-center\"\r\n *ngFor=\"let ele of storeData?.facilities; let i = index\">{{ele | titlecase}}</div>\r\n </div>\r\n </div>\r\n <div class=\"px-2 mb-2\">\r\n <h5 class=\"mb-3\">Walk-In Services</h5>\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let ele of storeData?.services; let i = index\">\r\n <div class=\"service-card old-gold h-100 py-2\" *ngIf=\"ele?.isAvailable\">\r\n <p class=\"mb-2 f-14\">{{(removeUnderScore(ele?.serviceType) | titlecase)}}</p>\r\n <p class=\"mb-0 f-13\">{{ele?.description}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-100 row store-details\" *ngIf=\"loading\">\r\n <!-- Image skeleton -->\r\n <div class=\"col-4 store-img\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '8px',\r\n 'height': '100%',\r\n 'width': '100%'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Details skeleton -->\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <!-- Store info skeleton -->\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <!-- Store name -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '60%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Address lines -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- View directions link -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '40%',\r\n 'margin-top': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Action buttons skeleton -->\r\n <div class=\"d-flex gap-2\">\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '33px',\r\n 'width': '30px',\r\n 'margin-right': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Facilities section skeleton -->\r\n <div class=\"mb-3 px-2\">\r\n <!-- Facilities title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '25%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Facilities items -->\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <ngx-skeleton-loader count=\"4\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '120px',\r\n 'margin-right': '12px',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Walk-in services section skeleton -->\r\n <div class=\"px-2 mb-2\">\r\n <!-- Services title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '30%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service cards -->\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let item of [1,2,3,4]\">\r\n <div class=\"h-100 py-2\">\r\n <!-- Service type -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service description -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '14px',\r\n 'width': '100%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n\r\n </div>\r\n</div>", styles: [".hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-hidden{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.store-container{background:#fff;color:#000;border-radius:12px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.service-card{border-radius:12px;background:#fff;padding:10px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.view-directions{font-weight:600;font-size:12px;cursor:pointer}.cursor-pointer{cursor:pointer}.f-18{font-size:18px}.f-13{font-size:13px}.f-14{font-size:14px}.facility-text{background:#fff;color:#000;border-radius:12px;padding:4px 12px;font-size:13px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}@media (max-width:475px){.store-details{flex-direction:column}.store-img{width:100%!important;max-height:250px!important}.details-container{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i6.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "ngmodule", type: NgxSkeletonLoaderModule }] }); }
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StorePageComponent, isStandalone: true, selector: "simpo-store-page", inputs: { data: "data", edit: "edit", customClass: "customClass", delete: "delete", index: "index" }, usesInheritance: true, ngImport: i0, template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoBackground]=\"styles?.background\" [simpoLayout]=\"stylesLayout\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"w-100 row store-details\" *ngIf=\"!loading\">\r\n <div class=\"col-4 store-img\">\r\n <img [src]=\"storeData?.storeImageUrls[0]\" alt=\"Image\" class=\"w-100 h-100\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\">\r\n </div>\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3 store-container\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <h4 class=\"store-name mb-2\">{{storeData?.storeName}}\r\n </h4>\r\n <p class=\"store-address mb-2 f-14\">{{storeData?.addressDetails?.addressLine}} ,\r\n {{storeData?.addressDetails?.city}} , {{storeData?.addressDetails?.state}} ,\r\n {{storeData?.addressDetails?.pincode}}</p>\r\n <a [href]=\"storeData?.addressDetails?.mapUrl\" class=\"view-directions\" target=\"_blank\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">VIEW\r\n DIRECTIONS</a>\r\n </div>\r\n <div class=\"d-flex gap-2\">\r\n <button class=\"btn btn-success rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\" width: 30px !important;height: 33px; background-color: #25d366 !important; border-color: #25d366 !important;\"\r\n (click)=\"openWhatsapp(storeData?.storeContactDetails?.mobile)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"height: 20px;\">\r\n <path fill=\"#ffffff\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg> </button>\r\n <button class=\"btn btn-light rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\"width: 30px !important; height: 33px;\" (click)=\"dialNumber(storeData?.storeContactDetails?.mobile)\">\r\n <mat-icon> phone</mat-icon>\r\n <!-- <button class=\"btn book-visit-btn\">BOOK A VISIT</button> -->\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 px-2\">\r\n <h5 class=\"mb-3\">Facilities</h5>\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <div class=\"d-flex align-items-center gap- facility-text\">\r\n <mat-icon\r\n class=\"f-18 d-flex align-items-center justify-content-center\">access_time</mat-icon>\r\n <span> {{getTime(storeData?.storeHours)}}\r\n </span>\r\n </div>\r\n <div class=\"facility-text align-content-center\"\r\n *ngFor=\"let ele of storeData?.facilities; let i = index\">{{ele | titlecase}}</div>\r\n </div>\r\n </div>\r\n <div class=\"px-2 mb-2\">\r\n <h5 class=\"mb-3\">Walk-In Services</h5>\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let ele of storeData?.services; let i = index\">\r\n <div class=\"service-card old-gold h-100 py-2\" *ngIf=\"ele?.isAvailable\">\r\n <p class=\"mb-2 f-14\">{{(removeUnderScore(ele?.serviceType) | titlecase)}}</p>\r\n <p class=\"mb-0 f-13\">{{ele?.description}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-100 row store-details\" *ngIf=\"loading\">\r\n <!-- Image skeleton -->\r\n <div class=\"col-4 store-img\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '8px',\r\n 'height': '100%',\r\n 'width': '100%'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Details skeleton -->\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <!-- Store info skeleton -->\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <!-- Store name -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '60%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Address lines -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- View directions link -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '40%',\r\n 'margin-top': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Action buttons skeleton -->\r\n <div class=\"d-flex gap-2\">\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '33px',\r\n 'width': '30px',\r\n 'margin-right': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Facilities section skeleton -->\r\n <div class=\"mb-3 px-2\">\r\n <!-- Facilities title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '25%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Facilities items -->\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <ngx-skeleton-loader count=\"4\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '120px',\r\n 'margin-right': '12px',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Walk-in services section skeleton -->\r\n <div class=\"px-2 mb-2\">\r\n <!-- Services title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '30%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service cards -->\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let item of [1,2,3,4]\">\r\n <div class=\"h-100 py-2\">\r\n <!-- Service type -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service description -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '14px',\r\n 'width': '100%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n\r\n </div>\r\n</div>", styles: [".hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-hidden{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.store-container{background:#fff;color:#000;border-radius:12px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.service-card{border-radius:12px;background:#fff;padding:10px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.view-directions{font-weight:600;font-size:12px;cursor:pointer}.cursor-pointer{cursor:pointer}.f-18{font-size:18px}.f-13{font-size:13px}.f-14{font-size:14px}.facility-text{background:#fff;color:#000;border-radius:12px;padding:4px 12px;font-size:13px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}@media (max-width:475px){.store-details{flex-direction:column}.store-img{width:100%!important;max-height:250px!important}.details-container{width:100%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i4.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i5.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i6.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "ngmodule", type: NgxSkeletonLoaderModule }] }); }
|
90
93
|
}
|
91
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StorePageComponent, decorators: [{
|
92
95
|
type: Component,
|
@@ -105,7 +108,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
105
108
|
SpacingHorizontalDirective,
|
106
109
|
MatIcon,
|
107
110
|
NgxSkeletonLoaderModule
|
108
|
-
], template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoBackground]=\"styles?.background\" [simpoLayout]=\"styles?.layout\" [spacingHorizontal]=\"styles?.layout\">\r\n <div class=\"w-100 row store-details\" *ngIf=\"!loading\">\r\n <div class=\"col-4 store-img\">\r\n <img [src]=\"storeData?.storeImageUrls[0]\" alt=\"Image\" class=\"w-100 h-100\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\">\r\n </div>\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3 store-container\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <h4 class=\"store-name mb-2\">{{storeData?.storeName}}\r\n </h4>\r\n <p class=\"store-address mb-2 f-14\">{{storeData?.addressDetails?.addressLine}} ,\r\n {{storeData?.addressDetails?.city}} , {{storeData?.addressDetails?.state}} ,\r\n {{storeData?.addressDetails?.pincode}}</p>\r\n <a [href]=\"storeData?.addressDetails?.mapUrl\" class=\"view-directions\" target=\"_blank\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">VIEW\r\n DIRECTIONS</a>\r\n </div>\r\n <div class=\"d-flex gap-2\">\r\n <button class=\"btn btn-success rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\" width: 30px !important;height: 33px; background-color: #25d366 !important; border-color: #25d366 !important;\"\r\n (click)=\"openWhatsapp(storeData?.storeContactDetails?.mobile)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"height: 20px;\">\r\n <path fill=\"#ffffff\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg> </button>\r\n <button class=\"btn btn-light rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\"width: 30px !important; height: 33px;\" (click)=\"dialNumber(storeData?.storeContactDetails?.mobile)\">\r\n <mat-icon> phone</mat-icon>\r\n <!-- <button class=\"btn book-visit-btn\">BOOK A VISIT</button> -->\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 px-2\">\r\n <h5 class=\"mb-3\">Facilities</h5>\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <div class=\"d-flex align-items-center gap- facility-text\">\r\n <mat-icon\r\n class=\"f-18 d-flex align-items-center justify-content-center\">access_time</mat-icon>\r\n <span> {{getTime(storeData?.storeHours)}}\r\n </span>\r\n </div>\r\n <div class=\"facility-text align-content-center\"\r\n *ngFor=\"let ele of storeData?.facilities; let i = index\">{{ele | titlecase}}</div>\r\n </div>\r\n </div>\r\n <div class=\"px-2 mb-2\">\r\n <h5 class=\"mb-3\">Walk-In Services</h5>\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let ele of storeData?.services; let i = index\">\r\n <div class=\"service-card old-gold h-100 py-2\" *ngIf=\"ele?.isAvailable\">\r\n <p class=\"mb-2 f-14\">{{(removeUnderScore(ele?.serviceType) | titlecase)}}</p>\r\n <p class=\"mb-0 f-13\">{{ele?.description}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-100 row store-details\" *ngIf=\"loading\">\r\n <!-- Image skeleton -->\r\n <div class=\"col-4 store-img\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '8px',\r\n 'height': '100%',\r\n 'width': '100%'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Details skeleton -->\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <!-- Store info skeleton -->\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <!-- Store name -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '60%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Address lines -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- View directions link -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '40%',\r\n 'margin-top': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Action buttons skeleton -->\r\n <div class=\"d-flex gap-2\">\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '33px',\r\n 'width': '30px',\r\n 'margin-right': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Facilities section skeleton -->\r\n <div class=\"mb-3 px-2\">\r\n <!-- Facilities title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '25%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Facilities items -->\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <ngx-skeleton-loader count=\"4\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '120px',\r\n 'margin-right': '12px',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Walk-in services section skeleton -->\r\n <div class=\"px-2 mb-2\">\r\n <!-- Services title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '30%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service cards -->\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let item of [1,2,3,4]\">\r\n <div class=\"h-100 py-2\">\r\n <!-- Service type -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service description -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '14px',\r\n 'width': '100%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n\r\n </div>\r\n</div>", styles: [".hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-hidden{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.store-container{background:#fff;color:#000;border-radius:12px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.service-card{border-radius:12px;background:#fff;padding:10px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.view-directions{font-weight:600;font-size:12px;cursor:pointer}.cursor-pointer{cursor:pointer}.f-18{font-size:18px}.f-13{font-size:13px}.f-14{font-size:14px}.facility-text{background:#fff;color:#000;border-radius:12px;padding:4px 12px;font-size:13px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}@media (max-width:475px){.store-details{flex-direction:column}.store-img{width:100%!important;max-height:250px!important}.details-container{width:100%}}\n"] }]
|
111
|
+
], template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [id]=\"data?.id\" [simpoAnimation]=\"styles?.animation\"\r\n [simpoBackground]=\"styles?.background\" [simpoLayout]=\"stylesLayout\" [spacingHorizontal]=\"stylesLayout\">\r\n <div class=\"w-100 row store-details\" *ngIf=\"!loading\">\r\n <div class=\"col-4 store-img\">\r\n <img [src]=\"storeData?.storeImageUrls[0]\" alt=\"Image\" class=\"w-100 h-100\" [simpoCorner]=\"styles?.corners\"\r\n [id]=\"data?.id\">\r\n </div>\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3 store-container\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <h4 class=\"store-name mb-2\">{{storeData?.storeName}}\r\n </h4>\r\n <p class=\"store-address mb-2 f-14\">{{storeData?.addressDetails?.addressLine}} ,\r\n {{storeData?.addressDetails?.city}} , {{storeData?.addressDetails?.state}} ,\r\n {{storeData?.addressDetails?.pincode}}</p>\r\n <a [href]=\"storeData?.addressDetails?.mapUrl\" class=\"view-directions\" target=\"_blank\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">VIEW\r\n DIRECTIONS</a>\r\n </div>\r\n <div class=\"d-flex gap-2\">\r\n <button class=\"btn btn-success rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\" width: 30px !important;height: 33px; background-color: #25d366 !important; border-color: #25d366 !important;\"\r\n (click)=\"openWhatsapp(storeData?.storeContactDetails?.mobile)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"height: 20px;\">\r\n <path fill=\"#ffffff\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg> </button>\r\n <button class=\"btn btn-light rounded d-flex align-items-center justify-content-center p-0 cursor-pointer\"\r\n style=\"width: 30px !important; height: 33px;\" (click)=\"dialNumber(storeData?.storeContactDetails?.mobile)\">\r\n <mat-icon> phone</mat-icon>\r\n <!-- <button class=\"btn book-visit-btn\">BOOK A VISIT</button> -->\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"mb-3 px-2\">\r\n <h5 class=\"mb-3\">Facilities</h5>\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <div class=\"d-flex align-items-center gap- facility-text\">\r\n <mat-icon\r\n class=\"f-18 d-flex align-items-center justify-content-center\">access_time</mat-icon>\r\n <span> {{getTime(storeData?.storeHours)}}\r\n </span>\r\n </div>\r\n <div class=\"facility-text align-content-center\"\r\n *ngFor=\"let ele of storeData?.facilities; let i = index\">{{ele | titlecase}}</div>\r\n </div>\r\n </div>\r\n <div class=\"px-2 mb-2\">\r\n <h5 class=\"mb-3\">Walk-In Services</h5>\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let ele of storeData?.services; let i = index\">\r\n <div class=\"service-card old-gold h-100 py-2\" *ngIf=\"ele?.isAvailable\">\r\n <p class=\"mb-2 f-14\">{{(removeUnderScore(ele?.serviceType) | titlecase)}}</p>\r\n <p class=\"mb-0 f-13\">{{ele?.description}}</p>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"w-100 row store-details\" *ngIf=\"loading\">\r\n <!-- Image skeleton -->\r\n <div class=\"col-4 store-img\">\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '8px',\r\n 'height': '100%',\r\n 'width': '100%'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Details skeleton -->\r\n <div class=\"col-8 px-3 details-container\">\r\n <div class=\"address-container\">\r\n <!-- Store info skeleton -->\r\n <div class=\"d-flex align-items-start mb-4 p-3 mt-3\">\r\n <div class=\"flex-grow-1 me-3\">\r\n <!-- Store name -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '60%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Address lines -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- View directions link -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '40%',\r\n 'margin-top': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n \r\n <!-- Action buttons skeleton -->\r\n <div class=\"d-flex gap-2\">\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '33px',\r\n 'width': '30px',\r\n 'margin-right': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Facilities section skeleton -->\r\n <div class=\"mb-3 px-2\">\r\n <!-- Facilities title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '25%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Facilities items -->\r\n <div class=\"d-flex flex-wrap gap-3\">\r\n <ngx-skeleton-loader count=\"4\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '24px',\r\n 'width': '120px',\r\n 'margin-right': '12px',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n \r\n <!-- Walk-in services section skeleton -->\r\n <div class=\"px-2 mb-2\">\r\n <!-- Services title -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '20px',\r\n 'width': '30%',\r\n 'margin-bottom': '12px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service cards -->\r\n <div class=\"row g-3\">\r\n <div class=\"col-md-3\" *ngFor=\"let item of [1,2,3,4]\">\r\n <div class=\"h-100 py-2\">\r\n <!-- Service type -->\r\n <ngx-skeleton-loader count=\"1\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '16px',\r\n 'width': '80%',\r\n 'margin-bottom': '8px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n \r\n <!-- Service description -->\r\n <ngx-skeleton-loader count=\"2\" appearance=\"custom-content\" [theme]=\"{\r\n 'background-color': '#f0f0f0',\r\n 'border-radius': '4px',\r\n 'height': '14px',\r\n 'width': '100%',\r\n 'margin-bottom': '4px'\r\n }\">\r\n </ngx-skeleton-loader>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n\r\n\r\n </div>\r\n</div>", styles: [".hover_effect{position:absolute;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.text-hidden{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.store-container{background:#fff;color:#000;border-radius:12px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.service-card{border-radius:12px;background:#fff;padding:10px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}.view-directions{font-weight:600;font-size:12px;cursor:pointer}.cursor-pointer{cursor:pointer}.f-18{font-size:18px}.f-13{font-size:13px}.f-14{font-size:14px}.facility-text{background:#fff;color:#000;border-radius:12px;padding:4px 12px;font-size:13px;box-shadow:#0000001a 0 0 5px,#0000001a 0 0 1px}@media (max-width:475px){.store-details{flex-direction:column}.store-img{width:100%!important;max-height:250px!important}.details-container{width:100%}}\n"] }]
|
109
112
|
}], ctorParameters: () => [{ type: i1.RestService }, { type: i2.ActivatedRoute }], propDecorators: { data: [{
|
110
113
|
type: Input
|
111
114
|
}], edit: [{
|
@@ -117,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
117
120
|
}], index: [{
|
118
121
|
type: Input
|
119
122
|
}] } });
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9zdG9yZS1wYWdlL3N0b3JlLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc3RvcmUtcGFnZS9zdG9yZS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFB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QkFDUCxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLDBCQUEwQjt3QkFDMUIsT0FBTzt3QkFDUCx1QkFBdUI7cUJBQ3hCOzZHQU1RLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgTmdNb2R1bGUsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgQmFzZVNlY3Rpb24gZnJvbSAnLi4vLi4vLi4vc2VjdGlvbnMvQmFzZVNlY3Rpb24nO1xyXG5pbXBvcnQgeyBTdG9yZVBhZ2VTdHlsZU1vZGVsLCBTdG9yZVBhZ2VNb2RhbCB9IGZyb20gJy4vc3RvcmUtcGFnZS5tb2RlbCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFuaW1hdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9hbmltYXRpb24tZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQmFja2dyb3VuZERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9iYWNrZ3JvdW5kLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTcGFjaW5nSG9yaXpvbnRhbERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9zcGFjaW5nLWhvcml6b250YWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tc3RvcmUtcGFnZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZS1wYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3RvcmUtcGFnZS5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmVQYWdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xyXG5cclxuICBASW5wdXQoKSBkYXRhPzogU3RvcmVQYWdlTW9kYWxcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBzdHlsZXM/OiBTdG9yZVBhZ2VTdHlsZU1vZGVsO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2ZVJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgaWYgKHBhcmFtc1snc3RvcmVJZCddKSB7XHJcbiAgICAgICAgdGhpcy5nZXRTdG9yZURldGFpbHMocGFyYW1zWydzdG9yZUlkJ10pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzdG9yZURhdGE6IGFueTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2V0U3RvcmVEZXRhaWxzKHN0b3JlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0U3RvcmVCeUlkKHN0b3JlSWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zdG9yZURhdGEgPSByZXM/LmRhdGE/LmRhdGFbMF07XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSwgKGVycjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHN0b3JlIGRldGFpbHM6JywgZXJyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGV4dENvbG9yKGJnQ29sb3I6IGFueSkge1xyXG4gICAgaWYgKGJnQ29sb3IpIHtcclxuICAgICAgY29uc3QgdGhyZXNob2xkID0gMTMwOyAvLyBBZGp1c3QgdGhpcyB0aHJlc2hvbGQgYXMgbmVlZGVkXHJcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IHRocmVzaG9sZCA/ICcjMDAwMDAwJyA6ICcjZmZmZmZmJztcclxuICAgIH1cclxuICAgIHJldHVybiBcIiNmZmZmZmY7XCJcclxuICB9XHJcbiAgZ2V0VGltZShzdG9yZUhvdXJzOiBhbnkpIHtcclxuICAgIGlmIChzdG9yZUhvdXJzID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGF5TmFtZSA9IHRvZGF5LnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IHdlZWtkYXk6ICdsb25nJyB9KS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZm9yIChsZXQgZWxlIG9mIE9iamVjdC5rZXlzKHN0b3JlSG91cnMpKSB7XHJcbiAgICAgIGlmIChlbGUgPT0gZGF5TmFtZSkge1xyXG4gICAgICAgIGlmIChzdG9yZUhvdXJzW2VsZV0uaXNDbG9zZWQpXHJcbiAgICAgICAgICByZXR1cm4gJ0Nsb3NlZCc7XHJcbiAgICAgICAgLy8gaWYgKHN0b3JlSG91cnNbZWxlXS5pczI0SG91cnMpXHJcbiAgICAgICAgLy8gICByZXR1cm4gJ09wZW4gMjQgSG91cnMnO1xyXG4gICAgICAgIHJldHVybiBgJHtzdG9yZUhvdXJzW2VsZV0ub3BlbmluZ1RpbWV9IHRvICR7c3RvcmVIb3Vyc1tlbGVdLmNsb3NpbmdUaW1lfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBcIlwiXHJcbiAgfVxyXG4gIHJlbW92ZVVuZGVyU2NvcmUodGV4dDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGV4dD8ucmVwbGFjZUFsbCgnXycsICcgJyk7XHJcbiAgfVxyXG4gIG9wZW5XaGF0c2FwcChwaG9uZTogc3RyaW5nKSB7XHJcbiAgICBpZiAocGhvbmUpIHtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IGVuY29kZVVSSUNvbXBvbmVudCgnSSB3YW50IHRvIHZpc2l0IHlvdXIgc3RvcmUnKTtcclxuICAgICAgY29uc3Qgd2hhdHNhcHBVcmwgPSBgaHR0cHM6Ly93YS5tZS8ke3Bob25lfT90ZXh0PSR7bWVzc2FnZX1gO1xyXG4gICAgICB3aW5kb3cub3Blbih3aGF0c2FwcFVybCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaWFsTnVtYmVyKHBob25lOiBzdHJpbmcpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHRlbDoke3Bob25lfWA7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidG90YWwtY29udGFpbmVyIHBvc2l0aW9uLXJlbGF0aXZlXCIgc2ltcG9Ib3ZlciAoaG92ZXJpbmcpPVwic2hvd0VkaXRUYWJzKCRldmVudClcIiBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRhaW5lclwiIFtpZF09XCJkYXRhPy5pZFwiIFtzaW1wb0FuaW1hdGlvbl09XCJzdHlsZXM/LmFuaW1hdGlvblwiXHJcbiAgICAgICAgW3NpbXBvQmFja2dyb3VuZF09XCJzdHlsZXM/LmJhY2tncm91bmRcIiBbc2ltcG9MYXlvdXRdPVwic3R5bGVzPy5sYXlvdXRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzPy5sYXlvdXRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcm93IHN0b3JlLWRldGFpbHNcIiAqbmdJZj1cIiFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBzdG9yZS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzdG9yZURhdGE/LnN0b3JlSW1hZ2VVcmxzWzBdXCIgYWx0PVwiSW1hZ2VcIiBjbGFzcz1cInctMTAwIGgtMTAwXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTggcHgtMyBkZXRhaWxzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZHJlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBtYi00IHAtMyBtdC0zIHN0b3JlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwic3RvcmUtbmFtZSBtYi0yXCI+e3tzdG9yZURhdGE/LnN0b3JlTmFtZX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2g0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJzdG9yZS1hZGRyZXNzIG1iLTIgZi0xNFwiPnt7c3RvcmVEYXRhPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmV9fSAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzdG9yZURhdGE/LmFkZHJlc3NEZXRhaWxzPy5jaXR5fX0gLCB7e3N0b3JlRGF0YT8uYWRkcmVzc0RldGFpbHM/LnN0YXRlfX0gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c3RvcmVEYXRhPy5hZGRyZXNzRGV0YWlscz8ucGluY29kZX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwic3RvcmVEYXRhPy5hZGRyZXNzRGV0YWlscz8ubWFwVXJsXCIgY2xhc3M9XCJ2aWV3LWRpcmVjdGlvbnNcIiB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+VklFV1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERJUkVDVElPTlM8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1zdWNjZXNzIHJvdW5kZWQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHAtMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCIgd2lkdGg6IDMwcHggIWltcG9ydGFudDtoZWlnaHQ6IDMzcHg7IGJhY2tncm91bmQtY29sb3I6ICMyNWQzNjYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiAjMjVkMzY2ICFpbXBvcnRhbnQ7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbldoYXRzYXBwKHN0b3JlRGF0YT8uc3RvcmVDb250YWN0RGV0YWlscz8ubW9iaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiIHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsPVwiI2ZmZmZmZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM4MC45IDk3LjFjLTQxLjktNDItOTcuNy02NS4xLTE1Ny02NS4xLTEyMi40IDAtMjIyIDk5LjYtMjIyIDIyMiAwIDM5LjEgMTAuMiA3Ny4zIDI5LjYgMTExTDAgNDgwIDExNy43IDQ0OS4xYzMyLjQgMTcuNyA2OC45IDI3IDEwNi4xIDI3bC4xIDBjMTIyLjMgMCAyMjQuMS05OS42IDIyNC4xLTIyMiAwLTU5LjMtMjUuMi0xMTUtNjcuMS0xNTd6bS0xNTcgMzQxLjZjLTMzLjIgMC02NS43LTguOS05NC0yNS43bC02LjctNC02OS44IDE4LjMgMTguNi02OC4xLTQuNC03Yy0xOC41LTI5LjQtMjguMi02My4zLTI4LjItOTguMiAwLTEwMS43IDgyLjgtMTg0LjUgMTg0LjYtMTg0LjUgNDkuMyAwIDk1LjYgMTkuMiAxMzAuNCA1NC4xczU2LjIgODEuMiA1Ni4xIDEzMC41YzAgMTAxLjgtODQuOSAxODQuNi0xODYuNiAxODQuNnpNMzI1LjEgMzAwLjVjLTUuNS0yLjgtMzIuOC0xNi4yLTM3LjktMTgtNS4xLTEuOS04LjgtMi44LTEyLjUgMi44cy0xNC4zIDE4LTE3LjYgMjEuOGMtMy4yIDMuNy02LjUgNC4yLTEyIDEuNC0zMi42LTE2LjMtNTQtMjkuMS03NS41LTY2LTUuNy05LjggNS43LTkuMSAxNi4zLTMwLjMgMS44LTMuNyAuOS02LjktLjUtOS43cy0xMi41LTMwLjEtMTcuMS00MS4yYy00LjUtMTAuOC05LjEtOS4zLTEyLjUtOS41LTMuMi0uMi02LjktLjItMTAuNi0uMnMtOS43IDEuNC0xNC44IDYuOWMtNS4xIDUuNi0xOS40IDE5LTE5LjQgNDYuM3MxOS45IDUzLjcgMjIuNiA1Ny40YzIuOCAzLjcgMzkuMSA1OS43IDk0LjggODMuOCAzNS4yIDE1LjIgNDkgMTYuNSA2Ni42IDEzLjkgMTAuNy0xLjYgMzIuOC0xMy40IDM3LjQtMjYuNHM0LjYtMjQuMSAzLjItMjYuNGMtMS4zLTIuNS01LTMuOS0xMC41LTYuNnpcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPiA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0IHJvdW5kZWQgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHAtMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzBweCAhaW1wb3J0YW50OyBoZWlnaHQ6IDMzcHg7XCIgKGNsaWNrKT1cImRpYWxOdW1iZXIoc3RvcmVEYXRhPy5zdG9yZUNvbnRhY3REZXRhaWxzPy5tb2JpbGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPiBwaG9uZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uIGNsYXNzPVwiYnRuIGJvb2stdmlzaXQtYnRuXCI+Qk9PSyBBIFZJU0lUPC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHB4LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibWItM1wiPkZhY2lsaXRpZXM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLSBmYWNpbGl0eS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZi0xOCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5hY2Nlc3NfdGltZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7Z2V0VGltZShzdG9yZURhdGE/LnN0b3JlSG91cnMpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmYWNpbGl0eS10ZXh0IGFsaWduLWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlIG9mIHN0b3JlRGF0YT8uZmFjaWxpdGllczsgbGV0IGkgPSBpbmRleFwiPnt7ZWxlIHwgdGl0bGVjYXNlfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB4LTIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aDUgY2xhc3M9XCJtYi0zXCI+V2Fsay1JbiBTZXJ2aWNlczwvaDU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdGb3I9XCJsZXQgZWxlIG9mIHN0b3JlRGF0YT8uc2VydmljZXM7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS1jYXJkIG9sZC1nb2xkIGgtMTAwIHB5LTJcIiAqbmdJZj1cImVsZT8uaXNBdmFpbGFibGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0yIGYtMTRcIj57eyhyZW1vdmVVbmRlclNjb3JlKGVsZT8uc2VydmljZVR5cGUpIHwgdGl0bGVjYXNlKX19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgZi0xM1wiPnt7ZWxlPy5kZXNjcmlwdGlvbn19PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgcm93IHN0b3JlLWRldGFpbHNcIiAqbmdJZj1cImxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPCEtLSBJbWFnZSBza2VsZXRvbiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC00IHN0b3JlLWltZ1wiPlxyXG4gICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnOHB4JyxcclxuICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMTAwJScsXHJcbiAgICAgICAgICAgICAgICAnd2lkdGgnOiAnMTAwJSdcclxuICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICA8IS0tIERldGFpbHMgc2tlbGV0b24gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOCBweC0zIGRldGFpbHMtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRkcmVzcy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFN0b3JlIGluZm8gc2tlbGV0b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1zdGFydCBtYi00IHAtMyBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWdyb3ctMSBtZS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFN0b3JlIG5hbWUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY3VzdG9tLWNvbnRlbnRcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2YwZjBmMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6ICcyNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICc2MCUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiAnOHB4J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQWRkcmVzcyBsaW5lcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMlwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzE2cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzgwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6ICc0cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBWaWV3IGRpcmVjdGlvbnMgbGluayAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzE2cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzQwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCc6ICc4cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBBY3Rpb24gYnV0dG9ucyBza2VsZXRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIyXCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMzNweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAnMzBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLXJpZ2h0JzogJzhweCdcclxuICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gRmFjaWxpdGllcyBzZWN0aW9uIHNrZWxldG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zIHB4LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGYWNpbGl0aWVzIHRpdGxlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY3VzdG9tLWNvbnRlbnRcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6ICcyMHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAnMjUlJyxcclxuICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6ICcxMnB4J1xyXG4gICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBGYWNpbGl0aWVzIGl0ZW1zIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcCBnYXAtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCI0XCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMjRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAnMTIwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1yaWdodCc6ICcxMnB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogJzhweCdcclxuICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gV2Fsay1pbiBzZXJ2aWNlcyBzZWN0aW9uIHNrZWxldG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZXJ2aWNlcyB0aXRsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMjBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzMwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiAnMTJweCdcclxuICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VydmljZSBjYXJkcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtM1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIFsxLDIsMyw0XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCBweS0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VydmljZSB0eXBlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY3VzdG9tLWNvbnRlbnRcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6ICcxNnB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAnODAlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlcnZpY2UgZGVzY3JpcHRpb24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMlwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2YwZjBmMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzE0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6ICc0cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgICAgICAgICAgPHNpbXBvLWhvdmVyLWVsZW1lbnRzIFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIiBbZWRpdE9wdGlvbnNdPVwiZWRpdFwiPjwvc2ltcG8taG92ZXItZWxlbWVudHM+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgICAgIDxzaW1wby1kZWxldGUtaG92ZXItZWxlbWVudCBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCI+PC9zaW1wby1kZWxldGUtaG92ZXItZWxlbWVudD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtcGFnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9zdG9yZS1wYWdlL3N0b3JlLXBhZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc3RvcmUtcGFnZS9zdG9yZS1wYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRy9FLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFB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U0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLE9BQU87d0JBQ1Asb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLE9BQU87d0JBQ1AsdUJBQXVCO3FCQUN4Qjs2R0FNUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE5nTW9kdWxlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IEJhc2VTZWN0aW9uIGZyb20gJy4uLy4uLy4uL3NlY3Rpb25zL0Jhc2VTZWN0aW9uJztcclxuaW1wb3J0IHsgU3RvcmVQYWdlU3R5bGVNb2RlbCwgU3RvcmVQYWdlTW9kYWwgfSBmcm9tICcuL3N0b3JlLXBhZ2UubW9kZWwnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBbmltYXRpb25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYW5pbWF0aW9uLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJhY2tncm91bmREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYmFja2dyb3VuZC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBDb3JuZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29ybmVyLWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFNpbXBvQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9pbmRleCc7XHJcbmltcG9ydCB7IEhvdmVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2hvdmVyLWVsZW1lbnQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdEljb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgQ29udGVudEZpdERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb250ZW50LWZpdC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IE5neFNrZWxldG9uTG9hZGVyTW9kdWxlIH0gZnJvbSAnbmd4LXNrZWxldG9uLWxvYWRlcic7XHJcbmltcG9ydCB7IExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2ltcG8tc3RvcmUtcGFnZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdG9yZS1wYWdlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vc3RvcmUtcGFnZS5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmVQYWdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZVNlY3Rpb24ge1xyXG5cclxuICBASW5wdXQoKSBkYXRhPzogU3RvcmVQYWdlTW9kYWxcclxuICBASW5wdXQoKSBlZGl0PzogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZGVsZXRlPzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBpbmRleD86IG51bWJlcjtcclxuICBzdHlsZXM/OiBTdG9yZVBhZ2VTdHlsZU1vZGVsO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGFjdGl2ZVJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMuZGF0YT8uc3R5bGVzO1xyXG4gICAgdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUocGFyYW1zID0+IHtcclxuICAgICAgaWYgKHBhcmFtc1snc3RvcmVJZCddKSB7XHJcbiAgICAgICAgdGhpcy5nZXRTdG9yZURldGFpbHMocGFyYW1zWydzdG9yZUlkJ10pO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBzdG9yZURhdGE6IGFueTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgZ2V0U3RvcmVEZXRhaWxzKHN0b3JlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2V0U3RvcmVCeUlkKHN0b3JlSWQpLnN1YnNjcmliZSgocmVzOiBhbnkpID0+IHtcclxuICAgICAgdGhpcy5zdG9yZURhdGEgPSByZXM/LmRhdGE/LmRhdGFbMF07XHJcbiAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSwgKGVycjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIGZldGNoaW5nIHN0b3JlIGRldGFpbHM6JywgZXJyKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGV4dENvbG9yKGJnQ29sb3I6IGFueSkge1xyXG4gICAgaWYgKGJnQ29sb3IpIHtcclxuICAgICAgY29uc3QgdGhyZXNob2xkID0gMTMwOyAvLyBBZGp1c3QgdGhpcyB0aHJlc2hvbGQgYXMgbmVlZGVkXHJcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IHRocmVzaG9sZCA/ICcjMDAwMDAwJyA6ICcjZmZmZmZmJztcclxuICAgIH1cclxuICAgIHJldHVybiBcIiNmZmZmZmY7XCJcclxuICB9XHJcbiAgZ2V0VGltZShzdG9yZUhvdXJzOiBhbnkpIHtcclxuICAgIGlmIChzdG9yZUhvdXJzID09IG51bGwpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGF5TmFtZSA9IHRvZGF5LnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IHdlZWtkYXk6ICdsb25nJyB9KS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZm9yIChsZXQgZWxlIG9mIE9iamVjdC5rZXlzKHN0b3JlSG91cnMpKSB7XHJcbiAgICAgIGlmIChlbGUgPT0gZGF5TmFtZSkge1xyXG4gICAgICAgIGlmIChzdG9yZUhvdXJzW2VsZV0uaXNDbG9zZWQpXHJcbiAgICAgICAgICByZXR1cm4gJ0Nsb3NlZCc7XHJcbiAgICAgICAgLy8gaWYgKHN0b3JlSG91cnNbZWxlXS5pczI0SG91cnMpXHJcbiAgICAgICAgLy8gICByZXR1cm4gJ09wZW4gMjQgSG91cnMnO1xyXG4gICAgICAgIHJldHVybiBgJHtzdG9yZUhvdXJzW2VsZV0ub3BlbmluZ1RpbWV9IHRvICR7c3RvcmVIb3Vyc1tlbGVdLmNsb3NpbmdUaW1lfWA7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBcIlwiXHJcbiAgfVxyXG4gIHJlbW92ZVVuZGVyU2NvcmUodGV4dDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGV4dD8ucmVwbGFjZUFsbCgnXycsICcgJyk7XHJcbiAgfVxyXG4gIG9wZW5XaGF0c2FwcChwaG9uZTogc3RyaW5nKSB7XHJcbiAgICBpZiAocGhvbmUpIHtcclxuICAgICAgY29uc3QgbWVzc2FnZSA9IGVuY29kZVVSSUNvbXBvbmVudCgnSSB3YW50IHRvIHZpc2l0IHlvdXIgc3RvcmUnKTtcclxuICAgICAgY29uc3Qgd2hhdHNhcHBVcmwgPSBgaHR0cHM6Ly93YS5tZS8ke3Bob25lfT90ZXh0PSR7bWVzc2FnZX1gO1xyXG4gICAgICB3aW5kb3cub3Blbih3aGF0c2FwcFVybCwgJ19ibGFuaycpO1xyXG4gICAgfVxyXG4gIH1cclxuICBkaWFsTnVtYmVyKHBob25lOiBzdHJpbmcpIHtcclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYHRlbDoke3Bob25lfWA7XHJcbiAgfVxyXG4gIGdldCBzdHlsZXNMYXlvdXQoKSB7XHJcbiAgICByZXR1cm4geyAuLi50aGlzLnN0eWxlcz8ubGF5b3V0IH0gYXMgTGF5T3V0TW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b3RhbC1jb250YWluZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCJcclxuICAgICAgICBbc2ltcG9CYWNrZ3JvdW5kXT1cInN0eWxlcz8uYmFja2dyb3VuZFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIiBbc3BhY2luZ0hvcml6b250YWxdPVwic3R5bGVzTGF5b3V0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHJvdyBzdG9yZS1kZXRhaWxzXCIgKm5nSWY9XCIhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTQgc3RvcmUtaW1nXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwic3RvcmVEYXRhPy5zdG9yZUltYWdlVXJsc1swXVwiIGFsdD1cIkltYWdlXCIgY2xhc3M9XCJ3LTEwMCBoLTEwMFwiIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCJkYXRhPy5pZFwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC04IHB4LTMgZGV0YWlscy1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGRyZXNzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgbWItNCBwLTMgbXQtMyBzdG9yZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIG1lLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInN0b3JlLW5hbWUgbWItMlwiPnt7c3RvcmVEYXRhPy5zdG9yZU5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9oND5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwic3RvcmUtYWRkcmVzcyBtYi0yIGYtMTRcIj57e3N0b3JlRGF0YT8uYWRkcmVzc0RldGFpbHM/LmFkZHJlc3NMaW5lfX0gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c3RvcmVEYXRhPy5hZGRyZXNzRGV0YWlscz8uY2l0eX19ICwge3tzdG9yZURhdGE/LmFkZHJlc3NEZXRhaWxzPy5zdGF0ZX19ICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3N0b3JlRGF0YT8uYWRkcmVzc0RldGFpbHM/LnBpbmNvZGV9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cInN0b3JlRGF0YT8uYWRkcmVzc0RldGFpbHM/Lm1hcFVybFwiIGNsYXNzPVwidmlldy1kaXJlY3Rpb25zXCIgdGFyZ2V0PVwiX2JsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlZJRVdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBESVJFQ1RJT05TPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc3VjY2VzcyByb3VuZGVkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiIHdpZHRoOiAzMHB4ICFpbXBvcnRhbnQ7aGVpZ2h0OiAzM3B4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjMjVkMzY2ICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjogIzI1ZDM2NiAhaW1wb3J0YW50O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5XaGF0c2FwcChzdG9yZURhdGE/LnN0b3JlQ29udGFjdERldGFpbHM/Lm1vYmlsZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIiBzdHlsZT1cImhlaWdodDogMjBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbD1cIiNmZmZmZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4gPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodCByb3VuZGVkIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBwLTAgY3Vyc29yLXBvaW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMwcHggIWltcG9ydGFudDsgaGVpZ2h0OiAzM3B4O1wiIChjbGljayk9XCJkaWFsTnVtYmVyKHN0b3JlRGF0YT8uc3RvcmVDb250YWN0RGV0YWlscz8ubW9iaWxlKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj4gcGhvbmU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBjbGFzcz1cImJ0biBib29rLXZpc2l0LWJ0blwiPkJPT0sgQSBWSVNJVDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBweC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1iLTNcIj5GYWNpbGl0aWVzPC9oNT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0gZmFjaWxpdHktdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImYtMTggZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+YWNjZXNzX3RpbWU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiB7e2dldFRpbWUoc3RvcmVEYXRhPy5zdG9yZUhvdXJzKX19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmFjaWxpdHktdGV4dCBhbGlnbi1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZSBvZiBzdG9yZURhdGE/LmZhY2lsaXRpZXM7IGxldCBpID0gaW5kZXhcIj57e2VsZSB8IHRpdGxlY2FzZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGg1IGNsYXNzPVwibWItM1wiPldhbGstSW4gU2VydmljZXM8L2g1PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zXCIgKm5nRm9yPVwibGV0IGVsZSBvZiBzdG9yZURhdGE/LnNlcnZpY2VzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZCBvbGQtZ29sZCBoLTEwMCBweS0yXCIgKm5nSWY9XCJlbGU/LmlzQXZhaWxhYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMiBmLTE0XCI+e3socmVtb3ZlVW5kZXJTY29yZShlbGU/LnNlcnZpY2VUeXBlKSB8IHRpdGxlY2FzZSl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wIGYtMTNcIj57e2VsZT8uZGVzY3JpcHRpb259fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIHJvdyBzdG9yZS1kZXRhaWxzXCIgKm5nSWY9XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgIDwhLS0gSW1hZ2Ugc2tlbGV0b24gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBzdG9yZS1pbWdcIj5cclxuICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzhweCcsXHJcbiAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzEwMCUnLFxyXG4gICAgICAgICAgICAgICAgJ3dpZHRoJzogJzEwMCUnXHJcbiAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgPCEtLSBEZXRhaWxzIHNrZWxldG9uIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTggcHgtMyBkZXRhaWxzLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZHJlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBTdG9yZSBpbmZvIHNrZWxldG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtc3RhcnQgbWItNCBwLTMgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgbWUtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTdG9yZSBuYW1lIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMjRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAnNjAlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogJzhweCdcclxuICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIEFkZHJlc3MgbGluZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjJcIiBhcHBlYXJhbmNlPVwiY3VzdG9tLWNvbnRlbnRcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2YwZjBmMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6ICcxNnB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICc4MCUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiAnNHB4J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gVmlldyBkaXJlY3Rpb25zIGxpbmsgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjFcIiBhcHBlYXJhbmNlPVwiY3VzdG9tLWNvbnRlbnRcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2YwZjBmMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6ICcxNnB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICc0MCUnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi10b3AnOiAnOHB4J1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQWN0aW9uIGJ1dHRvbnMgc2tlbGV0b24gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZ2FwLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMlwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzMzcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzMwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1yaWdodCc6ICc4cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8IS0tIEZhY2lsaXRpZXMgc2VjdGlvbiBza2VsZXRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMyBweC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRmFjaWxpdGllcyB0aXRsZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMjBweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzI1JScsXHJcbiAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiAnMTJweCdcclxuICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRmFjaWxpdGllcyBpdGVtcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXAgZ2FwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiNFwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzI0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzEyMHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICdtYXJnaW4tcmlnaHQnOiAnMTJweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAnbWFyZ2luLWJvdHRvbSc6ICc4cHgnXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFdhbGstaW4gc2VydmljZXMgc2VjdGlvbiBza2VsZXRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHgtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gU2VydmljZXMgdGl0bGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIGNvdW50PVwiMVwiIGFwcGVhcmFuY2U9XCJjdXN0b20tY29udGVudFwiIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiAnI2YwZjBmMCcsXHJcbiAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAnaGVpZ2h0JzogJzIwcHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICd3aWR0aCc6ICczMCUnLFxyXG4gICAgICAgICAgICAgICAgICAgICdtYXJnaW4tYm90dG9tJzogJzEycHgnXHJcbiAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlcnZpY2UgY2FyZHMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTNcIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBbMSwyLDMsNF1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgcHktMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFNlcnZpY2UgdHlwZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgY291bnQ9XCIxXCIgYXBwZWFyYW5jZT1cImN1c3RvbS1jb250ZW50XCIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFja2dyb3VuZC1jb2xvcic6ICcjZjBmMGYwJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICc0cHgnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdoZWlnaHQnOiAnMTZweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dpZHRoJzogJzgwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiAnOHB4J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBTZXJ2aWNlIGRlc2NyaXB0aW9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjb3VudD1cIjJcIiBhcHBlYXJhbmNlPVwiY3VzdG9tLWNvbnRlbnRcIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJzogJyNmMGYwZjAnLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzRweCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlaWdodCc6ICcxNHB4JyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lkdGgnOiAnMTAwJScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcmdpbi1ib3R0b20nOiAnNHB4J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZWRpdH1cIiAqbmdJZj1cInNob3dFZGl0b3JzXCI+XHJcbiAgICAgICAgICAgIDxzaW1wby1ob3Zlci1lbGVtZW50cyBbZGF0YV09XCJkYXRhXCIgW2luZGV4XT1cImluZGV4XCIgW2VkaXRPcHRpb25zXT1cImVkaXRcIj48L3NpbXBvLWhvdmVyLWVsZW1lbnRzPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0RlbGV0ZVwiIFtuZ0NsYXNzXT1cInsnaG92ZXJfZWZmZWN0JzogZGVsZXRlfVwiPlxyXG4gICAgICAgICAgICA8c2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiPjwvc2ltcG8tZGVsZXRlLWhvdmVyLWVsZW1lbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
|
@@ -120,6 +120,7 @@ export class LinkEditorComponent {
|
|
120
120
|
this.link = this.data.linkData;
|
121
121
|
this.selectedType = this.link.linkType === RedirectionLinkType.Email || this.link.linkType === RedirectionLinkType.Phone ? RedirectionLinkType.External : this.link.linkType;
|
122
122
|
this.addLink = false;
|
123
|
+
this.data.buttonStyle.gradientDirection = this.data.buttonStyle?.gradientDirection || GradientDirection.DOWN;
|
123
124
|
}
|
124
125
|
this.getTemplatePage();
|
125
126
|
}
|
@@ -246,4 +247,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
246
247
|
type: Inject,
|
247
248
|
args: [MAT_DIALOG_DATA]
|
248
249
|
}] }, { type: i3.EventsService }, { type: i2.MatDialog }] });
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9saW5rLWVkaXRvci9saW5rLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2xpbmstZWRpdG9yL2xpbmstZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBMkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7OztBQVN4RSxNQUFNLE9BQU8sbUJBQW1C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QUFDLGNBQWMsR0FBRyxFQUFFLENBQUE7UUFDN0IsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7Z0JBQ3BDLE1BQUs7WUFDUCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBblBVLG1CQUFtQixtRkFxR3BCLGVBQWU7bUdBckdkLG1CQUFtQiw2RUMxQmhDLDZ3aUJBMFRVLHE0SkRwU0UsWUFBWSwrZUFBRSxXQUFXLDByQ0FBRSxlQUFlLDhCQUFFLGNBQWMsOEJBQUUsZUFBZSw4QkFBRSxhQUFhLG1MQUE2QixlQUFlLCtCQUFFLGtCQUFrQjs7NEZBSXpKLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsd0JBQXdCLEVBQUcsZUFBZSxFQUFFLGtCQUFrQixDQUFDOzswQkF5R2xLLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b24sIEJ1dHRvblN0eWxlTW9kZWwgfSBmcm9tICcuLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBHcmFkaWVudERpcmVjdGlvbiwgUmVkaXJlY3Rpb25MaW5rVHlwZSB9IGZyb20gJy4uLy4uL3N0eWxlcy9pbmRleCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRPcHRpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcclxuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3RNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Jlc3Quc2VydmljZSc7XHJcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IEVsZW1lbnRTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uL2VkaXRvci1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFdmVudHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZXZlbnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBNZWRpYVNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vbWVkaWEtc2VsZWN0b3IvbWVkaWEtc2VsZWN0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTWF0U2xpZGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGVyJztcclxuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLWxpbmstZWRpdG9yJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBNYXRPcHRpb25Nb2R1bGUsIE1hdElucHV0TW9kdWxlLCBNYXRTZWxlY3RNb2R1bGUsIE1hdEljb25Nb2R1bGUsIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSAsIE1hdFNsaWRlck1vZHVsZSwgTWF0UHJvZ3Jlc3NTcGlubmVyXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGluay1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9saW5rLWVkaXRvci5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGlua0VkaXRvckNvbXBvbmVudCB7XHJcbiAgbGluazogQnV0dG9uID0ge1xyXG4gICAgbGlua1R5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZSxcclxuICAgIGxhYmVsOiAnJyxcclxuICAgIHJlZGlyZWN0aW9uVXJsOiAnJyxcclxuICAgIHBhZ2VJZDogJycsXHJcbiAgICBuZXdUYWI6IGZhbHNlLFxyXG4gIH07XHJcblxyXG4gIFJlZGlyZWN0aW9uTGluayA9IFJlZGlyZWN0aW9uTGlua1R5cGVcclxuICBleHRlcm5hbExpbmtUeXBlOiBBcnJheTx0eXBlPiA9IFtcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FbWFpbFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5QaG9uZVxyXG4gICAgfVxyXG4gICAgLy8ge1xyXG4gICAgLy8gICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLnNlY3Rpb25cclxuICAgIC8vIH1cclxuICBdXHJcblxyXG4gIHNlbGVjdGVkVHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZSA9IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZTtcclxuICBsaW5rVHlwZTogYW55W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGFnZVxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5zZWN0aW9uXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsXHJcbiAgICB9XHJcbiAgXVxyXG5cclxuICBidXR0b25UeXBlczogYW55W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFwiU29saWRcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogXCJPdXRsaW5lXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFwiVGV4dFwiXHJcbiAgICB9XHJcbiAgXVxyXG5cclxuICBidXR0b25TaGFwZXM6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvODMyOTY4YzE3NDcyMjEyNzA4NTZWZWN0b3IlMjA0OCUyMCgyKS5wbmdcIixcclxuICAgICAgYWN0aXZlSWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzQ4MTg1MGMxNzQ3MjIwOTM3NjkzVmVjdG9yJTIwNDglMjAoMSkucG5nXCIsXHJcbiAgICAgIHR5cGU6IFwiU3F1YXJlXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy84MzA4NDJjMTc0NzIyMDc1NzQ1M1ZlY3RvciUyMDQ5LnBuZ1wiLFxyXG4gICAgICBhY3RpdmVJY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNzgwNjAxYzE3NDcyMjEyNDM2MTNWZWN0b3IlMjA0OSUyMCgxKS5wbmdcIixcclxuICAgICAgdHlwZTogXCJDdXJ2ZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMjEwMzUwYzE3NDcyMjA4MDM1MjFWZWN0b3IlMjA1MC5wbmdcIixcclxuICAgICAgYWN0aXZlSWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzkzOTYxMWMxNzQ3MjIwOTAwMTI0VmVjdG9yJTIwNTAlMjAoMSkucG5nXCIsXHJcbiAgICAgIHR5cGU6IFwiUm91bmRcIlxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgZGlyZWN0aW9uVHlwZTogYW55W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82NjQ0MDNjMTc0NzMwNjg0MDMwNGFycm93LWRvd24ucG5nXCIsXHJcbiAgICAgIGFjdGl2ZUljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy81ODc0MzBjMTc0NzMwNjg5ODQ2NWFycm93LWRvd24ucG5nXCIsXHJcbiAgICAgIHR5cGU6IFwiRE9XTlwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvMTkzMzU5YzE3NDczMDY5NDk1MjJhcnJvdy1yaWdodC5wbmdcIixcclxuICAgICAgYWN0aXZlSWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzQ1MDk0M2MxNzQ3MzE3NzU5Mzg4YXJyb3ctcmlnaHQgKDIpLnBuZ1wiLFxyXG4gICAgICB0eXBlOiBcIlJJR0hUXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy80OTM4MzhjMTc0NzMwNzA5NDgyMWFycm93LXJpZ2h0ICgzKS5wbmdcIixcclxuICAgICAgYWN0aXZlSWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzY5OTkzMmMxNzQ3MzA3MTU3OTQ0YXJyb3ctcmlnaHQgKDQpLnBuZ1wiLFxyXG4gICAgICB0eXBlOiBcIkRJQUdPTkFMX1JJR0hUXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIGljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy85MTE5NzFjMTc0NzMwNzE5OTExNWFycm93LXJpZ2h0ICg1KS5wbmdcIixcclxuICAgICAgYWN0aXZlSWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzk2ODcyNmMxNzQ3MzA3MjI3MjU1YXJyb3ctcmlnaHQgKDYpLnBuZ1wiLFxyXG4gICAgICB0eXBlOiBcIkRJQUdPTkFMX0xFRlRcIlxyXG4gICAgfVxyXG5cclxuICBdXHJcblxyXG5cclxuXHJcblxyXG5cclxuICB0ZW1wbGF0ZVBhZ2U6IGFueVtdID0gW107XHJcbiAgYWRkTGluazogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWRpdG9yU2VydmljZTogRWxlbWVudFNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPExpbmtFZGl0b3JDb21wb25lbnQ+LFxyXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBhbnksXHJcbiAgICBwcml2YXRlIGV2ZW50U2VydmljZTogRXZlbnRzU2VydmljZSxcclxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFkZExpbmsgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZGF0YT8ubGlua0RhdGEpIHtcclxuICAgICAgdGhpcy5saW5rID0gdGhpcy5kYXRhLmxpbmtEYXRhO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHRoaXMubGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rVHlwZS5FbWFpbCB8fCB0aGlzLmxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGlua1R5cGUuUGhvbmUgPyBSZWRpcmVjdGlvbkxpbmtUeXBlLkV4dGVybmFsIDogdGhpcy5saW5rLmxpbmtUeXBlO1xyXG4gICAgICB0aGlzLmFkZExpbmsgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0VGVtcGxhdGVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0VGVtcGxhdGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVQYWdlID0gcmVzLmRhdGE7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlVHlwZSh0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmxpbmsubGlua1R5cGUgPSB0aGlzLnNlbGVjdGVkVHlwZTtcclxuICB9XHJcblxyXG4gIGFkZE5ld0xpbmsoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGxpbms6IHRoaXMubGluayB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3JMYWJlbCgpe1xyXG4gICAgaWYodGhpcy5kYXRhLmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyl7XHJcbiAgICAgIHJldHVybiAnT3V0bGluZSBDb2xvcic7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHRoaXMuZGF0YS5idXR0b25TdHlsZT8udHlwZSA9PSAnVGV4dCcpe1xyXG4gICAgICByZXR1cm4gJ1RleHQgQ29sb3InO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICdCdXR0b24gQ29sb3InO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1dHRvblN0eWxlczogYW55O1xyXG4gIGNoYW5nZUJ1dHRvblN0eWxlKCkge1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIGlmICh0aGlzLmRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyB8fCB0aGlzLmRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09ICdUZXh0Jykge1xyXG4gICAgICB0aGlzLmJhY2tncm91bmRUeXBlID0gWydTb2xpZCddO1xyXG4gICAgICB0aGlzLmRhdGEuYnV0dG9uU3R5bGUuY29sb3JUeXBlID0gJ1NvbGlkJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmJhY2tncm91bmRUeXBlID0gWydTb2xpZCcsICdHcmFkaWVudCddO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudFNlcnZpY2UuYnV0dG9uU3R5bGVDaGFuZ2VDaGVja3MuZW1pdCh7IGlkOiB0aGlzLmRhdGEuYnV0dG9uSWQsIHN0eWxlOiB0aGlzLmRhdGEuYnV0dG9uU3R5bGUsIGJhY2tncm91bmRJbmZvOiB0aGlzLmRhdGEuYmFja2dyb3VuZEluZm8gfSk7XHJcbiAgfVxyXG4gIGdldENvbnRyYXN0VGV4dENvbG9yKGJhY2tncm91bmRIZXg6IGFueSkge1xyXG4gICAgbGV0IGhleCA9IGJhY2tncm91bmRIZXg/LnJlcGxhY2UoJyMnLCAnJyk7XHJcblxyXG4gICAgaWYgKGhleD8ubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgIGhleCA9IGhleC5zcGxpdCgnJykubWFwKChjOiBhbnkpID0+IGMgKyBjKS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4Py5zdWJzdHIoMCwgMiksIDE2KSAvIDI1NTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXg/LnN1YnN0cigyLCAyKSwgMTYpIC8gMjU1O1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleD8uc3Vic3RyKDQsIDIpLCAxNikgLyAyNTU7XHJcblxyXG4gICAgY29uc3QgbHVtaW5hbmNlID0gMC4yMTI2ICogciArIDAuNzE1MiAqIGcgKyAwLjA3MjIgKiBiO1xyXG5cclxuICAgIHRoaXMuZGF0YS5idXR0b25TdHlsZS50ZXh0Q29sb3IgPSBsdW1pbmFuY2UgPCAwLjUgPyBcIiNGRkZGRkZcIiA6IFwiIzAwMDAwMFwiO1xyXG4gICAgdGhpcy5ldmVudFNlcnZpY2UuYnV0dG9uU3R5bGVDaGFuZ2VDaGVja3MuZW1pdCh7IGlkOiB0aGlzLmRhdGEuYnV0dG9uSWQsIHN0eWxlOiB0aGlzLmRhdGEuYnV0dG9uU3R5bGUsIGJhY2tncm91bmRJbmZvOiB0aGlzLmRhdGEuYmFja2dyb3VuZEluZm8gfSk7XHJcbiAgfVxyXG4gIGJhY2tncm91bmRUeXBlOiBzdHJpbmdbXSA9IFsnU29saWQnLCAnR3JhZGllbnQnXTtcclxuXHJcbiAgc2V0Qm9yZGVyUmFkaXVzKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdUZXh0Jykge1xyXG4gICAgICByZXR1cm4gJzBweCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhLmJ1dHRvblN0eWxlLnNoYXBlID09ICdTcXVhcmUnKSB7XHJcbiAgICAgIHJldHVybiAnMHB4JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGEuYnV0dG9uU3R5bGUuc2hhcGUgPT0gJ0N1cnZlJykge1xyXG4gICAgICByZXR1cm4gJzdweCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhLmJ1dHRvblN0eWxlLnNoYXBlID09ICdSb3VuZCcpIHtcclxuICAgICAgcmV0dXJuICc5OXB4JztcclxuICAgIH1cclxuICAgIHJldHVybiAnMHB4JztcclxuICB9XHJcbiAgc2V0Qm9yZGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdUZXh0Jykge1xyXG4gICAgICByZXR1cm4gJ3Vuc2V0JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGEuYnV0dG9uU3R5bGUudHlwZSA9PSAnU29saWQnKSB7XHJcbiAgICAgIHJldHVybiBgdW5zZXRgO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdPdXRsaW5lJykge1xyXG4gICAgICByZXR1cm4gYDJweCBzb2xpZCAke3RoaXMuZGF0YS5idXR0b25TdHlsZT8uYmFja2dyb3VuZH1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICd1bnNldCc7XHJcbiAgfVxyXG4gIHNldENvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5idXR0b25TdHlsZT8udGV4dENvbG9yIHx8ICcjZmZmZmZmJztcclxuICB9XHJcbiAgc2V0QmFja2dyb3VuZCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuYnV0dG9uU3R5bGU/LmNvbG9yVHlwZSA9PSAnU29saWQnICYmIHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdTb2xpZCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5idXR0b25TdHlsZT8uYmFja2dyb3VuZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmJ1dHRvblN0eWxlPy5jb2xvclR5cGUgPT0gJ0dyYWRpZW50JyAmJiB0aGlzLmRhdGEuYnV0dG9uU3R5bGUudHlwZSA9PSAnU29saWQnKSB7XHJcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IEdyYWRpZW50RGlyZWN0aW9uW3RoaXMuZGF0YS5idXR0b25TdHlsZS5ncmFkaWVudERpcmVjdGlvbiBhcyB1bmtub3duIGFzIGtleW9mIHR5cGVvZiBHcmFkaWVudERpcmVjdGlvbiB8fCBHcmFkaWVudERpcmVjdGlvbi5ET1dOXTtcclxuICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtkaXJlY3Rpb259LCAke3RoaXMuZGF0YS5idXR0b25TdHlsZT8uYmFja2dyb3VuZH0sICR7dGhpcy5kYXRhLmJ1dHRvblN0eWxlPy5zZWNvbmRhcnlCYWNrZ3JvdW5kfSlgO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWdMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhc3luYyB1cGRhdGVJbWFnZSgpIHtcclxuICAgIHRoaXMuaW1nTG9hZGVyID0gdHJ1ZTtcclxuICAgIGNvbnN0IG1lZGlhU2VsZWN0b3JEaWFsb2cgPSB0aGlzLm1hdERpYWxvZy5vcGVuKE1lZGlhU2VsZWN0b3JDb21wb25lbnQsIHsgZGF0YTogeyBtdWx0aXBsZTogZmFsc2UgfSwgcGFuZWxDbGFzczogXCJtZWRpYS1zZWxlY3RvclwiIH0pXHJcbiAgICBtZWRpYVNlbGVjdG9yRGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5saW5rLmljb24udXJsID0gcmVzWzBdLmFzc2V0c1swXS51cmwgPz8gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbWdMb2FkZXIgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmxpbmsuaWNvbi51cmwgPSAnJztcclxuICB9XHJcblxyXG4gIHNldFJlZGlyZWN0VXJsKCkge1xyXG4gICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gJydcclxuICAgIGZvciAobGV0IHBhZ2Ugb2YgdGhpcy50ZW1wbGF0ZVBhZ2UpIHtcclxuICAgICAgaWYgKHBhZ2UuaWQgPT09IHRoaXMubGluay5wYWdlSWQpIHtcclxuICAgICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSBwYWdlLnBhdGhcclxuICAgICAgICBicmVha1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbmludGVyZmFjZSB0eXBlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuIiwiPHNlY3Rpb24+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgPHA+e3tkYXRhLnR5cGUgPT0gJ0JVVFRPTicgPyBcIkJ1dHRvblwiIDogXCJMaW5rXCJ9fSBTZXR0aW5nczwvcD5cclxuICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiIGNsYXNzPVwiZi0xOCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY3BcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJsaW5rLXRleHRcIj57e2RhdGEudHlwZSA9PSAnQlVUVE9OJyA/IFwiQnV0dG9uXCIgOiBcIkxpbmtcIn19IFRleHQ8L2xhYmVsPjxicj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC10ZXh0IGxpbmstdGV4dC1pbnB1dFwiIFsobmdNb2RlbCldPVwibGluay5sYWJlbFwiPlxyXG4gICAgICA8cCBjbGFzcz1cImRlc2NcIj5UaGlzIGlzIHRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdXNlcnM8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aHI+XHJcblxyXG4gICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS50eXBlID09ICdCVVRUT04nXCI+XHJcbiAgICAgIDxzZWxlY3Q+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3R5bGUgb2Ygc3R5bGVzXCI+XHJcbiAgICAgICAgICA8b3B0aW9uIChjbGljayk9XCJjaGFuZ2VCdXR0b25TdHlsZShzdHlsZSlcIiBbdmFsdWVdPVwic3R5bGUubmFtZVwiPnt7c3R5bGUubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxzZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEudHlwZSA9PSAnQlVUVE9OJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY29udGFpbmVyIG1iLTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGluay10ZXh0IG1iLTFcIj5CdXR0b248L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yVHlwZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImJvcmRlci0wIHctMTAwXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLnR5cGVcIiAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VCdXR0b25TdHlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdHlwZSBvZiBidXR0b25UeXBlc1wiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidHlwZS50eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7dHlwZS50eXBlIHwgdGl0bGVjYXNlfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXN0eWxlIHctODBcIiBbc3R5bGUuYm9yZGVyUmFkaXVzXT1cInNldEJvcmRlclJhZGl1cygpXCIgW3N0eWxlLmJvcmRlcl09XCJzZXRCb3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwic2V0QmFja2dyb3VuZCgpXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09PSAnVGV4dCcgfHwgZGF0YT8uYnV0dG9uU3R5bGU/LnR5cGUgPT09ICdPdXRsaW5lJykgJiYgZGF0YT8uYnV0dG9uU3R5bGU/LmNvbG9yVHlwZSA9PT0gJ0dyYWRpZW50J1wiXHJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kJzogJ2xpbmVhci1ncmFkaWVudCg5MGRlZywgJyArIGRhdGE/LmJ1dHRvblN0eWxlPy5iYWNrZ3JvdW5kICsgJyAwJSwgJyArIGRhdGE/LmJ1dHRvblN0eWxlLnNlY29uZGFyeUJhY2tncm91bmQgKyAnIDEwMCUpJ1xyXG4gICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCA/IGxpbmsubGFiZWwgOiBcIkJ1dHRvbiBUZXh0XCJ9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LnN0eWxlPy5jb2xvclR5cGUgPT0gJ1NvbGlkJyB8fCBkYXRhPy5idXR0b25TdHlsZT8udHlwZSA9PSAnU29saWQnXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzZXRDb2xvcigpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsID8gbGluay5sYWJlbCA6IFwiQnV0dG9uIFRleHRcIn19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YT8uYnV0dG9uU3R5bGU/LnR5cGUgPT09ICdPdXRsaW5lJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0Q29sb3IoKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCA/IGxpbmsubGFiZWwgOiBcIkJ1dHRvbiBUZXh0XCJ9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09PSAnVGV4dCdcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGEuYnV0dG9uU3R5bGUuYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCA/IGxpbmsubGFiZWwgOiBcIkJ1dHRvbiBUZXh0XCJ9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImxpbmstdGV4dFwiPkJ1dHRvbiBTdHlsZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWNvbnRhaW5lciByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvciBici0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItdG9wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGVcIj5Db2xvcjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1zaWRlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3JUeXBlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiYm9yZGVyLTAgdy0xMDBcIiBbKG5nTW9kZWwpXT1cImRhdGEuYnV0dG9uU3R5bGUuY29sb3JUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VCdXR0b25TdHlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdHlwZSBvZiBiYWNrZ3JvdW5kVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHR5cGUgfCB0aXRsZWNhc2UgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1ib3R0b21cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMjBcIiAqbmdJZj1cImRhdGEuYnV0dG9uU3R5bGUuY29sb3JUeXBlID09PSAnU29saWQnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBjbGFzcz1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLmJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImdldENvbnRyYXN0VGV4dENvbG9yKGRhdGEuYnV0dG9uU3R5bGUuYmFja2dyb3VuZClcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCJcclxuICAgICAgICAgICAgICAgICAgICAjY29sb3JJbnB1dD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sb3ItdGV4dCBtYi0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+IHt7IGdldENvbG9yTGFiZWwoKX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhLmJ1dHRvblN0eWxlLmJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29sb3JJbnB1dC5jbGljaygpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yMFwiICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZS5jb2xvclR5cGUgPT09ICdHcmFkaWVudCdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiIGNsYXNzPVwiY29sb3JcIiBbKG5nTW9kZWwpXT1cImRhdGEuYnV0dG9uU3R5bGUuYmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQnV0dG9uU3R5bGUoKVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjY29sb3JJbnB1dDE+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBjbGFzcz1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLnNlY29uZGFyeUJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUJ1dHRvblN0eWxlKClcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI2NvbG9ySW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbG9yLXRleHQgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPkNvbG9yIDE8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhPy5idXR0b25TdHlsZT8uYmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbG9ySW5wdXQxLmNsaWNrKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbG9yLXRleHQgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPkNvbG9yIDI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhPy5idXR0b25TdHlsZT8uc2Vjb25kYXJ5QmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbG9ySW5wdXQuY2xpY2soKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JhZGllbnQtZGlyZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LWRpcmVjdGlvbiBtdC0zIG1iLTFcIj4gRGlyZWN0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1kaXJlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXNoYWRvdyBkLWZsZXggYnItMTAgdy04MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkaXJlY3Rpb24gb2YgZGlyZWN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1ib3ggZC1mbGV4IHAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBici0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IGRhdGEuYnV0dG9uU3R5bGU/LmdyYWRpZW50RGlyZWN0aW9uID09PSBkaXJlY3Rpb24udHlwZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGEuYnV0dG9uU3R5bGUuZ3JhZGllbnREaXJlY3Rpb24gPSBkaXJlY3Rpb24udHlwZTtjaGFuZ2VCdXR0b25TdHlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMFwiIFtzcmNdPVwiZGlyZWN0aW9uLmljb25cIiBhbHQ9XCJpY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmJ1dHRvblN0eWxlPy5ncmFkaWVudERpcmVjdGlvbiAhPT0gZGlyZWN0aW9uLnR5cGVcIiBsb2FkaW5nPVwibGF6eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTBcIiBbc3JjXT1cImRpcmVjdGlvbi5hY3RpdmVJY29uXCIgYWx0PVwiaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZT8uZ3JhZGllbnREaXJlY3Rpb24gPT09IGRpcmVjdGlvbi50eXBlXCIgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMjBcIiAqbmdJZj1cImRhdGEuYnV0dG9uU3R5bGUudHlwZSAhPSAnVGV4dCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBjbGFzcz1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLnRleHRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VCdXR0b25TdHlsZSgpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNjb2xvcklucHV0Mz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbG9yLXRleHQgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlRleHQgQ29sb3I8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhLmJ1dHRvblN0eWxlLnRleHRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbG9ySW5wdXQzLmNsaWNrKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3JuZXItcmFkaXVzIGJnLXdoaXRlIHAtMiAgYnItMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmJ1dHRvblN0eWxlLnR5cGUgIT0gJ1RleHQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dC0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICBDb3JuZXIgUmFkaXVzXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1zaGFkb3cgZC1mbGV4IGJyLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzaGFwZSBvZiBidXR0b25TaGFwZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWJveCBkLWZsZXggcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGJyLTEwXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IGRhdGEuYnV0dG9uU3R5bGUuc2hhcGUgPT09IHNoYXBlLnR5cGV9XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0YS5idXR0b25TdHlsZS5zaGFwZSA9IHNoYXBlLnR5cGU7Y2hhbmdlQnV0dG9uU3R5bGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzaGFwZS5pY29uXCIgYWx0PVwiaWNvblwiICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZS5zaGFwZSAhPT0gc2hhcGUudHlwZVwiIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNpdGlvbi1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzaGFwZS5hY3RpdmVJY29uXCIgYWx0PVwiaWNvblwiICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZT8uc2hhcGUgPT09IHNoYXBlLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cInRyYW5zaXRpb24taW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkXCI+U2hvdyBJY29uPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJsaW5rLnNob3dJY29uXCIgcm9sZT1cInN3aXRjaFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8IS0tIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0wXCI+SW1hZ2U8L3A+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW1hZ2UgY3BcIiAqbmdJZj1cImxpbmsuc2hvd0ljb24gJiYgIWxpbms/Lmljb24/LnVybFwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XHJcbiAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy81NDc1MDBjMTc0NDY5ODgzMDM0M3VwbG9hZC1vbmUlMjAlMjgxJTI5LnBuZ1wiXHJcbiAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ1cGxvYWQtdGV4dCBtYi0wXCI+VXBsb2FkIGEgZmlsZTwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHQgbWItMFwiPm9yIHNlbGVjdCBhbiBleGlzdGluZyBvbmU8L3A+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCI+dXAgdG8gMzJNQjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cImxpbmsuc2hvd0ljb24gJiYgbGluaz8uaWNvbj8udXJsXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWltZ0xvYWRlclwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwibGluaz8uaWNvbj8udXJsXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXBhbGNlLWltYWdlIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInVwZGF0ZUltYWdlKClcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCIgY2xhc3M9XCJpY29uIHctNCBoLTRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJtNCAxNiA0LjU4NTc5LTQuNTg1OGMuNzgxMDQtLjc4MSAyLjA0NzQxLS43ODEgMi44Mjg0MSAwTDE2IDE2bS0yLTIgMS41ODU4LTEuNTg1OGMuNzgxLS43ODEgMi4wNDc0LS43ODEgMi44Mjg0IDBMMjAgMTRtLTYtNmguMDFNNiAyMGgxMmMxLjEwNDYgMCAyLS44OTU0IDItMlY2YzAtMS4xMDQ1Ny0uODk1NC0yLTItMkg2Yy0xLjEwNDU3IDAtMiAuODk1NDMtMiAydjEyYzAgMS4xMDQ2Ljg5NTQzIDIgMiAyWlwiPlxyXG4gICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtaW1hZ2UgY3Vyc29yLXBvaW50ZXIgXCIgKGNsaWNrKT1cImRlbGV0ZUltYWdlKClcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiNmZmZmZmZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiIGNsYXNzPVwiaWNvbiBoLTQgdy00XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICBkPVwibTE5IDctLjg2NzMgMTIuMTQyNUMxOC4wNTc5IDIwLjE4OTEgMTcuMTg3IDIxIDE2LjEzNzggMjFINy44NjIyNGMtMS4wNDkyOCAwLTEuOTIwMTYtLjgxMDktMS45OTQ5Mi0xLjg1NzVMNSA3bTUgNHY2bTQtNnY2bTEtMTBWNGMwLS41NTIyOC0uNDQ3Ny0xLTEtMWgtNGMtLjU1MjI4IDAtMSAuNDQ3NzItMSAxdjNNNCA3aDE2XCI+XHJcbiAgICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW1nTG9hZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRfc3Bpbm5lciBkLWZsZXggdy0xMDAgaC0xMDAganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHAtMiBtYi0yXCI+SWNvbiBQb3NpdGlvbjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFicyBkLWZsZXggcHgtMiBnYXAtMyBtYi0yXCIgKm5nSWY9XCJsaW5rLnNob3dJY29uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYiBweC0zIHB5LTJcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIFsnbGVmdCcsJ3JpZ2h0J11cIiAoY2xpY2spPVwibGluay5pY29uLmljb25Qb3NpdGlvbiA9IHRhYlwiXHJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRUYWJdPVwibGluaz8uaWNvbj8uaWNvblBvc2l0aW9uID09IHRhYlwiPlxyXG4gICAgICAgICAge3t0YWIgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5saW5rRGF0YT8ubGVuZ3RoICE9IDBcIj5cclxuXHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzIGNwXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaW5rVHlwZVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUeXBlJyA6IHR5cGUudHlwZSA9PT0gc2VsZWN0ZWRUeXBlfVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVHlwZSh0eXBlLnR5cGUpXCI+e3t0eXBlLnR5cGV9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jb250YWluZXIgbXQtM1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGFnZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgUGFnZTwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwibGluay5wYWdlSWRcIiAobmdNb2RlbENoYW5nZSk9XCJzZXRSZWRpcmVjdFVybCgpXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHRlbXBsYXRlUGFnZVwiIFt2YWx1ZV09XCJwYWdlLmlkXCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAge3twYWdlLnBhZ2VOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuc2VjdGlvblwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBTZWN0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiB0ZW1wbGF0ZVBhZ2VbMF0uY29tcG9uZW50c1wiIFt2YWx1ZV09XCJzZWN0aW9uLmlkXCI+e3tzZWN0aW9uLnNlY3Rpb25OYW1lfX1cclxuICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsIHx8IGxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FbWFpbCB8fCBsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGhvbmVcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VsZWN0IHR5cGU8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsubGlua1R5cGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCB0aGUgVHlwZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZXh0ZXJuYWxMaW5rVHlwZVwiIFt2YWx1ZV09XCJ0eXBlLnR5cGVcIj57e3R5cGUudHlwZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwgbWItMlwiPnt7bGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsID8gJ1dlYnNpdGUnIDogbGluay5saW5rVHlwZSA9PT1cclxuICAgICAgICAgICAgUmVkaXJlY3Rpb25MaW5rLkVtYWlsID8gJ0VtYWlsIEFkZHJlc3MnIDogJ1Bob25lIE51bWJlcid9fTwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbKG5nTW9kZWwpXT1cImxpbmsucmVkaXJlY3Rpb25VcmxcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsID8gJ2V4YW1wbGUgOiBodHRwczovL2ZhY2Vib29rLmNvbSc6ICcnXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMTBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTJcIj5PcGVuIGluIGEgbmV3IGJyb3dzZXIgdGFiPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJsaW5rLm5ld1RhYlwiIHJvbGU9XCJzd2l0Y2hcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyIHctMTAwICBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRMaW5rXCIgKGNsaWNrKT1cImFkZE5ld0xpbmsoKVwiPlVwZGF0ZSBMaW5rPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvc2VjdGlvbj4iXX0=
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lbGVtZW50cy9saW5rLWVkaXRvci9saW5rLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2VsZW1lbnRzL2xpbmstZWRpdG9yL2xpbmstZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXpELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLGVBQWUsRUFBMkIsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7OztBQVN4RSxNQUFNLE9BQU8sbUJBQW1C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Q0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFBO1FBQzdCLEtBQUssSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO2dCQUNwQyxNQUFLO1lBQ1AsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQXBQVSxtQkFBbUIsbUZBcUdwQixlQUFlO21HQXJHZCxtQkFBbUIsNkVDMUJoQyw2d2lCQTBUVSxxNEpEcFNFLFlBQVksK2VBQUUsV0FBVywwckNBQUUsZUFBZSw4QkFBRSxjQUFjLDhCQUFFLGVBQWUsOEJBQUUsYUFBYSxtTEFBNkIsZUFBZSwrQkFBRSxrQkFBa0I7OzRGQUl6SixtQkFBbUI7a0JBUC9CLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFHLGVBQWUsRUFBRSxrQkFBa0IsQ0FBQzs7MEJBeUdsSyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uLCBCdXR0b25TdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgR3JhZGllbnREaXJlY3Rpb24sIFJlZGlyZWN0aW9uTGlua1R5cGUgfSBmcm9tICcuLi8uLi9zdHlsZXMvaW5kZXgnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0T3B0aW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcclxuaW1wb3J0IHsgTWF0U2VsZWN0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2VsZWN0JztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBFbGVtZW50U2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi9lZGl0b3Itc2VydmljZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQnV0dG9uRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1kaXJlY3RpdmUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTWVkaWFTZWxlY3RvckNvbXBvbmVudCB9IGZyb20gJy4uL21lZGlhLXNlbGVjdG9yL21lZGlhLXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFNsaWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlcic7XHJcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1saW5rLWVkaXRvcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTWF0T3B0aW9uTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgTWF0U2VsZWN0TW9kdWxlLCBNYXRJY29uTW9kdWxlLCBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgLCBNYXRTbGlkZXJNb2R1bGUsIE1hdFByb2dyZXNzU3Bpbm5lcl0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpbmstZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGluay1lZGl0b3IuY29tcG9uZW50LmNzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIExpbmtFZGl0b3JDb21wb25lbnQge1xyXG4gIGxpbms6IEJ1dHRvbiA9IHtcclxuICAgIGxpbmtUeXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2UsXHJcbiAgICBsYWJlbDogJycsXHJcbiAgICByZWRpcmVjdGlvblVybDogJycsXHJcbiAgICBwYWdlSWQ6ICcnLFxyXG4gICAgbmV3VGFiOiBmYWxzZSxcclxuICB9O1xyXG5cclxuICBSZWRpcmVjdGlvbkxpbmsgPSBSZWRpcmVjdGlvbkxpbmtUeXBlXHJcbiAgZXh0ZXJuYWxMaW5rVHlwZTogQXJyYXk8dHlwZT4gPSBbXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuRXh0ZXJuYWxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuRW1haWxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuUGhvbmVcclxuICAgIH1cclxuICAgIC8vIHtcclxuICAgIC8vICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5zZWN0aW9uXHJcbiAgICAvLyB9XHJcbiAgXVxyXG5cclxuICBzZWxlY3RlZFR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUgPSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2U7XHJcbiAgbGlua1R5cGU6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlLlBhZ2VcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFJlZGlyZWN0aW9uTGlua1R5cGUuc2VjdGlvblxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdHlwZTogUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbFxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgYnV0dG9uVHlwZXM6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICB0eXBlOiBcIlNvbGlkXCJcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHR5cGU6IFwiT3V0bGluZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB0eXBlOiBcIlRleHRcIlxyXG4gICAgfVxyXG4gIF1cclxuXHJcbiAgYnV0dG9uU2hhcGVzOiBhbnlbXSA9IFtcclxuICAgIHtcclxuICAgICAgaWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzgzMjk2OGMxNzQ3MjIxMjcwODU2VmVjdG9yJTIwNDglMjAoMikucG5nXCIsXHJcbiAgICAgIGFjdGl2ZUljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy80ODE4NTBjMTc0NzIyMDkzNzY5M1ZlY3RvciUyMDQ4JTIwKDEpLnBuZ1wiLFxyXG4gICAgICB0eXBlOiBcIlNxdWFyZVwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvODMwODQyYzE3NDcyMjA3NTc0NTNWZWN0b3IlMjA0OS5wbmdcIixcclxuICAgICAgYWN0aXZlSWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzc4MDYwMWMxNzQ3MjIxMjQzNjEzVmVjdG9yJTIwNDklMjAoMSkucG5nXCIsXHJcbiAgICAgIHR5cGU6IFwiQ3VydmVcIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzIxMDM1MGMxNzQ3MjIwODAzNTIxVmVjdG9yJTIwNTAucG5nXCIsXHJcbiAgICAgIGFjdGl2ZUljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy85Mzk2MTFjMTc0NzIyMDkwMDEyNFZlY3RvciUyMDUwJTIwKDEpLnBuZ1wiLFxyXG4gICAgICB0eXBlOiBcIlJvdW5kXCJcclxuICAgIH1cclxuICBdXHJcblxyXG4gIGRpcmVjdGlvblR5cGU6IGFueVtdID0gW1xyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNjY0NDAzYzE3NDczMDY4NDAzMDRhcnJvdy1kb3duLnBuZ1wiLFxyXG4gICAgICBhY3RpdmVJY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNTg3NDMwYzE3NDczMDY4OTg0NjVhcnJvdy1kb3duLnBuZ1wiLFxyXG4gICAgICB0eXBlOiBcIkRPV05cIlxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgaWNvbjogXCJodHRwczovL2QyeXgxNXBuY2dtdTYzLmNsb3VkZnJvbnQubmV0L3Byb2QtaW1hZ2VzLzE5MzM1OWMxNzQ3MzA2OTQ5NTIyYXJyb3ctcmlnaHQucG5nXCIsXHJcbiAgICAgIGFjdGl2ZUljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy80NTA5NDNjMTc0NzMxNzc1OTM4OGFycm93LXJpZ2h0ICgyKS5wbmdcIixcclxuICAgICAgdHlwZTogXCJSSUdIVFwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvNDkzODM4YzE3NDczMDcwOTQ4MjFhcnJvdy1yaWdodCAoMykucG5nXCIsXHJcbiAgICAgIGFjdGl2ZUljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy82OTk5MzJjMTc0NzMwNzE1Nzk0NGFycm93LXJpZ2h0ICg0KS5wbmdcIixcclxuICAgICAgdHlwZTogXCJESUFHT05BTF9SSUdIVFwiXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBpY29uOiBcImh0dHBzOi8vZDJ5eDE1cG5jZ211NjMuY2xvdWRmcm9udC5uZXQvcHJvZC1pbWFnZXMvOTExOTcxYzE3NDczMDcxOTkxMTVhcnJvdy1yaWdodCAoNSkucG5nXCIsXHJcbiAgICAgIGFjdGl2ZUljb246IFwiaHR0cHM6Ly9kMnl4MTVwbmNnbXU2My5jbG91ZGZyb250Lm5ldC9wcm9kLWltYWdlcy85Njg3MjZjMTc0NzMwNzIyNzI1NWFycm93LXJpZ2h0ICg2KS5wbmdcIixcclxuICAgICAgdHlwZTogXCJESUFHT05BTF9MRUZUXCJcclxuICAgIH1cclxuXHJcbiAgXVxyXG5cclxuXHJcblxyXG5cclxuXHJcbiAgdGVtcGxhdGVQYWdlOiBhbnlbXSA9IFtdO1xyXG4gIGFkZExpbms6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVsZW1lbnRTZXJ2aWNlU2VydmljZSxcclxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxMaW5rRWRpdG9yQ29tcG9uZW50PixcclxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBwdWJsaWMgZGF0YTogYW55LFxyXG4gICAgcHJpdmF0ZSBldmVudFNlcnZpY2U6IEV2ZW50c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hZGRMaW5rID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmRhdGE/LmxpbmtEYXRhKSB7XHJcbiAgICAgIHRoaXMubGluayA9IHRoaXMuZGF0YS5saW5rRGF0YTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFR5cGUgPSB0aGlzLmxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGlua1R5cGUuRW1haWwgfHwgdGhpcy5saW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmtUeXBlLlBob25lID8gUmVkaXJlY3Rpb25MaW5rVHlwZS5FeHRlcm5hbCA6IHRoaXMubGluay5saW5rVHlwZTtcclxuICAgICAgdGhpcy5hZGRMaW5rID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YS5idXR0b25TdHlsZS5ncmFkaWVudERpcmVjdGlvbiA9IHRoaXMuZGF0YS5idXR0b25TdHlsZT8uZ3JhZGllbnREaXJlY3Rpb24gfHwgR3JhZGllbnREaXJlY3Rpb24uRE9XTjtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0VGVtcGxhdGVQYWdlKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZURpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZVBhZ2UoKSB7XHJcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuZ2V0VGVtcGxhdGUoKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMudGVtcGxhdGVQYWdlID0gcmVzLmRhdGE7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlVHlwZSh0eXBlOiBSZWRpcmVjdGlvbkxpbmtUeXBlKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLmxpbmsubGlua1R5cGUgPSB0aGlzLnNlbGVjdGVkVHlwZTtcclxuICB9XHJcblxyXG4gIGFkZE5ld0xpbmsoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7IGxpbms6IHRoaXMubGluayB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29sb3JMYWJlbCgpe1xyXG4gICAgaWYodGhpcy5kYXRhLmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyl7XHJcbiAgICAgIHJldHVybiAnT3V0bGluZSBDb2xvcic7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHRoaXMuZGF0YS5idXR0b25TdHlsZT8udHlwZSA9PSAnVGV4dCcpe1xyXG4gICAgICByZXR1cm4gJ1RleHQgQ29sb3InO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICdCdXR0b24gQ29sb3InO1xyXG4gIH1cclxuXHJcblxyXG4gIGJ1dHRvblN0eWxlczogYW55O1xyXG4gIGNoYW5nZUJ1dHRvblN0eWxlKCkge1xyXG4gICAgLy8gZGVidWdnZXJcclxuICAgIGlmICh0aGlzLmRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyB8fCB0aGlzLmRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09ICdUZXh0Jykge1xyXG4gICAgICB0aGlzLmJhY2tncm91bmRUeXBlID0gWydTb2xpZCddO1xyXG4gICAgICB0aGlzLmRhdGEuYnV0dG9uU3R5bGUuY29sb3JUeXBlID0gJ1NvbGlkJztcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmJhY2tncm91bmRUeXBlID0gWydTb2xpZCcsICdHcmFkaWVudCddO1xyXG4gICAgfVxyXG4gICAgdGhpcy5ldmVudFNlcnZpY2UuYnV0dG9uU3R5bGVDaGFuZ2VDaGVja3MuZW1pdCh7IGlkOiB0aGlzLmRhdGEuYnV0dG9uSWQsIHN0eWxlOiB0aGlzLmRhdGEuYnV0dG9uU3R5bGUsIGJhY2tncm91bmRJbmZvOiB0aGlzLmRhdGEuYmFja2dyb3VuZEluZm8gfSk7XHJcbiAgfVxyXG4gIGdldENvbnRyYXN0VGV4dENvbG9yKGJhY2tncm91bmRIZXg6IGFueSkge1xyXG4gICAgbGV0IGhleCA9IGJhY2tncm91bmRIZXg/LnJlcGxhY2UoJyMnLCAnJyk7XHJcblxyXG4gICAgaWYgKGhleD8ubGVuZ3RoID09PSAzKSB7XHJcbiAgICAgIGhleCA9IGhleC5zcGxpdCgnJykubWFwKChjOiBhbnkpID0+IGMgKyBjKS5qb2luKCcnKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByID0gcGFyc2VJbnQoaGV4Py5zdWJzdHIoMCwgMiksIDE2KSAvIDI1NTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChoZXg/LnN1YnN0cigyLCAyKSwgMTYpIC8gMjU1O1xyXG4gICAgY29uc3QgYiA9IHBhcnNlSW50KGhleD8uc3Vic3RyKDQsIDIpLCAxNikgLyAyNTU7XHJcblxyXG4gICAgY29uc3QgbHVtaW5hbmNlID0gMC4yMTI2ICogciArIDAuNzE1MiAqIGcgKyAwLjA3MjIgKiBiO1xyXG5cclxuICAgIHRoaXMuZGF0YS5idXR0b25TdHlsZS50ZXh0Q29sb3IgPSBsdW1pbmFuY2UgPCAwLjUgPyBcIiNGRkZGRkZcIiA6IFwiIzAwMDAwMFwiO1xyXG4gICAgdGhpcy5ldmVudFNlcnZpY2UuYnV0dG9uU3R5bGVDaGFuZ2VDaGVja3MuZW1pdCh7IGlkOiB0aGlzLmRhdGEuYnV0dG9uSWQsIHN0eWxlOiB0aGlzLmRhdGEuYnV0dG9uU3R5bGUsIGJhY2tncm91bmRJbmZvOiB0aGlzLmRhdGEuYmFja2dyb3VuZEluZm8gfSk7XHJcbiAgfVxyXG4gIGJhY2tncm91bmRUeXBlOiBzdHJpbmdbXSA9IFsnU29saWQnLCAnR3JhZGllbnQnXTtcclxuXHJcbiAgc2V0Qm9yZGVyUmFkaXVzKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdUZXh0Jykge1xyXG4gICAgICByZXR1cm4gJzBweCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhLmJ1dHRvblN0eWxlLnNoYXBlID09ICdTcXVhcmUnKSB7XHJcbiAgICAgIHJldHVybiAnMHB4JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGEuYnV0dG9uU3R5bGUuc2hhcGUgPT0gJ0N1cnZlJykge1xyXG4gICAgICByZXR1cm4gJzdweCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kYXRhLmJ1dHRvblN0eWxlLnNoYXBlID09ICdSb3VuZCcpIHtcclxuICAgICAgcmV0dXJuICc5OXB4JztcclxuICAgIH1cclxuICAgIHJldHVybiAnMHB4JztcclxuICB9XHJcbiAgc2V0Qm9yZGVyKCkge1xyXG4gICAgaWYgKHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdUZXh0Jykge1xyXG4gICAgICByZXR1cm4gJ3Vuc2V0JztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmRhdGEuYnV0dG9uU3R5bGUudHlwZSA9PSAnU29saWQnKSB7XHJcbiAgICAgIHJldHVybiBgdW5zZXRgO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdPdXRsaW5lJykge1xyXG4gICAgICByZXR1cm4gYDJweCBzb2xpZCAke3RoaXMuZGF0YS5idXR0b25TdHlsZT8uYmFja2dyb3VuZH1gO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICd1bnNldCc7XHJcbiAgfVxyXG4gIHNldENvbG9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0YS5idXR0b25TdHlsZT8udGV4dENvbG9yIHx8ICcjZmZmZmZmJztcclxuICB9XHJcbiAgc2V0QmFja2dyb3VuZCgpIHtcclxuICAgIGlmICh0aGlzLmRhdGEuYnV0dG9uU3R5bGU/LmNvbG9yVHlwZSA9PSAnU29saWQnICYmIHRoaXMuZGF0YS5idXR0b25TdHlsZS50eXBlID09ICdTb2xpZCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0YS5idXR0b25TdHlsZT8uYmFja2dyb3VuZDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5kYXRhLmJ1dHRvblN0eWxlPy5jb2xvclR5cGUgPT0gJ0dyYWRpZW50JyAmJiB0aGlzLmRhdGEuYnV0dG9uU3R5bGUudHlwZSA9PSAnU29saWQnKSB7XHJcbiAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IEdyYWRpZW50RGlyZWN0aW9uW3RoaXMuZGF0YS5idXR0b25TdHlsZS5ncmFkaWVudERpcmVjdGlvbiBhcyB1bmtub3duIGFzIGtleW9mIHR5cGVvZiBHcmFkaWVudERpcmVjdGlvbiB8fCBHcmFkaWVudERpcmVjdGlvbi5ET1dOXTtcclxuICAgICAgcmV0dXJuIGBsaW5lYXItZ3JhZGllbnQoJHtkaXJlY3Rpb259LCAke3RoaXMuZGF0YS5idXR0b25TdHlsZT8uYmFja2dyb3VuZH0sICR7dGhpcy5kYXRhLmJ1dHRvblN0eWxlPy5zZWNvbmRhcnlCYWNrZ3JvdW5kfSlgO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICcnXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbWdMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhc3luYyB1cGRhdGVJbWFnZSgpIHtcclxuICAgIHRoaXMuaW1nTG9hZGVyID0gdHJ1ZTtcclxuICAgIGNvbnN0IG1lZGlhU2VsZWN0b3JEaWFsb2cgPSB0aGlzLm1hdERpYWxvZy5vcGVuKE1lZGlhU2VsZWN0b3JDb21wb25lbnQsIHsgZGF0YTogeyBtdWx0aXBsZTogZmFsc2UgfSwgcGFuZWxDbGFzczogXCJtZWRpYS1zZWxlY3RvclwiIH0pXHJcbiAgICBtZWRpYVNlbGVjdG9yRGlhbG9nLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcykge1xyXG4gICAgICAgICAgdGhpcy5saW5rLmljb24udXJsID0gcmVzWzBdLmFzc2V0c1swXS51cmwgPz8gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbWdMb2FkZXIgPSBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZGVsZXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmxpbmsuaWNvbi51cmwgPSAnJztcclxuICB9XHJcblxyXG4gIHNldFJlZGlyZWN0VXJsKCkge1xyXG4gICAgdGhpcy5saW5rLnJlZGlyZWN0aW9uVXJsID0gJydcclxuICAgIGZvciAobGV0IHBhZ2Ugb2YgdGhpcy50ZW1wbGF0ZVBhZ2UpIHtcclxuICAgICAgaWYgKHBhZ2UuaWQgPT09IHRoaXMubGluay5wYWdlSWQpIHtcclxuICAgICAgICB0aGlzLmxpbmsucmVkaXJlY3Rpb25VcmwgPSBwYWdlLnBhdGhcclxuICAgICAgICBicmVha1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbmludGVyZmFjZSB0eXBlIHtcclxuICB0eXBlOiBzdHJpbmc7XHJcbn1cclxuIiwiPHNlY3Rpb24+XHJcbiAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxyXG4gICAgPHA+e3tkYXRhLnR5cGUgPT0gJ0JVVFRPTicgPyBcIkJ1dHRvblwiIDogXCJMaW5rXCJ9fSBTZXR0aW5nczwvcD5cclxuICAgIDxtYXQtaWNvbiAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiIGNsYXNzPVwiZi0xOCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgY3BcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJib2R5XCI+XHJcbiAgICA8ZGl2PlxyXG4gICAgICA8bGFiZWwgY2xhc3M9XCJsaW5rLXRleHRcIj57e2RhdGEudHlwZSA9PSAnQlVUVE9OJyA/IFwiQnV0dG9uXCIgOiBcIkxpbmtcIn19IFRleHQ8L2xhYmVsPjxicj5cclxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC10ZXh0IGxpbmstdGV4dC1pbnB1dFwiIFsobmdNb2RlbCldPVwibGluay5sYWJlbFwiPlxyXG4gICAgICA8cCBjbGFzcz1cImRlc2NcIj5UaGlzIGlzIHRoZSB0ZXh0IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgdG8gdXNlcnM8L3A+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aHI+XHJcblxyXG4gICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0lmPVwiZGF0YS50eXBlID09ICdCVVRUT04nXCI+XHJcbiAgICAgIDxzZWxlY3Q+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgc3R5bGUgb2Ygc3R5bGVzXCI+XHJcbiAgICAgICAgICA8b3B0aW9uIChjbGljayk9XCJjaGFuZ2VCdXR0b25TdHlsZShzdHlsZSlcIiBbdmFsdWVdPVwic3R5bGUubmFtZVwiPnt7c3R5bGUubmFtZX19PC9vcHRpb24+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxzZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj4gLS0+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEudHlwZSA9PSAnQlVUVE9OJ1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmllbGQtY29udGFpbmVyIG1iLTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibGluay10ZXh0IG1iLTFcIj5CdXR0b248L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yVHlwZSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImJvcmRlci0wIHctMTAwXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLnR5cGVcIiAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VCdXR0b25TdHlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdHlwZSBvZiBidXR0b25UeXBlc1wiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwidHlwZS50eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7dHlwZS50eXBlIHwgdGl0bGVjYXNlfX1cclxuICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJldmlldyBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuLXN0eWxlIHctODBcIiBbc3R5bGUuYm9yZGVyUmFkaXVzXT1cInNldEJvcmRlclJhZGl1cygpXCIgW3N0eWxlLmJvcmRlcl09XCJzZXRCb3JkZXIoKVwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRdPVwic2V0QmFja2dyb3VuZCgpXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09PSAnVGV4dCcgfHwgZGF0YT8uYnV0dG9uU3R5bGU/LnR5cGUgPT09ICdPdXRsaW5lJykgJiYgZGF0YT8uYnV0dG9uU3R5bGU/LmNvbG9yVHlwZSA9PT0gJ0dyYWRpZW50J1wiXHJcbiAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICdiYWNrZ3JvdW5kJzogJ2xpbmVhci1ncmFkaWVudCg5MGRlZywgJyArIGRhdGE/LmJ1dHRvblN0eWxlPy5iYWNrZ3JvdW5kICsgJyAwJSwgJyArIGRhdGE/LmJ1dHRvblN0eWxlLnNlY29uZGFyeUJhY2tncm91bmQgKyAnIDEwMCUpJ1xyXG4gICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCA/IGxpbmsubGFiZWwgOiBcIkJ1dHRvbiBUZXh0XCJ9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LnN0eWxlPy5jb2xvclR5cGUgPT0gJ1NvbGlkJyB8fCBkYXRhPy5idXR0b25TdHlsZT8udHlwZSA9PSAnU29saWQnXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5jb2xvcl09XCJzZXRDb2xvcigpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBsaW5rLmxhYmVsID8gbGluay5sYWJlbCA6IFwiQnV0dG9uIFRleHRcIn19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGF0YT8uYnV0dG9uU3R5bGU/LnR5cGUgPT09ICdPdXRsaW5lJ1wiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwic2V0Q29sb3IoKVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCA/IGxpbmsubGFiZWwgOiBcIkJ1dHRvbiBUZXh0XCJ9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGE/LmJ1dHRvblN0eWxlPy50eXBlID09PSAnVGV4dCdcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGEuYnV0dG9uU3R5bGUuYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5sYWJlbCA/IGxpbmsubGFiZWwgOiBcIkJ1dHRvbiBUZXh0XCJ9fVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImZpZWxkLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImxpbmstdGV4dFwiPkJ1dHRvbiBTdHlsZTwvbGFiZWw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWNvbnRhaW5lciByb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvciBici0xMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3ItdG9wIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtYi0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LXNpZGVcIj5Db2xvcjwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1zaWRlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sb3JUeXBlIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiYm9yZGVyLTAgdy0xMDBcIiBbKG5nTW9kZWwpXT1cImRhdGEuYnV0dG9uU3R5bGUuY29sb3JUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VCdXR0b25TdHlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdHlwZSBvZiBiYWNrZ3JvdW5kVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBzdHlsZT1cInBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHR5cGUgfCB0aXRsZWNhc2UgfX08L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1ib3R0b21cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMjBcIiAqbmdJZj1cImRhdGEuYnV0dG9uU3R5bGUuY29sb3JUeXBlID09PSAnU29saWQnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1iYWNrZ3JvdW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBjbGFzcz1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLmJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImdldENvbnRyYXN0VGV4dENvbG9yKGRhdGEuYnV0dG9uU3R5bGUuYmFja2dyb3VuZClcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCJcclxuICAgICAgICAgICAgICAgICAgICAjY29sb3JJbnB1dD5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBmbGV4LWNvbHVtbiBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiY29sb3ItdGV4dCBtYi0xIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+IHt7IGdldENvbG9yTGFiZWwoKX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhLmJ1dHRvblN0eWxlLmJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29sb3JJbnB1dC5jbGljaygpXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yMFwiICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZS5jb2xvclR5cGUgPT09ICdHcmFkaWVudCdcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWJhY2tncm91bmRcIj5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjb2xvclwiIGNsYXNzPVwiY29sb3JcIiBbKG5nTW9kZWwpXT1cImRhdGEuYnV0dG9uU3R5bGUuYmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiY2hhbmdlQnV0dG9uU3R5bGUoKVwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjY29sb3JJbnB1dDE+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBjbGFzcz1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLnNlY29uZGFyeUJhY2tncm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImNoYW5nZUJ1dHRvblN0eWxlKClcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgI2NvbG9ySW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbG9yLXRleHQgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPkNvbG9yIDE8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhPy5idXR0b25TdHlsZT8uYmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbG9ySW5wdXQxLmNsaWNrKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbG9yLXRleHQgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPkNvbG9yIDI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhPy5idXR0b25TdHlsZT8uc2Vjb25kYXJ5QmFja2dyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbG9ySW5wdXQuY2xpY2soKVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JhZGllbnQtZGlyZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0LWRpcmVjdGlvbiBtdC0zIG1iLTFcIj4gRGlyZWN0aW9uPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1kaXJlY3Rpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm94LXNoYWRvdyBkLWZsZXggYnItMTAgdy04MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkaXJlY3Rpb24gb2YgZGlyZWN0aW9uVHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xvci1ib3ggZC1mbGV4IHAtMiBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBici0xMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IGRhdGEuYnV0dG9uU3R5bGU/LmdyYWRpZW50RGlyZWN0aW9uID09PSBkaXJlY3Rpb24udHlwZX1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRhdGEuYnV0dG9uU3R5bGUuZ3JhZGllbnREaXJlY3Rpb24gPSBkaXJlY3Rpb24udHlwZTtjaGFuZ2VCdXR0b25TdHlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMFwiIFtzcmNdPVwiZGlyZWN0aW9uLmljb25cIiBhbHQ9XCJpY29uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmJ1dHRvblN0eWxlPy5ncmFkaWVudERpcmVjdGlvbiAhPT0gZGlyZWN0aW9uLnR5cGVcIiBsb2FkaW5nPVwibGF6eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTBcIiBbc3JjXT1cImRpcmVjdGlvbi5hY3RpdmVJY29uXCIgYWx0PVwiaWNvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZT8uZ3JhZGllbnREaXJlY3Rpb24gPT09IGRpcmVjdGlvbi50eXBlXCIgbG9hZGluZz1cImxhenlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMjBcIiAqbmdJZj1cImRhdGEuYnV0dG9uU3R5bGUudHlwZSAhPSAnVGV4dCdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFja2dyb3VuZFwiPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiY29sb3JcIiBjbGFzcz1cImNvbG9yXCIgWyhuZ01vZGVsKV09XCJkYXRhLmJ1dHRvblN0eWxlLnRleHRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VCdXR0b25TdHlsZSgpXCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNjb2xvcklucHV0Mz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgZC1mbGV4IGZsZXgtY29sdW1uIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImNvbG9yLXRleHQgbWItMSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlRleHQgQ29sb3I8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20taW5wdXRcIiBbc3R5bGUuYmFja2dyb3VuZF09XCJkYXRhLmJ1dHRvblN0eWxlLnRleHRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbG9ySW5wdXQzLmNsaWNrKClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb3JuZXItcmFkaXVzIGJnLXdoaXRlIHAtMiAgYnItMTAgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCJcclxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmJ1dHRvblN0eWxlLnR5cGUgIT0gJ1RleHQnXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dC0xIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICBDb3JuZXIgUmFkaXVzXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJveC1zaGFkb3cgZC1mbGV4IGJyLTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzaGFwZSBvZiBidXR0b25TaGFwZXNcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbG9yLWJveCBkLWZsZXggcC0yIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGJyLTEwXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGVjdGVkJyA6IGRhdGEuYnV0dG9uU3R5bGUuc2hhcGUgPT09IHNoYXBlLnR5cGV9XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGF0YS5idXR0b25TdHlsZS5zaGFwZSA9IHNoYXBlLnR5cGU7Y2hhbmdlQnV0dG9uU3R5bGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzaGFwZS5pY29uXCIgYWx0PVwiaWNvblwiICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZS5zaGFwZSAhPT0gc2hhcGUudHlwZVwiIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNpdGlvbi1pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJzaGFwZS5hY3RpdmVJY29uXCIgYWx0PVwiaWNvblwiICpuZ0lmPVwiZGF0YS5idXR0b25TdHlsZT8uc2hhcGUgPT09IHNoYXBlLnR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIiBjbGFzcz1cInRyYW5zaXRpb24taW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBtdC0yMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkXCI+U2hvdyBJY29uPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbWwtYXV0b1wiPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJsaW5rLnNob3dJY29uXCIgcm9sZT1cInN3aXRjaFwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdj5cclxuICAgICAgICA8IS0tIDxwIGNsYXNzPVwiaGVhZGluZyBtYi0wXCI+SW1hZ2U8L3A+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW1hZ2UgY3BcIiAqbmdJZj1cImxpbmsuc2hvd0ljb24gJiYgIWxpbms/Lmljb24/LnVybFwiIChjbGljayk9XCJ1cGRhdGVJbWFnZSgpXCI+XHJcbiAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9wcm9kLXNpbXBvLnMzLmFwLXNvdXRoLTEuYW1hem9uYXdzLmNvbS9wcm9kLWltYWdlcy81NDc1MDBjMTc0NDY5ODgzMDM0M3VwbG9hZC1vbmUlMjAlMjgxJTI5LnBuZ1wiXHJcbiAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ1cGxvYWQtdGV4dCBtYi0wXCI+VXBsb2FkIGEgZmlsZTwvcD5cclxuICAgICAgICAgIDxwIGNsYXNzPVwidXBsb2FkLXRleHQgbWItMFwiPm9yIHNlbGVjdCBhbiBleGlzdGluZyBvbmU8L3A+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC10ZXh0XCI+dXAgdG8gMzJNQjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VjIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIiAqbmdJZj1cImxpbmsuc2hvd0ljb24gJiYgbGluaz8uaWNvbj8udXJsXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWltZ0xvYWRlclwiPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwibGluaz8uaWNvbj8udXJsXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXBhbGNlLWltYWdlIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInVwZGF0ZUltYWdlKClcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiB3aWR0aD1cIjI0XCJcclxuICAgICAgICAgICAgICAgIGhlaWdodD1cIjI0XCIgY2xhc3M9XCJpY29uIHctNCBoLTRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjEuNVwiXHJcbiAgICAgICAgICAgICAgICAgIGQ9XCJtNCAxNiA0LjU4NTc5LTQuNTg1OGMuNzgxMDQtLjc4MSAyLjA0NzQxLS43ODEgMi44Mjg0MSAwTDE2IDE2bS0yLTIgMS41ODU4LTEuNTg1OGMuNzgxLS43ODEgMi4wNDc0LS43ODEgMi44Mjg0IDBMMjAgMTRtLTYtNmguMDFNNiAyMGgxMmMxLjEwNDYgMCAyLS44OTU0IDItMlY2YzAtMS4xMDQ1Ny0uODk1NC0yLTItMkg2Yy0xLjEwNDU3IDAtMiAuODk1NDMtMiAydjEyYzAgMS4xMDQ2Ljg5NTQzIDIgMiAyWlwiPlxyXG4gICAgICAgICAgICAgICAgPC9wYXRoPlxyXG4gICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtaW1hZ2UgY3Vyc29yLXBvaW50ZXIgXCIgKGNsaWNrKT1cImRlbGV0ZUltYWdlKClcIj5cclxuICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cIiNmZmZmZmZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgd2lkdGg9XCIyNFwiXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyNFwiIGNsYXNzPVwiaWNvbiBoLTQgdy00XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIxLjVcIlxyXG4gICAgICAgICAgICAgICAgICBkPVwibTE5IDctLjg2NzMgMTIuMTQyNUMxOC4wNTc5IDIwLjE4OTEgMTcuMTg3IDIxIDE2LjEzNzggMjFINy44NjIyNGMtMS4wNDkyOCAwLTEuOTIwMTYtLjgxMDktMS45OTQ5Mi0xLjg1NzVMNSA3bTUgNHY2bTQtNnY2bTEtMTBWNGMwLS41NTIyOC0uNDQ3Ny0xLTEtMWgtNGMtLjU1MjI4IDAtMSAuNDQ3NzItMSAxdjNNNCA3aDE2XCI+XHJcbiAgICAgICAgICAgICAgICA8L3BhdGg+XHJcbiAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW1nTG9hZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWRfc3Bpbm5lciBkLWZsZXggdy0xMDAgaC0xMDAganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmdy1ib2xkIHAtMiBtYi0yXCI+SWNvbiBQb3NpdGlvbjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGFicyBkLWZsZXggcHgtMiBnYXAtMyBtYi0yXCIgKm5nSWY9XCJsaW5rLnNob3dJY29uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYiBweC0zIHB5LTJcIiAqbmdGb3I9XCJsZXQgdGFiIG9mIFsnbGVmdCcsJ3JpZ2h0J11cIiAoY2xpY2spPVwibGluay5pY29uLmljb25Qb3NpdGlvbiA9IHRhYlwiXHJcbiAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRUYWJdPVwibGluaz8uaWNvbj8uaWNvblBvc2l0aW9uID09IHRhYlwiPlxyXG4gICAgICAgICAge3t0YWIgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkYXRhPy5saW5rRGF0YT8ubGVuZ3RoICE9IDBcIj5cclxuXHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZ3JvdXBzIGNwXCI+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgdHlwZSBvZiBsaW5rVHlwZVwiIFtuZ0NsYXNzXT1cInsnc2VsZWN0ZWRUeXBlJyA6IHR5cGUudHlwZSA9PT0gc2VsZWN0ZWRUeXBlfVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlVHlwZSh0eXBlLnR5cGUpXCI+e3t0eXBlLnR5cGV9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZC1jb250YWluZXIgbXQtM1wiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGFnZVwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwtMSBtdC0zIG1iLTJcIj5TZWxlY3QgUGFnZTwvbGFiZWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcC1kb3duLWNvbnRhaW5lciB3LTEwMCBkLWZsZXggbWItMlwiPlxyXG4gICAgICAgICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwibGluay5wYWdlSWRcIiAobmdNb2RlbENoYW5nZSk9XCJzZXRSZWRpcmVjdFVybCgpXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L29wdGlvbj5cclxuICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBwYWdlIG9mIHRlbXBsYXRlUGFnZVwiIFt2YWx1ZV09XCJwYWdlLmlkXCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAge3twYWdlLnBhZ2VOYW1lfX08L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlNlbGVjdCBmcm9tIHlvdXIgZXhpc3RpbmcgcGFnZXM8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuc2VjdGlvblwiPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwibXQtMyBtYi0yIGlucHV0LWxhYmVsLTFcIj5TZWN0aW9uPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wLWRvd24tY29udGFpbmVyIHctMTAwIGQtZmxleCBtYi0yXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJsaW5rLnBhZ2VJZFwiIHN0eWxlPVwiY3Vyc29yOnBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCIgc2VsZWN0ZWQ+U2VsZWN0IHRoZSBTZWN0aW9uPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgc2VjdGlvbiBvZiB0ZW1wbGF0ZVBhZ2VbMF0uY29tcG9uZW50c1wiIFt2YWx1ZV09XCJzZWN0aW9uLmlkXCI+e3tzZWN0aW9uLnNlY3Rpb25OYW1lfX1cclxuICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkb3duLWFycm93IGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPjxpbWdcclxuICAgICAgICAgICAgICAgIHNyYz1cImh0dHBzOi8vcHJvZC1zaW1wby5zMy5hcC1zb3V0aC0xLmFtYXpvbmF3cy5jb20vcHJvZC1pbWFnZXMvMjY4NDEwYzE3NDIyODYwNTI5NDBEb3duJTIwMi5wbmdcIlxyXG4gICAgICAgICAgICAgICAgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICpuZ0lmPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsIHx8IGxpbmsubGlua1R5cGUgPT09IFJlZGlyZWN0aW9uTGluay5FbWFpbCB8fCBsaW5rLmxpbmtUeXBlID09PSBSZWRpcmVjdGlvbkxpbmsuUGhvbmVcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm10LTMgbWItMiBpbnB1dC1sYWJlbC0xXCI+U2VsZWN0IHR5cGU8L2xhYmVsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3AtZG93bi1jb250YWluZXIgdy0xMDAgZC1mbGV4IG1iLTJcIj5cclxuICAgICAgICAgICAgPHNlbGVjdCBbKG5nTW9kZWwpXT1cImxpbmsubGlua1R5cGVcIiBzdHlsZT1cImN1cnNvcjpwb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiIHNlbGVjdGVkPlNlbGVjdCB0aGUgVHlwZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHR5cGUgb2YgZXh0ZXJuYWxMaW5rVHlwZVwiIFt2YWx1ZV09XCJ0eXBlLnR5cGVcIj57e3R5cGUudHlwZX19PC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZG93bi1hcnJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIj48aW1nXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL3Byb2Qtc2ltcG8uczMuYXAtc291dGgtMS5hbWF6b25hd3MuY29tL3Byb2QtaW1hZ2VzLzI2ODQxMGMxNzQyMjg2MDUyOTQwRG93biUyMDIucG5nXCJcclxuICAgICAgICAgICAgICAgIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiaW5wdXQtbGFiZWwgbWItMlwiPnt7bGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsID8gJ1dlYnNpdGUnIDogbGluay5saW5rVHlwZSA9PT1cclxuICAgICAgICAgICAgUmVkaXJlY3Rpb25MaW5rLkVtYWlsID8gJ0VtYWlsIEFkZHJlc3MnIDogJ1Bob25lIE51bWJlcid9fTwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImlucHV0LXRleHRcIiBbKG5nTW9kZWwpXT1cImxpbmsucmVkaXJlY3Rpb25VcmxcIlxyXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibGluay5saW5rVHlwZSA9PT0gUmVkaXJlY3Rpb25MaW5rLkV4dGVybmFsID8gJ2V4YW1wbGUgOiBodHRwczovL2ZhY2Vib29rLmNvbSc6ICcnXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMTBcIj5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsLTJcIj5PcGVuIGluIGEgbmV3IGJyb3dzZXIgdGFiPC9sYWJlbD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoIG1sLWF1dG9cIj5cclxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBzd2l0Y2gtYnRuXCIgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJsaW5rLm5ld1RhYlwiIHJvbGU9XCJzd2l0Y2hcIj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyIHctMTAwICBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJhZGRMaW5rXCIgKGNsaWNrKT1cImFkZE5ld0xpbmsoKVwiPlVwZGF0ZSBMaW5rPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8L2Rpdj5cclxuXHJcbjwvc2VjdGlvbj4iXX0=
|