tango-app-ui-analyse-trax 3.7.11-redodesign-5 → 3.7.11-redodesign-3-demo7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (19) hide show
  1. package/esm2022/lib/components/checklist/checklist.component.mjs +43 -8
  2. package/esm2022/lib/components/checklistlayout/checklistlayout.component.mjs +3 -4
  3. package/esm2022/lib/components/eye-test-audit/eye-test/eye-test.component.mjs +68 -74
  4. package/esm2022/lib/components/gallery/gallery.component.mjs +753 -29
  5. package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +101 -33
  6. package/esm2022/lib/tango-analyse-trax-routing.module.mjs +5 -5
  7. package/esm2022/lib/tango-analyse-trax.module.mjs +1 -1
  8. package/fesm2022/{tango-app-ui-analyse-trax-eye-test-audit.module-1Duat6_F.mjs → tango-app-ui-analyse-trax-eye-test-audit.module-BiQS3U5-.mjs} +77 -83
  9. package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-BiQS3U5-.mjs.map +1 -0
  10. package/fesm2022/{tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-Da1_r2ID.mjs → tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-C1BV8fV8.mjs} +1092 -260
  11. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-C1BV8fV8.mjs.map +1 -0
  12. package/fesm2022/tango-app-ui-analyse-trax.mjs +1 -1
  13. package/lib/components/checklist/checklist.component.d.ts +5 -0
  14. package/lib/components/eye-test-audit/eye-test/eye-test.component.d.ts +1 -5
  15. package/lib/components/gallery/gallery.component.d.ts +1 -1
  16. package/lib/components/managechecklist/managechecklist.component.d.ts +7 -6
  17. package/package.json +1 -1
  18. package/fesm2022/tango-app-ui-analyse-trax-eye-test-audit.module-1Duat6_F.mjs.map +0 -1
  19. package/fesm2022/tango-app-ui-analyse-trax-tango-app-ui-analyse-trax-Da1_r2ID.mjs.map +0 -1
@@ -7,8 +7,6 @@ import * as i2 from "../../services/trax.service";
7
7
  import * as i3 from "tango-app-ui-shared";
8
8
  import * as i4 from "@angular/router";
9
9
  import * as i5 from "@ng-bootstrap/ng-bootstrap";
10
- import * as i6 from "@angular/common";
11
- import * as i7 from "@angular/forms";
12
10
  export class ChecklistComponent {
13
11
  pageInfo;
14
12
  traxService;
@@ -34,6 +32,7 @@ export class ChecklistComponent {
34
32
  sortBy: '',
35
33
  search: ''
36
34
  };
35
+ environment;
37
36
  constructor(pageInfo, traxService, gs, toast, route, dialog, cd) {
38
37
  this.pageInfo = pageInfo;
39
38
  this.traxService = traxService;
@@ -42,8 +41,17 @@ export class ChecklistComponent {
42
41
  this.route = route;
43
42
  this.dialog = dialog;
44
43
  this.cd = cd;
44
+ this.gs.environment.pipe(takeUntil(this.detach)).subscribe((env) => {
45
+ if (env) {
46
+ this.environment = env;
47
+ }
48
+ });
45
49
  }
46
50
  ngOnInit() {
51
+ // Mute all <audio> and <video> players on the page
52
+ document.querySelectorAll('audio, video').forEach((player) => {
53
+ player.muted = true;
54
+ });
47
55
  this.gs.dataRangeValue
48
56
  .pipe(takeUntil(this.detach))
49
57
  .pipe(debounceTime(1000))
@@ -65,11 +73,11 @@ export class ChecklistComponent {
65
73
  this.detach.complete();
66
74
  }
67
75
  setPageData() {
68
- this.pageInfo.setTitle("Manage Checklist");
76
+ this.pageInfo.setTitle("Dashboard");
69
77
  this.pageInfo.setDescription("Automate or create checklists to improve operational efficiency");
70
78
  this.pageInfo.setBreadcrumbs([
71
- { title: "Tango Trax", path: "/manage/trax/dashboard", isActive: false, isSeparator: false },
72
- { title: "Tango Trax", path: "/manage/trax/dashboard", isActive: false, isSeparator: true }
79
+ { title: "Dashboard", path: "/manage/trax/checklist", isActive: false, isSeparator: false },
80
+ { title: "Dashboard", path: "/manage/trax/checklist", isActive: false, isSeparator: true }
73
81
  ]);
74
82
  }
75
83
  getCheckList() {
@@ -267,11 +275,38 @@ export class ChecklistComponent {
267
275
  })).subscribe();
268
276
  sub.unsubscribe();
269
277
  }
278
+ cameraView() {
279
+ this.route.navigate(['/manage/trax/gallery'], {
280
+ queryParams: {
281
+ sourceCheckList_id: 'eyetest',
282
+ checklistType: 'AI'
283
+ }
284
+ });
285
+ }
286
+ cameraView1() {
287
+ this.route.navigate(['/manage/trax/gallery'], {
288
+ queryParams: {
289
+ sourceCheckList_id: 'factory',
290
+ checklistType: 'custom'
291
+ }
292
+ });
293
+ }
294
+ cameraView2() {
295
+ this.route.navigate(['/manage/trax/gallery'], {
296
+ queryParams: {
297
+ sourceCheckList_id: 'remoteoptometrist',
298
+ checklistType: 'AI'
299
+ }
300
+ });
301
+ }
302
+ manageView() {
303
+ this.route.navigateByUrl(`/manage/trax/managechecklist`);
304
+ }
270
305
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, deps: [{ token: i1.PageInfoService }, { token: i2.TraxService }, { token: i1.GlobalStateService }, { token: i3.ToastService }, { token: i4.Router }, { token: i5.NgbModal }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
271
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\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 class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && (data.checkListType === 'custom' || !['eyetest', 'remoteoptometrist', 'storehygienemonitoring', 'queuealert', 'suspiciousactivity', 'boxalert', 'suspiciousfootfall', 'drinking', 'bagdetection'].includes(data?.checkListType))) || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.rotate{rotate:180deg;transition:1s}\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.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.PaginationComponent, selector: "lib-pagination", inputs: ["collection", "itemsPerPage", "currentPage", "totalItems", "directionLinks", "pageSize", "paginationSizes"], outputs: ["pageChange", "pageSizeChange"] }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.TitleCasePipe, name: "titlecase" }] });
306
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ChecklistComponent, selector: "lib-checklist", ngImport: i0, template: "<div class=\"p-5 mb-10\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Create your own -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/tango traffic new final 5_1.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" [routerLink]=\"'/manage/traffic'\">Footfall</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Configure Predefined Checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/zone tango final 4-1.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" [routerLink]=\"'/manage/zones/v2'\">Zone</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead \">\r\n <!-- Configure your Predefined AI checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Manage Checklist (1).mov'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" /> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"manageView()\">SOP</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Create your own -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Layout-Verification.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" [routerLink]=\"'/manage/planogram/manage-planograms/verification'\">Planogram</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Configure Predefined Checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 \">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Eye test.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"cameraView()\">Eyetest</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Configure Predefined Checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/reomote optum 2_H.264-1 (1).mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"cameraView2()\">Remote Eyetest</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Create your own -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Factory qc.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"cameraView1()\">Factory</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n</div>\r\n<!-- <div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n \r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\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 class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && (data.checkListType === 'custom' || !['eyetest', 'remoteoptometrist', 'storehygienemonitoring', 'queuealert', 'suspiciousactivity', 'boxalert', 'suspiciousfootfall', 'drinking', 'bagdetection'].includes(data?.checkListType))) || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div> -->", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.rotate{rotate:180deg;transition:1s}\n"], dependencies: [{ kind: "directive", type: i4.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
272
307
  }
