tango-app-ui-analyse-traffic 3.8.0-alpha.0 → 3.8.0-alpha.11
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/components/image-doc/image-doc.component.mjs +13 -10
- package/esm2022/lib/components/img-rvps/img-rvps.component.mjs +782 -0
- package/esm2022/lib/components/traffic-analysis/traffic-analysis.component.mjs +31 -3
- package/esm2022/lib/services/traffic-rvps.service.mjs +55 -0
- package/esm2022/lib/services/traffic.service.mjs +6 -1
- package/esm2022/lib/tango-analyse-traffic.module.mjs +6 -3
- package/fesm2022/tango-app-ui-analyse-traffic.mjs +888 -32
- package/fesm2022/tango-app-ui-analyse-traffic.mjs.map +1 -1
- package/lib/components/image-doc/image-doc.component.d.ts +3 -1
- package/lib/components/img-rvps/img-rvps.component.d.ts +96 -0
- package/lib/components/traffic-analysis/traffic-analysis.component.d.ts +1 -0
- package/lib/services/traffic-rvps.service.d.ts +19 -0
- package/lib/services/traffic.service.d.ts +1 -0
- package/lib/tango-analyse-traffic.module.d.ts +10 -9
- package/package.json +1 -1
|
@@ -14,10 +14,11 @@ import * as i2 from "tango-app-ui-global";
|
|
|
14
14
|
import * as i3 from "@ng-bootstrap/ng-bootstrap";
|
|
15
15
|
import * as i4 from "@angular/forms";
|
|
16
16
|
import * as i5 from "tango-app-ui-shared";
|
|
17
|
-
import * as i6 from "
|
|
18
|
-
import * as i7 from "@angular
|
|
19
|
-
import * as i8 from "
|
|
20
|
-
import * as i9 from "
|
|
17
|
+
import * as i6 from "../../services/traffic-rvps.service";
|
|
18
|
+
import * as i7 from "@angular/common";
|
|
19
|
+
import * as i8 from "@angular-magic/ngx-gp-autocomplete";
|
|
20
|
+
import * as i9 from "../reactive-select/reactive-select.component";
|
|
21
|
+
import * as i10 from "../../directive/magnifier.directive";
|
|
21
22
|
dayjs.extend(utc);
|
|
22
23
|
dayjs.extend(timezone);
|
|
23
24
|
export class ImageDocComponent {
|
|
@@ -27,6 +28,7 @@ export class ImageDocComponent {
|
|
|
27
28
|
modalService;
|
|
28
29
|
fb;
|
|
29
30
|
toaster;
|
|
31
|
+
rvpsService;
|
|
30
32
|
placesRef;
|
|
31
33
|
selectIndex = 0;
|
|
32
34
|
selectedTime;
|
|
@@ -67,13 +69,14 @@ export class ImageDocComponent {
|
|
|
67
69
|
missedoptunityReason = [];
|
|
68
70
|
countryList = [];
|
|
69
71
|
pendingcount;
|
|
70
|
-
constructor(service, gs, cd, modalService, fb, toaster) {
|
|
72
|
+
constructor(service, gs, cd, modalService, fb, toaster, rvpsService) {
|
|
71
73
|
this.service = service;
|
|
72
74
|
this.gs = gs;
|
|
73
75
|
this.cd = cd;
|
|
74
76
|
this.modalService = modalService;
|
|
75
77
|
this.fb = fb;
|
|
76
78
|
this.toaster = toaster;
|
|
79
|
+
this.rvpsService = rvpsService;
|
|
77
80
|
this.form = this.fb.group({
|
|
78
81
|
selectValue: new FormControl('') // Initialize as FormControl
|
|
79
82
|
});
|
|
@@ -822,14 +825,14 @@ export class ImageDocComponent {
|
|
|
822
825
|
const control = this.userForm.get(fieldName);
|
|
823
826
|
return !!(control && control.invalid && (control.touched || this.submitted));
|
|
824
827
|
}
|
|
825
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, deps: [{ token: i1.TrafficService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.NgbModal }, { token: i4.FormBuilder }, { token: i5.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
826
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageDocComponent, selector: "lib-image-doc", viewQueries: [{ propertyName: "placesRef", first: true, predicate: ["ngxPlaces"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"], dependencies: [{ kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i7.NgxGpAutocompleteDirective, selector: "[ngx-gp-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "component", type: i8.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"], outputs: ["valueChange"] }, { kind: "directive", type: i9.MagnifierDirective, selector: "[appMagnifier]" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
|
|
828
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, deps: [{ token: i1.TrafficService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.NgbModal }, { token: i4.FormBuilder }, { token: i5.ToastService }, { token: i6.TrafficRvpsService }], target: i0.ɵɵFactoryTarget.Component });
|
|
829
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImageDocComponent, selector: "lib-image-doc", viewQueries: [{ propertyName: "placesRef", first: true, predicate: ["ngxPlaces"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <section *ngIf=\"headerData?.client ==='11'\">\r\n <img class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\"> <!--(click)=\"imageView(obj,objData.footfallDate)\" -->\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n </section>\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <section *ngIf=\"headerData.client ==='11'\">\r\n <span *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>\r\n\r\n", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"], dependencies: [{ kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i4.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i4.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "directive", type: i8.NgxGpAutocompleteDirective, selector: "[ngx-gp-autocomplete]", inputs: ["options"], outputs: ["onAddressChange"], exportAs: ["ngx-places"] }, { kind: "component", type: i9.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"], outputs: ["valueChange"] }, { kind: "directive", type: i10.MagnifierDirective, selector: "[appMagnifier]" }, { kind: "pipe", type: i7.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i7.DatePipe, name: "date" }] });
|
|
827
830
|
}
|
|
828
831
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageDocComponent, decorators: [{
|
|
829
832
|
type: Component,
|
|
830
|
-
args: [{ selector: "lib-image-doc", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"] }]
|
|
831
|
-
}], ctorParameters: () => [{ type: i1.TrafficService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.NgbModal }, { type: i4.FormBuilder }, { type: i5.ToastService }], propDecorators: { placesRef: [{
|
|
833
|
+
args: [{ selector: "lib-image-doc", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n \r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\" viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <section *ngIf=\"isAccordionExpanded\">\r\n <div class=\"col-md-12 px-5\" *ngIf=\"!hideDoc\">\r\n <div class=\"switch-form-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <svg width=\"46\" height=\"46\" viewBox=\"0 0 46 46\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" fill=\"#DAF1FF\" />\r\n <rect x=\"3\" y=\"3\" width=\"40\" height=\"40\" rx=\"20\" stroke=\"#EAF8FF\" stroke-width=\"6\" />\r\n <path d=\"M23.8333 14.6666L15.5 24.6666H23L22.1667 31.3333L30.5 21.3333H23L23.8333 14.6666Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"txt-one ms-2\">\r\n <ng-container>Examine individual footfall in gallery view with optimal sample images for detailed analysis.</ng-container>\r\n <!-- <ng-container *ngIf=\"isMultiple\">Upload multiple stores for configuration</ng-container> -->\r\n </div>\r\n </div>\r\n <div class=\"cursor-pointer\" (click)=\"closeData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M18.295 7.115C18.6844 6.72564 18.6844 6.09436 18.295 5.705C17.9056 5.31564 17.2744 5.31564 16.885 5.705L12 10.59L7.115 5.705C6.72564 5.31564 6.09436 5.31564 5.705 5.705C5.31564 6.09436 5.31564 6.72564 5.705 7.115L10.59 12L5.705 16.885C5.31564 17.2744 5.31564 17.9056 5.705 18.295C6.09436 18.6844 6.72564 18.6844 7.115 18.295L12 13.41L16.885 18.295C17.2744 18.6844 17.9056 18.6844 18.295 18.295C18.6844 17.9056 18.6844 17.2744 18.295 16.885L13.41 12L18.295 7.115Z\"\r\n fill=\"black\" />\r\n </svg>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n </div>\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n <div class=\"ms-auto text-end\">\r\n <form *ngIf=\"!normalize && !clientData?.isFootfallView\" [formGroup]=\"form\">\r\n <lib-reactive-select \r\n [formControl]=\"selectControl\" \r\n [idField]=\"'value'\"\r\n [nameField]=\"'label'\"\r\n [data]=\"datasets\"\r\n class=\"w-100 text-start\"\r\n (valueChange)=\"onValueChange($event)\">\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n <ng-container *ngIf=\"this.headerData?.client !=='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"this.headerData?.client ==='459'\">\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray.slice(0, -1)\">\r\n <ul *ngIf=\"lengthValue\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.folderName)\"\r\n [ngClass]=\"selectedTime === obj?.folderName ? 'active' : ''\" class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.folderName}}<span class=\"mx-2 \" [ngClass]=\"selectedTime === obj?.folderName ? 'badge-num-primary' :'badge-num-muted'\">{{obj?.count?obj?.count:0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div *ngIf=\"normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata1\" src=\"./assets/tango/Icons/not-applicable.svg\" alt=\"\">\r\n <div class=\"nodata-title mt-3\">Data Not Found</div>\r\n <div class=\"nodata-sub\">Normalized data is not applicable</div>\r\n </div>\r\n <div *ngIf=\"!normalize\" class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this image directory</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n <section *ngIf=\"headerData?.client ==='11'\">\r\n <img class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\"> <!--(click)=\"imageView(obj,objData.footfallDate)\" -->\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n <img *ngIf=\"obj.images.entryTimeImage&&clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"revopTagging(obj)\">\r\n </section>\r\n <img *ngIf=\"obj.images.entryTimeImage&&!clientData?.isRevops\" class=\"img-src cursor-pointer\" [src]=\"obj.images.entryTimeImage\" (error)=\"obj?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageView(obj,objData.footfallDate)\">\r\n <div *ngIf=\"!obj.images.entryTimeImage\" class=\"no-preview\">\r\n <span class=\"mb-5\" >\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{obj.tempId}}</span> \r\n <!-- <span *ngIf=\"selectControl.value ==='missedOpportunity'\" class=\"badge badge-light-success ms-2\">Missed Opportunity</span>\r\n <span *ngIf=\"selectControl.value ==='bounced'\" class=\"badge badge-light-success ms-2\">Bounced Footfall</span> -->\r\n <span *ngIf=\"obj?.revopsType || selectControl.value as value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall'|| !value ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion',\r\n \r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </div>\r\n <div class=\"py-2 img-doc-time\">Entry Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Exit Time</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-time\">Total Time Spent</div>\r\n </div>\r\n <div class=\"col-md-5 text-end\" >\r\n <div class=\"py-2 mt-4\" *ngIf=\"!clientData?.isRevops\"></div>\r\n \r\n <div class=\"py-2\" *ngIf=\"clientData?.isRevops\">\r\n <section *ngIf=\"headerData.client ==='11'\">\r\n <span *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n <section *ngIf=\"headerData.client !=='11'\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"!obj?.revopsType||obj?.revopsType===''\" ngbTooltip=\"Yet to tag the customer\" (click)=\"revopTagging(obj)\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22852)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.37328 0.00201606C7.20932 -0.023315 6.05385 0.205711 4.98755 0.673106C3.92125 1.1405 2.96981 1.835 2.19967 2.70811C1.42952 3.58123 0.859225 4.61192 0.528596 5.72822C0.197966 6.84453 0.114971 8.01955 0.285404 9.17124C0.455837 10.3229 0.875591 11.4236 1.51536 12.3963C2.15513 13.369 2.9995 14.1903 3.98951 14.8029C4.97953 15.4156 6.09133 15.8048 7.2473 15.9433C8.40326 16.0818 9.57554 15.9664 10.6823 15.605C10.8714 15.5432 11.0282 15.4088 11.1182 15.2314C11.2082 15.054 11.2241 14.8481 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6113 14.1331 10.4054 14.1172 10.2163 14.179C9.01359 14.5717 7.72242 14.6049 6.50114 14.2745C5.27986 13.9441 4.18155 13.2644 3.34092 12.3189C2.50028 11.3734 1.95386 10.2031 1.76867 8.95151C1.58348 7.69995 1.76757 6.42155 2.29837 5.27309C2.82916 4.12463 3.68358 3.15604 4.75684 2.48611C5.83011 1.81618 7.07555 1.47403 8.34044 1.50163C9.60533 1.52922 10.8347 1.92536 11.8777 2.64147C12.9207 3.35757 13.7321 4.3625 14.2123 5.53302C14.2877 5.71708 14.4332 5.86362 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44721 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05515 15.6003 4.96402C15.0093 3.52331 14.0107 2.28639 12.7269 1.40498C11.4432 0.523571 9.93012 0.0359815 8.37328 0.00201606ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.58796 3.07903 8.39719 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41428 9.72302C5.34059 9.79168 5.28149 9.87448 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.26788 10.646 5.32402 10.7308 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.32282 10.9158 6.40562 10.8567 6.47428 10.783L8.72828 8.53002L8.94828 8.31002V3.75002ZM15.1983 15C15.1983 15.2652 15.0929 15.5196 14.9054 15.7071C14.7179 15.8947 14.4635 16 14.1983 16C13.9331 16 13.6787 15.8947 13.4912 15.7071C13.3036 15.5196 13.1983 15.2652 13.1983 15C13.1983 14.7348 13.3036 14.4804 13.4912 14.2929C13.6787 14.1054 13.9331 14 14.1983 14C14.4635 14 14.7179 14.1054 14.9054 14.2929C15.0929 14.4804 15.1983 14.7348 15.1983 15ZM14.9483 8.75002C14.9483 8.5511 14.8693 8.36034 14.7286 8.21969C14.588 8.07903 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07903 13.668 8.21969C13.5273 8.36034 13.4483 8.5511 13.4483 8.75002V12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3972 13 14.588 12.921 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V8.75002Z\" fill=\"#F79009\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.1858 4.10379C15.0996 3.94907 15.0083 3.79744 14.9121 3.64911C14.5747 3.12843 14.1776 2.64854 13.7289 2.21932C13.4187 1.92257 13.0839 1.65004 12.7269 1.40498C12.7269 1.40493 12.727 1.40504 12.7269 1.40498C12.5144 1.25906 12.2954 1.12379 12.0711 0.999729C11.8255 0.863893 11.5734 0.741322 11.3159 0.632377C10.3882 0.239873 9.39006 0.024199 8.37328 0.00201606C8.37324 0.00201518 8.37332 0.00201694 8.37328 0.00201606C8.31496 0.00074779 8.25655 0.000115387 8.19828 0.000122124C7.1276 0.00024592 6.06754 0.215304 5.08108 0.632816C5.04983 0.646043 5.01865 0.659473 4.98755 0.673106C4.76115 0.772343 4.53993 0.88182 4.32452 1.00107C4.20201 1.06889 4.08139 1.13987 3.96275 1.21393C3.30756 1.62296 2.71329 2.12581 2.19967 2.70811C1.68602 3.29043 1.26127 3.94285 0.937232 4.644C0.775415 4.99414 0.638713 5.35643 0.528596 5.72822C0.19799 6.84445 0.114983 8.01938 0.285366 9.17099C0.285354 9.17091 0.285379 9.17108 0.285366 9.17099C0.4558 10.3227 0.875591 11.4236 1.51536 12.3963C1.72835 12.7201 1.96402 13.0271 2.22019 13.3153C2.73349 13.8927 3.32909 14.3943 3.98951 14.8029C4.64967 15.2115 5.36398 15.5206 6.10943 15.7224C6.4819 15.8232 6.86215 15.8971 7.2473 15.9433C7.29123 15.9486 7.33519 15.9535 7.37917 15.958C8.01492 16.0235 8.65464 16.0124 9.28478 15.9261C9.52146 15.8937 9.75678 15.8507 9.99004 15.7971C10.223 15.7436 10.4539 15.6796 10.6819 15.6051C10.6818 15.6052 10.6821 15.6051 10.6819 15.6051C10.7196 15.5928 10.7563 15.5775 10.7911 15.5597C10.9312 15.488 11.0461 15.3735 11.1182 15.2314C11.1554 15.1581 11.18 15.0799 11.1916 15C11.2081 14.8867 11.1985 14.77 11.1623 14.659C11.1005 14.4699 10.9661 14.3131 10.7887 14.2231C10.6114 14.1331 10.4056 14.1172 10.2166 14.1789C10.2165 14.1789 10.2168 14.1789 10.2166 14.1789C10.1121 14.213 10.0065 14.2446 9.90073 14.2733C9.74848 14.3146 9.59506 14.3503 9.44078 14.3803C9.37146 14.3938 9.30196 14.4062 9.23233 14.4174C8.8548 14.4782 8.47302 14.5055 8.09144 14.4992C7.99568 14.4976 7.89992 14.4939 7.80426 14.4881C7.6779 14.4804 7.55168 14.4691 7.42578 14.454C7.36133 14.4463 7.29696 14.4376 7.23269 14.4279C6.98693 14.391 6.74267 14.3399 6.50114 14.2745C6.32933 14.228 6.15995 14.1746 5.99337 14.1146C5.56809 13.9612 5.16112 13.7642 4.7787 13.5276C4.73373 13.4998 4.68911 13.4714 4.64483 13.4425C4.27003 13.1978 3.92028 12.9142 3.60174 12.5956C3.51229 12.5061 3.42531 12.4138 3.34092 12.3189C3.13139 12.0832 2.94014 11.8336 2.76821 11.5722C2.76385 11.5656 2.7595 11.559 2.75516 11.5523C2.47964 11.1301 2.25437 10.6775 2.08368 10.2039C1.93807 9.79993 1.83218 9.38061 1.76871 8.95174C1.76869 8.95166 1.76872 8.95182 1.76871 8.95174C1.74125 8.76621 1.72188 8.57986 1.71059 8.39367C1.70471 8.29683 1.70101 8.19998 1.69948 8.10317C1.68902 7.44355 1.77905 6.78626 1.96631 6.15405C2.0552 5.85394 2.16601 5.55947 2.29837 5.27309C2.56378 4.69883 2.91011 4.16954 3.32425 3.70007C3.36618 3.65254 3.4088 3.60563 3.4521 3.55934C3.83649 3.14848 4.27458 2.78714 4.75684 2.48611C5.02452 2.31903 5.30291 2.17233 5.58963 2.04668C5.80471 1.95242 6.02449 1.87 6.24796 1.7997C6.87628 1.60202 7.5338 1.50012 8.19828 1.50008C8.24563 1.50008 8.29302 1.50059 8.34044 1.50163C8.95745 1.51511 9.5662 1.61629 10.1488 1.79952C10.7605 1.99189 11.3435 2.27472 11.8777 2.64147C11.8776 2.64142 11.8778 2.64151 11.8777 2.64147C12.0839 2.78304 12.2812 2.93603 12.4685 3.09922C12.6351 3.24436 12.7939 3.39767 12.9444 3.55848C13.0974 3.72197 13.2419 3.89322 13.3771 4.07152C13.5555 4.3066 13.7179 4.55395 13.8631 4.81195C13.9427 4.95336 14.0171 5.09798 14.0861 5.24552C14.1253 5.32914 14.1627 5.41371 14.1983 5.49916C14.203 5.51043 14.2076 5.52172 14.2123 5.53302C14.2122 5.53292 14.2123 5.53312 14.2123 5.53302C14.2878 5.71693 14.4333 5.86367 14.6167 5.94042C14.7076 5.97845 14.805 5.9982 14.9035 5.99856C15.002 5.99892 15.0996 5.97988 15.1908 5.94252C15.2819 5.90516 15.3648 5.85021 15.4347 5.78082C15.5046 5.71142 15.5602 5.62894 15.5982 5.53808C15.6362 5.44722 15.656 5.34975 15.6563 5.25126C15.6567 5.15276 15.6376 5.05516 15.6003 4.96402C15.6002 4.9639 15.6003 4.96414 15.6003 4.96402C15.5091 4.74187 15.4082 4.5242 15.2981 4.31229C15.2617 4.2422 15.2242 4.17269 15.1858 4.10379ZM8.94828 3.75002C8.94828 3.5511 8.86926 3.36034 8.72861 3.21969C8.61405 3.10512 8.46624 3.03145 8.30786 3.00806C8.27188 3.00276 8.23508 3.00002 8.19828 3.00002C7.99937 3.00002 7.8086 3.07903 7.66795 3.21969C7.5273 3.36034 7.44828 3.5511 7.44828 3.75002V7.69002L5.41452 9.72278C5.40159 9.73483 5.38887 9.74755 5.37686 9.76044C5.32041 9.82102 5.2743 9.89062 5.2405 9.96648C5.19951 10.0585 5.17746 10.1578 5.17569 10.2585C5.17391 10.3592 5.19244 10.4592 5.23016 10.5526C5.23863 10.5736 5.24804 10.5942 5.25834 10.6142C5.29387 10.6834 5.34002 10.7468 5.39524 10.8021C5.46646 10.8733 5.55129 10.9294 5.64468 10.9671C5.73807 11.0049 5.8381 11.0234 5.9388 11.0216C6.03951 11.0198 6.13882 10.9978 6.23082 10.9568C6.30668 10.923 6.37628 10.8769 6.43686 10.8204C6.44966 10.8085 6.46206 10.7961 6.47403 10.7833C6.47395 10.7834 6.47411 10.7832 6.47403 10.7833L8.94828 8.31002V3.75002ZM13.4483 12.25C13.4483 12.4489 13.5273 12.6397 13.668 12.7803C13.8086 12.921 13.9994 13 14.1983 13C14.3895 13 14.5732 12.927 14.7121 12.7963C14.7177 12.7911 14.7232 12.7858 14.7286 12.7803C14.8693 12.6397 14.9483 12.4489 14.9483 12.25V10.0566C14.7015 10.0191 14.4509 10 14.1983 10C13.9457 10 13.695 10.0191 13.4483 10.0566V12.25ZM13.4483 9.76927C13.6932 9.84828 13.9441 9.90719 14.1983 9.94551C14.4264 9.97989 14.6572 9.99769 14.8889 9.99854C14.9087 9.99861 14.9285 9.99856 14.9483 9.99838V8.75002C14.9483 8.65356 14.9297 8.55901 14.8945 8.47117C14.8571 8.37787 14.8011 8.29213 14.7286 8.21969C14.588 8.07904 14.3972 8.00002 14.1983 8.00002C13.9994 8.00002 13.8086 8.07904 13.668 8.21969C13.665 8.22268 13.662 8.22569 13.6591 8.22872C13.5282 8.3641 13.453 8.54376 13.4485 8.73188C13.4484 8.73792 13.4483 8.74397 13.4483 8.75002V9.76927ZM15.1963 15.0626C15.1976 15.0418 15.1983 15.0209 15.1983 15C15.1983 14.9984 15.1983 14.9968 15.1983 14.9951C15.197 14.7317 15.0918 14.4793 14.9054 14.2929C14.7178 14.1054 14.4635 14 14.1983 14C13.9331 14 13.6787 14.1054 13.4912 14.2929C13.3036 14.4804 13.1983 14.7348 13.1983 15C13.1983 15.2652 13.3036 15.5196 13.4912 15.7071C13.6787 15.8947 13.9331 16 14.1983 16C14.4635 16 14.7178 15.8947 14.9054 15.7071C15.0781 15.5344 15.1811 15.305 15.1963 15.0626Z\" fill=\"#F79009\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22852\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.199219)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" *ngIf=\"obj?.revopsType&&obj?.revopsType!==''\" (click)=\"revopTagging(obj)\" ngbTooltip=\"Customer Tagging is Done\" placement=\"top\"> <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"17\" height=\"16\" viewBox=\"0 0 17 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10335_22856)\">\r\n <path d=\"M15.0638 7.38662V7.99995C15.063 9.43756 14.5975 10.8364 13.7367 11.9878C12.8759 13.1393 11.666 13.9816 10.2874 14.3892C8.90876 14.7968 7.43531 14.7479 6.08678 14.2497C4.73826 13.7515 3.58691 12.8307 2.80444 11.6247C2.02198 10.4186 1.65033 8.99199 1.74492 7.55749C1.83951 6.12299 2.39527 4.7575 3.32932 3.66467C4.26337 2.57183 5.52566 1.81021 6.92793 1.49338C8.3302 1.17656 9.79731 1.32151 11.1105 1.90662M15.0638 2.66662L8.39714 9.33995L6.39714 7.33995\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10335_22856\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.398438)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </section>\r\n </div>\r\n <div class=\"py-2 img-doc-value\">{{obj.timeSpent.entryTime}} </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.exitTime}}</div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"py-2 img-doc-value\">{{obj.timeSpent.totalTimeSpent}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-between align-items-center px-0\">\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" (click)=\"backToView()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-2 py-2 img-doc-directory\"><span class=\"badge badge-light-info\">{{Imagedata.tempId}}</span> \r\n <ng-container *ngIf=\"selectControl.value as value\">\r\n <span *ngIf=\"value\"\r\n class=\"badge ms-2\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': value === 'footfall' ,\r\n 'badge-light-success': value === 'purchaser',\r\n 'badge-light-warning': value === 'nonShopper',\r\n 'badge-light-danger': value === 'bounced' || value === 'engager' || value === 'missedOpportunity' || value === 'conversion'\r\n }\">\r\n {{\r\n value === 'purchaser' ? 'Purchaser' :\r\n value === 'nonShopper' ? 'Non Shopper' :\r\n value === 'missedOpportunity' ? 'Missed Opportunity' :\r\n (value | titlecase)\r\n }}\r\n </span>\r\n </ng-container>\r\n \r\n \r\n </span>\r\n </div>\r\n <div class=\"\">\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isFirstImage() }\"\r\n [style.pointer-events]=\"isFirstImage() ? 'none' : 'auto'\"\r\n (click)=\"!isFirstImage() && previous()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 8C0.5 3.85786 3.85786 0.5 8 0.5H39.5V39.5H8C3.85786 39.5 0.5 36.1421 0.5 32V8Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M22.5 25L17.5 20L22.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"cursor-pointer\" [ngClass]=\"{ 'cursor-not-allowed opacity-50': isLastImage() }\"\r\n [style.pointer-events]=\"isLastImage() ? 'none' : 'auto'\"\r\n (click)=\"!isLastImage() && next()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\">\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n fill=\"white\" />\r\n <path d=\"M0.5 0.5H32C36.1421 0.5 39.5 3.85786 39.5 8V32C39.5 36.1421 36.1421 39.5 32 39.5H0.5V0.5Z\"\r\n stroke=\"#D0D5DD\" />\r\n <path d=\"M17.5 25L22.5 20L17.5 15\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row contain mt-10\">\r\n <div class=\"col-md-6 col-lg-6 col-xl-6\">\r\n <img class=\"img-src1\" [src]=\"Images\"\r\n (error)=\"Images = null\" alt=\"\" appMagnifier >\r\n \r\n <!-- {{myThumbnail}}\r\n <ngx-image-zoom\r\n [thumbImage]=myThumbnail\r\n [fullImage]=myFullresImage\r\n [magnification]=\"1\"\r\n [enableScrollZoom]=\"true\"\r\n [enableLens]=\"true\"\r\n [lensWidth]=\"200\"\r\n [lensHeight]=\"200\"\r\n ></ngx-image-zoom> -->\r\n <div *ngIf=\"!Images\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\" d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n \r\n \r\n \r\n <div class=\"row slider mt-5\">\r\n <ng-container>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.entryTimeImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.entryTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.entryTimeImage\r\n }\">\r\n <div>Entry Time1</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.entryTimeImage\"\r\n (error)=\"Imagedata?.images.entryTimeImage = null\" alt=\"\" (click)=\"imageData('entry')\">\r\n <div *ngIf=\"!Imagedata?.images?.entryTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\" *ngIf=\"Imagedata?.images?.staffEngagementImage\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.staffEngagementImage,\r\n 'border-gray': Images !== Imagedata?.images?.staffEngagementImage\r\n }\">\r\n <div>Staff Engagement</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.staffEngagementImage\"\r\n (error)=\"Imagedata?.images.staffEngagementImage = null\" alt=\"\" (click)=\"imageData('staff')\">\r\n <div *ngIf=\"!Imagedata?.images?.staffEngagementImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 \" *ngIf=\"Imagedata?.images?.exitTimeImage && footfallDataShow !=='tracking-enabled'\">\r\n <div class=\"mb-5 border-2\" [ngClass]=\"{\r\n 'border-gray-active': Images === Imagedata?.images?.exitTimeImage,\r\n 'border-gray': Images !== Imagedata?.images?.exitTimeImage\r\n }\">\r\n <div>Exit Time</div>\r\n <img class=\"cursor-pointer w-100 rounded-2 mh-100px pb-1\"\r\n [src]=\"Imagedata?.images?.exitTimeImage\"\r\n (error)=\"Imagedata?.images.exitTimeImage = null\" alt=\"\" (click)=\"imageData('exit')\">\r\n <div *ngIf=\"!Imagedata?.images?.exitTimeImage\" class=\"no-preview-sm cursor-pointer\">\r\n <span class=\"mb-2\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n \r\n </span>\r\n <span class=\"header mb-2 text-center\">Preview not available</span>\r\n <span class=\"description mb-2 text-center\">The selected camera is not available\r\n at\r\n the\r\n moment.</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n \r\n </div>\r\n <div class=\"col-md-6 col-lg-6 col-xl-6 pe-0 mb-3\">\r\n <ul class=\"nav flex-wrap nav-dev fw-bold align-items-center\">\r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'tagged'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'tagged'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Tagged Info\r\n </a>\r\n </li>\r\n \r\n <li class=\"nav-item my-1 w-50\">\r\n <a (click)=\"selectedTab = 'customer'\" [ngClass]=\"{\r\n 'tab-active': selectedTab === 'customer'\r\n }\" class=\"tab-text-default btn nav-link px-3 px-lg-8 mx-1\">\r\n Customer Info\r\n </a>\r\n </li>\r\n </ul>\r\n <section *ngIf=\"selectedTab === 'tagged'\">\r\n <div class=\"row mx-3 mt-5 mb-3\">\r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioNonShopper\"\r\n value=\"nonShopper\" [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('nonShopper')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioNonShopper\">\r\n Non Shopper\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioPurchaser\" value=\"purchaser\"\r\n [(ngModel)]=\"selectedCustomerType\" (change)=\"onRadioChange('purchaser')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioPurchaser\">\r\n Purchaser\r\n </label>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-4 form-check mt-5 px-1\">\r\n <div class=\"form-check \">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"exampleRadios\" id=\"radioMissed\"\r\n value=\"missedOpportunity\" [(ngModel)]=\"selectedCustomerType\"\r\n (change)=\"onRadioChange('missedOpportunity')\">\r\n <label class=\"form-check-label cursor-pointer toggle-label\" for=\"radioMissed\">\r\n Missed Opportunity\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <section *ngIf=\"selectedCustomerType ==='nonShopper'\">\r\n <div class=\"row mt-5 mx-3\">\r\n <div class=\"border-gray-active1\">\r\n <span *ngFor=\"let obj of nonShopperList\" class=\"cursor-pointer\">\r\n <div class=\"badge mt-3 me-8\" [ngClass]=\"obj!==nonShoperType ? 'badge-light-default' :'badge-light-primary'\" (click)=\"selectnonShoper(obj)\" >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj!==nonShoperType\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" *ngIf=\"obj===nonShoperType\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n <span class=\"ms-3\">{{obj}}</span></div>\r\n </span>\r\n \r\n <div class=\"col-md-12 mt-5 pb-10\">\r\n <div class=\"form-group\">\r\n <label for=\"exampleInputName\">Description (Optional)</label>\r\n <textarea [(ngModel)]=\"description\" class=\"form-control mt-3\" rows=\"4\" placeholder=\"\"></textarea>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\" (click)=\"nonShopperSubmit()\" >\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='purchaser'\">\r\n <div class=\"row mt-5\">\r\n <form [formGroup]=\"userForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"row border-gray-active1\">\r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"name\">Name<span class=\"alert-required text-danger\">*</span></label>\r\n <input\r\n type=\"text\"\r\n id=\"name\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Enter Name\" autocomplete=\"off\"\r\n formControlName=\"name\" required [ngClass]=\"{ 'is-invalid':userForm.get('name')?.invalid && (userForm.get('name')?.touched)}\"\r\n />\r\n <div *ngIf=\"isInvalid('name')\" class=\"text-danger\">\r\n <div *ngIf=\"f.name.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact Number <span class=\"alert-required text-danger\">*</span></label>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <select class=\"form-select ps-3 pe-8\" id=\"inputGroupSelect01\" formControlName=\"countryCode\">\r\n <option *ngFor=\"let country of countryList\" [value]=\"country.phonecode\">\r\n {{country.name}} ({{country.phonecode}})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-6 col-xl-6\">\r\n <input type=\"text\" class=\"form-control\" (keypress)=\"omit_special_char($event)\"\r\n id=\"mobile\" autocomplete=\"off\" formControlName=\"mobile\" minlength=\"8\" maxlength=\"13\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('mobile')?.invalid && (userForm.get('mobile')?.touched)}\">\r\n <div *ngIf=\"isInvalid('mobile')\" class=\"text-danger\">\r\n <div *ngIf=\"f.mobile.errors?.required\">Contact Number is required.</div>\r\n <div *ngIf=\"f.mobile.errors?.minlength\">Contact Number must be at least 8 digits.</div>\r\n <div *ngIf=\"f.mobile.errors?.maxlength\">Contact Number cannot exceed 13 digits.</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 col-lg-6 col-xl-6 col-xxl-6 mt-3\">\r\n <label for=\"email\" class=\"form-label\">Email </label>\r\n <input type=\"email\" class=\"form-control\" id=\"email\" formControlName=\"email\" autocomplete=\"off\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('email')?.invalid && (userForm.get('email')?.touched)}\">\r\n <div *ngIf=\"isInvalid('email')\" class=\"text-danger\">\r\n <div *ngIf=\"f.email.errors?.pattern\">Invalid email format.</div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"location\">Location</label>\r\n <!-- <input\r\n type=\"text\"\r\n id=\"location\"\r\n class=\"form-control mt-3\"\r\n placeholder=\"Location\"\r\n formControlName=\"location\"\r\n /> -->\r\n <input type=\"text\" class=\"form-control mt-3\" id=\"location\" formControlName=\"location\" #placesRef=\"ngx-places\" ngx-gp-autocomplete (onAddressChange)=\"handleAddressChange($event)\"\r\n [ngClass]=\"{ 'is-invalid':userForm.get('location')?.invalid && (userForm.get('location')?.touched)}\">\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"age\">Age</label>\r\n <select class=\"form-select mt-3\" formControlName=\"age\">\r\n <option value=\"\">Select Age</option>\r\n <option value=\"Below 12\">Below 12</option>\r\n <option value=\"13-19\">13\u201319</option>\r\n <option value=\"20\u201330\">20\u201330</option>\r\n <option value=\"31\u201345\">31\u201345</option>\r\n <option value=\"46\u201359\">46\u201359</option>\r\n <option value=\"Above 60\">Above 60</option>\r\n </select>\r\n <!-- <div class=\"input-group\">\r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"left: 0.25rem;\"\r\n (click)=\"decrementAge()\"\r\n >\r\n -\r\n </button>\r\n \r\n <input\r\n type=\"text\" (keypress)=\"omit_special_char($event)\"\r\n id=\"age\"\r\n class=\"form-control pe-5 text-center mt-3\"\r\n formControlName=\"age\"\r\n min=\"1\" max=\"99\"\r\n />\r\n \r\n <button\r\n type=\"button\"\r\n class=\"btn pt-5 position-absolute top-50 translate-middle-y\"\r\n style=\"right: 2.5rem;\"\r\n (click)=\"incrementAge()\"\r\n >\r\n +\r\n </button>\r\n </div> -->\r\n \r\n </div>\r\n </div>\r\n \r\n <div class=\"col-md-6 mt-3\">\r\n <div class=\"form-group\">\r\n <label for=\"gender\">Gender</label>\r\n <select class=\"form-select mt-3\" formControlName=\"gender\">\r\n <option value=\"\">Select Gender</option>\r\n <option value=\"male\">Male</option>\r\n <option value=\"female\">Female</option>\r\n </select>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </form>\r\n \r\n \r\n </div>\r\n </section>\r\n <section *ngIf=\"selectedCustomerType ==='missedOpportunity'\">\r\n <div class=\"row mt-5 mx-3 border-gray-active1\">\r\n \r\n <div\r\n *ngFor=\"let obj of missedOpportunityList\"\r\n class=\"nav-item nav-item1 w-25\"\r\n (click)=\"selectedTabs(obj.name)\">\r\n <span\r\n [ngClass]=\"selectedMissed === obj.name ? 'active' : 'active-normal'\"\r\n class=\"nav-link nav-link1 cursor-pointer text-nowrap\">\r\n {{ obj.name }}\r\n </span>\r\n </div>\r\n \r\n <div class=\"separator separator-double mb-3\"></div>\r\n <!-- Issue Badges -->\r\n <div *ngFor=\"let obj of missedOpportunityList\">\r\n <div *ngIf=\"selectedMissed === obj.name\" class=\"mt-4\">\r\n <span *ngFor=\"let item of obj.issues\">\r\n \r\n <span\r\n (click)=\"selectSubissue(obj, item)\"\r\n [ngClass]=\"{\r\n 'badge-light-primary': selectedIssues.includes(item),\r\n 'badge-light-default':!selectedIssues.includes(item)\r\n }\"\r\n class=\"badge mt-2 me-2 cursor-pointer\">\r\n <span class=\"me-2\" *ngIf=\"!selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M6 2.5V9.5M2.5 6H9.5\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span class=\"me-2\" *ngIf=\"selectedIssues.includes(item)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" rx=\"8\" fill=\"#DAF1FF\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.3977 4.92661L6.62434 9.53328L5.35767 8.17994C5.12434 7.95994 4.75767 7.94661 4.491 8.13328C4.231 8.32661 4.15767 8.66661 4.31767 8.93994L5.81767 11.3799C5.96434 11.6066 6.21767 11.7466 6.50434 11.7466C6.77767 11.7466 7.03767 11.6066 7.18434 11.3799C7.42434 11.0666 12.0043 5.60661 12.0043 5.60661C12.6043 4.99328 11.8777 4.45328 11.3977 4.91994V4.92661Z\" fill=\"#33B5FF\"/>\r\n </svg>\r\n </span>\r\n {{ item }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n \r\n <div class=\"mt-4\">\r\n <label class=\"form-label\">Description (Optional)</label>\r\n <textarea\r\n rows=\"3\"\r\n class=\"form-control\"\r\n placeholder=\"Enter comments\"\r\n [(ngModel)]=\"description\"\r\n ></textarea>\r\n </div>\r\n \r\n \r\n <div class=\"text-end mt-5\" (click)=\"submitMissedOpportunity()\">\r\n <button type=\"submit\" class=\"btn btn-primary mt-3\">Submit</button>\r\n </div>\r\n </div>\r\n </section>\r\n </section>\r\n <section *ngIf=\"selectedTab === 'customer'\">\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Tagged Summary <span *ngIf=\"tagggedData?.status==='submitted'\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M14.6668 7.38674V8.00007C14.666 9.43769 14.2005 10.8365 13.3397 11.988C12.4789 13.1394 11.269 13.9817 9.8904 14.3893C8.51178 14.797 7.03834 14.748 5.68981 14.2498C4.34128 13.7516 3.18993 12.8308 2.40747 11.6248C1.62501 10.4188 1.25336 8.99211 1.34795 7.55761C1.44254 6.12312 1.9983 4.75762 2.93235 3.66479C3.8664 2.57195 5.12869 1.81033 6.53096 1.4935C7.93323 1.17668 9.40034 1.32163 10.7135 1.90674M14.6668 2.66674L8.00017 9.34007L6.00017 7.34007\" stroke=\"#12B76A\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> </span>\r\n </div>\r\n <div class=\"col-md-6 text-end\" *ngIf=\"tagggedData?.status!=='submitted'\">\r\n <span class=\"badge badge-light-warning ms-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10901_7795)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.13152 0.00142049C5.25855 -0.0175778 4.39195 0.154192 3.59222 0.504738C2.7925 0.855283 2.07892 1.37616 1.50131 2.03099C0.923703 2.68583 0.495981 3.45885 0.248009 4.29608C3.70294e-05 5.1333 -0.0622095 6.01457 0.0656154 6.87834C0.19344 7.74212 0.508256 8.56758 0.988083 9.29711C1.46791 10.0266 2.10119 10.6426 2.8437 11.1021C3.58621 11.5616 4.42006 11.8535 5.28703 11.9574C6.15401 12.0613 7.03322 11.9747 7.86327 11.7037C8.0051 11.6573 8.1227 11.5565 8.19022 11.4235C8.25773 11.2904 8.26962 11.136 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81002 10.5997 7.6556 10.5878 7.51377 10.6342C6.61175 10.9287 5.64338 10.9536 4.72742 10.7058C3.81146 10.458 2.98773 9.94825 2.35725 9.2391C1.72677 8.52995 1.31696 7.65221 1.17807 6.71354C1.03917 5.77487 1.17724 4.81607 1.57534 3.95473C1.97343 3.09338 2.61425 2.36694 3.4192 1.86449C4.22414 1.36204 5.15823 1.10543 6.10689 1.12613C7.05556 1.14683 7.97756 1.44393 8.75983 1.98101C9.5421 2.51809 10.1506 3.27178 10.5108 4.14967C10.5674 4.28772 10.6765 4.39763 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28347 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.1085 2.64239 10.3596 1.7147 9.39677 1.05365C8.43396 0.392587 7.29915 0.0268946 6.13152 0.00142049ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.29253 2.30918 6.14946 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91227 7.29217C3.85701 7.34367 3.81268 7.40577 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.80247 7.98441 3.84458 8.04804 3.89799 8.10145C3.95141 8.15486 4.01503 8.19697 4.08507 8.22526C4.15512 8.25355 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.59368 8.18676 4.65578 8.14244 4.70727 8.08717L6.39777 6.39742L6.56277 6.23242V2.81242ZM11.2503 11.2499C11.2503 11.4488 11.1713 11.6396 11.0306 11.7803C10.8899 11.9209 10.6992 11.9999 10.5003 11.9999C10.3014 11.9999 10.1106 11.9209 9.96994 11.7803C9.82929 11.6396 9.75027 11.4488 9.75027 11.2499C9.75027 11.051 9.82929 10.8602 9.96994 10.7196C10.1106 10.5789 10.3014 10.4999 10.5003 10.4999C10.6992 10.4999 10.8899 10.5789 11.0306 10.7196C11.1713 10.8602 11.2503 11.051 11.2503 11.2499ZM11.0628 6.56242C11.0628 6.41324 11.0035 6.27016 10.898 6.16467C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16467C9.99704 6.27016 9.93777 6.41324 9.93777 6.56242V9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6495 9.74992 10.7925 9.69066 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V6.56242Z\" fill=\"#B54708\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.2409 3.07775C11.1762 2.96171 11.1078 2.84799 11.0357 2.73674C10.7826 2.34623 10.4848 1.98631 10.1483 1.6644C9.91561 1.44184 9.66446 1.23744 9.39677 1.05365C9.39672 1.05361 9.39683 1.05368 9.39677 1.05365C9.23737 0.944207 9.07308 0.842748 8.90487 0.749705C8.7207 0.647828 8.53163 0.5559 8.3385 0.474192C7.64269 0.179813 6.8941 0.0180577 6.13152 0.00142049C6.13149 0.00141983 6.13155 0.00142115 6.13152 0.00142049C6.08778 0.00046929 6.04397 -5.01265e-06 6.00027 3.99426e-08C5.19726 9.28871e-05 4.40222 0.161386 3.66237 0.47452C3.63893 0.484441 3.61555 0.494513 3.59222 0.504738C3.42243 0.579166 3.25651 0.661273 3.09496 0.75071C3.00307 0.801577 2.9126 0.854814 2.82363 0.910359C2.33223 1.21713 1.88653 1.59427 1.50131 2.03099C1.11608 2.46773 0.797516 2.95704 0.554486 3.48291C0.433124 3.74551 0.330597 4.01723 0.248009 4.29608C5.51343e-05 5.13324 -0.0622004 6.01444 0.0655874 6.87815C0.065578 6.87809 0.0655967 6.87822 0.0655874 6.87815C0.193412 7.74193 0.508256 8.56758 0.988083 9.29711C1.14783 9.53998 1.32458 9.77027 1.51671 9.98639C1.90168 10.4194 2.34838 10.7956 2.8437 11.1021C3.33882 11.4085 3.87455 11.6404 4.43364 11.7917C4.71299 11.8673 4.99817 11.9228 5.28703 11.9574C5.31999 11.9613 5.35296 11.965 5.38594 11.9684C5.86275 12.0175 6.34254 12.0092 6.81514 11.9445C6.99265 11.9202 7.16915 11.8879 7.34409 11.8477C7.5188 11.8076 7.69196 11.7596 7.86302 11.7038C7.86294 11.7038 7.86311 11.7037 7.86302 11.7038C7.89127 11.6945 7.9188 11.6831 7.94492 11.6697C8.04995 11.6159 8.13615 11.53 8.19022 11.4235C8.21812 11.3685 8.23653 11.3098 8.24524 11.2499C8.25761 11.1649 8.25046 11.0774 8.22327 10.9942C8.17693 10.8523 8.07614 10.7347 7.94308 10.6672C7.81011 10.5998 7.65579 10.5878 7.51404 10.6341C7.51395 10.6341 7.51413 10.6341 7.51404 10.6341C7.43563 10.6597 7.35645 10.6833 7.27711 10.7049C7.16292 10.7359 7.04786 10.7626 6.93215 10.7851C6.88016 10.7953 6.82804 10.8045 6.77581 10.8129C6.49267 10.8585 6.20633 10.879 5.92014 10.8743C5.84832 10.8731 5.7765 10.8704 5.70476 10.866C5.60998 10.8602 5.51532 10.8517 5.4209 10.8404C5.37256 10.8346 5.32428 10.8281 5.27608 10.8208C5.09176 10.7931 4.90856 10.7548 4.72742 10.7058C4.59856 10.6709 4.47152 10.6309 4.34659 10.5858C4.02763 10.4708 3.7224 10.3231 3.43559 10.1456C3.40186 10.1248 3.36839 10.1035 3.33518 10.0818C3.05409 9.89826 2.79178 9.68556 2.55287 9.44658C2.48578 9.37947 2.42054 9.31029 2.35725 9.2391C2.20011 9.06234 2.05667 8.87512 1.92772 8.67908C1.92445 8.67411 1.92118 8.66913 1.91793 8.66414C1.7113 8.34749 1.54234 8.00807 1.41432 7.65286C1.30511 7.34986 1.2257 7.03536 1.17809 6.71371C1.17808 6.71366 1.1781 6.71377 1.17809 6.71371C1.1575 6.57457 1.14297 6.43481 1.1345 6.29516C1.1301 6.22253 1.12732 6.14989 1.12617 6.07729C1.11832 5.58257 1.18585 5.08961 1.3263 4.61545C1.39297 4.39036 1.47607 4.16951 1.57534 3.95473C1.7744 3.52403 2.03414 3.12706 2.34475 2.77496C2.3762 2.73932 2.40816 2.70413 2.44064 2.66942C2.72893 2.36127 3.05749 2.09027 3.4192 1.86449C3.61995 1.73918 3.82874 1.62916 4.04379 1.53492C4.2051 1.46422 4.36993 1.40241 4.53753 1.34968C5.00877 1.20143 5.50191 1.125 6.00027 1.12497C6.03579 1.12497 6.07133 1.12535 6.10689 1.12613C6.56965 1.13624 7.02621 1.21212 7.46315 1.34954C7.9219 1.49383 8.35919 1.70595 8.75983 1.98101C8.75978 1.98097 8.75988 1.98104 8.75983 1.98101C8.91447 2.08719 9.06247 2.20193 9.20295 2.32433C9.32789 2.43318 9.447 2.54816 9.55988 2.66877C9.67464 2.79139 9.78295 2.91982 9.8844 3.05355C10.0182 3.22986 10.14 3.41537 10.2489 3.60887C10.3086 3.71493 10.3644 3.82339 10.4162 3.93405C10.4455 3.99677 10.4736 4.06019 10.5003 4.12428C10.5038 4.13273 10.5073 4.1412 10.5108 4.14967C10.5107 4.14959 10.5108 4.14975 10.5108 4.14967C10.5674 4.28761 10.6765 4.39766 10.8141 4.45522C10.8822 4.48374 10.9553 4.49856 11.0292 4.49883C11.1031 4.4991 11.1763 4.48482 11.2446 4.4568C11.313 4.42878 11.3752 4.38757 11.4276 4.33552C11.48 4.28348 11.5217 4.22161 11.5502 4.15347C11.5787 4.08532 11.5935 4.01222 11.5938 3.93835C11.5941 3.86448 11.5798 3.79127 11.5518 3.72292C11.5517 3.72283 11.5518 3.72301 11.5518 3.72292C11.4834 3.55631 11.4077 3.39306 11.3251 3.23413C11.2978 3.18156 11.2697 3.12942 11.2409 3.07775ZM6.56277 2.81242C6.56277 2.66324 6.50351 2.52016 6.39802 2.41467C6.3121 2.32875 6.20124 2.2735 6.08246 2.25595C6.05548 2.25198 6.02787 2.24992 6.00027 2.24992C5.85109 2.24992 5.70801 2.30918 5.60252 2.41467C5.49704 2.52016 5.43777 2.66324 5.43777 2.81242V5.76742L3.91245 7.292C3.90275 7.30103 3.89322 7.31057 3.88421 7.32023C3.84187 7.36567 3.80729 7.41787 3.78194 7.47477C3.75119 7.54377 3.73466 7.61825 3.73333 7.69378C3.732 7.76931 3.74589 7.84433 3.77418 7.91437C3.78054 7.93011 3.78759 7.94552 3.79532 7.96057C3.82196 8.01249 3.85658 8.06004 3.89799 8.10145C3.95141 8.15487 4.01503 8.19697 4.08507 8.22526C4.15512 8.25356 4.23014 8.26745 4.30566 8.26612C4.38119 8.26478 4.45568 8.24825 4.52468 8.21751C4.58157 8.19216 4.63377 8.15757 4.67921 8.11524C4.68881 8.10629 4.69811 8.097 4.70708 8.08737C4.70702 8.08744 4.70715 8.08731 4.70708 8.08737L6.56277 6.23242V2.81242ZM9.93777 9.18742C9.93777 9.33661 9.99704 9.47968 10.1025 9.58517C10.208 9.69066 10.3511 9.74992 10.5003 9.74992C10.6437 9.74992 10.7815 9.69514 10.8857 9.59716C10.8898 9.59323 10.894 9.58924 10.898 9.58517C11.0035 9.47968 11.0628 9.33661 11.0628 9.18742V7.54234C10.8777 7.51426 10.6897 7.49992 10.5003 7.49992C10.3108 7.49992 10.1228 7.51426 9.93777 7.54234V9.18742ZM9.93777 7.32686C10.1215 7.38612 10.3096 7.4303 10.5003 7.45904C10.6714 7.48483 10.8445 7.49818 11.0183 7.49881C11.0331 7.49887 11.0479 7.49883 11.0628 7.4987V6.56242C11.0628 6.49008 11.0488 6.41917 11.0224 6.35328C10.9944 6.28331 10.9524 6.21901 10.898 6.16468C10.7925 6.05919 10.6495 5.99992 10.5003 5.99992C10.3511 5.99992 10.208 6.05919 10.1025 6.16468C10.1003 6.16692 10.0981 6.16917 10.0959 6.17145C9.9977 6.27299 9.94135 6.40773 9.93794 6.54882C9.93783 6.55335 9.93777 6.55788 9.93777 6.56242V7.32686ZM11.2488 11.2968C11.2498 11.2813 11.2503 11.2656 11.2503 11.2499C11.2503 11.2487 11.2503 11.2475 11.2503 11.2463C11.2493 11.0487 11.1704 10.8594 11.0306 10.7196C10.8899 10.5789 10.6992 10.4999 10.5003 10.4999C10.3014 10.4999 10.1106 10.5789 9.96994 10.7196C9.82929 10.8602 9.75027 11.051 9.75027 11.2499C9.75027 11.4488 9.82929 11.6396 9.96994 11.7803C10.1106 11.9209 10.3014 11.9999 10.5003 11.9999C10.6992 11.9999 10.8899 11.9209 11.0306 11.7803C11.1602 11.6507 11.2374 11.4786 11.2488 11.2968Z\" fill=\"#B54708\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10901_7795\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Pending Tagged Info</span></span> \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='purchaser'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Name</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.name}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Location</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.location?tagggedData?.customerInfo?.location:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Mobile</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.mobile}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Age</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.age?tagggedData?.customerInfo?.age:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Email</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.email?tagggedData?.customerInfo?.email:\"-\"}}</span>\r\n </div>\r\n <div class=\"col-md-6 mt-2 d-flex justify-content-between align-items-start\">\r\n <span class=\"ms-2 mb-2 spent-value \">Gender</span>\r\n <span class=\"ms-2 mb-2 spent-title \">{{tagggedData?.customerInfo?.gender?tagggedData?.customerInfo?.gender:\"-\"}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"tagggedData?.revopsType==='missedOpportunity'\">\r\n\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngFor=\"let item of tagggedData.issueList\" >\r\n <div class=\"ms-2 mb-2 spent-value\">{{item.name}}</div>\r\n <span class=\"badge badge-light-default ms-2\" *ngFor=\"let data of item.issue\">{{data}}</span>\r\n </div>\r\n \r\n </div>\r\n <div class=\"border-gray-tagged mx-3 my-2\" *ngIf=\"tagggedData?.revopsType==='nonShopper'\">\r\n <span class=\"badge badge-light-default ms-2\">{{nonShoperType}}</span>\r\n </div>\r\n <!-- <div class=\"my-2\"><span class=\"desc-id\">Original ID</span> : <span class=\"spent-value1\"\r\n style=\"font-size: 12px !important;\">{{Imagedata?.tempId}}</span></div> -->\r\n \r\n <div *ngIf=\"tagggedData?.description&&tagggedData?.description!==''\" class=\"my-3 desc-id\">{{tagggedData.description}}\r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n <div class=\"my-3\">\r\n <span class=\"tag-class\">Time Spent</span>\r\n </div>\r\n\r\n <div class=\"d-flex flex-wrap\">\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.totalTimeSpent}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Total Time Spent</div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.entryTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('entry')\">Entry Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"border border-gray-300 border-dobule rounded w-33 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.timeSpent?.exitTime}} </div>\r\n </div>\r\n <div class=\"spent-value1 my-1 cursor-pointer\" (click)=\"imageData('exit')\">Exit Time <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"Imagedata?.zoneVisited&&Imagedata?.zoneVisited.length>0\" class=\"row\">\r\n <div class=\"col-md-6\">\r\n <span class=\"tag-class\">Zones Visited</span>\r\n\r\n </div>\r\n \r\n <ng-container class=\"h-200px scroll\">\r\n <div class=\"col mt-2\" *ngFor=\"let obj of Imagedata?.zoneVisited\">\r\n <span class=\"badge badge-light-primary \">{{obj}}</span>\r\n </div>\r\n <div *ngIf=\"Imagedata?.zoneVisited.length ===0\" class=\"col-md-12 mt-2 text-center\">\r\n <img class=\"img-nodata\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No Zones Visited</div>\r\n <div class=\"nodata-sub\">There is no result for this Zones</div>\r\n </div>\r\n \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"separator separator-double m-3\"></div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"my-3\">\r\n <span class=\"tag-class\">Staff Engagement</span>\r\n </div>\r\n\r\n <div *ngIf=\"footfallDataShow !=='tracking-enabled'\" class=\"d-flex flex-wrap\">\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeTakenToAssist}} </div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time taken to assist \r\n <!-- <span class=\"ms-1\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M3.33333 14H12.6667C13.403 14 14 13.403 14 12.6667V3.33333C14 2.59695 13.403 2 12.6667 2H3.33333C2.59695 2 2 2.59695 2 3.33333V12.6667C2 13.403 2.59695 14 3.33333 14ZM3.33333 14L10.6667 6.66667L14 10M6.66667 5.66667C6.66667 6.21895 6.21895 6.66667 5.66667 6.66667C5.11438 6.66667 4.66667 6.21895 4.66667 5.66667C4.66667 5.11438 5.11438 4.66667 5.66667 4.66667C6.21895 4.66667 6.66667 5.11438 6.66667 5.66667Z\" stroke=\"#667085\" stroke-width=\"1.2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> -->\r\n </div>\r\n </div>\r\n <div class=\"border border-gray-300 border-dobule rounded w-45 py-3 px-4 me-6 mb-3\">\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"spent-title\">{{Imagedata?.staffEngagement.timeSpentWithStaff}}</div>\r\n </div>\r\n <div class=\"spent-value my-1\">Time spent with staff</div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n \r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n</section>\r\n</div>\r\n\r\n", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:210px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-500, #667085);font-size:12px;font-weight:400;line-height:18px}.img-doc-value{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}\n"] }]
|
|
834
|
+
}], ctorParameters: () => [{ type: i1.TrafficService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.NgbModal }, { type: i4.FormBuilder }, { type: i5.ToastService }, { type: i6.TrafficRvpsService }], propDecorators: { placesRef: [{
|
|
832
835
|
type: ViewChild,
|
|
833
836
|
args: ["ngxPlaces"]
|
|
834
837
|
}] } });
|
|
835
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZG9jL2ltYWdlLWRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlLWRvYy9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFOdEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBYXRCLE1BQU0sT0FBTyxpQkFBaUI7SUEwQ2xCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQTlDYyxTQUFTLENBQTZCO0lBQzlELFdBQVcsR0FBUSxDQUFDLENB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M0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtvQkFDdEUsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUE7b0JBRXJCLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtpQkFDVDtZQUNILENBQUM7U0FDRixDQUFDLENBQUE7SUFJTixDQUFDO0lBRUQsU0FBUyxDQUFDLFNBQWlCO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzdDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7d0dBcDFCVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw2SkN0QjlCLGtnNUZBMDVCTTs7NEZEcDRCTyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsZUFBZTtnT0FLRCxTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYWZmaWNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhZmZpYy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSW1hZ2VEb2NWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vaW1hZ2UtZG9jLXZpZXcvaW1hZ2UtZG9jLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpXHJcbmltcG9ydCAnZGF5anMvbG9jYWxlL2VuJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHRpbWV6b25lIGZyb20gJ2RheWpzL3BsdWdpbi90aW1lem9uZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEdXBsaWNhdGVDb21wb25lbnQgfSBmcm9tICcuLi9kdXBsaWNhdGUvZHVwbGljYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBOZ3hHcEF1dG9jb21wbGV0ZURpcmVjdGl2ZSB9IGZyb20gXCJAYW5ndWxhci1tYWdpYy9uZ3gtZ3AtYXV0b2NvbXBsZXRlL2xpYi9uZ3gtZ3AtYXV0b2NvbXBsZXRlLmRpcmVjdGl2ZVwiO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItaW1hZ2UtZG9jXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybDogXCIuL2ltYWdlLWRvYy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VEb2NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgQFZpZXdDaGlsZChcIm5neFBsYWNlc1wiKSBwbGFjZXNSZWY6IE5neEdwQXV0b2NvbXBsZXRlRGlyZWN0aXZlO1xyXG4gIHNlbGVjdEluZGV4OiBhbnkgPSAwO1xyXG4gIHNlbGVjdGVkVGltZTogYW55O1xyXG4gIG9iakRhdGE6IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueSA9IFtdO1xyXG4gIGltYWdlc0FycmF5RGF0YTogYW55O1xyXG4gIHByb2Nlc3NUeXBlID0gXCJmb290ZmFsbFwiO1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBmb2xkZXJWaWV3OiBib29sZWFuO1xyXG4gIGRheWpzID0gZGF5anNcclxuICBkYXRlQXJyYXk6IGFueTtcclxuICBmb3JtOiBhbnk7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgc3RvcmVBcnJheVZhbHVlOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgdmFsdWVUeXBlOiBhbnkgPSAnYWN0dWFsJztcclxuICBpc0F2ZXJhZ2U6IGFueSA9IGZhbHNlO1xyXG4gIGxlbmd0aFZhbHVlOiBib29sZWFuO1xyXG4gIGhpZGVEb2M6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpc0FjY29yZGlvbkV4cGFuZGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICBmb2xkZXJEYXRlOiBhbnk7XHJcbiAgYmFja25hdjogYm9vbGVhbjtcclxuICB1c2VyRm9ybTogRm9ybUdyb3VwO1xyXG4gIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5TGlzdDogYW55ID0gW11cclxuICBwaG9uZVJlZ2V4OiBSZWdFeHAgPSAvXihcXGR7M30pP1xcZHsxNX0kLztcclxuICBlbWFpbFJlZ2V4OiBSZWdFeHAgPSAvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLztcclxuICBub25TaG9wcGVyTGlzdCA9IFsnRW1wbG95ZWUvU3RhZmYnLCAnRGVsaXZlcnkgUGVyc29uJywgJ0R1cGxpY2F0ZScsICdBZ2VudHMnLCAnT3RoZXJzJ107XHJcbiAgLy8gbWlzc2VkT3Bwb3J0dW5pdHlMaXN0ID1bJ1Byb2R1Y3QgTmVlZCBNaXNtYXRjaCcsJ1Byb2R1Y3QgVW5hdmFpbGFiaWxpdHknLCdQcm9kdWN0IERhbWFnZWQnLCdQcm9kdWN0IEVucXVpcnknLCdRdWFsaXR5J107XHJcbiAgc2VsZWN0ZWRNaXNzZWQ6IGFueSA9ICdQcm9kdWN0IElzc3VlJztcclxuICBpc3N1ZXM6IGFueSA9IFtdXHJcbiAgbm9uU2hvcGVyVHlwZTogYW55ID0gJydcclxuICBkZXNjcmlwdGlvbjogYW55ID0gJydcclxuICBzZWxlY3RlZElzc3Vlczogc3RyaW5nW10gPSBbXTtcclxuICBzZWxlY3RlZE1haW5Jc3N1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgdGFnZ2dlZERhdGE6IGFueSA9IHt9XHJcbiAgbWlzc2Vkb3B0dW5pdHlSZWFzb246IGFueSA9IFtdXHJcbiAgY291bnRyeUxpc3Q6IGFueSA9IFtdXHJcbiAgcGVuZGluZ2NvdW50OiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdFNlcnZpY2UsXHJcbiAgKSB7XHJcblxyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIHNlbGVjdFZhbHVlOiBuZXcgRm9ybUNvbnRyb2woJycpIC8vIEluaXRpYWxpemUgYXMgRm9ybUNvbnRyb2xcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgfVxyXG4gIGluaXR1c2VyRm9ybSgpIHtcclxuICAgIHRoaXMudXNlckZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgbW9iaWxlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMyksIFZhbGlkYXRvcnMubWluTGVuZ3RoKDgpLF1dLFxyXG4gICAgICBlbWFpbDogWycnLCBbXHJcbiAgICAgICAgVmFsaWRhdG9ycy5wYXR0ZXJuKFwiXlthLXpBLVowLTldKyhbLi1fXT9bYS16QS1aMC05XSspKkBbYS16QS1aMC05XSsoWy4tX10/W2EtekEtWl0rKSpbLl17MX1bYS16QS1aXXsyLH0kXCIpLFxyXG4gICAgICBdLF0sXHJcbiAgICAgIGxvY2F0aW9uOiBbXSxcclxuICAgICAgYWdlOiBbXSxcclxuICAgICAgZ2VuZGVyOiBbXSxcclxuICAgICAgY291bnRyeUNvZGU6IFtcIjkxXCIsXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Q291bnRyeUNvZGVzKClcclxuICAgIHRoaXMuaW5pdHVzZXJGb3JtKClcclxuICAgIHRoaXMuZ2V0SW5pdGFsKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5oaWRlRG9jID0gZmFsc2U7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgICAgIH0sIDUwMDApO1xyXG5cclxuICAgIH0sIDEwMDApO1xyXG4gIH1cclxuICBnZXRDb3VudHJ5Q29kZXMoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QWxsQ291bnRyaWVzKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb3VudHJ5TGlzdCA9IHJlcy5kYXRhXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG5cclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICByZXR1cm4gayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1Nyk7XHJcbiAgfVxyXG5cclxuICBjbGllbnREYXRhOiBhbnk7XHJcbiAgZ2V0IGYoKSB7XHJcbiAgICByZXR1cm4gdGhpcy51c2VyRm9ybS5jb250cm9scztcclxuICB9XHJcbiAgZ2V0SW5pdGFsKCkge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZGF0YSAhPT0gbnVsbCB8fCBkYXRhPy5jbGllbnQgIT09IG51bGwpIHtcclxuICAgICAgICAgIHRoaXMuaGVhZGVyRGF0YSA9IGRhdGE7XHJcbiAgICAgICAgICB0aGlzLnN0b3JlSWRhcnJheSA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZCkubWFwKChzdG9yZTogYW55KSA9PiBzdG9yZS5zdG9yZUlkKVxyXG4gICAgICAgICAgdGhpcy5vYmpEYXRhID0ge1xyXG4gICAgICAgICAgICBzdG9yZUlkOiB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlc1xyXG4gICAgICAgICAgICAgIC5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpXHJcbiAgICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCksXHJcbiAgICAgICAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGE/LmNsaWVudCxcclxuICAgICAgICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgICAgIGZvb3RmYWxsRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgICAgICAgLy8gdmFsdWVUeXBlIDp0aGlzLnZhbHVlVHlwZVxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjbGllbnREYXRhOiBhbnkgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiY2xpZW50LWRldGFpbHNcIikgfHwgXCJ7fVwiKTtcclxuICAgICAgICAgICAgdGhpcy5jbGllbnREYXRhID0gY2xpZW50RGF0YVxyXG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLmNsaWVudERhdGEpXHJcblxyXG4gICAgICAgICAgICBjb25zdCBsaW1pdCA9IGNsaWVudERhdGE/LmJvdW5jZWRMaW1pdD8udmFsdWUgPz8gY2xpZW50RGF0YT8uYm91bmNlZExpbWl0VmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IGNvbnYgPSBjbGllbnREYXRhPy5jb252ZXJzaW9uPy52YWx1ZSA/PyBjbGllbnREYXRhPy5jb252ZXJzaW9uVmFsdWUgPz8gJyc7XHJcbiAgICAgICAgICAgIGlmIChjbGllbnREYXRhLmlzRm9vdGZhbGxWaWV3KSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0cyA9IFtcclxuICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgXVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2V7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YS5jbGllbnQgPT09ICc0NTInKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gW1xyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnYm91bmNlZCcsIGxhYmVsOiBgTGVzcyB0aGFuICR7bGltaXR9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdlbmdhZ2VyJywgbGFiZWw6IGBNb3JlIHRoYW4gJHtsaW1pdH0gbWluc2AgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6IGAke2xpbWl0fSAtICR7Y29udn0gbWluc2AgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2NvbnZlcnNpb24nLCBsYWJlbDogYE1vcmUgdGhhbiAke2NvbnZ9IG1pbnNgIH1cclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YXNldHMgPSBbXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiAnRW5nYWdlcnMnIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdtaXNzZWRPcHBvcnR1bml0eScsIGxhYmVsOiAnTWlzc2VkIE9wcG9ydHVuaXR5JyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmdldEluaXRpYWxWYWx1ZSgpO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RDb250cm9sID0gdGhpcy5mb3JtLmdldCgnc2VsZWN0VmFsdWUnKSBhcyBGb3JtQ29udHJvbDtcclxuICAgICAgICAgICAgaWYgKHNlbGVjdENvbnRyb2wpIHtcclxuICAgICAgICAgICAgICBzZWxlY3RDb250cm9sLnNldFZhbHVlKGluaXRpYWxWYWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0sIDEwMClcclxuICAgICAgICAgIHRoaXMuYmFja1RvRm9vdGZhbGwoKTtcclxuICAgICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uc3RhcnREYXRlID09PSB0aGlzLmhlYWRlckRhdGE/LmRhdGU/LmVuZERhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5iYWNrbmF2ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheURhdGVSYW5nZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmdldGltYWdlcygwLCB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlKVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb2xkZXJWaWV3ID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5iYWNrbmF2ID0gdHJ1ZVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5pbml0aWFsRGF0YSgpO1xyXG4gICAgICAgICAgdGhpcy5pbml0aWFsRm9vdGZhbGwoKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZvb3RmYWxsRGF0YVNob3c6IGFueTtcclxuICBpbml0aWFsRm9vdGZhbGwoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U3RvcmVGb290ZmFsbCh0aGlzLnN0b3JlSWRhcnJheSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gcmVzLmRhdGEucmVzdWx0O1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gW11cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmZvb3RmYWxsRGF0YVNob3cgPSBbXVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuXHJcbiAgaW5pdGlhbERhdGEoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3Bjb25maWcodGhpcy5oZWFkZXJEYXRhLmNsaWVudClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eUxpc3QgPSByZXMuZGF0YS5pc3N1ZUxpc3RcclxuICAgICAgICAgICAgdGhpcy5pc3N1ZXMgPSB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5TGlzdC5maWx0ZXIoKGRhdGE6IGFueSkgPT4gZGF0YS5uYW1lID09PSB0aGlzLnNlbGVjdGVkTWlzc2VkKVxyXG5cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG4gIH1cclxuICB0b2dnbGVBY2NvcmRpb24oKSB7XHJcbiAgICB0aGlzLmlzQWNjb3JkaW9uRXhwYW5kZWQgPSAhdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkO1xyXG5cclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG4gIGdldEltYWdlRm9sZGVyKCkge1xyXG5cclxuICAgIGRlbGV0ZSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Rm9vdGZhbGxEaXJlY3RvcnlGb2xkZXJzKHRoaXMub2JqRGF0YSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHRoaXMub2JqZWN0c0FycmF5WzBdLmZvbGRlck5hbWU7XHJcbiAgICAgICAgICAgIHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmdldEltYWdlVmlldygpO1xyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgZ2V0SW1hZ2VWaWV3KCkge1xyXG5cclxuICAgIC8vIGNvbnNvbGUubG9nKHRoaXMub2JqRGF0YSlcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5nZXRGb290ZmFsbERpcmVjdG9yeSh0aGlzLm9iakRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIGlmICghcmVzPy5kYXRhLmZvb3RmYWxsRGF0YS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlQXJyYXlWYWx1ZSA9IHJlcz8uZGF0YS5zdG9yZU5hbWVcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7IH0sXHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBub3JtYWxpemU6IGFueVxyXG4gIHNlbGVjdGVkVGFicyhuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSBuYW1lO1xyXG4gICAgLy8gdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdOyAvLyByZXNldCB3aGVuIHN3aXRjaGluZyB0YWJzXHJcbiAgfVxyXG5cclxuICBzZWxlY3RTdWJpc3N1ZShvYmo6IGFueSwgaXNzdWU6IHN0cmluZykge1xyXG5cclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElzc3Vlcy5pbmRleE9mKGlzc3VlKTtcclxuICAgIGNvbnN0IG1haW5pbmRleCA9IHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLmluZGV4T2Yob2JqLm5hbWUpO1xyXG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xyXG4gICAgICBsZXQgZXhpdHNDb3VudCA9IHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24uZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEubmFtZSA9PT0gb2JqLm5hbWUpLmxlbmd0aFxyXG4gICAgICBpZiAoZXhpdHNDb3VudCA+IDApIHtcclxuICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZGF0YS5uYW1lID09PSBvYmoubmFtZSkge1xyXG4gICAgICAgICAgICBkYXRhLmlzc3VlLnB1c2goaXNzdWUpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogb2JqLm5hbWUsXHJcbiAgICAgICAgICBpc3N1ZTogW2lzc3VlXVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZWxlY3RlZE1haW5Jc3N1ZXMucHVzaChvYmoubmFtZSlcclxuICAgICAgdGhpcy5zZWxlY3RlZElzc3Vlcy5wdXNoKGlzc3VlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE1haW5Jc3N1ZXMuc3BsaWNlKG1haW5pbmRleCwgMSk7XHJcbiAgICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24ubWFwKChkYXRhOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhLm5hbWUgPT09IG9iai5uYW1lKSB7XHJcbiAgICAgICAgICBjb25zdCBzdWJJbmRleCA9IGRhdGEuaXNzdWUuaW5kZXhPZihpc3N1ZSk7XHJcbiAgICAgICAgICBpZiAoc3ViSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgIGRhdGEuaXNzdWUuc3BsaWNlKHN1YkluZGV4LCAxKTtcclxuICAgICAgICAgICAgaWYgKGRhdGEuaXNzdWUubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgZ2V0aW1hZ2VzKGluZGV4OiBhbnksIG9iajogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmZvbGRlckRhdGUgPSBvYmo7XHJcbiAgICAodGhpcy5vYmpEYXRhLmZvb3RmYWxsRGF0ZSA9IG9iaiksICh0aGlzLmZvbGRlclZpZXcgPSBmYWxzZSk7XHJcbiAgICB0aGlzLnNlcnZpY2U/Lmlzbm9ybWFsaXplU291cmNlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICA/LnN1YnNjcmliZSgobm9ybWFsaXplOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTtcclxuICAgICAgICBpZiAoIW5vcm1hbGl6ZSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRJbWFnZUZvbGRlcigpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgYmFja1RvRm9vdGZhbGwoKSB7XHJcbiAgICB0aGlzLnNlbGVjdEluZGV4ID0gMDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IHRydWU7XHJcblxyXG4gIH1cclxuICBzZWxlY3RlZFRpbWVzKHZhbDogYW55KSB7XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB2YWw7XHJcbiAgICB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICB9XHJcbiAgSW1hZ2VkYXRhOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgSW1hZ2VzOiBhbnk7XHJcblxyXG4gIHJldm9wVGFnZ2luZyhvYmo6IGFueSkge1xyXG4gICAgdGhpcy5pbWFnZUZsb3cgPSB0cnVlO1xyXG4gICAgdGhpcy5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGFiID0gJ3RhZ2dlZCc7XHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgPyB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA6ICdub25TaG9wcGVyJztcclxuICAgIHRoaXMuSW1hZ2VzID0gdGhpcy5JbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcclxuICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICB9XHJcbiAgZ2V0UmV2b3BEYXRhKCkge1xyXG4gICAgbGV0IHBheWxvYWQgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlID8gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgOiB0aGlzLnByb2Nlc3NUeXBlXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0cmV2b3B0YWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRhYiA9ICdjdXN0b21lcidcclxuICAgICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IHJlcy5kYXRhXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPSByZXMuZGF0YS5yZXZvcHNUeXBlXHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSByZXMuZGF0YS5kZXNjcmlwdGlvblxyXG5cclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0Q29udHJvbC5zZXRWYWx1ZShyZXMuZGF0YS5yZXZvcHNUeXBlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPT09ICdub25TaG9wcGVyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSByZXMuZGF0YS5ub25zaG9wZXJUeXBlXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ25hbWUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdnZW5kZXInKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAncHVyY2hhc2VyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSAnJ1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5uYW1lKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLm1vYmlsZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmNvdW50cnlDb2RlKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uZW1haWwpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5sb2NhdGlvbilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5hZ2UpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uZ2VuZGVyKVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gcmVzLmRhdGEuaXNzdWVMaXN0XHJcbiAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2cocmVzLmRhdGEpXHJcbiAgICAgICAgICAgICAgcmVzLmRhdGEuaXNzdWVMaXN0Lm1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gWy4uLnRoaXMuc2VsZWN0ZWRJc3N1ZXMsIC4uLmRhdGEuaXNzdWVdXHJcbiAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSAnJ1xyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAoIXJlcyB8fCByZXM/LmNvZGUgPT09IDIwNCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdENvbnRyb2wuc2V0VmFsdWUoXCJmb290ZmFsbFwiKTtcclxuICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJyc7XHJcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSAnJ1xyXG4gICAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID0gW107XHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICB0aGlzLnRhZ2dnZWREYXRhID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBwdWJsaWMgaGFuZGxlQWRkcmVzc0NoYW5nZShwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0IHwgYW55KSB7XHJcbiAgICBpZiAocGxhY2UuZ2VvbWV0cnkpIHtcclxuICAgICAgbGV0IGNvdW50cnkgPSBcIlwiLCBjaXR5ID0gXCJcIiwgc3RhdGUgPSBcIlwiLCBwaW5jb2RlID0gXCJcIjtcclxuICAgICAgbGV0IGxhdGl0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubGF0KCk7XHJcbiAgICAgIGxldCBsb25naXR1ZGUgPSBwbGFjZS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKTtcclxuICAgICAgcGxhY2UuYWRkcmVzc19jb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImNvdW50cnlcIikpIHtcclxuICAgICAgICAgIGNvdW50cnkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwibG9jYWxpdHlcIikpIHtcclxuICAgICAgICAgIGNpdHkgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwiYWRtaW5pc3RyYXRpdmVfYXJlYV9sZXZlbF8xXCIpKSB7XHJcbiAgICAgICAgICBzdGF0ZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfSBlbHNlIGlmIChjb21wb25lbnQudHlwZXMuaW5jbHVkZXMoXCJwb3N0YWxfY29kZVwiKSkge1xyXG4gICAgICAgICAgcGluY29kZSA9IGNvbXBvbmVudC5sb25nX25hbWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShjaXR5KVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdG5vblNob3BlcihkYXRhOiBhbnkpIHtcclxuICAgIGxldCBpbnB1dERhdGEgPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5yZXZvcHRhZ2dpbmdjb3VudChpbnB1dERhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG5cclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBpZiAocmVzLmRhdGEuY291bnQgPD0gMCAmJiB0aGlzLnRhZ2dnZWREYXRhLnJldm9wc1R5cGUgIT0gJ25vblNob3BwZXInKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJUYWcgbGltaXQgcmVhY2hlZCEgVHJ5IHRhZ2dpbmcgdW5kZXIgZGlmZmVyZW50IGNhdGVnb3JpZXNcIilcclxuICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLm5vblNob3BlclR5cGUgPSBkYXRhXHJcbiAgICAgICAgICAgICAgaWYgKGRhdGEgPT09ICdEdXBsaWNhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLnRhZ2dnZWREYXRhLm5vbnNob3BlclR5cGUsIHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCwgdGhpcy50YWdnZ2VkRGF0YS50ZW1wSWQpXHJcbiAgICAgICAgICAgICAgICBsZXQgb3JpZ2luYWxEYXRhID0gW11cclxuICAgICAgICAgICAgICAgIGlmKHRoaXMudGFnZ2dlZERhdGEubm9uc2hvcGVyVHlwZSAhPSAnRHVwbGljYXRlJyYmdGhpcy50YWdnZ2VkRGF0YS5yZXZvcHNUeXBlPT09J25vblNob3BwZXInKXtcclxuICAgICAgICAgICAgICAgIG9yaWdpbmFsRGF0YS5wdXNoKHsgdGVtcElkOiB0aGlzLnRhZ2dnZWREYXRhPy50ZW1wSWQsIHNlbGVjdGVkVGltZTogdGhpcy5zZWxlY3RlZFRpbWUgfSlcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihEdXBsaWNhdGVDb21wb25lbnQsIHtcclxuICAgICAgICAgICAgICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIHNpemU6IFwieGxcIixcclxuICAgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgYmFja2Ryb3A6ICdzdGF0aWMnXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnNlbGVjdGVkVGVtcElkID0gdGhpcy5JbWFnZWRhdGEudGVtcElkO1xyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uub3JpZ2luYWxEYXRhID0gb3JpZ2luYWxEYXRhO1xyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuYWxyZWFkeVRhZ2dlZCA9IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQgPT09IHRoaXMudGFnZ2dlZERhdGE/LnRlbXBJZCAmJiB0aGlzLnRhZ2dnZWREYXRhPy5ub25zaG9wZXJUeXBlID09PSAnRHVwbGljYXRlJyA/IHRydWUgOiBmYWxzZTtcclxuXHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5pbnB1dERhdGEgPSB7XHJcbiAgICAgICAgICAgICAgICAgIFwic3RvcmVJZFwiOiB0aGlzLnN0b3JlSWRhcnJheSxcclxuICAgICAgICAgICAgICAgICAgXCJjbGllbnRJZFwiOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICAgICAgICAgICAgICBcInByb2Nlc3NUeXBlXCI6IHRoaXMucHJvY2Vzc1R5cGUsXHJcbiAgICAgICAgICAgICAgICAgIFwiZm9vdGZhbGxEYXRlXCI6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgICAgICAgICAgICAgXCJmb2xkZXJOYW1lXCI6IHRoaXMuc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5yZXN1bHQudGhlbigocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuICAgICAgICAgICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpbWFnZVZpZXcob2JqOiBhbnksIGZvb3RmYWxsRGF0ZTogYW55KSB7XHJcblxyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEltYWdlRG9jVmlld0NvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJ4bFwiLFxyXG4gICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5JbWFnZWRhdGEgPSBvYmo7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5wcm9jZXNzVHlwZSA9IHRoaXMub2JqRGF0YS5wcm9jZXNzVHlwZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvb3RmYWxsRGF0ZSA9IGZvb3RmYWxsRGF0ZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlTmFtZSA9IHRoaXMuc3RvcmVBcnJheVZhbHVlO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2Uuc3RvcmVJZCA9IHRoaXMuc3RvcmVJZGFycmF5XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5oZWFkZXJEYXRhID0gdGhpcy5oZWFkZXJEYXRhO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaW1hZ2VBcnJheSA9IHRoaXMub2JqZWN0c0FycmF5O1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuZm9sZGVyTmFtZSA9IHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lXHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS50cmFja2VyID0gdGhpcy5mb290ZmFsbERhdGFTaG93O1xyXG4gICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7IH0pO1xyXG4gICAgLy8gbW9kYWxSZWYuZGlzbWlzcygnQ2xpY2sgb3V0c2lkZScpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZVJhbmdlQXJyYXkoZnJvbURhdGU6IHN0cmluZywgdG9EYXRlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICBjb25zdCBzdGFydCA9IG5ldyBEYXRlKGZyb21EYXRlKTsgLy8gQ29udmVydCBzdHJpbmcgdG8gRGF0ZSBvYmplY3RcclxuICAgIGNvbnN0IGVuZCA9IG5ldyBEYXRlKHRvRGF0ZSk7IC8vIENvbnZlcnQgc3RyaW5nIHRvIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBkYXRlQXJyYXk6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgLy8gQ2hlY2sgaWYgdGhlIGRhdGVzIGFyZSB2YWxpZFxyXG4gICAgaWYgKGlzTmFOKHN0YXJ0LmdldFRpbWUoKSkgfHwgaXNOYU4oZW5kLmdldFRpbWUoKSkpIHtcclxuICAgICAgcmV0dXJuIGRhdGVBcnJheTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBMb29wIGZyb20gc3RhcnQgZGF0ZSB0byBlbmQgZGF0ZVxyXG4gICAgbGV0IGN1cnJlbnREYXRlID0gc3RhcnQ7XHJcbiAgICB3aGlsZSAoY3VycmVudERhdGUgPD0gZW5kKSB7XHJcbiAgICAgIGRhdGVBcnJheS5wdXNoKGN1cnJlbnREYXRlLnRvSVNPU3RyaW5nKCkuc3BsaXQoXCJUXCIpWzBdKTsgLy8gRm9ybWF0IFlZWVktTU0tRERcclxuICAgICAgY3VycmVudERhdGUuc2V0RGF0ZShjdXJyZW50RGF0ZS5nZXREYXRlKCkgKyAxKTsgLy8gSW5jcmVtZW50IHRoZSBkYXRlIGJ5IDEgZGF5XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGVBcnJheTtcclxuICB9XHJcblxyXG4gIC8vIE1ldGhvZCB0byBkaXNwbGF5IG9yIGxvZyB0aGUgZGF0ZSByYW5nZSBhcnJheVxyXG4gIGRpc3BsYXlEYXRlUmFuZ2UoKSB7XHJcbiAgICBjb25zdCBkYXRlcyA9IHRoaXMuZ2V0RGF0ZVJhbmdlQXJyYXkoXHJcbiAgICAgIHRoaXMuaGVhZGVyRGF0YS5kYXRlLnN0YXJ0RGF0ZSxcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZVxyXG4gICAgKTtcclxuICAgIHRoaXMuZGF0ZUFycmF5ID0gZGF0ZXM7XHJcbiAgfVxyXG4gIGRhdGFzZXRzID0gW1xyXG4gICAgeyB2YWx1ZTogJ2Zvb3RmYWxsJywgbGFiZWw6ICdGb290ZmFsbCcgfSxcclxuICAgIHsgdmFsdWU6ICdib3VuY2VkJywgbGFiZWw6ICdCb3VuY2VkIEZvb3RmYWxsJyB9LFxyXG4gICAgeyB2YWx1ZTogJ2VuZ2FnZXInLCBsYWJlbDogJ0VuZ2FnZXJzJyB9LFxyXG4gICAgeyB2YWx1ZTogJ21pc3NlZE9wcG9ydHVuaXR5JywgbGFiZWw6ICdNaXNzZWQgT3Bwb3J0dW5pdHknIH0sXHJcbiAgICB7IHZhbHVlOiAnY29udmVyc2lvbicsIGxhYmVsOiAnQ29udmVyc2lvbicgfVxyXG4gIF07XHJcbiAgZ2V0SW5pdGlhbFZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAvLyBGb3IgZXhhbXBsZSwgc2VsZWN0aW5nIHRoZSBzZWNvbmQgaXRlbSBpbiB0aGUgZGF0YXNldFxyXG4gICAgcmV0dXJuIHRoaXMuZGF0YXNldHNbMF0udmFsdWU7IC8vIENoYW5nZSBhcyBuZWVkZWRcclxuICB9XHJcbiAgb25WYWx1ZUNoYW5nZShzZWxlY3RlZElkOiBhbnkpIHtcclxuICAgIHRoaXMub2JqRGF0YS5wcm9jZXNzVHlwZSA9IHNlbGVjdGVkSWQsXHJcbiAgICAgIHRoaXMuZ2V0SW1hZ2VGb2xkZXIoKTtcclxuICB9XHJcbiAgZ2V0IHNlbGVjdENvbnRyb2woKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG4gIGNsb3NlRGF0YSgpIHtcclxuICAgIHRoaXMuaGlkZURvYyA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBiYWNrVG9WaWV3KCkge1xyXG4gICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICB0aGlzLmltYWdlRmxvdyA9IGZhbHNlO1xyXG4gICAgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWUgPSB0aGlzLnNlbGVjdGVkVGltZTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRUaW1lcyh0aGlzLnNlbGVjdGVkVGltZSk7XHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm9iakRhdGEpXHJcbiAgICAvLyB0aGlzLnNlcnZpY2VcclxuICAgIC8vICAgLmdldEZvb3RmYWxsRGlyZWN0b3J5KHRoaXMub2JqRGF0YSlcclxuICAgIC8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLy8gICA/LnN1YnNjcmliZSh7XHJcbiAgICAvLyAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgIC8vICAgICAgICAgaWYgKCFyZXM/LmRhdGEuZm9vdGZhbGxEYXRhLmxlbmd0aCkge1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgICB0aGlzLmltYWdlc0FycmF5RGF0YSA9IHJlcz8uZGF0YS5mb290ZmFsbERhdGE7XHJcblxyXG4gICAgLy8gICAgICAgICAgIHRoaXMuc3RvcmVBcnJheVZhbHVlID0gcmVzPy5kYXRhLnN0b3JlTmFtZVxyXG4gICAgLy8gICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG5cclxuICAgIC8vICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgfSBlbHNlIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAvLyAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgIC8vICAgICAgIH1cclxuICAgIC8vICAgICB9LFxyXG4gICAgLy8gICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgIC8vICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICAgIH0sXHJcbiAgICAvLyAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgIC8vICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VEYXRhKHR5cGU6IGFueSkge1xyXG4gICAgaWYgKHR5cGUgPT09ICdlbnRyeScpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXhpdCcpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdzdGFmZicpIHtcclxuICAgICAgdGhpcy5JbWFnZXMgPSB0aGlzLkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVxyXG4gICAgfVxyXG5cclxuICB9XHJcbiAgaXNGaXJzdEltYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhPy50ZW1wSWQpO1xyXG4gICAgcmV0dXJuIGluZGV4IDw9IDA7XHJcbiAgfVxyXG5cclxuICBpc0xhc3RJbWFnZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZXNBcnJheURhdGEuZmluZEluZGV4KChkYXRhOiBhbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YT8udGVtcElkKTtcclxuICAgIHJldHVybiBpbmRleCA+PSB0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxO1xyXG4gIH1cclxuXHJcbiAgcHJldmlvdXMoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW11cclxuICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24gPSBbXVxyXG4gICAgdGhpcy5zZWxlY3RlZE1pc3NlZCA9ICdQcm9kdWN0IElzc3VlJ1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCk7XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbaW5kZXggLSAxXTtcclxuICAgICAgaWYgKHRoaXMuSW1hZ2VkYXRhKSB7XHJcbiAgICAgICAgdGhpcy5yZXZvcFRhZ2dpbmcodGhpcy5JbWFnZWRhdGEpXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VkYXRhID0gdGhpcy5pbWFnZXNBcnJheURhdGFbMF07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdXHJcbiAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSAnUHJvZHVjdCBJc3N1ZSdcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTogYW55KSA9PiBkYXRhLnRlbXBJZCA9PT0gdGhpcy5JbWFnZWRhdGEudGVtcElkKTtcclxuICAgIGlmICh0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxICE9IGluZGV4KSB7XHJcblxyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW2luZGV4ICsgMV07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3RlZFRhYiA9ICd0YWdnZWQnO1xyXG4gIHNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gJ25vblNob3BwZXInO1xyXG4gIG9uUmFkaW9DaGFuZ2UodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gY29uc29sZS5sb2codmFsdWUpXHJcbiAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gdmFsdWU7XHJcbiAgICBpZiAodmFsdWUgPT09ICdwdXJjaGFzZXInKSB7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgIE9iamVjdC52YWx1ZXModGhpcy51c2VyRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcclxuICAgICAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIjkxXCIpO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAnbWlzc2VkT3Bwb3J0dW5pdHknKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXVxyXG4gICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBhZ2U6IG51bWJlciA9IDE7XHJcblxyXG4gIGluY3JlbWVudEFnZSgpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRBZ2UgPSBOdW1iZXIodGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy52YWx1ZSkgfHwgMDtcclxuICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoY3VycmVudEFnZSArIDEpO1xyXG4gIH1cclxuXHJcbiAgZGVjcmVtZW50QWdlKCkge1xyXG4gICAgY29uc3QgY3VycmVudEFnZSA9IE51bWJlcih0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnZhbHVlKSB8fCAwO1xyXG4gICAgLy8gY29uc29sZS5sb2coY3VycmVudEFnZSlcclxuICAgIGlmIChjdXJyZW50QWdlID4gMSkge1xyXG4gICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKGN1cnJlbnRBZ2UgLSAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgc3VibWl0TWlzc2VkT3Bwb3J0dW5pdHkoKSB7XHJcbiAgICBpZiAodGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5sZW5ndGggPT09IDApIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG1pc3NlZCBvcHBvcnR1bml0eSByZWFzb25cIilcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBtb2JpbGU6IFwiXCIsXHJcbiAgICAgICAgY291bnRyeUNvZGU6IFwiXCIsXHJcbiAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgbG9jYXRpb246IFwiXCIsXHJcbiAgICAgICAgYWdlOiBcIlwiLFxyXG4gICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIG5vblNob3BwZXJTdWJtaXQoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMubm9uU2hvcGVyVHlwZSA9PT0gJycpIHtcclxuICAgICAgdGhpcy50b2FzdGVyLmdldEVycm9yVG9hc3QoXCJwbGVhc2Ugc2VsZWN0IG5vbnNob3BwZXIgVHlwZVwiKVxyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuXHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgdGltZVJhbmdlOiB0aGlzLnNlbGVjdGVkVGltZSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogdGhpcy5ub25TaG9wZXJUeXBlLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiBcIlwiLFxyXG4gICAgICAgIG1vYmlsZTogXCJcIixcclxuICAgICAgICBjb3VudHJ5Q29kZTogXCJcIixcclxuICAgICAgICBlbWFpbDogXCJcIixcclxuICAgICAgICBsb2NhdGlvbjogXCJcIixcclxuICAgICAgICBhZ2U6IFwiXCIsXHJcbiAgICAgICAgZ2VuZGVyOiBcIlwiLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhdHVzOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICBpc3N1ZUxpc3Q6IFtdXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBpZiAodGhpcy51c2VyRm9ybS5pbnZhbGlkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBwYXlsb2FkID0gW3tcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5WzBdLFxyXG4gICAgICB0aW1lUmFuZ2U6IHRoaXMuc2VsZWN0ZWRUaW1lLFxyXG4gICAgICBkYXRlU3RyaW5nOiB0aGlzLmZvbGRlckRhdGUsXHJcbiAgICAgIHRlbXBJZDogdGhpcy5JbWFnZWRhdGEudGVtcElkLFxyXG4gICAgICBwcm9jZXNzVHlwZTogdGhpcy5zZWxlY3RDb250cm9sLnZhbHVlLFxyXG4gICAgICByZXZvcHNUeXBlOiB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlLFxyXG4gICAgICBub25zaG9wZXJUeXBlOiBcIlwiLFxyXG4gICAgICBjdXN0b21lckluZm86IHtcclxuICAgICAgICBuYW1lOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm5hbWUsXHJcbiAgICAgICAgbW9iaWxlOiB0aGlzLnVzZXJGb3JtLnZhbHVlLm1vYmlsZSxcclxuICAgICAgICBjb3VudHJ5Q29kZTogdGhpcy51c2VyRm9ybS52YWx1ZS5jb3VudHJ5Q29kZSxcclxuICAgICAgICBlbWFpbDogdGhpcy51c2VyRm9ybS52YWx1ZS5lbWFpbCxcclxuICAgICAgICBsb2NhdGlvbjogdGhpcy51c2VyRm9ybS52YWx1ZS5sb2NhdGlvbixcclxuICAgICAgICBhZ2U6IHRoaXMudXNlckZvcm0udmFsdWUuYWdlLFxyXG4gICAgICAgIGdlbmRlcjogdGhpcy51c2VyRm9ybS52YWx1ZS5nZW5kZXIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICBzdGF0dXM6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgIGlzc3VlTGlzdDogW11cclxuICAgIH1dXHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLnN1Ym1pdFJldm9wVGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLnRvYXN0ZXIuZ2V0U3VjY2Vzc1RvYXN0KFwiQ3VzdG9tZXIgaGFzIGJlZW4gdGFnZ2VkIHN1Y2Nlc3NmdWxseS5cIilcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG5cclxuICAgICAgICAgICAgfSwgMTAwMClcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcblxyXG5cclxuXHJcbiAgfVxyXG5cclxuICBpc0ludmFsaWQoZmllbGROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLnVzZXJGb3JtLmdldChmaWVsZE5hbWUpO1xyXG4gICAgcmV0dXJuICEhKGNvbnRyb2wgJiYgY29udHJvbC5pbnZhbGlkICYmIChjb250cm9sLnRvdWNoZWQgfHwgdGhpcy5zdWJtaXR0ZWQpKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0zIHB4LTAgYm9yZGVyLWJvdHRvbS0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtYWluaGVhZGluZyBwYi0wIGN1c3RvbS1hY2NvcmRpb24taGVhZGVyXCIgKGNsaWNrKT1cInRvZ2dsZUFjY29yZGlvbigpXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlY1wiPkltYWdlIERpcmVjdG9yeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvcmRpb24tYXJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIERvd24gYXJyb3cgZm9yIGNvbGxhcHNlZCBzdGF0ZSwgdXAgYXJyb3cgZm9yIGV4cGFuZGVkIHN0YXRlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNBY2NvcmRpb25FeHBhbmRlZFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNlwiIHZpZXdCb3g9XCIwIDAgMTYgNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEgMUw1IDVMOSAxXCIgc3Ryb2tlPVwiIzA3MTQzN1wiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDE2IDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDVMNSAxTDkgNVwiIHN0cm9rZT1cIiMxYjg0ZmZcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIFxyXG4gICAgICAgIFxyXG4gICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIHB4LTVcIiAqbmdJZj1cIiFoaWRlRG9jXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN3aXRjaC1mb3JtLWNhcmRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0NlwiIGhlaWdodD1cIjQ2XCIgdmlld0JveD1cIjAgMCA0NiA0NlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjNcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiByeD1cIjIwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjMuODMzMyAxNC42NjY2TDE1LjUgMjQuNjY2NkgyM0wyMi4xNjY3IDMxLjMzMzNMMzAuNSAyMS4zMzMzSDIzTDIzLjgzMzMgMTQuNjY2NlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0eHQtb25lIG1zLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPkV4YW1pbmUgaW5kaXZpZHVhbCBmb290ZmFsbCBpbiBnYWxsZXJ5IHZpZXcgd2l0aCBvcHRpbWFsIHNhbXBsZSBpbWFnZXMgZm9yIGRldGFpbGVkIGFuYWx5c2lzLjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTXVsdGlwbGVcIj5VcGxvYWQgbXVsdGlwbGUgc3RvcmVzIGZvciBjb25maWd1cmF0aW9uPC9uZy1jb250YWluZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2xvc2VEYXRhKClcIj5cclxuICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjRcIiBoZWlnaHQ9XCIyNFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTguMjk1IDcuMTE1QzE4LjY4NDQgNi43MjU2NCAxOC42ODQ0IDYuMDk0MzYgMTguMjk1IDUuNzA1QzE3LjkwNTYgNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTYuODg1IDUuNzA1TDEyIDEwLjU5TDcuMTE1IDUuNzA1QzYuNzI1NjQgNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNS43MDUgNS43MDVDNS4zMTU2NCA2LjA5NDM2IDUuMzE1NjQgNi43MjU2NCA1LjcwNSA3LjExNUwxMC41OSAxMkw1LjcwNSAxNi44ODVDNS4zMTU2NCAxNy4yNzQ0IDUuMzE1NjQgMTcuOTA1NiA1LjcwNSAxOC4yOTVDNi4wOTQzNiAxOC42ODQ0IDYuNzI1NjQgMTguNjg0NCA3LjExNSAxOC4yOTVMMTIgMTMuNDFMMTYuODg1IDE4LjI5NUMxNy4yNzQ0IDE4LjY4NDQgMTcuOTA1NiAxOC42ODQ0IDE4LjI5NSAxOC4yOTVDMTguNjg0NCAxNy45MDU2IDE4LjY4NDQgMTcuMjc0NCAxOC4yOTUgMTYuODg1TDEzLjQxIDEyTDE4LjI5NSA3LjExNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiYmxhY2tcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEgbXQtNSB0ZXh0LWNlbnRlclwiICpuZ0Zvcj1cImxldCBvYmogb2YgZGF0ZUFycmF5O2xldCBpID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldGltYWdlcyhpLG9iailcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSA9PT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHdpZHRoPVwiNTdcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTcgNTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjE1NDI5N1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiIzMzQjVGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zOS44MjE2IDM2LjE2NjdDMzkuODIxNiAzNi43ODU1IDM5LjU3NTggMzcuMzc5IDM5LjEzODIgMzcuODE2NkMzOC43MDA2IDM4LjI1NDIgMzguMTA3MSAzOC41IDM3LjQ4ODMgMzguNUgxOC44MjE2QzE4LjIwMjggMzguNSAxNy42MDkzIDM4LjI1NDIgMTcuMTcxNyAzNy44MTY2QzE2LjczNDEgMzcuMzc5IDE2LjQ4ODMgMzYuNzg1NSAxNi40ODgzIDM2LjE2NjdWMTkuODMzM0MxNi40ODgzIDE5LjIxNDUgMTYuNzM0MSAxOC42MjEgMTcuMTcxNyAxOC4xODM0QzE3LjYwOTMgMTcuNzQ1OCAxOC4yMDI4IDE3LjUgMTguODIxNiAxNy41SDI0LjY1NDlMMjYuOTg4MyAyMUgzNy40ODgzQzM4LjEwNzEgMjEgMzguNzAwNiAyMS4yNDU4IDM5LjEzODIgMjEuNjgzNEMzOS41NzU4IDIyLjEyMSAzOS44MjE2IDIyLjcxNDUgMzkuODIxNiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj57e29iaiB8IGRhdGU6J2RkIE1NTSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpICE9PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNDYyODkxXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQwLjEzMDIgMzYuMTY2N0M0MC4xMzAyIDM2Ljc4NTUgMzkuODg0NCAzNy4zNzkgMzkuNDQ2OCAzNy44MTY2QzM5LjAwOTIgMzguMjU0MiAzOC40MTU3IDM4LjUgMzcuNzk2OSAzOC41SDE5LjEzMDJDMTguNTExNCAzOC41IDE3LjkxNzkgMzguMjU0MiAxNy40ODAzIDM3LjgxNjZDMTcuMDQyNyAzNy4zNzkgMTYuNzk2OSAzNi43ODU1IDE2Ljc5NjkgMzYuMTY2N1YxOS44MzMzQzE2Ljc5NjkgMTkuMjE0NSAxNy4wNDI3IDE4LjYyMSAxNy40ODAzIDE4LjE4MzRDMTcuOTE3OSAxNy43NDU4IDE4LjUxMTQgMTcuNSAxOS4xMzAyIDE3LjVIMjQuOTYzNUwyNy4yOTY5IDIxSDM3Ljc5NjlDMzguNDE1NyAyMSAzOS4wMDkyIDIxLjI0NTggMzkuNDQ2OCAyMS42ODM0QzM5Ljg4NDQgMjIuMTIxIDQwLjEzMDIgMjIuNzE0NSA0MC4xMzAyIDIzLjMzMzNWMzYuMTY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMi4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yXCI+e3tvYmogfCBkYXRlOidkZCBNTU0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiAqbmdJZj1cIiFmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFpbWFnZUZsb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBtdC0zIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlciBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJhY2tuYXZcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb0Zvb3RmYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlYyBtcy0yXCI+e3tmb2xkZXJEYXRlIHwgZGF0ZTonZGQgTU1NLCB5eXl5J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLWF1dG8gdGV4dC1lbmRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Zm9ybSAqbmdJZj1cIiFub3JtYWxpemUgJiYgIWNsaWVudERhdGE/LmlzRm9vdGZhbGxWaWV3XCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdENvbnRyb2xcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkYXRhXT1cImRhdGFzZXRzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ3LTEwMCB0ZXh0LXN0YXJ0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgPGRpdiAgY2xhc3M9XCJkLWZsZXggbXQtMiBtYi0yIHctMTAwIG92ZXJmbG93LXggcHgtMFwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0aGlzLmhlYWRlckRhdGE/LmNsaWVudCAhPT0nNDU5J1wiPlxyXG4gICAgICAgIDxkaXYgIGNsYXNzPVwiY29sIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzQXJyYXlcIj5cclxuICAgICAgICAgICAgPHVsICpuZ0lmPVwibGVuZ3RoVmFsdWVcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUaW1lcyhvYmouZm9sZGVyTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgPT09JzQ1OSdcIj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbCB0ZXh0LW5vd3JhcFwiICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c0FycmF5LnNsaWNlKDAsIC0xKVwiPlxyXG4gICAgICAgICAgICA8dWwgKm5nSWY9XCJsZW5ndGhWYWx1ZVwiIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai5mb2xkZXJOYW1lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYWN0aXZlJyA6ICcnXCIgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbXgtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy5mb2xkZXJOYW1lfX08c3BhbiBjbGFzcz1cIm14LTIgXCIgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LmZvbGRlck5hbWUgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPnt7b2JqPy5jb3VudD9vYmo/LmNvdW50OjB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub3JtYWxpemVcIiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLW5vZGF0YTFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9ub3QtYXBwbGljYWJsZS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlIG10LTNcIj5EYXRhIE5vdCBGb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+Tm9ybWFsaXplZCBkYXRhIGlzIG5vdCBhcHBsaWNhYmxlPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhbm9ybWFsaXplXCIgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBkYXRhIGZvdW5kPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgaW1hZ2UgZGlyZWN0b3J5PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0wIGltZy10cmFmZmljIGNvbnRhaW4gaGlnaC00MDBweCBzY3JvbGwteVwiICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbC1tZC0zIGJvcmRlci1ncmF5IG14LTIgcC0yIG10LTVcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIGltYWdlc0FycmF5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2UmJmNsaWVudERhdGE/LmlzUmV2b3BzXCIgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgKGVycm9yKT1cIm9iaj8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiPlxyXG4gICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2UmJiFjbGllbnREYXRhPy5pc1Jldm9wc1wiIGNsYXNzPVwiaW1nLXNyYyBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIChlcnJvcik9XCJvYmo/LmltYWdlcy5lbnRyeVRpbWVJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VWaWV3KG9iaixvYmpEYXRhLmZvb3RmYWxsRGF0ZSlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhb2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTUgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGUgYXQgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtZGlyZWN0b3J5XCI+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1pbmZvXCI+e3tvYmoudGVtcElkfX08L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+TWlzc2VkIE9wcG9ydHVuaXR5PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RDb250cm9sLnZhbHVlID09PSdib3VuY2VkJ1wiIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyBtcy0yXCI+Qm91bmNlZCBGb290ZmFsbDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSB8fCBzZWxlY3RDb250cm9sLnZhbHVlIGFzIHZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1wcmltYXJ5JzogdmFsdWUgPT09ICdmb290ZmFsbCd8fCAhdmFsdWUgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtc3VjY2Vzcyc6ICB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC13YXJuaW5nJzogdmFsdWUgPT09ICdub25TaG9wcGVyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicgPyAnUHVyY2hhc2VyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknID8gJ01pc3NlZCBPcHBvcnR1bml0eScgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSB8IHRpdGxlY2FzZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPkVudHJ5IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPkV4aXQgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+VG90YWwgVGltZSBTcGVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSB0ZXh0LWVuZFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIG10LTRcIiAqbmdJZj1cIiFjbGllbnREYXRhPy5pc1Jldm9wc1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yXCIgKm5nSWY9XCJjbGllbnREYXRhPy5pc1Jldm9wc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCIhb2JqPy5yZXZvcHNUeXBlfHxvYmo/LnJldm9wc1R5cGU9PT0nJ1wiIG5nYlRvb2x0aXA9XCJZZXQgdG8gdGFnIHRoZSBjdXN0b21lclwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguMzczMjggMC4wMDIwMTYwNkM3LjIwOTMyIC0wLjAyMzMxNSA2LjA1Mzg1IDAuMjA1NzExIDQuOTg3NTUgMC42NzMxMDZDMy45MjEyNSAxLjE0MDUgMi45Njk4MSAxLjgzNSAyLjE5OTY3IDIuNzA4MTFDMS40Mjk1MiAzLjU4MTIzIDAuODU5MjI1IDQuNjExOTIgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk2NiA2Ljg0NDUzIDAuMTE0OTcxIDguMDE5NTUgMC4yODU0MDQgOS4xNzEyNEMwLjQ1NTgzNyAxMC4zMjI5IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzIuMTU1MTMgMTMuMzY5IDIuOTk5NSAxNC4xOTAzIDMuOTg5NTEgMTQuODAyOUM0Ljk3OTUzIDE1LjQxNTYgNi4wOTEzMyAxNS44MDQ4IDcuMjQ3MyAxNS45NDMzQzguNDAzMjYgMTYuMDgxOCA5LjU3NTU0IDE1Ljk2NjQgMTAuNjgyMyAxNS42MDVDMTAuODcxNCAxNS41NDMyIDExLjAyODIgMTUuNDA4OCAxMS4xMTgyIDE1LjIzMTRDMTEuMjA4MiAxNS4wNTQgMTEuMjI0MSAxNC44NDgxIDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTMgMTQuMTMzMSAxMC40MDU0IDE0LjExNzIgMTAuMjE2MyAxNC4xNzlDOS4wMTM1OSAxNC41NzE3IDcuNzIyNDIgMTQuNjA0OSA2LjUwMTE0IDE0LjI3NDVDNS4yNzk4NiAxMy45NDQxIDQuMTgxNTUgMTMuMjY0NCAzLjM0MDkyIDEyLjMxODlDMi41MDAyOCAxMS4zNzM0IDEuOTUzODYgMTAuMjAzMSAxLjc2ODY3IDguOTUxNTFDMS41ODM0OCA3LjY5OTk1IDEuNzY3NTcgNi40MjE1NSAyLjI5ODM3IDUuMjczMDlDMi44MjkxNiA0LjEyNDYzIDMuNjgzNTggMy4xNTYwNCA0Ljc1Njg0IDIuNDg2MTFDNS44MzAxMSAxLjgxNjE4IDcuMDc1NTUgMS40NzQwMyA4LjM0MDQ0IDEuNTAxNjNDOS42MDUzMyAxLjUyOTIyIDEwLjgzNDcgMS45MjUzNiAxMS44Nzc3IDIuNjQxNDdDMTIuOTIwNyAzLjM1NzU3IDEzLjczMjEgNC4zNjI1IDE0LjIxMjMgNS41MzMwMkMxNC4yODc3IDUuNzE3MDggMTQuNDMzMiA1Ljg2MzYyIDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjEgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTUgMTUuNjAwMyA0Ljk2NDAyQzE1LjAwOTMgMy41MjMzMSAxNC4wMTA3IDIuMjg2MzkgMTIuNzI2OSAxLjQwNDk4QzExLjQ0MzIgMC41MjM1NzEgOS45MzAxMiAwLjAzNTk4MTUgOC4zNzMyOCAwLjAwMjAxNjA2Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjU4Nzk2IDMuMDc5MDMgOC4zOTcxOSAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0MjggOS43MjMwMkM1LjM0MDU5IDkuNzkxNjggNS4yODE0OSA5Ljg3NDQ4IDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjY3ODggMTAuNjQ2IDUuMzI0MDIgMTAuNzMwOCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzIyODIgMTAuOTE1OCA2LjQwNTYyIDEwLjg1NjcgNi40NzQyOCAxMC43ODNMOC43MjgyOCA4LjUzMDAyTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xNS4xOTgzIDE1QzE1LjE5ODMgMTUuMjY1MiAxNS4wOTI5IDE1LjUxOTYgMTQuOTA1NCAxNS43MDcxQzE0LjcxNzkgMTUuODk0NyAxNC40NjM1IDE2IDE0LjE5ODMgMTZDMTMuOTMzMSAxNiAxMy42Nzg3IDE1Ljg5NDcgMTMuNDkxMiAxNS43MDcxQzEzLjMwMzYgMTUuNTE5NiAxMy4xOTgzIDE1LjI2NTIgMTMuMTk4MyAxNUMxMy4xOTgzIDE0LjczNDggMTMuMzAzNiAxNC40ODA0IDEzLjQ5MTIgMTQuMjkyOUMxMy42Nzg3IDE0LjEwNTQgMTMuOTMzMSAxNCAxNC4xOTgzIDE0QzE0LjQ2MzUgMTQgMTQuNzE3OSAxNC4xMDU0IDE0LjkwNTQgMTQuMjkyOUMxNS4wOTI5IDE0LjQ4MDQgMTUuMTk4MyAxNC43MzQ4IDE1LjE5ODMgMTVaTTE0Ljk0ODMgOC43NTAwMkMxNC45NDgzIDguNTUxMSAxNC44NjkzIDguMzYwMzQgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTAzIDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwMyAxMy42NjggOC4yMTk2OUMxMy41MjczIDguMzYwMzQgMTMuNDQ4MyA4LjU1MTEgMTMuNDQ4MyA4Ljc1MDAyVjEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM5NzIgMTMgMTQuNTg4IDEyLjkyMSAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjguNzUwMDJaXCIgZmlsbD1cIiNGNzkwMDlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTUuMTg1OCA0LjEwMzc5QzE1LjA5OTYgMy45NDkwNyAxNS4wMDgzIDMuNzk3NDQgMTQuOTEyMSAzLjY0OTExQzE0LjU3NDcgMy4xMjg0MyAxNC4xNzc2IDIuNjQ4NTQgMTMuNzI4OSAyLjIxOTMyQzEzLjQxODcgMS45MjI1NyAxMy4wODM5IDEuNjUwMDQgMTIuNzI2OSAxLjQwNDk4QzEyLjcyNjkgMS40MDQ5MyAxMi43MjcgMS40MDUwNCAxMi43MjY5IDEuNDA0OThDMTIuNTE0NCAxLjI1OTA2IDEyLjI5NTQgMS4xMjM3OSAxMi4wNzExIDAuOTk5NzI5QzExLjgyNTUgMC44NjM4OTMgMTEuNTczNCAwLjc0MTMyMiAxMS4zMTU5IDAuNjMyMzc3QzEwLjM4ODIgMC4yMzk4NzMgOS4zOTAwNiAwLjAyNDE5OSA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zNzMyNCAwLjAwMjAxNTE4IDguMzczMzIgMC4wMDIwMTY5NCA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zMTQ5NiAwLjAwMDc0Nzc5IDguMjU2NTUgMC4wMDAxMTUzODcgOC4xOTgyOCAwLjAwMDEyMjEyNEM3LjEyNzYgMC4wMDAyNDU5MiA2LjA2NzU0IDAuMjE1MzA0IDUuMDgxMDggMC42MzI4MTZDNS4wNDk4MyAwLjY0NjA0MyA1LjAxODY1IDAuNjU5NDczIDQuOTg3NTUgMC42NzMxMDZDNC43NjExNSAwLjc3MjM0MyA0LjUzOTkzIDAuODgxODIgNC4zMjQ1MiAxLjAwMTA3QzQuMjAyMDEgMS4wNjg4OSA0LjA4MTM5IDEuMTM5ODcgMy45NjI3NSAxLjIxMzkzQzMuMzA3NTYgMS42MjI5NiAyLjcxMzI5IDIuMTI1ODEgMi4xOTk2NyAyLjcwODExQzEuNjg2MDIgMy4yOTA0MyAxLjI2MTI3IDMuOTQyODUgMC45MzcyMzIgNC42NDRDMC43NzU0MTUgNC45OTQxNCAwLjYzODcxMyA1LjM1NjQzIDAuNTI4NTk2IDUuNzI4MjJDMC4xOTc5OSA2Ljg0NDQ1IDAuMTE0OTgzIDguMDE5MzggMC4yODUzNjYgOS4xNzA5OUMwLjI4NTM1NCA5LjE3MDkxIDAuMjg1Mzc5IDkuMTcxMDggMC4yODUzNjYgOS4xNzA5OUMwLjQ1NTggMTAuMzIyNyAwLjg3NTU5MSAxMS40MjM2IDEuNTE1MzYgMTIuMzk2M0MxLjcyODM1IDEyLjcyMDEgMS45NjQwMiAxMy4wMjcxIDIuMjIwMTkgMTMuMzE1M0MyLjczMzQ5IDEzLjg5MjcgMy4zMjkwOSAxNC4zOTQzIDMuOTg5NTEgMTQuODAyOUM0LjY0OTY3IDE1LjIxMTUgNS4zNjM5OCAxNS41MjA2IDYuMTA5NDMgMTUuNzIyNEM2LjQ4MTkgMTUuODIzMiA2Ljg2MjE1IDE1Ljg5NzEgNy4yNDczIDE1Ljk0MzNDNy4yOTEyMyAxNS45NDg2IDcuMzM1MTkgMTUuOTUzNSA3LjM3OTE3IDE1Ljk1OEM4LjAxNDkyIDE2LjAyMzUgOC42NTQ2NCAxNi4wMTI0IDkuMjg0NzggMTUuOTI2MUM5LjUyMTQ2IDE1Ljg5MzcgOS43NTY3OCAxNS44NTA3IDkuOTkwMDQgMTUuNzk3MUMxMC4yMjMgMTUuNzQzNiAxMC40NTM5IDE1LjY3OTYgMTAuNjgxOSAxNS42MDUxQzEwLjY4MTggMTUuNjA1MiAxMC42ODIxIDE1LjYwNTEgMTAuNjgxOSAxNS42MDUxQzEwLjcxOTYgMTUuNTkyOCAxMC43NTYzIDE1LjU3NzUgMTAuNzkxMSAxNS41NTk3QzEwLjkzMTIgMTUuNDg4IDExLjA0NjEgMTUuMzczNSAxMS4xMTgyIDE1LjIzMTRDMTEuMTU1NCAxNS4xNTgxIDExLjE4IDE1LjA3OTkgMTEuMTkxNiAxNUMxMS4yMDgxIDE0Ljg4NjcgMTEuMTk4NSAxNC43NyAxMS4xNjIzIDE0LjY1OUMxMS4xMDA1IDE0LjQ2OTkgMTAuOTY2MSAxNC4zMTMxIDEwLjc4ODcgMTQuMjIzMUMxMC42MTE0IDE0LjEzMzEgMTAuNDA1NiAxNC4xMTcyIDEwLjIxNjYgMTQuMTc4OUMxMC4yMTY1IDE0LjE3ODkgMTAuMjE2OCAxNC4xNzg5IDEwLjIxNjYgMTQuMTc4OUMxMC4xMTIxIDE0LjIxMyAxMC4wMDY1IDE0LjI0NDYgOS45MDA3MyAxNC4yNzMzQzkuNzQ4NDggMTQuMzE0NiA5LjU5NTA2IDE0LjM1MDMgOS40NDA3OCAxNC4zODAzQzkuMzcxNDYgMTQuMzkzOCA5LjMwMTk2IDE0LjQwNjIgOS4yMzIzMyAxNC40MTc0QzguODU0OCAxNC40NzgyIDguNDczMDIgMTQuNTA1NSA4LjA5MTQ0IDE0LjQ5OTJDNy45OTU2OCAxNC40OTc2IDcuODk5OTIgMTQuNDkzOSA3LjgwNDI2IDE0LjQ4ODFDNy42Nzc5IDE0LjQ4MDQgNy41NTE2OCAxNC40NjkxIDcuNDI1NzggMTQuNDU0QzcuMzYxMzMgMTQuNDQ2MyA3LjI5Njk2IDE0LjQzNzYgNy4yMzI2OSAxNC40Mjc5QzYuOTg2OTMgMTQuMzkxIDYuNzQyNjcgMTQuMzM5OSA2LjUwMTE0IDE0LjI3NDVDNi4zMjkzMyAxNC4yMjggNi4xNTk5NSAxNC4xNzQ2IDUuOTkzMzcgMTQuMTE0NkM1LjU2ODA5IDEzLjk2MTIgNS4xNjExMiAxMy43NjQyIDQuNzc4NyAxMy41Mjc2QzQuNzMzNzMgMTMuNDk5OCA0LjY4OTExIDEzLjQ3MTQgNC42NDQ4MyAxMy40NDI1QzQuMjcwMDMgMTMuMTk3OCAzLjkyMDI4IDEyLjkxNDIgMy42MDE3NCAxMi41OTU2QzMuNTEyMjkgMTIuNTA2MSAzLjQyNTMxIDEyLjQxMzggMy4zNDA5MiAxMi4zMTg5QzMuMTMxMzkgMTIuMDgzMiAyLjk0MDE0IDExLjgzMzYgMi43NjgyMSAxMS41NzIyQzIuNzYzODUgMTEuNTY1NiAyLjc1OTUgMTEuNTU5IDIuNzU1MTYgMTEuNTUyM0MyLjQ3OTY0IDExLjEzMDEgMi4yNTQzNyAxMC42Nzc1IDIuMDgzNjggMTAuMjAzOUMxLjkzODA3IDkuNzk5OTMgMS44MzIxOCA5LjM4MDYxIDEuNzY4NzEgOC45NTE3NEMxLjc2ODY5IDguOTUxNjYgMS43Njg3MiA4Ljk1MTgyIDEuNzY4NzEgOC45NTE3NEMxLjc0MTI1IDguNzY2MjEgMS43MjE4OCA4LjU3OTg2IDEuNzEwNTkgOC4zOTM2N0MxLjcwNDcxIDguMjk2ODMgMS43MDEwMSA4LjE5OTk4IDEuNjk5NDggOC4xMDMxN0MxLjY4OTAyIDcuNDQzNTUgMS43NzkwNSA2Ljc4NjI2IDEuOTY2MzEgNi4xNTQwNUMyLjA1NTIgNS44NTM5NCAyLjE2NjAxIDUuNTU5NDcgMi4yOTgzNyA1LjI3MzA5QzIuNTYzNzggNC42OTg4MyAyLjkxMDExIDQuMTY5NTQgMy4zMjQyNSAzLjcwMDA3QzMuMzY2MTggMy42NTI1NCAzLjQwODggMy42MDU2MyAzLjQ1MjEgMy41NTkzNEMzLjgzNjQ5IDMuMTQ4NDggNC4yNzQ1OCAyLjc4NzE0IDQuNzU2ODQgMi40ODYxMUM1LjAyNDUyIDIuMzE5MDMgNS4zMDI5MSAyLjE3MjMzIDUuNTg5NjMgMi4wNDY2OEM1LjgwNDcxIDEuOTUyNDIgNi4wMjQ0OSAxLjg3IDYuMjQ3OTYgMS43OTk3QzYuODc2MjggMS42MDIwMiA3LjUzMzggMS41MDAxMiA4LjE5ODI4IDEuNTAwMDhDOC4yNDU2MyAxLjUwMDA4IDguMjkzMDIgMS41MDA1OSA4LjM0MDQ0IDEuNTAxNjNDOC45NTc0NSAxLjUxNTExIDkuNTY2MiAxLjYxNjI5IDEwLjE0ODggMS43OTk1MkMxMC43NjA1IDEuOTkxODkgMTEuMzQzNSAyLjI3NDcyIDExLjg3NzcgMi42NDE0N0MxMS44Nzc2IDIuNjQxNDIgMTEuODc3OCAyLjY0MTUxIDExLjg3NzcgMi42NDE0N0MxMi4wODM5IDIuNzgzMDQgMTIuMjgxMiAyLjkzNjAzIDEyLjQ2ODUgMy4wOTkyMkMxMi42MzUxIDMuMjQ0MzYgMTIuNzkzOSAzLjM5NzY3IDEyLjk0NDQgMy41NTg0OEMxMy4wOTc0IDMuNzIxOTcgMTMuMjQxOSAzLjg5MzIyIDEzLjM3NzEgNC4wNzE1MkMxMy41NTU1IDQuMzA2NiAxMy43MTc5IDQuNTUzOTUgMTMuODYzMSA0LjgxMTk1QzEzLjk0MjcgNC45NTMzNiAxNC4wMTcxIDUuMDk3OTggMTQuMDg2MSA1LjI0NTUyQzE0LjEyNTMgNS4zMjkxNCAxNC4xNjI3IDUuNDEzNzEgMTQuMTk4MyA1LjQ5OTE2QzE0LjIwMyA1LjUxMDQzIDE0LjIwNzYgNS41MjE3MiAxNC4yMTIzIDUuNTMzMDJDMTQuMjEyMiA1LjUzMjkyIDE0LjIxMjMgNS41MzMxMiAxNC4yMTIzIDUuNTMzMDJDMTQuMjg3OCA1LjcxNjkzIDE0LjQzMzMgNS44NjM2NyAxNC42MTY3IDUuOTQwNDJDMTQuNzA3NiA1Ljk3ODQ1IDE0LjgwNSA1Ljk5ODIgMTQuOTAzNSA1Ljk5ODU2QzE1LjAwMiA1Ljk5ODkyIDE1LjA5OTYgNS45Nzk4OCAxNS4xOTA4IDUuOTQyNTJDMTUuMjgxOSA1LjkwNTE2IDE1LjM2NDggNS44NTAyMSAxNS40MzQ3IDUuNzgwODJDMTUuNTA0NiA1LjcxMTQyIDE1LjU2MDIgNS42Mjg5NCAxNS41OTgyIDUuNTM4MDhDMTUuNjM2MiA1LjQ0NzIyIDE1LjY1NiA1LjM0OTc1IDE1LjY1NjMgNS4yNTEyNkMxNS42NTY3IDUuMTUyNzYgMTUuNjM3NiA1LjA1NTE2IDE1LjYwMDMgNC45NjQwMkMxNS42MDAyIDQuOTYzOSAxNS42MDAzIDQuOTY0MTQgMTUuNjAwMyA0Ljk2NDAyQzE1LjUwOTEgNC43NDE4NyAxNS40MDgyIDQuNTI0MiAxNS4yOTgxIDQuMzEyMjlDMTUuMjYxNyA0LjI0MjIgMTUuMjI0MiA0LjE3MjY5IDE1LjE4NTggNC4xMDM3OVpNOC45NDgyOCAzLjc1MDAyQzguOTQ4MjggMy41NTExIDguODY5MjYgMy4zNjAzNCA4LjcyODYxIDMuMjE5NjlDOC42MTQwNSAzLjEwNTEyIDguNDY2MjQgMy4wMzE0NSA4LjMwNzg2IDMuMDA4MDZDOC4yNzE4OCAzLjAwMjc2IDguMjM1MDggMy4wMDAwMiA4LjE5ODI4IDMuMDAwMDJDNy45OTkzNyAzLjAwMDAyIDcuODA4NiAzLjA3OTAzIDcuNjY3OTUgMy4yMTk2OUM3LjUyNzMgMy4zNjAzNCA3LjQ0ODI4IDMuNTUxMSA3LjQ0ODI4IDMuNzUwMDJWNy42OTAwMkw1LjQxNDUyIDkuNzIyNzhDNS40MDE1OSA5LjczNDgzIDUuMzg4ODcgOS43NDc1NSA1LjM3Njg2IDkuNzYwNDRDNS4zMjA0MSA5LjgyMTAyIDUuMjc0MyA5Ljg5MDYyIDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjM4NjMgMTAuNTczNiA1LjI0ODA0IDEwLjU5NDIgNS4yNTgzNCAxMC42MTQyQzUuMjkzODcgMTAuNjgzNCA1LjM0MDAyIDEwLjc0NjggNS4zOTUyNCAxMC44MDIxQzUuNDY2NDYgMTAuODczMyA1LjU1MTI5IDEwLjkyOTQgNS42NDQ2OCAxMC45NjcxQzUuNzM4MDcgMTEuMDA0OSA1LjgzODEgMTEuMDIzNCA1LjkzODggMTEuMDIxNkM2LjAzOTUxIDExLjAxOTggNi4xMzg4MiAxMC45OTc4IDYuMjMwODIgMTAuOTU2OEM2LjMwNjY4IDEwLjkyMyA2LjM3NjI4IDEwLjg3NjkgNi40MzY4NiAxMC44MjA0QzYuNDQ5NjYgMTAuODA4NSA2LjQ2MjA2IDEwLjc5NjEgNi40NzQwMyAxMC43ODMzQzYuNDczOTUgMTAuNzgzNCA2LjQ3NDExIDEwLjc4MzIgNi40NzQwMyAxMC43ODMzTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xMy40NDgzIDEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM4OTUgMTMgMTQuNTczMiAxMi45MjcgMTQuNzEyMSAxMi43OTYzQzE0LjcxNzcgMTIuNzkxMSAxNC43MjMyIDEyLjc4NTggMTQuNzI4NiAxMi43ODAzQzE0Ljg2OTMgMTIuNjM5NyAxNC45NDgzIDEyLjQ0ODkgMTQuOTQ4MyAxMi4yNVYxMC4wNTY2QzE0LjcwMTUgMTAuMDE5MSAxNC40NTA5IDEwIDE0LjE5ODMgMTBDMTMuOTQ1NyAxMCAxMy42OTUgMTAuMDE5MSAxMy40NDgzIDEwLjA1NjZWMTIuMjVaTTEzLjQ0ODMgOS43NjkyN0MxMy42OTMyIDkuODQ4MjggMTMuOTQ0MSA5LjkwNzE5IDE0LjE5ODMgOS45NDU1MUMxNC40MjY0IDkuOTc5ODkgMTQuNjU3MiA5Ljk5NzY5IDE0Ljg4ODkgOS45OTg1NEMxNC45MDg3IDkuOTk4NjEgMTQuOTI4NSA5Ljk5ODU2IDE0Ljk0ODMgOS45OTgzOFY4Ljc1MDAyQzE0Ljk0ODMgOC42NTM1NiAxNC45Mjk3IDguNTU5MDEgMTQuODk0NSA4LjQ3MTE3QzE0Ljg1NzEgOC4zNzc4NyAxNC44MDExIDguMjkyMTMgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTA0IDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwNCAxMy42NjggOC4yMTk2OUMxMy42NjUgOC4yMjI2OCAxMy42NjIgOC4yMjU2OSAxMy42NTkxIDguMjI4NzJDMTMuNTI4MiA4LjM2NDEgMTMuNDUzIDguNTQzNzYgMTMuNDQ4NSA4LjczMTg4QzEzLjQ0ODQgOC43Mzc5MiAxMy40NDgzIDguNzQzOTcgMTMuNDQ4MyA4Ljc1MDAyVjkuNzY5MjdaTTE1LjE5NjMgMTUuMDYyNkMxNS4xOTc2IDE1LjA0MTggMTUuMTk4MyAxNS4wMjA5IDE1LjE5ODMgMTVDMTUuMTk4MyAxNC45OTg0IDE1LjE5ODMgMTQuOTk2OCAxNS4xOTgzIDE0Ljk5NTFDMTUuMTk3IDE0LjczMTcgMTUuMDkxOCAxNC40NzkzIDE0LjkwNTQgMTQuMjkyOUMxNC43MTc4IDE0LjEwNTQgMTQuNDYzNSAxNCAxNC4xOTgzIDE0QzEzLjkzMzEgMTQgMTMuNjc4NyAxNC4xMDU0IDEzLjQ5MTIgMTQuMjkyOUMxMy4zMDM2IDE0LjQ4MDQgMTMuMTk4MyAxNC43MzQ4IDEzLjE5ODMgMTVDMTMuMTk4MyAxNS4yNjUyIDEzLjMwMzYgMTUuNTE5NiAxMy40OTEyIDE1LjcwNzFDMTMuNjc4NyAxNS44OTQ3IDEzLjkzMzEgMTYgMTQuMTk4MyAxNkMxNC40NjM1IDE2IDE0LjcxNzggMTUuODk0NyAxNC45MDU0IDE1LjcwNzFDMTUuMDc4MSAxNS41MzQ0IDE1LjE4MTEgMTUuMzA1IDE1LjE5NjMgMTUuMDYyNlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4xOTkyMTkpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSYmb2JqPy5yZXZvcHNUeXBlIT09JydcIiAgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCIgbmdiVG9vbHRpcD1cIkN1c3RvbWVyIFRhZ2dpbmcgaXMgRG9uZVwiICBwbGFjZW1lbnQ9XCJ0b3BcIj4gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDMzNV8yMjg1NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuMDYzOCA3LjM4NjYyVjcuOTk5OTVDMTUuMDYzIDkuNDM3NTYgMTQuNTk3NSAxMC44MzY0IDEzLjczNjcgMTEuOTg3OEMxMi44NzU5IDEzLjEzOTMgMTEuNjY2IDEzLjk4MTYgMTAuMjg3NCAxNC4zODkyQzguOTA4NzYgMTQuNzk2OCA3LjQzNTMxIDE0Ljc0NzkgNi4wODY3OCAxNC4yNDk3QzQuNzM4MjYgMTMuNzUxNSAzLjU4NjkxIDEyLjgzMDcgMi44MDQ0NCAxMS42MjQ3QzIuMDIxOTggMTAuNDE4NiAxLjY1MDMzIDguOTkxOTkgMS43NDQ5MiA3LjU1NzQ5QzEuODM5NTEgNi4xMjI5OSAyLjM5NTI3IDQuNzU3NSAzLjMyOTMyIDMuNjY0NjdDNC4yNjMzNyAyLjU3MTgzIDUuNTI1NjYgMS44MTAyMSA2LjkyNzkzIDEuNDkzMzhDOC4zMzAyIDEuMTc2NTYgOS43OTczMSAxLjMyMTUxIDExLjExMDUgMS45MDY2Mk0xNS4wNjM4IDIuNjY2NjJMOC4zOTcxNCA5LjMzOTk1TDYuMzk3MTQgNy4zMzk5NVwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAzMzVfMjI4NTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMzk4NDM4KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC5lbnRyeVRpbWV9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQuZXhpdFRpbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cInB5LTIgaW1nLWRvYy12YWx1ZVwiPnt7b2JqLnRpbWVTcGVudC50b3RhbFRpbWVTcGVudH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImltYWdlRmxvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rLTAgbXQtMyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9WaWV3KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIHB5LTIgaW1nLWRvYy1kaXJlY3RvcnlcIj48c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWluZm9cIj57e0ltYWdlZGF0YS50ZW1wSWR9fTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgYXMgdmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ2YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXMtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHZhbHVlID09PSAnZm9vdGZhbGwnICxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtc3VjY2Vzcyc6IHZhbHVlID09PSAncHVyY2hhc2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtd2FybmluZyc6IHZhbHVlID09PSAnbm9uU2hvcHBlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRhbmdlcic6IHZhbHVlID09PSAnYm91bmNlZCcgfHwgdmFsdWUgPT09ICdlbmdhZ2VyJyB8fCB2YWx1ZSA9PT0gJ21pc3NlZE9wcG9ydHVuaXR5JyB8fCB2YWx1ZSA9PT0gJ2NvbnZlcnNpb24nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdwdXJjaGFzZXInID8gJ1B1cmNoYXNlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdub25TaG9wcGVyJyA/ICdOb24gU2hvcHBlcicgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgPyAnTWlzc2VkIE9wcG9ydHVuaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAodmFsdWUgfCB0aXRsZWNhc2UpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgW25nQ2xhc3NdPVwieyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnOiBpc0ZpcnN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzRmlyc3RJbWFnZSgpID8gJ25vbmUnIDogJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0ZpcnN0SW1hZ2UoKSAmJiBwcmV2aW91cygpXCIgPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDhDMC41IDMuODU3ODYgMy44NTc4NiAwLjUgOCAwLjVIMzkuNVYzOS41SDhDMy44NTc4NiAzOS41IDAuNSAzNi4xNDIxIDAuNSAzMlY4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgOEMwLjUgMy44NTc4NiAzLjg1Nzg2IDAuNSA4IDAuNUgzOS41VjM5LjVIOEMzLjg1Nzg2IDM5LjUgMC41IDM2LjE0MjEgMC41IDMyVjhaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi41IDI1TDE3LjUgMjBMMjIuNSAxNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwJzogaXNMYXN0SW1hZ2UoKSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLnBvaW50ZXItZXZlbnRzXT1cImlzTGFzdEltYWdlKCkgPyAnbm9uZScgOiAnYXV0bydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiIWlzTGFzdEltYWdlKCkgJiYgbmV4dCgpXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgMC41SDMyQzM2LjE0MjEgMC41IDM5LjUgMy44NTc4NiAzOS41IDhWMzJDMzkuNSAzNi4xNDIxIDM2LjE0MjEgMzkuNSAzMiAzOS41SDAuNVYwLjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSAwLjVIMzJDMzYuMTQyMSAwLjUgMzkuNSAzLjg1Nzg2IDM5LjUgOFYzMkMzOS41IDM2LjE0MjEgMzYuMTQyMSAzOS41IDMyIDM5LjVIMC41VjAuNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMjVMMjIuNSAyMEwxNy41IDE1XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGNvbnRhaW4gbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nICBjbGFzcz1cImltZy1zcmMxXCIgW3NyY109XCJJbWFnZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZXMgPSBudWxsXCIgYWx0PVwiXCIgYXBwTWFnbmlmaWVyID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIHt7bXlUaHVtYm5haWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtaW1hZ2Utem9vbVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RodW1iSW1hZ2VdPW15VGh1bWJuYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmdWxsSW1hZ2VdPW15RnVsbHJlc0ltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttYWduaWZpY2F0aW9uXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlU2Nyb2xsWm9vbV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZUxlbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZW5zV2lkdGhdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xlbnNIZWlnaHRdPVwiMjAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZ3gtaW1hZ2Utem9vbT4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlc1wiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTUgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBzbGlkZXIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01ICBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheSc6IEltYWdlcyAhPT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FbnRyeSBUaW1lMTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImN1cnNvci1wb2ludGVyIHctMTAwIHJvdW5kZWQtMiBtaC0xMDBweCBwYi0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZURhdGEoJ2VudHJ5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5JzogSW1hZ2VzICE9PSBJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlN0YWZmIEVuZ2FnZW1lbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5zdGFmZkVuZ2FnZW1lbnRJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdzdGFmZicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbC00IFwiICpuZ0lmPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UgJiYgZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTUgIGJvcmRlci0yXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5LWFjdGl2ZSc6IEltYWdlcyA9PT0gSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXknOiBJbWFnZXMgIT09IEltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5FeGl0IFRpbWU8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIkltYWdlZGF0YT8uaW1hZ2VzLmV4aXRUaW1lSW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZXhpdCcpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3LXNtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTIgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi0yIHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IHBlLTAgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IGZsZXgtd3JhcCBuYXYtZGV2IGZ3LWJvbGQgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gbXktMSB3LTUwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRhYiA9ICd0YWdnZWQnXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ3RhZ2dlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0YWItdGV4dC1kZWZhdWx0IGJ0biBuYXYtbGluayBweC0zIHB4LWxnLTggbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFnZ2VkIEluZm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG15LTEgdy01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAnY3VzdG9tZXInXCIgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYi1hY3RpdmUnOiBzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiBjbGFzcz1cInRhYi10ZXh0LWRlZmF1bHQgYnRuIG5hdi1saW5rIHB4LTMgcHgtbGctOCBteC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lciBJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICd0YWdnZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG14LTMgbXQtNSBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvTm9uU2hvcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJub25TaG9wcGVyXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEN1c3RvbWVyVHlwZVwiIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbm9uU2hvcHBlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvTm9uU2hvcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbiBTaG9wcGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImV4YW1wbGVSYWRpb3NcIiBpZD1cInJhZGlvUHVyY2hhc2VyXCIgdmFsdWU9XCJwdXJjaGFzZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIiAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ3B1cmNoYXNlcicpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIGN1cnNvci1wb2ludGVyIHRvZ2dsZS1sYWJlbFwiIGZvcj1cInJhZGlvUHVyY2hhc2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVyY2hhc2VyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IGZvcm0tY2hlY2sgbXQtNSBweC0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb01pc3NlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJtaXNzZWRPcHBvcnR1bml0eVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZSgnbWlzc2VkT3Bwb3J0dW5pdHknKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb01pc3NlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1pc3NlZCBPcHBvcnR1bml0eVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdub25TaG9wcGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgb2JqIG9mIG5vblNob3BwZXJMaXN0XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlICBtdC0zIG1lLThcIiAgICAgW25nQ2xhc3NdPVwib2JqIT09bm9uU2hvcGVyVHlwZSA/ICdiYWRnZS1saWdodC1kZWZhdWx0JyA6J2JhZGdlLWxpZ2h0LXByaW1hcnknXCIgKGNsaWNrKT1cInNlbGVjdG5vblNob3BlcihvYmopXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiICpuZ0lmPVwib2JqIT09bm9uU2hvcGVyVHlwZVwiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMi41VjkuNU0yLjUgNkg5LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAqbmdJZj1cIm9iaj09PW5vblNob3BlclR5cGVcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgcng9XCI4XCIgZmlsbD1cIiNEQUYxRkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4zOTc3IDQuOTI2NjFMNi42MjQzNCA5LjUzMzI4TDUuMzU3NjcgOC4xNzk5NEM1LjEyNDM0IDcuOTU5OTQgNC43NTc2NyA3Ljk0NjYxIDQuNDkxIDguMTMzMjhDNC4yMzEgOC4zMjY2MSA0LjE1NzY3IDguNjY2NjEgNC4zMTc2NyA4LjkzOTk0TDUuODE3NjcgMTEuMzc5OUM1Ljk2NDM0IDExLjYwNjYgNi4yMTc2NyAxMS43NDY2IDYuNTA0MzQgMTEuNzQ2NkM2Ljc3NzY3IDExLjc0NjYgNy4wMzc2NyAxMS42MDY2IDcuMTg0MzQgMTEuMzc5OUM3LjQyNDM0IDExLjA2NjYgMTIuMDA0MyA1LjYwNjYxIDEyLjAwNDMgNS42MDY2MUMxMi42MDQzIDQuOTkzMjggMTEuODc3NyA0LjQ1MzI4IDExLjM5NzcgNC45MTk5NFY0LjkyNjYxWlwiIGZpbGw9XCIjMzNCNUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPnt7b2JqfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXQtNSBwYi0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJleGFtcGxlSW5wdXROYW1lXCI+RGVzY3JpcHRpb24gKE9wdGlvbmFsKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgWyhuZ01vZGVsKV09XCJkZXNjcmlwdGlvblwiIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIiByb3dzPVwiNFwiIHBsYWNlaG9sZGVyPVwiXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJub25TaG9wcGVyU3VibWl0KClcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwidXNlckZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJuYW1lXCI+TmFtZTxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWQgdGV4dC1kYW5nZXJcIj4qPC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBOYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHJlcXVpcmVkIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ25hbWUnKT8udG91Y2hlZCl9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCduYW1lJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm5hbWUuZXJyb3JzPy5yZXF1aXJlZFwiPk5hbWUgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbC1sZy02IGNvbC14bC02IGNvbC14eGwtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db250YWN0IE51bWJlciA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTYgY29sLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IHBzLTMgcGUtOFwiIGlkPVwiaW5wdXRHcm91cFNlbGVjdDAxXCIgZm9ybUNvbnRyb2xOYW1lPVwiY291bnRyeUNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBjb3VudHJ5IG9mIGNvdW50cnlMaXN0XCIgW3ZhbHVlXT1cImNvdW50cnkucGhvbmVjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NvdW50cnkubmFtZX19ICh7e2NvdW50cnkucGhvbmVjb2RlfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9iaWxlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwibW9iaWxlXCIgbWlubGVuZ3RoPVwiOFwiIG1heGxlbmd0aD1cIjEzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ21vYmlsZScpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNJbnZhbGlkKCdtb2JpbGUnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm1vYmlsZS5lcnJvcnM/LnJlcXVpcmVkXCI+Q29udGFjdCBOdW1iZXIgaXMgcmVxdWlyZWQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5tb2JpbGUuZXJyb3JzPy5taW5sZW5ndGhcIj5Db250YWN0IE51bWJlciBtdXN0IGJlIGF0IGxlYXN0IDggZGlnaXRzLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubW9iaWxlLmVycm9ycz8ubWF4bGVuZ3RoXCI+Q29udGFjdCBOdW1iZXIgY2Fubm90IGV4Y2VlZCAxMyBkaWdpdHMuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkVtYWlsIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJlbWFpbFwiIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LmludmFsaWQgJiYgKHVzZXJGb3JtLmdldCgnZW1haWwnKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnZW1haWwnKVwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYuZW1haWwuZXJyb3JzPy5wYXR0ZXJuXCI+SW52YWxpZCBlbWFpbCBmb3JtYXQuPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsb2NhdGlvblwiPkxvY2F0aW9uPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImxvY2F0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIG10LTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJMb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCIgaWQ9XCJsb2NhdGlvblwiIGZvcm1Db250cm9sTmFtZT1cImxvY2F0aW9uXCIgI3BsYWNlc1JlZj1cIm5neC1wbGFjZXNcIiBuZ3gtZ3AtYXV0b2NvbXBsZXRlIChvbkFkZHJlc3NDaGFuZ2UpPVwiaGFuZGxlQWRkcmVzc0NoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy50b3VjaGVkKX1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYWdlXCI+QWdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3QgbXQtM1wiIGZvcm1Db250cm9sTmFtZT1cImFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0IEFnZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQmVsb3cgMTJcIj5CZWxvdyAxMjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMTMtMTlcIj4xM+KAkzE5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIyMOKAkzMwXCI+MjDigJMzMDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMzHigJM0NVwiPjMx4oCTNDU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjQ24oCTNTlcIj40NuKAkzU5PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJBYm92ZSA2MFwiPkFib3ZlIDYwPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwibGVmdDogMC4yNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZWNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFnZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcGUtNSB0ZXh0LWNlbnRlciBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbj1cIjFcIiBtYXg9XCI5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBwdC01IHBvc2l0aW9uLWFic29sdXRlIHRvcC01MCB0cmFuc2xhdGUtbWlkZGxlLXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicmlnaHQ6IDIuNXJlbTtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJpbmNyZW1lbnRBZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJnZW5kZXJcIj5HZW5kZXI8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IG10LTNcIiBmb3JtQ29udHJvbE5hbWU9XCJnZW5kZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBHZW5kZXI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1hbGVcIj5NYWxlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmZW1hbGVcIj5GZW1hbGU8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWVuZCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IG10LTNcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRDdXN0b21lclR5cGUgPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNSBteC0zIGJvcmRlci1ncmF5LWFjdGl2ZTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9iaiBvZiBtaXNzZWRPcHBvcnR1bml0eUxpc3RcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1pdGVtIG5hdi1pdGVtMSB3LTI1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkVGFicyhvYmoubmFtZSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZE1pc3NlZCA9PT0gb2JqLm5hbWUgPyAnYWN0aXZlJyA6ICdhY3RpdmUtbm9ybWFsJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBuYXYtbGluazEgY3Vyc29yLXBvaW50ZXIgdGV4dC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvYmoubmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG1iLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIElzc3VlIEJhZGdlcyAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBvYmogb2YgbWlzc2VkT3Bwb3J0dW5pdHlMaXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRNaXNzZWQgPT09IG9iai5uYW1lXCIgY2xhc3M9XCJtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9iai5pc3N1ZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFN1Ymlzc3VlKG9iaiwgaXRlbSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtcHJpbWFyeSc6IHNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtZGVmYXVsdCc6IXNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgbXQtMiBtZS0yIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIiAqbmdJZj1cIiFzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNiAyLjVWOS41TTIuNSA2SDkuNVwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTJcIiAqbmdJZj1cInNlbGVjdGVkSXNzdWVzLmluY2x1ZGVzKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMzk3NyA0LjkyNjYxTDYuNjI0MzQgOS41MzMyOEw1LjM1NzY3IDguMTc5OTRDNS4xMjQzNCA3Ljk1OTk0IDQuNzU3NjcgNy45NDY2MSA0LjQ5MSA4LjEzMzI4QzQuMjMxIDguMzI2NjEgNC4xNTc2NyA4LjY2NjYxIDQuMzE3NjcgOC45Mzk5NEw1LjgxNzY3IDExLjM3OTlDNS45NjQzNCAxMS42MDY2IDYuMjE3NjcgMTEuNzQ2NiA2LjUwNDM0IDExLjc0NjZDNi43Nzc2NyAxMS43NDY2IDcuMDM3NjcgMTEuNjA2NiA3LjE4NDM0IDExLjM3OTlDNy40MjQzNCAxMS4wNjY2IDEyLjAwNDMgNS42MDY2MSAxMi4wMDQzIDUuNjA2NjFDMTIuNjA0MyA0Ljk5MzI4IDExLjg3NzcgNC40NTMyOCAxMS4zOTc3IDQuOTE5OTRWNC45MjY2MVpcIiBmaWxsPVwiIzMzQjVGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj5EZXNjcmlwdGlvbiAoT3B0aW9uYWwpPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dzPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBjb21tZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiIChjbGljayk9XCJzdWJtaXRNaXNzZWRPcHBvcnR1bml0eSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZFRhYiA9PT0gJ2N1c3RvbWVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWNsYXNzXCI+VGFnZ2VkIFN1bW1hcnkgPHNwYW4gKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uc3RhdHVzPT09J3N1Ym1pdHRlZCdcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNC42NjY4IDcuMzg2NzRWOC4wMDAwN0MxNC42NjYgOS40Mzc2OSAxNC4yMDA1IDEwLjgzNjUgMTMuMzM5NyAxMS45ODhDMTIuNDc4OSAxMy4xMzk0IDExLjI2OSAxMy45ODE3IDkuODkwNCAxNC4zODkzQzguNTExNzggMTQuNzk3IDcuMDM4MzQgMTQuNzQ4IDUuNjg5ODEgMTQuMjQ5OEM0LjM0MTI4IDEzLjc1MTYgMy4xODk5MyAxMi44MzA4IDIuNDA3NDcgMTEuNjI0OEMxLjYyNTAxIDEwLjQxODggMS4yNTMzNiA4Ljk5MjExIDEuMzQ3OTUgNy41NTc2MUMxLjQ0MjU0IDYuMTIzMTIgMS45OTgzIDQuNzU3NjIgMi45MzIzNSAzLjY2NDc5QzMuODY2NCAyLjU3MTk1IDUuMTI4NjkgMS44MTAzMyA2LjUzMDk2IDEuNDkzNUM3LjkzMzIzIDEuMTc2NjggOS40MDAzNCAxLjMyMTYzIDEwLjcxMzUgMS45MDY3NE0xNC42NjY4IDIuNjY2NzRMOC4wMDAxNyA5LjM0MDA3TDYuMDAwMTcgNy4zNDAwN1wiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHRleHQtZW5kXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uc3RhdHVzIT09J3N1Ym1pdHRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtd2FybmluZyBtcy0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDkwMV83Nzk1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTYuMTMxNTIgMC4wMDE0MjA0OUM1LjI1ODU1IC0wLjAxNzU3NzggNC4zOTE5NSAwLjE1NDE5MiAzLjU5MjIyIDAuNTA0NzM4QzIuNzkyNSAwLjg1NTI4MyAyLjA3ODkyIDEuMzc2MTYgMS41MDEzMSAyLjAzMDk5QzAuOTIzNzAzIDIuNjg1ODMgMC40OTU5ODEgMy40NTg4NSAwLjI0ODAwOSA0LjI5NjA4QzMuNzAyOTRlLTA1IDUuMTMzMyAtMC4wNjIyMDk1IDYuMDE0NTcgMC4wNjU2MTU0IDYuODc4MzRDMC4xOTM0NCA3Ljc0MjEyIDAuNTA4MjU2IDguNTY3NTggMC45ODgwODMgOS4yOTcxMUMxLjQ2NzkxIDEwLjAyNjYgMi4xMDExOSAxMC42NDI2IDIuODQzNyAxMS4xMDIxQzMuNTg2MjEgMTEuNTYxNiA0LjQyMDA2IDExLjg1MzUgNS4yODcwMyAxMS45NTc0QzYuMTU0MDEgMTIuMDYxMyA3LjAzMzIyIDExLjk3NDcgNy44NjMyNyAxMS43MDM3QzguMDA1MSAxMS42NTczIDguMTIyNyAxMS41NTY1IDguMTkwMjIgMTEuNDIzNUM4LjI1NzczIDExLjI5MDQgOC4yNjk2MiAxMS4xMzYgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMDIgMTAuNTk5NyA3LjY1NTYgMTAuNTg3OCA3LjUxMzc3IDEwLjYzNDJDNi42MTE3NSAxMC45Mjg3IDUuNjQzMzggMTAuOTUzNiA0LjcyNzQyIDEwLjcwNThDMy44MTE0NiAxMC40NTggMi45ODc3MyA5Ljk0ODI1IDIuMzU3MjUgOS4yMzkxQzEuNzI2NzcgOC41Mjk5NSAxLjMxNjk2IDcuNjUyMjEgMS4xNzgwNyA2LjcxMzU0QzEuMDM5MTcgNS43NzQ4NyAxLjE3NzI0IDQuODE2MDcgMS41NzUzNCAzLjk1NDczQzEuOTczNDMgMy4wOTMzOCAyLjYxNDI1IDIuMzY2OTQgMy40MTkyIDEuODY0NDlDNC4yMjQxNCAxLjM2MjA0IDUuMTU4MjMgMS4xMDU0MyA2LjEwNjg5IDEuMTI2MTNDNy4wNTU1NiAxLjE0NjgzIDcuOTc3NTYgMS40NDM5MyA4Ljc1OTgzIDEuOTgxMDFDOS41NDIxIDIuNTE4MDkgMTAuMTUwNiAzLjI3MTc4IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NzIgMTAuNjc2NSA0LjM5NzYzIDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ3IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuMTA4NSAyLjY0MjM5IDEwLjM1OTYgMS43MTQ3IDkuMzk2NzcgMS4wNTM2NUM4LjQzMzk2IDAuMzkyNTg3IDcuMjk5MTUgMC4wMjY4OTQ2IDYuMTMxNTIgMC4wMDE0MjA0OVpNNi41NjI3NyAyLjgxMjQyQzYuNTYyNzcgMi42NjMyNCA2LjUwMzUxIDIuNTIwMTYgNi4zOTgwMiAyLjQxNDY3QzYuMjkyNTMgMi4zMDkxOCA2LjE0OTQ2IDIuMjQ5OTIgNi4wMDAyNyAyLjI0OTkyQzUuODUxMDkgMi4yNDk5MiA1LjcwODAxIDIuMzA5MTggNS42MDI1MiAyLjQxNDY3QzUuNDk3MDQgMi41MjAxNiA1LjQzNzc3IDIuNjYzMjQgNS40Mzc3NyAyLjgxMjQyVjUuNzY3NDJMMy45MTIyNyA3LjI5MjE3QzMuODU3MDEgNy4zNDM2NyAzLjgxMjY4IDcuNDA1NzcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjgwMjQ3IDcuOTg0NDEgMy44NDQ1OCA4LjA0ODA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODYgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTUgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU5MzY4IDguMTg2NzYgNC42NTU3OCA4LjE0MjQ0IDQuNzA3MjcgOC4wODcxN0w2LjM5Nzc3IDYuMzk3NDJMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTExLjI1MDMgMTEuMjQ5OUMxMS4yNTAzIDExLjQ0ODggMTEuMTcxMyAxMS42Mzk2IDExLjAzMDYgMTEuNzgwM0MxMC44ODk5IDExLjkyMDkgMTAuNjk5MiAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC4zMDE0IDExLjk5OTkgMTAuMTEwNiAxMS45MjA5IDkuOTY5OTQgMTEuNzgwM0M5LjgyOTI5IDExLjYzOTYgOS43NTAyNyAxMS40NDg4IDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjA1MSA5LjgyOTI5IDEwLjg2MDIgOS45Njk5NCAxMC43MTk2QzEwLjExMDYgMTAuNTc4OSAxMC4zMDE0IDEwLjQ5OTkgMTAuNTAwMyAxMC40OTk5QzEwLjY5OTIgMTAuNDk5OSAxMC44ODk5IDEwLjU3ODkgMTEuMDMwNiAxMC43MTk2QzExLjE3MTMgMTAuODYwMiAxMS4yNTAzIDExLjA1MSAxMS4yNTAzIDExLjI0OTlaTTExLjA2MjggNi41NjI0MkMxMS4wNjI4IDYuNDEzMjQgMTEuMDAzNSA2LjI3MDE2IDEwLjg5OCA2LjE2NDY3QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjdDOS45OTcwNCA2LjI3MDE2IDkuOTM3NzcgNi40MTMyNCA5LjkzNzc3IDYuNTYyNDJWOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0OTUgOS43NDk5MiAxMC43OTI1IDkuNjkwNjYgMTAuODk4IDkuNTg1MTdDMTEuMDAzNSA5LjQ3OTY4IDExLjA2MjggOS4zMzY2MSAxMS4wNjI4IDkuMTg3NDJWNi41NjI0MlpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk0xMS4yNDA5IDMuMDc3NzVDMTEuMTc2MiAyLjk2MTcxIDExLjEwNzggMi44NDc5OSAxMS4wMzU3IDIuNzM2NzRDMTAuNzgyNiAyLjM0NjIzIDEwLjQ4NDggMS45ODYzMSAxMC4xNDgzIDEuNjY0NEM5LjkxNTYxIDEuNDQxODQgOS42NjQ0NiAxLjIzNzQ0IDkuMzk2NzcgMS4wNTM2NUM5LjM5NjcyIDEuMDUzNjEgOS4zOTY4MyAxLjA1MzY4IDkuMzk2NzcgMS4wNTM2NUM5LjIzNzM3IDAuOTQ0MjA3IDkuMDczMDggMC44NDI3NDggOC45MDQ4NyAwLjc0OTcwNUM4LjcyMDcgMC42NDc4MjggOC41MzE2MyAwLjU1NTkgOC4zMzg1IDAuNDc0MTkyQzcuNjQyNjkgMC4xNzk4MTMgNi44OTQxIDAuMDE4MDU3NyA2LjEzMTUyIDAuMDAxNDIwNDlDNi4xMzE0OSAwLjAwMTQxOTgzIDYuMTMxNTUgMC4wMDE0MjExNSA2LjEzMTUyIDAuMDAxNDIwNDlDNi4wODc3OCAwLjAwMDQ2OTI5IDYuMDQzOTcgLTUuMDEyNjVlLTA2IDYuMDAwMjcgMy45OTQyNmUtMDhDNS4xOTcyNiA5LjI4ODcxZS0wNSA0LjQwMjIyIDAuMTYxMzg2IDMuNjYyMzcgMC40NzQ1MkMzLjYzODkzIDAuNDg0NDQxIDMuNjE1NTUgMC40OTQ1MTMgMy41OTIyMiAwLjUwNDczOEMzLjQyMjQzIDAuNTc5MTY2IDMuMjU2NTEgMC42NjEyNzMgMy4wOTQ5NiAwLjc1MDcxQzMuMDAzMDcgMC44MDE1NzcgMi45MTI2IDAuODU0ODE0IDIuODIzNjMgMC45MTAzNTlDMi4zMzIyMyAxLjIxNzEzIDEuODg2NTMgMS41OTQyNyAxLjUwMTMxIDIuMDMwOTlDMS4xMTYwOCAyLjQ2NzczIDAuNzk3NTE2IDIuOTU3MDQgMC41NTQ0ODYgMy40ODI5MUMwLjQzMzEyNCAzLjc0NTUxIDAuMzMwNTk3IDQuMDE3MjMgMC4yNDgwMDkgNC4yOTYwOEM1LjUxMzQzZS0wNSA1LjEzMzI0IC0wLjA2MjIwMDQgNi4wMTQ0NCAwLjA2NTU4NzQgNi44NzgxNUMwLjA2NTU3OCA2Ljg3ODA5IDAuMDY1NTk2NyA2Ljg3ODIyIDAuMDY1NTg3NCA2Ljg3ODE1QzAuMTkzNDEyIDcuNzQxOTMgMC41MDgyNTYgOC41Njc1OCAwLjk4ODA4MyA5LjI5NzExQzEuMTQ3ODMgOS41Mzk5OCAxLjMyNDU4IDkuNzcwMjcgMS41MTY3MSA5Ljk4NjM5QzEuOTAxNjggMTAuNDE5NCAyLjM0ODM4IDEwLjc5NTYgMi44NDM3IDExLjEwMjFDMy4zMzg4MiAxMS40MDg1IDMuODc0NTUgMTEuNjQwNCA0LjQzMzY0IDExLjc5MTdDNC43MTI5OSAxMS44NjczIDQuOTk4MTcgMTEuOTIyOCA1LjI4NzAzIDExLjk1NzRDNS4zMTk5OSAxMS45NjEzIDUuMzUyOTYgMTEuOTY1IDUuMzg1OTQgMTEuOTY4NEM1Ljg2Mjc1IDEyLjAxNzUgNi4zNDI1NCAxMi4wMDkyIDYuODE1MTQgMTEuOTQ0NUM2Ljk5MjY1IDExLjkyMDIgNy4xNjkxNSAxMS44ODc5IDcuMzQ0MDkgMTEuODQ3N0M3LjUxODggMTEuODA3NiA3LjY5MTk2IDExLjc1OTYgNy44NjMwMiAxMS43MDM4QzcuODYyOTQgMTEuNzAzOCA3Ljg2MzExIDExLjcwMzcgNy44NjMwMiAxMS43MDM4QzcuODkxMjcgMTEuNjk0NSA3LjkxODggMTEuNjgzMSA3Ljk0NDkyIDExLjY2OTdDOC4wNDk5NSAxMS42MTU5IDguMTM2MTUgMTEuNTMgOC4xOTAyMiAxMS40MjM1QzguMjE4MTIgMTEuMzY4NSA4LjIzNjUzIDExLjMwOTggOC4yNDUyNCAxMS4yNDk5QzguMjU3NjEgMTEuMTY0OSA4LjI1MDQ2IDExLjA3NzQgOC4yMjMyNyAxMC45OTQyQzguMTc2OTMgMTAuODUyMyA4LjA3NjE0IDEwLjczNDcgNy45NDMwOCAxMC42NjcyQzcuODEwMTEgMTAuNTk5OCA3LjY1NTc5IDEwLjU4NzggNy41MTQwNCAxMC42MzQxQzcuNTEzOTUgMTAuNjM0MSA3LjUxNDEzIDEwLjYzNDEgNy41MTQwNCAxMC42MzQxQzcuNDM1NjMgMTAuNjU5NyA3LjM1NjQ1IDEwLjY4MzMgNy4yNzcxMSAxMC43MDQ5QzcuMTYyOTIgMTAuNzM1OSA3LjA0Nzg2IDEwLjc2MjYgNi45MzIxNSAxMC43ODUxQzYuODgwMTYgMTAuNzk1MyA2LjgyODA0IDEwLjgwNDUgNi43NzU4MSAxMC44MTI5QzYuNDkyNjcgMTAuODU4NSA2LjIwNjMzIDEwLjg3OSA1LjkyMDE0IDEwLjg3NDNDNS44NDgzMiAxMC44NzMxIDUuNzc2NSAxMC44NzA0IDUuNzA0NzYgMTAuODY2QzUuNjA5OTggMTAuODYwMiA1LjUxNTMyIDEwLjg1MTcgNS40MjA5IDEwLjg0MDRDNS4zNzI1NiAxMC44MzQ2IDUuMzI0MjggMTAuODI4MSA1LjI3NjA4IDEwLjgyMDhDNS4wOTE3NiAxMC43OTMxIDQuOTA4NTYgMTAuNzU0OCA0LjcyNzQyIDEwLjcwNThDNC41OTg1NiAxMC42NzA5IDQuNDcxNTIgMTAuNjMwOSA0LjM0NjU5IDEwLjU4NThDNC4wMjc2MyAxMC40NzA4IDMuNzIyNCAxMC4zMjMxIDMuNDM1NTkgMTAuMTQ1NkMzLjQwMTg2IDEwLjEyNDggMy4zNjgzOSAxMC4xMDM1IDMuMzM1MTggMTAuMDgxOEMzLjA1NDA5IDkuODk4MjYgMi43OTE3OCA5LjY4NTU2IDIuNTUyODcgOS40NDY1OEMyLjQ4NTc4IDkuMzc5NDcgMi40MjA1NCA5LjMxMDI5IDIuMzU3MjUgOS4yMzkxQzIuMjAwMTEgOS4wNjIzNCAyLjA1NjY3IDguODc1MTIgMS45Mjc3MiA4LjY3OTA4QzEuOTI0NDUgOC42NzQxMSAxLjkyMTE4IDguNjY5MTMgMS45MTc5MyA4LjY2NDE0QzEuNzExMyA4LjM0NzQ5IDEuNTQyMzQgOC4wMDgwNyAxLjQxNDMyIDcuNjUyODZDMS4zMDUxMSA3LjM0OTg2IDEuMjI1NyA3LjAzNTM2IDEuMTc4MDkgNi43MTM3MUMxLjE3ODA4IDYuNzEzNjYgMS4xNzgxIDYuNzEzNzcgMS4xNzgwOSA2LjcxMzcxQzEuMTU3NSA2LjU3NDU3IDEuMTQyOTcgNi40MzQ4MSAxLjEzNDUgNi4yOTUxNkMxLjEzMDEgNi4yMjI1MyAxLjEyNzMyIDYuMTQ5ODkgMS4xMjYxNyA2LjA3NzI5QzEuMTE4MzIgNS41ODI1NyAxLjE4NTg1IDUuMDg5NjEgMS4zMjYzIDQuNjE1NDVDMS4zOTI5NyA0LjM5MDM2IDEuNDc2MDcgNC4xNjk1MSAxLjU3NTM0IDMuOTU0NzNDMS43NzQ0IDMuNTI0MDMgMi4wMzQxNCAzLjEyNzA2IDIuMzQ0NzUgMi43NzQ5NkMyLjM3NjIgMi43MzkzMiAyLjQwODE2IDIuNzA0MTMgMi40NDA2NCAyLjY2OTQyQzIuNzI4OTMgMi4zNjEyNyAzLjA1NzQ5IDIuMDkwMjcgMy40MTkyIDEuODY0NDlDMy42MTk5NSAxLjczOTE4IDMuODI4NzQgMS42MjkxNiA0LjA0Mzc5IDEuNTM0OTJDNC4yMDUxIDEuNDY0MjIgNC4zNjk5MyAxLjQwMjQxIDQuNTM3NTMgMS4zNDk2OEM1LjAwODc3IDEuMjAxNDMgNS41MDE5MSAxLjEyNSA2LjAwMDI3IDEuMTI0OTdDNi4wMzU3OSAxLjEyNDk3IDYuMDcxMzMgMS4xMjUzNSA2LjEwNjg5IDEuMTI2MTNDNi41Njk2NSAxLjEzNjI0IDcuMDI2MjEgMS4yMTIxMiA3LjQ2MzE1IDEuMzQ5NTRDNy45MjE5IDEuNDkzODMgOC4zNTkxOSAxLjcwNTk1IDguNzU5ODMgMS45ODEwMUM4Ljc1OTc4IDEuOTgwOTcgOC43NTk4OCAxLjk4MTA0IDguNzU5ODMgMS45ODEwMUM4LjkxNDQ3IDIuMDg3MTkgOS4wNjI0NyAyLjIwMTkzIDkuMjAyOTUgMi4zMjQzM0M5LjMyNzg5IDIuNDMzMTggOS40NDcgMi41NDgxNiA5LjU1OTg4IDIuNjY4NzdDOS42NzQ2NCAyLjc5MTM5IDkuNzgyOTUgMi45MTk4MiA5Ljg4NDQgMy4wNTM1NUMxMC4wMTgyIDMuMjI5ODYgMTAuMTQgMy40MTUzNyAxMC4yNDg5IDMuNjA4ODdDMTAuMzA4NiAzLjcxNDkzIDEwLjM2NDQgMy44MjMzOSAxMC40MTYyIDMuOTM0MDVDMTAuNDQ1NSAzLjk5Njc3IDEwLjQ3MzYgNC4wNjAxOSAxMC41MDAzIDQuMTI0MjhDMTAuNTAzOCA0LjEzMjczIDEwLjUwNzMgNC4xNDEyIDEwLjUxMDggNC4xNDk2N0MxMC41MTA3IDQuMTQ5NTkgMTAuNTEwOCA0LjE0OTc1IDEwLjUxMDggNC4xNDk2N0MxMC41Njc0IDQuMjg3NjEgMTAuNjc2NSA0LjM5NzY2IDEwLjgxNDEgNC40NTUyMkMxMC44ODIyIDQuNDgzNzQgMTAuOTU1MyA0LjQ5ODU2IDExLjAyOTIgNC40OTg4M0MxMS4xMDMxIDQuNDk5MSAxMS4xNzYzIDQuNDg0ODIgMTEuMjQ0NiA0LjQ1NjhDMTEuMzEzIDQuNDI4NzggMTEuMzc1MiA0LjM4NzU3IDExLjQyNzYgNC4zMzU1MkMxMS40OCA0LjI4MzQ4IDExLjUyMTcgNC4yMjE2MSAxMS41NTAyIDQuMTUzNDdDMTEuNTc4NyA0LjA4NTMyIDExLjU5MzUgNC4wMTIyMiAxMS41OTM4IDMuOTM4MzVDMTEuNTk0MSAzLjg2NDQ4IDExLjU3OTggMy43OTEyNyAxMS41NTE4IDMuNzIyOTJDMTEuNTUxNyAzLjcyMjgzIDExLjU1MTggMy43MjMwMSAxMS41NTE4IDMuNzIyOTJDMTEuNDgzNCAzLjU1NjMxIDExLjQwNzcgMy4zOTMwNiAxMS4zMjUxIDMuMjM0MTNDMTEuMjk3OCAzLjE4MTU2IDExLjI2OTcgMy4xMjk0MiAxMS4yNDA5IDMuMDc3NzVaTTYuNTYyNzcgMi44MTI0MkM2LjU2Mjc3IDIuNjYzMjQgNi41MDM1MSAyLjUyMDE2IDYuMzk4MDIgMi40MTQ2N0M2LjMxMjEgMi4zMjg3NSA2LjIwMTI0IDIuMjczNSA2LjA4MjQ2IDIuMjU1OTVDNi4wNTU0OCAyLjI1MTk4IDYuMDI3ODcgMi4yNDk5MiA2LjAwMDI3IDIuMjQ5OTJDNS44NTEwOSAyLjI0OTkyIDUuNzA4MDEgMi4zMDkxOCA1LjYwMjUyIDIuNDE0NjdDNS40OTcwNCAyLjUyMDE2IDUuNDM3NzcgMi42NjMyNCA1LjQzNzc3IDIuODEyNDJWNS43Njc0MkwzLjkxMjQ1IDcuMjkyQzMuOTAyNzUgNy4zMDEwMyAzLjg5MzIyIDcuMzEwNTcgMy44ODQyMSA3LjMyMDIzQzMuODQxODcgNy4zNjU2NyAzLjgwNzI5IDcuNDE3ODcgMy43ODE5NCA3LjQ3NDc3QzMuNzUxMTkgNy41NDM3NyAzLjczNDY2IDcuNjE4MjUgMy43MzMzMyA3LjY5Mzc4QzMuNzMyIDcuNzY5MzEgMy43NDU4OSA3Ljg0NDMzIDMuNzc0MTggNy45MTQzN0MzLjc4MDU0IDcuOTMwMTEgMy43ODc1OSA3Ljk0NTUyIDMuNzk1MzIgNy45NjA1N0MzLjgyMTk2IDguMDEyNDkgMy44NTY1OCA4LjA2MDA0IDMuODk3OTkgOC4xMDE0NUMzLjk1MTQxIDguMTU0ODcgNC4wMTUwMyA4LjE5Njk3IDQuMDg1MDcgOC4yMjUyNkM0LjE1NTEyIDguMjUzNTYgNC4yMzAxNCA4LjI2NzQ1IDQuMzA1NjYgOC4yNjYxMkM0LjM4MTE5IDguMjY0NzggNC40NTU2OCA4LjI0ODI1IDQuNTI0NjggOC4yMTc1MUM0LjU4MTU3IDguMTkyMTYgNC42MzM3NyA4LjE1NzU3IDQuNjc5MjEgOC4xMTUyNEM0LjY4ODgxIDguMTA2MjkgNC42OTgxMSA4LjA5NyA0LjcwNzA4IDguMDg3MzdDNC43MDcwMiA4LjA4NzQ0IDQuNzA3MTUgOC4wODczMSA0LjcwNzA4IDguMDg3MzdMNi41NjI3NyA2LjIzMjQyVjIuODEyNDJaTTkuOTM3NzcgOS4xODc0MkM5LjkzNzc3IDkuMzM2NjEgOS45OTcwNCA5LjQ3OTY4IDEwLjEwMjUgOS41ODUxN0MxMC4yMDggOS42OTA2NiAxMC4zNTExIDkuNzQ5OTIgMTAuNTAwMyA5Ljc0OTkyQzEwLjY0MzcgOS43NDk5MiAxMC43ODE1IDkuNjk1MTQgMTAuODg1NyA5LjU5NzE2QzEwLjg4OTggOS41OTMyMyAxMC44OTQgOS41ODkyNCAxMC44OTggOS41ODUxN0MxMS4wMDM1IDkuNDc5NjggMTEuMDYyOCA5LjMzNjYxIDExLjA2MjggOS4xODc0MlY3LjU0MjM0QzEwLjg3NzcgNy41MTQyNiAxMC42ODk3IDcuNDk5OTIgMTAuNTAwMyA3LjQ5OTkyQzEwLjMxMDggNy40OTk5MiAxMC4xMjI4IDcuNTE0MjYgOS45Mzc3NyA3LjU0MjM0VjkuMTg3NDJaTTkuOTM3NzcgNy4zMjY4NkMxMC4xMjE1IDcuMzg2MTIgMTAuMzA5NiA3LjQzMDMgMTAuNTAwMyA3LjQ1OTA0QzEwLjY3MTQgNy40ODQ4MyAxMC44NDQ1IDcuNDk4MTggMTEuMDE4MyA3LjQ5ODgxQzExLjAzMzEgNy40OTg4NyAxMS4wNDc5IDcuNDk4ODMgMTEuMDYyOCA3LjQ5ODdWNi41NjI0MkMxMS4wNjI4IDYuNDkwMDggMTEuMDQ4OCA2LjQxOTE3IDExLjAyMjQgNi4zNTMyOEMxMC45OTQ0IDYuMjgzMzEgMTAuOTUyNCA2LjIxOTAxIDEwLjg5OCA2LjE2NDY4QzEwLjc5MjUgNi4wNTkxOSAxMC42NDk1IDUuOTk5OTIgMTAuNTAwMyA1Ljk5OTkyQzEwLjM1MTEgNS45OTk5MiAxMC4yMDggNi4wNTkxOSAxMC4xMDI1IDYuMTY0NjhDMTAuMTAwMyA2LjE2NjkyIDEwLjA5ODEgNi4xNjkxNyAxMC4wOTU5IDYuMTcxNDVDOS45OTc3IDYuMjcyOTkgOS45NDEzNSA2LjQwNzczIDkuOTM3OTQgNi41NDg4MkM5LjkzNzgzIDYuNTUzMzUgOS45Mzc3NyA2LjU1Nzg4IDkuOTM3NzcgNi41NjI0MlY3LjMyNjg2Wk0xMS4yNDg4IDExLjI5NjhDMTEuMjQ5OCAxMS4yODEzIDExLjI1MDMgMTEuMjY1NiAxMS4yNTAzIDExLjI0OTlDMTEuMjUwMyAxMS4yNDg3IDExLjI1MDMgMTEuMjQ3NSAxMS4yNTAzIDExLjI0NjNDMTEuMjQ5MyAxMS4wNDg3IDExLjE3MDQgMTAuODU5NCAxMS4wMzA2IDEwLjcxOTZDMTAuODg5OSAxMC41Nzg5IDEwLjY5OTIgMTAuNDk5OSAxMC41MDAzIDEwLjQ5OTlDMTAuMzAxNCAxMC40OTk5IDEwLjExMDYgMTAuNTc4OSA5Ljk2OTk0IDEwLjcxOTZDOS44MjkyOSAxMC44NjAyIDkuNzUwMjcgMTEuMDUxIDkuNzUwMjcgMTEuMjQ5OUM5Ljc1MDI3IDExLjQ0ODggOS44MjkyOSAxMS42Mzk2IDkuOTY5OTQgMTEuNzgwM0MxMC4xMTA2IDExLjkyMDkgMTAuMzAxNCAxMS45OTk5IDEwLjUwMDMgMTEuOTk5OUMxMC42OTkyIDExLjk5OTkgMTAuODg5OSAxMS45MjA5IDExLjAzMDYgMTEuNzgwM0MxMS4xNjAyIDExLjY1MDcgMTEuMjM3NCAxMS40Nzg2IDExLjI0ODggMTEuMjk2OFpcIiBmaWxsPVwiI0I1NDcwOFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDkwMV83Nzk1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm1zLTJcIj5QZW5kaW5nIFRhZ2dlZCBJbmZvPC9zcGFuPjwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdwdXJjaGFzZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5OYW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TG9jYXRpb248L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb24/dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8ubG9jYXRpb246XCItXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TW9iaWxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/Lm1vYmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5BZ2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uYWdlP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmFnZTpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5FbWFpbDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbD90YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5lbWFpbDpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBtdC0yIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZSBcIj5HZW5kZXI8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uZ2VuZGVyP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmdlbmRlcjpcIi1cIn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGFnZ2dlZERhdGE/LnJldm9wc1R5cGU9PT0nbWlzc2VkT3Bwb3J0dW5pdHknXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFnZ2dlZERhdGEuaXNzdWVMaXN0XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlXCI+e3tpdGVtLm5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgbXMtMlwiICpuZ0Zvcj1cImxldCBkYXRhIG9mIGl0ZW0uaXNzdWVcIj57e2RhdGF9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlci1ncmF5LXRhZ2dlZCBteC0zIG15LTJcIiAqbmdJZj1cInRhZ2dnZWREYXRhPy5yZXZvcHNUeXBlPT09J25vblNob3BwZXInXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IG1zLTJcIj57e25vblNob3BlclR5cGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXktMlwiPjxzcGFuIGNsYXNzPVwiZGVzYy1pZFwiPk9yaWdpbmFsIElEPC9zcGFuPiA6IDxzcGFuIGNsYXNzPVwic3BlbnQtdmFsdWUxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHggIWltcG9ydGFudDtcIj57e0ltYWdlZGF0YT8udGVtcElkfX08L3NwYW4+PC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8uZGVzY3JpcHRpb24mJnRhZ2dnZWREYXRhPy5kZXNjcmlwdGlvbiE9PScnXCIgY2xhc3M9XCJteS0zIGRlc2MtaWRcIj57e3RhZ2dnZWREYXRhLmRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlRpbWUgU3BlbnQ8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy0zMyAgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnRpbWVTcGVudD8udG90YWxUaW1lU3BlbnR9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VG90YWwgVGltZSBTcGVudDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py5lbnRyeVRpbWV9fSAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdlbnRyeScpXCI+RW50cnkgVGltZSA8c3BhbiBjbGFzcz1cIm1zLTFcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMy4zMzMzMyAxNEgxMi42NjY3QzEzLjQwMyAxNCAxNCAxMy40MDMgMTQgMTIuNjY2N1YzLjMzMzMzQzE0IDIuNTk2OTUgMTMuNDAzIDIgMTIuNjY2NyAySDMuMzMzMzNDMi41OTY5NSAyIDIgMi41OTY5NSAyIDMuMzMzMzNWMTIuNjY2N0MyIDEzLjQwMyAyLjU5Njk1IDE0IDMuMzMzMzMgMTRaTTMuMzMzMzMgMTRMMTAuNjY2NyA2LjY2NjY3TDE0IDEwTTYuNjY2NjcgNS42NjY2N0M2LjY2NjY3IDYuMjE4OTUgNi4yMTg5NSA2LjY2NjY3IDUuNjY2NjcgNi42NjY2N0M1LjExNDM4IDYuNjY2NjcgNC42NjY2NyA2LjIxODk1IDQuNjY2NjcgNS42NjY2N0M0LjY2NjY3IDUuMTE0MzggNS4xMTQzOCA0LjY2NjY3IDUuNjY2NjcgNC42NjY2N0M2LjIxODk1IDQuNjY2NjcgNi42NjY2NyA1LjExNDM4IDYuNjY2NjcgNS42NjY2N1pcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS4yXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctMzMgIHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy50aW1lU3BlbnQ/LmV4aXRUaW1lfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUxIG15LTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdleGl0JylcIj5FeGl0IFRpbWUgPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwiSW1hZ2VkYXRhPy56b25lVmlzaXRlZCYmSW1hZ2VkYXRhPy56b25lVmlzaXRlZC5sZW5ndGg+MFwiIGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIkltYWdlZGF0YT8uem9uZVZpc2l0ZWQmJkltYWdlZGF0YT8uem9uZVZpc2l0ZWQubGVuZ3RoPjBcIiAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5ab25lcyBWaXNpdGVkPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJoLTIwMHB4IHNjcm9sbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIG10LTJcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIEltYWdlZGF0YT8uem9uZVZpc2l0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBcIj57e29ian19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJJbWFnZWRhdGE/LnpvbmVWaXNpdGVkLmxlbmd0aCA9PT0wXCIgY2xhc3M9XCJjb2wtbWQtMTIgbXQtMiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGFcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGExLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIFpvbmVzIFZpc2l0ZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIFpvbmVzPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VwYXJhdG9yIHNlcGFyYXRvci1kb3VibGUgbS0zXCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5TdGFmZiBFbmdhZ2VtZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJkLWZsZXggZmxleC13cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctNDUgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnN0YWZmRW5nYWdlbWVudC50aW1lVGFrZW5Ub0Fzc2lzdH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlIG15LTFcIj5UaW1lIHRha2VuIHRvIGFzc2lzdCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy00NSBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8uc3RhZmZFbmdhZ2VtZW50LnRpbWVTcGVudFdpdGhTdGFmZn19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUgbXktMVwiPlRpbWUgc3BlbnQgd2l0aCBzdGFmZjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuPC9zZWN0aW9uPlxyXG48L2Rpdj4iXX0=
|
|
838
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZG9jLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvaW1hZ2UtZG9jL2ltYWdlLWRvYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltYWdlLWRvYy9pbWFnZS1kb2MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFlLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTnRFLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQTtBQWV0QixNQUFNLE9BQU8saUJBQWlCO0lBMENsQjtJQUNEO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFBOEI7SUE5Q2hCLFNBQVMsQ0FBNkI7SUFDOUQsV0FBVyxHQUFR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SSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLHdDQUF3QyxDQUFDLENBQUE7b0JBQ3RFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7d0JBQ2QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO29CQUVyQixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7aUJBQ1Q7WUFDSCxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBSU4sQ0FBQztJQUVELFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUMvRSxDQUFDO3dHQXAxQlUsaUJBQWlCOzRGQUFqQixpQkFBaUIsNkpDeEI5QiwrbnhHQTY3QkE7OzRGRHI2QmEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7aVFBS0QsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFmZmljU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYWZmaWMuc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEltYWdlRG9jVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2ltYWdlLWRvYy12aWV3L2ltYWdlLWRvYy12aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKVxyXG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9lbic7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgRHVwbGljYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZHVwbGljYXRlL2R1cGxpY2F0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgTmd4R3BBdXRvY29tcGxldGVEaXJlY3RpdmUgfSBmcm9tIFwiQGFuZ3VsYXItbWFnaWMvbmd4LWdwLWF1dG9jb21wbGV0ZS9saWIvbmd4LWdwLWF1dG9jb21wbGV0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHsgSW1nUnZwc0NvbXBvbmVudCB9IGZyb20gJy4uL2ltZy1ydnBzL2ltZy1ydnBzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRyYWZmaWNSdnBzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYWZmaWMtcnZwcy5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwibGliLWltYWdlLWRvY1wiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW1hZ2UtZG9jLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9pbWFnZS1kb2MuY29tcG9uZW50LnNjc3NcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRG9jQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoXCJuZ3hQbGFjZXNcIikgcGxhY2VzUmVmOiBOZ3hHcEF1dG9jb21wbGV0ZURpcmVjdGl2ZTtcclxuICBzZWxlY3RJbmRleDogYW55ID0gMDtcclxuICBzZWxlY3RlZFRpbWU6IGFueTtcclxuICBvYmpEYXRhOiBhbnk7XHJcbiAgb2JqZWN0c0FycmF5OiBhbnkgPSBbXTtcclxuICBpbWFnZXNBcnJheURhdGE6IGFueTtcclxuICBwcm9jZXNzVHlwZSA9IFwiZm9vdGZhbGxcIjtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgZm9sZGVyVmlldzogYm9vbGVhbjtcclxuICBkYXlqcyA9IGRheWpzXHJcbiAgZGF0ZUFycmF5OiBhbnk7XHJcbiAgZm9ybTogYW55O1xyXG4gIG5vRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHN0b3JlQXJyYXlWYWx1ZTogYW55O1xyXG4gIHN0b3JlSWRhcnJheTogYW55O1xyXG4gIHZhbHVlVHlwZTogYW55ID0gJ2FjdHVhbCc7XHJcbiAgaXNBdmVyYWdlOiBhbnkgPSBmYWxzZTtcclxuICBsZW5ndGhWYWx1ZTogYm9vbGVhbjtcclxuICBoaWRlRG9jOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaXNBY2NvcmRpb25FeHBhbmRlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgZm9sZGVyRGF0ZTogYW55O1xyXG4gIGJhY2tuYXY6IGJvb2xlYW47XHJcbiAgdXNlckZvcm06IEZvcm1Hcm91cDtcclxuICBzdWJtaXR0ZWQgPSBmYWxzZTtcclxuICBtaXNzZWRPcHBvcnR1bml0eUxpc3Q6IGFueSA9IFtdXHJcbiAgcGhvbmVSZWdleDogUmVnRXhwID0gL14oXFxkezN9KT9cXGR7MTV9JC87XHJcbiAgZW1haWxSZWdleDogUmVnRXhwID0gL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC87XHJcbiAgbm9uU2hvcHBlckxpc3QgPSBbJ0VtcGxveWVlL1N0YWZmJywgJ0RlbGl2ZXJ5IFBlcnNvbicsICdEdXBsaWNhdGUnLCAnQWdlbnRzJywgJ090aGVycyddO1xyXG4gIC8vIG1pc3NlZE9wcG9ydHVuaXR5TGlzdCA9WydQcm9kdWN0IE5lZWQgTWlzbWF0Y2gnLCdQcm9kdWN0IFVuYXZhaWxhYmlsaXR5JywnUHJvZHVjdCBEYW1hZ2VkJywnUHJvZHVjdCBFbnF1aXJ5JywnUXVhbGl0eSddO1xyXG4gIHNlbGVjdGVkTWlzc2VkOiBhbnkgPSAnUHJvZHVjdCBJc3N1ZSc7XHJcbiAgaXNzdWVzOiBhbnkgPSBbXVxyXG4gIG5vblNob3BlclR5cGU6IGFueSA9ICcnXHJcbiAgZGVzY3JpcHRpb246IGFueSA9ICcnXHJcbiAgc2VsZWN0ZWRJc3N1ZXM6IHN0cmluZ1tdID0gW107XHJcbiAgc2VsZWN0ZWRNYWluSXNzdWVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHRhZ2dnZWREYXRhOiBhbnkgPSB7fVxyXG4gIG1pc3NlZG9wdHVuaXR5UmVhc29uOiBhbnkgPSBbXVxyXG4gIGNvdW50cnlMaXN0OiBhbnkgPSBbXVxyXG4gIHBlbmRpbmdjb3VudDogYW55O1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBUcmFmZmljU2VydmljZSxcclxuICAgIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RTZXJ2aWNlLHByaXZhdGUgcnZwc1NlcnZpY2U6VHJhZmZpY1J2cHNTZXJ2aWNlLFxyXG4gICkge1xyXG5cclxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xyXG4gICAgICBzZWxlY3RWYWx1ZTogbmV3IEZvcm1Db250cm9sKCcnKSAvLyBJbml0aWFsaXplIGFzIEZvcm1Db250cm9sXHJcbiAgICB9KTtcclxuXHJcblxyXG4gIH1cclxuICBpbml0dXNlckZvcm0oKSB7XHJcbiAgICB0aGlzLnVzZXJGb3JtID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgIG1vYmlsZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMpLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg4KSxdXSxcclxuICAgICAgZW1haWw6IFsnJywgW1xyXG4gICAgICAgIFZhbGlkYXRvcnMucGF0dGVybihcIl5bYS16QS1aMC05XSsoWy4tX10/W2EtekEtWjAtOV0rKSpAW2EtekEtWjAtOV0rKFsuLV9dP1thLXpBLVpdKykqWy5dezF9W2EtekEtWl17Mix9JFwiKSxcclxuICAgICAgXSxdLFxyXG4gICAgICBsb2NhdGlvbjogW10sXHJcbiAgICAgIGFnZTogW10sXHJcbiAgICAgIGdlbmRlcjogW10sXHJcbiAgICAgIGNvdW50cnlDb2RlOiBbXCI5MVwiLF0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldENvdW50cnlDb2RlcygpXHJcbiAgICB0aGlzLmluaXR1c2VyRm9ybSgpXHJcbiAgICB0aGlzLmdldEluaXRhbCgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuaGlkZURvYyA9IGZhbHNlO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmhpZGVEb2MgPSB0cnVlO1xyXG4gICAgICB9LCA1MDAwKTtcclxuXHJcbiAgICB9LCAxMDAwKTtcclxuICB9XHJcbiAgZ2V0Q291bnRyeUNvZGVzKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldEFsbENvdW50cmllcygpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY291bnRyeUxpc3QgPSByZXMuZGF0YVxyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIG9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHZhciBrO1xyXG4gICAgayA9IGV2ZW50LmNoYXJDb2RlO1xyXG4gICAgcmV0dXJuIGsgPT0gOCB8fCBrID09IDMyIHx8IChrID49IDQ4ICYmIGsgPD0gNTcpO1xyXG4gIH1cclxuXHJcbiAgY2xpZW50RGF0YTogYW55O1xyXG4gIGdldCBmKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckZvcm0uY29udHJvbHM7XHJcbiAgfVxyXG4gIGdldEluaXRhbCgpIHtcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGEgIT09IG51bGwgfHwgZGF0YT8uY2xpZW50ICE9PSBudWxsKSB7XHJcbiAgICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgICAgdGhpcy5zdG9yZUlkYXJyYXkgPSB0aGlzLmhlYWRlckRhdGE/LnN0b3Jlcy5maWx0ZXIoKHN0b3JlOiBhbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZClcclxuICAgICAgICAgIHRoaXMub2JqRGF0YSA9IHtcclxuICAgICAgICAgICAgc3RvcmVJZDogdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAgICAgICAuZmlsdGVyKChzdG9yZTogYW55KSA9PiBzdG9yZS5jaGVja2VkKVxyXG4gICAgICAgICAgICAgIC5tYXAoKHN0b3JlOiBhbnkpID0+IHN0b3JlLnN0b3JlSWQpLFxyXG4gICAgICAgICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhPy5jbGllbnQsXHJcbiAgICAgICAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnByb2Nlc3NUeXBlLFxyXG4gICAgICAgICAgICBmb290ZmFsbERhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGUsXHJcbiAgICAgICAgICAgIC8vIHZhbHVlVHlwZSA6dGhpcy52YWx1ZVR5cGVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgY2xpZW50RGF0YTogYW55ID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImNsaWVudC1kZXRhaWxzXCIpIHx8IFwie31cIik7XHJcbiAgICAgICAgICAgIHRoaXMuY2xpZW50RGF0YSA9IGNsaWVudERhdGFcclxuICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5jbGllbnREYXRhKVxyXG5cclxuICAgICAgICAgICAgY29uc3QgbGltaXQgPSBjbGllbnREYXRhPy5ib3VuY2VkTGltaXQ/LnZhbHVlID8/IGNsaWVudERhdGE/LmJvdW5jZWRMaW1pdFZhbHVlID8/ICcnO1xyXG4gICAgICAgICAgICBjb25zdCBjb252ID0gY2xpZW50RGF0YT8uY29udmVyc2lvbj8udmFsdWUgPz8gY2xpZW50RGF0YT8uY29udmVyc2lvblZhbHVlID8/ICcnO1xyXG4gICAgICAgICAgICBpZiAoY2xpZW50RGF0YS5pc0Zvb3RmYWxsVmlldykge1xyXG4gICAgICAgICAgICAgIHRoaXMuZGF0YXNldHMgPSBbXHJcbiAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgIF1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmhlYWRlckRhdGEuY2xpZW50ID09PSAnNDUyJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhc2V0cyA9IFtcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2Zvb3RmYWxsJywgbGFiZWw6ICdGb290ZmFsbCcgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2JvdW5jZWQnLCBsYWJlbDogYExlc3MgdGhhbiAke2xpbWl0fSBtaW5zYCB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZW5nYWdlcicsIGxhYmVsOiBgTW9yZSB0aGFuICR7bGltaXR9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdtaXNzZWRPcHBvcnR1bml0eScsIGxhYmVsOiBgJHtsaW1pdH0gLSAke2NvbnZ9IG1pbnNgIH0sXHJcbiAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICdjb252ZXJzaW9uJywgbGFiZWw6IGBNb3JlIHRoYW4gJHtjb252fSBtaW5zYCB9XHJcbiAgICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFzZXRzID0gW1xyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnZm9vdGZhbGwnLCBsYWJlbDogJ0Zvb3RmYWxsJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnYm91bmNlZCcsIGxhYmVsOiAnQm91bmNlZCBGb290ZmFsbCcgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2VuZ2FnZXInLCBsYWJlbDogJ0VuZ2FnZXJzJyB9LFxyXG4gICAgICAgICAgICAgICAgICB7IHZhbHVlOiAnbWlzc2VkT3Bwb3J0dW5pdHknLCBsYWJlbDogJ01pc3NlZCBPcHBvcnR1bml0eScgfSxcclxuICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogJ2NvbnZlcnNpb24nLCBsYWJlbDogJ0NvbnZlcnNpb24nIH1cclxuICAgICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gdGhpcy5nZXRJbml0aWFsVmFsdWUoKTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0Q29udHJvbCA9IHRoaXMuZm9ybS5nZXQoJ3NlbGVjdFZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XHJcbiAgICAgICAgICAgIGlmIChzZWxlY3RDb250cm9sKSB7XHJcbiAgICAgICAgICAgICAgc2VsZWN0Q29udHJvbC5zZXRWYWx1ZShpbml0aWFsVmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAxMDApXHJcbiAgICAgICAgICB0aGlzLmJhY2tUb0Zvb3RmYWxsKCk7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICAgIGlmICh0aGlzLmhlYWRlckRhdGE/LmRhdGU/LnN0YXJ0RGF0ZSA9PT0gdGhpcy5oZWFkZXJEYXRhPy5kYXRlPy5lbmREYXRlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja25hdiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRpbWFnZXMoMCwgdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSlcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9sZGVyVmlldyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja25hdiA9IHRydWVcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaW5pdGlhbERhdGEoKTtcclxuICAgICAgICAgIHRoaXMuaW5pdGlhbEZvb3RmYWxsKCk7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmb290ZmFsbERhdGFTaG93OiBhbnk7XHJcbiAgaW5pdGlhbEZvb3RmYWxsKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFN0b3JlRm9vdGZhbGwodGhpcy5zdG9yZUlkYXJyYXkpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9vdGZhbGxEYXRhU2hvdyA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9vdGZhbGxEYXRhU2hvdyA9IFtdXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb290ZmFsbERhdGFTaG93ID0gW11cclxuICAgICAgICB9LFxyXG4gICAgICB9KVxyXG5cclxuICB9XHJcblxyXG4gIGluaXRpYWxEYXRhKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldHJldm9wY29uZmlnKHRoaXMuaGVhZGVyRGF0YS5jbGllbnQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlMaXN0ID0gcmVzLmRhdGEuaXNzdWVMaXN0XHJcbiAgICAgICAgICAgIHRoaXMuaXNzdWVzID0gdGhpcy5taXNzZWRPcHBvcnR1bml0eUxpc3QuZmlsdGVyKChkYXRhOiBhbnkpID0+IGRhdGEubmFtZSA9PT0gdGhpcy5zZWxlY3RlZE1pc3NlZClcclxuXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuICB9XHJcbiAgdG9nZ2xlQWNjb3JkaW9uKCkge1xyXG4gICAgdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkID0gIXRoaXMuaXNBY2NvcmRpb25FeHBhbmRlZDtcclxuXHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBnZXRJbWFnZUZvbGRlcigpIHtcclxuXHJcbiAgICBkZWxldGUgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWU7XHJcbiAgICB0aGlzLnNlcnZpY2VcclxuICAgICAgLmdldEZvb3RmYWxsRGlyZWN0b3J5Rm9sZGVycyh0aGlzLm9iakRhdGEpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gcmVzPy5kYXRhLmZvb3RmYWxsRGF0YTtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWUgPSB0aGlzLm9iamVjdHNBcnJheVswXS5mb2xkZXJOYW1lO1xyXG4gICAgICAgICAgICB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZSA9IHRoaXMuc2VsZWN0ZWRUaW1lO1xyXG4gICAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5nZXRJbWFnZVZpZXcoKTtcclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxlbmd0aFZhbHVlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gW11cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHsgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGdldEltYWdlVmlldygpIHtcclxuXHJcbiAgICAvLyBjb25zb2xlLmxvZyh0aGlzLm9iakRhdGEpXHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuZ2V0Rm9vdGZhbGxEaXJlY3RvcnkodGhpcy5vYmpEYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICBpZiAoIXJlcz8uZGF0YS5mb290ZmFsbERhdGEubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW1hZ2VzQXJyYXlEYXRhID0gcmVzPy5kYXRhLmZvb3RmYWxsRGF0YTtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZUFycmF5VmFsdWUgPSByZXM/LmRhdGEuc3RvcmVOYW1lXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcblxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBjb21wbGV0ZTogKCkgPT4geyB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgbm9ybWFsaXplOiBhbnlcclxuICBzZWxlY3RlZFRhYnMobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkTWlzc2VkID0gbmFtZTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXTsgLy8gcmVzZXQgd2hlbiBzd2l0Y2hpbmcgdGFic1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0U3ViaXNzdWUob2JqOiBhbnksIGlzc3VlOiBzdHJpbmcpIHtcclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJc3N1ZXMuaW5kZXhPZihpc3N1ZSk7XHJcbiAgICBjb25zdCBtYWluaW5kZXggPSB0aGlzLnNlbGVjdGVkTWFpbklzc3Vlcy5pbmRleE9mKG9iai5uYW1lKTtcclxuICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgbGV0IGV4aXRzQ291bnQgPSB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLmZpbHRlcigoZGF0YTogYW55KSA9PiBkYXRhLm5hbWUgPT09IG9iai5uYW1lKS5sZW5ndGhcclxuICAgICAgaWYgKGV4aXRzQ291bnQgPiAwKSB7XHJcbiAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGRhdGEubmFtZSA9PT0gb2JqLm5hbWUpIHtcclxuICAgICAgICAgICAgZGF0YS5pc3N1ZS5wdXNoKGlzc3VlKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbi5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IG9iai5uYW1lLFxyXG4gICAgICAgICAgaXNzdWU6IFtpc3N1ZV1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLnB1c2gob2JqLm5hbWUpXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMucHVzaChpc3N1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNYWluSXNzdWVzLnNwbGljZShtYWluaW5kZXgsIDEpO1xyXG4gICAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uLm1hcCgoZGF0YTogYW55LCBpOiBudW1iZXIpID0+IHtcclxuICAgICAgICBpZiAoZGF0YS5uYW1lID09PSBvYmoubmFtZSkge1xyXG4gICAgICAgICAgY29uc3Qgc3ViSW5kZXggPSBkYXRhLmlzc3VlLmluZGV4T2YoaXNzdWUpO1xyXG4gICAgICAgICAgaWYgKHN1YkluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICBkYXRhLmlzc3VlLnNwbGljZShzdWJJbmRleCwgMSk7XHJcbiAgICAgICAgICAgIGlmIChkYXRhLmlzc3VlLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24uc3BsaWNlKGksIDEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGdldGltYWdlcyhpbmRleDogYW55LCBvYmo6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3RJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5mb2xkZXJEYXRlID0gb2JqO1xyXG4gICAgKHRoaXMub2JqRGF0YS5mb290ZmFsbERhdGUgPSBvYmopLCAodGhpcy5mb2xkZXJWaWV3ID0gZmFsc2UpO1xyXG4gICAgdGhpcy5zZXJ2aWNlPy5pc25vcm1hbGl6ZVNvdXJjZVxyXG4gICAgICA/LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMzAwKSlcclxuICAgICAgPy5zdWJzY3JpYmUoKG5vcm1hbGl6ZTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5ub3JtYWxpemUgPSBub3JtYWxpemU7XHJcbiAgICAgICAgaWYgKCFub3JtYWxpemUpIHtcclxuICAgICAgICAgIHRoaXMuZ2V0SW1hZ2VGb2xkZXIoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sZW5ndGhWYWx1ZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIGJhY2tUb0Zvb3RmYWxsKCkge1xyXG4gICAgdGhpcy5zZWxlY3RJbmRleCA9IDA7XHJcbiAgICB0aGlzLmZvbGRlclZpZXcgPSB0cnVlO1xyXG5cclxuICB9XHJcbiAgc2VsZWN0ZWRUaW1lcyh2YWw6IGFueSkge1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRUaW1lID0gdmFsO1xyXG4gICAgdGhpcy5vYmpEYXRhLmZvbGRlck5hbWUgPSB2YWw7XHJcbiAgICB0aGlzLmZvbGRlclZpZXcgPSBmYWxzZTtcclxuICAgIHRoaXMuZ2V0SW1hZ2VWaWV3KCk7XHJcbiAgfVxyXG4gIEltYWdlZGF0YTogYW55O1xyXG4gIGltYWdlRmxvdyA9IGZhbHNlO1xyXG4gIEltYWdlczogYW55O1xyXG5cclxuICByZXZvcFRhZ2dpbmcob2JqOiBhbnkpIHtcclxuICAgIHRoaXMuaW1hZ2VGbG93ID0gdHJ1ZTtcclxuICAgIHRoaXMuSW1hZ2VkYXRhID0gb2JqO1xyXG4gICAgdGhpcy5zZWxlY3RlZFRhYiA9ICd0YWdnZWQnO1xyXG4gICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSA9IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlID8gdGhpcy5JbWFnZWRhdGE/LnJldm9wc1R5cGUgOiAnbm9uU2hvcHBlcic7XHJcbiAgICB0aGlzLkltYWdlcyA9IHRoaXMuSW1hZ2VkYXRhPy5pbWFnZXM/LmVudHJ5VGltZUltYWdlXHJcbiAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgfVxyXG4gIGdldFJldm9wRGF0YSgpIHtcclxuICAgIGxldCBwYXlsb2FkID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLkltYWdlZGF0YT8ucmV2b3BzVHlwZSA/IHRoaXMuSW1hZ2VkYXRhPy5yZXZvcHNUeXBlIDogdGhpcy5wcm9jZXNzVHlwZVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldHJldm9wdGFnZ2luZyhwYXlsb2FkKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUYWIgPSAnY3VzdG9tZXInXHJcbiAgICAgICAgICAgIHRoaXMudGFnZ2dlZERhdGEgPSByZXMuZGF0YVxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID0gcmVzLmRhdGEucmV2b3BzVHlwZVxyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gcmVzLmRhdGEuZGVzY3JpcHRpb25cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdENvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCdzZWxlY3RWYWx1ZScpIGFzIEZvcm1Db250cm9sO1xyXG4gICAgICAgICAgICBpZiAoc2VsZWN0Q29udHJvbCkge1xyXG4gICAgICAgICAgICAgIHNlbGVjdENvbnRyb2wuc2V0VmFsdWUocmVzLmRhdGEucmV2b3BzVHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAnbm9uU2hvcHBlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gcmVzLmRhdGEubm9uc2hvcGVyVHlwZVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCduYW1lJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ21vYmlsZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZ2VuZGVyJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0gJ3B1cmNoYXNlcicpIHtcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJydcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8ubmFtZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5tb2JpbGUpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2NvdW50cnlDb2RlJyk/LnNldFZhbHVlKHJlcy5kYXRhLmN1c3RvbWVySW5mby5jb3VudHJ5Q29kZSlcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmVtYWlsKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdsb2NhdGlvbicpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8ubG9jYXRpb24pXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShyZXMuZGF0YS5jdXN0b21lckluZm8uYWdlKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdnZW5kZXInKT8uc2V0VmFsdWUocmVzLmRhdGEuY3VzdG9tZXJJbmZvLmdlbmRlcilcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbiA9IHJlcy5kYXRhLmlzc3VlTGlzdFxyXG4gICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHJlcy5kYXRhKVxyXG4gICAgICAgICAgICAgIHJlcy5kYXRhLmlzc3VlTGlzdC5tYXAoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFsuLi50aGlzLnNlbGVjdGVkSXNzdWVzLCAuLi5kYXRhLmlzc3VlXVxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gJydcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKCFyZXMgfHwgcmVzPy5jb2RlID09PSAyMDQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDb250cm9sLnNldFZhbHVlKFwiZm9vdGZhbGxcIik7XHJcbiAgICAgICAgICAgIHRoaXMubm9uU2hvcGVyVHlwZSA9ICcnO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gJydcclxuICAgICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbmFtZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbW9iaWxlJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdjb3VudHJ5Q29kZScpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnZW1haWwnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LnNldFZhbHVlKFwiXCIpXHJcbiAgICAgICAgICAgIHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8uc2V0VmFsdWUoXCJcIilcclxuICAgICAgICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2dlbmRlcicpPy5zZXRWYWx1ZShcIlwiKVxyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW107XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH0sIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0Q29udHJvbC5zZXRWYWx1ZShcImZvb3RmYWxsXCIpO1xyXG4gICAgICAgICAgdGhpcy50YWdnZ2VkRGF0YSA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcbiAgcHVibGljIGhhbmRsZUFkZHJlc3NDaGFuZ2UocGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCB8IGFueSkge1xyXG4gICAgaWYgKHBsYWNlLmdlb21ldHJ5KSB7XHJcbiAgICAgIGxldCBjb3VudHJ5ID0gXCJcIiwgY2l0eSA9IFwiXCIsIHN0YXRlID0gXCJcIiwgcGluY29kZSA9IFwiXCI7XHJcbiAgICAgIGxldCBsYXRpdHVkZSA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpO1xyXG4gICAgICBsZXQgbG9uZ2l0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKCk7XHJcbiAgICAgIHBsYWNlLmFkZHJlc3NfY29tcG9uZW50cy5mb3JFYWNoKChjb21wb25lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChjb21wb25lbnQudHlwZXMuaW5jbHVkZXMoXCJjb3VudHJ5XCIpKSB7XHJcbiAgICAgICAgICBjb3VudHJ5ID0gY29tcG9uZW50LmxvbmdfbmFtZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImxvY2FsaXR5XCIpKSB7XHJcbiAgICAgICAgICBjaXR5ID0gY29tcG9uZW50LmxvbmdfbmFtZTtcclxuICAgICAgICB9IGVsc2UgaWYgKGNvbXBvbmVudC50eXBlcy5pbmNsdWRlcyhcImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMVwiKSkge1xyXG4gICAgICAgICAgc3RhdGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoY29tcG9uZW50LnR5cGVzLmluY2x1ZGVzKFwicG9zdGFsX2NvZGVcIikpIHtcclxuICAgICAgICAgIHBpbmNvZGUgPSBjb21wb25lbnQubG9uZ19uYW1lO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8uc2V0VmFsdWUoY2l0eSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZWxlY3Rub25TaG9wZXIoZGF0YTogYW55KSB7XHJcbiAgICBsZXQgaW5wdXREYXRhID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgIH1cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAucmV2b3B0YWdnaW5nY291bnQoaW5wdXREYXRhKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgID8uc3Vic2NyaWJlKHtcclxuICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuXHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmNvdW50IDw9IDAgJiYgdGhpcy50YWdnZ2VkRGF0YS5yZXZvcHNUeXBlICE9ICdub25TaG9wcGVyJykge1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KFwiVGFnIGxpbWl0IHJlYWNoZWQhIFRyeSB0YWdnaW5nIHVuZGVyIGRpZmZlcmVudCBjYXRlZ29yaWVzXCIpXHJcbiAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5ub25TaG9wZXJUeXBlID0gZGF0YVxyXG4gICAgICAgICAgICAgIGlmIChkYXRhID09PSAnRHVwbGljYXRlJykge1xyXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy50YWdnZ2VkRGF0YS5ub25zaG9wZXJUeXBlLCB0aGlzLkltYWdlZGF0YS50ZW1wSWQsIHRoaXMudGFnZ2dlZERhdGEudGVtcElkKVxyXG4gICAgICAgICAgICAgICAgbGV0IG9yaWdpbmFsRGF0YSA9IFtdXHJcbiAgICAgICAgICAgICAgICBpZih0aGlzLnRhZ2dnZWREYXRhLm5vbnNob3BlclR5cGUgIT0gJ0R1cGxpY2F0ZScmJnRoaXMudGFnZ2dlZERhdGEucmV2b3BzVHlwZT09PSdub25TaG9wcGVyJyl7XHJcbiAgICAgICAgICAgICAgICBvcmlnaW5hbERhdGEucHVzaCh7IHRlbXBJZDogdGhpcy50YWdnZ2VkRGF0YT8udGVtcElkLCBzZWxlY3RlZFRpbWU6IHRoaXMuc2VsZWN0ZWRUaW1lIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRHVwbGljYXRlQ29tcG9uZW50LCB7XHJcbiAgICAgICAgICAgICAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICBzaXplOiBcInhsXCIsXHJcbiAgICAgICAgICAgICAgICAgIHNjcm9sbGFibGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgIGJhY2tkcm9wOiAnc3RhdGljJ1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zZWxlY3RlZFRlbXBJZCA9IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZDtcclxuICAgICAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLm9yaWdpbmFsRGF0YSA9IG9yaWdpbmFsRGF0YTtcclxuICAgICAgICAgICAgICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmFscmVhZHlUYWdnZWQgPSB0aGlzLkltYWdlZGF0YT8udGVtcElkID09PSB0aGlzLnRhZ2dnZWREYXRhPy50ZW1wSWQgJiYgdGhpcy50YWdnZ2VkRGF0YT8ubm9uc2hvcGVyVHlwZSA9PT0gJ0R1cGxpY2F0ZScgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaW5wdXREYXRhID0ge1xyXG4gICAgICAgICAgICAgICAgICBcInN0b3JlSWRcIjogdGhpcy5zdG9yZUlkYXJyYXksXHJcbiAgICAgICAgICAgICAgICAgIFwiY2xpZW50SWRcIjogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgICAgICAgICAgICAgXCJwcm9jZXNzVHlwZVwiOiB0aGlzLnByb2Nlc3NUeXBlLFxyXG4gICAgICAgICAgICAgICAgICBcImZvb3RmYWxsRGF0ZVwiOiB0aGlzLmZvbGRlckRhdGUsXHJcbiAgICAgICAgICAgICAgICAgIFwiZm9sZGVyTmFtZVwiOiB0aGlzLnNlbGVjdGVkVGltZVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgbW9kYWxSZWYucmVzdWx0LnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldFJldm9wRGF0YSgpXHJcbiAgICAgICAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgaW1hZ2VWaWV3KG9iajogYW55LCBmb290ZmFsbERhdGU6IGFueSkge1xyXG5cclxuICAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3BlbihJbWFnZURvY1ZpZXdDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6IFwieGxcIixcclxuICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuSW1hZ2VkYXRhID0gb2JqO1xyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucHJvY2Vzc1R5cGUgPSB0aGlzLm9iakRhdGEucHJvY2Vzc1R5cGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5mb290ZmFsbERhdGUgPSBmb290ZmFsbERhdGU7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zdG9yZU5hbWUgPSB0aGlzLnN0b3JlQXJyYXlWYWx1ZTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlSWQgPSB0aGlzLnN0b3JlSWRhcnJheVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmltYWdlQXJyYXkgPSB0aGlzLm9iamVjdHNBcnJheTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmZvbGRlck5hbWUgPSB0aGlzLm9iakRhdGEuZm9sZGVyTmFtZVxyXG4gICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UudHJhY2tlciA9IHRoaXMuZm9vdGZhbGxEYXRhU2hvdztcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQ6IGFueSkgPT4geyB9KTtcclxuICAgIC8vIG1vZGFsUmVmLmRpc21pc3MoJ0NsaWNrIG91dHNpZGUnKTtcclxuICB9XHJcblxyXG4gIGdldERhdGVSYW5nZUFycmF5KGZyb21EYXRlOiBzdHJpbmcsIHRvRGF0ZTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShmcm9tRGF0ZSk7IC8vIENvbnZlcnQgc3RyaW5nIHRvIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSh0b0RhdGUpOyAvLyBDb252ZXJ0IHN0cmluZyB0byBEYXRlIG9iamVjdFxyXG4gICAgY29uc3QgZGF0ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8vIENoZWNrIGlmIHRoZSBkYXRlcyBhcmUgdmFsaWRcclxuICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpIHx8IGlzTmFOKGVuZC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgIHJldHVybiBkYXRlQXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTG9vcCBmcm9tIHN0YXJ0IGRhdGUgdG8gZW5kIGRhdGVcclxuICAgIGxldCBjdXJyZW50RGF0ZSA9IHN0YXJ0O1xyXG4gICAgd2hpbGUgKGN1cnJlbnREYXRlIDw9IGVuZCkge1xyXG4gICAgICBkYXRlQXJyYXkucHVzaChjdXJyZW50RGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSk7IC8vIEZvcm1hdCBZWVlZLU1NLUREXHJcbiAgICAgIGN1cnJlbnREYXRlLnNldERhdGUoY3VycmVudERhdGUuZ2V0RGF0ZSgpICsgMSk7IC8vIEluY3JlbWVudCB0aGUgZGF0ZSBieSAxIGRheVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlQXJyYXk7XHJcbiAgfVxyXG5cclxuICAvLyBNZXRob2QgdG8gZGlzcGxheSBvciBsb2cgdGhlIGRhdGUgcmFuZ2UgYXJyYXlcclxuICBkaXNwbGF5RGF0ZVJhbmdlKCkge1xyXG4gICAgY29uc3QgZGF0ZXMgPSB0aGlzLmdldERhdGVSYW5nZUFycmF5KFxyXG4gICAgICB0aGlzLmhlYWRlckRhdGEuZGF0ZS5zdGFydERhdGUsXHJcbiAgICAgIHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGVcclxuICAgICk7XHJcbiAgICB0aGlzLmRhdGVBcnJheSA9IGRhdGVzO1xyXG4gIH1cclxuICBkYXRhc2V0cyA9IFtcclxuICAgIHsgdmFsdWU6ICdmb290ZmFsbCcsIGxhYmVsOiAnRm9vdGZhbGwnIH0sXHJcbiAgICB7IHZhbHVlOiAnYm91bmNlZCcsIGxhYmVsOiAnQm91bmNlZCBGb290ZmFsbCcgfSxcclxuICAgIHsgdmFsdWU6ICdlbmdhZ2VyJywgbGFiZWw6ICdFbmdhZ2VycycgfSxcclxuICAgIHsgdmFsdWU6ICdtaXNzZWRPcHBvcnR1bml0eScsIGxhYmVsOiAnTWlzc2VkIE9wcG9ydHVuaXR5JyB9LFxyXG4gICAgeyB2YWx1ZTogJ2NvbnZlcnNpb24nLCBsYWJlbDogJ0NvbnZlcnNpb24nIH1cclxuICBdO1xyXG4gIGdldEluaXRpYWxWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgLy8gRm9yIGV4YW1wbGUsIHNlbGVjdGluZyB0aGUgc2Vjb25kIGl0ZW0gaW4gdGhlIGRhdGFzZXRcclxuICAgIHJldHVybiB0aGlzLmRhdGFzZXRzWzBdLnZhbHVlOyAvLyBDaGFuZ2UgYXMgbmVlZGVkXHJcbiAgfVxyXG4gIG9uVmFsdWVDaGFuZ2Uoc2VsZWN0ZWRJZDogYW55KSB7XHJcbiAgICB0aGlzLm9iakRhdGEucHJvY2Vzc1R5cGUgPSBzZWxlY3RlZElkLFxyXG4gICAgICB0aGlzLmdldEltYWdlRm9sZGVyKCk7XHJcbiAgfVxyXG4gIGdldCBzZWxlY3RDb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdzZWxlY3RWYWx1ZScpIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuICBjbG9zZURhdGEoKSB7XHJcbiAgICB0aGlzLmhpZGVEb2MgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYmFja1RvVmlldygpIHtcclxuICAgIHRoaXMuc2VsZWN0Q29udHJvbC5zZXRWYWx1ZShcImZvb3RmYWxsXCIpO1xyXG4gICAgdGhpcy5pbWFnZUZsb3cgPSBmYWxzZTtcclxuICAgIHRoaXMub2JqRGF0YS5mb2xkZXJOYW1lID0gdGhpcy5zZWxlY3RlZFRpbWU7XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkVGltZXModGhpcy5zZWxlY3RlZFRpbWUpO1xyXG4gICAgLy8gY29uc29sZS5sb2codGhpcy5vYmpEYXRhKVxyXG4gICAgLy8gdGhpcy5zZXJ2aWNlXHJcbiAgICAvLyAgIC5nZXRGb290ZmFsbERpcmVjdG9yeSh0aGlzLm9iakRhdGEpXHJcbiAgICAvLyAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgIC8vICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgLy8gICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgLy8gICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAvLyAgICAgICAgIGlmICghcmVzPy5kYXRhLmZvb3RmYWxsRGF0YS5sZW5ndGgpIHtcclxuICAgIC8vICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAvLyAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSByZXM/LmRhdGEuZm9vdGZhbGxEYXRhO1xyXG5cclxuICAgIC8vICAgICAgICAgICB0aGlzLnN0b3JlQXJyYXlWYWx1ZSA9IHJlcz8uZGF0YS5zdG9yZU5hbWVcclxuICAgIC8vICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIC8vICAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuXHJcbiAgICAvLyAgICAgICAgIH1cclxuICAgIC8vICAgICAgIH0gZWxzZSB7XHJcbiAgICAvLyAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgLy8gICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAvLyAgICAgICB9XHJcbiAgICAvLyAgICAgfSxcclxuICAgIC8vICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAvLyAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIC8vICAgICB9LFxyXG4gICAgLy8gICAgIGNvbXBsZXRlOiAoKSA9PiB7IH0sXHJcbiAgICAvLyAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGltYWdlRGF0YSh0eXBlOiBhbnkpIHtcclxuICAgIGlmICh0eXBlID09PSAnZW50cnknKSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VzID0gdGhpcy5JbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcclxuICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2V4aXQnKSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VzID0gdGhpcy5JbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVxyXG4gICAgfSBlbHNlIGlmICh0eXBlID09PSAnc3RhZmYnKSB7XHJcbiAgICAgIHRoaXMuSW1hZ2VzID0gdGhpcy5JbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcclxuICAgIH1cclxuXHJcbiAgfVxyXG4gIGlzRmlyc3RJbWFnZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZXNBcnJheURhdGEuZmluZEluZGV4KChkYXRhOiBhbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YT8udGVtcElkKTtcclxuICAgIHJldHVybiBpbmRleCA8PSAwO1xyXG4gIH1cclxuXHJcbiAgaXNMYXN0SW1hZ2UoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbmRJbmRleCgoZGF0YTogYW55KSA9PiBkYXRhLnRlbXBJZCA9PT0gdGhpcy5JbWFnZWRhdGE/LnRlbXBJZCk7XHJcbiAgICByZXR1cm4gaW5kZXggPj0gdGhpcy5pbWFnZXNBcnJheURhdGEubGVuZ3RoIC0gMTtcclxuICB9XHJcblxyXG4gIHByZXZpb3VzKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZElzc3VlcyA9IFtdXHJcbiAgICB0aGlzLm1pc3NlZG9wdHVuaXR5UmVhc29uID0gW11cclxuICAgIHRoaXMuc2VsZWN0ZWRNaXNzZWQgPSAnUHJvZHVjdCBJc3N1ZSdcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbWFnZXNBcnJheURhdGEuZmluZEluZGV4KChkYXRhOiBhbnkpID0+IGRhdGEudGVtcElkID09PSB0aGlzLkltYWdlZGF0YS50ZW1wSWQpO1xyXG4gICAgaWYgKGluZGV4ID4gMCkge1xyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW2luZGV4IC0gMV07XHJcbiAgICAgIGlmICh0aGlzLkltYWdlZGF0YSkge1xyXG4gICAgICAgIHRoaXMucmV2b3BUYWdnaW5nKHRoaXMuSW1hZ2VkYXRhKVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLkltYWdlZGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhWzBdO1xyXG4gICAgICBpZiAodGhpcy5JbWFnZWRhdGEpIHtcclxuICAgICAgICB0aGlzLnJldm9wVGFnZ2luZyh0aGlzLkltYWdlZGF0YSlcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuICB9XHJcbiAgbmV4dCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJc3N1ZXMgPSBbXVxyXG4gICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbiA9IFtdXHJcbiAgICB0aGlzLnNlbGVjdGVkTWlzc2VkID0gJ1Byb2R1Y3QgSXNzdWUnXHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5maW5kSW5kZXgoKGRhdGE6IGFueSkgPT4gZGF0YS50ZW1wSWQgPT09IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCk7XHJcbiAgICBpZiAodGhpcy5pbWFnZXNBcnJheURhdGEubGVuZ3RoIC0gMSAhPSBpbmRleCkge1xyXG5cclxuICAgICAgdGhpcy5JbWFnZWRhdGEgPSB0aGlzLmltYWdlc0FycmF5RGF0YVtpbmRleCArIDFdO1xyXG4gICAgICBpZiAodGhpcy5JbWFnZWRhdGEpIHtcclxuICAgICAgICB0aGlzLnJldm9wVGFnZ2luZyh0aGlzLkltYWdlZGF0YSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0ZWRUYWIgPSAndGFnZ2VkJztcclxuICBzZWxlY3RlZEN1c3RvbWVyVHlwZSA9ICdub25TaG9wcGVyJztcclxuICBvblJhZGlvQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIC8vIGNvbnNvbGUubG9nKHZhbHVlKVxyXG4gICAgdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSA9IHZhbHVlO1xyXG4gICAgaWYgKHZhbHVlID09PSAncHVyY2hhc2VyJykge1xyXG4gICAgICB0aGlzLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICBPYmplY3QudmFsdWVzKHRoaXMudXNlckZvcm0uY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XHJcbiAgICAgICAgY29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnVzZXJGb3JtLmdldCgnY291bnRyeUNvZGUnKT8uc2V0VmFsdWUoXCI5MVwiKTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPT0gJ21pc3NlZE9wcG9ydHVuaXR5Jykge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSXNzdWVzID0gW11cclxuICAgICAgdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvbiA9IFtdXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgYWdlOiBudW1iZXIgPSAxO1xyXG5cclxuICBpbmNyZW1lbnRBZ2UoKSB7XHJcbiAgICBjb25zdCBjdXJyZW50QWdlID0gTnVtYmVyKHRoaXMudXNlckZvcm0uZ2V0KCdhZ2UnKT8udmFsdWUpIHx8IDA7XHJcbiAgICB0aGlzLnVzZXJGb3JtLmdldCgnYWdlJyk/LnNldFZhbHVlKGN1cnJlbnRBZ2UgKyAxKTtcclxuICB9XHJcblxyXG4gIGRlY3JlbWVudEFnZSgpIHtcclxuICAgIGNvbnN0IGN1cnJlbnRBZ2UgPSBOdW1iZXIodGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy52YWx1ZSkgfHwgMDtcclxuICAgIC8vIGNvbnNvbGUubG9nKGN1cnJlbnRBZ2UpXHJcbiAgICBpZiAoY3VycmVudEFnZSA+IDEpIHtcclxuICAgICAgdGhpcy51c2VyRm9ybS5nZXQoJ2FnZScpPy5zZXRWYWx1ZShjdXJyZW50QWdlIC0gMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHN1Ym1pdE1pc3NlZE9wcG9ydHVuaXR5KCkge1xyXG4gICAgaWYgKHRoaXMubWlzc2Vkb3B0dW5pdHlSZWFzb24ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KFwicGxlYXNlIHNlbGVjdCBtaXNzZWQgb3Bwb3J0dW5pdHkgcmVhc29uXCIpXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgbGV0IHBheWxvYWQgPSBbe1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGltZVJhbmdlOiB0aGlzLnNlbGVjdGVkVGltZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnNlbGVjdENvbnRyb2wudmFsdWUsXHJcbiAgICAgIHJldm9wc1R5cGU6IHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUsXHJcbiAgICAgIG5vbnNob3BlclR5cGU6IFwiXCIsXHJcbiAgICAgIGN1c3RvbWVySW5mbzoge1xyXG4gICAgICAgIG5hbWU6IFwiXCIsXHJcbiAgICAgICAgbW9iaWxlOiBcIlwiLFxyXG4gICAgICAgIGNvdW50cnlDb2RlOiBcIlwiLFxyXG4gICAgICAgIGVtYWlsOiBcIlwiLFxyXG4gICAgICAgIGxvY2F0aW9uOiBcIlwiLFxyXG4gICAgICAgIGFnZTogXCJcIixcclxuICAgICAgICBnZW5kZXI6IFwiXCIsXHJcbiAgICAgIH0sXHJcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxyXG4gICAgICBzdGF0dXM6IFwic3VibWl0dGVkXCIsXHJcbiAgICAgIGlzc3VlTGlzdDogdGhpcy5taXNzZWRvcHR1bml0eVJlYXNvblxyXG4gICAgfV1cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuc3VibWl0UmV2b3BUYWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoXCJDdXN0b21lciBoYXMgYmVlbiB0YWdnZWQgc3VjY2Vzc2Z1bGx5LlwiKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG4gICAgICAgICAgICB9LCAxMDAwKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG5cclxuICBub25TaG9wcGVyU3VibWl0KCkge1xyXG5cclxuICAgIGlmICh0aGlzLm5vblNob3BlclR5cGUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudG9hc3Rlci5nZXRFcnJvclRvYXN0KFwicGxlYXNlIHNlbGVjdCBub25zaG9wcGVyIFR5cGVcIilcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHBheWxvYWQgPSBbe1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkYXJyYXlbMF0sXHJcbiAgICAgIHRpbWVSYW5nZTogdGhpcy5zZWxlY3RlZFRpbWUsXHJcbiAgICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSxcclxuICAgICAgdGVtcElkOiB0aGlzLkltYWdlZGF0YS50ZW1wSWQsXHJcbiAgICAgIHByb2Nlc3NUeXBlOiB0aGlzLnNlbGVjdENvbnRyb2wudmFsdWUsXHJcbiAgICAgIHJldm9wc1R5cGU6IHRoaXMuc2VsZWN0ZWRDdXN0b21lclR5cGUsXHJcbiAgICAgIG5vbnNob3BlclR5cGU6IHRoaXMubm9uU2hvcGVyVHlwZSxcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogXCJcIixcclxuICAgICAgICBtb2JpbGU6IFwiXCIsXHJcbiAgICAgICAgY291bnRyeUNvZGU6IFwiXCIsXHJcbiAgICAgICAgZW1haWw6IFwiXCIsXHJcbiAgICAgICAgbG9jYXRpb246IFwiXCIsXHJcbiAgICAgICAgYWdlOiBcIlwiLFxyXG4gICAgICAgIGdlbmRlcjogXCJcIixcclxuICAgICAgfSxcclxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24sXHJcbiAgICAgIHN0YXR1czogXCJzdWJtaXR0ZWRcIixcclxuICAgICAgaXNzdWVMaXN0OiBbXVxyXG4gICAgfV1cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAuc3VibWl0UmV2b3BUYWdnaW5nKHBheWxvYWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3Rlci5nZXRTdWNjZXNzVG9hc3QoXCJDdXN0b21lciBoYXMgYmVlbiB0YWdnZWQgc3VjY2Vzc2Z1bGx5LlwiKVxyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuXHJcbiAgICAgICAgICAgICAgdGhpcy5nZXRSZXZvcERhdGEoKVxyXG4gICAgICAgICAgICB9LCAxMDAwKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMudXNlckZvcm0uaW52YWxpZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBsZXQgcGF5bG9hZCA9IFt7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVswXSxcclxuICAgICAgdGltZVJhbmdlOiB0aGlzLnNlbGVjdGVkVGltZSxcclxuICAgICAgZGF0ZVN0cmluZzogdGhpcy5mb2xkZXJEYXRlLFxyXG4gICAgICB0ZW1wSWQ6IHRoaXMuSW1hZ2VkYXRhLnRlbXBJZCxcclxuICAgICAgcHJvY2Vzc1R5cGU6IHRoaXMuc2VsZWN0Q29udHJvbC52YWx1ZSxcclxuICAgICAgcmV2b3BzVHlwZTogdGhpcy5zZWxlY3RlZEN1c3RvbWVyVHlwZSxcclxuICAgICAgbm9uc2hvcGVyVHlwZTogXCJcIixcclxuICAgICAgY3VzdG9tZXJJbmZvOiB7XHJcbiAgICAgICAgbmFtZTogdGhpcy51c2VyRm9ybS52YWx1ZS5uYW1lLFxyXG4gICAgICAgIG1vYmlsZTogdGhpcy51c2VyRm9ybS52YWx1ZS5tb2JpbGUsXHJcbiAgICAgICAgY291bnRyeUNvZGU6IHRoaXMudXNlckZvcm0udmFsdWUuY291bnRyeUNvZGUsXHJcbiAgICAgICAgZW1haWw6IHRoaXMudXNlckZvcm0udmFsdWUuZW1haWwsXHJcbiAgICAgICAgbG9jYXRpb246IHRoaXMudXNlckZvcm0udmFsdWUubG9jYXRpb24sXHJcbiAgICAgICAgYWdlOiB0aGlzLnVzZXJGb3JtLnZhbHVlLmFnZSxcclxuICAgICAgICBnZW5kZXI6IHRoaXMudXNlckZvcm0udmFsdWUuZ2VuZGVyLFxyXG4gICAgICB9LFxyXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5kZXNjcmlwdGlvbixcclxuICAgICAgc3RhdHVzOiBcInN1Ym1pdHRlZFwiLFxyXG4gICAgICBpc3N1ZUxpc3Q6IFtdXHJcbiAgICB9XVxyXG4gICAgdGhpcy5zZXJ2aWNlXHJcbiAgICAgIC5zdWJtaXRSZXZvcFRhZ2dpbmcocGF5bG9hZClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICA/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmdldFN1Y2Nlc3NUb2FzdChcIkN1c3RvbWVyIGhhcyBiZWVuIHRhZ2dlZCBzdWNjZXNzZnVsbHkuXCIpXHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuZ2V0UmV2b3BEYXRhKClcclxuXHJcbiAgICAgICAgICAgIH0sIDEwMDApXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG5cclxuXHJcblxyXG4gIH1cclxuXHJcbiAgaXNJbnZhbGlkKGZpZWxkTmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy51c2VyRm9ybS5nZXQoZmllbGROYW1lKTtcclxuICAgIHJldHVybiAhIShjb250cm9sICYmIGNvbnRyb2wuaW52YWxpZCAmJiAoY29udHJvbC50b3VjaGVkIHx8IHRoaXMuc3VibWl0dGVkKSk7XHJcbiAgfVxyXG5cclxuXHJcbi8vIC8vIGdldCBSZXZvcHMgQXBpIFxyXG4vLyAgZ2V0UnZwc0xpc3QgOmFueTtcclxuLy8gIGdldFJ2cHNJbWFnZUxpc3Q6YW55O1xyXG4vLyBnZXRSZXZvcHMoKXtcclxuLy8gICAvLyBSZXBsYWNlIHRoZSBmb2xsb3dpbmcgd2l0aCBhY3R1YWwgdmFsdWVzIGFzIG5lZWRlZFxyXG4vLyAgIGNvbnN0IHN0b3JlSWQgPSB0aGlzLnN0b3JlSWRhcnJheSAmJiB0aGlzLnN0b3JlSWRhcnJheS5sZW5ndGggPiAwID8gdGhpcy5zdG9yZUlkYXJyYXlbMF0gOiBudWxsO1xyXG4vLyAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLmZvbGRlckRhdGUgfHwgJyc7XHJcbi8vICAgY29uc3QgZ3JvdXBCeUtleSA9ICd0aW1lJztcclxuLy8gICBjb25zdCB0eXBlID0gJyc7XHJcbi8vICAgY29uc3QgcHJvY2Vzc1R5cGUgPSAnZm9vdGZhbGwnO1xyXG4vLyAgIHRoaXMucnZwc1NlcnZpY2UuZ2V0UnZwc0xpc3RBcGkoc3RvcmVJZCwgZGF0ZVN0cmluZywgZ3JvdXBCeUtleSwgdHlwZSwgcHJvY2Vzc1R5cGUpXHJcbi8vICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4vLyAgICAgICA/LnN1YnNjcmliZSh7XHJcbi8vICAgICAgICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuLy8gICAgICAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09PSAyMDApe1xyXG4vLyAgICAgICAgICAgICAgIHRoaXMuZ2V0UnZwc0xpc3QgPSByZXM/LmRhdGE7XHJcblxyXG4vLyB0aGlzLmdldFJ2cHNJbWFnZUxpc3QgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuXHJcbi8vIH0gZWxzZXtcclxuLy8gICB0aGlzLmdldFJ2cHNMaXN0ID1bXVxyXG4vLyAgIHRoaXMuZ2V0UnZwc0ltYWdlTGlzdCA9W11cclxuLy8gICAgICAgICAgICAgfVxyXG4vLyAgICAgICAgICAgfSxcclxuLy8gICAgICAgICAgIGVycm9yOihlcnIpID0+IHtcclxuICAgICAgICAgICAgXHJcbi8vICAgICAgICAgICB9LFxyXG5cclxuLy8gICAgICAgfSlcclxuLy8gfVxyXG5cclxuXHJcblxyXG4vLyBydnBzU2hvdyA9ZmFsc2U7XHJcbi8vICAgaW1hZ2VWaWV3UnZwcyhvYmo6IGFueSwgZm9vdGZhbGxEYXRlOiBhbnkpe1xyXG4vLyAgICAgLy8gdGhpcy5ydnBzU2hvdyA9IHRydWU7XHJcblxyXG4vLyAgICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKEltZ1J2cHNDb21wb25lbnQsIHtcclxuLy8gICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbi8vICAgICAgIHNpemU6IFwieGxcIixcclxuLy8gICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuLy8gICAgIH0pO1xyXG4vLyAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuSW1hZ2VkYXRhID0gb2JqO1xyXG4vLyAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UucHJvY2Vzc1R5cGUgPSB0aGlzLm9iakRhdGEucHJvY2Vzc1R5cGU7XHJcbi8vICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5mb290ZmFsbERhdGUgPSBmb290ZmFsbERhdGU7XHJcbi8vICAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5zdG9yZU5hbWUgPSB0aGlzLnN0b3JlQXJyYXlWYWx1ZTtcclxuLy8gICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnN0b3JlSWQgPSB0aGlzLnN0b3JlSWRhcnJheVxyXG4vLyAgICAgbW9kYWxSZWYuY29tcG9uZW50SW5zdGFuY2UuaGVhZGVyRGF0YSA9IHRoaXMuaGVhZGVyRGF0YTtcclxuLy8gICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLmltYWdlQXJyYXkgPSB0aGlzLmdldFJ2cHNJbWFnZUxpc3Q7XHJcbi8vICAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBtdC0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbXQtMyBweC0wIGJvcmRlci1ib3R0b20tMFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYWNjb3JkaW9uXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjdXN0b20tYWNjb3JkaW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmcgcGItMCBjdXN0b20tYWNjb3JkaW9uLWhlYWRlclwiIChjbGljayk9XCJ0b2dnbGVBY2NvcmRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWctZGlyZWNcIj5JbWFnZSBEaXJlY3Rvcnk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRpdmlkZXJcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWNjb3JkaW9uLWFycm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBEb3duIGFycm93IGZvciBjb2xsYXBzZWQgc3RhdGUsIHVwIGFycm93IGZvciBleHBhbmRlZCBzdGF0ZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDE2IDZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDFMNSA1TDkgMVwiIHN0cm9rZT1cIiMwNzE0MzdcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjZcIiBoZWlnaHQ9XCI2XCIgdmlld0JveD1cIjAgMCAxNiA2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMSA1TDUgMUw5IDVcIiBzdHJva2U9XCIjMWI4NGZmXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBcclxuICAgICAgICBcclxuICAgIDwvZGl2PlxyXG4gICBcclxuICAgIDxzZWN0aW9uICpuZ0lmPVwiaXNBY2NvcmRpb25FeHBhbmRlZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBweC01XCIgKm5nSWY9XCIhaGlkZURvY1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzd2l0Y2gtZm9ybS1jYXJkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDZcIiBoZWlnaHQ9XCI0NlwiIHZpZXdCb3g9XCIwIDAgNDYgNDZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCIyMFwiIGZpbGw9XCIjREFGMUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIzXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgcng9XCIyMFwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTIzLjgzMzMgMTQuNjY2NkwxNS41IDI0LjY2NjZIMjNMMjIuMTY2NyAzMS4zMzMzTDMwLjUgMjEuMzMzM0gyM0wyMy44MzMzIDE0LjY2NjZaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidHh0LW9uZSBtcy0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5FeGFtaW5lIGluZGl2aWR1YWwgZm9vdGZhbGwgaW4gZ2FsbGVyeSB2aWV3IHdpdGggb3B0aW1hbCBzYW1wbGUgaW1hZ2VzIGZvciBkZXRhaWxlZCBhbmFseXNpcy48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc011bHRpcGxlXCI+VXBsb2FkIG11bHRpcGxlIHN0b3JlcyBmb3IgY29uZmlndXJhdGlvbjwvbmctY29udGFpbmVyPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNsb3NlRGF0YSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE4LjI5NSA3LjExNUMxOC42ODQ0IDYuNzI1NjQgMTguNjg0NCA2LjA5NDM2IDE4LjI5NSA1LjcwNUMxNy45MDU2IDUuMzE1NjQgMTcuMjc0NCA1LjMxNTY0IDE2Ljg4NSA1LjcwNUwxMiAxMC41OUw3LjExNSA1LjcwNUM2LjcyNTY0IDUuMzE1NjQgNi4wOTQzNiA1LjMxNTY0IDUuNzA1IDUuNzA1QzUuMzE1NjQgNi4wOTQzNiA1LjMxNTY0IDYuNzI1NjQgNS43MDUgNy4xMTVMMTAuNTkgMTJMNS43MDUgMTYuODg1QzUuMzE1NjQgMTcuMjc0NCA1LjMxNTY0IDE3LjkwNTYgNS43MDUgMTguMjk1QzYuMDk0MzYgMTguNjg0NCA2LjcyNTY0IDE4LjY4NDQgNy4xMTUgMTguMjk1TDEyIDEzLjQxTDE2Ljg4NSAxOC4yOTVDMTcuMjc0NCAxOC42ODQ0IDE3LjkwNTYgMTguNjg0NCAxOC4yOTUgMTguMjk1QzE4LjY4NDQgMTcuOTA1NiAxOC42ODQ0IDE3LjI3NDQgMTguMjk1IDE2Ljg4NUwxMy40MSAxMkwxOC4yOTUgNy4xMTVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCIgLz5cclxuICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZm9sZGVyVmlld1wiIGNsYXNzPVwiY2FyZC1ib2R5IHB4LTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIG10LTUgdGV4dC1jZW50ZXJcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIGRhdGVBcnJheTtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXRpbWFnZXMoaSxvYmopXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImkgPT09IHNlbGVjdEluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+PHN2ZyB3aWR0aD1cIjU3XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU3IDU2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMC4xNTQyOTdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiByeD1cIjEyXCIgZmlsbD1cIiMzM0I1RkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzkuODIxNiAzNi4xNjY3QzM5LjgyMTYgMzYuNzg1NSAzOS41NzU4IDM3LjM3OSAzOS4xMzgyIDM3LjgxNjZDMzguNzAwNiAzOC4yNTQyIDM4LjEwNzEgMzguNSAzNy40ODgzIDM4LjVIMTguODIxNkMxOC4yMDI4IDM4LjUgMTcuNjA5MyAzOC4yNTQyIDE3LjE3MTcgMzcuODE2NkMxNi43MzQxIDM3LjM3OSAxNi40ODgzIDM2Ljc4NTUgMTYuNDg4MyAzNi4xNjY3VjE5LjgzMzNDMTYuNDg4MyAxOS4yMTQ1IDE2LjczNDEgMTguNjIxIDE3LjE3MTcgMTguMTgzNEMxNy42MDkzIDE3Ljc0NTggMTguMjAyOCAxNy41IDE4LjgyMTYgMTcuNUgyNC42NTQ5TDI2Ljk4ODMgMjFIMzcuNDg4M0MzOC4xMDcxIDIxIDM4LjcwMDYgMjEuMjQ1OCAzOS4xMzgyIDIxLjY4MzRDMzkuNTc1OCAyMi4xMjEgMzkuODIxNiAyMi43MTQ1IDM5LjgyMTYgMjMuMzMzM1YzNi4xNjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMi4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yXCI+e3tvYmogfCBkYXRlOidkZCBNTU0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSAhPT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHdpZHRoPVwiNTdcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTcgNTZcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjQ2Mjg5MVwiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiI0VBRjhGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00MC4xMzAyIDM2LjE2NjdDNDAuMTMwMiAzNi43ODU1IDM5Ljg4NDQgMzcuMzc5IDM5LjQ0NjggMzcuODE2NkMzOS4wMDkyIDM4LjI1NDIgMzguNDE1NyAzOC41IDM3Ljc5NjkgMzguNUgxOS4xMzAyQzE4LjUxMTQgMzguNSAxNy45MTc5IDM4LjI1NDIgMTcuNDgwMyAzNy44MTY2QzE3LjA0MjcgMzcuMzc5IDE2Ljc5NjkgMzYuNzg1NSAxNi43OTY5IDM2LjE2NjdWMTkuODMzM0MxNi43OTY5IDE5LjIxNDUgMTcuMDQyNyAxOC42MjEgMTcuNDgwMyAxOC4xODM0QzE3LjkxNzkgMTcuNzQ1OCAxOC41MTE0IDE3LjUgMTkuMTMwMiAxNy41SDI0Ljk2MzVMMjcuMjk2OSAyMUgzNy43OTY5QzM4LjQxNTcgMjEgMzkuMDA5MiAyMS4yNDU4IDM5LjQ0NjggMjEuNjgzNEMzOS44ODQ0IDIyLjEyMSA0MC4xMzAyIDIyLjcxNDUgNDAuMTMwMiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjIuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtMlwiPnt7b2JqIHwgZGF0ZTonZGQgTU1NJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4gICAgICAgXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCIhZm9sZGVyVmlld1wiIGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCIhaW1hZ2VGbG93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rLTAgbXQtMyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJiYWNrbmF2XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9Gb290ZmFsbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI1ODVfNzAzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNS44MzI3IDE5SDE0LjE2Nk0xNC4xNjYgMTlMMTkuOTk5MyAyNC44MzM0TTE0LjE2NiAxOUwxOS45OTkzIDEzLjE2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8yNTg1XzcwMzZcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWctZGlyZWMgbXMtMlwiPnt7Zm9sZGVyRGF0ZSB8IGRhdGU6J2RkIE1NTSwgeXl5eSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtcy1hdXRvIHRleHQtZW5kXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGZvcm0gKm5nSWY9XCIhbm9ybWFsaXplICYmICFjbGllbnREYXRhPy5pc0Zvb3RmYWxsVmlld1wiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RDb250cm9sXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZEZpZWxkXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhc2V0c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidy0xMDAgdGV4dC1zdGFydFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgIDxkaXYgIGNsYXNzPVwiZC1mbGV4IG10LTIgbWItMiB3LTEwMCBvdmVyZmxvdy14IHB4LTBcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGhpcy5oZWFkZXJEYXRhPy5jbGllbnQgIT09JzQ1OSdcIj5cclxuICAgICAgICA8ZGl2ICBjbGFzcz1cImNvbCB0ZXh0LW5vd3JhcFwiICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c0FycmF5XCI+XHJcbiAgICAgICAgICAgIDx1bCAqbmdJZj1cImxlbmd0aFZhbHVlXCIgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkVGltZXMob2JqLmZvbGRlck5hbWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdhY3RpdmUnIDogJydcIiBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBteC0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LmZvbGRlck5hbWV9fTxzcGFuIGNsYXNzPVwibXgtMiBcIiBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8uZm9sZGVyTmFtZSA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+e3tvYmo/LmNvdW50P29iaj8uY291bnQ6MH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRoaXMuaGVhZGVyRGF0YT8uY2xpZW50ID09PSc0NTknXCI+XHJcbiAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wgdGV4dC1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNBcnJheS5zbGljZSgwLCAtMSlcIj5cclxuICAgICAgICAgICAgPHVsICpuZ0lmPVwibGVuZ3RoVmFsdWVcIiBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUaW1lcyhvYmouZm9sZGVyTmFtZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2FjdGl2ZScgOiAnJ1wiIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8uZm9sZGVyTmFtZX19PHNwYW4gY2xhc3M9XCJteC0yIFwiIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy5mb2xkZXJOYW1lID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj57e29iaj8uY291bnQ/b2JqPy5jb3VudDowfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9ybWFsaXplXCIgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1ub2RhdGExXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvbm90LWFwcGxpY2FibGUuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZSBtdC0zXCI+RGF0YSBOb3QgRm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPk5vcm1hbGl6ZWQgZGF0YSBpcyBub3QgYXBwbGljYWJsZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIW5vcm1hbGl6ZVwiIGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXRpdGxlXCI+Tm8gZGF0YSBmb3VuZDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtc3ViXCI+VGhlcmUgaXMgbm8gcmVzdWx0IGZvciB0aGlzIGltYWdlIGRpcmVjdG9yeTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMCBpbWctdHJhZmZpYyBjb250YWluIGhpZ2gtNDAwcHggc2Nyb2xsLXlcIiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIj5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wtbWQtMyBib3JkZXItZ3JheSBteC0yIHAtMiBtdC01XCIgKm5nRm9yPVwibGV0IG9iaiBvZiBpbWFnZXNBcnJheURhdGFcIj5cclxuICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaGVhZGVyRGF0YT8uY2xpZW50ID09PScxMSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgKGVycm9yKT1cIm9iaj8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZVZpZXcob2JqLG9iakRhdGEuZm9vdGZhbGxEYXRlKVwiPiAgICA8IS0tKGNsaWNrKT1cImltYWdlVmlldyhvYmosb2JqRGF0YS5mb290ZmFsbERhdGUpXCIgLS0+XHJcbiAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaGVhZGVyRGF0YS5jbGllbnQgIT09JzExJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGltZyAqbmdJZj1cIm9iai5pbWFnZXMuZW50cnlUaW1lSW1hZ2UmJmNsaWVudERhdGE/LmlzUmV2b3BzXCIgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgKGVycm9yKT1cIm9iaj8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwib2JqLmltYWdlcy5lbnRyeVRpbWVJbWFnZSYmIWNsaWVudERhdGE/LmlzUmV2b3BzXCIgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgKGVycm9yKT1cIm9iaj8uaW1hZ2VzLmVudHJ5VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZVZpZXcob2JqLG9iakRhdGEuZm9vdGZhbGxEYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFvYmouaW1hZ2VzLmVudHJ5VGltZUltYWdlXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi01XCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi01IHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNSB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy1kaXJlY3RvcnlcIj48c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LWluZm9cIj57e29iai50ZW1wSWR9fTwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwic2VsZWN0Q29udHJvbC52YWx1ZSA9PT0nbWlzc2VkT3Bwb3J0dW5pdHknXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG1zLTJcIj5NaXNzZWQgT3Bwb3J0dW5pdHk8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdENvbnRyb2wudmFsdWUgPT09J2JvdW5jZWQnXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIG1zLTJcIj5Cb3VuY2VkIEZvb3RmYWxsPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlIHx8IHNlbGVjdENvbnRyb2wudmFsdWUgYXMgdmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBtcy0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXByaW1hcnknOiB2YWx1ZSA9PT0gJ2Zvb3RmYWxsJ3x8ICF2YWx1ZSAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1zdWNjZXNzJzogIHZhbHVlID09PSAncHVyY2hhc2VyJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXdhcm5pbmcnOiB2YWx1ZSA9PT0gJ25vblNob3BwZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFkZ2UtbGlnaHQtZGFuZ2VyJzogdmFsdWUgPT09ICdib3VuY2VkJyB8fCB2YWx1ZSA9PT0gJ2VuZ2FnZXInIHx8IHZhbHVlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknIHx8IHZhbHVlID09PSAnY29udmVyc2lvbicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAncHVyY2hhc2VyJyA/ICdQdXJjaGFzZXInIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9PT0gJ25vblNob3BwZXInID8gJ05vbiBTaG9wcGVyJyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgPyAnTWlzc2VkIE9wcG9ydHVuaXR5JyA6XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlIHwgdGl0bGVjYXNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+RW50cnkgVGltZTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+RXhpdCBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5Ub3RhbCBUaW1lIFNwZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC01IHRleHQtZW5kXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgbXQtNFwiICpuZ0lmPVwiIWNsaWVudERhdGE/LmlzUmV2b3BzXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTJcIiAqbmdJZj1cImNsaWVudERhdGE/LmlzUmV2b3BzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaGVhZGVyRGF0YS5jbGllbnQgPT09JzExJ1wiPlxyXG4gPHNwYW4gKm5nSWY9XCIhb2JqPy5yZXZvcHNUeXBlfHxvYmo/LnJldm9wc1R5cGU9PT0nJ1wiIG5nYlRvb2x0aXA9XCJZZXQgdG8gdGFnIHRoZSBjdXN0b21lclwiICBwbGFjZW1lbnQ9XCJ0b3BcIj4gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDMzNV8yMjg1MilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk04LjM3MzI4IDAuMDAyMDE2MDZDNy4yMDkzMiAtMC4wMjMzMTUgNi4wNTM4NSAwLjIwNTcxMSA0Ljk4NzU1IDAuNjczMTA2QzMuOTIxMjUgMS4xNDA1IDIuOTY5ODEgMS44MzUgMi4xOTk2NyAyLjcwODExQzEuNDI5NTIgMy41ODEyMyAwLjg1OTIyNSA0LjYxMTkyIDAuNTI4NTk2IDUuNzI4MjJDMC4xOTc5NjYgNi44NDQ1MyAwLjExNDk3MSA4LjAxOTU1IDAuMjg1NDA0IDkuMTcxMjRDMC40NTU4MzcgMTAuMzIyOSAwLjg3NTU5MSAxMS40MjM2IDEuNTE1MzYgMTIuMzk2M0MyLjE1NTEzIDEzLjM2OSAyLjk5OTUgMTQuMTkwMyAzLjk4OTUxIDE0LjgwMjlDNC45Nzk1MyAxNS40MTU2IDYuMDkxMzMgMTUuODA0OCA3LjI0NzMgMTUuOTQzM0M4LjQwMzI2IDE2LjA4MTggOS41NzU1NCAxNS45NjY0IDEwLjY4MjMgMTUuNjA1QzEwLjg3MTQgMTUuNTQzMiAxMS4wMjgyIDE1LjQwODggMTEuMTE4MiAxNS4yMzE0QzExLjIwODIgMTUuMDU0IDExLjIyNDEgMTQuODQ4MSAxMS4xNjIzIDE0LjY1OUMxMS4xMDA1IDE0LjQ2OTkgMTAuOTY2MSAxNC4zMTMxIDEwLjc4ODcgMTQuMjIzMUMxMC42MTEzIDE0LjEzMzEgMTAuNDA1NCAxNC4xMTcyIDEwLjIxNjMgMTQuMTc5QzkuMDEzNTkgMTQuNTcxNyA3LjcyMjQyIDE0LjYwNDkgNi41MDExNCAxNC4yNzQ1QzUuMjc5ODYgMTMuOTQ0MSA0LjE4MTU1IDEzLjI2NDQgMy4zNDA5MiAxMi4zMTg5QzIuNTAwMjggMTEuMzczNCAxLjk1Mzg2IDEwLjIwMzEgMS43Njg2NyA4Ljk1MTUxQzEuNTgzNDggNy42OTk5NSAxLjc2NzU3IDYuNDIxNTUgMi4yOTgzNyA1LjI3MzA5QzIuODI5MTYgNC4xMjQ2MyAzLjY4MzU4IDMuMTU2MDQgNC43NTY4NCAyLjQ4NjExQzUuODMwMTEgMS44MTYxOCA3LjA3NTU1IDEuNDc0MDMgOC4zNDA0NCAxLjUwMTYzQzkuNjA1MzMgMS41MjkyMiAxMC44MzQ3IDEuOTI1MzYgMTEuODc3NyAyLjY0MTQ3QzEyLjkyMDcgMy4zNTc1NyAxMy43MzIxIDQuMzYyNSAxNC4yMTIzIDUuNTMzMDJDMTQuMjg3NyA1LjcxNzA4IDE0LjQzMzIgNS44NjM2MiAxNC42MTY3IDUuOTQwNDJDMTQuNzA3NiA1Ljk3ODQ1IDE0LjgwNSA1Ljk5ODIgMTQuOTAzNSA1Ljk5ODU2QzE1LjAwMiA1Ljk5ODkyIDE1LjA5OTYgNS45Nzk4OCAxNS4xOTA4IDUuOTQyNTJDMTUuMjgxOSA1LjkwNTE2IDE1LjM2NDggNS44NTAyMSAxNS40MzQ3IDUuNzgwODJDMTUuNTA0NiA1LjcxMTQyIDE1LjU2MDIgNS42Mjg5NCAxNS41OTgyIDUuNTM4MDhDMTUuNjM2MiA1LjQ0NzIxIDE1LjY1NiA1LjM0OTc1IDE1LjY1NjMgNS4yNTEyNkMxNS42NTY3IDUuMTUyNzYgMTUuNjM3NiA1LjA1NTE1IDE1LjYwMDMgNC45NjQwMkMxNS4wMDkzIDMuNTIzMzEgMTQuMDEwNyAyLjI4NjM5IDEyLjcyNjkgMS40MDQ5OEMxMS40NDMyIDAuNTIzNTcxIDkuOTMwMTIgMC4wMzU5ODE1IDguMzczMjggMC4wMDIwMTYwNlpNOC45NDgyOCAzLjc1MDAyQzguOTQ4MjggMy41NTExIDguODY5MjYgMy4zNjAzNCA4LjcyODYxIDMuMjE5NjlDOC41ODc5NiAzLjA3OTAzIDguMzk3MTkgMy4wMDAwMiA4LjE5ODI4IDMuMDAwMDJDNy45OTkzNyAzLjAwMDAyIDcuODA4NiAzLjA3OTAzIDcuNjY3OTUgMy4yMTk2OUM3LjUyNzMgMy4zNjAzNCA3LjQ0ODI4IDMuNTUxMSA3LjQ0ODI4IDMuNzUwMDJWNy42OTAwMkw1LjQxNDI4IDkuNzIzMDJDNS4zNDA1OSA5Ljc5MTY4IDUuMjgxNDkgOS44NzQ0OCA1LjI0MDUgOS45NjY0OEM1LjE5OTUxIDEwLjA1ODUgNS4xNzc0NiAxMC4xNTc4IDUuMTc1NjkgMTAuMjU4NUM1LjE3MzkxIDEwLjM1OTIgNS4xOTI0NCAxMC40NTkyIDUuMjMwMTYgMTAuNTUyNkM1LjI2Nzg4IDEwLjY0NiA1LjMyNDAyIDEwLjczMDggNS4zOTUyNCAxMC44MDIxQzUuNDY2NDYgMTAuODczMyA1LjU1MTI5IDEwLjkyOTQgNS42NDQ2OCAxMC45NjcxQzUuNzM4MDcgMTEuMDA0OSA1LjgzODEgMTEuMDIzNCA1LjkzODggMTEuMDIxNkM2LjAzOTUxIDExLjAxOTggNi4xMzg4MiAxMC45OTc4IDYuMjMwODIgMTAuOTU2OEM2LjMyMjgyIDEwLjkxNTggNi40MDU2MiAxMC44NTY3IDYuNDc0MjggMTAuNzgzTDguNzI4MjggOC41MzAwMkw4Ljk0ODI4IDguMzEwMDJWMy43NTAwMlpNMTUuMTk4MyAxNUMxNS4xOTgzIDE1LjI2NTIgMTUuMDkyOSAxNS41MTk2IDE0LjkwNTQgMTUuNzA3MUMxNC43MTc5IDE1Ljg5NDcgMTQuNDYzNSAxNiAxNC4xOTgzIDE2QzEzLjkzMzEgMTYgMTMuNjc4NyAxNS44OTQ3IDEzLjQ5MTIgMTUuNzA3MUMxMy4zMDM2IDE1LjUxOTYgMTMuMTk4MyAxNS4yNjUyIDEzLjE5ODMgMTVDMTMuMTk4MyAxNC43MzQ4IDEzLjMwMzYgMTQuNDgwNCAxMy40OTEyIDE0LjI5MjlDMTMuNjc4NyAxNC4xMDU0IDEzLjkzMzEgMTQgMTQuMTk4MyAxNEMxNC40NjM1IDE0IDE0LjcxNzkgMTQuMTA1NCAxNC45MDU0IDE0LjI5MjlDMTUuMDkyOSAxNC40ODA0IDE1LjE5ODMgMTQuNzM0OCAxNS4xOTgzIDE1Wk0xNC45NDgzIDguNzUwMDJDMTQuOTQ4MyA4LjU1MTEgMTQuODY5MyA4LjM2MDM0IDE0LjcyODYgOC4yMTk2OUMxNC41ODggOC4wNzkwMyAxNC4zOTcyIDguMDAwMDIgMTQuMTk4MyA4LjAwMDAyQzEzLjk5OTQgOC4wMDAwMiAxMy44MDg2IDguMDc5MDMgMTMuNjY4IDguMjE5NjlDMTMuNTI3MyA4LjM2MDM0IDEzLjQ0ODMgOC41NTExIDEzLjQ0ODMgOC43NTAwMlYxMi4yNUMxMy40NDgzIDEyLjQ0ODkgMTMuNTI3MyAxMi42Mzk3IDEzLjY2OCAxMi43ODAzQzEzLjgwODYgMTIuOTIxIDEzLjk5OTQgMTMgMTQuMTk4MyAxM0MxNC4zOTcyIDEzIDE0LjU4OCAxMi45MjEgMTQuNzI4NiAxMi43ODAzQzE0Ljg2OTMgMTIuNjM5NyAxNC45NDgzIDEyLjQ0ODkgMTQuOTQ4MyAxMi4yNVY4Ljc1MDAyWlwiIGZpbGw9XCIjRjc5MDA5XCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTE1LjE4NTggNC4xMDM3OUMxNS4wOTk2IDMuOTQ5MDcgMTUuMDA4MyAzLjc5NzQ0IDE0LjkxMjEgMy42NDkxMUMxNC41NzQ3IDMuMTI4NDMgMTQuMTc3NiAyLjY0ODU0IDEzLjcyODkgMi4yMTkzMkMxMy40MTg3IDEuOTIyNTcgMTMuMDgzOSAxLjY1MDA0IDEyLjcyNjkgMS40MDQ5OEMxMi43MjY5IDEuNDA0OTMgMTIuNzI3IDEuNDA1MDQgMTIuNzI2OSAxLjQwNDk4QzEyLjUxNDQgMS4yNTkwNiAxMi4yOTU0IDEuMTIzNzkgMTIuMDcxMSAwLjk5OTcyOUMxMS44MjU1IDAuODYzODkzIDExLjU3MzQgMC43NDEzMjIgMTEuMzE1OSAwLjYzMjM3N0MxMC4zODgyIDAuMjM5ODczIDkuMzkwMDYgMC4wMjQxOTkgOC4zNzMyOCAwLjAwMjAxNjA2QzguMzczMjQgMC4wMDIwMTUxOCA4LjM3MzMyIDAuMDAyMDE2OTQgOC4zNzMyOCAwLjAwMjAxNjA2QzguMzE0OTYgMC4wMDA3NDc3OSA4LjI1NjU1IDAuMDAwMTE1Mzg3IDguMTk4MjggMC4wMDAxMjIxMjRDNy4xMjc2IDAuMDAwMjQ1OTIgNi4wNjc1NCAwLjIxNTMwNCA1LjA4MTA4IDAuNjMyODE2QzUuMDQ5ODMgMC42NDYwNDMgNS4wMTg2NSAwLjY1OTQ3MyA0Ljk4NzU1IDAuNjczMTA2QzQuNzYxMTUgMC43NzIzNDMgNC41Mzk5MyAwLjg4MTgyIDQuMzI0NTIgMS4wMDEwN0M0LjIwMjAxIDEuMDY4ODkgNC4wODEzOSAxLjEzOTg3IDMuOTYyNzUgMS4yMTM5M0MzLjMwNzU2IDEuNjIyOTYgMi43MTMyOSAyLjEyNTgxIDIuMTk5NjcgMi43MDgxMUMxLjY4NjAyIDMuMjkwNDMgMS4yNjEyNyAzLjk0Mjg1IDAuOTM3MjMyIDQuNjQ0QzAuNzc1NDE1IDQuOTk0MTQgMC42Mzg3MTMgNS4zNTY0MyAwLjUyODU5NiA1LjcyODIyQzAuMTk3OTkgNi44NDQ0NSAwLjExNDk4MyA4LjAxOTM4IDAuMjg1MzY2IDkuMTcwOTlDMC4yODUzNTQgOS4xNzA5MSAwLjI4NTM3OSA5LjE3MTA4IDAuMjg1MzY2IDkuMTcwOTlDMC40NTU4IDEwLjMyMjcgMC44NzU1OTEgMTEuNDIzNiAxLjUxNTM2IDEyLjM5NjNDMS43MjgzNSAxMi43MjAxIDEuOTY0MDIgMTMuMDI3MSAyLjIyMDE5IDEzLjMxNTNDMi43MzM0OSAxMy44OTI3IDMuMzI5MDkgMTQuMzk0MyAzLjk4OTUxIDE0LjgwMjlDNC42NDk2NyAxNS4yMTE1IDUuMzYzOTggMTUuNTIwNiA2LjEwOTQzIDE1LjcyMjRDNi40ODE5IDE1LjgyMzIgNi44NjIxNSAxNS44OTcxIDcuMjQ3MyAxNS45NDMzQzcuMjkxMjMgMTUuOTQ4NiA3LjMzNTE5IDE1Ljk1MzUgNy4zNzkxNyAxNS45NThDOC4wMTQ5MiAxNi4wMjM1IDguNjU0NjQgMTYuMDEyNCA5LjI4NDc4IDE1LjkyNjFDOS41MjE0NiAxNS44OTM3IDkuNzU2NzggMTUuODUwNyA5Ljk5MDA0IDE1Ljc5NzFDMTAuMjIzIDE1Ljc0MzYgMTAuNDUzOSAxNS42Nzk2IDEwLjY4MTkgMTUuNjA1MUMxMC42ODE4IDE1LjYwNTIgMTAuNjgyMSAxNS42MDUxIDEwLjY4MTkgMTUuNjA1MUMxMC43MTk2IDE1LjU5MjggMTAuNzU2MyAxNS41Nzc1IDEwLjc5MTEgMTUuNTU5N0MxMC45MzEyIDE1LjQ4OCAxMS4wNDYxIDE1LjM3MzUgMTEuMTE4MiAxNS4yMzE0QzExLjE1NTQgMTUuMTU4MSAxMS4xOCAxNS4wNzk5IDExLjE5MTYgMTVDMTEuMjA4MSAxNC44ODY3IDExLjE5ODUgMTQuNzcgMTEuMTYyMyAxNC42NTlDMTEuMTAwNSAxNC40Njk5IDEwLjk2NjEgMTQuMzEzMSAxMC43ODg3IDE0LjIyMzFDMTAuNjExNCAxNC4xMzMxIDEwLjQwNTYgMTQuMTE3MiAxMC4yMTY2IDE0LjE3ODlDMTAuMjE2NSAxNC4xNzg5IDEwLjIxNjggMTQuMTc4OSAxMC4yMTY2IDE0LjE3ODlDMTAuMTEyMSAxNC4yMTMgMTAuMDA2NSAxNC4yNDQ2IDkuOTAwNzMgMTQuMjczM0M5Ljc0ODQ4IDE0LjMxNDYgOS41OTUwNiAxNC4zNTAzIDkuNDQwNzggMTQuMzgwM0M5LjM3MTQ2IDE0LjM5MzggOS4zMDE5NiAxNC40MDYyIDkuMjMyMzMgMTQuNDE3NEM4Ljg1NDggMTQuNDc4MiA4LjQ3MzAyIDE0LjUwNTUgOC4wOTE0NCAxNC40OTkyQzcuOTk1NjggMTQuNDk3NiA3Ljg5OTkyIDE0LjQ5MzkgNy44MDQyNiAxNC40ODgxQzcuNjc3OSAxNC40ODA0IDcuNTUxNjggMTQuNDY5MSA3LjQyNTc4IDE0LjQ1NEM3LjM2MTMzIDE0LjQ0NjMgNy4yOTY5NiAxNC40Mzc2IDcuMjMyNjkgMTQuNDI3OUM2Ljk4NjkzIDE0LjM5MSA2Ljc0MjY3IDE0LjMzOTkgNi41MDExNCAxNC4yNzQ1QzYuMzI5MzMgMTQuMjI4IDYuMTU5OTUgMTQuMTc0NiA1Ljk5MzM3IDE0LjExNDZDNS41NjgwOSAxMy45NjEyIDUuMTYxMTIgMTMuNzY0MiA0Ljc3ODcgMTMuNTI3NkM0LjczMzczIDEzLjQ5OTggNC42ODkxMSAxMy40NzE0IDQuNjQ0ODMgMTMuNDQyNUM0LjI3MDAzIDEzLjE5NzggMy45MjAyOCAxMi45MTQyIDMuNjAxNzQgMTIuNTk1NkMzLjUxMjI5IDEyLjUwNjEgMy40MjUzMSAxMi40MTM4IDMuMzQwOTIgMTIuMzE4OUMzLjEzMTM5IDEyLjA4MzIgMi45NDAxNCAxMS44MzM2IDIuNzY4MjEgMTEuNTcyMkMyLjc2Mzg1IDExLjU2NTYgMi43NTk1IDExLjU1OSAyLjc1NTE2IDExLjU1MjNDMi40Nzk2NCAxMS4xMzAxIDIuMjU0MzcgMTAuNjc3NSAyLjA4MzY4IDEwLjIwMzlDMS45MzgwNyA5Ljc5OTkzIDEuODMyMTggOS4zODA2MSAxLjc2ODcxIDguOTUxNzRDMS43Njg2OSA4Ljk1MTY2IDEuNzY4NzIgOC45NTE4MiAxLjc2ODcxIDguOTUxNzRDMS43NDEyNSA4Ljc2NjIxIDEuNzIxODggOC41Nzk4NiAxLjcxMDU5IDguMzkzNjdDMS43MDQ3MSA4LjI5NjgzIDEuNzAxMDEgOC4xOTk5OCAxLjY5OTQ4IDguMTAzMTdDMS42ODkwMiA3LjQ0MzU1IDEuNzc5MDUgNi43ODYyNiAxLjk2NjMxIDYuMTU0MDVDMi4wNTUyIDUuODUzOTQgMi4xNjYwMSA1LjU1OTQ3IDIuMjk4MzcgNS4yNzMwOUMyLjU2Mzc4IDQuNjk4ODMgMi45MTAxMSA0LjE2OTU0IDMuMzI0MjUgMy43MDAwN0MzLjM2NjE4IDMuNjUyNTQgMy40MDg4IDMuNjA1NjMgMy40NTIxIDMuNTU5MzRDMy44MzY0OSAzLjE0ODQ4IDQuMjc0NTggMi43ODcxNCA0Ljc1Njg0IDIuNDg2MTFDNS4wMjQ1MiAyLjMxOTAzIDUuMzAyOTEgMi4xNzIzMyA1LjU4OTYzIDIuMDQ2NjhDNS44MDQ3MSAxLjk1MjQyIDYuMDI0NDkgMS44NyA2LjI0Nzk2IDEuNzk5N0M2Ljg3NjI4IDEuNjAyMDIgNy41MzM4IDEuNTAwMTIgOC4xOTgyOCAxLjUwMDA4QzguMjQ1NjMgMS41MDAwOCA4LjI5MzAyIDEuNTAwNTkgOC4zNDA0NCAxLjUwMTYzQzguOTU3NDUgMS41MTUxMSA5LjU2NjIgMS42MTYyOSAxMC4xNDg4IDEuNzk5NTJDMTAuNzYwNSAxLjk5MTg5IDExLjM0MzUgMi4yNzQ3MiAxMS44Nzc3IDIuNjQxNDdDMTEuODc3NiAyLjY0MTQyIDExLjg3NzggMi42NDE1MSAxMS44Nzc3IDIuNjQxNDdDMTIuMDgzOSAyLjc4MzA0IDEyLjI4MTIgMi45MzYwMyAxMi40Njg1IDMuMDk5MjJDMTIuNjM1MSAzLjI0NDM2IDEyLjc5MzkgMy4zOTc2NyAxMi45NDQ0IDMuNTU4NDhDMTMuMDk3NCAzLjcyMTk3IDEzLjI0MTkgMy44OTMyMiAxMy4zNzcxIDQuMDcxNTJDMTMuNTU1NSA0LjMwNjYgMTMuNzE3OSA0LjU1Mzk1IDEzLjg2MzEgNC44MTE5NUMxMy45NDI3IDQuOTUzMzYgMTQuMDE3MSA1LjA5Nzk4IDE0LjA4NjEgNS4yNDU1MkMxNC4xMjUzIDUuMzI5MTQgMTQuMTYyNyA1LjQxMzcxIDE0LjE5ODMgNS40OTkxNkMxNC4yMDMgNS41MTA0MyAxNC4yMDc2IDUuNTIxNzIgMTQuMjEyMyA1LjUzMzAyQzE0LjIxMjIgNS41MzI5MiAxNC4yMTIzIDUuNTMzMTIgMTQuMjEyMyA1LjUzMzAyQzE0LjI4NzggNS43MTY5MyAxNC40MzMzIDUuODYzNjcgMTQuNjE2NyA1Ljk0MDQyQzE0LjcwNzYgNS45Nzg0NSAxNC44MDUgNS45OTgyIDE0LjkwMzUgNS45OTg1NkMxNS4wMDIgNS45OTg5MiAxNS4wOTk2IDUuOTc5ODggMTUuMTkwOCA1Ljk0MjUyQzE1LjI4MTkgNS45MDUxNiAxNS4zNjQ4IDUuODUwMjEgMTUuNDM0NyA1Ljc4MDgyQzE1LjUwNDYgNS43MTE0MiAxNS41NjAyIDUuNjI4OTQgMTUuNTk4MiA1LjUzODA4QzE1LjYzNjIgNS40NDcyMiAxNS42NTYgNS4zNDk3NSAxNS42NTYzIDUuMjUxMjZDMTUuNjU2NyA1LjE1Mjc2IDE1LjYzNzYgNS4wNTUxNiAxNS42MDAzIDQuOTY0MDJDMTUuNjAwMiA0Ljk2MzkgMTUuNjAwMyA0Ljk2NDE0IDE1LjYwMDMgNC45NjQwMkMxNS41MDkxIDQuNzQxODcgMTUuNDA4MiA0LjUyNDIgMTUuMjk4MSA0LjMxMjI5QzE1LjI2MTcgNC4yNDIyIDE1LjIyNDIgNC4xNzI2OSAxNS4xODU4IDQuMTAzNzlaTTguOTQ4MjggMy43NTAwMkM4Ljk0ODI4IDMuNTUxMSA4Ljg2OTI2IDMuMzYwMzQgOC43Mjg2MSAzLjIxOTY5QzguNjE0MDUgMy4xMDUxMiA4LjQ2NjI0IDMuMDMxNDUgOC4zMDc4NiAzLjAwODA2QzguMjcxODggMy4wMDI3NiA4LjIzNTA4IDMuMDAwMDIgOC4xOTgyOCAzLjAwMDAyQzcuOTk5MzcgMy4wMDAwMiA3LjgwODYgMy4wNzkwMyA3LjY2Nzk1IDMuMjE5NjlDNy41MjczIDMuMzYwMzQgNy40NDgyOCAzLjU1MTEgNy40NDgyOCAzLjc1MDAyVjcuNjkwMDJMNS40MTQ1MiA5LjcyMjc4QzUuNDAxNTkgOS43MzQ4MyA1LjM4ODg3IDkuNzQ3NTUgNS4zNzY4NiA5Ljc2MDQ0QzUuMzIwNDEgOS44MjEwMiA1LjI3NDMgOS44OTA2MiA1LjI0MDUgOS45NjY0OEM1LjE5OTUxIDEwLjA1ODUgNS4xNzc0NiAxMC4xNTc4IDUuMTc1NjkgMTAuMjU4NUM1LjE3MzkxIDEwLjM1OTIgNS4xOTI0NCAxMC40NTkyIDUuMjMwMTYgMTAuNTUyNkM1LjIzODYzIDEwLjU3MzYgNS4yNDgwNCAxMC41OTQyIDUuMjU4MzQgMTAuNjE0MkM1LjI5Mzg3IDEwLjY4MzQgNS4zNDAwMiAxMC43NDY4IDUuMzk1MjQgMTAuODAyMUM1LjQ2NjQ2IDEwLjg3MzMgNS41NTEyOSAxMC45Mjk0IDUuNjQ0NjggMTAuOTY3MUM1LjczODA3IDExLjAwNDkgNS44MzgxIDExLjAyMzQgNS45Mzg4IDExLjAyMTZDNi4wMzk1MSAxMS4wMTk4IDYuMTM4ODIgMTAuOTk3OCA2LjIzMDgyIDEwLjk1NjhDNi4zMDY2OCAxMC45MjMgNi4zNzYyOCAxMC44NzY5IDYuNDM2ODYgMTAuODIwNEM2LjQ0OTY2IDEwLjgwODUgNi40NjIwNiAxMC43OTYxIDYuNDc0MDMgMTAuNzgzM0M2LjQ3Mzk1IDEwLjc4MzQgNi40NzQxMSAxMC43ODMyIDYuNDc0MDMgMTAuNzgzM0w4Ljk0ODI4IDguMzEwMDJWMy43NTAwMlpNMTMuNDQ4MyAxMi4yNUMxMy40NDgzIDEyLjQ0ODkgMTMuNTI3MyAxMi42Mzk3IDEzLjY2OCAxMi43ODAzQzEzLjgwODYgMTIuOTIxIDEzLjk5OTQgMTMgMTQuMTk4MyAxM0MxNC4zODk1IDEzIDE0LjU3MzIgMTIuOTI3IDE0LjcxMjEgMTIuNzk2M0MxNC43MTc3IDEyLjc5MTEgMTQuNzIzMiAxMi43ODU4IDE0LjcyODYgMTIuNzgwM0MxNC44NjkzIDEyLjYzOTcgMTQuOTQ4MyAxMi40NDg5IDE0Ljk0ODMgMTIuMjVWMTAuMDU2NkMxNC43MDE1IDEwLjAxOTEgMTQuNDUwOSAxMCAxNC4xOTgzIDEwQzEzLjk0NTcgMTAgMTMuNjk1IDEwLjAxOTEgMTMuNDQ4MyAxMC4wNTY2VjEyLjI1Wk0xMy40NDgzIDkuNzY5MjdDMTMuNjkzMiA5Ljg0ODI4IDEzLjk0NDEgOS45MDcxOSAxNC4xOTgzIDkuOTQ1NTFDMTQuNDI2NCA5Ljk3OTg5IDE0LjY1NzIgOS45OTc2OSAxNC44ODg5IDkuOTk4NTRDMTQuOTA4NyA5Ljk5ODYxIDE0LjkyODUgOS45OTg1NiAxNC45NDgzIDkuOTk4MzhWOC43NTAwMkMxNC45NDgzIDguNjUzNTYgMTQuOTI5NyA4LjU1OTAxIDE0Ljg5NDUgOC40NzExN0MxNC44NTcxIDguMzc3ODcgMTQuODAxMSA4LjI5MjEzIDE0LjcyODYgOC4yMTk2OUMxNC41ODggOC4wNzkwNCAxNC4zOTcyIDguMDAwMDIgMTQuMTk4MyA4LjAwMDAyQzEzLjk5OTQgOC4wMDAwMiAxMy44MDg2IDguMDc5MDQgMTMuNjY4IDguMjE5NjlDMTMuNjY1IDguMjIyNjggMTMuNjYyIDguMjI1NjkgMTMuNjU5MSA4LjIyODcyQzEzLjUyODIgOC4zNjQxIDEzLjQ1MyA4LjU0Mzc2IDEzLjQ0ODUgOC43MzE4OEMxMy40NDg0IDguNzM3OTIgMTMuNDQ4MyA4Ljc0Mzk3IDEzLjQ0ODMgOC43NTAwMlY5Ljc2OTI3Wk0xNS4xOTYzIDE1LjA2MjZDMTUuMTk3NiAxNS4wNDE4IDE1LjE5ODMgMTUuMDIwOSAxNS4xOTgzIDE1QzE1LjE5ODMgMTQuOTk4NCAxNS4xOTgzIDE0Ljk5NjggMTUuMTk4MyAxNC45OTUxQzE1LjE5NyAxNC43MzE3IDE1LjA5MTggMTQuNDc5MyAxNC45MDU0IDE0LjI5MjlDMTQuNzE3OCAxNC4xMDU0IDE0LjQ2MzUgMTQgMTQuMTk4MyAxNEMxMy45MzMxIDE0IDEzLjY3ODcgMTQuMTA1NCAxMy40OTEyIDE0LjI5MjlDMTMuMzAzNiAxNC40ODA0IDEzLjE5ODMgMTQuNzM0OCAxMy4xOTgzIDE1QzEzLjE5ODMgMTUuMjY1MiAxMy4zMDM2IDE1LjUxOTYgMTMuNDkxMiAxNS43MDcxQzEzLjY3ODcgMTUuODk0NyAxMy45MzMxIDE2IDE0LjE5ODMgMTZDMTQuNDYzNSAxNiAxNC43MTc4IDE1Ljg5NDcgMTQuOTA1NCAxNS43MDcxQzE1LjA3ODEgMTUuNTM0NCAxNS4xODExIDE1LjMwNSAxNS4xOTYzIDE1LjA2MjZaXCIgZmlsbD1cIiNGNzkwMDlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAzMzVfMjI4NTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMTk5MjE5KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSYmb2JqPy5yZXZvcHNUeXBlIT09JydcIiAgbmdiVG9vbHRpcD1cIkN1c3RvbWVyIFRhZ2dpbmcgaXMgRG9uZVwiICBwbGFjZW1lbnQ9XCJ0b3BcIj4gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDMzNV8yMjg1NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuMDYzOCA3LjM4NjYyVjcuOTk5OTVDMTUuMDYzIDkuNDM3NTYgMTQuNTk3NSAxMC44MzY0IDEzLjczNjcgMTEuOTg3OEMxMi44NzU5IDEzLjEzOTMgMTEuNjY2IDEzLjk4MTYgMTAuMjg3NCAxNC4zODkyQzguOTA4NzYgMTQuNzk2OCA3LjQzNTMxIDE0Ljc0NzkgNi4wODY3OCAxNC4yNDk3QzQuNzM4MjYgMTMuNzUxNSAzLjU4NjkxIDEyLjgzMDcgMi44MDQ0NCAxMS42MjQ3QzIuMDIxOTggMTAuNDE4NiAxLjY1MDMzIDguOTkxOTkgMS43NDQ5MiA3LjU1NzQ5QzEuODM5NTEgNi4xMjI5OSAyLjM5NTI3IDQuNzU3NSAzLjMyOTMyIDMuNjY0NjdDNC4yNjMzNyAyLjU3MTgzIDUuNTI1NjYgMS44MTAyMSA2LjkyNzkzIDEuNDkzMzhDOC4zMzAyIDEuMTc2NTYgOS43OTczMSAxLjMyMTUxIDExLjExMDUgMS45MDY2Mk0xNS4wNjM4IDIuNjY2NjJMOC4zOTcxNCA5LjMzOTk1TDYuMzk3MTQgNy4zMzk5NVwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAzMzVfMjI4NTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMzk4NDM4KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJoZWFkZXJEYXRhLmNsaWVudCAhPT0nMTEnXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKm5nSWY9XCIhb2JqPy5yZXZvcHNUeXBlfHxvYmo/LnJldm9wc1R5cGU9PT0nJ1wiIG5nYlRvb2x0aXA9XCJZZXQgdG8gdGFnIHRoZSBjdXN0b21lclwiIChjbGljayk9XCJyZXZvcFRhZ2dpbmcob2JqKVwiIHBsYWNlbWVudD1cInRvcFwiPiA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE3XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE3IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzEwMzM1XzIyODUyKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTguMzczMjggMC4wMDIwMTYwNkM3LjIwOTMyIC0wLjAyMzMxNSA2LjA1Mzg1IDAuMjA1NzExIDQuOTg3NTUgMC42NzMxMDZDMy45MjEyNSAxLjE0MDUgMi45Njk4MSAxLjgzNSAyLjE5OTY3IDIuNzA4MTFDMS40Mjk1MiAzLjU4MTIzIDAuODU5MjI1IDQuNjExOTIgMC41Mjg1OTYgNS43MjgyMkMwLjE5Nzk2NiA2Ljg0NDUzIDAuMTE0OTcxIDguMDE5NTUgMC4yODU0MDQgOS4xNzEyNEMwLjQ1NTgzNyAxMC4zMjI5IDAuODc1NTkxIDExLjQyMzYgMS41MTUzNiAxMi4zOTYzQzIuMTU1MTMgMTMuMzY5IDIuOTk5NSAxNC4xOTAzIDMuOTg5NTEgMTQuODAyOUM0Ljk3OTUzIDE1LjQxNTYgNi4wOTEzMyAxNS44MDQ4IDcuMjQ3MyAxNS45NDMzQzguNDAzMjYgMTYuMDgxOCA5LjU3NTU0IDE1Ljk2NjQgMTAuNjgyMyAxNS42MDVDMTAuODcxNCAxNS41NDMyIDExLjAyODIgMTUuNDA4OCAxMS4xMTgyIDE1LjIzMTRDMTEuMjA4MiAxNS4wNTQgMTEuMjI0MSAxNC44NDgxIDExLjE2MjMgMTQuNjU5QzExLjEwMDUgMTQuNDY5OSAxMC45NjYxIDE0LjMxMzEgMTAuNzg4NyAxNC4yMjMxQzEwLjYxMTMgMTQuMTMzMSAxMC40MDU0IDE0LjExNzIgMTAuMjE2MyAxNC4xNzlDOS4wMTM1OSAxNC41NzE3IDcuNzIyNDIgMTQuNjA0OSA2LjUwMTE0IDE0LjI3NDVDNS4yNzk4NiAxMy45NDQxIDQuMTgxNTUgMTMuMjY0NCAzLjM0MDkyIDEyLjMxODlDMi41MDAyOCAxMS4zNzM0IDEuOTUzODYgMTAuMjAzMSAxLjc2ODY3IDguOTUxNTFDMS41ODM0OCA3LjY5OTk1IDEuNzY3NTcgNi40MjE1NSAyLjI5ODM3IDUuMjczMDlDMi44MjkxNiA0LjEyNDYzIDMuNjgzNTggMy4xNTYwNCA0Ljc1Njg0IDIuNDg2MTFDNS44MzAxMSAxLjgxNjE4IDcuMDc1NTUgMS40NzQwMyA4LjM0MDQ0IDEuNTAxNjNDOS42MDUzMyAxLjUyOTIyIDEwLjgzNDcgMS45MjUzNiAxMS44Nzc3IDIuNjQxNDdDMTIuOTIwNyAzLjM1NzU3IDEzLjczMjEgNC4zNjI1IDE0LjIxMjMgNS41MzMwMkMxNC4yODc3IDUuNzE3MDggMTQuNDMzMiA1Ljg2MzYyIDE0LjYxNjcgNS45NDA0MkMxNC43MDc2IDUuOTc4NDUgMTQuODA1IDUuOTk4MiAxNC45MDM1IDUuOTk4NTZDMTUuMDAyIDUuOTk4OTIgMTUuMDk5NiA1Ljk3OTg4IDE1LjE5MDggNS45NDI1MkMxNS4yODE5IDUuOTA1MTYgMTUuMzY0OCA1Ljg1MDIxIDE1LjQzNDcgNS43ODA4MkMxNS41MDQ2IDUuNzExNDIgMTUuNTYwMiA1LjYyODk0IDE1LjU5ODIgNS41MzgwOEMxNS42MzYyIDUuNDQ3MjEgMTUuNjU2IDUuMzQ5NzUgMTUuNjU2MyA1LjI1MTI2QzE1LjY1NjcgNS4xNTI3NiAxNS42Mzc2IDUuMDU1MTUgMTUuNjAwMyA0Ljk2NDAyQzE1LjAwOTMgMy41MjMzMSAxNC4wMTA3IDIuMjg2MzkgMTIuNzI2OSAxLjQwNDk4QzExLjQ0MzIgMC41MjM1NzEgOS45MzAxMiAwLjAzNTk4MTUgOC4zNzMyOCAwLjAwMjAxNjA2Wk04Ljk0ODI4IDMuNzUwMDJDOC45NDgyOCAzLjU1MTEgOC44NjkyNiAzLjM2MDM0IDguNzI4NjEgMy4yMTk2OUM4LjU4Nzk2IDMuMDc5MDMgOC4zOTcxOSAzLjAwMDAyIDguMTk4MjggMy4wMDAwMkM3Ljk5OTM3IDMuMDAwMDIgNy44MDg2IDMuMDc5MDMgNy42Njc5NSAzLjIxOTY5QzcuNTI3MyAzLjM2MDM0IDcuNDQ4MjggMy41NTExIDcuNDQ4MjggMy43NTAwMlY3LjY5MDAyTDUuNDE0MjggOS43MjMwMkM1LjM0MDU5IDkuNzkxNjggNS4yODE0OSA5Ljg3NDQ4IDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjY3ODggMTAuNjQ2IDUuMzI0MDIgMTAuNzMwOCA1LjM5NTI0IDEwLjgwMjFDNS40NjY0NiAxMC44NzMzIDUuNTUxMjkgMTAuOTI5NCA1LjY0NDY4IDEwLjk2NzFDNS43MzgwNyAxMS4wMDQ5IDUuODM4MSAxMS4wMjM0IDUuOTM4OCAxMS4wMjE2QzYuMDM5NTEgMTEuMDE5OCA2LjEzODgyIDEwLjk5NzggNi4yMzA4MiAxMC45NTY4QzYuMzIyODIgMTAuOTE1OCA2LjQwNTYyIDEwLjg1NjcgNi40NzQyOCAxMC43ODNMOC43MjgyOCA4LjUzMDAyTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xNS4xOTgzIDE1QzE1LjE5ODMgMTUuMjY1MiAxNS4wOTI5IDE1LjUxOTYgMTQuOTA1NCAxNS43MDcxQzE0LjcxNzkgMTUuODk0NyAxNC40NjM1IDE2IDE0LjE5ODMgMTZDMTMuOTMzMSAxNiAxMy42Nzg3IDE1Ljg5NDcgMTMuNDkxMiAxNS43MDcxQzEzLjMwMzYgMTUuNTE5NiAxMy4xOTgzIDE1LjI2NTIgMTMuMTk4MyAxNUMxMy4xOTgzIDE0LjczNDggMTMuMzAzNiAxNC40ODA0IDEzLjQ5MTIgMTQuMjkyOUMxMy42Nzg3IDE0LjEwNTQgMTMuOTMzMSAxNCAxNC4xOTgzIDE0QzE0LjQ2MzUgMTQgMTQuNzE3OSAxNC4xMDU0IDE0LjkwNTQgMTQuMjkyOUMxNS4wOTI5IDE0LjQ4MDQgMTUuMTk4MyAxNC43MzQ4IDE1LjE5ODMgMTVaTTE0Ljk0ODMgOC43NTAwMkMxNC45NDgzIDguNTUxMSAxNC44NjkzIDguMzYwMzQgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTAzIDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwMyAxMy42NjggOC4yMTk2OUMxMy41MjczIDguMzYwMzQgMTMuNDQ4MyA4LjU1MTEgMTMuNDQ4MyA4Ljc1MDAyVjEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM5NzIgMTMgMTQuNTg4IDEyLjkyMSAxNC43Mjg2IDEyLjc4MDNDMTQuODY5MyAxMi42Mzk3IDE0Ljk0ODMgMTIuNDQ4OSAxNC45NDgzIDEyLjI1VjguNzUwMDJaXCIgZmlsbD1cIiNGNzkwMDlcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTUuMTg1OCA0LjEwMzc5QzE1LjA5OTYgMy45NDkwNyAxNS4wMDgzIDMuNzk3NDQgMTQuOTEyMSAzLjY0OTExQzE0LjU3NDcgMy4xMjg0MyAxNC4xNzc2IDIuNjQ4NTQgMTMuNzI4OSAyLjIxOTMyQzEzLjQxODcgMS45MjI1NyAxMy4wODM5IDEuNjUwMDQgMTIuNzI2OSAxLjQwNDk4QzEyLjcyNjkgMS40MDQ5MyAxMi43MjcgMS40MDUwNCAxMi43MjY5IDEuNDA0OThDMTIuNTE0NCAxLjI1OTA2IDEyLjI5NTQgMS4xMjM3OSAxMi4wNzExIDAuOTk5NzI5QzExLjgyNTUgMC44NjM4OTMgMTEuNTczNCAwLjc0MTMyMiAxMS4zMTU5IDAuNjMyMzc3QzEwLjM4ODIgMC4yMzk4NzMgOS4zOTAwNiAwLjAyNDE5OSA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zNzMyNCAwLjAwMjAxNTE4IDguMzczMzIgMC4wMDIwMTY5NCA4LjM3MzI4IDAuMDAyMDE2MDZDOC4zMTQ5NiAwLjAwMDc0Nzc5IDguMjU2NTUgMC4wMDAxMTUzODcgOC4xOTgyOCAwLjAwMDEyMjEyNEM3LjEyNzYgMC4wMDAyNDU5MiA2LjA2NzU0IDAuMjE1MzA0IDUuMDgxMDggMC42MzI4MTZDNS4wNDk4MyAwLjY0NjA0MyA1LjAxODY1IDAuNjU5NDczIDQuOTg3NTUgMC42NzMxMDZDNC43NjExNSAwLjc3MjM0MyA0LjUzOTkzIDAuODgxODIgNC4zMjQ1MiAxLjAwMTA3QzQuMjAyMDEgMS4wNjg4OSA0LjA4MTM5IDEuMTM5ODcgMy45NjI3NSAxLjIxMzkzQzMuMzA3NTYgMS42MjI5NiAyLjcxMzI5IDIuMTI1ODEgMi4xOTk2NyAyLjcwODExQzEuNjg2MDIgMy4yOTA0MyAxLjI2MTI3IDMuOTQyODUgMC45MzcyMzIgNC42NDRDMC43NzU0MTUgNC45OTQxNCAwLjYzODcxMyA1LjM1NjQzIDAuNTI4NTk2IDUuNzI4MjJDMC4xOTc5OSA2Ljg0NDQ1IDAuMTE0OTgzIDguMDE5MzggMC4yODUzNjYgOS4xNzA5OUMwLjI4NTM1NCA5LjE3MDkxIDAuMjg1Mzc5IDkuMTcxMDggMC4yODUzNjYgOS4xNzA5OUMwLjQ1NTggMTAuMzIyNyAwLjg3NTU5MSAxMS40MjM2IDEuNTE1MzYgMTIuMzk2M0MxLjcyODM1IDEyLjcyMDEgMS45NjQwMiAxMy4wMjcxIDIuMjIwMTkgMTMuMzE1M0MyLjczMzQ5IDEzLjg5MjcgMy4zMjkwOSAxNC4zOTQzIDMuOTg5NTEgMTQuODAyOUM0LjY0OTY3IDE1LjIxMTUgNS4zNjM5OCAxNS41MjA2IDYuMTA5NDMgMTUuNzIyNEM2LjQ4MTkgMTUuODIzMiA2Ljg2MjE1IDE1Ljg5NzEgNy4yNDczIDE1Ljk0MzNDNy4yOTEyMyAxNS45NDg2IDcuMzM1MTkgMTUuOTUzNSA3LjM3OTE3IDE1Ljk1OEM4LjAxNDkyIDE2LjAyMzUgOC42NTQ2NCAxNi4wMTI0IDkuMjg0NzggMTUuOTI2MUM5LjUyMTQ2IDE1Ljg5MzcgOS43NTY3OCAxNS44NTA3IDkuOTkwMDQgMTUuNzk3MUMxMC4yMjMgMTUuNzQzNiAxMC40NTM5IDE1LjY3OTYgMTAuNjgxOSAxNS42MDUxQzEwLjY4MTggMTUuNjA1MiAxMC42ODIxIDE1LjYwNTEgMTAuNjgxOSAxNS42MDUxQzEwLjcxOTYgMTUuNTkyOCAxMC43NTYzIDE1LjU3NzUgMTAuNzkxMSAxNS41NTk3QzEwLjkzMTIgMTUuNDg4IDExLjA0NjEgMTUuMzczNSAxMS4xMTgyIDE1LjIzMTRDMTEuMTU1NCAxNS4xNTgxIDExLjE4IDE1LjA3OTkgMTEuMTkxNiAxNUMxMS4yMDgxIDE0Ljg4NjcgMTEuMTk4NSAxNC43NyAxMS4xNjIzIDE0LjY1OUMxMS4xMDA1IDE0LjQ2OTkgMTAuOTY2MSAxNC4zMTMxIDEwLjc4ODcgMTQuMjIzMUMxMC42MTE0IDE0LjEzMzEgMTAuNDA1NiAxNC4xMTcyIDEwLjIxNjYgMTQuMTc4OUMxMC4yMTY1IDE0LjE3ODkgMTAuMjE2OCAxNC4xNzg5IDEwLjIxNjYgMTQuMTc4OUMxMC4xMTIxIDE0LjIxMyAxMC4wMDY1IDE0LjI0NDYgOS45MDA3MyAxNC4yNzMzQzkuNzQ4NDggMTQuMzE0NiA5LjU5NTA2IDE0LjM1MDMgOS40NDA3OCAxNC4zODAzQzkuMzcxNDYgMTQuMzkzOCA5LjMwMTk2IDE0LjQwNjIgOS4yMzIzMyAxNC40MTc0QzguODU0OCAxNC40NzgyIDguNDczMDIgMTQuNTA1NSA4LjA5MTQ0IDE0LjQ5OTJDNy45OTU2OCAxNC40OTc2IDcuODk5OTIgMTQuNDkzOSA3LjgwNDI2IDE0LjQ4ODFDNy42Nzc5IDE0LjQ4MDQgNy41NTE2OCAxNC40NjkxIDcuNDI1NzggMTQuNDU0QzcuMzYxMzMgMTQuNDQ2MyA3LjI5Njk2IDE0LjQzNzYgNy4yMzI2OSAxNC40Mjc5QzYuOTg2OTMgMTQuMzkxIDYuNzQyNjcgMTQuMzM5OSA2LjUwMTE0IDE0LjI3NDVDNi4zMjkzMyAxNC4yMjggNi4xNTk5NSAxNC4xNzQ2IDUuOTkzMzcgMTQuMTE0NkM1LjU2ODA5IDEzLjk2MTIgNS4xNjExMiAxMy43NjQyIDQuNzc4NyAxMy41Mjc2QzQuNzMzNzMgMTMuNDk5OCA0LjY4OTExIDEzLjQ3MTQgNC42NDQ4MyAxMy40NDI1QzQuMjcwMDMgMTMuMTk3OCAzLjkyMDI4IDEyLjkxNDIgMy42MDE3NCAxMi41OTU2QzMuNTEyMjkgMTIuNTA2MSAzLjQyNTMxIDEyLjQxMzggMy4zNDA5MiAxMi4zMTg5QzMuMTMxMzkgMTIuMDgzMiAyLjk0MDE0IDExLjgzMzYgMi43NjgyMSAxMS41NzIyQzIuNzYzODUgMTEuNTY1NiAyLjc1OTUgMTEuNTU5IDIuNzU1MTYgMTEuNTUyM0MyLjQ3OTY0IDExLjEzMDEgMi4yNTQzNyAxMC42Nzc1IDIuMDgzNjggMTAuMjAzOUMxLjkzODA3IDkuNzk5OTMgMS44MzIxOCA5LjM4MDYxIDEuNzY4NzEgOC45NTE3NEMxLjc2ODY5IDguOTUxNjYgMS43Njg3MiA4Ljk1MTgyIDEuNzY4NzEgOC45NTE3NEMxLjc0MTI1IDguNzY2MjEgMS43MjE4OCA4LjU3OTg2IDEuNzEwNTkgOC4zOTM2N0MxLjcwNDcxIDguMjk2ODMgMS43MDEwMSA4LjE5OTk4IDEuNjk5NDggOC4xMDMxN0MxLjY4OTAyIDcuNDQzNTUgMS43NzkwNSA2Ljc4NjI2IDEuOTY2MzEgNi4xNTQwNUMyLjA1NTIgNS44NTM5NCAyLjE2NjAxIDUuNTU5NDcgMi4yOTgzNyA1LjI3MzA5QzIuNTYzNzggNC42OTg4MyAyLjkxMDExIDQuMTY5NTQgMy4zMjQyNSAzLjcwMDA3QzMuMzY2MTggMy42NTI1NCAzLjQwODggMy42MDU2MyAzLjQ1MjEgMy41NTkzNEMzLjgzNjQ5IDMuMTQ4NDggNC4yNzQ1OCAyLjc4NzE0IDQuNzU2ODQgMi40ODYxMUM1LjAyNDUyIDIuMzE5MDMgNS4zMDI5MSAyLjE3MjMzIDUuNTg5NjMgMi4wNDY2OEM1LjgwNDcxIDEuOTUyNDIgNi4wMjQ0OSAxLjg3IDYuMjQ3OTYgMS43OTk3QzYuODc2MjggMS42MDIwMiA3LjUzMzggMS41MDAxMiA4LjE5ODI4IDEuNTAwMDhDOC4yNDU2MyAxLjUwMDA4IDguMjkzMDIgMS41MDA1OSA4LjM0MDQ0IDEuNTAxNjNDOC45NTc0NSAxLjUxNTExIDkuNTY2MiAxLjYxNjI5IDEwLjE0ODggMS43OTk1MkMxMC43NjA1IDEuOTkxODkgMTEuMzQzNSAyLjI3NDcyIDExLjg3NzcgMi42NDE0N0MxMS44Nzc2IDIuNjQxNDIgMTEuODc3OCAyLjY0MTUxIDExLjg3NzcgMi42NDE0N0MxMi4wODM5IDIuNzgzMDQgMTIuMjgxMiAyLjkzNjAzIDEyLjQ2ODUgMy4wOTkyMkMxMi42MzUxIDMuMjQ0MzYgMTIuNzkzOSAzLjM5NzY3IDEyLjk0NDQgMy41NTg0OEMxMy4wOTc0IDMuNzIxOTcgMTMuMjQxOSAzLjg5MzIyIDEzLjM3NzEgNC4wNzE1MkMxMy41NTU1IDQuMzA2NiAxMy43MTc5IDQuNTUzOTUgMTMuODYzMSA0LjgxMTk1QzEzLjk0MjcgNC45NTMzNiAxNC4wMTcxIDUuMDk3OTggMTQuMDg2MSA1LjI0NTUyQzE0LjEyNTMgNS4zMjkxNCAxNC4xNjI3IDUuNDEzNzEgMTQuMTk4MyA1LjQ5OTE2QzE0LjIwMyA1LjUxMDQzIDE0LjIwNzYgNS41MjE3MiAxNC4yMTIzIDUuNTMzMDJDMTQuMjEyMiA1LjUzMjkyIDE0LjIxMjMgNS41MzMxMiAxNC4yMTIzIDUuNTMzMDJDMTQuMjg3OCA1LjcxNjkzIDE0LjQzMzMgNS44NjM2NyAxNC42MTY3IDUuOTQwNDJDMTQuNzA3NiA1Ljk3ODQ1IDE0LjgwNSA1Ljk5ODIgMTQuOTAzNSA1Ljk5ODU2QzE1LjAwMiA1Ljk5ODkyIDE1LjA5OTYgNS45Nzk4OCAxNS4xOTA4IDUuOTQyNTJDMTUuMjgxOSA1LjkwNTE2IDE1LjM2NDggNS44NTAyMSAxNS40MzQ3IDUuNzgwODJDMTUuNTA0NiA1LjcxMTQyIDE1LjU2MDIgNS42Mjg5NCAxNS41OTgyIDUuNTM4MDhDMTUuNjM2MiA1LjQ0NzIyIDE1LjY1NiA1LjM0OTc1IDE1LjY1NjMgNS4yNTEyNkMxNS42NTY3IDUuMTUyNzYgMTUuNjM3NiA1LjA1NTE2IDE1LjYwMDMgNC45NjQwMkMxNS42MDAyIDQuOTYzOSAxNS42MDAzIDQuOTY0MTQgMTUuNjAwMyA0Ljk2NDAyQzE1LjUwOTEgNC43NDE4NyAxNS40MDgyIDQuNTI0MiAxNS4yOTgxIDQuMzEyMjlDMTUuMjYxNyA0LjI0MjIgMTUuMjI0MiA0LjE3MjY5IDE1LjE4NTggNC4xMDM3OVpNOC45NDgyOCAzLjc1MDAyQzguOTQ4MjggMy41NTExIDguODY5MjYgMy4zNjAzNCA4LjcyODYxIDMuMjE5NjlDOC42MTQwNSAzLjEwNTEyIDguNDY2MjQgMy4wMzE0NSA4LjMwNzg2IDMuMDA4MDZDOC4yNzE4OCAzLjAwMjc2IDguMjM1MDggMy4wMDAwMiA4LjE5ODI4IDMuMDAwMDJDNy45OTkzNyAzLjAwMDAyIDcuODA4NiAzLjA3OTAzIDcuNjY3OTUgMy4yMTk2OUM3LjUyNzMgMy4zNjAzNCA3LjQ0ODI4IDMuNTUxMSA3LjQ0ODI4IDMuNzUwMDJWNy42OTAwMkw1LjQxNDUyIDkuNzIyNzhDNS40MDE1OSA5LjczNDgzIDUuMzg4ODcgOS43NDc1NSA1LjM3Njg2IDkuNzYwNDRDNS4zMjA0MSA5LjgyMTAyIDUuMjc0MyA5Ljg5MDYyIDUuMjQwNSA5Ljk2NjQ4QzUuMTk5NTEgMTAuMDU4NSA1LjE3NzQ2IDEwLjE1NzggNS4xNzU2OSAxMC4yNTg1QzUuMTczOTEgMTAuMzU5MiA1LjE5MjQ0IDEwLjQ1OTIgNS4yMzAxNiAxMC41NTI2QzUuMjM4NjMgMTAuNTczNiA1LjI0ODA0IDEwLjU5NDIgNS4yNTgzNCAxMC42MTQyQzUuMjkzODcgMTAuNjgzNCA1LjM0MDAyIDEwLjc0NjggNS4zOTUyNCAxMC44MDIxQzUuNDY2NDYgMTAuODczMyA1LjU1MTI5IDEwLjkyOTQgNS42NDQ2OCAxMC45NjcxQzUuNzM4MDcgMTEuMDA0OSA1LjgzODEgMTEuMDIzNCA1LjkzODggMTEuMDIxNkM2LjAzOTUxIDExLjAxOTggNi4xMzg4MiAxMC45OTc4IDYuMjMwODIgMTAuOTU2OEM2LjMwNjY4IDEwLjkyMyA2LjM3NjI4IDEwLjg3NjkgNi40MzY4NiAxMC44MjA0QzYuNDQ5NjYgMTAuODA4NSA2LjQ2MjA2IDEwLjc5NjEgNi40NzQwMyAxMC43ODMzQzYuNDczOTUgMTAuNzgzNCA2LjQ3NDExIDEwLjc4MzIgNi40NzQwMyAxMC43ODMzTDguOTQ4MjggOC4zMTAwMlYzLjc1MDAyWk0xMy40NDgzIDEyLjI1QzEzLjQ0ODMgMTIuNDQ4OSAxMy41MjczIDEyLjYzOTcgMTMuNjY4IDEyLjc4MDNDMTMuODA4NiAxMi45MjEgMTMuOTk5NCAxMyAxNC4xOTgzIDEzQzE0LjM4OTUgMTMgMTQuNTczMiAxMi45MjcgMTQuNzEyMSAxMi43OTYzQzE0LjcxNzcgMTIuNzkxMSAxNC43MjMyIDEyLjc4NTggMTQuNzI4NiAxMi43ODAzQzE0Ljg2OTMgMTIuNjM5NyAxNC45NDgzIDEyLjQ0ODkgMTQuOTQ4MyAxMi4yNVYxMC4wNTY2QzE0LjcwMTUgMTAuMDE5MSAxNC40NTA5IDEwIDE0LjE5ODMgMTBDMTMuOTQ1NyAxMCAxMy42OTUgMTAuMDE5MSAxMy40NDgzIDEwLjA1NjZWMTIuMjVaTTEzLjQ0ODMgOS43NjkyN0MxMy42OTMyIDkuODQ4MjggMTMuOTQ0MSA5LjkwNzE5IDE0LjE5ODMgOS45NDU1MUMxNC40MjY0IDkuOTc5ODkgMTQuNjU3MiA5Ljk5NzY5IDE0Ljg4ODkgOS45OTg1NEMxNC45MDg3IDkuOTk4NjEgMTQuOTI4NSA5Ljk5ODU2IDE0Ljk0ODMgOS45OTgzOFY4Ljc1MDAyQzE0Ljk0ODMgOC42NTM1NiAxNC45Mjk3IDguNTU5MDEgMTQuODk0NSA4LjQ3MTE3QzE0Ljg1NzEgOC4zNzc4NyAxNC44MDExIDguMjkyMTMgMTQuNzI4NiA4LjIxOTY5QzE0LjU4OCA4LjA3OTA0IDE0LjM5NzIgOC4wMDAwMiAxNC4xOTgzIDguMDAwMDJDMTMuOTk5NCA4LjAwMDAyIDEzLjgwODYgOC4wNzkwNCAxMy42NjggOC4yMTk2OUMxMy42NjUgOC4yMjI2OCAxMy42NjIgOC4yMjU2OSAxMy42NTkxIDguMjI4NzJDMTMuNTI4MiA4LjM2NDEgMTMuNDUzIDguNTQzNzYgMTMuNDQ4NSA4LjczMTg4QzEzLjQ0ODQgOC43Mzc5MiAxMy40NDgzIDguNzQzOTcgMTMuNDQ4MyA4Ljc1MDAyVjkuNzY5MjdaTTE1LjE5NjMgMTUuMDYyNkMxNS4xOTc2IDE1LjA0MTggMTUuMTk4MyAxNS4wMjA5IDE1LjE5ODMgMTVDMTUuMTk4MyAxNC45OTg0IDE1LjE5ODMgMTQuOTk2OCAxNS4xOTgzIDE0Ljk5NTFDMTUuMTk3IDE0LjczMTcgMTUuMDkxOCAxNC40NzkzIDE0LjkwNTQgMTQuMjkyOUMxNC43MTc4IDE0LjEwNTQgMTQuNDYzNSAxNCAxNC4xOTgzIDE0QzEzLjkzMzEgMTQgMTMuNjc4NyAxNC4xMDU0IDEzLjQ5MTIgMTQuMjkyOUMxMy4zMDM2IDE0LjQ4MDQgMTMuMTk4MyAxNC43MzQ4IDEzLjE5ODMgMTVDMTMuMTk4MyAxNS4yNjUyIDEzLjMwMzYgMTUuNTE5NiAxMy40OTEyIDE1LjcwNzFDMTMuNjc4NyAxNS44OTQ3IDEzLjkzMzEgMTYgMTQuMTk4MyAxNkMxNC40NjM1IDE2IDE0LjcxNzggMTUuODk0NyAxNC45MDU0IDE1LjcwNzFDMTUuMDc4MSAxNS41MzQ0IDE1LjE4MTEgMTUuMzA1IDE1LjE5NjMgMTUuMDYyNlpcIiBmaWxsPVwiI0Y3OTAwOVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xMDMzNV8yMjg1MlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMC4xOTkyMTkpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSYmb2JqPy5yZXZvcHNUeXBlIT09JydcIiAgKGNsaWNrKT1cInJldm9wVGFnZ2luZyhvYmopXCIgbmdiVG9vbHRpcD1cIkN1c3RvbWVyIFRhZ2dpbmcgaXMgRG9uZVwiICBwbGFjZW1lbnQ9XCJ0b3BcIj4gPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxN1wiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNyAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xMDMzNV8yMjg1NilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTUuMDYzOCA3LjM4NjYyVjcuOTk5OTVDMTUuMDYzIDkuNDM3NTYgMTQuNTk3NSAxMC44MzY0IDEzLjczNjcgMTEuOTg3OEMxMi44NzU5IDEzLjEzOTMgMTEuNjY2IDEzLjk4MTYgMTAuMjg3NCAxNC4zODkyQzguOTA4NzYgMTQuNzk2OCA3LjQzNTMxIDE0Ljc0NzkgNi4wODY3OCAxNC4yNDk3QzQuNzM4MjYgMTMuNzUxNSAzLjU4NjkxIDEyLjgzMDcgMi44MDQ0NCAxMS42MjQ3QzIuMDIxOTggMTAuNDE4NiAxLjY1MDMzIDguOTkxOTkgMS43NDQ5MiA3LjU1NzQ5QzEuODM5NTEgNi4xMjI5OSAyLjM5NTI3IDQuNzU3NSAzLjMyOTMyIDMuNjY0NjdDNC4yNjMzNyAyLjU3MTgzIDUuNTI1NjYgMS44MTAyMSA2LjkyNzkzIDEuNDkzMzhDOC4zMzAyIDEuMTc2NTYgOS43OTczMSAxLjMyMTUxIDExLjExMDUgMS45MDY2Mk0xNS4wNjM4IDIuNjY2NjJMOC4zOTcxNCA5LjMzOTk1TDYuMzk3MTQgNy4zMzk5NVwiIHN0cm9rZT1cIiMxMkI3NkFcIiBzdHJva2Utd2lkdGg9XCIxLjVcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTAzMzVfMjI4NTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMzk4NDM4KVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQuZW50cnlUaW1lfX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwicHktMiBpbWctZG9jLXZhbHVlXCI+e3tvYmoudGltZVNwZW50LmV4aXRUaW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJweS0yIGltZy1kb2MtdmFsdWVcIj57e29iai50aW1lU3BlbnQudG90YWxUaW1lU3BlbnR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJpbWFnZUZsb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wIG10LTMganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvVmlldygpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI1ODVfNzAzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNS44MzI3IDE5SDE0LjE2Nk0xNC4xNjYgMTlMMTkuOTk5MyAyNC44MzM0TTE0LjE2NiAxOUwxOS45OTkzIDEzLjE2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBweS0yIGltZy1kb2MtZGlyZWN0b3J5XCI+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1pbmZvXCI+e3tJbWFnZWRhdGEudGVtcElkfX08L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RDb250cm9sLnZhbHVlIGFzIHZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIG1zLTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXByaW1hcnknOiB2YWx1ZSA9PT0gJ2Zvb3RmYWxsJyAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXN1Y2Nlc3MnOiB2YWx1ZSA9PT0gJ3B1cmNoYXNlcicsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXdhcm5pbmcnOiB2YWx1ZSA9PT0gJ25vblNob3BwZXInLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYWRnZS1saWdodC1kYW5nZXInOiB2YWx1ZSA9PT0gJ2JvdW5jZWQnIHx8IHZhbHVlID09PSAnZW5nYWdlcicgfHwgdmFsdWUgPT09ICdtaXNzZWRPcHBvcnR1bml0eScgfHwgdmFsdWUgPT09ICdjb252ZXJzaW9uJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAncHVyY2hhc2VyJyA/ICdQdXJjaGFzZXInIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnbm9uU2hvcHBlcicgPyAnTm9uIFNob3BwZXInIDpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID09PSAnbWlzc2VkT3Bwb3J0dW5pdHknID8gJ01pc3NlZCBPcHBvcnR1bml0eScgOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZhbHVlIHwgdGl0bGVjYXNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtuZ0NsYXNzXT1cInsgJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwJzogaXNGaXJzdEltYWdlKCkgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wb2ludGVyLWV2ZW50c109XCJpc0ZpcnN0SW1hZ2UoKSA/ICdub25lJyA6ICdhdXRvJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXNGaXJzdEltYWdlKCkgJiYgcHJldmlvdXMoKVwiID48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuNSA4QzAuNSAzLjg1Nzg2IDMuODU3ODYgMC41IDggMC41SDM5LjVWMzkuNUg4QzMuODU3ODYgMzkuNSAwLjUgMzYuMTQyMSAwLjUgMzJWOFpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDhDMC41IDMuODU3ODYgMy44NTc4NiAwLjUgOCAwLjVIMzkuNVYzOS41SDhDMy44NTc4NiAzOS41IDAuNSAzNi4xNDIxIDAuNSAzMlY4WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjIuNSAyNUwxNy41IDIwTDIyLjUgMTVcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiBbbmdDbGFzc109XCJ7ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCc6IGlzTGFzdEltYWdlKCkgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5wb2ludGVyLWV2ZW50c109XCJpc0xhc3RJbWFnZSgpID8gJ25vbmUnIDogJ2F1dG8nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIiFpc0xhc3RJbWFnZSgpICYmIG5leHQoKVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC41IDAuNUgzMkMzNi4xNDIxIDAuNSAzOS41IDMuODU3ODYgMzkuNSA4VjMyQzM5LjUgMzYuMTQyMSAzNi4xNDIxIDM5LjUgMzIgMzkuNUgwLjVWMC41WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0wLjUgMC41SDMyQzM2LjE0MjEgMC41IDM5LjUgMy44NTc4NiAzOS41IDhWMzJDMzkuNSAzNi4xNDIxIDM2LjE0MjEgMzkuNSAzMiAzOS41SDAuNVYwLjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDI1TDIyLjUgMjBMMTcuNSAxNVwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjb250YWluIG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyAgY2xhc3M9XCJpbWctc3JjMVwiIFtzcmNdPVwiSW1hZ2VzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiSW1hZ2VzID0gbnVsbFwiIGFsdD1cIlwiIGFwcE1hZ25pZmllciA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSB7e215VGh1bWJuYWlsfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmd4LWltYWdlLXpvb21cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0aHVtYkltYWdlXT1teVRodW1ibmFpbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZnVsbEltYWdlXT1teUZ1bGxyZXNJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWFnbmlmaWNhdGlvbl09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VuYWJsZVNjcm9sbFpvb21dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbmFibGVMZW5zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGVuc1dpZHRoXT1cIjIwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsZW5zSGVpZ2h0XT1cIjIwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmd4LWltYWdlLXpvb20+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZXNcIiBjbGFzcz1cIm5vLXByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIiBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi01IHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNSB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgc2xpZGVyIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIiAqbmdJZj1cIkltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNSAgYm9yZGVyLTJcIiBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXktYWN0aXZlJzogSW1hZ2VzID09PSBJbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYm9yZGVyLWdyYXknOiBJbWFnZXMgIT09IEltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+RW50cnkgVGltZTE8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB3LTEwMCByb3VuZGVkLTIgbWgtMTAwcHggcGItMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NyY109XCJJbWFnZWRhdGE/LmltYWdlcz8uZW50cnlUaW1lSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5lbnRyeVRpbWVJbWFnZSA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1hZ2VEYXRhKCdlbnRyeScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIUltYWdlZGF0YT8uaW1hZ2VzPy5lbnRyeVRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTRcIiAqbmdJZj1cIkltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItNSBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5zdGFmZkVuZ2FnZW1lbnRJbWFnZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheSc6IEltYWdlcyAhPT0gSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5TdGFmZiBFbmdhZ2VtZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdy0xMDAgcm91bmRlZC0yIG1oLTEwMHB4IHBiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LnN0YWZmRW5nYWdlbWVudEltYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwiSW1hZ2VkYXRhPy5pbWFnZXMuc3RhZmZFbmdhZ2VtZW50SW1hZ2UgPSBudWxsXCIgYWx0PVwiXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnc3RhZmYnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZWRhdGE/LmltYWdlcz8uc3RhZmZFbmdhZ2VtZW50SW1hZ2VcIiBjbGFzcz1cIm5vLXByZXZpZXctc20gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItMiB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTIgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJjb2wtNCBcIiAqbmdJZj1cIkltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlICYmIGZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi01ICBib3JkZXItMlwiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdib3JkZXItZ3JheS1hY3RpdmUnOiBJbWFnZXMgPT09IEltYWdlZGF0YT8uaW1hZ2VzPy5leGl0VGltZUltYWdlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JvcmRlci1ncmF5JzogSW1hZ2VzICE9PSBJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+RXhpdCBUaW1lPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgdy0xMDAgcm91bmRlZC0yIG1oLTEwMHB4IHBiLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiSW1hZ2VkYXRhPy5pbWFnZXM/LmV4aXRUaW1lSW1hZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJJbWFnZWRhdGE/LmltYWdlcy5leGl0VGltZUltYWdlID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWFnZURhdGEoJ2V4aXQnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFJbWFnZWRhdGE/LmltYWdlcz8uZXhpdFRpbWVJbWFnZVwiIGNsYXNzPVwibm8tcHJldmlldy1zbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi0yIHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItMiB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBwZS0wIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdiBmbGV4LXdyYXAgbmF2LWRldiBmdy1ib2xkIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIG15LTEgdy01MFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUYWIgPSAndGFnZ2VkJ1wiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWItYWN0aXZlJzogc2VsZWN0ZWRUYWIgPT09ICd0YWdnZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiIGNsYXNzPVwidGFiLXRleHQtZGVmYXVsdCBidG4gbmF2LWxpbmsgcHgtMyBweC1sZy04IG14LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhZ2dlZCBJbmZvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBteS0xIHctNTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkVGFiID0gJ2N1c3RvbWVyJ1wiIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWItYWN0aXZlJzogc2VsZWN0ZWRUYWIgPT09ICdjdXN0b21lcidcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XCIgY2xhc3M9XCJ0YWItdGV4dC1kZWZhdWx0IGJ0biBuYXYtbGluayBweC0zIHB4LWxnLTggbXgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXIgSW5mb1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkVGFiID09PSAndGFnZ2VkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0zIG10LTUgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTUgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb05vblNob3BwZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibm9uU2hvcHBlclwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXN0b21lclR5cGVcIiAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ25vblNob3BwZXInKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb05vblNob3BwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb24gU2hvcHBlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTUgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVja1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJleGFtcGxlUmFkaW9zXCIgaWQ9XCJyYWRpb1B1cmNoYXNlclwiIHZhbHVlPVwicHVyY2hhc2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlXCIgKGNoYW5nZSk9XCJvblJhZGlvQ2hhbmdlKCdwdXJjaGFzZXInKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCBjdXJzb3ItcG9pbnRlciB0b2dnbGUtbGFiZWxcIiBmb3I9XCJyYWRpb1B1cmNoYXNlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1cmNoYXNlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBmb3JtLWNoZWNrIG10LTUgcHgtMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiZXhhbXBsZVJhZGlvc1wiIGlkPVwicmFkaW9NaXNzZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwibWlzc2VkT3Bwb3J0dW5pdHlcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2UoJ21pc3NlZE9wcG9ydHVuaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgY3Vyc29yLXBvaW50ZXIgdG9nZ2xlLWxhYmVsXCIgZm9yPVwicmFkaW9NaXNzZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNaXNzZWQgT3Bwb3J0dW5pdHlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0nbm9uU2hvcHBlcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbXgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktYWN0aXZlMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IG9iaiBvZiBub25TaG9wcGVyTGlzdFwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZSAgbXQtMyBtZS04XCIgICAgIFtuZ0NsYXNzXT1cIm9iaiE9PW5vblNob3BlclR5cGUgPyAnYmFkZ2UtbGlnaHQtZGVmYXVsdCcgOidiYWRnZS1saWdodC1wcmltYXJ5J1wiIChjbGljayk9XCJzZWxlY3Rub25TaG9wZXIob2JqKVwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiAqbmdJZj1cIm9iaiE9PW5vblNob3BlclR5cGVcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk02IDIuNVY5LjVNMi41IDZIOS41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgKm5nSWY9XCJvYmo9PT1ub25TaG9wZXJUeXBlXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHJ4PVwiOFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMzk3NyA0LjkyNjYxTDYuNjI0MzQgOS41MzMyOEw1LjM1NzY3IDguMTc5OTRDNS4xMjQzNCA3Ljk1OTk0IDQuNzU3NjcgNy45NDY2MSA0LjQ5MSA4LjEzMzI4QzQuMjMxIDguMzI2NjEgNC4xNTc2NyA4LjY2NjYxIDQuMzE3NjcgOC45Mzk5NEw1LjgxNzY3IDExLjM3OTlDNS45NjQzNCAxMS42MDY2IDYuMjE3NjcgMTEuNzQ2NiA2LjUwNDM0IDExLjc0NjZDNi43Nzc2NyAxMS43NDY2IDcuMDM3NjcgMTEuNjA2NiA3LjE4NDM0IDExLjM3OTlDNy40MjQzNCAxMS4wNjY2IDEyLjAwNDMgNS42MDY2MSAxMi4wMDQzIDUuNjA2NjFDMTIuNjA0MyA0Ljk5MzI4IDExLjg3NzcgNC40NTMyOCAxMS4zOTc3IDQuOTE5OTRWNC45MjY2MVpcIiBmaWxsPVwiIzMzQjVGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIj57e29ian19PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTUgcGItMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZXhhbXBsZUlucHV0TmFtZVwiPkRlc2NyaXB0aW9uIChPcHRpb25hbCk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIFsobmdNb2RlbCldPVwiZGVzY3JpcHRpb25cIiBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCIgcm93cz1cIjRcIiBwbGFjZWhvbGRlcj1cIlwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTVcIiAoY2xpY2spPVwibm9uU2hvcHBlclN1Ym1pdCgpXCIgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiPlN1Ym1pdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJzZWxlY3RlZEN1c3RvbWVyVHlwZSA9PT0ncHVyY2hhc2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInVzZXJGb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYm9yZGVyLWdyYXktYWN0aXZlMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiPk5hbWU8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkIHRleHQtZGFuZ2VyXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgTmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiByZXF1aXJlZCBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCduYW1lJyk/LnRvdWNoZWQpfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnbmFtZScpXCIgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5uYW1lLmVycm9ycz8ucmVxdWlyZWRcIj5OYW1lIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBjb2wtbGctNiBjb2wteGwtNiBjb2wteHhsLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb250YWN0XCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29udGFjdCBOdW1iZXIgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZCB0ZXh0LWRhbmdlclwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy02IGNvbC14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBwcy0zIHBlLThcIiBpZD1cImlucHV0R3JvdXBTZWxlY3QwMVwiIGZvcm1Db250cm9sTmFtZT1cImNvdW50cnlDb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBjb3VudHJ5TGlzdFwiIFt2YWx1ZV09XCJjb3VudHJ5LnBob25lY29kZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjb3VudHJ5Lm5hbWV9fSAoe3tjb3VudHJ5LnBob25lY29kZX19KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNiBjb2wteGwtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1vYmlsZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIGZvcm1Db250cm9sTmFtZT1cIm1vYmlsZVwiIG1pbmxlbmd0aD1cIjhcIiBtYXhsZW5ndGg9XCIxM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6dXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8uaW52YWxpZCAmJiAodXNlckZvcm0uZ2V0KCdtb2JpbGUnKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImlzSW52YWxpZCgnbW9iaWxlJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZi5tb2JpbGUuZXJyb3JzPy5yZXF1aXJlZFwiPkNvbnRhY3QgTnVtYmVyIGlzIHJlcXVpcmVkLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImYubW9iaWxlLmVycm9ycz8ubWlubGVuZ3RoXCI+Q29udGFjdCBOdW1iZXIgbXVzdCBiZSBhdCBsZWFzdCA4IGRpZ2l0cy48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLm1vYmlsZS5lcnJvcnM/Lm1heGxlbmd0aFwiPkNvbnRhY3QgTnVtYmVyIGNhbm5vdCBleGNlZWQgMTMgZGlnaXRzLjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgY29sLWxnLTYgY29sLXhsLTYgY29sLXh4bC02IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5FbWFpbCA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiZW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6dXNlckZvcm0uZ2V0KCdlbWFpbCcpPy5pbnZhbGlkICYmICh1c2VyRm9ybS5nZXQoJ2VtYWlsJyk/LnRvdWNoZWQpfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0ludmFsaWQoJ2VtYWlsJylcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmLmVtYWlsLmVycm9ycz8ucGF0dGVyblwiPkludmFsaWQgZW1haWwgZm9ybWF0LjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibG9jYXRpb25cIj5Mb2NhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsb2NhdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCBtdC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibG9jYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbXQtM1wiIGlkPVwibG9jYXRpb25cIiBmb3JtQ29udHJvbE5hbWU9XCJsb2NhdGlvblwiICNwbGFjZXNSZWY9XCJuZ3gtcGxhY2VzXCIgbmd4LWdwLWF1dG9jb21wbGV0ZSAob25BZGRyZXNzQ2hhbmdlKT1cImhhbmRsZUFkZHJlc3NDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzp1c2VyRm9ybS5nZXQoJ2xvY2F0aW9uJyk/LmludmFsaWQgJiYgKHVzZXJGb3JtLmdldCgnbG9jYXRpb24nKT8udG91Y2hlZCl9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFnZVwiPkFnZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0IG10LTNcIiBmb3JtQ29udHJvbE5hbWU9XCJhZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPlNlbGVjdCBBZ2U8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIkJlbG93IDEyXCI+QmVsb3cgMTI8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjEzLTE5XCI+MTPigJMxOTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiMjDigJMzMFwiPjIw4oCTMzA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjMx4oCTNDVcIj4zMeKAkzQ1PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0NuKAkzU5XCI+NDbigJM1OTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiQWJvdmUgNjBcIj5BYm92ZSA2MDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gcHQtNSBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTAgdHJhbnNsYXRlLW1pZGRsZS15XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImxlZnQ6IDAuMjVyZW07XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVjcmVtZW50QWdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZ2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sIHBlLTUgdGV4dC1jZW50ZXIgbXQtM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWdlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW49XCIxXCIgbWF4PVwiOTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gcHQtNSBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTAgdHJhbnNsYXRlLW1pZGRsZS15XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInJpZ2h0OiAyLjVyZW07XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaW5jcmVtZW50QWdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ2VuZGVyXCI+R2VuZGVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBtdC0zXCIgZm9ybUNvbnRyb2xOYW1lPVwiZ2VuZGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJcIj5TZWxlY3QgR2VuZGVyPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJtYWxlXCI+TWFsZTwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiZmVtYWxlXCI+RmVtYWxlPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1lbmQgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBtdC0zXCI+U3VibWl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cInNlbGVjdGVkQ3VzdG9tZXJUeXBlID09PSdtaXNzZWRPcHBvcnR1bml0eSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTUgbXgtMyBib3JkZXItZ3JheS1hY3RpdmUxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvYmogb2YgbWlzc2VkT3Bwb3J0dW5pdHlMaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtaXRlbSBuYXYtaXRlbTEgdy0yNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZFRhYnMob2JqLm5hbWUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRNaXNzZWQgPT09IG9iai5uYW1lID8gJ2FjdGl2ZScgOiAnYWN0aXZlLW5vcm1hbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgbmF2LWxpbmsxIGN1cnNvci1wb2ludGVyIHRleHQtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb2JqLm5hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3Igc2VwYXJhdG9yLWRvdWJsZSBtYi0zXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBJc3N1ZSBCYWRnZXMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgb2JqIG9mIG1pc3NlZE9wcG9ydHVuaXR5TGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInNlbGVjdGVkTWlzc2VkID09PSBvYmoubmFtZVwiIGNsYXNzPVwibXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvYmouaXNzdWVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RTdWJpc3N1ZShvYmosIGl0ZW0pXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LXByaW1hcnknOiBzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2JhZGdlLWxpZ2h0LWRlZmF1bHQnOiFzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJhZGdlIG10LTIgbWUtMiBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCIgKm5nSWY9XCIhc2VsZWN0ZWRJc3N1ZXMuaW5jbHVkZXMoaXRlbSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTYgMi41VjkuNU0yLjUgNkg5LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS0yXCIgKm5nSWY9XCJzZWxlY3RlZElzc3Vlcy5pbmNsdWRlcyhpdGVtKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiByeD1cIjhcIiBmaWxsPVwiI0RBRjFGRlwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIiBkPVwiTTExLjM5NzcgNC45MjY2MUw2LjYyNDM0IDkuNTMzMjhMNS4zNTc2NyA4LjE3OTk0QzUuMTI0MzQgNy45NTk5NCA0Ljc1NzY3IDcuOTQ2NjEgNC40OTEgOC4xMzMyOEM0LjIzMSA4LjMyNjYxIDQuMTU3NjcgOC42NjY2MSA0LjMxNzY3IDguOTM5OTRMNS44MTc2NyAxMS4zNzk5QzUuOTY0MzQgMTEuNjA2NiA2LjIxNzY3IDExLjc0NjYgNi41MDQzNCAxMS43NDY2QzYuNzc3NjcgMTEuNzQ2NiA3LjAzNzY3IDExLjYwNjYgNy4xODQzNCAxMS4zNzk5QzcuNDI0MzQgMTEuMDY2NiAxMi4wMDQzIDUuNjA2NjEgMTIuMDA0MyA1LjYwNjYxQzEyLjYwNDMgNC45OTMyOCAxMS44Nzc3IDQuNDUzMjggMTEuMzk3NyA0LjkxOTk0VjQuOTI2NjFaXCIgZmlsbD1cIiMzM0I1RkZcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0gfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RGVzY3JpcHRpb24gKE9wdGlvbmFsKTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW50ZXIgY29tbWVudHNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZW5kIG10LTVcIiAoY2xpY2spPVwic3VibWl0TWlzc2VkT3Bwb3J0dW5pdHkoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtM1wiPlN1Ym1pdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwic2VsZWN0ZWRUYWIgPT09ICdjdXN0b21lcidcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRhZy1jbGFzc1wiPlRhZ2dlZCBTdW1tYXJ5IDxzcGFuICpuZ0lmPVwidGFnZ2dlZERhdGE/LnN0YXR1cz09PSdzdWJtaXR0ZWQnXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTQuNjY2OCA3LjM4Njc0VjguMDAwMDdDMTQuNjY2IDkuNDM3NjkgMTQuMjAwNSAxMC44MzY1IDEzLjMzOTcgMTEuOTg4QzEyLjQ3ODkgMTMuMTM5NCAxMS4yNjkgMTMuOTgxNyA5Ljg5MDQgMTQuMzg5M0M4LjUxMTc4IDE0Ljc5NyA3LjAzODM0IDE0Ljc0OCA1LjY4OTgxIDE0LjI0OThDNC4zNDEyOCAxMy43NTE2IDMuMTg5OTMgMTIuODMwOCAyLjQwNzQ3IDExLjYyNDhDMS42MjUwMSAxMC40MTg4IDEuMjUzMzYgOC45OTIxMSAxLjM0Nzk1IDcuNTU3NjFDMS40NDI1NCA2LjEyMzEyIDEuOTk4MyA0Ljc1NzYyIDIuOTMyMzUgMy42NjQ3OUMzLjg2NjQgMi41NzE5NSA1LjEyODY5IDEuODEwMzMgNi41MzA5NiAxLjQ5MzVDNy45MzMyMyAxLjE3NjY4IDkuNDAwMzQgMS4zMjE2MyAxMC43MTM1IDEuOTA2NzRNMTQuNjY2OCAyLjY2Njc0TDguMDAwMTcgOS4zNDAwN0w2LjAwMDE3IDcuMzQwMDdcIiBzdHJva2U9XCIjMTJCNzZBXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiB0ZXh0LWVuZFwiICpuZ0lmPVwidGFnZ2dlZERhdGE/LnN0YXR1cyE9PSdzdWJtaXR0ZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXdhcm5pbmcgbXMtMlwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTA5MDFfNzc5NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCIgZD1cIk02LjEzMTUyIDAuMDAxNDIwNDlDNS4yNTg1NSAtMC4wMTc1Nzc4IDQuMzkxOTUgMC4xNTQxOTIgMy41OTIyMiAwLjUwNDczOEMyLjc5MjUgMC44NTUyODMgMi4wNzg5MiAxLjM3NjE2IDEuNTAxMzEgMi4wMzA5OUMwLjkyMzcwMyAyLjY4NTgzIDAuNDk1OTgxIDMuNDU4ODUgMC4yNDgwMDkgNC4yOTYwOEMzLjcwMjk0ZS0wNSA1LjEzMzMgLTAuMDYyMjA5NSA2LjAxNDU3IDAuMDY1NjE1NCA2Ljg3ODM0QzAuMTkzNDQgNy43NDIxMiAwLjUwODI1NiA4LjU2NzU4IDAuOTg4MDgzIDkuMjk3MTFDMS40Njc5MSAxMC4wMjY2IDIuMTAxMTkgMTAuNjQyNiAyLjg0MzcgMTEuMTAyMUMzLjU4NjIxIDExLjU2MTYgNC40MjAwNiAxMS44NTM1IDUuMjg3MDMgMTEuOTU3NEM2LjE1NDAxIDEyLjA2MTMgNy4wMzMyMiAxMS45NzQ3IDcuODYzMjcgMTEuNzAzN0M4LjAwNTEgMTEuNjU3MyA4LjEyMjcgMTEuNTU2NSA4LjE5MDIyIDExLjQyMzVDOC4yNTc3MyAxMS4yOTA0IDguMjY5NjIgMTEuMTM2IDguMjIzMjcgMTAuOTk0MkM4LjE3NjkzIDEwLjg1MjMgOC4wNzYxNCAxMC43MzQ3IDcuOTQzMDggMTAuNjY3MkM3LjgxMDAyIDEwLjU5OTcgNy42NTU2IDEwLjU4NzggNy41MTM3NyAxMC42MzQyQzYuNjExNzUgMTAuOTI4NyA1LjY0MzM4IDEwLjk1MzYgNC43Mjc0MiAxMC43MDU4QzMuODExNDYgMTAuNDU4IDIuOTg3NzMgOS45NDgyNSAyLjM1NzI1IDkuMjM5MUMxLjcyNjc3IDguNTI5OTUgMS4zMTY5NiA3LjY1MjIxIDEuMTc4MDcgNi43MTM1NEMxLjAzOTE3IDUuNzc0ODcgMS4xNzcyNCA0LjgxNjA3IDEuNTc1MzQgMy45NTQ3M0MxLjk3MzQzIDMuMDkzMzggMi42MTQyNSAyLjM2Njk0IDMuNDE5MiAxLjg2NDQ5QzQuMjI0MTQgMS4zNjIwNCA1LjE1ODIzIDEuMTA1NDMgNi4xMDY4OSAxLjEyNjEzQzcuMDU1NTYgMS4xNDY4MyA3Ljk3NzU2IDEuNDQzOTMgOC43NTk4MyAxLjk4MTAxQzkuNTQyMSAyLjUxODA5IDEwLjE1MDYgMy4yNzE3OCAxMC41MTA4IDQuMTQ5NjdDMTAuNTY3NCA0LjI4NzcyIDEwLjY3NjUgNC4zOTc2MyAxMC44MTQxIDQuNDU1MjJDMTAuODgyMiA0LjQ4Mzc0IDEwLjk1NTMgNC40OTg1NiAxMS4wMjkyIDQuNDk4ODNDMTEuMTAzMSA0LjQ5OTEgMTEuMTc2MyA0LjQ4NDgyIDExLjI0NDYgNC40NTY4QzExLjMxMyA0LjQyODc4IDExLjM3NTIgNC4zODc1NyAxMS40Mjc2IDQuMzM1NTJDMTEuNDggNC4yODM0NyAxMS41MjE3IDQuMjIxNjEgMTEuNTUwMiA0LjE1MzQ3QzExLjU3ODcgNC4wODUzMiAxMS41OTM1IDQuMDEyMjIgMTEuNTkzOCAzLjkzODM1QzExLjU5NDEgMy44NjQ0OCAxMS41Nzk4IDMuNzkxMjcgMTEuNTUxOCAzLjcyMjkyQzExLjEwODUgMi42NDIzOSAxMC4zNTk2IDEuNzE0NyA5LjM5Njc3IDEuMDUzNjVDOC40MzM5NiAwLjM5MjU4NyA3LjI5OTE1IDAuMDI2ODk0NiA2LjEzMTUyIDAuMDAxNDIwNDlaTTYuNTYyNzcgMi44MTI0MkM2LjU2Mjc3IDIuNjYzMjQgNi41MDM1MSAyLjUyMDE2IDYuMzk4MDIgMi40MTQ2N0M2LjI5MjUzIDIuMzA5MTggNi4xNDk0NiAyLjI0OTkyIDYuMDAwMjcgMi4yNDk5MkM1Ljg1MTA5IDIuMjQ5OTIgNS43MDgwMSAyLjMwOTE4IDUuNjAyNTIgMi40MTQ2N0M1LjQ5NzA0IDIuNTIwMTYgNS40Mzc3NyAyLjY2MzI0IDUuNDM3NzcgMi44MTI0MlY1Ljc2NzQyTDMuOTEyMjcgNy4yOTIxN0MzLjg1NzAxIDcuMzQzNjcgMy44MTI2OCA3LjQwNTc3IDMuNzgxOTQgNy40NzQ3N0MzLjc1MTE5IDcuNTQzNzcgMy43MzQ2NiA3LjYxODI1IDMuNzMzMzMgNy42OTM3OEMzLjczMiA3Ljc2OTMxIDMuNzQ1ODkgNy44NDQzMyAzLjc3NDE4IDcuOTE0MzdDMy44MDI0NyA3Ljk4NDQxIDMuODQ0NTggOC4wNDgwNCAzLjg5Nzk5IDguMTAxNDVDMy45NTE0MSA4LjE1NDg2IDQuMDE1MDMgOC4xOTY5NyA0LjA4NTA3IDguMjI1MjZDNC4xNTUxMiA4LjI1MzU1IDQuMjMwMTQgOC4yNjc0NSA0LjMwNTY2IDguMjY2MTJDNC4zODExOSA4LjI2NDc4IDQuNDU1NjggOC4yNDgyNSA0LjUyNDY4IDguMjE3NTFDNC41OTM2OCA4LjE4Njc2IDQuNjU1NzggOC4xNDI0NCA0LjcwNzI3IDguMDg3MTdMNi4zOTc3NyA2LjM5NzQyTDYuNTYyNzcgNi4yMzI0MlYyLjgxMjQyWk0xMS4yNTAzIDExLjI0OTlDMTEuMjUwMyAxMS40NDg4IDExLjE3MTMgMTEuNjM5NiAxMS4wMzA2IDExLjc4MDNDMTAuODg5OSAxMS45MjA5IDEwLjY5OTIgMTEuOTk5OSAxMC41MDAzIDExLjk5OTlDMTAuMzAxNCAxMS45OTk5IDEwLjExMDYgMTEuOTIwOSA5Ljk2OTk0IDExLjc4MDNDOS44MjkyOSAxMS42Mzk2IDkuNzUwMjcgMTEuNDQ4OCA5Ljc1MDI3IDExLjI0OTlDOS43NTAyNyAxMS4wNTEgOS44MjkyOSAxMC44NjAyIDkuOTY5OTQgMTAuNzE5NkMxMC4xMTA2IDEwLjU3ODkgMTAuMzAxNCAxMC40OTk5IDEwLjUwMDMgMTAuNDk5OUMxMC42OTkyIDEwLjQ5OTkgMTAuODg5OSAxMC41Nzg5IDExLjAzMDYgMTAuNzE5NkMxMS4xNzEzIDEwLjg2MDIgMTEuMjUwMyAxMS4wNTEgMTEuMjUwMyAxMS4yNDk5Wk0xMS4wNjI4IDYuNTYyNDJDMTEuMDYyOCA2LjQxMzI0IDExLjAwMzUgNi4yNzAxNiAxMC44OTggNi4xNjQ2N0MxMC43OTI1IDYuMDU5MTkgMTAuNjQ5NSA1Ljk5OTkyIDEwLjUwMDMgNS45OTk5MkMxMC4zNTExIDUuOTk5OTIgMTAuMjA4IDYuMDU5MTkgMTAuMTAyNSA2LjE2NDY3QzkuOTk3MDQgNi4yNzAxNiA5LjkzNzc3IDYuNDEzMjQgOS45Mzc3NyA2LjU2MjQyVjkuMTg3NDJDOS45Mzc3NyA5LjMzNjYxIDkuOTk3MDQgOS40Nzk2OCAxMC4xMDI1IDkuNTg1MTdDMTAuMjA4IDkuNjkwNjYgMTAuMzUxMSA5Ljc0OTkyIDEwLjUwMDMgOS43NDk5MkMxMC42NDk1IDkuNzQ5OTIgMTAuNzkyNSA5LjY5MDY2IDEwLjg5OCA5LjU4NTE3QzExLjAwMzUgOS40Nzk2OCAxMS4wNjI4IDkuMzM2NjEgMTEuMDYyOCA5LjE4NzQyVjYuNTYyNDJaXCIgZmlsbD1cIiNCNTQ3MDhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMTEuMjQwOSAzLjA3Nzc1QzExLjE3NjIgMi45NjE3MSAxMS4xMDc4IDIuODQ3OTkgMTEuMDM1NyAyLjczNjc0QzEwLjc4MjYgMi4zNDYyMyAxMC40ODQ4IDEuOTg2MzEgMTAuMTQ4MyAxLjY2NDRDOS45MTU2MSAxLjQ0MTg0IDkuNjY0NDYgMS4yMzc0NCA5LjM5Njc3IDEuMDUzNjVDOS4zOTY3MiAxLjA1MzYxIDkuMzk2ODMgMS4wNTM2OCA5LjM5Njc3IDEuMDUzNjVDOS4yMzczNyAwLjk0NDIwNyA5LjA3MzA4IDAuODQyNzQ4IDguOTA0ODcgMC43NDk3MDVDOC43MjA3IDAuNjQ3ODI4IDguNTMxNjMgMC41NTU5IDguMzM4NSAwLjQ3NDE5MkM3LjY0MjY5IDAuMTc5ODEzIDYuODk0MSAwLjAxODA1NzcgNi4xMzE1MiAwLjAwMTQyMDQ5QzYuMTMxNDkgMC4wMDE0MTk4MyA2LjEzMTU1IDAuMDAxNDIxMTUgNi4xMzE1MiAwLjAwMTQyMDQ5QzYuMDg3NzggMC4wMDA0NjkyOSA2LjA0Mzk3IC01LjAxMjY1ZS0wNiA2LjAwMDI3IDMuOTk0MjZlLTA4QzUuMTk3MjYgOS4yODg3MWUtMDUgNC40MDIyMiAwLjE2MTM4NiAzLjY2MjM3IDAuNDc0NTJDMy42Mzg5MyAwLjQ4NDQ0MSAzLjYxNTU1IDAuNDk0NTEzIDMuNTkyMjIgMC41MDQ3MzhDMy40MjI0MyAwLjU3OTE2NiAzLjI1NjUxIDAuNjYxMjczIDMuMDk0OTYgMC43NTA3MUMzLjAwMzA3IDAuODAxNTc3IDIuOTEyNiAwLjg1NDgxNCAyLjgyMzYzIDAuOTEwMzU5QzIuMzMyMjMgMS4yMTcxMyAxLjg4NjUzIDEuNTk0MjcgMS41MDEzMSAyLjAzMDk5QzEuMTE2MDggMi40Njc3MyAwLjc5NzUxNiAyLjk1NzA0IDAuNTU0NDg2IDMuNDgyOTFDMC40MzMxMjQgMy43NDU1MSAwLjMzMDU5NyA0LjAxNzIzIDAuMjQ4MDA5IDQuMjk2MDhDNS41MTM0M2UtMDUgNS4xMzMyNCAtMC4wNjIyMDA0IDYuMDE0NDQgMC4wNjU1ODc0IDYuODc4MTVDMC4wNjU1NzggNi44NzgwOSAwLjA2NTU5NjcgNi44NzgyMiAwLjA2NTU4NzQgNi44NzgxNUMwLjE5MzQxMiA3Ljc0MTkzIDAuNTA4MjU2IDguNTY3NTggMC45ODgwODMgOS4yOTcxMUMxLjE0NzgzIDkuNTM5OTggMS4zMjQ1OCA5Ljc3MDI3IDEuNTE2NzEgOS45ODYzOUMxLjkwMTY4IDEwLjQxOTQgMi4zNDgzOCAxMC43OTU2IDIuODQzNyAxMS4xMDIxQzMuMzM4ODIgMTEuNDA4NSAzLjg3NDU1IDExLjY0MDQgNC40MzM2NCAxMS43OTE3QzQuNzEyOTkgMTEuODY3MyA0Ljk5ODE3IDExLjkyMjggNS4yODcwMyAxMS45NTc0QzUuMzE5OTkgMTEuOTYxMyA1LjM1Mjk2IDExLjk2NSA1LjM4NTk0IDExLjk2ODRDNS44NjI3NSAxMi4wMTc1IDYuMzQyNTQgMTIuMDA5MiA2LjgxNTE0IDExLjk0NDVDNi45OTI2NSAxMS45MjAyIDcuMTY5MTUgMTEuODg3OSA3LjM0NDA5IDExLjg0NzdDNy41MTg4IDExLjgwNzYgNy42OTE5NiAxMS43NTk2IDcuODYzMDIgMTEuNzAzOEM3Ljg2Mjk0IDExLjcwMzggNy44NjMxMSAxMS43MDM3IDcuODYzMDIgMTEuNzAzOEM3Ljg5MTI3IDExLjY5NDUgNy45MTg4IDExLjY4MzEgNy45NDQ5MiAxMS42Njk3QzguMDQ5OTUgMTEuNjE1OSA4LjEzNjE1IDExLjUzIDguMTkwMjIgMTEuNDIzNUM4LjIxODEyIDExLjM2ODUgOC4yMzY1MyAxMS4zMDk4IDguMjQ1MjQgMTEuMjQ5OUM4LjI1NzYxIDExLjE2NDkgOC4yNTA0NiAxMS4wNzc0IDguMjIzMjcgMTAuOTk0MkM4LjE3NjkzIDEwLjg1MjMgOC4wNzYxNCAxMC43MzQ3IDcuOTQzMDggMTAuNjY3MkM3LjgxMDExIDEwLjU5OTggNy42NTU3OSAxMC41ODc4IDcuNTE0MDQgMTAuNjM0MUM3LjUxMzk1IDEwLjYzNDEgNy41MTQxMyAxMC42MzQxIDcuNTE0MDQgMTAuNjM0MUM3LjQzNTYzIDEwLjY1OTcgNy4zNTY0NSAxMC42ODMzIDcuMjc3MTEgMTAuNzA0OUM3LjE2MjkyIDEwLjczNTkgNy4wNDc4NiAxMC43NjI2IDYuOTMyMTUgMTAuNzg1MUM2Ljg4MDE2IDEwLjc5NTMgNi44MjgwNCAxMC44MDQ1IDYuNzc1ODEgMTAuODEyOUM2LjQ5MjY3IDEwLjg1ODUgNi4yMDYzMyAxMC44NzkgNS45MjAxNCAxMC44NzQzQzUuODQ4MzIgMTAuODczMSA1Ljc3NjUgMTAuODcwNCA1LjcwNDc2IDEwLjg2NkM1LjYwOTk4IDEwLjg2MDIgNS41MTUzMiAxMC44NTE3IDUuNDIwOSAxMC44NDA0QzUuMzcyNTYgMTAuODM0NiA1LjMyNDI4IDEwLjgyODEgNS4yNzYwOCAxMC44MjA4QzUuMDkxNzYgMTAuNzkzMSA0LjkwODU2IDEwLjc1NDggNC43Mjc0MiAxMC43MDU4QzQuNTk4NTYgMTAuNjcwOSA0LjQ3MTUyIDEwLjYzMDkgNC4zNDY1OSAxMC41ODU4QzQuMDI3NjMgMTAuNDcwOCAzLjcyMjQgMTAuMzIzMSAzLjQzNTU5IDEwLjE0NTZDMy40MDE4NiAxMC4xMjQ4IDMuMzY4MzkgMTAuMTAzNSAzLjMzNTE4IDEwLjA4MThDMy4wNTQwOSA5Ljg5ODI2IDIuNzkxNzggOS42ODU1NiAyLjU1Mjg3IDkuNDQ2NThDMi40ODU3OCA5LjM3OTQ3IDIuNDIwNTQgOS4zMTAyOSAyLjM1NzI1IDkuMjM5MUMyLjIwMDExIDkuMDYyMzQgMi4wNTY2NyA4Ljg3NTEyIDEuOTI3NzIgOC42NzkwOEMxLjkyNDQ1IDguNjc0MTEgMS45MjExOCA4LjY2OTEzIDEuOTE3OTMgOC42NjQxNEMxLjcxMTMgOC4zNDc0OSAxLjU0MjM0IDguMDA4MDcgMS40MTQzMiA3LjY1Mjg2QzEuMzA1MTEgNy4zNDk4NiAxLjIyNTcgNy4wMzUzNiAxLjE3ODA5IDYuNzEzNzFDMS4xNzgwOCA2LjcxMzY2IDEuMTc4MSA2LjcxMzc3IDEuMTc4MDkgNi43MTM3MUMxLjE1NzUgNi41NzQ1NyAxLjE0Mjk3IDYuNDM0ODEgMS4xMzQ1IDYuMjk1MTZDMS4xMzAxIDYuMjIyNTMgMS4xMjczMiA2LjE0OTg5IDEuMTI2MTcgNi4wNzcyOUMxLjExODMyIDUuNTgyNTcgMS4xODU4NSA1LjA4OTYxIDEuMzI2MyA0LjYxNTQ1QzEuMzkyOTcgNC4zOTAzNiAxLjQ3NjA3IDQuMTY5NTEgMS41NzUzNCAzLjk1NDczQzEuNzc0NCAzLjUyNDAzIDIuMDM0MTQgMy4xMjcwNiAyLjM0NDc1IDIuNzc0OTZDMi4zNzYyIDIuNzM5MzIgMi40MDgxNiAyLjcwNDEzIDIuNDQwNjQgMi42Njk0MkMyLjcyODkzIDIuMzYxMjcgMy4wNTc0OSAyLjA5MDI3IDMuNDE5MiAxLjg2NDQ5QzMuNjE5OTUgMS43MzkxOCAzLjgyODc0IDEuNjI5MTYgNC4wNDM3OSAxLjUzNDkyQzQuMjA1MSAxLjQ2NDIyIDQuMzY5OTMgMS40MDI0MSA0LjUzNzUzIDEuMzQ5NjhDNS4wMDg3NyAxLjIwMTQzIDUuNTAxOTEgMS4xMjUgNi4wMDAyNyAxLjEyNDk3QzYuMDM1NzkgMS4xMjQ5NyA2LjA3MTMzIDEuMTI1MzUgNi4xMDY4OSAxLjEyNjEzQzYuNTY5NjUgMS4xMzYyNCA3LjAyNjIxIDEuMjEyMTIgNy40NjMxNSAxLjM0OTU0QzcuOTIxOSAxLjQ5MzgzIDguMzU5MTkgMS43MDU5NSA4Ljc1OTgzIDEuOTgxMDFDOC43NTk3OCAxLjk4MDk3IDguNzU5ODggMS45ODEwNCA4Ljc1OTgzIDEuOTgxMDFDOC45MTQ0NyAyLjA4NzE5IDkuMDYyNDcgMi4yMDE5MyA5LjIwMjk1IDIuMzI0MzNDOS4zMjc4OSAyLjQzMzE4IDkuNDQ3IDIuNTQ4MTYgOS41NTk4OCAyLjY2ODc3QzkuNjc0NjQgMi43OTEzOSA5Ljc4Mjk1IDIuOTE5ODIgOS44ODQ0IDMuMDUzNTVDMTAuMDE4MiAzLjIyOTg2IDEwLjE0IDMuNDE1MzcgMTAuMjQ4OSAzLjYwODg3QzEwLjMwODYgMy43MTQ5MyAxMC4zNjQ0IDMuODIzMzkgMTAuNDE2MiAzLjkzNDA1QzEwLjQ0NTUgMy45OTY3NyAxMC40NzM2IDQuMDYwMTkgMTAuNTAwMyA0LjEyNDI4QzEwLjUwMzggNC4xMzI3MyAxMC41MDczIDQuMTQxMiAxMC41MTA4IDQuMTQ5NjdDMTAuNTEwNyA0LjE0OTU5IDEwLjUxMDggNC4xNDk3NSAxMC41MTA4IDQuMTQ5NjdDMTAuNTY3NCA0LjI4NzYxIDEwLjY3NjUgNC4zOTc2NiAxMC44MTQxIDQuNDU1MjJDMTAuODgyMiA0LjQ4Mzc0IDEwLjk1NTMgNC40OTg1NiAxMS4wMjkyIDQuNDk4ODNDMTEuMTAzMSA0LjQ5OTEgMTEuMTc2MyA0LjQ4NDgyIDExLjI0NDYgNC40NTY4QzExLjMxMyA0LjQyODc4IDExLjM3NTIgNC4zODc1NyAxMS40Mjc2IDQuMzM1NTJDMTEuNDggNC4yODM0OCAxMS41MjE3IDQuMjIxNjEgMTEuNTUwMiA0LjE1MzQ3QzExLjU3ODcgNC4wODUzMiAxMS41OTM1IDQuMDEyMjIgMTEuNTkzOCAzLjkzODM1QzExLjU5NDEgMy44NjQ0OCAxMS41Nzk4IDMuNzkxMjcgMTEuNTUxOCAzLjcyMjkyQzExLjU1MTcgMy43MjI4MyAxMS41NTE4IDMuNzIzMDEgMTEuNTUxOCAzLjcyMjkyQzExLjQ4MzQgMy41NTYzMSAxMS40MDc3IDMuMzkzMDYgMTEuMzI1MSAzLjIzNDEzQzExLjI5NzggMy4xODE1NiAxMS4yNjk3IDMuMTI5NDIgMTEuMjQwOSAzLjA3Nzc1Wk02LjU2Mjc3IDIuODEyNDJDNi41NjI3NyAyLjY2MzI0IDYuNTAzNTEgMi41MjAxNiA2LjM5ODAyIDIuNDE0NjdDNi4zMTIxIDIuMzI4NzUgNi4yMDEyNCAyLjI3MzUgNi4wODI0NiAyLjI1NTk1QzYuMDU1NDggMi4yNTE5OCA2LjAyNzg3IDIuMjQ5OTIgNi4wMDAyNyAyLjI0OTkyQzUuODUxMDkgMi4yNDk5MiA1LjcwODAxIDIuMzA5MTggNS42MDI1MiAyLjQxNDY3QzUuNDk3MDQgMi41MjAxNiA1LjQzNzc3IDIuNjYzMjQgNS40Mzc3NyAyLjgxMjQyVjUuNzY3NDJMMy45MTI0NSA3LjI5MkMzLjkwMjc1IDcuMzAxMDMgMy44OTMyMiA3LjMxMDU3IDMuODg0MjEgNy4zMjAyM0MzLjg0MTg3IDcuMzY1NjcgMy44MDcyOSA3LjQxNzg3IDMuNzgxOTQgNy40NzQ3N0MzLjc1MTE5IDcuNTQzNzcgMy43MzQ2NiA3LjYxODI1IDMuNzMzMzMgNy42OTM3OEMzLjczMiA3Ljc2OTMxIDMuNzQ1ODkgNy44NDQzMyAzLjc3NDE4IDcuOTE0MzdDMy43ODA1NCA3LjkzMDExIDMuNzg3NTkgNy45NDU1MiAzLjc5NTMyIDcuOTYwNTdDMy44MjE5NiA4LjAxMjQ5IDMuODU2NTggOC4wNjAwNCAzLjg5Nzk5IDguMTAxNDVDMy45NTE0MSA4LjE1NDg3IDQuMDE1MDMgOC4xOTY5NyA0LjA4NTA3IDguMjI1MjZDNC4xNTUxMiA4LjI1MzU2IDQuMjMwMTQgOC4yNjc0NSA0LjMwNTY2IDguMjY2MTJDNC4zODExOSA4LjI2NDc4IDQuNDU1NjggOC4yNDgyNSA0LjUyNDY4IDguMjE3NTFDNC41ODE1NyA4LjE5MjE2IDQuNjMzNzcgOC4xNTc1NyA0LjY3OTIxIDguMTE1MjRDNC42ODg4MSA4LjEwNjI5IDQuNjk4MTEgOC4wOTcgNC43MDcwOCA4LjA4NzM3QzQuNzA3MDIgOC4wODc0NCA0LjcwNzE1IDguMDg3MzEgNC43MDcwOCA4LjA4NzM3TDYuNTYyNzcgNi4yMzI0MlYyLjgxMjQyWk05LjkzNzc3IDkuMTg3NDJDOS45Mzc3NyA5LjMzNjYxIDkuOTk3MDQgOS40Nzk2OCAxMC4xMDI1IDkuNTg1MTdDMTAuMjA4IDkuNjkwNjYgMTAuMzUxMSA5Ljc0OTkyIDEwLjUwMDMgOS43NDk5MkMxMC42NDM3IDkuNzQ5OTIgMTAuNzgxNSA5LjY5NTE0IDEwLjg4NTcgOS41OTcxNkMxMC44ODk4IDkuNTkzMjMgMTAuODk0IDkuNTg5MjQgMTAuODk4IDkuNTg1MTdDMTEuMDAzNSA5LjQ3OTY4IDExLjA2MjggOS4zMzY2MSAxMS4wNjI4IDkuMTg3NDJWNy41NDIzNEMxMC44Nzc3IDcuNTE0MjYgMTAuNjg5NyA3LjQ5OTkyIDEwLjUwMDMgNy40OTk5MkMxMC4zMTA4IDcuNDk5OTIgMTAuMTIyOCA3LjUxNDI2IDkuOTM3NzcgNy41NDIzNFY5LjE4NzQyWk05LjkzNzc3IDcuMzI2ODZDMTAuMTIxNSA3LjM4NjEyIDEwLjMwOTYgNy40MzAzIDEwLjUwMDMgNy40NTkwNEMxMC42NzE0IDcuNDg0ODMgMTAuODQ0NSA3LjQ5ODE4IDExLjAxODMgNy40OTg4MUMxMS4wMzMxIDcuNDk4ODcgMTEuMDQ3OSA3LjQ5ODgzIDExLjA2MjggNy40OTg3VjYuNTYyNDJDMTEuMDYyOCA2LjQ5MDA4IDExLjA0ODggNi40MTkxNyAxMS4wMjI0IDYuMzUzMjhDMTAuOTk0NCA2LjI4MzMxIDEwLjk1MjQgNi4yMTkwMSAxMC44OTggNi4xNjQ2OEMxMC43OTI1IDYuMDU5MTkgMTAuNjQ5NSA1Ljk5OTkyIDEwLjUwMDMgNS45OTk5MkMxMC4zNTExIDUuOTk5OTIgMTAuMjA4IDYuMDU5MTkgMTAuMTAyNSA2LjE2NDY4QzEwLjEwMDMgNi4xNjY5MiAxMC4wOTgxIDYuMTY5MTcgMTAuMDk1OSA2LjE3MTQ1QzkuOTk3NyA2LjI3Mjk5IDkuOTQxMzUgNi40MDc3MyA5LjkzNzk0IDYuNTQ4ODJDOS45Mzc4MyA2LjU1MzM1IDkuOTM3NzcgNi41NTc4OCA5LjkzNzc3IDYuNTYyNDJWNy4zMjY4NlpNMTEuMjQ4OCAxMS4yOTY4QzExLjI0OTggMTEuMjgxMyAxMS4yNTAzIDExLjI2NTYgMTEuMjUwMyAxMS4yNDk5QzExLjI1MDMgMTEuMjQ4NyAxMS4yNTAzIDExLjI0NzUgMTEuMjUwMyAxMS4yNDYzQzExLjI0OTMgMTEuMDQ4NyAxMS4xNzA0IDEwLjg1OTQgMTEuMDMwNiAxMC43MTk2QzEwLjg4OTkgMTAuNTc4OSAxMC42OTkyIDEwLjQ5OTkgMTAuNTAwMyAxMC40OTk5QzEwLjMwMTQgMTAuNDk5OSAxMC4xMTA2IDEwLjU3ODkgOS45Njk5NCAxMC43MTk2QzkuODI5MjkgMTAuODYwMiA5Ljc1MDI3IDExLjA1MSA5Ljc1MDI3IDExLjI0OTlDOS43NTAyNyAxMS40NDg4IDkuODI5MjkgMTEuNjM5NiA5Ljk2OTk0IDExLjc4MDNDMTAuMTEwNiAxMS45MjA5IDEwLjMwMTQgMTEuOTk5OSAxMC41MDAzIDExLjk5OTlDMTAuNjk5MiAxMS45OTk5IDEwLjg4OTkgMTEuOTIwOSAxMS4wMzA2IDExLjc4MDNDMTEuMTYwMiAxMS42NTA3IDExLjIzNzQgMTEuNDc4NiAxMS4yNDg4IDExLjI5NjhaXCIgZmlsbD1cIiNCNTQ3MDhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTA5MDFfNzc5NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PHNwYW4gY2xhc3M9XCJtcy0yXCI+UGVuZGluZyBUYWdnZWQgSW5mbzwvc3Bhbj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktdGFnZ2VkIG14LTMgbXktMlwiICpuZ0lmPVwidGFnZ2dlZERhdGE/LnJldm9wc1R5cGU9PT0ncHVyY2hhc2VyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+TmFtZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlIFwiPkxvY2F0aW9uPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmxvY2F0aW9uP3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmxvY2F0aW9uOlwiLVwifX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IG10LTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXZhbHVlIFwiPk1vYmlsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdGl0bGUgXCI+e3t0YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5tb2JpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+QWdlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmFnZT90YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5hZ2U6XCItXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+RW1haWw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMiBtYi0yIHNwZW50LXRpdGxlIFwiPnt7dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uZW1haWw/dGFnZ2dlZERhdGE/LmN1c3RvbWVySW5mbz8uZW1haWw6XCItXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXQtMiBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtc3RhcnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yIG1iLTIgc3BlbnQtdmFsdWUgXCI+R2VuZGVyPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC10aXRsZSBcIj57e3RhZ2dnZWREYXRhPy5jdXN0b21lckluZm8/LmdlbmRlcj90YWdnZ2VkRGF0YT8uY3VzdG9tZXJJbmZvPy5nZW5kZXI6XCItXCJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRhZ2dnZWREYXRhPy5yZXZvcHNUeXBlPT09J21pc3NlZE9wcG9ydHVuaXR5J1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyLWdyYXktdGFnZ2VkIG14LTMgbXktMlwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRhZ2dnZWREYXRhLmlzc3VlTGlzdFwiID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1zLTIgbWItMiBzcGVudC12YWx1ZVwiPnt7aXRlbS5uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0IG1zLTJcIiAqbmdGb3I9XCJsZXQgZGF0YSBvZiBpdGVtLmlzc3VlXCI+e3tkYXRhfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItZ3JheS10YWdnZWQgbXgtMyBteS0yXCIgKm5nSWY9XCJ0YWdnZ2VkRGF0YT8ucmV2b3BzVHlwZT09PSdub25TaG9wcGVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBtcy0yXCI+e3tub25TaG9wZXJUeXBlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm15LTJcIj48c3BhbiBjbGFzcz1cImRlc2MtaWRcIj5PcmlnaW5hbCBJRDwvc3Bhbj4gOiA8c3BhbiBjbGFzcz1cInNwZW50LXZhbHVlMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4ICFpbXBvcnRhbnQ7XCI+e3tJbWFnZWRhdGE/LnRlbXBJZH19PC9zcGFuPjwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgICpuZ0lmPVwidGFnZ2dlZERhdGE/LmRlc2NyaXB0aW9uJiZ0YWdnZ2VkRGF0YT8uZGVzY3JpcHRpb24hPT0nJ1wiIGNsYXNzPVwibXktMyBkZXNjLWlkXCI+e3t0YWdnZ2VkRGF0YS5kZXNjcmlwdGlvbn19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBhcmF0b3Igc2VwYXJhdG9yLWRvdWJsZSBtLTNcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0YWctY2xhc3NcIj5UaW1lIFNwZW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXdyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9vdGZhbGxEYXRhU2hvdyAhPT0ndHJhY2tpbmctZW5hYmxlZCdcIiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctMzMgIHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy50aW1lU3BlbnQ/LnRvdGFsVGltZVNwZW50fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdmFsdWUgbXktMVwiPlRvdGFsIFRpbWUgU3BlbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBib3JkZXItZG9idWxlIHJvdW5kZWQgdy0zMyAgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnRpbWVTcGVudD8uZW50cnlUaW1lfX0gIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlMSBteS0xIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZW50cnknKVwiPkVudHJ5IFRpbWUgPHNwYW4gY2xhc3M9XCJtcy0xXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTMuMzMzMzMgMTRIMTIuNjY2N0MxMy40MDMgMTQgMTQgMTMuNDAzIDE0IDEyLjY2NjdWMy4zMzMzM0MxNCAyLjU5Njk1IDEzLjQwMyAyIDEyLjY2NjcgMkgzLjMzMzMzQzIuNTk2OTUgMiAyIDIuNTk2OTUgMiAzLjMzMzMzVjEyLjY2NjdDMiAxMy40MDMgMi41OTY5NSAxNCAzLjMzMzMzIDE0Wk0zLjMzMzMzIDE0TDEwLjY2NjcgNi42NjY2N0wxNCAxME02LjY2NjY3IDUuNjY2NjdDNi42NjY2NyA2LjIxODk1IDYuMjE4OTUgNi42NjY2NyA1LjY2NjY3IDYuNjY2NjdDNS4xMTQzOCA2LjY2NjY3IDQuNjY2NjcgNi4yMTg5NSA0LjY2NjY3IDUuNjY2NjdDNC42NjY2NyA1LjExNDM4IDUuMTE0MzggNC42NjY2NyA1LjY2NjY3IDQuNjY2NjdDNi4yMTg5NSA0LjY2NjY3IDYuNjY2NjcgNS4xMTQzOCA2LjY2NjY3IDUuNjY2NjdaXCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvb3RmYWxsRGF0YVNob3cgIT09J3RyYWNraW5nLWVuYWJsZWQnXCIgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTMzICBweS0zIHB4LTQgbWUtNiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3BlbnQtdGl0bGVcIj57e0ltYWdlZGF0YT8udGltZVNwZW50Py5leGl0VGltZX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlMSBteS0xIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImltYWdlRGF0YSgnZXhpdCcpXCI+RXhpdCBUaW1lIDxzcGFuIGNsYXNzPVwibXMtMVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjMzMzMzIDE0SDEyLjY2NjdDMTMuNDAzIDE0IDE0IDEzLjQwMyAxNCAxMi42NjY3VjMuMzMzMzNDMTQgMi41OTY5NSAxMy40MDMgMiAxMi42NjY3IDJIMy4zMzMzM0MyLjU5Njk1IDIgMiAyLjU5Njk1IDIgMy4zMzMzM1YxMi42NjY3QzIgMTMuNDAzIDIuNTk2OTUgMTQgMy4zMzMzMyAxNFpNMy4zMzMzMyAxNEwxMC42NjY3IDYuNjY2NjdMMTQgMTBNNi42NjY2NyA1LjY2NjY3QzYuNjY2NjcgNi4yMTg5NSA2LjIxODk1IDYuNjY2NjcgNS42NjY2NyA2LjY2NjY3QzUuMTE0MzggNi42NjY2NyA0LjY2NjY3IDYuMjE4OTUgNC42NjY2NyA1LjY2NjY3QzQuNjY2NjcgNS4xMTQzOCA1LjExNDM4IDQuNjY2NjcgNS42NjY2NyA0LjY2NjY3QzYuMjE4OTUgNC42NjY2NyA2LjY2NjY3IDUuMTE0MzggNi42NjY2NyA1LjY2NjY3WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICAqbmdJZj1cIkltYWdlZGF0YT8uem9uZVZpc2l0ZWQmJkltYWdlZGF0YT8uem9uZVZpc2l0ZWQubGVuZ3RoPjBcIiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJJbWFnZWRhdGE/LnpvbmVWaXNpdGVkJiZJbWFnZWRhdGE/LnpvbmVWaXNpdGVkLmxlbmd0aD4wXCIgIGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWNsYXNzXCI+Wm9uZXMgVmlzaXRlZDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwiaC0yMDBweCBzY3JvbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBtdC0yXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBJbWFnZWRhdGE/LnpvbmVWaXNpdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgXCI+e3tvYmp9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiSW1hZ2VkYXRhPy56b25lVmlzaXRlZC5sZW5ndGggPT09MFwiIGNsYXNzPVwiY29sLW1kLTEyIG10LTIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGVcIj5ObyBab25lcyBWaXNpdGVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibm9kYXRhLXN1YlwiPlRoZXJlIGlzIG5vIHJlc3VsdCBmb3IgdGhpcyBab25lczwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGFyYXRvciBzZXBhcmF0b3ItZG91YmxlIG0tM1wiPjwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGFnLWNsYXNzXCI+U3RhZmYgRW5nYWdlbWVudDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb290ZmFsbERhdGFTaG93ICE9PSd0cmFja2luZy1lbmFibGVkJ1wiIGNsYXNzPVwiZC1mbGV4IGZsZXgtd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXktMzAwIGJvcmRlci1kb2J1bGUgcm91bmRlZCB3LTQ1IHB5LTMgcHgtNCBtZS02IG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC10aXRsZVwiPnt7SW1hZ2VkYXRhPy5zdGFmZkVuZ2FnZW1lbnQudGltZVRha2VuVG9Bc3Npc3R9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGVudC12YWx1ZSBteS0xXCI+VGltZSB0YWtlbiB0byBhc3Npc3QgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwibXMtMVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zLjMzMzMzIDE0SDEyLjY2NjdDMTMuNDAzIDE0IDE0IDEzLjQwMyAxNCAxMi42NjY3VjMuMzMzMzNDMTQgMi41OTY5NSAxMy40MDMgMiAxMi42NjY3IDJIMy4zMzMzM0MyLjU5Njk1IDIgMiAyLjU5Njk1IDIgMy4zMzMzM1YxMi42NjY3QzIgMTMuNDAzIDIuNTk2OTUgMTQgMy4zMzMzMyAxNFpNMy4zMzMzMyAxNEwxMC42NjY3IDYuNjY2NjdMMTQgMTBNNi42NjY2NyA1LjY2NjY3QzYuNjY2NjcgNi4yMTg5NSA2LjIxODk1IDYuNjY2NjcgNS42NjY2NyA2LjY2NjY3QzUuMTE0MzggNi42NjY2NyA0LjY2NjY3IDYuMjE4OTUgNC42NjY2NyA1LjY2NjY3QzQuNjY2NjcgNS4xMTQzOCA1LjExNDM4IDQuNjY2NjcgNS42NjY2NyA0LjY2NjY3QzYuMjE4OTUgNC42NjY2NyA2LjY2NjY3IDUuMTE0MzggNi42NjY2NyA1LjY2NjY3WlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheS0zMDAgYm9yZGVyLWRvYnVsZSByb3VuZGVkIHctNDUgcHktMyBweC00IG1lLTYgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXRpdGxlXCI+e3tJbWFnZWRhdGE/LnN0YWZmRW5nYWdlbWVudC50aW1lU3BlbnRXaXRoU3RhZmZ9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNwZW50LXZhbHVlIG15LTFcIj5UaW1lIHNwZW50IHdpdGggc3RhZmY8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbjwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG4iXX0=
|