273
308
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ChecklistComponent, decorators: [{
274
309
  type: Component,
275
- args: [{ selector: 'lib-checklist', template: "<div class=\"card p-5 mb-10\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n [routerLink]=\"'/manage/trax/createChecklist'\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('predefined')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead \">\r\n Configure your Predefined AI checklist\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 cursor-pointer\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a (click)=\"redirectUrl('ai')\" class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <!-- <span class=\"text-sub mb-2\">Based on 06 Jan, 2022\u2013 13 Jan, 2022</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\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 class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && (data.checkListType === 'custom' || !['eyetest', 'remoteoptometrist', 'storehygienemonitoring', 'queuealert', 'suspiciousactivity', 'boxalert', 'suspiciousfootfall', 'drinking', 'bagdetection'].includes(data?.checkListType))) || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.rotate{rotate:180deg;transition:1s}\n"] }]
310
+ args: [{ selector: 'lib-checklist', template: "<div class=\"p-5 mb-10\">\r\n\r\n <!-- <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div> -->\r\n <div class=\"row\">\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Create your own -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/tango traffic new final 5_1.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" [routerLink]=\"'/manage/traffic'\">Footfall</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Configure Predefined Checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/zone tango final 4-1.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" [routerLink]=\"'/manage/zones/v2'\">Zone</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead \">\r\n <!-- Configure your Predefined AI checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Manage Checklist (1).mov'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" /> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"manageView()\">SOP</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Create your own -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Layout-Verification.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" [routerLink]=\"'/manage/planogram/manage-planograms/verification'\">Planogram</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Configure Predefined Checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4 \">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Eye test.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"cameraView()\">Eyetest</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Configure Predefined Checklist -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/reomote optum 2_H.264-1 (1).mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4 \">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"cameraView2()\">Remote Eyetest</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-2\">\r\n <div class=\"mb-2 checklistHead\">\r\n <!-- Create your own -->\r\n <!-- <span>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span> -->\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\">\r\n <div>\r\n <video class=\"w-100 borderClass h-250px\" controls autoplay loop style=\"object-fit: fill;\">\r\n <source [src]=\"environment.TraxAnswerCDN + 'demo-video/Factory qc.mp4'\"\r\n type=\"video/mp4\" />\r\n </video>\r\n <!-- <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/> -->\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-2 mb-4\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText cursor-pointer\" (click)=\"cameraView1()\">Factory</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n</div>\r\n<!-- <div class=\"card\">\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n \r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" *ngIf=\"!noData && (gs.userAccess | async)?.TangoTrax_checklist_isAdd\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\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 class=\"col-lg-12 pb-5\" *ngIf=\"!loading && noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a [routerLink]=\"'/manage/trax/createChecklist'\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\" *ngIf=\"(gs.userAccess | async)?.TangoTrax_checklist_isAdd\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!noData && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'coverage' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'coverage' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('questionCount')\">No. of questions <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'questionCount' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'questionCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 1 ? 'rotate' : ''\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <td class=\"text-capitalize\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n <span class=\"text-decoration-underline text-primary\" *ngIf=\"data?.checkListType === 'custom'\"><a [routerLink]=\"['/manage/trax/dashboard/info']\" [queryParams]=\"{type: 'Checklist', checklist: data._id }\" class=\"cursor-pointer\"> {{data.checkListName}}</a></span>\r\n <span class=\"text-primary\" *ngIf=\"data?.checkListType !== 'custom'\">{{data.checkListName}} <span *ngIf=\"data?.checkListType !== 'custom'\" class=\"mx-2\">\u2728</span></span>\r\n \r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td>{{data?.coverage}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td >{{data.questionCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"(!data?.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('edit',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"(!data.publish && data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6\" [ngClass]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('setting',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"((gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\r\n [attr.stroke]=\"(gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"\" [ngClass]=\"(data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit) ? 'cursor-pointer' : ''\" (click)=\"checkPermission('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\r\n [attr.stroke]=\"data.checkListType === 'custom' && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"checkPermission('delete',data)\" [ngClass]=\"!data?.publish && (gs.userAccess | async)?.TangoTrax_checklist_isEdit ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"(!(gs.userAccess | async)?.TangoTrax_checklist_isEdit || data.publish || data.checkListType !== 'custom') ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"(!data?.storeCount && (data.checkListType === 'custom' || !['eyetest', 'remoteoptometrist', 'storehygienemonitoring', 'queuealert', 'suspiciousactivity', 'boxalert', 'suspiciousfootfall', 'drinking', 'bagdetection'].includes(data?.checkListType))) || !(gs.userAccess | async)?.TangoTrax_checklist_isEdit\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\" [currentPage]=\"dynamicData.offset\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div> -->", styles: [".borderClass{border-radius:13px 13px 0 0/13px 13px 0px 0px}.checklistText{color:var(--Black, #101828);font-family:Inter;font-size:18px;font-style:normal;font-weight:600;line-height:28px}.checklistHead{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px}.checklistTitle{color:var(--Black, #101828);font-family:Inter;font-size:22px!important;font-style:normal;font-weight:600;line-height:32px}.checkStart{color:var(--Gray-900, #101828);text-align:center;font-family:Inter;font-size:16px;font-style:normal;font-weight:600;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.rotate{rotate:180deg;transition:1s}\n"] }]
276
311
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.TraxService }, { type: i1.GlobalStateService }, { type: i3.ToastService }, { type: i4.Router }, { type: i5.NgbModal }, { type: i0.ChangeDetectorRef }] });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sa0JBQWtCO0lBbUJUO0lBQWlDO0lBQStCO0lBQThCO0lBQTJCO0lBQXFCO0lBQXdCO0lBbEIxTCxPQUFPLEdBQVcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sR0FBVyxLQUFLLENBQUM7SUFDdkIsUUFBUSxHQUFRLEVBQUUsQ0FBQztJQUNuQixVQUFVLENBQVE7SUFDbEIsZUFBZSxHQUFPLEVBQUUsQ0FBQztJQUN6QixhQUFhLEdBQU8sRUFBRSxDQUFDO0lBQ2YsTUFBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDL0IsV0FBVyxHQUFPO1FBQ2hCLFFBQVEsRUFBQyxFQUFFO1FBQ1gsU0FBUyxFQUFDLEVBQUU7UUFDWixPQUFPLEVBQUMsRUFBRTtRQUNWLEtBQUssRUFBQyxFQUFFO1FBQ1IsTUFBTSxFQUFDLENBQUM7UUFDUixVQUFVLEVBQUMsRUFBRTtRQUNiLE1BQU0sRUFBQyxFQUFFO1FBQ1QsTUFBTSxFQUFDLEVBQUU7S0FDVixDQUFDO0lB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QyxJQUFJLEVBQUMsSUFBSSxDQUFDLENBQUE7cUJBQ3pCO2lCQUNGO3FCQUFLLElBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxRQUFRLEVBQUU7b0JBQ3RDLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQTtpQkFDM0M7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUE7UUFFZixHQUFHLENBQUMsV0FBVyxFQUFFLENBQUE7SUFDbkIsQ0FBQzt3R0FqUVUsa0JBQWtCOzRGQUFsQixrQkFBa0IscURDZC9CLDZ4L0JBeVVNOzs0RkQzVE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge21hcCwgU3ViamVjdCwgdGFrZVVudGlsLCBkZWJvdW5jZVRpbWV9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJheHBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi4vdHJheHBvcHVwL3RyYXhwb3B1cC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVHJheFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmF4LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY2hlY2tsaXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY2hlY2tsaXN0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tsaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgbG9hZGluZzpib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIHBhZ2VTaXplOm51bWJlcj0xMDtcclxuICB0b3RhbEl0ZW1zOm51bWJlcjtcclxuICBwYWdpbmF0aW9uU2l6ZXM6YW55ID0gW107XHJcbiAgY2hlY2tsaXN0RGF0YTphbnkgPSBbXTtcclxuICBwcml2YXRlIGRldGFjaCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZHluYW1pY0RhdGE6YW55ID0ge1xyXG4gICAgY2xpZW50SWQ6JycsXHJcbiAgICBzdGFydERhdGU6JycsXHJcbiAgICBlbmREYXRlOicnLFxyXG4gICAgbGltaXQ6MTAsXHJcbiAgICBvZmZzZXQ6MSxcclxuICAgIHNvcnRDb2x1bW46JycsXHJcbiAgICBzb3J0Qnk6JycsXHJcbiAgICBzZWFyY2g6JydcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZSxwcml2YXRlIHRyYXhTZXJ2aWNlOlRyYXhTZXJ2aWNlLHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UscHJpdmF0ZSByb3V0ZTpSb3V0ZXIscHJpdmF0ZSBkaWFsb2c6TmdiTW9kYWwscHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZiApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSlcclxuICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcclxuICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGF0YT8uY2xpZW50KSB7XHJcbiAgICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KClcclxuICAgICAgfSBlbHNle1xyXG4gICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnaGVhZGVyLWZpbHRlcnMnKSBhcyBzdHJpbmcpO1xyXG4gICAgICAgIHRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpXHJcbiAgICAgIH1cclxuIFxyXG4gICAgfSlcclxuICAgIHRoaXMuc2V0UGFnZURhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXRhY2gubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGV0YWNoLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQYWdlRGF0YSgpIHtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0VGl0bGUoXCJNYW5hZ2UgQ2hlY2tsaXN0XCIpO1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbihcIkF1dG9tYXRlIG9yIGNyZWF0ZSBjaGVja2xpc3RzIHRvIGltcHJvdmUgb3BlcmF0aW9uYWwgZWZmaWNpZW5jeVwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0QnJlYWRjcnVtYnMoW1xyXG4gICAgICB7IHRpdGxlOiBcIlRhbmdvIFRyYXhcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvZGFzaGJvYXJkXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gVHJheFwiLCBwYXRoOiBcIi9tYW5hZ2UvdHJheC9kYXNoYm9hcmRcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZSB9XHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGdldENoZWNrTGlzdCgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnRyYXhTZXJ2aWNlLmNoZWNrbGlzdCh0aGlzLmR5bmFtaWNEYXRhKS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpPy5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KSA9PiB7XHJcbiAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCAmJiByZXMuZGF0YS5yZXN1bHQubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmNoZWNrbGlzdERhdGEgPSByZXMuZGF0YS5yZXN1bHQ7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsSXRlbXMgPSByZXMuZGF0YS5jb3VudDtcclxuICAgICAgICAgIGlmKHRoaXMudG90YWxJdGVtcyA8IDEwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxJdGVtc107XHJcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmNoZWNrbGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLDIwLDMwXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnJvcjphbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycm9yLmVycm9yLmVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25Tb3J0KGNvbHVtbjphbnkpIHtcclxuICAgIGlmICh0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT0gY29sdW1uKSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPT0gMSA/IC0xIDogMTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPSBjb2x1bW47XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gMTtcclxuICAgIH1cclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6YW55KSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLmxpbWl0ID0gZXZlbnQ7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gZXZlbnQ7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3QoZGF0YTogYW55LCBkZXRhaWxzOiBhbnksY2hlY2tMaXN0VHlwZT86YW55KSB7XHJcbiAgICBpZihkYXRhID09ICdlZGl0Jykge1xyXG4gICAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3Q/Y2hlY2tsaXN0SWQ9JHtkZXRhaWxzfWApXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGRhdGEgPT0gJ3NldHRpbmcnICYmICFjaGVja0xpc3RUeXBlKSB7XHJcbiAgICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgL21hbmFnZS90cmF4L2NvbmZpZ3VyZT9jaGVja0xpc3RJZD0ke2RldGFpbHN9JmRpc2FibGVkUXVlc3Rpb249dHJ1ZWApXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKGRhdGEgPT0gJ3NldHRpbmcnICYmIGNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2FpY2hlY2tMaXN0SWQ9JHtkZXRhaWxzfSZkaXNhYmxlZFF1ZXN0aW9uPXRydWUmdHlwZT0ke2NoZWNrTGlzdFR5cGV9YClcclxuICAgIH1cclxuICAgIGVsc2UgaWYoZGF0YSA9PSAnZHVwbGljYXRlJykge1xyXG4gICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0RBRjFGRlwiLz48ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzU1NDVfNjc0MylcIj48cGF0aCBkPVwiTTEzLjMzMyAyMC4wMDA3SDEyLjY2NjNDMTIuMzEyNyAyMC4wMDA3IDExLjk3MzYgMTkuODYwMiAxMS43MjM1IDE5LjYxMDFDMTEuNDczNSAxOS4zNjAxIDExLjMzMyAxOS4wMjA5IDExLjMzMyAxOC42NjczVjEyLjY2NzNDMTEuMzMzIDEyLjMxMzcgMTEuNDczNSAxMS45NzQ2IDExLjcyMzUgMTEuNzI0NUMxMS45NzM2IDExLjQ3NDUgMTIuMzEyNyAxMS4zMzQgMTIuNjY2MyAxMS4zMzRIMTguNjY2M0MxOS4wMiAxMS4zMzQgMTkuMzU5MSAxMS40NzQ1IDE5LjYwOTIgMTEuNzI0NUMxOS44NTkyIDExLjk3NDYgMTkuOTk5NyAxMi4zMTM3IDE5Ljk5OTcgMTIuNjY3M1YxMy4zMzRNMTcuMzMzIDE2LjAwMDdIMjMuMzMzQzI0LjA2OTQgMTYuMDAwNyAyNC42NjYzIDE2LjU5NzYgMjQuNjY2MyAxNy4zMzRWMjMuMzM0QzI0LjY2NjMgMjQuMDcwNCAyNC4wNjk0IDI0LjY2NzMgMjMuMzMzIDI0LjY2NzNIMTcuMzMzQzE2LjU5NjYgMjQuNjY3MyAxNS45OTk3IDI0LjA3MDQgMTUuOTk5NyAyMy4zMzRWMTcuMzM0QzE1Ljk5OTcgMTYuNTk3NiAxNi41OTY2IDE2LjAwMDcgMTcuMzMzIDE2LjAwMDdaXCIgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PC9nPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjRcIi8+PGRlZnM+PGNsaXBQYXRoIGlkPVwiY2xpcDBfNTU0NV82NzQzXCI+PHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwIDEwKVwiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgRHVwbGljYXRlICcke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGR1cGxpY2F0ZSA8Yj4nJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9Jz88L2I+IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnZHVwbGljYXRlJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6dHJ1ZSxzaXplOidtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7IFxyXG4gICAgICAgIGlmIChyZXMgPT0gJ2R1cGxpY2F0ZScpIHtcclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZHVwbGljYXRlY2hlY2tsaXN0KHtjaGVja2xpc3RJZDpkZXRhaWxzLl9pZCxjbGllbnRJZDp0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIGR1cGxpY2F0ZWQuYCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjooZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0ZFRTRFMlwiLz48cGF0aCBkPVwiTTEyIDE0LjAwMDdIMTMuMzMzM00xMy4zMzMzIDE0LjAwMDdIMjRNMTMuMzMzMyAxNC4wMDA3VjIzLjMzNEMxMy4zMzMzIDIzLjY4NzYgMTMuNDczOCAyNC4wMjY3IDEzLjcyMzkgMjQuMjc2OEMxMy45NzM5IDI0LjUyNjggMTQuMzEzIDI0LjY2NzMgMTQuNjY2NyAyNC42NjczSDIxLjMzMzNDMjEuNjg3IDI0LjY2NzMgMjIuMDI2MSAyNC41MjY4IDIyLjI3NjEgMjQuMjc2OEMyMi41MjYyIDI0LjAyNjcgMjIuNjY2NyAyMy42ODc2IDIyLjY2NjcgMjMuMzM0VjE0LjAwMDdIMTMuMzMzM1pNMTUuMzMzMyAxNC4wMDA3VjEyLjY2NzNDMTUuMzMzMyAxMi4zMTM3IDE1LjQ3MzggMTEuOTc0NiAxNS43MjM5IDExLjcyNDVDMTUuOTczOSAxMS40NzQ1IDE2LjMxMyAxMS4zMzQgMTYuNjY2NyAxMS4zMzRIMTkuMzMzM0MxOS42ODcgMTEuMzM0IDIwLjAyNjEgMTEuNDc0NSAyMC4yNzYxIDExLjcyNDVDMjAuNTI2MiAxMS45NzQ2IDIwLjY2NjcgMTIuMzEzNyAyMC42NjY3IDEyLjY2NzNWMTQuMDAwN00xNi42NjY3IDE3LjMzNFYyMS4zMzRNMTkuMzMzMyAxNy4zMzRWMjEuMzM0XCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgRGVsZXRlICcke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSA8Yj4nJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9Jz88L2I+IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7Y2VudGVyZWQ6dHJ1ZSxzaXplOidtZCd9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7IFxyXG4gICAgICAgIGlmIChyZXMgPT0gJ2RlbGV0ZScpIHtcclxuICAgICAgICAgIHRoaXMudHJheFNlcnZpY2UuZGVsZXRlQ2hlY2tsaXN0KHtpZDpkZXRhaWxzLl9pZCxjbGllbnRJZDp0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDoocmVzOmFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIERlbGV0ZWQuYCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjooZXJyb3I6YW55KSA9PntcclxuICAgICAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnU29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGlzaChldmVudDphbnksZGF0YTphbnksaTpudW1iZXIpIHtcclxuICAgIGxldCBwb3B1cGNvbnRlbnQ7XHJcbiAgICBsZXQgaHRtbENvbnRlbnQ6YW55O1xyXG4gICAgaWYoZXZlbnQudGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgZmlsbD1cIiNEMUZBREZcIi8+PHBhdGggZD1cIk0zOCAyNy4wODE4VjI4LjAwMThDMzcuOTk4OCAzMC4xNTgyIDM3LjMwMDUgMzIuMjU2NSAzNi4wMDkzIDMzLjk4MzZDMzQuNzE4MiAzNS43MTA4IDMyLjkwMzMgMzYuOTc0MyAzMC44MzU0IDM3LjU4NTdDMjguNzY3NCAzOC4xOTcxIDI2LjU1NzMgMzguMTIzNyAyNC41MzQ1IDM3LjM3NjRDMjIuNTExNyAzNi42MjkxIDIwLjc4NDcgMzUuMjQ3OSAxOS42MTEgMzMuNDM4OUMxOC40MzczIDMxLjYyOTkgMTcuODc5OCAyOS40ODk5IDE4LjAyMTcgMjcuMzM4MUMxOC4xNjM2IDI1LjE4NjQgMTguOTk3MiAyMy4xMzgxIDIwLjM5ODMgMjEuNDk4OUMyMS43OTk0IDE5Ljg1OTYgMjMuNjkyOCAxOC43MTcyIDI1Ljc5NjIgMTguMjQyQzI3Ljg5OTYgMTcuNzY2NyAzMC4xMDAzIDE3Ljk4NDIgMzIuMDcgMTguODYxOE0zOCAyMC4wMDE4TDI4IDMwLjAxMThMMjUgMjcuMDExOFwiIHN0cm9rZT1cIiMwMzk4NTVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VDRkRGM1wiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBwdWJsaXNoICcke2RhdGEuY2hlY2tMaXN0TmFtZX0nIGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBQdWJsaXNoaW5nIHdpbGwgbWFrZSB0aGlzIGNoZWNrbGlzdCBsaXZlLCBhbmQgY2hhbmdlcyB3aWxsIHRha2UgZWZmZWN0IGltbWVkaWF0ZWx5LmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgaHRtbENvbnRlbnQ9IGAke2RhdGEuY2hlY2tMaXN0TmFtZX0gaGFzIGJlZW4gcHVibGlzaGVkPC9kaXY+YDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NiA1NlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBmaWxsPVwiI0ZFRjBDN1wiLz48cGF0aCBkPVwiTTI3Ljk5OTggMjQuMDAxMlYyOC4wMDEyTTI3Ljk5OTggMzIuMDAxMkgyOC4wMDk4TTI2LjI4OTggMTguODYxMkwxNy44MTk4IDMzLjAwMTJDMTcuNjQ1MSAzMy4zMDM2IDE3LjU1MjcgMzMuNjQ2NSAxNy41NTE4IDMzLjk5NTdDMTcuNTUwOCAzNC4zNDQ5IDE3LjY0MTMgMzQuNjg4MyAxNy44MTQyIDM0Ljk5MTdDMTcuOTg3MSAzNS4yOTUxIDE4LjIzNjUgMzUuNTQ3OSAxOC41Mzc1IDM1LjcyNUMxOC44Mzg1IDM1LjkwMjEgMTkuMTgwNiAzNS45OTczIDE5LjUyOTggMzYuMDAxMkgzNi40Njk4QzM2LjgxOSAzNS45OTczIDM3LjE2MTEgMzUuOTAyMSAzNy40NjIxIDM1LjcyNUMzNy43NjMxIDM1LjU0NzkgMzguMDEyNCAzNS4yOTUxIDM4LjE4NTQgMzQuOTkxN0MzOC4zNTgzIDM0LjY4ODMgMzguNDQ4OCAzNC4zNDQ5IDM4LjQ0NzggMzMuOTk1N0MzOC40NDY4IDMzLjY0NjUgMzguMzU0NCAzMy4zMDM2IDM4LjE3OTggMzMuMDAxMkwyOS43MDk4IDE4Ljg2MTJDMjkuNTMxNSAxOC41NjczIDI5LjI4MDUgMTguMzI0MyAyOC45ODEgMTguMTU1N0MyOC42ODE0IDE3Ljk4NyAyOC4zNDM1IDE3Ljg5ODQgMjcuOTk5OCAxNy44OTg0QzI3LjY1NiAxNy44OTg0IDI3LjMxODEgMTcuOTg3IDI3LjAxODYgMTguMTU1N0MyNi43MTkxIDE4LjMyNDMgMjYuNDY4IDE4LjU2NzMgMjYuMjg5OCAxOC44NjEyWlwiIHN0cm9rZT1cIiNEQzY4MDNcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0ZGRkFFQlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB1bnB1Ymxpc2gg4oCYJHtkYXRhLmNoZWNrTGlzdE5hbWV94oCZIGNoZWNrbGlzdD9gLFxyXG4gICAgICAgIGNvbnRlbnQ6IGBVbnB1Ymxpc2hpbmcgd2lsbCByZW1vdmUgdGhpcyBjaGVja2xpc3QgaW1tZWRpYXRlbHksIGFuZCBpdCB3aWxsIG5vIGxvbmdlciBiZSB2aXNpYmxlIHRvIGFzc2lnbmVkIGxvY2F0aW9ucy5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGh0bWxDb250ZW50PSBgJHtkYXRhLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIHVucHVibGlzaGVkYDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOnRydWUsc2l6ZTonbWQnIFxyXG4gICAgfSk7XHJcbiAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMgPT0gJ2NvbmZpcm0nKSB7XHJcbiAgICAgICAgdGhpcy50cmF4U2VydmljZS5wdWJsaXNoKHtwdWJsaXNoOiBldmVudC50YXJnZXQuY2hlY2tlZCxjbGllbnRJZDp0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkLGNoZWNrbGlzdElkOmRhdGEuX2lkfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKHJlc3VsdDphbnkpID0+e1xyXG4gICAgICAgICAgaWYocmVzdWx0ICYmIHJlc3VsdC5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZGF0YS5wdWJsaXNoXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSwoZXJyb3I6YW55KSA9PiB7XHJcbiAgICAgICAgICBldmVudC50YXJnZXQuY2hlY2tlZCA9IGRhdGEucHVibGlzaDtcclxuICAgICAgICAgIGxldCBlcnIgPSBlcnJvcj8uZXJyb3I/LmVycm9yIHx8ICdQbGVhc2UgdHJ5IGFmdGVyIHNvbWV0aW1lcyc7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIH0gXHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZGF0YS5wdWJsaXNoO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9IFxyXG4gICAgfSlcclxuICB9XHJcblxyXG5cclxuICBzZWFyY2goKSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IDE7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLmxpbWl0ID0gMTA7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gMTA7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPSAnJztcclxuICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydEJ5ID0gJyc7XHJcbiAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVkaXJlY3RVcmwodHlwZTphbnkpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgL21hbmFnZS90cmF4L2NoZWNrbGlzdC9tYW5hZ2VjaGVja2xpc3Q/dHlwZT0ke3R5cGV9YClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvbih0eXBlOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgc3ViID0gIHRoaXMuZ3MudXNlckFjY2Vzcy5waXBlKG1hcCgodmFsKT0+e1xyXG4gICAgICBpZih2YWw/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KXtcclxuICAgICAgICBpZihkYXRhLmNoZWNrTGlzdFR5cGUgPT0gJ2N1c3RvbScpIHtcclxuICAgICAgICAgIGlmKFsnZWRpdCcsJ2RlbGV0ZSddLmluY2x1ZGVzKHR5cGUpICYmICFkYXRhLnB1Ymxpc2gpIHtcclxuICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ2VkaXQnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0KHR5cGUsZGF0YSlcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmKFsnZHVwbGljYXRlJywnc2V0dGluZyddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSB0eXBlID09ICdzZXR0aW5nJyA/IGRhdGEuX2lkIDogZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdCh0eXBlLGRhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfWVsc2UgaWYoZGF0YS5jaGVja0xpc3RUeXBlICE9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgICBjb25zdCBpZCA9IHR5cGUgPT0gJ3NldHRpbmcnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0KHR5cGUsaWQsZGF0YT8uY2hlY2tMaXN0VHlwZSlcclxuICAgICAgICAgIH1cclxuICAgICAgfSBcclxuICAgIH0pKS5zdWJzY3JpYmUoKVxyXG5cclxuICAgIHN1Yi51bnN1YnNjcmliZSgpXHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBwLTUgbWItMTBcIiAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzQWRkXCI+XHJcblxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBtdC0zXCI+XHJcbiAgICAgICAgPGgxIGNsYXNzPVwiIG15LTAgY2hlY2tsaXN0VGl0bGVcIj5cclxuICAgICAgICAgICAgTWFuYWdlIFlvdXIgQ2hlY2tsaXN0XHJcbiAgICAgICAgPC9oMT5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBjaGVja2xpc3RIZWFkXCI+WW91IGNhbiBjcmVhdGUgYW5kIG1hbmFnZSB5b3VyIGNoZWNrbGlzdCBoZXJlPC9kaXY+XHJcbiAgICA8L2Rpdj4gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93IG10LTEwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIENyZWF0ZSB5b3VyIG93biBcclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZC1ibG9ja1wiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvbmV3Q2hlY2tsaXN0LnN2Z1wiICBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC04IG1iLThcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0XCI+Q3JlYXRlIE5ldyBDaGVja2xpc3RzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgQ29uZmlndXJlIFByZWRlZmluZWQgQ2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTQgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJlZGlyZWN0VXJsKCdwcmVkZWZpbmVkJylcIiBjbGFzcz1cImQtYmxvY2sgdy0xMDBcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL3ByZWRlZmluZWQuc3ZnXCIgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtOCBtYi04IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DaG9vc2UgZnJvbSBhIGxpYnJhcnkgb2YgdGVtcGxhdGVzPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZCBcIj5cclxuICAgICAgICAgICAgICAgIENvbmZpZ3VyZSB5b3VyIFByZWRlZmluZWQgQUkgY2hlY2tsaXN0XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTQgY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInJlZGlyZWN0VXJsKCdhaScpXCIgY2xhc3M9XCJkLWJsb2NrIHctMTAwXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvYWljaGVja2xpc3Quc3ZnXCIgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTggbWItOFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHRcIj5DaG9vc2UgZnJvbSBhIGxpYnJhcnkgb2YgQUkgQ2hlY2tsaXN0czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG10LTNcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTAgcHQtMyBtYi01XCI+XHJcbiAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtdGV4dCBtYi0yXCI+Q2hlY2tsaXN0IEluZm88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwidGV4dC1zdWIgbWItMlwiPkJhc2VkIG9uIDA2IEphbiwgMjAyMuKAkyAxMyBKYW4sIDIwMjI8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC41XCIgeD1cIjE3LjAzNjVcIiB5PVwiMTUuMTIyM1wiIHdpZHRoPVwiOC4xNTU0NlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgMTcuMDM2NSAxNS4xMjIzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUM2LjU1NTU2IDE5IDMgMTUuNDQ0NCAzIDExQzMgNi41NTU1NiA2LjU1NTU2IDMgMTEgM0MxNS40NDQ0IDMgMTkgNi41NTU1NiAxOSAxMUMxOSAxNS40NDQ0IDE1LjQ0NDQgMTkgMTEgMTlaTTExIDVDNy41MzMzMyA1IDUgNy41MzMzMyA1IDExQzUgMTQuNDY2NyA3LjUzMzMzIDE3IDExIDE3QzE0LjQ2NjcgMTcgMTcgMTQuNDY2NyAxNyAxMUMxNyA3LjUzMzMzIDE0LjQ2NjcgNSAxMSA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHMtMTQgbWUtMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgWyhuZ01vZGVsKV09XCJkeW5hbWljRGF0YS5zZWFyY2hcIiAoY2hhbmdlKT1cInNlYXJjaCgpXCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIW5vRGF0YSAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0FkZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjY5OVYxNS44MzM3TTQuMTY3OTcgMTAuMDAwM0gxNS44MzQ2XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkNyZWF0ZSBDaGVja2xpc3Q8L3NwYW4+IDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIHBiLTVcIiAqbmdJZj1cIiFsb2FkaW5nICYmIG5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJzdGFydGNoZWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdF90ZXh0IGZ3LXNlbWlib2xkIG10LTYgY2hlY2tTdGFydFwiPlN0YXJ0IGJ5IGNyZWF0aW5nIGEgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0X3NwYW4gbXQtMSBjaGVja2xpc3RIZWFkXCI+QW55IGNoZWNrbGlzdCBjcmVhdGVkIHdpbGwgbGl2ZSBoZXJlLjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS10b29sYmFyPVwiYmFzZVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpL1wiIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUgYnRuIGJ0bi1saWdodCB1cGxvYWQgbXgtMyBweC0xNiBjaGVja1N0YXJ0XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+SG93IFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZT88L3NwYW4+PC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTE2IG14LTIgbmctc3Rhci1pbnNlcnRlZCBjaGVja1N0YXJ0XCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMDEgNC4xNjYwMlYxNS44MzI3TTQuMTY2NzUgOS45OTkzNUgxNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJjcmVhdGVcIj5DcmVhdGUgTmV3PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIiBjYWxzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidy0xMDAgdGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY2hlY2tMaXN0TmFtZScpXCI+Q2hlY2tsaXN0IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjaGVja0xpc3ROYW1lJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NoZWNrTGlzdE5hbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NyZWF0ZWRCeU5hbWUnKVwiPkNoZWNrbGlzdCBPd25lciA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY3JlYXRlZEJ5TmFtZScgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjcmVhdGVkQnlOYW1lJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjb3ZlcmFnZScpXCI+Q292ZXJhZ2UgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NvdmVyYWdlJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NvdmVyYWdlJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdzdG9yZUNvdW50JylcIj5Bc3NpZ25lZCBUbyA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVDb3VudCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUNvdW50JyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdxdWVzdGlvbkNvdW50JylcIj5Oby4gb2YgcXVlc3Rpb25zIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdxdWVzdGlvbkNvdW50JyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3F1ZXN0aW9uQ291bnQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0YXR1cycpXCI+U3RhdHVzIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RhdHVzJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5BY3Rpb25zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3B1Ymxpc2gnKVwiPlB1Ymxpc2ggPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3B1Ymxpc2gnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgY2hlY2tsaXN0RGF0YTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSAoY2xpY2spPVwic3RvcmVWaWV3KG9iailcIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtY2FwaXRhbGl6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzeW1ib2wgc3ltYm9sLTM1cHggc3ltYm9sLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN5bWJvbC1sYWJlbCBiZy1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtZS0yXCI+e3tkYXRhLmNoZWNrTGlzdENoYXIudG9VcHBlckNhc2UoKX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1kZWNvcmF0aW9uLXVuZGVybGluZSB0ZXh0LXByaW1hcnlcIiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nXCI+PGEgW3JvdXRlckxpbmtdPVwiWycvbWFuYWdlL3RyYXgvZGFzaGJvYXJkL2luZm8nXVwiIFtxdWVyeVBhcmFtc109XCJ7dHlwZTogJ0NoZWNrbGlzdCcsIGNoZWNrbGlzdDogZGF0YS5faWQgfVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj4ge3tkYXRhLmNoZWNrTGlzdE5hbWV9fTwvYT48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXByaW1hcnlcIiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nXCI+e3tkYXRhLmNoZWNrTGlzdE5hbWV9fSA8c3BhbiAqbmdJZj1cImRhdGE/LmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nXCIgY2xhc3M9XCJteC0yXCI+4pyoPC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhLmNyZWF0ZWRCeU5hbWV9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+e3tkYXRhPy5jb3ZlcmFnZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA+e3tkYXRhLnN0b3JlQ291bnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgPnt7ZGF0YS5xdWVzdGlvbkNvdW50fX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiYmFkZ2VcIiBbbmdDbGFzc109XCJkYXRhLnB1Ymxpc2ggPyAnYmFkZ2UtbGlnaHQtc3VjY2VzcycgOiAnYmFkZ2UtbGlnaHQtcHJpbWFyeSdcIj57eyhkYXRhLnB1Ymxpc2ggPyAnUHVibGlzaGVkJyA6J2RyYWZ0JykgfCB0aXRsZWNhc2V9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWUtNlwiIFtuZ0NsYXNzXT1cIighZGF0YT8ucHVibGlzaCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdlZGl0JyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0wLjgzMjAzMSA5Ljk5OTY3QzAuODMyMDMxIDkuOTk5NjcgNC4xNjUzNiAzLjMzMzAxIDkuOTk4NyAzLjMzMzAxQzE1LjgzMiAzLjMzMzAxIDE5LjE2NTQgOS45OTk2NyAxOS4xNjU0IDkuOTk5NjdDMTkuMTY1NCA5Ljk5OTY3IDE1LjgzMiAxNi42NjYzIDkuOTk4NyAxNi42NjYzQzQuMTY1MzYgMTYuNjY2MyAwLjgzMjAzMSA5Ljk5OTY3IDAuODMyMDMxIDkuOTk5NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCFkYXRhLnB1Ymxpc2ggJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS45OTg3IDEyLjQ5OTdDMTEuMzc5NCAxMi40OTk3IDEyLjQ5ODcgMTEuMzgwNCAxMi40OTg3IDkuOTk5NjdDMTIuNDk4NyA4LjYxODk2IDExLjM3OTQgNy40OTk2NyA5Ljk5ODcgNy40OTk2N0M4LjYxNzk5IDcuNDk5NjcgNy40OTg3IDguNjE4OTYgNy40OTg3IDkuOTk5NjdDNy40OTg3IDExLjM4MDQgOC42MTc5OSAxMi40OTk3IDkuOTk4NyAxMi40OTk3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighZGF0YS5wdWJsaXNoICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02XCIgW25nQ2xhc3NdPVwiKChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignc2V0dGluZycsZGF0YSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIyNTRfMjAyNjEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIigoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNi4xNjU0IDEyLjQ5OTdDMTYuMDU0NCAxMi43NTEgMTYuMDIxMyAxMy4wMjk4IDE2LjA3MDQgMTMuMzAwMkMxNi4xMTk0IDEzLjU3MDUgMTYuMjQ4MiAxMy44MTk5IDE2LjQ0MDQgMTQuMDE2M0wxNi40OTA0IDE0LjA2NjNDMTYuNjQ1MyAxNC4yMjExIDE2Ljc2ODMgMTQuNDA0OSAxNi44NTIxIDE0LjYwNzNDMTYuOTM2IDE0LjgwOTYgMTYuOTc5MiAxNS4wMjY1IDE2Ljk3OTIgMTUuMjQ1NUMxNi45NzkyIDE1LjQ2NDUgMTYuOTM2IDE1LjY4MTQgMTYuODUyMSAxNS44ODM3QzE2Ljc2ODMgMTYuMDg2MSAxNi42NDUzIDE2LjI2OTkgMTYuNDkwNCAxNi40MjQ3QzE2LjMzNTYgMTYuNTc5NiAxNi4xNTE4IDE2LjcwMjYgMTUuOTQ5NCAxNi43ODY0QzE1Ljc0NzEgMTYuODcwMyAxNS41MzAyIDE2LjkxMzUgMTUuMzExMiAxNi45MTM1QzE1LjA5MjIgMTYuOTEzNSAxNC44NzUzIDE2Ljg3MDMgMTQuNjczIDE2Ljc4NjRDMTQuNDcwNiAxNi43MDI2IDE0LjI4NjggMTYuNTc5NiAxNC4xMzIgMTYuNDI0N0wxNC4wODIgMTYuMzc0N0MxMy44ODU2IDE2LjE4MjYgMTMuNjM2MiAxNi4wNTM3IDEzLjM2NTkgMTYuMDA0N0MxMy4wOTU1IDE1Ljk1NTcgMTIuODE2NyAxNS45ODg3IDEyLjU2NTQgMTYuMDk5N0MxMi4zMTg5IDE2LjIwNTMgMTIuMTA4NyAxNi4zODA3IDExLjk2MDYgMTYuNjA0M0MxMS44MTI2IDE2LjgyNzkgMTEuNzMzMSAxNy4wODk5IDExLjczMiAxNy4zNThWMTcuNDk5N0MxMS43MzIgMTcuOTQxNyAxMS41NTY0IDE4LjM2NTYgMTEuMjQzOSAxOC42NzgyQzEwLjkzMTMgMTguOTkwNyAxMC41MDc0IDE5LjE2NjMgMTAuMDY1NCAxOS4xNjYzQzkuNjIzMzQgMTkuMTY2MyA5LjE5OTQxIDE4Ljk5MDcgOC44ODY4NSAxOC42NzgyQzguNTc0MjkgMTguMzY1NiA4LjM5ODcgMTcuOTQxNyA4LjM5ODcgMTcuNDk5N1YxNy40MjQ3QzguMzkyMjUgMTcuMTQ4OCA4LjMwMjk2IDE2Ljg4MTMgOC4xNDI0NiAxNi42NTY5QzcuOTgxOTUgMTYuNDMyNSA3Ljc1NzY0IDE2LjI2MTYgNy40OTg3IDE2LjE2NjNDNy4yNDczNSAxNi4wNTU0IDYuOTY4NTQgMTYuMDIyMyA2LjY5ODIxIDE2LjA3MTNDNi40Mjc4OCAxNi4xMjA0IDYuMTc4NDMgMTYuMjQ5MiA1Ljk4MjAzIDE2LjQ0MTNMNS45MzIwMyAxNi40OTEzQzUuNzc3MjQgMTYuNjQ2MyA1LjU5MzQzIDE2Ljc2OTIgNS4zOTExIDE2Ljg1MzFDNS4xODg3NyAxNi45MzcgNC45NzE4OSAxNi45ODAyIDQuNzUyODYgMTYuOTgwMkM0LjUzMzg0IDE2Ljk4MDIgNC4zMTY5NiAxNi45MzcgNC4xMTQ2MyAxNi44NTMxQzMuOTEyMyAxNi43NjkyIDMuNzI4NDkgMTYuNjQ2MyAzLjU3MzcgMTYuNDkxM0MzLjQxODc0IDE2LjMzNjYgMy4yOTU4MSAxNi4xNTI3IDMuMjExOTMgMTUuOTUwNEMzLjEyODA2IDE1Ljc0ODEgMy4wODQ4OSAxNS41MzEyIDMuMDg0ODkgMTUuMzEyMkMzLjA4NDg5IDE1LjA5MzEgMy4xMjgwNiAxNC44NzYzIDMuMjExOTMgMTQuNjczOUMzLjI5NTgxIDE0LjQ3MTYgMy40MTg3NCAxNC4yODc4IDMuNTczNyAxNC4xMzNMMy42MjM3IDE0LjA4M0MzLjgxNTgxIDEzLjg4NjYgMy45NDQ2OSAxMy42MzcyIDMuOTkzNyAxMy4zNjY4QzQuMDQyNzIgMTMuMDk2NSA0LjAwOTYzIDEyLjgxNzcgMy44OTg3IDEyLjU2NjNDMy43OTMwNiAxMi4zMTk5IDMuNjE3NjYgMTIuMTA5NyAzLjM5NDA5IDExLjk2MTZDMy4xNzA1MSAxMS44MTM1IDIuOTA4NTIgMTEuNzM0MSAyLjY0MDM2IDExLjczM0gyLjQ5ODdDMi4wNTY2NyAxMS43MzMgMS42MzI3NSAxMS41NTc0IDEuMzIwMTkgMTEuMjQ0OUMxLjAwNzYzIDEwLjkzMjMgMC44MzIwMzEgMTAuNTA4NCAwLjgzMjAzMSAxMC4wNjYzQzAuODMyMDMxIDkuNjI0MzEgMS4wMDc2MyA5LjIwMDM5IDEuMzIwMTkgOC44ODc4M0MxLjYzMjc1IDguNTc1MjcgMi4wNTY2NyA4LjM5OTY3IDIuNDk4NyA4LjM5OTY3SDIuNTczN0MyLjg0OTUzIDguMzkzMjIgMy4xMTcwMyA4LjMwMzk0IDMuMzQxNDUgOC4xNDM0M0MzLjU2NTg2IDcuOTgyOTMgMy43MzY3OSA3Ljc1ODYyIDMuODMyMDMgNy40OTk2N0MzLjk0Mjk2IDcuMjQ4MzMgMy45NzYwNSA2Ljk2OTUxIDMuOTI3MDMgNi42OTkxOEMzLjg3ODAyIDYuNDI4ODUgMy43NDkxNCA2LjE3OTQxIDMuNTU3MDMgNS45ODMwMUwzLjUwNzAzIDUuOTMzMDFDMy4zNTIwNyA1Ljc3ODIyIDMuMjI5MTQgNS41OTQ0IDMuMTQ1MjYgNS4zOTIwN0MzLjA2MTM5IDUuMTg5NzQgMy4wMTgyMiA0Ljk3Mjg3IDMuMDE4MjIgNC43NTM4NEMzLjAxODIyIDQuNTM0ODEgMy4wNjEzOSA0LjMxNzk0IDMuMTQ1MjYgNC4xMTU2MUMzLjIyOTE0IDMuOTEzMjggMy4zNTIwNyAzLjcyOTQ2IDMuNTA3MDMgMy41NzQ2N0MzLjY2MTgyIDMuNDE5NzEgMy44NDU2MyAzLjI5Njc4IDQuMDQ3OTYgMy4yMTI5MUM0LjI1MDI5IDMuMTI5MDMgNC40NjcxNyAzLjA4NTg2IDQuNjg2MiAzLjA4NTg2QzQuOTA1MjIgMy4wODU4NiA1LjEyMjEgMy4xMjkwMyA1LjMyNDQzIDMuMjEyOTFDNS41MjY3NiAzLjI5Njc4IDUuNzEwNTggMy40MTk3MSA1Ljg2NTM2IDMuNTc0NjdMNS45MTUzNiAzLjYyNDY3QzYuMTExNzYgMy44MTY3OSA2LjM2MTIxIDMuOTQ1NjYgNi42MzE1NCAzLjk5NDY4QzYuOTAxODcgNC4wNDM2OSA3LjE4MDY4IDQuMDEwNiA3LjQzMjAzIDMuODk5NjdINy40OTg3QzcuNzQ1MTcgMy43OTQwNCA3Ljk1NTM4IDMuNjE4NjQgOC4xMDM0NCAzLjM5NTA2QzguMjUxNSAzLjE3MTQ5IDguMzMwOTYgMi45MDk1IDguMzMyMDMgMi42NDEzNFYyLjQ5OTY3QzguMzMyMDMgMi4wNTc2NSA4LjUwNzYzIDEuNjMzNzIgOC44MjAxOSAxLjMyMTE2QzkuMTMyNzUgMS4wMDg2IDkuNTU2NjcgMC44MzMwMDggOS45OTg3IDAuODMzMDA4QzEwLjQ0MDcgMC44MzMwMDggMTAuODY0NiAxLjAwODYgMTEuMTc3MiAxLjMyMTE2QzExLjQ4OTggMS42MzM3MiAxMS42NjU0IDIuMDU3NjUgMTEuNjY1NCAyLjQ5OTY3VjIuNTc0NjdDMTEuNjY2NCAyLjg0MjgzIDExLjc0NTkgMy4xMDQ4MiAxMS44OTQgMy4zMjg0QzEyLjA0MiAzLjU1MTk3IDEyLjI1MjIgMy43MjczNyAxMi40OTg3IDMuODMzMDFDMTIuNzUgMy45NDM5NCAxMy4wMjg5IDMuOTc3MDMgMTMuMjk5MiAzLjkyODAxQzEzLjU2OTUgMy44NzkgMTMuODE5IDMuNzUwMTIgMTQuMDE1NCAzLjU1ODAxTDE0LjA2NTQgMy41MDgwMUMxNC4yMjAyIDMuMzUzMDUgMTQuNDA0IDMuMjMwMTIgMTQuNjA2MyAzLjE0NjI0QzE0LjgwODYgMy4wNjIzNyAxNS4wMjU1IDMuMDE5MiAxNS4yNDQ1IDMuMDE5MkMxNS40NjM2IDMuMDE5MiAxNS42ODA0IDMuMDYyMzcgMTUuODgyOCAzLjE0NjI0QzE2LjA4NTEgMy4yMzAxMiAxNi4yNjg5IDMuMzUzMDUgMTYuNDIzNyAzLjUwODAxQzE2LjU3ODcgMy42NjI4IDE2LjcwMTYgMy44NDY2MSAxNi43ODU1IDQuMDQ4OTRDMTYuODY5MyA0LjI1MTI3IDE2LjkxMjUgNC40NjgxNSAxNi45MTI1IDQuNjg3MTdDMTYuOTEyNSA0LjkwNjIgMTYuODY5MyA1LjEyMzA4IDE2Ljc4NTUgNS4zMjU0MUMxNi43MDE2IDUuNTI3NzQgMTYuNTc4NyA1LjcxMTU1IDE2LjQyMzcgNS44NjYzNEwxNi4zNzM3IDUuOTE2MzRDMTYuMTgxNiA2LjExMjc0IDE2LjA1MjcgNi4zNjIxOSAxNi4wMDM3IDYuNjMyNTJDMTUuOTU0NyA2LjkwMjg1IDE1Ljk4NzggNy4xODE2NiAxNi4wOTg3IDcuNDMzMDFWNy40OTk2N0MxNi4yMDQzIDcuNzQ2MTUgMTYuMzc5NyA3Ljk1NjM1IDE2LjYwMzMgOC4xMDQ0MkMxNi44MjY5IDguMjUyNDggMTcuMDg4OSA4LjMzMTk0IDE3LjM1NyA4LjMzMzAxSDE3LjQ5ODdDMTcuOTQwNyA4LjMzMzAxIDE4LjM2NDYgOC41MDg2IDE4LjY3NzIgOC44MjExNkMxOC45ODk4IDkuMTMzNzIgMTkuMTY1NCA5LjU1NzY1IDE5LjE2NTQgOS45OTk2N0MxOS4xNjU0IDEwLjQ0MTcgMTguOTg5OCAxMC44NjU2IDE4LjY3NzIgMTEuMTc4MkMxOC4zNjQ2IDExLjQ5MDcgMTcuOTQwNyAxMS42NjYzIDE3LjQ5ODcgMTEuNjY2M0gxNy40MjM3QzE3LjE1NTUgMTEuNjY3NCAxNi44OTM2IDExLjc0NjkgMTYuNjcgMTEuODk0OUMxNi40NDY0IDEyLjA0MyAxNi4yNzEgMTIuMjUzMiAxNi4xNjU0IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCA/ICcjNjY3MDg1JyA6ICcjRDBENUREJ1wiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjI1NF8yMDI2MVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIlwiIFtuZ0NsYXNzXT1cIihkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIiAgKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignZHVwbGljYXRlJyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjI1NF8yMDI2NSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY3OTcgMTIuNTAwM0gzLjMzNDY0QzIuODkyNjEgMTIuNTAwMyAyLjQ2ODY4IDEyLjMyNDcgMi4xNTYxMiAxMi4wMTIyQzEuODQzNTYgMTEuNjk5NiAxLjY2Nzk3IDExLjI3NTcgMS42Njc5NyAxMC44MzM3VjMuMzMzNjZDMS42Njc5NyAyLjg5MTYzIDEuODQzNTYgMi40Njc3MSAyLjE1NjEyIDIuMTU1MTVDMi40Njg2OCAxLjg0MjU5IDIuODkyNjEgMS42NjY5OSAzLjMzNDY0IDEuNjY2OTlIMTAuODM0NkMxMS4yNzY3IDEuNjY2OTkgMTEuNzAwNiAxLjg0MjU5IDEyLjAxMzEgMi4xNTUxNUMxMi4zMjU3IDIuNDY3NzEgMTIuNTAxMyAyLjg5MTYzIDEyLjUwMTMgMy4zMzM2NlY0LjE2Njk5TTkuMTY3OTcgNy41MDAzM0gxNi42NjhDMTcuNTg4NCA3LjUwMDMzIDE4LjMzNDYgOC4yNDY1MiAxOC4zMzQ2IDkuMTY2OTlWMTYuNjY3QzE4LjMzNDYgMTcuNTg3NSAxNy41ODg0IDE4LjMzMzcgMTYuNjY4IDE4LjMzMzdIOS4xNjc5N0M4LjI0NzQ5IDE4LjMzMzcgNy41MDEzIDE3LjU4NzUgNy41MDEzIDE2LjY2N1Y5LjE2Njk5QzcuNTAxMyA4LjI0NjUyIDguMjQ3NDkgNy41MDAzMyA5LjE2Nzk3IDcuNTAwMzNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0ID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjU0XzIwMjY1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ2RlbGV0ZScsZGF0YSlcIiBbbmdDbGFzc109XCIhZGF0YT8ucHVibGlzaCAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgID8gJ2N1cnNvci1wb2ludGVyJyA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQxXCIgdmlld0JveD1cIjAgMCA0MCA0MVwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8zMTYyXzEwNDE0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTIuNSAxNS4wMjI4SDE0LjE2NjdNMTQuMTY2NyAxNS4wMjI4SDI3LjVNMTQuMTY2NyAxNS4wMjI4VjI2LjY4OTVDMTQuMTY2NyAyNy4xMzE1IDE0LjM0MjMgMjcuNTU1NCAxNC42NTQ4IDI3Ljg2OEMxNC45Njc0IDI4LjE4MDUgMTUuMzkxMyAyOC4zNTYxIDE1LjgzMzMgMjguMzU2MUgyNC4xNjY3QzI0LjYwODcgMjguMzU2MSAyNS4wMzI2IDI4LjE4MDUgMjUuMzQ1MiAyNy44NjhDMjUuNjU3NyAyNy41NTU0IDI1LjgzMzMgMjcuMTMxNSAyNS44MzMzIDI2LjY4OTVWMTUuMDIyOEgxNC4xNjY3Wk0xNi42NjY3IDE1LjAyMjhWMTMuMzU2MUMxNi42NjY3IDEyLjkxNDEgMTYuODQyMyAxMi40OTAyIDE3LjE1NDggMTIuMTc3NkMxNy40Njc0IDExLjg2NSAxNy44OTEzIDExLjY4OTUgMTguMzMzMyAxMS42ODk1SDIxLjY2NjdDMjIuMTA4NyAxMS42ODk1IDIyLjUzMjYgMTEuODY1IDIyLjg0NTIgMTIuMTc3NkMyMy4xNTc3IDEyLjQ5MDIgMjMuMzMzMyAxMi45MTQxIDIzLjMzMzMgMTMuMzU2MVYxNS4wMjI4TTE4LjMzMzMgMTkuMTg5NVYyNC4xODk1TTIxLjY2NjcgMTkuMTg5NVYyNC4xODk1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cIighKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0IHx8IGRhdGEucHVibGlzaCB8fCBkYXRhLmNoZWNrTGlzdFR5cGUgIT09ICdjdXN0b20nKSA/ICcjRDBENUREJyA6JyM2NjcwODUnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8zMTYyXzEwNDE0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMCAxMC4wMjM0KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIHJvbGU9XCJzd2l0Y2hcIiBpZD1cInN1cHBvcnRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbXQtMyBjdXJzb3ItcG9pbnRlclwiIChjaGFuZ2UpPVwicHVibGlzaCgkZXZlbnQsIGRhdGEsaSlcIiBbY2hlY2tlZF09XCJkYXRhPy5wdWJsaXNoXCIgW2Rpc2FibGVkXT1cIighZGF0YT8uc3RvcmVDb3VudCAmJiAoZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyB8fCAhWydleWV0ZXN0JywgJ3JlbW90ZW9wdG9tZXRyaXN0JywgJ3N0b3JlaHlnaWVuZW1vbml0b3JpbmcnLCAncXVldWVhbGVydCcsICdzdXNwaWNpb3VzYWN0aXZpdHknLCAnYm94YWxlcnQnLCAnc3VzcGljaW91c2Zvb3RmYWxsJywgJ2RyaW5raW5nJywgJ2JhZ2RldGVjdGlvbiddLmluY2x1ZGVzKGRhdGE/LmNoZWNrTGlzdFR5cGUpKSkgfHwgIShncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgICAgIDwvdGFibGU+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bGliLXBhZ2luYXRpb24gW2l0ZW1zUGVyUGFnZV09XCJkeW5hbWljRGF0YS5saW1pdFwiIFtjdXJyZW50UGFnZV09XCJkeW5hbWljRGF0YS5vZmZzZXRcIiBbdG90YWxJdGVtc109XCJ0b3RhbEl0ZW1zXCJcclxuICAgICAgICAgICAgICAgIFtwYWdpbmF0aW9uU2l6ZXNdPVwicGFnaW5hdGlvblNpemVzXCIgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlKT1cIm9uUGFnZVNpemVDaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXBhZ2luYXRpb24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJheC9zcmMvbGliL2NvbXBvbmVudHMvY2hlY2tsaXN0L2NoZWNrbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYXgvc3JjL2xpYi9jb21wb25lbnRzL2NoZWNrbGlzdC9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRWhGLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7Ozs7QUFTdEUsTUFBTSxPQUFPLGtCQUFrQjtJQW1CVDtJQUFtQztJQUFpQztJQUFnQztJQUE2QjtJQUF1QjtJQUEwQjtJQWxCdE0sT0FBTyxHQUFZLElBQUksQ0FBQztJQUN4QixNQUFNLEdBQVksS0FBSyxDQUFDO0lBQ3hCLFFBQVEsR0FBVyxFQUFFLENBQUM7SUFDdEIsVUFBVSxDQUFTO0lBQ25CLGVBQWUsR0FBUSxFQUFFLENBQUM7SUFDMUIsYUFBYSxHQUFRLEVBQUUsQ0FBQztJQUNoQixNQUFNLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMvQixXQUFXLEdBQVE7UUFDakIsUUFBUSxFQUFFLEVBQUU7UUFDWixTQUFTLEVBQUUsRUFBRTtRQUNiLE9BQU8sRUFBRSxFQUFFO1FBQ1gsS0FBSyxFQUFFLEVBQUU7UUFDVCxNQUFNLEVBQUUsQ0FBQztRQUNULFVBQVUsRUFBRSxFQUFFO1FBQ2QsTUFBTSxFQUFFLEVBQUU7UUFDVixNQUFNLEVBQUUsRUFBRTtLQUNYLENBQUM7SUFD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QyxDQUFDLHNCQUFzQixDQUFDLEVBQUU7WUFDL0MsV0FBVyxFQUFFO2dCQUNYLGtCQUFrQixFQUFFLFNBQVM7Z0JBQzdCLGFBQWEsRUFBRSxRQUFRO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0QsQ0FBQztJQUNDLFdBQVc7UUFDWixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLEVBQUU7WUFDL0MsV0FBVyxFQUFFO2dCQUNYLGtCQUFrQixFQUFFLG1CQUFtQjtnQkFDdkMsYUFBYSxFQUFFLElBQUk7YUFDcEI7U0FDRixDQUFDLENBQUM7SUFDRCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLDhCQUE4QixDQUFDLENBQUE7SUFFMUQsQ0FBQzt3R0F6U1Usa0JBQWtCOzRGQUFsQixrQkFBa0IscURDZC9CLHk0eUNBOGNVOzs0RkRoY0csa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBtYXAsIFN1YmplY3QsIHRha2VVbnRpbCwgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUcmF4cG9wdXBDb21wb25lbnQgfSBmcm9tICcuLi90cmF4cG9wdXAvdHJheHBvcHVwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nYk1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUcmF4U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYXguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jaGVja2xpc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jaGVja2xpc3QuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDaGVja2xpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGFnZVNpemU6IG51bWJlciA9IDEwO1xyXG4gIHRvdGFsSXRlbXM6IG51bWJlcjtcclxuICBwYWdpbmF0aW9uU2l6ZXM6IGFueSA9IFtdO1xyXG4gIGNoZWNrbGlzdERhdGE6IGFueSA9IFtdO1xyXG4gIHByaXZhdGUgZGV0YWNoID0gbmV3IFN1YmplY3QoKTtcclxuICBkeW5hbWljRGF0YTogYW55ID0ge1xyXG4gICAgY2xpZW50SWQ6ICcnLFxyXG4gICAgc3RhcnREYXRlOiAnJyxcclxuICAgIGVuZERhdGU6ICcnLFxyXG4gICAgbGltaXQ6IDEwLFxyXG4gICAgb2Zmc2V0OiAxLFxyXG4gICAgc29ydENvbHVtbjogJycsXHJcbiAgICBzb3J0Qnk6ICcnLFxyXG4gICAgc2VhcmNoOiAnJ1xyXG4gIH07XHJcbiAgZW52aXJvbm1lbnQ6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBhZ2VJbmZvOiBQYWdlSW5mb1NlcnZpY2UsIHByaXZhdGUgdHJheFNlcnZpY2U6IFRyYXhTZXJ2aWNlLCBwdWJsaWMgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSwgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIHJvdXRlOiBSb3V0ZXIsIHByaXZhdGUgZGlhbG9nOiBOZ2JNb2RhbCwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5lbnZpcm9ubWVudCA9IGVudlxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBNdXRlIGFsbCA8YXVkaW8+IGFuZCA8dmlkZW8+IHBsYXllcnMgb24gdGhlIHBhZ2VcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F1ZGlvLCB2aWRlbycpLmZvckVhY2goKHBsYXllcjogYW55KSA9PiB7XHJcbiAgICAgIHBsYXllci5tdXRlZCA9IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgxMDAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGRhdGE/LmNsaWVudCkge1xyXG4gICAgICAgICAgdGhpcy5keW5hbWljRGF0YS5jbGllbnRJZCA9IGRhdGEuY2xpZW50O1xyXG4gICAgICAgICAgdGhpcy5nZXRDaGVja0xpc3QoKVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBsZXQgZGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2hlYWRlci1maWx0ZXJzJykgYXMgc3RyaW5nKTtcclxuICAgICAgICAgIHRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWQgPSBkYXRhLmNsaWVudDtcclxuICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KClcclxuICAgICAgICB9XHJcblxyXG4gICAgICB9KVxyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRldGFjaC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXRhY2guY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHNldFBhZ2VEYXRhKCkge1xyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZShcIkRhc2hib2FyZFwiKTtcclxuICAgIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oXCJBdXRvbWF0ZSBvciBjcmVhdGUgY2hlY2tsaXN0cyB0byBpbXByb3ZlIG9wZXJhdGlvbmFsIGVmZmljaWVuY3lcIik7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICAgICAgeyB0aXRsZTogXCJEYXNoYm9hcmRcIiwgcGF0aDogXCIvbWFuYWdlL3RyYXgvY2hlY2tsaXN0XCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiRGFzaGJvYXJkXCIsIHBhdGg6IFwiL21hbmFnZS90cmF4L2NoZWNrbGlzdFwiLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlIH1cclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hlY2tMaXN0KCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMudHJheFNlcnZpY2UuY2hlY2tsaXN0KHRoaXMuZHluYW1pY0RhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwICYmIHJlcy5kYXRhLnJlc3VsdC5sZW5ndGgpIHtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2hlY2tsaXN0RGF0YSA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMudG90YWxJdGVtcyA9IHJlcy5kYXRhLmNvdW50O1xyXG4gICAgICAgICAgaWYgKHRoaXMudG90YWxJdGVtcyA8IDEwKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gW3RoaXMudG90YWxJdGVtc107XHJcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSB0aGlzLmNoZWNrbGlzdERhdGEubGVuZ3RoO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvblNpemVzID0gWzEwLCAyMCwgMzBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnJvci5lcnJvci5lcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uU29ydChjb2x1bW46IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PSBjb2x1bW4pIHtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSB0aGlzLmR5bmFtaWNEYXRhLnNvcnRCeSA9PSAxID8gLTEgOiAxO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9IGNvbHVtbjtcclxuICAgICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAxO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmR5bmFtaWNEYXRhLm9mZnNldCA9IGV2ZW50O1xyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIG9uUGFnZVNpemVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5saW1pdCA9IGV2ZW50O1xyXG4gICAgdGhpcy5wYWdlU2l6ZSA9IGV2ZW50O1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5vZmZzZXQgPSAxO1xyXG4gICAgdGhpcy5nZXRDaGVja0xpc3QoKTtcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0KGRhdGE6IGFueSwgZGV0YWlsczogYW55LCBjaGVja0xpc3RUeXBlPzogYW55KSB7XHJcbiAgICBpZiAoZGF0YSA9PSAnZWRpdCcpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0P2NoZWNrbGlzdElkPSR7ZGV0YWlsc31gKVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZGF0YSA9PSAnc2V0dGluZycgJiYgIWNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2NoZWNrTGlzdElkPSR7ZGV0YWlsc30mZGlzYWJsZWRRdWVzdGlvbj10cnVlYClcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGEgPT0gJ3NldHRpbmcnICYmIGNoZWNrTGlzdFR5cGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZUJ5VXJsKGAvbWFuYWdlL3RyYXgvY29uZmlndXJlP2FpY2hlY2tMaXN0SWQ9JHtkZXRhaWxzfSZkaXNhYmxlZFF1ZXN0aW9uPXRydWUmdHlwZT0ke2NoZWNrTGlzdFR5cGV9YClcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGEgPT0gJ2R1cGxpY2F0ZScpIHtcclxuICAgICAgY29uc3QgcG9wdXBjb250ZW50ID0ge1xyXG4gICAgICAgIGRpc3BsYXlwcm9wOiBmYWxzZSxcclxuICAgICAgICBpbWFnZXNyYzogJzxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHZpZXdCb3g9XCIwIDAgMzYgMzZcIiBmaWxsPVwibm9uZVwiPjxyZWN0IHg9XCIyXCIgeT1cIjJcIiB3aWR0aD1cIjMyXCIgaGVpZ2h0PVwiMzJcIiByeD1cIjE2XCIgZmlsbD1cIiNEQUYxRkZcIi8+PGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF81NTQ1XzY3NDMpXCI+PHBhdGggZD1cIk0xMy4zMzMgMjAuMDAwN0gxMi42NjYzQzEyLjMxMjcgMjAuMDAwNyAxMS45NzM2IDE5Ljg2MDIgMTEuNzIzNSAxOS42MTAxQzExLjQ3MzUgMTkuMzYwMSAxMS4zMzMgMTkuMDIwOSAxMS4zMzMgMTguNjY3M1YxMi42NjczQzExLjMzMyAxMi4zMTM3IDExLjQ3MzUgMTEuOTc0NiAxMS43MjM1IDExLjcyNDVDMTEuOTczNiAxMS40NzQ1IDEyLjMxMjcgMTEuMzM0IDEyLjY2NjMgMTEuMzM0SDE4LjY2NjNDMTkuMDIgMTEuMzM0IDE5LjM1OTEgMTEuNDc0NSAxOS42MDkyIDExLjcyNDVDMTkuODU5MiAxMS45NzQ2IDE5Ljk5OTcgMTIuMzEzNyAxOS45OTk3IDEyLjY2NzNWMTMuMzM0TTE3LjMzMyAxNi4wMDA3SDIzLjMzM0MyNC4wNjk0IDE2LjAwMDcgMjQuNjY2MyAxNi41OTc2IDI0LjY2NjMgMTcuMzM0VjIzLjMzNEMyNC42NjYzIDI0LjA3MDQgMjQuMDY5NCAyNC42NjczIDIzLjMzMyAyNC42NjczSDE3LjMzM0MxNi41OTY2IDI0LjY2NzMgMTUuOTk5NyAyNC4wNzA0IDE1Ljk5OTcgMjMuMzM0VjE3LjMzNEMxNS45OTk3IDE2LjU5NzYgMTYuNTk2NiAxNi4wMDA3IDE3LjMzMyAxNi4wMDA3WlwiIHN0cm9rZT1cIiMwMEEzRkZcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPjwvZz48cmVjdCB4PVwiMlwiIHk9XCIyXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjMyXCIgcng9XCIxNlwiIHN0cm9rZT1cIiNFQUY4RkZcIiBzdHJva2Utd2lkdGg9XCI0XCIvPjxkZWZzPjxjbGlwUGF0aCBpZD1cImNsaXAwXzU1NDVfNjc0M1wiPjxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgxMCAxMClcIi8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+JyxcclxuICAgICAgICB0aXRsZTogYER1cGxpY2F0ZSAnJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IFNlY3Rpb24nP2AsXHJcbiAgICAgICAgY29udGVudDogYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkdXBsaWNhdGUgPGI+JyR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSc/PC9iPiBUaGlzIGFjdGlvbiBjYW5ub3QgYmUgdW5kb25lLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2R1cGxpY2F0ZSdcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFRyYXhwb3B1cENvbXBvbmVudCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJyB9KTtcclxuICAgICAgZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlLmRhdGEgPSBwb3B1cGNvbnRlbnQ7XHJcbiAgICAgIGRpYWxvZ1JlZi5yZXN1bHQudGhlbigocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyA9PSAnZHVwbGljYXRlJykge1xyXG4gICAgICAgICAgdGhpcy50cmF4U2VydmljZS5kdXBsaWNhdGVjaGVja2xpc3QoeyBjaGVja2xpc3RJZDogZGV0YWlscy5faWQsIGNsaWVudElkOiB0aGlzLmR5bmFtaWNEYXRhLmNsaWVudElkIH0pLnBpcGUodGFrZVVudGlsKHRoaXMuZGV0YWNoKSk/LnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENoZWNrTGlzdCgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QoYCR7ZGV0YWlscy5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiBkdXBsaWNhdGVkLmApO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZXJyb3I6IChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IGVyciA9IGVycm9yPy5lcnJvcj8uZXJyb3IgfHwgJ1NvbWV0aGluZyB3ZW50IHdyb25nJztcclxuICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBwb3B1cGNvbnRlbnQgPSB7XHJcbiAgICAgICAgZGlzcGxheXByb3A6IGZhbHNlLFxyXG4gICAgICAgIGltYWdlc3JjOiAnPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgdmlld0JveD1cIjAgMCAzNiAzNlwiIGZpbGw9XCJub25lXCI+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBmaWxsPVwiI0ZFRTRFMlwiLz48cGF0aCBkPVwiTTEyIDE0LjAwMDdIMTMuMzMzM00xMy4zMzMzIDE0LjAwMDdIMjRNMTMuMzMzMyAxNC4wMDA3VjIzLjMzNEMxMy4zMzMzIDIzLjY4NzYgMTMuNDczOCAyNC4wMjY3IDEzLjcyMzkgMjQuMjc2OEMxMy45NzM5IDI0LjUyNjggMTQuMzEzIDI0LjY2NzMgMTQuNjY2NyAyNC42NjczSDIxLjMzMzNDMjEuNjg3IDI0LjY2NzMgMjIuMDI2MSAyNC41MjY4IDIyLjI3NjEgMjQuMjc2OEMyMi41MjYyIDI0LjAyNjcgMjIuNjY2NyAyMy42ODc2IDIyLjY2NjcgMjMuMzM0VjE0LjAwMDdIMTMuMzMzM1pNMTUuMzMzMyAxNC4wMDA3VjEyLjY2NzNDMTUuMzMzMyAxMi4zMTM3IDE1LjQ3MzggMTEuOTc0NiAxNS43MjM5IDExLjcyNDVDMTUuOTczOSAxMS40NzQ1IDE2LjMxMyAxMS4zMzQgMTYuNjY2NyAxMS4zMzRIMTkuMzMzM0MxOS42ODcgMTEuMzM0IDIwLjAyNjEgMTEuNDc0NSAyMC4yNzYxIDExLjcyNDVDMjAuNTI2MiAxMS45NzQ2IDIwLjY2NjcgMTIuMzEzNyAyMC42NjY3IDEyLjY2NzNWMTQuMDAwN00xNi42NjY3IDE3LjMzNFYyMS4zMzRNMTkuMzMzMyAxNy4zMzRWMjEuMzM0XCIgc3Ryb2tlPVwiI0Q5MkQyMFwiIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjJcIiB5PVwiMlwiIHdpZHRoPVwiMzJcIiBoZWlnaHQ9XCIzMlwiIHJ4PVwiMTZcIiBzdHJva2U9XCIjRkVGM0YyXCIgc3Ryb2tlLXdpZHRoPVwiNFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgRGVsZXRlICcke2RldGFpbHMuY2hlY2tMaXN0TmFtZX0gU2VjdGlvbic/YCxcclxuICAgICAgICBjb250ZW50OiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSA8Yj4nJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9Jz88L2I+IFRoaXMgYWN0aW9uIGNhbm5vdCBiZSB1bmRvbmUuYCxcclxuICAgICAgICBidXR0b250eXBlOiAnZGVsZXRlJ1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnIH0pO1xyXG4gICAgICBkaWFsb2dSZWYuY29tcG9uZW50SW5zdGFuY2UuZGF0YSA9IHBvcHVwY29udGVudDtcclxuICAgICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgICBpZiAocmVzID09ICdkZWxldGUnKSB7XHJcbiAgICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLmRlbGV0ZUNoZWNrbGlzdCh7IGlkOiBkZXRhaWxzLl9pZCwgY2xpZW50SWQ6IHRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWQgfSkucGlwZSh0YWtlVW50aWwodGhpcy5kZXRhY2gpKT8uc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChgJHtkZXRhaWxzLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIERlbGV0ZWQuYCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnU29tZXRoaW5nIHdlbnQgd3JvbmcnO1xyXG4gICAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGlzaChldmVudDogYW55LCBkYXRhOiBhbnksIGk6IG51bWJlcikge1xyXG4gICAgbGV0IHBvcHVwY29udGVudDtcclxuICAgIGxldCBodG1sQ29udGVudDogYW55O1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5jaGVja2VkKSB7XHJcbiAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRDFGQURGXCIvPjxwYXRoIGQ9XCJNMzggMjcuMDgxOFYyOC4wMDE4QzM3Ljk5ODggMzAuMTU4MiAzNy4zMDA1IDMyLjI1NjUgMzYuMDA5MyAzMy45ODM2QzM0LjcxODIgMzUuNzEwOCAzMi45MDMzIDM2Ljk3NDMgMzAuODM1NCAzNy41ODU3QzI4Ljc2NzQgMzguMTk3MSAyNi41NTczIDM4LjEyMzcgMjQuNTM0NSAzNy4zNzY0QzIyLjUxMTcgMzYuNjI5MSAyMC43ODQ3IDM1LjI0NzkgMTkuNjExIDMzLjQzODlDMTguNDM3MyAzMS42Mjk5IDE3Ljg3OTggMjkuNDg5OSAxOC4wMjE3IDI3LjMzODFDMTguMTYzNiAyNS4xODY0IDE4Ljk5NzIgMjMuMTM4MSAyMC4zOTgzIDIxLjQ5ODlDMjEuNzk5NCAxOS44NTk2IDIzLjY5MjggMTguNzE3MiAyNS43OTYyIDE4LjI0MkMyNy44OTk2IDE3Ljc2NjcgMzAuMTAwMyAxNy45ODQyIDMyLjA3IDE4Ljg2MThNMzggMjAuMDAxOEwyOCAzMC4wMTE4TDI1IDI3LjAxMThcIiBzdHJva2U9XCIjMDM5ODU1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIHN0cm9rZT1cIiNFQ0ZERjNcIiBzdHJva2Utd2lkdGg9XCI4XCIvPjwvc3ZnPicsXHJcbiAgICAgICAgdGl0bGU6IGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHVibGlzaCAnJHtkYXRhLmNoZWNrTGlzdE5hbWV9JyBjaGVja2xpc3Q/YCxcclxuICAgICAgICBjb250ZW50OiBgUHVibGlzaGluZyB3aWxsIG1ha2UgdGhpcyBjaGVja2xpc3QgbGl2ZSwgYW5kIGNoYW5nZXMgd2lsbCB0YWtlIGVmZmVjdCBpbW1lZGlhdGVseS5gLFxyXG4gICAgICAgIGJ1dHRvbnR5cGU6ICdjb25maXJtJ1xyXG4gICAgICB9XHJcbiAgICAgIGh0bWxDb250ZW50ID0gYCR7ZGF0YS5jaGVja0xpc3ROYW1lfSBoYXMgYmVlbiBwdWJsaXNoZWQ8L2Rpdj5gO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHBvcHVwY29udGVudCA9IHtcclxuICAgICAgICBkaXNwbGF5cHJvcDogZmFsc2UsXHJcbiAgICAgICAgaW1hZ2VzcmM6ICc8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjU2XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU2IDU2XCIgZmlsbD1cIm5vbmVcIj48cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjRkVGMEM3XCIvPjxwYXRoIGQ9XCJNMjcuOTk5OCAyNC4wMDEyVjI4LjAwMTJNMjcuOTk5OCAzMi4wMDEySDI4LjAwOThNMjYuMjg5OCAxOC44NjEyTDE3LjgxOTggMzMuMDAxMkMxNy42NDUxIDMzLjMwMzYgMTcuNTUyNyAzMy42NDY1IDE3LjU1MTggMzMuOTk1N0MxNy41NTA4IDM0LjM0NDkgMTcuNjQxMyAzNC42ODgzIDE3LjgxNDIgMzQuOTkxN0MxNy45ODcxIDM1LjI5NTEgMTguMjM2NSAzNS41NDc5IDE4LjUzNzUgMzUuNzI1QzE4LjgzODUgMzUuOTAyMSAxOS4xODA2IDM1Ljk5NzMgMTkuNTI5OCAzNi4wMDEySDM2LjQ2OThDMzYuODE5IDM1Ljk5NzMgMzcuMTYxMSAzNS45MDIxIDM3LjQ2MjEgMzUuNzI1QzM3Ljc2MzEgMzUuNTQ3OSAzOC4wMTI0IDM1LjI5NTEgMzguMTg1NCAzNC45OTE3QzM4LjM1ODMgMzQuNjg4MyAzOC40NDg4IDM0LjM0NDkgMzguNDQ3OCAzMy45OTU3QzM4LjQ0NjggMzMuNjQ2NSAzOC4zNTQ0IDMzLjMwMzYgMzguMTc5OCAzMy4wMDEyTDI5LjcwOTggMTguODYxMkMyOS41MzE1IDE4LjU2NzMgMjkuMjgwNSAxOC4zMjQzIDI4Ljk4MSAxOC4xNTU3QzI4LjY4MTQgMTcuOTg3IDI4LjM0MzUgMTcuODk4NCAyNy45OTk4IDE3Ljg5ODRDMjcuNjU2IDE3Ljg5ODQgMjcuMzE4MSAxNy45ODcgMjcuMDE4NiAxOC4xNTU3QzI2LjcxOTEgMTguMzI0MyAyNi40NjggMTguNTY3MyAyNi4yODk4IDE4Ljg2MTJaXCIgc3Ryb2tlPVwiI0RDNjgwM1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+PHJlY3QgeD1cIjRcIiB5PVwiNFwiIHdpZHRoPVwiNDhcIiBoZWlnaHQ9XCI0OFwiIHJ4PVwiMjRcIiBzdHJva2U9XCIjRkZGQUVCXCIgc3Ryb2tlLXdpZHRoPVwiOFwiLz48L3N2Zz4nLFxyXG4gICAgICAgIHRpdGxlOiBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucHVibGlzaCDigJgke2RhdGEuY2hlY2tMaXN0TmFtZX3igJkgY2hlY2tsaXN0P2AsXHJcbiAgICAgICAgY29udGVudDogYFVucHVibGlzaGluZyB3aWxsIHJlbW92ZSB0aGlzIGNoZWNrbGlzdCBpbW1lZGlhdGVseSwgYW5kIGl0IHdpbGwgbm8gbG9uZ2VyIGJlIHZpc2libGUgdG8gYXNzaWduZWQgbG9jYXRpb25zLmAsXHJcbiAgICAgICAgYnV0dG9udHlwZTogJ2NvbmZpcm0nXHJcbiAgICAgIH1cclxuICAgICAgaHRtbENvbnRlbnQgPSBgJHtkYXRhLmNoZWNrTGlzdE5hbWV9IGhhcyBiZWVuIHVucHVibGlzaGVkYDtcclxuICAgIH1cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oVHJheHBvcHVwQ29tcG9uZW50LCB7XHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnXHJcbiAgICB9KTtcclxuICAgIGRpYWxvZ1JlZi5jb21wb25lbnRJbnN0YW5jZS5kYXRhID0gcG9wdXBjb250ZW50O1xyXG4gICAgZGlhbG9nUmVmLnJlc3VsdC50aGVuKChyZXMpID0+IHtcclxuICAgICAgaWYgKHJlcyA9PSAnY29uZmlybScpIHtcclxuICAgICAgICB0aGlzLnRyYXhTZXJ2aWNlLnB1Ymxpc2goeyBwdWJsaXNoOiBldmVudC50YXJnZXQuY2hlY2tlZCwgY2xpZW50SWQ6IHRoaXMuZHluYW1pY0RhdGEuY2xpZW50SWQsIGNoZWNrbGlzdElkOiBkYXRhLl9pZCB9KS5waXBlKHRha2VVbnRpbCh0aGlzLmRldGFjaCkpLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBkYXRhLnB1Ymxpc2hcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgPSBkYXRhLnB1Ymxpc2g7XHJcbiAgICAgICAgICBsZXQgZXJyID0gZXJyb3I/LmVycm9yPy5lcnJvciB8fCAnUGxlYXNlIHRyeSBhZnRlciBzb21ldGltZXMnO1xyXG4gICAgICAgICAgdGhpcy50b2FzdC5nZXRFcnJvclRvYXN0KGVycik7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGV2ZW50LnRhcmdldC5jaGVja2VkID0gZGF0YS5wdWJsaXNoO1xyXG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcblxyXG4gIHNlYXJjaCgpIHtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEub2Zmc2V0ID0gMTtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEubGltaXQgPSAxMDtcclxuICAgIHRoaXMucGFnZVNpemUgPSAxMDtcclxuICAgIHRoaXMuZHluYW1pY0RhdGEuc29ydENvbHVtbiA9ICcnO1xyXG4gICAgdGhpcy5keW5hbWljRGF0YS5zb3J0QnkgPSAnJztcclxuICAgIHRoaXMuZ2V0Q2hlY2tMaXN0KCk7XHJcbiAgfVxyXG5cclxuICByZWRpcmVjdFVybCh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMucm91dGUubmF2aWdhdGVCeVVybChgL21hbmFnZS90cmF4L2NoZWNrbGlzdC9tYW5hZ2VjaGVja2xpc3Q/dHlwZT0ke3R5cGV9YClcclxuICB9XHJcblxyXG4gIGNoZWNrUGVybWlzc2lvbih0eXBlOiBhbnksIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgc3ViID0gdGhpcy5ncy51c2VyQWNjZXNzLnBpcGUobWFwKCh2YWwpID0+IHtcclxuICAgICAgaWYgKHZhbD8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpIHtcclxuICAgICAgICBpZiAoZGF0YS5jaGVja0xpc3RUeXBlID09ICdjdXN0b20nKSB7XHJcbiAgICAgICAgICBpZiAoWydlZGl0JywgJ2RlbGV0ZSddLmluY2x1ZGVzKHR5cGUpICYmICFkYXRhLnB1Ymxpc2gpIHtcclxuICAgICAgICAgICAgZGF0YSA9IHR5cGUgPT0gJ2VkaXQnID8gZGF0YS5faWQgOiBkYXRhO1xyXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0KHR5cGUsIGRhdGEpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoWydkdXBsaWNhdGUnLCAnc2V0dGluZyddLmluY2x1ZGVzKHR5cGUpKSB7XHJcbiAgICAgICAgICAgIGRhdGEgPSB0eXBlID09ICdzZXR0aW5nJyA/IGRhdGEuX2lkIDogZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdCh0eXBlLCBkYXRhKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAoZGF0YS5jaGVja0xpc3RUeXBlICE9PSAnY3VzdG9tJykge1xyXG4gICAgICAgICAgY29uc3QgaWQgPSB0eXBlID09ICdzZXR0aW5nJyA/IGRhdGEuX2lkIDogZGF0YTtcclxuICAgICAgICAgIHRoaXMucmVkaXJlY3QodHlwZSwgaWQsIGRhdGE/LmNoZWNrTGlzdFR5cGUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KSkuc3Vic2NyaWJlKClcclxuXHJcbiAgICBzdWIudW5zdWJzY3JpYmUoKVxyXG4gIH1cclxuICBjYW1lcmFWaWV3KCkge1xyXG4gICB0aGlzLnJvdXRlLm5hdmlnYXRlKFsnL21hbmFnZS90cmF4L2dhbGxlcnknXSwge1xyXG4gIHF1ZXJ5UGFyYW1zOiB7XHJcbiAgICBzb3VyY2VDaGVja0xpc3RfaWQ6ICdleWV0ZXN0JyxcclxuICAgIGNoZWNrbGlzdFR5cGU6ICdBSSdcclxuICB9XHJcbn0pO1xyXG4gIH1cclxuICBjYW1lcmFWaWV3MSgpIHtcclxuICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJheC9nYWxsZXJ5J10sIHtcclxuICBxdWVyeVBhcmFtczoge1xyXG4gICAgc291cmNlQ2hlY2tMaXN0X2lkOiAnZmFjdG9yeScsXHJcbiAgICBjaGVja2xpc3RUeXBlOiAnY3VzdG9tJ1xyXG4gIH1cclxufSk7XHJcbiAgfVxyXG4gICAgY2FtZXJhVmlldzIoKSB7XHJcbiAgIHRoaXMucm91dGUubmF2aWdhdGUoWycvbWFuYWdlL3RyYXgvZ2FsbGVyeSddLCB7XHJcbiAgcXVlcnlQYXJhbXM6IHtcclxuICAgIHNvdXJjZUNoZWNrTGlzdF9pZDogJ3JlbW90ZW9wdG9tZXRyaXN0JyxcclxuICAgIGNoZWNrbGlzdFR5cGU6ICdBSSdcclxuICB9XHJcbn0pO1xyXG4gIH1cclxuIFxyXG4gIG1hbmFnZVZpZXcoKSB7XHJcbiAgICB0aGlzLnJvdXRlLm5hdmlnYXRlQnlVcmwoYC9tYW5hZ2UvdHJheC9tYW5hZ2VjaGVja2xpc3RgKVxyXG5cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInAtNSBtYi0xMFwiPlxyXG5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cImNhcmQtdGl0bGUgbXQtM1wiPlxyXG4gICAgICAgIDxoMSBjbGFzcz1cIiBteS0wIGNoZWNrbGlzdFRpdGxlXCI+XHJcbiAgICAgICAgICAgIE1hbmFnZSBZb3VyIENoZWNrbGlzdFxyXG4gICAgICAgIDwvaDE+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEgY2hlY2tsaXN0SGVhZFwiPllvdSBjYW4gY3JlYXRlIGFuZCBtYW5hZ2UgeW91ciBjaGVja2xpc3QgaGVyZTwvZGl2PlxyXG4gICAgPC9kaXY+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ3JlYXRlIHlvdXIgb3duICAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZC1ibG9ja1wiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3MgaC0yNTBweFwiIGNvbnRyb2xzIGF1dG9wbGF5IGxvb3Agc3R5bGU9XCJvYmplY3QtZml0OiBmaWxsO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgJ2RlbW8tdmlkZW8vdGFuZ28gdHJhZmZpYyBuZXcgZmluYWwgNV8xLm1wNCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidmlkZW8vbXA0XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdmlkZW8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbWcgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL25ld0NoZWNrbGlzdC5zdmdcIiAgY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzc1wiLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHQgY3Vyc29yLXBvaW50ZXJcIiBbcm91dGVyTGlua109XCInL21hbmFnZS90cmFmZmljJ1wiPkZvb3RmYWxsPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ29uZmlndXJlIFByZWRlZmluZWQgQ2hlY2tsaXN0IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSBocmVmPVwiL3NvcC9Db25maWd1cmU/dHlwZT1tb2JpbGV1c2FnZWRldGVjdGlvblwiIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZC1ibG9jayB3LTEwMFwiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3MgaC0yNTBweFwiIGNvbnRyb2xzIGF1dG9wbGF5IGxvb3Agc3R5bGU9XCJvYmplY3QtZml0OiBmaWxsO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgJ2RlbW8tdmlkZW8vem9uZSB0YW5nbyBmaW5hbCA0LTEubXA0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ2aWRlby9tcDRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvcHJlZGVmaW5lZC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtMiBtYi00IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHQgY3Vyc29yLXBvaW50ZXJcIiBbcm91dGVyTGlua109XCInL21hbmFnZS96b25lcy92MidcIj5ab25lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZCBcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ29uZmlndXJlIHlvdXIgUHJlZGVmaW5lZCBBSSBjaGVja2xpc3QgLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWJsb2NrIHctMTAwXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzcyBoLTI1MHB4XCIgY29udHJvbHMgYXV0b3BsYXkgbG9vcCBzdHlsZT1cIm9iamVjdC1maXQ6IGZpbGw7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyAnZGVtby12aWRlby9NYW5hZ2UgQ2hlY2tsaXN0ICgxKS5tb3YnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInZpZGVvL21wNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9haWNoZWNrbGlzdC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIgLz4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWVuZCBmbGV4LXN0YWNrIG10LTIgbWItNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHQgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwibWFuYWdlVmlldygpXCI+U09QPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ3JlYXRlIHlvdXIgb3duICAtLT5cclxuICAgICAgICAgICAgICAgIDwhLS0gPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTcuNTc2MyA3LjUwMDMzQzcuNzcyMjIgNi45NDMzOCA4LjE1ODkzIDYuNDczNzUgOC42Njc5MyA2LjE3NDZDOS4xNzY5MyA1Ljg3NTQ2IDkuNzc1MzggNS43NjYxMSAxMC4zNTczIDUuODY1OTJDMTAuOTM5MiA1Ljk2NTczIDExLjQ2NyA2LjI2ODI2IDExLjg0NzIgNi43MTk5M0MxMi4yMjc0IDcuMTcxNiAxMi40MzU1IDcuNzQzMjYgMTIuNDM0NiA4LjMzMzY2QzEyLjQzNDYgMTAuMDAwMyA5LjkzNDY0IDEwLjgzMzcgOS45MzQ2NCAxMC44MzM3TTEwLjAwMTMgMTQuMTY3SDEwLjAwOTZNMTguMzM0NiAxMC4wMDAzQzE4LjMzNDYgMTQuNjAyNyAxNC42MDM3IDE4LjMzMzcgMTAuMDAxMyAxOC4zMzM3QzUuMzk4OTMgMTguMzMzNyAxLjY2Nzk3IDE0LjYwMjcgMS42Njc5NyAxMC4wMDAzQzEuNjY3OTcgNS4zOTc5NSA1LjM5ODkzIDEuNjY2OTkgMTAuMDAxMyAxLjY2Njk5QzE0LjYwMzcgMS42NjY5OSAxOC4zMzQ2IDUuMzk3OTUgMTguMzM0NiAxMC4wMDAzWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgY2FyZC1mbHVzaCByb3VuZGVkIHJvdW5kZWQtNFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwiZC1ibG9ja1wiIGRhdGEtZnNsaWdodGJveD1cImxpZ2h0Ym94LWhvdC1zYWxlc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHZpZGVvIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3MgaC0yNTBweFwiIGNvbnRyb2xzIGF1dG9wbGF5IGxvb3Agc3R5bGU9XCJvYmplY3QtZml0OiBmaWxsO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgW3NyY109XCJlbnZpcm9ubWVudC5UcmF4QW5zd2VyQ0ROICsgJ2RlbW8tdmlkZW8vTGF5b3V0LVZlcmlmaWNhdGlvbi5tcDQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInZpZGVvL21wNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9uZXdDaGVja2xpc3Quc3ZnXCIgIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3NcIi8+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC0yIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0IGN1cnNvci1wb2ludGVyXCIgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvcGxhbm9ncmFtL21hbmFnZS1wbGFub2dyYW1zL3ZlcmlmaWNhdGlvbidcIj5QbGFub2dyYW08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBtdC0yXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGNoZWNrbGlzdEhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0gQ29uZmlndXJlIFByZWRlZmluZWQgQ2hlY2tsaXN0IC0tPlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNy41NzYzIDcuNTAwMzNDNy43NzIyMiA2Ljk0MzM4IDguMTU4OTMgNi40NzM3NSA4LjY2NzkzIDYuMTc0NkM5LjE3NjkzIDUuODc1NDYgOS43NzUzOCA1Ljc2NjExIDEwLjM1NzMgNS44NjU5MkMxMC45MzkyIDUuOTY1NzMgMTEuNDY3IDYuMjY4MjYgMTEuODQ3MiA2LjcxOTkzQzEyLjIyNzQgNy4xNzE2IDEyLjQzNTUgNy43NDMyNiAxMi40MzQ2IDguMzMzNjZDMTIuNDM0NiAxMC4wMDAzIDkuOTM0NjQgMTAuODMzNyA5LjkzNDY0IDEwLjgzMzdNMTAuMDAxMyAxNC4xNjdIMTAuMDA5Nk0xOC4zMzQ2IDEwLjAwMDNDMTguMzM0NiAxNC42MDI3IDE0LjYwMzcgMTguMzMzNyAxMC4wMDEzIDE4LjMzMzdDNS4zOTg5MyAxOC4zMzM3IDEuNjY3OTcgMTQuNjAyNyAxLjY2Nzk3IDEwLjAwMDNDMS42Njc5NyA1LjM5Nzk1IDUuMzk4OTMgMS42NjY5OSAxMC4wMDEzIDEuNjY2OTlDMTQuNjAzNyAxLjY2Njk5IDE4LjMzNDYgNS4zOTc5NSAxOC4zMzQ2IDEwLjAwMDNaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBjYXJkLWZsdXNoIHJvdW5kZWQgcm91bmRlZC00IFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIiB0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gaHJlZj1cIi9zb3AvQ29uZmlndXJlP3R5cGU9bW9iaWxldXNhZ2VkZXRlY3Rpb25cIiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImQtYmxvY2sgdy0xMDBcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzcyBoLTI1MHB4XCIgY29udHJvbHMgYXV0b3BsYXkgbG9vcCBzdHlsZT1cIm9iamVjdC1maXQ6IGZpbGw7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyAnZGVtby12aWRlby9FeWUgdGVzdC5tcDQnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInZpZGVvL21wNFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3ZpZGVvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmVkZWZpbmVkLnN2Z1wiIGNsYXNzPVwidy0xMDAgYm9yZGVyQ2xhc3NcIi8+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1lbmQgZmxleC1zdGFjayBtdC0yIG1iLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3RhcnQgbXgtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGVja2xpc3RUZXh0IGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImNhbWVyYVZpZXcoKVwiPkV5ZXRlc3Q8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IG10LTJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgY2hlY2tsaXN0SGVhZFwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSBDb25maWd1cmUgUHJlZGVmaW5lZCBDaGVja2xpc3QgLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIGhyZWY9XCIvc29wL0NvbmZpZ3VyZT90eXBlPW1vYmlsZXVzYWdlZGV0ZWN0aW9uXCIgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJkLWJsb2NrIHctMTAwXCIgZGF0YS1mc2xpZ2h0Ym94PVwibGlnaHRib3gtaG90LXNhbGVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dmlkZW8gY2xhc3M9XCJ3LTEwMCBib3JkZXJDbGFzcyBoLTI1MHB4XCIgY29udHJvbHMgYXV0b3BsYXkgbG9vcCBzdHlsZT1cIm9iamVjdC1maXQ6IGZpbGw7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSBbc3JjXT1cImVudmlyb25tZW50LlRyYXhBbnN3ZXJDRE4gKyAnZGVtby12aWRlby9yZW9tb3RlIG9wdHVtIDJfSC4yNjQtMSAoMSkubXA0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ2aWRlby9tcDRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvcHJlZGVmaW5lZC5zdmdcIiBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtMiBtYi00IFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1zdGFydCBteC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZWNrbGlzdFRleHQgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiY2FtZXJhVmlldzIoKVwiPlJlbW90ZSBFeWV0ZXN0PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTQgbXQtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMiBjaGVja2xpc3RIZWFkXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIENyZWF0ZSB5b3VyIG93biAgLS0+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk03LjU3NjMgNy41MDAzM0M3Ljc3MjIyIDYuOTQzMzggOC4xNTg5MyA2LjQ3Mzc1IDguNjY3OTMgNi4xNzQ2QzkuMTc2OTMgNS44NzU0NiA5Ljc3NTM4IDUuNzY2MTEgMTAuMzU3MyA1Ljg2NTkyQzEwLjkzOTIgNS45NjU3MyAxMS40NjcgNi4yNjgyNiAxMS44NDcyIDYuNzE5OTNDMTIuMjI3NCA3LjE3MTYgMTIuNDM1NSA3Ljc0MzI2IDEyLjQzNDYgOC4zMzM2NkMxMi40MzQ2IDEwLjAwMDMgOS45MzQ2NCAxMC44MzM3IDkuOTM0NjQgMTAuODMzN00xMC4wMDEzIDE0LjE2N0gxMC4wMDk2TTE4LjMzNDYgMTAuMDAwM0MxOC4zMzQ2IDE0LjYwMjcgMTQuNjAzNyAxOC4zMzM3IDEwLjAwMTMgMTguMzMzN0M1LjM5ODkzIDE4LjMzMzcgMS42Njc5NyAxNC42MDI3IDEuNjY3OTcgMTAuMDAwM0MxLjY2Nzk3IDUuMzk3OTUgNS4zOTg5MyAxLjY2Njk5IDEwLjAwMTMgMS42NjY5OUMxNC42MDM3IDEuNjY2OTkgMTguMzM0NiA1LjM5Nzk1IDE4LjMzNDYgMTAuMDAwM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIGNhcmQtZmx1c2ggcm91bmRlZCByb3VuZGVkLTRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cImQtYmxvY2tcIiBkYXRhLWZzbGlnaHRib3g9XCJsaWdodGJveC1ob3Qtc2FsZXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx2aWRlbyBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzIGgtMjUwcHhcIiBjb250cm9scyBhdXRvcGxheSBsb29wIHN0eWxlPVwib2JqZWN0LWZpdDogZmlsbDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIFtzcmNdPVwiZW52aXJvbm1lbnQuVHJheEFuc3dlckNETiArICdkZW1vLXZpZGVvL0ZhY3RvcnkgcWMubXA0J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ2aWRlby9tcDRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC92aWRlbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGltZyBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvbmV3Q2hlY2tsaXN0LnN2Z1wiICBjbGFzcz1cInctMTAwIGJvcmRlckNsYXNzXCIvPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtZW5kIGZsZXgtc3RhY2sgbXQtMiBtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXN0YXJ0IG14LTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hlY2tsaXN0VGV4dCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJjYW1lcmFWaWV3MSgpXCI+RmFjdG9yeTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgIFxyXG4gICAgICBcclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPCEtLSA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBtdC0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wIHB0LTMgbWItNVwiPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJjYXJkLXRpdGxlIGFsaWduLWl0ZW1zLXN0YXJ0IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLXRleHQgbWItMlwiPkNoZWNrbGlzdCBJbmZvPC9zcGFuPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10b29sYmFyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC41XCIgeD1cIjE3LjAzNjVcIiB5PVwiMTUuMTIyM1wiIHdpZHRoPVwiOC4xNTU0NlwiIGhlaWdodD1cIjJcIiByeD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJyb3RhdGUoNDUgMTcuMDM2NSAxNS4xMjIzKVwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMSAxOUM2LjU1NTU2IDE5IDMgMTUuNDQ0NCAzIDExQzMgNi41NTU1NiA2LjU1NTU2IDMgMTEgM0MxNS40NDQ0IDMgMTkgNi41NTU1NiAxOSAxMUMxOSAxNS40NDQ0IDE1LjQ0NDQgMTkgMTEgMTlaTTExIDVDNy41MzMzMyA1IDUgNy41MzMzMyA1IDExQzUgMTQuNDY2NyA3LjUzMzMzIDE3IDExIDE3QzE0LjQ2NjcgMTcgMTcgMTQuNDY2NyAxNyAxMUMxNyA3LjUzMzMzIDE0LjQ2NjcgNSAxMSA1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIj48L3BhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgcHMtMTQgbWUtMlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoXCIgWyhuZ01vZGVsKV09XCJkeW5hbWljRGF0YS5zZWFyY2hcIiAoY2hhbmdlKT1cInNlYXJjaCgpXCIvPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwiJy9tYW5hZ2UvdHJheC9jcmVhdGVDaGVja2xpc3QnXCIgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwiIW5vRGF0YSAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0FkZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSBteC0yIGJ0bi1vdXRsaW5lIGJ0bi1vdXRsaW5lLWRlZmF1bHQgcm91bmRlZC0zIHRleHQtbm93cmFwIGJvcmRlci12YWxcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMTMgNC4xNjY5OVYxNS44MzM3TTQuMTY3OTcgMTAuMDAwM0gxNS44MzQ2XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjxzcGFuIGNsYXNzPVwibXMtMlwiPkNyZWF0ZSBDaGVja2xpc3Q8L3NwYW4+IDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicm93IGxvYWRlciBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIHBiLTVcIiAqbmdJZj1cIiFsb2FkaW5nICYmIG5vRGF0YVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YTEuc3ZnXCIgYWx0PVwiXCIgY2xhc3M9XCJzdGFydGNoZWNrbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrbGlzdF90ZXh0IGZ3LXNlbWlib2xkIG10LTYgY2hlY2tTdGFydFwiPlN0YXJ0IGJ5IGNyZWF0aW5nIGEgY2hlY2tsaXN0PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tsaXN0X3NwYW4gbXQtMSBjaGVja2xpc3RIZWFkXCI+QW55IGNoZWNrbGlzdCBjcmVhdGVkIHdpbGwgbGl2ZSBoZXJlLjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBkYXRhLWt0LXN1YnNjcmlwdGlvbi10YWJsZS10b29sYmFyPVwiYmFzZVwiIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL3RhbmdvZXllLmFpL1wiIGNsYXNzPVwiYnRuLW91dGxpbmUgYnRuLW91dGxpbmUgYnRuIGJ0bi1saWdodCB1cGxvYWQgbXgtMyBweC0xNiBjaGVja1N0YXJ0XCI+PHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1cGxvYWR0ZXh0XCI+SG93IFRvXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIENyZWF0ZT88L3NwYW4+PC9hPlxyXG5cclxuICAgICAgICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIicvbWFuYWdlL3RyYXgvY3JlYXRlQ2hlY2tsaXN0J1wiIHR5cGU9XCJidXR0b25cIiB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHB4LTE2IG14LTIgbmctc3Rhci1pbnNlcnRlZCBjaGVja1N0YXJ0XCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwO1wiICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNBZGRcIj48c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMDEgNC4xNjYwMlYxNS44MzI3TTQuMTY2NzUgOS45OTkzNUgxNS44MzM0XCIgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9XCJjcmVhdGVcIj5DcmVhdGUgTmV3PC9zcGFuPjwvYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIiFub0RhdGEgJiYgIWxvYWRpbmdcIiBjYWxzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcmVzcG9uc2l2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidy0xMDAgdGFibGUgYm90dG9tLWJvcmRlciB0ZXh0LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cIm9uU29ydCgnY2hlY2tMaXN0TmFtZScpXCI+Q2hlY2tsaXN0IDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjaGVja0xpc3ROYW1lJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NoZWNrTGlzdE5hbWUnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ2NyZWF0ZWRCeU5hbWUnKVwiPkNoZWNrbGlzdCBPd25lciA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnY3JlYXRlZEJ5TmFtZScgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdjcmVhdGVkQnlOYW1lJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdjb3ZlcmFnZScpXCI+Q292ZXJhZ2UgPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NvdmVyYWdlJyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ2NvdmVyYWdlJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdzdG9yZUNvdW50JylcIj5Bc3NpZ25lZCBUbyA8c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RvcmVDb3VudCcgJiYgZHluYW1pY0RhdGEuc29ydEJ5ID09PSAxID8gJ3JvdGF0ZScgOiAnJ1wiIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk04LjAwMDE2IDMuMzMzMzdWMTIuNjY2N004LjAwMDE2IDEyLjY2NjdMMTIuNjY2OCA4LjAwMDA0TTguMDAwMTYgMTIuNjY2N0wzLjMzMzUgOC4wMDAwNFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuc3Ryb2tlXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdG9yZUNvdW50JyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwib25Tb3J0KCdxdWVzdGlvbkNvdW50JylcIj5Oby4gb2YgcXVlc3Rpb25zIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdxdWVzdGlvbkNvdW50JyAmJiBkeW5hbWljRGF0YS5zb3J0QnkgPT09IDEgPyAncm90YXRlJyA6ICcnXCIgd2lkdGg9XCIxNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTguMDAwMTYgMy4zMzMzN1YxMi42NjY3TTguMDAwMTYgMTIuNjY2N0wxMi42NjY4IDguMDAwMDRNOC4wMDAxNiAxMi42NjY3TDMuMzMzNSA4LjAwMDA0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3F1ZXN0aW9uQ291bnQnID8gJyMwMEEzRkYnIDogJyM2NjcwODUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3N0YXR1cycpXCI+U3RhdHVzIDxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cImR5bmFtaWNEYXRhLnNvcnRDb2x1bW4gPT09ICdzdGF0dXMnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAnc3RhdHVzJyA/ICcjMDBBM0ZGJyA6ICcjNjY3MDg1J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj5BY3Rpb25zPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJvblNvcnQoJ3B1Ymxpc2gnKVwiPlB1Ymxpc2ggPHN2Z1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiZHluYW1pY0RhdGEuc29ydENvbHVtbiA9PT0gJ3B1Ymxpc2gnICYmIGR5bmFtaWNEYXRhLnNvcnRCeSA9PT0gMSA/ICdyb3RhdGUnIDogJydcIiB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOC4wMDAxNiAzLjMzMzM3VjEyLjY2NjdNOC4wMDAxNiAxMi42NjY3TDEyLjY2NjggOC4wMDAwNE04LjAwMDE2IDEyLjY2NjdMMy4zMzM1IDguMDAwMDRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCJkeW5hbWljRGF0YS5zb3J0Q29sdW1uID09PSAncHVibGlzaCcgPyAnIzAwQTNGRicgOiAnIzY2NzA4NSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjEuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IGRhdGEgb2YgY2hlY2tsaXN0RGF0YTtsZXQgaT1pbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwidGV4dC1jYXBpdGFsaXplXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtMzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ltYm9sLWxhYmVsIGJnLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IG1lLTJcIj57e2RhdGEuY2hlY2tMaXN0Q2hhci50b1VwcGVyQ2FzZSgpfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LWRlY29yYXRpb24tdW5kZXJsaW5lIHRleHQtcHJpbWFyeVwiICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbSdcIj48YSBbcm91dGVyTGlua109XCJbJy9tYW5hZ2UvdHJheC9kYXNoYm9hcmQvaW5mbyddXCIgW3F1ZXJ5UGFyYW1zXT1cInt0eXBlOiAnQ2hlY2tsaXN0JywgY2hlY2tsaXN0OiBkYXRhLl9pZCB9XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPiB7e2RhdGEuY2hlY2tMaXN0TmFtZX19PC9hPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtcHJpbWFyeVwiICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbSdcIj57e2RhdGEuY2hlY2tMaXN0TmFtZX19IDxzcGFuICpuZ0lmPVwiZGF0YT8uY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbSdcIiBjbGFzcz1cIm14LTJcIj7inKg8L3NwYW4+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGEuY3JlYXRlZEJ5TmFtZX19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZD57e2RhdGE/LmNvdmVyYWdlfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkID57e2RhdGEuc3RvcmVDb3VudH19PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCA+e3tkYXRhLnF1ZXN0aW9uQ291bnR9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9XCJiYWRnZVwiIFtuZ0NsYXNzXT1cImRhdGEucHVibGlzaCA/ICdiYWRnZS1saWdodC1zdWNjZXNzJyA6ICdiYWRnZS1saWdodC1wcmltYXJ5J1wiPnt7KGRhdGEucHVibGlzaCA/ICdQdWJsaXNoZWQnIDonZHJhZnQnKSB8IHRpdGxlY2FzZX19PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZS02XCIgW25nQ2xhc3NdPVwiKCFkYXRhPy5wdWJsaXNoICYmIGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiIChjbGljayk9XCJjaGVja1Blcm1pc3Npb24oJ2VkaXQnLGRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTAuODMyMDMxIDkuOTk5NjdDMC44MzIwMzEgOS45OTk2NyA0LjE2NTM2IDMuMzMzMDEgOS45OTg3IDMuMzMzMDFDMTUuODMyIDMuMzMzMDEgMTkuMTY1NCA5Ljk5OTY3IDE5LjE2NTQgOS45OTk2N0MxOS4xNjU0IDkuOTk5NjcgMTUuODMyIDE2LjY2NjMgOS45OTg3IDE2LjY2NjNDNC4xNjUzNiAxNi42NjYzIDAuODMyMDMxIDkuOTk5NjcgMC44MzIwMzEgOS45OTk2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLnN0cm9rZV09XCIoIWRhdGEucHVibGlzaCAmJiBkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05Ljk5ODcgMTIuNDk5N0MxMS4zNzk0IDEyLjQ5OTcgMTIuNDk4NyAxMS4zODA0IDEyLjQ5ODcgOS45OTk2N0MxMi40OTg3IDguNjE4OTYgMTEuMzc5NCA3LjQ5OTY3IDkuOTk4NyA3LjQ5OTY3QzguNjE3OTkgNy40OTk2NyA3LjQ5ODcgOC42MTg5NiA3LjQ5ODcgOS45OTk2N0M3LjQ5ODcgMTEuMzgwNCA4LjYxNzk5IDEyLjQ5OTcgOS45OTg3IDEyLjQ5OTdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCFkYXRhLnB1Ymxpc2ggJiYgZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQpID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lLTZcIiBbbmdDbGFzc109XCIoKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiICAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdzZXR0aW5nJyxkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjI1NF8yMDI2MSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuOTk4NyAxMi40OTk3QzExLjM3OTQgMTIuNDk5NyAxMi40OTg3IDExLjM4MDQgMTIuNDk4NyA5Ljk5OTY3QzEyLjQ5ODcgOC42MTg5NiAxMS4zNzk0IDcuNDk5NjcgOS45OTg3IDcuNDk5NjdDOC42MTc5OSA3LjQ5OTY3IDcuNDk4NyA4LjYxODk2IDcuNDk4NyA5Ljk5OTY3QzcuNDk4NyAxMS4zODA0IDguNjE3OTkgMTIuNDk5NyA5Ljk5ODcgMTIuNDk5N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCkgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE2LjE2NTQgMTIuNDk5N0MxNi4wNTQ0IDEyLjc1MSAxNi4wMjEzIDEzLjAyOTggMTYuMDcwNCAxMy4zMDAyQzE2LjExOTQgMTMuNTcwNSAxNi4yNDgyIDEzLjgxOTkgMTYuNDQwNCAxNC4wMTYzTDE2LjQ5MDQgMTQuMDY2M0MxNi42NDUzIDE0LjIyMTEgMTYuNzY4MyAxNC40MDQ5IDE2Ljg1MjEgMTQuNjA3M0MxNi45MzYgMTQuODA5NiAxNi45NzkyIDE1LjAyNjUgMTYuOTc5MiAxNS4yNDU1QzE2Ljk3OTIgMTUuNDY0NSAxNi45MzYgMTUuNjgxNCAxNi44NTIxIDE1Ljg4MzdDMTYuNzY4MyAxNi4wODYxIDE2LjY0NTMgMTYuMjY5OSAxNi40OTA0IDE2LjQyNDdDMTYuMzM1NiAxNi41Nzk2IDE2LjE1MTggMTYuNzAyNiAxNS45NDk0IDE2Ljc4NjRDMTUuNzQ3MSAxNi44NzAzIDE1LjUzMDIgMTYuOTEzNSAxNS4zMTEyIDE2LjkxMzVDMTUuMDkyMiAxNi45MTM1IDE0Ljg3NTMgMTYuODcwMyAxNC42NzMgMTYuNzg2NEMxNC40NzA2IDE2LjcwMjYgMTQuMjg2OCAxNi41Nzk2IDE0LjEzMiAxNi40MjQ3TDE0LjA4MiAxNi4zNzQ3QzEzLjg4NTYgMTYuMTgyNiAxMy42MzYyIDE2LjA1MzcgMTMuMzY1OSAxNi4wMDQ3QzEzLjA5NTUgMTUuOTU1NyAxMi44MTY3IDE1Ljk4ODcgMTIuNTY1NCAxNi4wOTk3QzEyLjMxODkgMTYuMjA1MyAxMi4xMDg3IDE2LjM4MDcgMTEuOTYwNiAxNi42MDQzQzExLjgxMjYgMTYuODI3OSAxMS43MzMxIDE3LjA4OTkgMTEuNzMyIDE3LjM1OFYxNy40OTk3QzExLjczMiAxNy45NDE3IDExLjU1NjQgMTguMzY1NiAxMS4yNDM5IDE4LjY3ODJDMTAuOTMxMyAxOC45OTA3IDEwLjUwNzQgMTkuMTY2MyAxMC4wNjU0IDE5LjE2NjNDOS42MjMzNCAxOS4xNjYzIDkuMTk5NDEgMTguOTkwNyA4Ljg4Njg1IDE4LjY3ODJDOC41NzQyOSAxOC4zNjU2IDguMzk4NyAxNy45NDE3IDguMzk4NyAxNy40OTk3VjE3LjQyNDdDOC4zOTIyNSAxNy4xNDg4IDguMzAyOTYgMTYuODgxMyA4LjE0MjQ2IDE2LjY1NjlDNy45ODE5NSAxNi40MzI1IDcuNzU3NjQgMTYuMjYxNiA3LjQ5ODcgMTYuMTY2M0M3LjI0NzM1IDE2LjA1NTQgNi45Njg1NCAxNi4wMjIzIDYuNjk4MjEgMTYuMDcxM0M2LjQyNzg4IDE2LjEyMDQgNi4xNzg0MyAxNi4yNDkyIDUuOTgyMDMgMTYuNDQxM0w1LjkzMjAzIDE2LjQ5MTNDNS43NzcyNCAxNi42NDYzIDUuNTkzNDMgMTYuNzY5MiA1LjM5MTEgMTYuODUzMUM1LjE4ODc3IDE2LjkzNyA0Ljk3MTg5IDE2Ljk4MDIgNC43NTI4NiAxNi45ODAyQzQuNTMzODQgMTYuOTgwMiA0LjMxNjk2IDE2LjkzNyA0LjExNDYzIDE2Ljg1MzFDMy45MTIzIDE2Ljc2OTIgMy43Mjg0OSAxNi42NDYzIDMuNTczNyAxNi40OTEzQzMuNDE4NzQgMTYuMzM2NiAzLjI5NTgxIDE2LjE1MjcgMy4yMTE5MyAxNS45NTA0QzMuMTI4MDYgMTUuNzQ4MSAzLjA4NDg5IDE1LjUzMTIgMy4wODQ4OSAxNS4zMTIyQzMuMDg0ODkgMTUuMDkzMSAzLjEyODA2IDE0Ljg3NjMgMy4yMTE5MyAxNC42NzM5QzMuMjk1ODEgMTQuNDcxNiAzLjQxODc0IDE0LjI4NzggMy41NzM3IDE0LjEzM0wzLjYyMzcgMTQuMDgzQzMuODE1ODEgMTMuODg2NiAzLjk0NDY5IDEzLjYzNzIgMy45OTM3IDEzLjM2NjhDNC4wNDI3MiAxMy4wOTY1IDQuMDA5NjMgMTIuODE3NyAzLjg5ODcgMTIuNTY2M0MzLjc5MzA2IDEyLjMxOTkgMy42MTc2NiAxMi4xMDk3IDMuMzk0MDkgMTEuOTYxNkMzLjE3MDUxIDExLjgxMzUgMi45MDg1MiAxMS43MzQxIDIuNjQwMzYgMTEuNzMzSDIuNDk4N0MyLjA1NjY3IDExLjczMyAxLjYzMjc1IDExLjU1NzQgMS4zMjAxOSAxMS4yNDQ5QzEuMDA3NjMgMTAuOTMyMyAwLjgzMjAzMSAxMC41MDg0IDAuODMyMDMxIDEwLjA2NjNDMC44MzIwMzEgOS42MjQzMSAxLjAwNzYzIDkuMjAwMzkgMS4zMjAxOSA4Ljg4NzgzQzEuNjMyNzUgOC41NzUyNyAyLjA1NjY3IDguMzk5NjcgMi40OTg3IDguMzk5NjdIMi41NzM3QzIuODQ5NTMgOC4zOTMyMiAzLjExNzAzIDguMzAzOTQgMy4zNDE0NSA4LjE0MzQzQzMuNTY1ODYgNy45ODI5MyAzLjczNjc5IDcuNzU4NjIgMy44MzIwMyA3LjQ5OTY3QzMuOTQyOTYgNy4yNDgzMyAzLjk3NjA1IDYuOTY5NTEgMy45MjcwMyA2LjY5OTE4QzMuODc4MDIgNi40Mjg4NSAzLjc0OTE0IDYuMTc5NDEgMy41NTcwMyA1Ljk4MzAxTDMuNTA3MDMgNS45MzMwMUMzLjM1MjA3IDUuNzc4MjIgMy4yMjkxNCA1LjU5NDQgMy4xNDUyNiA1LjM5MjA3QzMuMDYxMzkgNS4xODk3NCAzLjAxODIyIDQuOTcyODcgMy4wMTgyMiA0Ljc1Mzg0QzMuMDE4MjIgNC41MzQ4MSAzLjA2MTM5IDQuMzE3OTQgMy4xNDUyNiA0LjExNTYxQzMuMjI5MTQgMy45MTMyOCAzLjM1MjA3IDMuNzI5NDYgMy41MDcwMyAzLjU3NDY3QzMuNjYxODIgMy40MTk3MSAzLjg0NTYzIDMuMjk2NzggNC4wNDc5NiAzLjIxMjkxQzQuMjUwMjkgMy4xMjkwMyA0LjQ2NzE3IDMuMDg1ODYgNC42ODYyIDMuMDg1ODZDNC45MDUyMiAzLjA4NTg2IDUuMTIyMSAzLjEyOTAzIDUuMzI0NDMgMy4yMTI5MUM1LjUyNjc2IDMuMjk2NzggNS43MTA1OCAzLjQxOTcxIDUuODY1MzYgMy41NzQ2N0w1LjkxNTM2IDMuNjI0NjdDNi4xMTE3NiAzLjgxNjc5IDYuMzYxMjEgMy45NDU2NiA2LjYzMTU0IDMuOTk0NjhDNi45MDE4NyA0LjA0MzY5IDcuMTgwNjggNC4wMTA2IDcuNDMyMDMgMy44OTk2N0g3LjQ5ODdDNy43NDUxNyAzLjc5NDA0IDcuOTU1MzggMy42MTg2NCA4LjEwMzQ0IDMuMzk1MDZDOC4yNTE1IDMuMTcxNDkgOC4zMzA5NiAyLjkwOTUgOC4zMzIwMyAyLjY0MTM0VjIuNDk5NjdDOC4zMzIwMyAyLjA1NzY1IDguNTA3NjMgMS42MzM3MiA4LjgyMDE5IDEuMzIxMTZDOS4xMzI3NSAxLjAwODYgOS41NTY2NyAwLjgzMzAwOCA5Ljk5ODcgMC44MzMwMDhDMTAuNDQwNyAwLjgzMzAwOCAxMC44NjQ2IDEuMDA4NiAxMS4xNzcyIDEuMzIxMTZDMTEuNDg5OCAxLjYzMzcyIDExLjY2NTQgMi4wNTc2NSAxMS42NjU0IDIuNDk5NjdWMi41NzQ2N0MxMS42NjY0IDIuODQyODMgMTEuNzQ1OSAzLjEwNDgyIDExLjg5NCAzLjMyODRDMTIuMDQyIDMuNTUxOTcgMTIuMjUyMiAzLjcyNzM3IDEyLjQ5ODcgMy44MzMwMUMxMi43NSAzLjk0Mzk0IDEzLjAyODkgMy45NzcwMyAxMy4yOTkyIDMuOTI4MDFDMTMuNTY5NSAzLjg3OSAxMy44MTkgMy43NTAxMiAxNC4wMTU0IDMuNTU4MDFMMTQuMDY1NCAzLjUwODAxQzE0LjIyMDIgMy4zNTMwNSAxNC40MDQgMy4yMzAxMiAxNC42MDYzIDMuMTQ2MjRDMTQuODA4NiAzLjA2MjM3IDE1LjAyNTUgMy4wMTkyIDE1LjI0NDUgMy4wMTkyQzE1LjQ2MzYgMy4wMTkyIDE1LjY4MDQgMy4wNjIzNyAxNS44ODI4IDMuMTQ2MjRDMTYuMDg1MSAzLjIzMDEyIDE2LjI2ODkgMy4zNTMwNSAxNi40MjM3IDMuNTA4MDFDMTYuNTc4NyAzLjY2MjggMTYuNzAxNiAzLjg0NjYxIDE2Ljc4NTUgNC4wNDg5NEMxNi44NjkzIDQuMjUxMjcgMTYuOTEyNSA0LjQ2ODE1IDE2LjkxMjUgNC42ODcxN0MxNi45MTI1IDQuOTA2MiAxNi44NjkzIDUuMTIzMDggMTYuNzg1NSA1LjMyNTQxQzE2LjcwMTYgNS41Mjc3NCAxNi41Nzg3IDUuNzExNTUgMTYuNDIzNyA1Ljg2NjM0TDE2LjM3MzcgNS45MTYzNEMxNi4xODE2IDYuMTEyNzQgMTYuMDUyNyA2LjM2MjE5IDE2LjAwMzcgNi42MzI1MkMxNS45NTQ3IDYuOTAyODUgMTUuOTg3OCA3LjE4MTY2IDE2LjA5ODcgNy40MzMwMVY3LjQ5OTY3QzE2LjIwNDMgNy43NDYxNSAxNi4zNzk3IDcuOTU2MzUgMTYuNjAzMyA4LjEwNDQyQzE2LjgyNjkgOC4yNTI0OCAxNy4wODg5IDguMzMxOTQgMTcuMzU3IDguMzMzMDFIMTcuNDk4N0MxNy45NDA3IDguMzMzMDEgMTguMzY0NiA4LjUwODYgMTguNjc3MiA4LjgyMTE2QzE4Ljk4OTggOS4xMzM3MiAxOS4xNjU0IDkuNTU3NjUgMTkuMTY1NCA5Ljk5OTY3QzE5LjE2NTQgMTAuNDQxNyAxOC45ODk4IDEwLjg2NTYgMTguNjc3MiAxMS4xNzgyQzE4LjM2NDYgMTEuNDkwNyAxNy45NDA3IDExLjY2NjMgMTcuNDk4NyAxMS42NjYzSDE3LjQyMzdDMTcuMTU1NSAxMS42Njc0IDE2Ljg5MzYgMTEuNzQ2OSAxNi42NyAxMS44OTQ5QzE2LjQ0NjQgMTIuMDQzIDE2LjI3MSAxMi4yNTMyIDE2LjE2NTQgMTIuNDk5N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0ID8gJyM2NjcwODUnIDogJyNEMEQ1REQnXCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMjU0XzIwMjYxXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiXCIgW25nQ2xhc3NdPVwiKGRhdGEuY2hlY2tMaXN0VHlwZSA9PT0gJ2N1c3RvbScgJiYgKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0KSA/ICdjdXJzb3ItcG9pbnRlcicgOiAnJ1wiICAoY2xpY2spPVwiY2hlY2tQZXJtaXNzaW9uKCdkdXBsaWNhdGUnLGRhdGEpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMjU0XzIwMjY1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjc5NyAxMi41MDAzSDMuMzM0NjRDMi44OTI2MSAxMi41MDAzIDIuNDY4NjggMTIuMzI0NyAyLjE1NjEyIDEyLjAxMjJDMS44NDM1NiAxMS42OTk2IDEuNjY3OTcgMTEuMjc1NyAxLjY2Nzk3IDEwLjgzMzdWMy4zMzM2NkMxLjY2Nzk3IDIuODkxNjMgMS44NDM1NiAyLjQ2NzcxIDIuMTU2MTIgMi4xNTUxNUMyLjQ2ODY4IDEuODQyNTkgMi44OTI2MSAxLjY2Njk5IDMuMzM0NjQgMS42NjY5OUgxMC44MzQ2QzExLjI3NjcgMS42NjY5OSAxMS43MDA2IDEuODQyNTkgMTIuMDEzMSAyLjE1NTE1QzEyLjMyNTcgMi40Njc3MSAxMi41MDEzIDIuODkxNjMgMTIuNTAxMyAzLjMzMzY2VjQuMTY2OTlNOS4xNjc5NyA3LjUwMDMzSDE2LjY2OEMxNy41ODg0IDcuNTAwMzMgMTguMzM0NiA4LjI0NjUyIDE4LjMzNDYgOS4xNjY5OVYxNi42NjdDMTguMzM0NiAxNy41ODc1IDE3LjU4ODQgMTguMzMzNyAxNi42NjggMTguMzMzN0g5LjE2Nzk3QzguMjQ3NDkgMTguMzMzNyA3LjUwMTMgMTcuNTg3NSA3LjUwMTMgMTYuNjY3VjkuMTY2OTlDNy41MDEzIDguMjQ2NTIgOC4yNDc0OSA3LjUwMDMzIDkuMTY3OTcgNy41MDAzM1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiZGF0YS5jaGVja0xpc3RUeXBlID09PSAnY3VzdG9tJyAmJiAoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgPyAnIzY2NzA4NScgOiAnI0QwRDVERCdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIyNTRfMjAyNjVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKGNsaWNrKT1cImNoZWNrUGVybWlzc2lvbignZGVsZXRlJyxkYXRhKVwiIFtuZ0NsYXNzXT1cIiFkYXRhPy5wdWJsaXNoICYmIChncy51c2VyQWNjZXNzIHwgYXN5bmMpPy5UYW5nb1RyYXhfY2hlY2tsaXN0X2lzRWRpdCAgPyAnY3Vyc29yLXBvaW50ZXInIDogJydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDFcIiB2aWV3Qm94PVwiMCAwIDQwIDQxXCIgZmlsbD1cIm5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzMxNjJfMTA0MTQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMi41IDE1LjAyMjhIMTQuMTY2N00xNC4xNjY3IDE1LjAyMjhIMjcuNU0xNC4xNjY3IDE1LjAyMjhWMjYuNjg5NUMxNC4xNjY3IDI3LjEzMTUgMTQuMzQyMyAyNy41NTU0IDE0LjY1NDggMjcuODY4QzE0Ljk2NzQgMjguMTgwNSAxNS4zOTEzIDI4LjM1NjEgMTUuODMzMyAyOC4zNTYxSDI0LjE2NjdDMjQuNjA4NyAyOC4zNTYxIDI1LjAzMjYgMjguMTgwNSAyNS4zNDUyIDI3Ljg2OEMyNS42NTc3IDI3LjU1NTQgMjUuODMzMyAyNy4xMzE1IDI1LjgzMzMgMjYuNjg5NVYxNS4wMjI4SDE0LjE2NjdaTTE2LjY2NjcgMTUuMDIyOFYxMy4zNTYxQzE2LjY2NjcgMTIuOTE0MSAxNi44NDIzIDEyLjQ5MDIgMTcuMTU0OCAxMi4xNzc2QzE3LjQ2NzQgMTEuODY1IDE3Ljg5MTMgMTEuNjg5NSAxOC4zMzMzIDExLjY4OTVIMjEuNjY2N0MyMi4xMDg3IDExLjY4OTUgMjIuNTMyNiAxMS44NjUgMjIuODQ1MiAxMi4xNzc2QzIzLjE1NzcgMTIuNDkwMiAyMy4zMzMzIDEyLjkxNDEgMjMuMzMzMyAxMy4zNTYxVjE1LjAyMjhNMTguMzMzMyAxOS4xODk1VjI0LjE4OTVNMjEuNjY2NyAxOS4xODk1VjI0LjE4OTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5zdHJva2VdPVwiKCEoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uVGFuZ29UcmF4X2NoZWNrbGlzdF9pc0VkaXQgfHwgZGF0YS5wdWJsaXNoIHx8IGRhdGEuY2hlY2tMaXN0VHlwZSAhPT0gJ2N1c3RvbScpID8gJyNEMEQ1REQnIDonIzY2NzA4NSdcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzMxNjJfMTA0MTRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDEwIDEwLjAyMzQpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcm9sZT1cInN3aXRjaFwiIGlkPVwic3VwcG9ydFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtdC0zIGN1cnNvci1wb2ludGVyXCIgKGNoYW5nZSk9XCJwdWJsaXNoKCRldmVudCwgZGF0YSxpKVwiIFtjaGVja2VkXT1cImRhdGE/LnB1Ymxpc2hcIiBbZGlzYWJsZWRdPVwiKCFkYXRhPy5zdG9yZUNvdW50ICYmIChkYXRhLmNoZWNrTGlzdFR5cGUgPT09ICdjdXN0b20nIHx8ICFbJ2V5ZXRlc3QnLCAncmVtb3Rlb3B0b21ldHJpc3QnLCAnc3RvcmVoeWdpZW5lbW9uaXRvcmluZycsICdxdWV1ZWFsZXJ0JywgJ3N1c3BpY2lvdXNhY3Rpdml0eScsICdib3hhbGVydCcsICdzdXNwaWNpb3VzZm9vdGZhbGwnLCAnZHJpbmtpbmcnLCAnYmFnZGV0ZWN0aW9uJ10uaW5jbHVkZXMoZGF0YT8uY2hlY2tMaXN0VHlwZSkpKSB8fCAhKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/LlRhbmdvVHJheF9jaGVja2xpc3RfaXNFZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgICAgICAgICAgPC90YWJsZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxsaWItcGFnaW5hdGlvbiBbaXRlbXNQZXJQYWdlXT1cImR5bmFtaWNEYXRhLmxpbWl0XCIgW2N1cnJlbnRQYWdlXT1cImR5bmFtaWNEYXRhLm9mZnNldFwiIFt0b3RhbEl0ZW1zXT1cInRvdGFsSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgW3BhZ2luYXRpb25TaXplc109XCJwYWdpbmF0aW9uU2l6ZXNcIiBbcGFnZVNpemVdPVwicGFnZVNpemVcIiAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAocGFnZVNpemVDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+PC9saWItcGFnaW5hdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4gLS0+Il19