tango-app-ui-analyse-traffic 3.8.0-alpha.4 → 3.8.0-alpha.5

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.
@@ -173,7 +173,7 @@ export class ImgRvpsComponent {
173
173
  : null;
174
174
  const dateString = this.folderDate || '';
175
175
  const groupByKey = 'time';
176
- const type = this.type || '';
176
+ const type = this.type === 'footfall' ? '' : this.type || '';
177
177
  const processType = 'footfall';
178
178
  this.rvpsService
179
179
  .getRvpsListApi(storeId, dateString, groupByKey, type, processType)
@@ -503,13 +503,13 @@ export class ImgRvpsComponent {
503
503
  this.remainingImageArray = this.imagesArrayData.filter((_, i) => i !== this.currentImageIndex);
504
504
  }
505
505
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImgRvpsComponent, deps: [{ token: i1.TrafficService }, { token: i2.GlobalStateService }, { token: i0.ChangeDetectorRef }, { token: i3.NgbModal }, { token: i4.ToastService }, { token: i5.TrafficRvpsService }], target: i0.ɵɵFactoryTarget.Component });
506
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImgRvpsComponent, selector: "lib-img-rvps", viewQueries: [{ propertyName: "zoomPopup", first: true, predicate: ["zoomPopup"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"nav-group bg-white border-1 btn-group mx-5\">\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('footfall')\">\r\n Total footfall\r\n <span\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.footfallCount || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('non-tagging')\">\r\n Non-tags\r\n <span\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.nonTags || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('duplicate')\">\r\n Duplicated\r\n <span\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.duplicate || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('employee')\">\r\n Employee/Staff\r\n <span\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.employee || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'housekeeping' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('housekeeping')\">\r\n Housekeeping\r\n <span\r\n [ngClass]=\"type === 'housekeeping' ? 'badge badge-active activePlanBtn' : ' badge badge-light-default inactivePlanBtn'\">\r\n {{ countData?.housekeeping || 0 }}\r\n </span>\r\n </button>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg width=\"94\" height=\"94\" viewBox=\"0 0 94 94\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M35.332 51.9999H33.6654C32.7813 51.9999 31.9335 51.6487 31.3083 51.0236C30.6832 50.3985 30.332 49.5506 30.332 48.6666V33.6666C30.332 32.7825 30.6832 31.9347 31.3083 31.3096C31.9335 30.6844 32.7813 30.3333 33.6654 30.3333H48.6654C49.5494 30.3333 50.3973 30.6844 51.0224 31.3096C51.6475 31.9347 51.9987 32.7825 51.9987 33.6666V35.3333M45.332 41.9999H60.332C62.173 41.9999 63.6654 43.4923 63.6654 45.3333V60.3333C63.6654 62.1742 62.173 63.6666 60.332 63.6666H45.332C43.4911 63.6666 41.9987 62.1742 41.9987 60.3333V45.3333C41.9987 43.4923 43.4911 41.9999 45.332 41.9999Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"nodata-title my-3\">\r\n {{ noDataMessages[type?.toLowerCase()] || 'No data found' }}\r\n</div>\r\n \r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgFullView(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- full image View -->\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall1()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <!-- <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n\r\n <div class=\"row mx-0 border-gray img-traffic\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"position-relative border-gray p-2 \">\r\n <!-- <button *ngIf=\"canNavigateLeft\" (click)=\"navigateImage('left')\"\r\n class=\"btn btn-light position-absolute start-0 top-50 z-index-10\">\r\n \u25C0\r\n </button> -->\r\n\r\n <!-- Main Image -->\r\n <img class=\"img-src cursor-pointer h-350px\"\r\n [src]=\"imageUrl + selectImageArray?.filePath\" alt=\"\">\r\n <!-- <button *ngIf=\"canNavigateRight\" (click)=\"navigateImage('right')\"\r\n class=\"btn btn-light position-absolute end-0 top-50 z-index-10\">\r\n \u25B6\r\n </button> -->\r\n\r\n <!-- Right arrow button -->\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{selectImageArray?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{selectImageArray?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"selectImageArray?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"mx-2 \">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"title-type\">\r\n Select non-shopper type\r\n </div>\r\n\r\n <div *ngIf=\"!revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-default\" type=\"button\" (click)=\"clearValue()\">Clear</button>\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button [disabled]=\"selectedRadioType ===undefined || selectedRadioType ===''\" class=\"btn btn-primary\"\r\n id=\"alert-toast\" (click)=\"save(selectedType)\">Save</button>\r\n </div>\r\n <div *ngIf=\"revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"editValue()\"><span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n<path d=\"M14.6554 1.71047C14.8927 1.47315 15.1745 1.2849 15.4845 1.15646C15.7946 1.02802 16.1269 0.961914 16.4626 0.961914C16.7982 0.961914 17.1305 1.02802 17.4406 1.15646C17.7507 1.2849 18.0324 1.47315 18.2697 1.71047C18.5071 1.94779 18.6953 2.22953 18.8238 2.53961C18.9522 2.84969 19.0183 3.18202 19.0183 3.51765C19.0183 3.85327 18.9522 4.18561 18.8238 4.49568C18.6953 4.80576 18.5071 5.0875 18.2697 5.32482L6.0713 17.5233L1.10156 18.8786L2.45695 13.9089L14.6554 1.71047Z\" stroke=\"#344054\" stroke-width=\"1.81079\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg></span>Edit</button>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"duplicate\"\r\n id=\"duplicate\" [(ngModel)]=\"selectedType\" [value]=\"'duplicate'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"duplicate\">\r\n <span class=\"ms-5\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-5 tag-class\">Duplicate</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"employee\"\r\n id=\"employee\" [(ngModel)]=\"selectedType\" [value]=\"'employee'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"employee\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\">Employee/Staff</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"housekeeping\"\r\n id=\"housekeeping\" [(ngModel)]=\"selectedType\" [value]=\"'housekeeping'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"housekeeping\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\"> House Keeping</span>\r\n </label>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic mt-3 high-400px scroll-y\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of remainingImageArray\">\r\n <div class=\"position-relative\">\r\n <input *ngIf=\"selectedRadioType === 'duplicate'\" type=\"checkbox\"\r\n [(ngModel)]=\"obj.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(obj, 'duplicate')\" />\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgSwap(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at\r\n the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n </div>\r\n </section>\r\n</div>\r\n\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n <span *ngIf=\"popupType === 'employee'\">Tagging as employee/staff </span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Tagging as duplicates </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Tagging as House Keeping </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Tagging as non-tagging </span>\r\n </h5>\r\n <p class=\"mb-3\">\r\n <span *ngIf=\"popupType === 'employee'\">Are you sure you want to tag this as employee/staff?</span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Are you sure you want to tag this as duplicates? </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Are you sure you want to tag this as house Keeping? </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Are you sure you want to tag this as non-tagging? </span>\r\n\r\n </p>\r\n </div>\r\n\r\n <div class=\"w-100 mt-5 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancelSubmit()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType)\">\r\n Yes, Tag\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:195px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-800, #1D2939);font-size:14px;font-weight:500;line-height:20px}.img-doc-value{color:var(--Gray-600, #667085);font-size:14px;font-weight:500;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.scroll-y{overflow-y:auto}.absolute{top:5px;right:5px;z-index:2}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}.title-type{color:var(--Gray-800, #1D2939);font-size:16px;font-weight:600;line-height:24px}.top-50{top:35%!important}.activePlanBtn{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #344054)!important;font-size:14px;font-weight:500!important;line-height:20px}.badge-active{border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);text-align:center;font-size:12px;font-style:normal;font-weight:500;line-height:20px;mix-blend-mode:multiply}input[type=checkbox]{width:18px!important;height:18px!important;margin:-2px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}\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: 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
506
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ImgRvpsComponent, selector: "lib-img-rvps", viewQueries: [{ propertyName: "zoomPopup", first: true, predicate: ["zoomPopup"], descendants: true }], ngImport: i0, template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!folderView\" class=\"nav-group bg-white border-1 btn-group mx-5\">\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('footfall')\">\r\n Total footfall\r\n <span\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.footfallCount || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('non-tagging')\">\r\n Non-tags\r\n <span\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.nonTags || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('duplicate')\">\r\n Duplicated\r\n <span\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.duplicate || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('employee')\">\r\n Employee/Staff\r\n <span\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.employee || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'housekeeping' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('housekeeping')\">\r\n Housekeeping\r\n <span\r\n [ngClass]=\"type === 'housekeeping' ? 'badge badge-active activePlanBtn' : ' badge badge-light-default inactivePlanBtn'\">\r\n {{ countData?.housekeeping || 0 }}\r\n </span>\r\n </button>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg width=\"94\" height=\"94\" viewBox=\"0 0 94 94\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M35.332 51.9999H33.6654C32.7813 51.9999 31.9335 51.6487 31.3083 51.0236C30.6832 50.3985 30.332 49.5506 30.332 48.6666V33.6666C30.332 32.7825 30.6832 31.9347 31.3083 31.3096C31.9335 30.6844 32.7813 30.3333 33.6654 30.3333H48.6654C49.5494 30.3333 50.3973 30.6844 51.0224 31.3096C51.6475 31.9347 51.9987 32.7825 51.9987 33.6666V35.3333M45.332 41.9999H60.332C62.173 41.9999 63.6654 43.4923 63.6654 45.3333V60.3333C63.6654 62.1742 62.173 63.6666 60.332 63.6666H45.332C43.4911 63.6666 41.9987 62.1742 41.9987 60.3333V45.3333C41.9987 43.4923 43.4911 41.9999 45.332 41.9999Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"nodata-title my-3\">\r\n {{ noDataMessages[type?.toLowerCase()] || 'No data found' }}\r\n</div>\r\n \r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgFullView(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- full image View -->\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall1()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <!-- <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n\r\n <div class=\"row mx-0 border-gray img-traffic\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"position-relative border-gray p-2 \">\r\n <!-- <button *ngIf=\"canNavigateLeft\" (click)=\"navigateImage('left')\"\r\n class=\"btn btn-light position-absolute start-0 top-50 z-index-10\">\r\n \u25C0\r\n </button> -->\r\n\r\n <!-- Main Image -->\r\n <img class=\"img-src cursor-pointer h-350px\"\r\n [src]=\"imageUrl + selectImageArray?.filePath\" alt=\"\">\r\n <!-- <button *ngIf=\"canNavigateRight\" (click)=\"navigateImage('right')\"\r\n class=\"btn btn-light position-absolute end-0 top-50 z-index-10\">\r\n \u25B6\r\n </button> -->\r\n\r\n <!-- Right arrow button -->\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{selectImageArray?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{selectImageArray?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"selectImageArray?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"mx-2 \">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"title-type\">\r\n Select non-shopper type\r\n </div>\r\n\r\n <div *ngIf=\"!revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-default\" type=\"button\" (click)=\"clearValue()\">Clear</button>\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button [disabled]=\"selectedRadioType ===undefined || selectedRadioType ===''\" class=\"btn btn-primary\"\r\n id=\"alert-toast\" (click)=\"save(selectedType)\">Save</button>\r\n </div>\r\n <div *ngIf=\"revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"editValue()\"><span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n<path d=\"M14.6554 1.71047C14.8927 1.47315 15.1745 1.2849 15.4845 1.15646C15.7946 1.02802 16.1269 0.961914 16.4626 0.961914C16.7982 0.961914 17.1305 1.02802 17.4406 1.15646C17.7507 1.2849 18.0324 1.47315 18.2697 1.71047C18.5071 1.94779 18.6953 2.22953 18.8238 2.53961C18.9522 2.84969 19.0183 3.18202 19.0183 3.51765C19.0183 3.85327 18.9522 4.18561 18.8238 4.49568C18.6953 4.80576 18.5071 5.0875 18.2697 5.32482L6.0713 17.5233L1.10156 18.8786L2.45695 13.9089L14.6554 1.71047Z\" stroke=\"#344054\" stroke-width=\"1.81079\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg></span>Edit</button>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"duplicate\"\r\n id=\"duplicate\" [(ngModel)]=\"selectedType\" [value]=\"'duplicate'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"duplicate\">\r\n <span class=\"ms-5\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-5 tag-class\">Duplicate</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"employee\"\r\n id=\"employee\" [(ngModel)]=\"selectedType\" [value]=\"'employee'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"employee\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\">Employee/Staff</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"housekeeping\"\r\n id=\"housekeeping\" [(ngModel)]=\"selectedType\" [value]=\"'housekeeping'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"housekeeping\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\"> House Keeping</span>\r\n </label>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic mt-3 high-400px scroll-y\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of remainingImageArray\">\r\n <div class=\"position-relative\">\r\n <input *ngIf=\"selectedRadioType === 'duplicate'\" type=\"checkbox\"\r\n [(ngModel)]=\"obj.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(obj, 'duplicate')\" />\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgSwap(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at\r\n the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n </div>\r\n </section>\r\n</div>\r\n\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n <span *ngIf=\"popupType === 'employee'\">Tagging as employee/staff </span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Tagging as duplicates </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Tagging as House Keeping </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Tagging as non-tagging </span>\r\n </h5>\r\n <p class=\"mb-3\">\r\n <span *ngIf=\"popupType === 'employee'\">Are you sure you want to tag this as employee/staff?</span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Are you sure you want to tag this as duplicates? </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Are you sure you want to tag this as house Keeping? </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Are you sure you want to tag this as non-tagging? </span>\r\n\r\n </p>\r\n </div>\r\n\r\n <div class=\"w-100 mt-5 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancelSubmit()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType)\">\r\n Yes, Tag\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:195px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-800, #1D2939);font-size:14px;font-weight:500;line-height:20px}.img-doc-value{color:var(--Gray-600, #667085);font-size:14px;font-weight:500;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.scroll-y{overflow-y:auto}.absolute{top:5px;right:5px;z-index:2}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}.title-type{color:var(--Gray-800, #1D2939);font-size:16px;font-weight:600;line-height:24px}.top-50{top:35%!important}.activePlanBtn{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #344054)!important;font-size:14px;font-weight:500!important;line-height:20px}.badge-active{border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);text-align:center;font-size:12px;font-style:normal;font-weight:500;line-height:20px;mix-blend-mode:multiply}input[type=checkbox]{width:18px!important;height:18px!important;margin:-2px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}\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: 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i7.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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: "directive", type: i3.NgbTooltip, selector: "[ngbTooltip]", inputs: ["animation", "autoClose", "placement", "popperOptions", "triggers", "positionTarget", "container", "disableTooltip", "tooltipClass", "tooltipContext", "openDelay", "closeDelay", "ngbTooltip"], outputs: ["shown", "hidden"], exportAs: ["ngbTooltip"] }, { kind: "pipe", type: i6.DatePipe, name: "date" }] });
507
507
  }
508
508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImgRvpsComponent, decorators: [{
509
509
  type: Component,
510
- args: [{ selector: "lib-img-rvps", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"nav-group bg-white border-1 btn-group mx-5\">\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('footfall')\">\r\n Total footfall\r\n <span\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.footfallCount || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('non-tagging')\">\r\n Non-tags\r\n <span\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.nonTags || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('duplicate')\">\r\n Duplicated\r\n <span\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.duplicate || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('employee')\">\r\n Employee/Staff\r\n <span\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.employee || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'housekeeping' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('housekeeping')\">\r\n Housekeeping\r\n <span\r\n [ngClass]=\"type === 'housekeeping' ? 'badge badge-active activePlanBtn' : ' badge badge-light-default inactivePlanBtn'\">\r\n {{ countData?.housekeeping || 0 }}\r\n </span>\r\n </button>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg width=\"94\" height=\"94\" viewBox=\"0 0 94 94\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M35.332 51.9999H33.6654C32.7813 51.9999 31.9335 51.6487 31.3083 51.0236C30.6832 50.3985 30.332 49.5506 30.332 48.6666V33.6666C30.332 32.7825 30.6832 31.9347 31.3083 31.3096C31.9335 30.6844 32.7813 30.3333 33.6654 30.3333H48.6654C49.5494 30.3333 50.3973 30.6844 51.0224 31.3096C51.6475 31.9347 51.9987 32.7825 51.9987 33.6666V35.3333M45.332 41.9999H60.332C62.173 41.9999 63.6654 43.4923 63.6654 45.3333V60.3333C63.6654 62.1742 62.173 63.6666 60.332 63.6666H45.332C43.4911 63.6666 41.9987 62.1742 41.9987 60.3333V45.3333C41.9987 43.4923 43.4911 41.9999 45.332 41.9999Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"nodata-title my-3\">\r\n {{ noDataMessages[type?.toLowerCase()] || 'No data found' }}\r\n</div>\r\n \r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgFullView(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- full image View -->\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall1()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <!-- <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n\r\n <div class=\"row mx-0 border-gray img-traffic\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"position-relative border-gray p-2 \">\r\n <!-- <button *ngIf=\"canNavigateLeft\" (click)=\"navigateImage('left')\"\r\n class=\"btn btn-light position-absolute start-0 top-50 z-index-10\">\r\n \u25C0\r\n </button> -->\r\n\r\n <!-- Main Image -->\r\n <img class=\"img-src cursor-pointer h-350px\"\r\n [src]=\"imageUrl + selectImageArray?.filePath\" alt=\"\">\r\n <!-- <button *ngIf=\"canNavigateRight\" (click)=\"navigateImage('right')\"\r\n class=\"btn btn-light position-absolute end-0 top-50 z-index-10\">\r\n \u25B6\r\n </button> -->\r\n\r\n <!-- Right arrow button -->\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{selectImageArray?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{selectImageArray?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"selectImageArray?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"mx-2 \">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"title-type\">\r\n Select non-shopper type\r\n </div>\r\n\r\n <div *ngIf=\"!revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-default\" type=\"button\" (click)=\"clearValue()\">Clear</button>\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button [disabled]=\"selectedRadioType ===undefined || selectedRadioType ===''\" class=\"btn btn-primary\"\r\n id=\"alert-toast\" (click)=\"save(selectedType)\">Save</button>\r\n </div>\r\n <div *ngIf=\"revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"editValue()\"><span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n<path d=\"M14.6554 1.71047C14.8927 1.47315 15.1745 1.2849 15.4845 1.15646C15.7946 1.02802 16.1269 0.961914 16.4626 0.961914C16.7982 0.961914 17.1305 1.02802 17.4406 1.15646C17.7507 1.2849 18.0324 1.47315 18.2697 1.71047C18.5071 1.94779 18.6953 2.22953 18.8238 2.53961C18.9522 2.84969 19.0183 3.18202 19.0183 3.51765C19.0183 3.85327 18.9522 4.18561 18.8238 4.49568C18.6953 4.80576 18.5071 5.0875 18.2697 5.32482L6.0713 17.5233L1.10156 18.8786L2.45695 13.9089L14.6554 1.71047Z\" stroke=\"#344054\" stroke-width=\"1.81079\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg></span>Edit</button>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"duplicate\"\r\n id=\"duplicate\" [(ngModel)]=\"selectedType\" [value]=\"'duplicate'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"duplicate\">\r\n <span class=\"ms-5\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-5 tag-class\">Duplicate</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"employee\"\r\n id=\"employee\" [(ngModel)]=\"selectedType\" [value]=\"'employee'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"employee\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\">Employee/Staff</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"housekeeping\"\r\n id=\"housekeeping\" [(ngModel)]=\"selectedType\" [value]=\"'housekeeping'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"housekeeping\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\"> House Keeping</span>\r\n </label>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic mt-3 high-400px scroll-y\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of remainingImageArray\">\r\n <div class=\"position-relative\">\r\n <input *ngIf=\"selectedRadioType === 'duplicate'\" type=\"checkbox\"\r\n [(ngModel)]=\"obj.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(obj, 'duplicate')\" />\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgSwap(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at\r\n the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n </div>\r\n </section>\r\n</div>\r\n\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n <span *ngIf=\"popupType === 'employee'\">Tagging as employee/staff </span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Tagging as duplicates </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Tagging as House Keeping </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Tagging as non-tagging </span>\r\n </h5>\r\n <p class=\"mb-3\">\r\n <span *ngIf=\"popupType === 'employee'\">Are you sure you want to tag this as employee/staff?</span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Are you sure you want to tag this as duplicates? </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Are you sure you want to tag this as house Keeping? </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Are you sure you want to tag this as non-tagging? </span>\r\n\r\n </p>\r\n </div>\r\n\r\n <div class=\"w-100 mt-5 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancelSubmit()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType)\">\r\n Yes, Tag\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:195px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-800, #1D2939);font-size:14px;font-weight:500;line-height:20px}.img-doc-value{color:var(--Gray-600, #667085);font-size:14px;font-weight:500;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.scroll-y{overflow-y:auto}.absolute{top:5px;right:5px;z-index:2}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}.title-type{color:var(--Gray-800, #1D2939);font-size:16px;font-weight:600;line-height:24px}.top-50{top:35%!important}.activePlanBtn{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #344054)!important;font-size:14px;font-weight:500!important;line-height:20px}.badge-active{border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);text-align:center;font-size:12px;font-style:normal;font-weight:500;line-height:20px;mix-blend-mode:multiply}input[type=checkbox]{width:18px!important;height:18px!important;margin:-2px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}\n"] }]
510
+ args: [{ selector: "lib-img-rvps", template: "<div class=\"card mt-3\">\r\n <div class=\"card-header mt-3 px-0 border-bottom-0\">\r\n <div class=\"custom-accordion\">\r\n <div class=\"custom-accordion-item\">\r\n <button class=\"mainheading pb-0 custom-accordion-header\" (click)=\"toggleAccordion()\">\r\n <div class=\"header-row\">\r\n <span class=\"img-direc\">Image Directory</span>\r\n\r\n <span class=\"divider\"></span>\r\n <span class=\"accordion-arrow\">\r\n <!-- Down arrow for collapsed state, up arrow for expanded state -->\r\n <svg *ngIf=\"!isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 1L5 5L9 1\" stroke=\"#071437\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"isAccordionExpanded\" xmlns=\"http://www.w3.org/2000/svg\" width=\"26\" height=\"6\"\r\n viewBox=\"0 0 16 6\" fill=\"none\">\r\n <path d=\"M1 5L5 1L9 5\" stroke=\"#1b84ff\" stroke-width=\"1\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n <section *ngIf=\"isAccordionExpanded\">\r\n\r\n <div *ngIf=\"folderView\" class=\"card-body px-0\">\r\n <div class=\"scroll-container\">\r\n <div class=\"row\">\r\n <div class=\"col-md-1 mt-5 text-center\" *ngFor=\"let obj of dateArray;let i = index\">\r\n <div (click)=\"getimages(i,obj)\">\r\n <div *ngIf=\"i === selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.154297\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#33B5FF\" />\r\n <path\r\n d=\"M39.8216 36.1667C39.8216 36.7855 39.5758 37.379 39.1382 37.8166C38.7006 38.2542 38.1071 38.5 37.4883 38.5H18.8216C18.2028 38.5 17.6093 38.2542 17.1717 37.8166C16.7341 37.379 16.4883 36.7855 16.4883 36.1667V19.8333C16.4883 19.2145 16.7341 18.621 17.1717 18.1834C17.6093 17.7458 18.2028 17.5 18.8216 17.5H24.6549L26.9883 21H37.4883C38.1071 21 38.7006 21.2458 39.1382 21.6834C39.5758 22.121 39.8216 22.7145 39.8216 23.3333V36.1667Z\"\r\n stroke=\"white\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n <div *ngIf=\"i !== selectIndex;\">\r\n <span class=\"cursor-pointer\"><svg width=\"57\" height=\"56\" viewBox=\"0 0 57 56\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"0.462891\" width=\"56\" height=\"56\" rx=\"12\" fill=\"#EAF8FF\" />\r\n <path\r\n d=\"M40.1302 36.1667C40.1302 36.7855 39.8844 37.379 39.4468 37.8166C39.0092 38.2542 38.4157 38.5 37.7969 38.5H19.1302C18.5114 38.5 17.9179 38.2542 17.4803 37.8166C17.0427 37.379 16.7969 36.7855 16.7969 36.1667V19.8333C16.7969 19.2145 17.0427 18.621 17.4803 18.1834C17.9179 17.7458 18.5114 17.5 19.1302 17.5H24.9635L27.2969 21H37.7969C38.4157 21 39.0092 21.2458 39.4468 21.6834C39.8844 22.121 40.1302 22.7145 40.1302 23.3333V36.1667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"2.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <div class=\"text-center mt-2\">{{obj | date:'dd MMM'}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"!folderView\" class=\"nav-group bg-white border-1 btn-group mx-5\">\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('footfall')\">\r\n Total footfall\r\n <span\r\n [ngClass]=\"type === 'footfall' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.footfallCount || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('non-tagging')\">\r\n Non-tags\r\n <span\r\n [ngClass]=\"type === 'non-tagging' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.nonTags || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('duplicate')\">\r\n Duplicated\r\n <span\r\n [ngClass]=\"type === 'duplicate' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.duplicate || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('employee')\">\r\n Employee/Staff\r\n <span\r\n [ngClass]=\"type === 'employee' ? 'activePlanBtn badge badge-active' : 'inactivePlanBtn badge badge-light-default'\">\r\n {{ countData?.employee || 0 }}\r\n </span>\r\n </button>\r\n\r\n <button class=\"btn btn-outline px-6 py-3\"\r\n [ngClass]=\"type === 'housekeeping' ? 'activePlanBtn' : 'inactivePlanBtn'\"\r\n (click)=\"selectPlanTrends('housekeeping')\">\r\n Housekeeping\r\n <span\r\n [ngClass]=\"type === 'housekeeping' ? 'badge badge-active activePlanBtn' : ' badge badge-light-default inactivePlanBtn'\">\r\n {{ countData?.housekeeping || 0 }}\r\n </span>\r\n </button>\r\n\r\n </div>\r\n\r\n <div *ngIf=\"!folderView\" class=\"card-body\">\r\n <section *ngIf=\"!imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span *ngIf=\"backnav\" class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n\r\n </div>\r\n <div *ngIf=\"loading\" class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"row\">\r\n\r\n <div class=\"col-lg-12 mb-3\">\r\n\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg width=\"94\" height=\"94\" viewBox=\"0 0 94 94\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\"\r\n stroke-width=\"13.3333\" />\r\n <path\r\n d=\"M35.332 51.9999H33.6654C32.7813 51.9999 31.9335 51.6487 31.3083 51.0236C30.6832 50.3985 30.332 49.5506 30.332 48.6666V33.6666C30.332 32.7825 30.6832 31.9347 31.3083 31.3096C31.9335 30.6844 32.7813 30.3333 33.6654 30.3333H48.6654C49.5494 30.3333 50.3973 30.6844 51.0224 31.3096C51.6475 31.9347 51.9987 32.7825 51.9987 33.6666V35.3333M45.332 41.9999H60.332C62.173 41.9999 63.6654 43.4923 63.6654 45.3333V60.3333C63.6654 62.1742 62.173 63.6666 60.332 63.6666H45.332C43.4911 63.6666 41.9987 62.1742 41.9987 60.3333V45.3333C41.9987 43.4923 43.4911 41.9999 45.332 41.9999Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <div class=\"nodata-title my-3\">\r\n {{ noDataMessages[type?.toLowerCase()] || 'No data found' }}\r\n</div>\r\n \r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row px-0 img-traffic contain high-400px scroll-y\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of imagesArrayData\">\r\n\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgFullView(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n\r\n <!-- full image View -->\r\n <section *ngIf=\"imageFlow\">\r\n <div class=\"row\">\r\n <div class=\"d-flex flex-shrink-0 mt-3 justify-content-start align-items-center px-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall1()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_2585_7036)\">\r\n <rect x=\"2\" y=\"1\" width=\"36\" height=\"36\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"35\" height=\"35\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M25.8327 19H14.166M14.166 19L19.9993 24.8334M14.166 19L19.9993 13.1667\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_2585_7036\" x=\"0\" y=\"0\" width=\"40\" height=\"40\"\r\n filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\"\r\n result=\"effect1_dropShadow_2585_7036\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_2585_7036\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"img-direc ms-2 mt-1\">{{folderDate | date:'dd MMM, yyyy'}}</span>\r\n </div>\r\n <div class=\"d-flex mt-2 mb-2 w-100 overflow-x px-0\">\r\n\r\n <!-- <div class=\"col text-nowrap\" *ngFor=\"let obj of objectsArray\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\">\r\n <a (click)=\"selectedTimes(obj.timeRange)\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'active' : ''\"\r\n class=\"nav-link cursor-pointer no-border mx-3 mb-2\">\r\n {{obj?.timeRange}}<span class=\"mx-2\"\r\n [ngClass]=\"selectedTime === obj?.timeRange ? 'badge-num-primary' :'badge-num-muted'\">\r\n {{ obj?.count ? obj?.count : 0 }}\r\n </span>\r\n </a>\r\n </li>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n\r\n <div class=\"row mx-0 border-gray img-traffic\" *ngIf=\"!noData && !loading\">\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"position-relative border-gray p-2 \">\r\n <!-- <button *ngIf=\"canNavigateLeft\" (click)=\"navigateImage('left')\"\r\n class=\"btn btn-light position-absolute start-0 top-50 z-index-10\">\r\n \u25C0\r\n </button> -->\r\n\r\n <!-- Main Image -->\r\n <img class=\"img-src cursor-pointer h-350px\"\r\n [src]=\"imageUrl + selectImageArray?.filePath\" alt=\"\">\r\n <!-- <button *ngIf=\"canNavigateRight\" (click)=\"navigateImage('right')\"\r\n class=\"btn btn-light position-absolute end-0 top-50 z-index-10\">\r\n \u25B6\r\n </button> -->\r\n\r\n <!-- Right arrow button -->\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{selectImageArray?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{selectImageArray?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"selectImageArray?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"selectImageArray?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-6 p-2 mb-2 mt-5\">\r\n <div class=\"mx-2 \">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"title-type\">\r\n Select non-shopper type\r\n </div>\r\n\r\n <div *ngIf=\"!revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-default\" type=\"button\" (click)=\"clearValue()\">Clear</button>\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button [disabled]=\"selectedRadioType ===undefined || selectedRadioType ===''\" class=\"btn btn-primary\"\r\n id=\"alert-toast\" (click)=\"save(selectedType)\">Save</button>\r\n </div>\r\n <div *ngIf=\"revopsTypeValue\" class=\"mb-5 text-end\" role=\"group\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"editValue()\"><span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n<path d=\"M14.6554 1.71047C14.8927 1.47315 15.1745 1.2849 15.4845 1.15646C15.7946 1.02802 16.1269 0.961914 16.4626 0.961914C16.7982 0.961914 17.1305 1.02802 17.4406 1.15646C17.7507 1.2849 18.0324 1.47315 18.2697 1.71047C18.5071 1.94779 18.6953 2.22953 18.8238 2.53961C18.9522 2.84969 19.0183 3.18202 19.0183 3.51765C19.0183 3.85327 18.9522 4.18561 18.8238 4.49568C18.6953 4.80576 18.5071 5.0875 18.2697 5.32482L6.0713 17.5233L1.10156 18.8786L2.45695 13.9089L14.6554 1.71047Z\" stroke=\"#344054\" stroke-width=\"1.81079\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</svg></span>Edit</button>\r\n \r\n </div>\r\n </div>\r\n\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"duplicate\"\r\n id=\"duplicate\" [(ngModel)]=\"selectedType\" [value]=\"'duplicate'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"duplicate\">\r\n <span class=\"ms-5\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"ms-5 tag-class\">Duplicate</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"employee\"\r\n id=\"employee\" [(ngModel)]=\"selectedType\" [value]=\"'employee'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"employee\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\">Employee/Staff</span>\r\n </label>\r\n </div>\r\n <div class=\"form-check my-15\">\r\n <input class=\"form-check-input cursor-pointer\" type=\"radio\" name=\"housekeeping\"\r\n id=\"housekeeping\" [(ngModel)]=\"selectedType\" [value]=\"'housekeeping'\"\r\n (change)=\"onRadioChange(selectedType)\" [disabled]=\"revopsTypeValue\">\r\n <label class=\"form-check-label\" for=\"housekeeping\">\r\n <span class=\"ms-5\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n <span class=\"ms-5 tag-class\"> House Keeping</span>\r\n </label>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"row px-0 img-traffic mt-3 high-400px scroll-y\">\r\n <div class=\"col-md-3 border-gray mx-2 p-2 mt-5\" *ngFor=\"let obj of remainingImageArray\">\r\n <div class=\"position-relative\">\r\n <input *ngIf=\"selectedRadioType === 'duplicate'\" type=\"checkbox\"\r\n [(ngModel)]=\"obj.selected\" class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(obj, 'duplicate')\" />\r\n <img class=\"img-src cursor-pointer\" [src]=\"imageUrl + obj?.filePath\"\r\n (error)=\"obj.filePath = null\" alt=\"\" (click)=\"imgSwap(obj)\">\r\n\r\n <div *ngIf=\"!obj?.filePath\" class=\"no-preview\">\r\n <span class=\"mb-5\">\r\n <svg width=\"23\" height=\"20\" viewBox=\"0 0 23 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g id=\"Group\">\r\n <path id=\"Vector\"\r\n d=\"M6.5 6.32227H6.51M16.25 9.32227H21.5L18 16.3223L14.91 12.0023\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <path id=\"Vector_2\"\r\n d=\"M1.5 16.3229H5.26C5.63273 16.3255 5.99877 16.2239 6.31682 16.0295C6.63487 15.8352 6.89228 15.5558 7.06 15.2229L8.5 12.3229M1.5 18.3229V14.3229M17.5 6.82291L13.5 14.8229L3.11 9.62291C2.42033 9.27553 1.89635 8.6691 1.65272 7.93632C1.40909 7.20354 1.46564 6.4041 1.81 5.71291L3.19 2.92291C3.362 2.58014 3.59984 2.2746 3.88994 2.02375C4.18003 1.7729 4.5167 1.58165 4.88072 1.46093C5.24474 1.34021 5.62897 1.29239 6.01147 1.32018C6.39398 1.34797 6.76726 1.45084 7.11 1.62291L17.5 6.82291Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n </svg>\r\n\r\n </span>\r\n <span class=\"header mb-5 text-center\">Preview not available</span>\r\n <span class=\"description mb-5 text-center\">The selected camera is not available at\r\n the\r\n moment.</span>\r\n </div>\r\n <div class=\"row px-2 mb-2\">\r\n <div class=\"col-md-7\">\r\n <div class=\"py-2 img-doc-time\">Tango ID : {{obj?.templd}}</div>\r\n <div class=\"img-doc-value\">Entry Time : {{obj?.entryTme}}</div>\r\n </div>\r\n <div class=\"col-md-5 text-end py-3\">\r\n <span *ngIf=\"obj?.revopsType ==='non-tagging'\" ngbTooltip=\"Yet to tag the customer\" placement=\"top\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"19\" height=\"18\"\r\n viewBox=\"0 0 19 18\" fill=\"none\">\r\n <path\r\n d=\"M6.02344 5.625H6.03094M16.2159 10.4325L10.8384 15.81C10.6991 15.9495 10.5337 16.0601 10.3516 16.1356C10.1695 16.2111 9.97431 16.2499 9.77719 16.2499C9.58006 16.2499 9.38487 16.2111 9.20278 16.1356C9.02068 16.0601 8.85525 15.9495 8.71594 15.81L2.27344 9.375V1.875H9.77344L16.2159 8.3175C16.4953 8.59854 16.6521 8.97872 16.6521 9.375C16.6521 9.77128 16.4953 10.1515 16.2159 10.4325Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='duplicate'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\"\r\n viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94635)\">\r\n <path\r\n d=\"M4.16797 13.1859H3.33464C2.89261 13.1859 2.46868 13.0103 2.15612 12.6977C1.84356 12.3852 1.66797 11.9612 1.66797 11.5192V4.01921C1.66797 3.57718 1.84356 3.15326 2.15612 2.84069C2.46868 2.52813 2.89261 2.35254 3.33464 2.35254H10.8346C11.2767 2.35254 11.7006 2.52813 12.0131 2.84069C12.3257 3.15326 12.5013 3.57718 12.5013 4.01921V4.85254M9.16797 8.18587H16.668C17.5884 8.18587 18.3346 8.93206 18.3346 9.85254V17.3525C18.3346 18.273 17.5884 19.0192 16.668 19.0192H9.16797C8.24749 19.0192 7.5013 18.273 7.5013 17.3525V9.85254C7.5013 8.93206 8.24749 8.18587 9.16797 8.18587Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94635\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='employee'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94639)\">\r\n <path\r\n d=\"M14.1654 18.186V16.5194C14.1654 15.6353 13.8142 14.7875 13.1891 14.1623C12.5639 13.5372 11.7161 13.186 10.832 13.186H4.16536C3.28131 13.186 2.43346 13.5372 1.80834 14.1623C1.18322 14.7875 0.832031 15.6353 0.832031 16.5194V18.186M19.1654 18.186V16.5194C19.1648 15.7808 18.919 15.0633 18.4665 14.4796C18.014 13.8959 17.3805 13.479 16.6654 13.2944M13.332 3.29437C14.049 3.47795 14.6846 3.89495 15.1384 4.47963C15.5922 5.0643 15.8386 5.78339 15.8386 6.52354C15.8386 7.26368 15.5922 7.98277 15.1384 8.56744C14.6846 9.15212 14.049 9.56912 13.332 9.7527M10.832 6.51937C10.832 8.36032 9.33965 9.8527 7.4987 9.8527C5.65775 9.8527 4.16536 8.36032 4.16536 6.51937C4.16536 4.67842 5.65775 3.18604 7.4987 3.18604C9.33965 3.18604 10.832 4.67842 10.832 6.51937Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94639\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span *ngIf=\"obj?.revopsType ==='housekeeping'\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\"\r\n height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2012_94643)\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M9.26219 1.36722C10.1777 0.458974 11.662 0.458974 12.5776 1.36722L20.3133 9.04153C21.2287 9.9498 21.2287 11.4223 20.3133 12.3306L12.5776 20.0049C11.662 20.9131 10.1777 20.9131 9.26219 20.0049L7.05166 17.8119L5.02538 19.8221C4.10987 20.7303 2.62553 20.7303 1.71002 19.8221C0.79451 18.9139 0.79451 17.4413 1.71002 16.5331L3.7363 14.5229L1.52648 12.3306C0.610966 11.4223 0.610966 9.9498 1.52648 9.04153L9.26219 1.36722ZM11.4724 2.46357C11.1672 2.16082 10.6724 2.16082 10.3672 2.46357L4.84145 7.94556L13.6823 16.7163L19.2081 11.2342C19.5133 10.9315 19.5133 10.4406 19.2081 10.1379L15.3399 6.30032L14.0505 7.5794C13.7453 7.88214 13.2506 7.88214 12.9455 7.5794C12.6403 7.27664 12.6403 6.78579 12.9455 6.48305L14.2347 5.20397L13.1299 4.10786L9.99872 7.21418C9.69354 7.51692 9.19873 7.51692 8.89356 7.21418C8.58838 6.91143 8.58838 6.42058 8.89356 6.11783L12.0247 3.01151L11.4724 2.46357ZM12.5771 17.8125L3.73633 9.04191L2.6316 10.1379C2.32642 10.4406 2.32642 10.9315 2.6316 11.2342L10.3672 18.9085C10.6724 19.2113 11.1672 19.2113 11.4724 18.9085L12.5771 17.8125ZM4.84132 15.6192L2.81514 17.6294C2.50997 17.9321 2.50997 18.423 2.81514 18.7258C3.12031 19.0285 3.61509 19.0285 3.92026 18.7258L5.94644 16.7156L4.84132 15.6192Z\"\r\n fill=\"#475467\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2012_94643\">\r\n <rect width=\"21\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0 0.686035)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </section>\r\n </div>\r\n </section>\r\n</div>\r\n\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n\r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n <span *ngIf=\"popupType === 'employee'\">Tagging as employee/staff </span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Tagging as duplicates </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Tagging as House Keeping </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Tagging as non-tagging </span>\r\n </h5>\r\n <p class=\"mb-3\">\r\n <span *ngIf=\"popupType === 'employee'\">Are you sure you want to tag this as employee/staff?</span>\r\n <span *ngIf=\"popupType === 'duplicate'\">Are you sure you want to tag this as duplicates? </span>\r\n <span *ngIf=\"popupType === 'housekeeping'\">Are you sure you want to tag this as house Keeping? </span>\r\n <span *ngIf=\"popupType === 'non-tagging'\">Are you sure you want to tag this as non-tagging? </span>\r\n\r\n </p>\r\n </div>\r\n\r\n <div class=\"w-100 mt-5 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancelSubmit()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType)\">\r\n Yes, Tag\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".switch-form-card{padding:8px 16px;border-radius:4px;border-left:2px solid var(--Primary-600, #00A3FF);background:var(--Primary-25, #F6FCFF);display:flex;align-items:center;justify-content:space-between}.switch-form-card .txt-one{color:var(--Gray-700, #344054);font-size:14px;font-weight:600;line-height:140%}.nav-item .nav-link.active{border:none;border-radius:6px;background:var(--Primary-50, #EAF8FF);padding:8px 12px}.nav-item .nav-link:hover{border:none}.badge-num-primary{border-radius:16px!important;background:var(--Primary-50, #EAF8FF)!important;color:var(--Primary-700, #009BF3)!important;text-align:center;font-size:14px!important;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.badge-num-muted{border-radius:16px!important;background:var(--Primary-50, #F2F4F7)!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-weight:500;line-height:20px;padding:2px 10px!important;mix-blend-mode:multiply!important}.img-src{width:100%;height:195px;border-radius:.625rem}.img-traffic .col-md-3{width:24%!important}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF)}.img-doc-directory{color:var(--Gray-900, #101828)!important;font-size:14px!important;font-weight:600;line-height:20px;text-decoration-line:underline}.img-doc-time{color:var(--Gray-800, #1D2939);font-size:14px;font-weight:500;line-height:20px}.img-doc-value{color:var(--Gray-600, #667085);font-size:14px;font-weight:500;line-height:20px}.overflow-x{overflow-x:auto}.no-preview{border:1px solid #F04438;background:#fee4e2;border-radius:8px;stroke-width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:41px 16px}.no-preview .header{color:#f04438;font-size:20px;font-weight:700;line-height:20px}.no-preview .description{color:#f04438;font-size:12px;font-weight:500;line-height:18px}.img-nodata{width:25%;height:15%}.img-nodata1{width:15%;height:15%}.nodata-title{font-size:14px!important;font-weight:600}.img-direc{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:500;line-height:28px}.custom-accordion{border-radius:5px}.custom-accordion-item{margin-bottom:10px}.custom-accordion-header{background-color:#fff;border:none;cursor:pointer;padding:10px;text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center}.custom-accordion{width:100%}.mainheading{width:100%;display:flex;justify-content:space-between;align-items:center;padding:19px;border:none;background:none;cursor:pointer}.header-row{display:flex;align-items:center;width:100%;justify-content:space-between}.img-dire{font-size:16px;font-weight:700}.divider{flex-grow:1;height:1px;background-color:#ddd;margin:0 10px}.accordion-arrow{display:flex;align-items:center}.scroll-container{max-height:400px;overflow-y:auto;overflow-x:hidden}.high-400px{min-height:auto!important;max-height:800px!important}.scroll-y{overflow-y:auto}.absolute{top:5px;right:5px;z-index:2}.slider{position:relative}.slider .previous{position:absolute;top:30%;left:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.slider .next{position:absolute;top:30%;right:2%;width:32px;height:32px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer}.img-src1{border-radius:12px;border:1px solid var(--Gray-400, #98A2B3);background:var(--Gray-50, #F9FAFB);width:100%;height:375px}.border-gray{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);padding:0 4px}.border-gray-active{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #EAF8FF);padding:0 4px}.zone-header{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.last-visit{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.toggle-label{color:var(--Gray-900, #101828);font-size:16px;font-weight:600;line-height:24px}.nav-dev{border-radius:8px!important;border:1px solid var(--Primary-200, #99DAFF)!important;background:var(--Primary-25, #F6FCFF)!important}.tab-active{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3)!important;font-size:14px;font-weight:500;line-height:20px}.tab-text-default{color:var(--Gray-500, #667085);font-size:14px;font-weight:500;line-height:20px}.border-gray-active1{border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:12px!important}.nav-item1 .nav-link1.active{border:none;border-radius:0;background:var(--Primary-50, #EAF8FF);border-bottom:2px solid #009BF3!important;padding:12px;color:var(--Primary-700, #009BF3);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.active-normal{padding:12px;color:var(--Gray-500, #667085);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.nav-item1 .nav-link1:hover{border:none}.tag-class{color:var(--Gray-900, #101828);font-size:14px;font-weight:600;line-height:20px}.spent-title{color:var(--Gray-600, #475467);font-size:14px;font-weight:600;line-height:20px}.spent-value{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}.spent-value1{color:var(--Primary-500, #33B5FF);font-size:14px;font-weight:500;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font}.w-33{width:30%}.w-45{width:45%}.view-tetory{color:var(--Primary-700, #009BF3);font-size:14px;font-weight:600;line-height:20px;text-decoration-line:underline;text-decoration-style:solid;text-decoration-skip-ink:none;text-decoration-thickness:auto;text-underline-offset:auto;text-underline-position:from-font;text-transform:capitalize}.border-gray-tagged{border-radius:4px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--Primary-50, #ffffff);padding:8px!important}.desc-id{color:var(--Gray-900, #101828);font-size:12px;font-style:normal;font-weight:400;line-height:20px}.active-tab{border-bottom:2px solid #0d6efd;font-weight:600;color:#0d6efd}.badge-selected{background-color:#e0f3ff;color:#0d6efd;border:1px solid #0d6efd;border-radius:20px;padding:6px 12px}.badge-unselected{background-color:#f0f0f0;color:#333;border-radius:20px;padding:6px 12px}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.cursor-not-allowed{cursor:not-allowed!important}.title-type{color:var(--Gray-800, #1D2939);font-size:16px;font-weight:600;line-height:24px}.top-50{top:35%!important}.activePlanBtn{border-radius:6px;background:var(--Primary-50, #EAF8FF);color:var(--Gray-700, #344054);font-size:14px!important;font-weight:500!important;line-height:20px}.inactivePlanBtn{color:var(--Gray-500, #344054)!important;font-size:14px;font-weight:500!important;line-height:20px}.badge-active{border-radius:16px;background:var(--Primary-50, #EAF8FF);color:var(--Primary-700, #009BF3);text-align:center;font-size:12px;font-style:normal;font-weight:500;line-height:20px;mix-blend-mode:multiply}input[type=checkbox]{width:18px!important;height:18px!important;margin:-2px 5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-600, #D0D5DD)!important;box-shadow:none;font-size:.5em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]{outline:1px solid var(--primary-600, #00A3FF)!important;background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:3px;padding-top:10px;padding-right:0}\n"] }]
511
511
  }], ctorParameters: () => [{ type: i1.TrafficService }, { type: i2.GlobalStateService }, { type: i0.ChangeDetectorRef }, { type: i3.NgbModal }, { type: i4.ToastService }, { type: i5.TrafficRvpsService }], propDecorators: { zoomPopup: [{
512
512
  type: ViewChild,
513
513
  args: ['zoomPopup']
514
514
  }] } });
515
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXJ2cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmFmZmljL3NyYy9saWIvY29tcG9uZW50cy9pbWctcnZwcy9pbWctcnZwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1ydnBzL2ltZy1ydnBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBR1MsU0FBUyxFQUM1QixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQU85QyxNQUFNLE9BQU8sZ0JBQWdCO0lBT2pCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQVhWLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQU07SUFDbEIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUN4QixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsU0FBUyxDQUFNO0lBQ2YsWUFDVSxPQUF1QixFQUN4QixFQUFzQixFQUNyQixFQUFxQixFQUNyQixZQUFzQixFQUN0QixLQUFtQixFQUNuQixXQUErQjtRQUwvQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUN0QyxDQUFDO0lBQ2EsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDMUMsV0FBVztR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QUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FDakQsQ0FBQztJQUNKLENBQUM7d0dBMWtCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw0SkNwQjdCLCsyNURBNHFCYzs7NEZEeHBCRCxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzt1T0E0Y0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxFbGVtZW50UmVmLFZpZXdDaGlsZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYWZmaWNSdnBzU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFmZmljLXJ2cHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBUcmFmZmljU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1zaGFyZWRcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItaW1nLXJ2cHNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2ltZy1ydnBzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9pbWctcnZwcy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1nUnZwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhID0gZmFsc2U7XHJcbiAgbm9ybWFsaXplOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcnZwc1NlcnZpY2U6IFRyYWZmaWNSdnBzU2VydmljZVxyXG4gICkge31cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbiAgaXNBY2NvcmRpb25FeHBhbmRlZCA9IHRydWU7XHJcbiAgdG9nZ2xlQWNjb3JkaW9uKCkge1xyXG4gICAgdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkID0gIXRoaXMuaXNBY2NvcmRpb25FeHBhbmRlZDtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEluaXRhbCgpO1xyXG4gIH1cclxuICBnZXRJbml0YWwoKSB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhICE9PSBudWxsIHx8IGRhdGE/LmNsaWVudCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVJZGFycmF5ID0gdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCk7XHJcbiAgICAgICAgICB0aGlzLmJhY2tUb0Zvb3RmYWxsKCk7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJEYXRhPy5kYXRlPy5zdGFydERhdGUgPT09IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uZW5kRGF0ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja25hdiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRpbWFnZXMoMCwgdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZvbGRlclZpZXcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tuYXYgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBiYWNrVG9Gb290ZmFsbCgpIHtcclxuICAgIHRoaXMuc2VsZWN0SW5kZXggPSAwO1xyXG4gICAgdGhpcy5mb2xkZXJWaWV3ID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0UnZwc0xpc3QgPSBbXTtcclxuICAgIHRoaXMuZ2V0UnZwc0ltYWdlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXTtcclxuICAgIHRoaXMuaW1hZ2VzQXJyYXlEYXRhID0gW107XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gIH1cclxuICBmb2xkZXJWaWV3OiBib29sZWFuO1xyXG4gIGJhY2tuYXY6IGJvb2xlYW47XHJcbiAgZGF0ZUFycmF5OiBhbnk7XHJcbiAgZGlzcGxheURhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IGRhdGVzID0gdGhpcy5nZXREYXRlUmFuZ2VBcnJheShcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlXHJcbiAgICApO1xyXG4gICAgdGhpcy5kYXRlQXJyYXkgPSBkYXRlcztcclxuICB9XHJcblxyXG4gIGdldERhdGVSYW5nZUFycmF5KGZyb21EYXRlOiBzdHJpbmcsIHRvRGF0ZTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShmcm9tRGF0ZSk7IC8vIENvbnZlcnQgc3RyaW5nIHRvIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSh0b0RhdGUpOyAvLyBDb252ZXJ0IHN0cmluZyB0byBEYXRlIG9iamVjdFxyXG4gICAgY29uc3QgZGF0ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8vIENoZWNrIGlmIHRoZSBkYXRlcyBhcmUgdmFsaWRcclxuICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpIHx8IGlzTmFOKGVuZC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgIHJldHVybiBkYXRlQXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTG9vcCBmcm9tIHN0YXJ0IGRhdGUgdG8gZW5kIGRhdGVcclxuICAgIGxldCBjdXJyZW50RGF0ZSA9IHN0YXJ0O1xyXG4gICAgd2hpbGUgKGN1cnJlbnREYXRlIDw9IGVuZCkge1xyXG4gICAgICBkYXRlQXJyYXkucHVzaChjdXJyZW50RGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSk7IC8vIEZvcm1hdCBZWVlZLU1NLUREXHJcbiAgICAgIGN1cnJlbnREYXRlLnNldERhdGUoY3VycmVudERhdGUuZ2V0RGF0ZSgpICsgMSk7IC8vIEluY3JlbWVudCB0aGUgZGF0ZSBieSAxIGRheVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlQXJyYXk7XHJcbiAgfVxyXG4gIHNlbGVjdGVkVGltZTogYW55O1xyXG4gIGZvbGRlck5hbWU6IGFueTtcclxuICBzZWxlY3RlZFRpbWVzKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyTmFtZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy50eXBlID0gdGhpcy50eXBlXHJcbiAgICB0aGlzLmdldFJldm9wcygpO1xyXG4gIH1cclxuICBmb2xkZXJEYXRlOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgLy8gZ2V0IFJldm9wcyBBcGlcclxuICBnZXRSdnBzTGlzdDogYW55O1xyXG4gIGdldFJ2cHNJbWFnZUxpc3Q6IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueTtcclxuICBpbWFnZXNBcnJheURhdGE6IGFueTtcclxuICBzZWxlY3RJbmRleDogYW55ID0gMDtcclxuICBmb290ZmFsbERhdGU6IGFueTtcclxuICBsZW5ndGhWYWx1ZTogYm9vbGVhbjtcclxuICBnZXRpbWFnZXMoaW5kZXg6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0SW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZm9sZGVyRGF0ZSA9IG9iajtcclxuICAgICh0aGlzLmZvb3RmYWxsRGF0ZSA9IG9iaiksICh0aGlzLmZvbGRlclZpZXcgPSBmYWxzZSk7XHJcbiAgICB0aGlzLnNlcnZpY2U/Lmlzbm9ybWFsaXplU291cmNlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICA/LnN1YnNjcmliZSgobm9ybWFsaXplOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTtcclxuICAgICAgICBpZiAoIW5vcm1hbGl6ZSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzTGlzdCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzSW1hZ2VMaXN0ID0gW107XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMuZ2V0UmV2b3BzKCk7XHJcbiAgICAgICAgICB0aGlzLmdldFRvdGFsKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBjb3VudERhdGE6IGFueTtcclxuICBnZXRUb3RhbCgpIHtcclxuICAgIGNvbnN0IHN0b3JlSWQgPVxyXG4gICAgICB0aGlzLnN0b3JlSWRhcnJheSAmJiB0aGlzLnN0b3JlSWRhcnJheS5sZW5ndGggPiAwXHJcbiAgICAgICAgPyB0aGlzLnN0b3JlSWRhcnJheVswXVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLmZvbGRlckRhdGUgfHwgXCJcIjtcclxuICAgIHRoaXMucnZwc1NlcnZpY2VcclxuICAgICAgLmdldFRvdGFsVmFsKHN0b3JlSWQsIGRhdGVTdHJpbmcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnREYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50RGF0YSA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHt9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgaW1hZ2VVcmw6IGFueTtcclxuICByZXZvcHNUeXBlQ291bnQ6IGFueTtcclxuICBjdXJyZW50VGltZVJhbmdlRGF0YSA6YW55PVtdO1xyXG4gIG92ZXJhbGxBcnJheURhdGE6YW55PVtdO2FsbEZvb3RmYWxsRGF0YTphbnkgPVtdO1xyXG5nZXRSZXZvcHMoKSB7XHJcbiAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBzdG9yZUlkID1cclxuICAgIHRoaXMuc3RvcmVJZGFycmF5ICYmIHRoaXMuc3RvcmVJZGFycmF5Lmxlbmd0aCA+IDBcclxuICAgICAgPyB0aGlzLnN0b3JlSWRhcnJheVswXVxyXG4gICAgICA6IG51bGw7XHJcbiAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuZm9sZGVyRGF0ZSB8fCAnJztcclxuICBjb25zdCBncm91cEJ5S2V5ID0gJ3RpbWUnO1xyXG4gIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUgfHwgJyc7XHJcbiAgY29uc3QgcHJvY2Vzc1R5cGUgPSAnZm9vdGZhbGwnO1xyXG5cclxuICB0aGlzLnJ2cHNTZXJ2aWNlXHJcbiAgICAuZ2V0UnZwc0xpc3RBcGkoc3RvcmVJZCwgZGF0ZVN0cmluZywgZ3JvdXBCeUtleSwgdHlwZSwgcHJvY2Vzc1R5cGUpXHJcbiAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmdldFJ2cHNMaXN0ID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZVVybCA9IHRoaXMucnZwc1NlcnZpY2U/LmZvb3RmYWxsQ0ROO1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzSW1hZ2VMaXN0ID0gcmVzPy5kYXRhPy5yZXN1bHQ7XHJcblxyXG4gICAgICAgICAgLy8gU2F2ZSB0aGUgZnVsbCBmb290ZmFsbCBkYXRhIChncm91cGVkIGJ5IHRpbWVSYW5nZSlcclxuICAgICAgICAgIHRoaXMuYWxsRm9vdGZhbGxEYXRhID0gcmVzPy5kYXRhPy5yZXN1bHQ/LmZvb3RmYWxsRGF0YSB8fCBbXTtcclxuXHJcbiAgICAgICAgICAvLyBDcmVhdGUgdGltZVJhbmdlICsgY291bnQgb2JqZWN0XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IHRoaXMuYWxsRm9vdGZhbGxEYXRhLm1hcCgoaXRlbTogYW55KSA9PiAoe1xyXG4gICAgICAgICAgICB0aW1lUmFuZ2U6IGl0ZW0udGltZVJhbmdlLFxyXG4gICAgICAgICAgICBjb3VudDogaXRlbS5kYXRhPy5sZW5ndGggfHwgMCxcclxuICAgICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgICAvLyBJZiBubyBzZWxlY3RlZFRpbWUgeWV0LCBwaWNrIHRoZSBmaXJzdCBhbmQgdHJpZ2dlciBnZXRSZXZvcHMgYWdhaW5cclxuICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RlZFRpbWUgJiYgdGhpcy5vYmplY3RzQXJyYXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGltZXModGhpcy5vYmplY3RzQXJyYXlbMF0udGltZVJhbmdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIC8vIEdldCBkYXRhIGZvciB0aGUgc2VsZWN0ZWQgdGltZVJhbmdlXHJcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUaW1lUmFuZ2VEYXRhID1cclxuICAgICAgICAgICAgdGhpcy5hbGxGb290ZmFsbERhdGEuZmluZChcclxuICAgICAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnRpbWVSYW5nZSA9PT0gdGhpcy5zZWxlY3RlZFRpbWVcclxuICAgICAgICAgICAgKT8uZGF0YSB8fCBbXTtcclxuXHJcbiAgICAgICAgICAvLyBDb3VudCByZXZvcHNUeXBlc1xyXG4gICAgICAgICAgY29uc3QgcmV2b3BzVHlwZUNvdW50OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge1xyXG4gICAgICAgICAgICAnbm9uLXRhZ2dpbmcnOiAwLFxyXG4gICAgICAgICAgICBkdXBsaWNhdGU6IDAsXHJcbiAgICAgICAgICAgIGVtcGxveWVlOiAwLFxyXG4gICAgICAgICAgICBob3VzZWtlZXBpbmc6IDAsXHJcbiAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgIGxldCB0b3RhbENvdW50ID0gMDtcclxuICAgICAgICAgIHRoaXMub3ZlcmFsbEFycmF5RGF0YSA9IFtdO1xyXG5cclxuICAgICAgICAgIHRoaXMuYWxsRm9vdGZhbGxEYXRhLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBpdGVtLmRhdGE/LmZvckVhY2goKGltYWdlOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLm92ZXJhbGxBcnJheURhdGEucHVzaChpbWFnZSk7XHJcbiAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGltYWdlLnJldm9wc1R5cGU/LnRyaW0oKSB8fCAndW5rbm93bic7XHJcbiAgICAgICAgICAgICAgdG90YWxDb3VudCsrO1xyXG5cclxuICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ25vbi10YWdnaW5nJykgcmV2b3BzVHlwZUNvdW50Wydub24tdGFnZ2luZyddKys7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2R1cGxpY2F0ZScpIHJldm9wc1R5cGVDb3VudFsnZHVwbGljYXRlJ10rKztcclxuICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnZW1wbG95ZWUnKSByZXZvcHNUeXBlQ291bnRbJ2VtcGxveWVlJ10rKztcclxuICAgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09PSAnaG91c2VrZWVwaW5nJykgcmV2b3BzVHlwZUNvdW50Wydob3VzZWtlZXBpbmcnXSsrO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIHRoaXMuY291bnREYXRhID0ge1xyXG4gICAgICAgICAgICBmb290ZmFsbENvdW50OiB0b3RhbENvdW50LFxyXG4gICAgICAgICAgICBub25UYWdzOiByZXZvcHNUeXBlQ291bnRbJ25vbi10YWdnaW5nJ10sXHJcbiAgICAgICAgICAgIGR1cGxpY2F0ZTogcmV2b3BzVHlwZUNvdW50WydkdXBsaWNhdGUnXSxcclxuICAgICAgICAgICAgZW1wbG95ZWU6IHJldm9wc1R5cGVDb3VudFsnZW1wbG95ZWUnXSxcclxuICAgICAgICAgICAgaG91c2VrZWVwaW5nOiByZXZvcHNUeXBlQ291bnRbJ2hvdXNla2VlcGluZyddLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAvLyBBcHBseSB0eXBlIGZpbHRlciBhZnRlciBsb2FkaW5nIHRpbWVSYW5nZSBkYXRhXHJcbiAgICAgICAgICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG50aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgLy8gSW4gY2FzZSBvZiBmYWlsdXJlXHJcbiAgICAgICAgICB0aGlzLmdldFJ2cHNMaXN0ID0gW107XHJcbiAgICAgICAgICB0aGlzLmdldFJ2cHNJbWFnZUxpc3QgPSBbXTtcclxuICAgICAgICAgIHRoaXMub2JqZWN0c0FycmF5ID0gW107XHJcbiAgICAgICAgICB0aGlzLmltYWdlc0FycmF5RGF0YSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIC8vIGNvbnNvbGUuZXJyb3IoJ0FQSSBlcnJvcjonLCBlcnIpO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG59XHJcbmVkaXRWYWx1ZSgpIHtcclxuICBjb25zdCB0eXBlID0gKHRoaXMuc2VsZWN0ZWRUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gIHRoaXMucmV2b3BzVHlwZVZhbHVlID0gZmFsc2U7XHJcbiAgaWYgKHR5cGUgPT09ICdkdXBsaWNhdGUnKSB7XHJcbiAgXHJcbiAgICAvLyBTdGVwIDE6IEZpbHRlciAnZHVwbGljYXRlJyBhbmQgJ25vbi10YWdnaW5nJyBpbWFnZXNcclxuICAgIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheSA9IHRoaXMub3ZlcmFsbEFycmF5RGF0YS5maWx0ZXIoKGltZzogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGltZ1R5cGUgPSAoaW1nLnJldm9wc1R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IGlzU2VsZWN0ZWQgPSB0aGlzLnNlbGVjdEltYWdlQXJyYXk/LnRlbXBsZCA9PT0gaW1nLnRlbXBsZDtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICAoaW1nVHlwZSA9PT0gJ2R1cGxpY2F0ZScgfHwgaW1nVHlwZSA9PT0gJ25vbi10YWdnaW5nJykgJiZcclxuICAgICAgICAhaXNTZWxlY3RlZCAvLyDinIUgRXhjbHVkZSBjdXJyZW50IHNlbGVjdGVkIGltYWdlXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyBTdGVwIDI6IE1hcmsgb25seSBkdXBsaWNhdGUgaW1hZ2VzIGFzIHNlbGVjdGVkIGlmIGlzQ2hlY2tlZCBpcyB0cnVlXHJcbiAgICB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXkuZm9yRWFjaCgoaW1nOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaXNEdXBsaWNhdGUgPSAoaW1nLnJldm9wc1R5cGUgfHwgJycpLnRvTG93ZXJDYXNlKCkgPT09ICdkdXBsaWNhdGUnO1xyXG4gICAgICBjb25zdCBpc0NoZWNrZWQgPSBpbWcuaXNDaGVja2VkID09PSB0cnVlO1xyXG5cclxuICAgICAgaW1nLnNlbGVjdGVkID0gaXNEdXBsaWNhdGUgJiYgaXNDaGVja2VkO1xyXG4gICAgfSk7XHJcbiAgfSBlbHNlIHtcclxuICAgIC8vIE5vdCBhIGR1cGxpY2F0ZSDigJQgcmVzZXQgbGlzdCBieSB0eXBlXHJcbiAgXHJcbiAgdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5ID0gdGhpcy5vdmVyYWxsQXJyYXlEYXRhLmZpbHRlcigoaW1nOiBhbnkpID0+IHtcclxuICBjb25zdCBpbWdUeXBlID0gKGltZy5yZXZvcHNUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gIGNvbnN0IGlzU2FtZVR5cGUgPSBpbWdUeXBlID09PSB0eXBlO1xyXG5cclxuICBjb25zdCBpc1NhbWVBc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RJbWFnZUFycmF5Py50ZW1wbGQgPT09IGltZy50ZW1wbGQ7XHJcblxyXG4gIC8vIOKchSBPbmx5IGluY2x1ZGUgc2FtZSB0eXBlIGFuZCBleGNsdWRlIGN1cnJlbnRseSB2aWV3ZWQgaW1hZ2VcclxuICByZXR1cm4gaXNTYW1lVHlwZSAmJiAhaXNTYW1lQXNTZWxlY3RlZDtcclxufSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuXHJcbiAgYmFja1RvRm9vdGZhbGwxKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFJhZGlvVHlwZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgfVxyXG4gIHNlbGVjdEltYWdlQXJyYXk6IGFueTtcclxuICByZW1haW5pbmdJbWFnZUFycmF5OiBhbnk7XHJcbiAgcmV2b3BzVHlwZVZhbHVlID1mYWxzZTtcclxuXHJcblxyXG5pbWdGdWxsVmlldyhvYmo6IGFueSkge1xyXG4gIHRoaXMuc2VsZWN0SW1hZ2VBcnJheSA9IG9iajtcclxuICBpZihvYmo/LnJldm9wc1R5cGUgPT09ICdkdXBsaWNhdGUnIHx8IG9iaj8ucmV2b3BzVHlwZSA9PT0nZW1wbG95ZWUnIHx8ICBvYmo/LnJldm9wc1R5cGUgPT09J2hvdXNla2VlcGluZycpe1xyXG50aGlzLnJldm9wc1R5cGVWYWx1ZSA9IHRydWU7XHJcbnRoaXMuc2VsZWN0ZWRUeXBlID0gb2JqPy5yZXZvcHNUeXBlO1xyXG50aGlzLm9uUmFkaW9DaGFuZ2Uob2JqPy5yZXZvcHNUeXBlKTtcclxuICB9IGVsc2V7XHJcbnRoaXMucmV2b3BzVHlwZVZhbHVlID1mYWxzZTtcclxudGhpcy5zZWxlY3RlZFR5cGUgPScnO1xyXG50aGlzLnNlbGVjdGVkUmFkaW9UeXBlID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuICB0aGlzLmltYWdlRmxvdyA9IHRydWU7XHJcbiAgLy8gT25seSBpbmNsdWRlIGltYWdlcyBtYXRjaGluZyB0aGUgY3VycmVudCByZXZvcHNUeXBlXHJcbiAgY29uc3Qgc2VsZWN0ZWRUeXBlID0gb2JqLnJldm9wc1R5cGU/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gIC8vIEZpbHRlciBvbmx5IGltYWdlcyB3aXRoIHRoZSBzYW1lIHR5cGUgZnJvbSBvdmVyYWxsQXJyYXlEYXRhXHJcbiAgY29uc3QgZmlsdGVyZWRCeVR5cGUgPSB0aGlzLm92ZXJhbGxBcnJheURhdGEuZmlsdGVyKFxyXG4gICAgKGltZzogYW55KSA9PiBpbWcucmV2b3BzVHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gc2VsZWN0ZWRUeXBlXHJcbiAgKTtcclxuXHJcbiAgLy8gRmluZCBpbmRleCBvZiBjbGlja2VkIGltYWdlIGluIHRoZSBmaWx0ZXJlZCBsaXN0XHJcbiAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IGZpbHRlcmVkQnlUeXBlLmZpbmRJbmRleChcclxuICAgIChpbWc6IGFueSkgPT4gaW1nLnRlbXBsZCA9PT0gb2JqLnRlbXBsZFxyXG4gICk7XHJcblxyXG4gIC8vIFJlbWFpbmluZyBpbWFnZXMgKGV4Y2x1ZGluZyBjdXJyZW50KVxyXG4gIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheSA9IGZpbHRlcmVkQnlUeXBlLmZpbHRlcihcclxuICAgIChfOiBhbnksIGk6IG51bWJlcikgPT4gaSAhPT0gdGhpcy5jdXJyZW50SW1hZ2VJbmRleFxyXG4gICk7XHJcblxyXG4gIC8vIGNvbnNvbGUubG9nKCdUb3RhbCAoc2FtZSB0eXBlKSBJbWFnZXM6JywgZmlsdGVyZWRCeVR5cGUubGVuZ3RoKTtcclxuICAvLyBjb25zb2xlLmxvZygnU2VsZWN0ZWQgSW1hZ2U6JywgdGhpcy5zZWxlY3RJbWFnZUFycmF5KTtcclxuICAvLyBjb25zb2xlLmxvZygnUmVtYWluaW5nOicsIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheS5sZW5ndGgpO1xyXG59XHJcblxyXG5cclxuaW1nU3dhcChvYmo6IGFueSkge1xyXG4gIGlmICh0aGlzLnNlbGVjdEltYWdlQXJyYXkpIHtcclxuICAgIC8vIEZpbmQgd2hlcmUgdGhlIG5ldyBzZWxlY3RlZCBpbWFnZSBpcyBpbiB0aGUgbGlzdFxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXkuZmluZEluZGV4KFxyXG4gICAgICAoaW1nOiBhbnkpID0+IGltZy50ZW1wbGQgPT09IG9iai50ZW1wbGRcclxuICAgICk7XHJcblxyXG4gICAgLy8gUmVwbGFjZSBzZWxlY3RlZEltYWdlQXJyYXkgYmFjayBpbnRvIGl0cyBvcmlnaW5hbCBwb3NpdGlvblxyXG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXlbaW5kZXhdID0gdGhpcy5zZWxlY3RJbWFnZUFycmF5O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gZmFsbGJhY2sgaWYgbm90IGZvdW5kXHJcbiAgICAgIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheS5wdXNoKHRoaXMuc2VsZWN0SW1hZ2VBcnJheSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBVcGRhdGUgc2VsZWN0ZWQgaW1hZ2VcclxuICB0aGlzLnNlbGVjdEltYWdlQXJyYXkgPSBvYmo7XHJcblxyXG4gIC8vIFJlbW92ZSBzZWxlY3RlZCBmcm9tIHJlbWFpbmluZyBsaXN0XHJcbiAgdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5ID0gdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5LmZpbHRlcihcclxuICAgIChpbWc6IGFueSkgPT4gaW1nLnRlbXBsZCAhPT0gb2JqLnRlbXBsZFxyXG4gICk7XHJcblxyXG4gIHRoaXMuaW1hZ2VGbG93ID0gdHJ1ZTtcclxufVxyXG5cclxuICBcclxuICBzZWxlY3RlZFR5cGU6IGFueSA9IFwiXCI7IC8vIGRlZmF1bHQgc2VsZWN0ZWRcclxuc2VsZWN0ZWRSYWRpb1R5cGU6YW55O1xyXG4gIG9uUmFkaW9DaGFuZ2UodmFsOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREdXBsaWNhdGVJbWFnZXNMaXN0ID1bXTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSYWRpb1R5cGUgPSB2YWw7XHJcbiAgICB9XHJcblxyXG4gIHR5cGU6IGFueSA9IFwiZm9vdGZhbGxcIjtcclxuc2VsZWN0UGxhblRyZW5kcyh0eXBlOiBhbnkpIHtcclxuICB0aGlzLnR5cGUgPSB0eXBlO1xyXG5cclxuICB0aGlzLmFwcGx5RmlsdGVycygpO1xyXG59XHJcbmFwcGx5RmlsdGVycygpIHtcclxuICAgIHRoaXMuaW1hZ2VGbG93ID1mYWxzZTtcclxuICAvLyBjb25zb2xlLmxvZygn8J+TjCBjdXJyZW50VGltZVJhbmdlRGF0YTonLCB0aGlzLmN1cnJlbnRUaW1lUmFuZ2VEYXRhKTtcclxuICAvLyBjb25zb2xlLmxvZygn8J+TjCBDdXJyZW50IHJldm9wc1R5cGU6JywgdGhpcy50eXBlKTtcclxuXHJcbiAgaWYgKHRoaXMudHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gJ2Zvb3RmYWxsJykge1xyXG4gICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSBbLi4udGhpcy5jdXJyZW50VGltZVJhbmdlRGF0YV07XHJcbiAgfSBlbHNlIHtcclxuICAgIHRoaXMuaW1hZ2VzQXJyYXlEYXRhID0gdGhpcy5jdXJyZW50VGltZVJhbmdlRGF0YS5maWx0ZXIoXHJcbiAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0ucmV2b3BzVHlwZT8udG9Mb3dlckNhc2UoKSA9PT0gdGhpcy50eXBlLnRvTG93ZXJDYXNlKClcclxuICAgICk7XHJcbiAgfVxyXG4gIGlmKCF0aGlzLmltYWdlc0FycmF5RGF0YT8ubGVuZ3RoICYmIHRoaXMuaW1hZ2VzQXJyYXlEYXRhPy5sZW5ndGggPT09MCl7XHJcbiAgICB0aGlzLm5vRGF0YSA9dHJ1ZTtcclxuICB9IGVsc2V7XHJcbiAgICB0aGlzLm5vRGF0YSA9ZmFsc2U7XHJcbiAgfVxyXG50aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbi8vIGNvbnNvbGUubG9nKCdpbWFnZXNBcnJheURhdGE6JywgdGhpcy5pbWFnZXNBcnJheURhdGEpO1xyXG4vLyBjb25zb2xlLmxvZygnbm9EYXRhOicsIHRoaXMubm9EYXRhKTtcclxuICAvLyBjb25zb2xlLmxvZygn8J+TjCBGaWx0ZXJlZCBpbWFnZXNBcnJheURhdGE6JywgdGhpcy5pbWFnZXNBcnJheURhdGEubGVuZ3RoKTtcclxuICAvLyB0aGlzLm5vRGF0YSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmxlbmd0aCA9PT0gMDtcclxufVxyXG5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3Q6YW55PVtdO1xyXG5vbkltYWdlQ2hlY2tib3hDaGFuZ2UoaW1nOiBhbnksIHR5cGU6IHN0cmluZykge1xyXG4gIGlmICh0eXBlID09PSAnZHVwbGljYXRlJykge1xyXG4gICAgaWYgKGltZy5zZWxlY3RlZCkge1xyXG4gICAgICBjb25zdCBhbHJlYWR5RXhpc3RzID0gdGhpcy5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3Quc29tZShcclxuICAgICAgICAoaXRlbTphbnkpID0+IGl0ZW0udGVtcGxkID09PSBpbWcudGVtcGxkXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoIWFscmVhZHlFeGlzdHMpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRHVwbGljYXRlSW1hZ2VzTGlzdC5wdXNoKHtcclxuICAgICAgICAgIC4uLmltZyxcclxuICAgICAgICAgIGlzQ2hlY2tlZDogdHJ1ZSxcclxuICAgICAgICAgIHBhcmVudDogaW1nLnBhcmVudCB8fCBudWxsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREdXBsaWNhdGVJbWFnZXNMaXN0ID0gdGhpcy5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3QuZmlsdGVyKFxyXG4gICAgICAgIChpdGVtOmFueSkgPT4gaXRlbS50ZW1wbGQgIT09IGltZy50ZW1wbGRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbmNsZWFyVmFsdWUoKXtcclxuICB0aGlzLnNhdmUoJ25vbi10YWdnaW5nJyk7XHJcbi8vIHRoaXMuc3VibWl0VmFsdWUoJ25vbi10YWdnaW5nJylcclxufVxyXG5jYW5jZWwoKSB7XHJcbiAgLy8gMS4gQ2xlYXIgc2VsZWN0ZWQgZHVwbGljYXRlIGltYWdlcyBsaXN0XHJcbiAgdGhpcy5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3QgPSBbXTtcclxuXHJcbiAgLy8gMi4gUmVzZXQgYWxsIGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgaW4gb3ZlcmFsbCBpbWFnZSBsaXN0XHJcbiAgdGhpcy5vdmVyYWxsQXJyYXlEYXRhID0gdGhpcy5vdmVyYWxsQXJyYXlEYXRhLm1hcCgoaW1nOiBhbnkpID0+ICh7XHJcbiAgICAuLi5pbWcsXHJcbiAgICBpc0NoZWNrZWQ6IGZhbHNlLFxyXG4gICAgc2VsZWN0ZWQ6IGZhbHNlLCAgICAvLyBhc3N1bWluZyAnc2VsZWN0ZWQnIGlzIGNoZWNrYm94IGJpbmRcclxuICAgIHBhcmVudDogbnVsbCwgICAgICAgLy8gcmVzZXQgcGFyZW50IGlmIHVzZWRcclxuICAgIC8vIEFkZCBvdGhlciBmbGFncyBoZXJlIGlmIG5lZWRlZFxyXG4gIH0pKTtcclxuXHJcbiAgLy8gMy4gQ2xvc2UgaW1hZ2UgZmxvdy9mdWxsLXZpZXcgaWYgb3BlblxyXG4gIHRoaXMuaW1hZ2VGbG93ID0gZmFsc2U7XHJcblxyXG4gIC8vIDQuIFJlc2V0IGN1cnJlbnRseSBzZWxlY3RlZCBpbWFnZVxyXG4gIHRoaXMuc2VsZWN0SW1hZ2VBcnJheSA9IG51bGw7XHJcbiAgdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA9IDA7XHJcbiAgdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5ID0gW107XHJcblxyXG4gIC8vIDUuIChPcHRpb25hbCkgUmVzZXQgcmFkaW8gYnV0dG9ucyDigJQgaWYgeW91IGhhdmUgYW55IHNwZWNpZmljIGZsYWdcclxuIHRoaXMuc2VsZWN0ZWRSYWRpb1R5cGUgPSB1bmRlZmluZWQ7XHJcbn1cclxucG9wdXBUeXBlOmFueTtcclxuQFZpZXdDaGlsZCgnem9vbVBvcHVwJykgem9vbVBvcHVwOiBFbGVtZW50UmVmO1xyXG5zYXZlKGNhdGVnb3J5OiBhbnkpIHtcclxuICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuem9vbVBvcHVwLCB7IGNlbnRlcmVkOiB0cnVlLCBzaXplOiAnbWQnLFxyXG4gICAgYmFja2Ryb3A6ICdzdGF0aWMnLCAgIC8vIFByZXZlbnQgY2xvc2luZyBvbiBvdXRzaWRlIGNsaWNrXHJcbiAga2V5Ym9hcmQ6IGZhbHNlICAgICAgIC8vIFByZXZlbnQgY2xvc2luZyBvbiBFU0Mga2V5XHJcbiAgfSk7XHJcbiAgICB0aGlzLnBvcHVwVHlwZSA9IGNhdGVnb3J5O1xyXG59XHJcblxyXG5jYW5jZWxTdWJtaXQoKXtcclxuICAgICAgdGhpcy5tb2RhbFNlcnZpY2UuZGlzbWlzc0FsbCgpO1xyXG5cclxuICB0aGlzLnNlbGVjdGVkRHVwbGljYXRlSW1hZ2VzTGlzdCA9IFtdO1xyXG59XHJcbiAgIHN1Ym1pdFZhbHVlKGNhdGVnb3J5OmFueSl7XHJcbiAgbGV0IGR1cGxpY2F0ZUltYWdlcyA9IFtdO1xyXG5cclxuICBpZiAoY2F0ZWdvcnkgPT09ICdkdXBsaWNhdGUnKSB7XHJcbiAgICBkdXBsaWNhdGVJbWFnZXMgPSB0aGlzLnNlbGVjdGVkRHVwbGljYXRlSW1hZ2VzTGlzdFxyXG4gICAgICAuZmlsdGVyKChpdGVtOmFueSkgPT4gaXRlbS5pc0NoZWNrZWQpXHJcbiAgICAgIC5tYXAoKGl0ZW06YW55KSA9PiAoe1xyXG4gICAgICAgIHRlbXBJZDogaXRlbT8udGVtcGxkLFxyXG4gICAgICAgIHRpbWVSYW5nZTogaXRlbT8udGltZVJhbmdlIHx8ICcnLFxyXG4gICAgICAgIGVudHJ5VGltZTogaXRlbT8uZW50cnlUaW1lIHx8IGl0ZW0/LmVudHJ5VG1lICB8fCAnJyxcclxuICAgICAgICBleGl0VGltZTogaXRlbT8uZXhpdFRpbWUgfHwgJycsXHJcbiAgICAgICAgZmlsZVBhdGg6IGl0ZW0/LmZpbGVQYXRoLFxyXG4gICAgICAgIHJldm9wc1R5cGU6ICdkdXBsaWNhdGUnLFxyXG4gICAgICAgIGlzQ2hlY2tlZDogdHJ1ZVxyXG4gICAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBjb25zdCBpbWcgPSB0aGlzLnNlbGVjdEltYWdlQXJyYXk7XHJcblxyXG4gIGNvbnN0IG9iaiA9IHtcclxuICAgIHN0b3JlSWQ6ICB0aGlzLnN0b3JlSWRhcnJheSAmJiB0aGlzLnN0b3JlSWRhcnJheS5sZW5ndGggPiAwXHJcbiAgICAgICAgPyB0aGlzLnN0b3JlSWRhcnJheVswXVxyXG4gICAgICAgIDogbnVsbCxcclxuICAgIGRhdGVTdHJpbmc6IHRoaXMuZm9sZGVyRGF0ZSB8fCBcIlwiLFxyXG4gICAgdGVtcElkOiBpbWc/LnRlbXBsZCB8fCAwLCAvLyDinIUgbWFwIGNvcnJlY3RseVxyXG4gICAgcmV2b3BzVHlwZTogY2F0ZWdvcnksXHJcbiAgICB0aW1lUmFuZ2U6IGltZz8udGltZVJhbmdlIHx8ICcnLFxyXG4gICAgaXNDaGVja2VkOiB0cnVlLFxyXG4gICAgZHVwbGljYXRlSW1hZ2U6IGR1cGxpY2F0ZUltYWdlcyxcclxuICAgIHByb2Nlc3NUeXBlOiBpbWc/LnByb2Nlc3NUeXBlIHx8ICdmb290ZmFsbCcsXHJcbiAgICBlbnRyeVRpbWU6IGltZz8uZW50cnlUaW1lIHx8IGltZz8uZW50cnlUbWUgfHwgJycsIC8vIOKchSBoYW5kbGUgdHlwb1xyXG4gICAgZXhpdFRpbWU6IGltZz8uZXhpdFRpbWUgfHwgJycsXHJcbiAgICBmaWxlUGF0aDogaW1nPy5maWxlUGF0aCB8fCAnJ1xyXG4gIH07XHJcblxyXG4gIC8vIFN0ZXAgNDogU3VibWl0IHRoZSBwYXlsb2FkXHJcbiAgdGhpcy5ydnBzU2VydmljZS5nZXRSdnBzVGFnKG9iailcclxuICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcz8ubWVzc2FnZSB8fCAnVGlja2V0IHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgICAgICB0aGlzLmltYWdlRmxvdyA9ZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLmdldFJldm9wcygpO1xyXG4gICAgICAgICAgdGhpcy5jYW5jZWxTdWJtaXQoKTsgXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkUmFkaW9UeXBlID11bmRlZmluZWQ7ICAgIFxyXG4gICAgICAgICAgIHRoaXMuc2VsZWN0ZWRUeXBlID0gJyc7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnRmFpbGVkIHRvIHVwZGF0ZSB0aWNrZXQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBtc2cgPSBlcnIuZXJyb3IuZXJyb3IgfHwgZXJyLmVycm9yIHx8IGVycj8uZXJyb3I/Lm1lc3NhZ2UgfHwgZXJyLm1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InO1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdCgnRXJyb3IgdXBkYXRpbmcgdGlja2V0OiAnICsgbXNnKTtcclxuICAgICAgIFxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbn1cclxuXHJcbiAgbm9EYXRhTWVzc2FnZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgZHVwbGljYXRlOiAnTm8gZHVwbGljYXRlcyBmb3VuZCcsXHJcbiAgZW1wbG95ZWU6ICdObyBFbXBsb3llZS9TdGFmZiBmb3VuZCcsXHJcbiAgaG91c2VrZWVwaW5nOiAnTm8gaG91c2VLZWVwaW5nIGZvdW5kJyxcclxuICAnbm9uLXRhZ2dpbmcnOiAnTm8gbm9uLXRhZ2dpbmcgZm91bmQnXHJcbn07XHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG4gIGN1cnJlbnRJbWFnZUluZGV4OiBudW1iZXIgPSAwO1xyXG4gIGdldCBjYW5OYXZpZ2F0ZUxlZnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50SW1hZ2VJbmRleCA+IDA7XHJcbiAgfVxyXG4gIFxyXG4gIGdldCBjYW5OYXZpZ2F0ZVJpZ2h0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEltYWdlSW5kZXggPCB0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggLSAxO1xyXG4gIH1cclxuICBcclxuICBuYXZpZ2F0ZUltYWdlKGRpcmVjdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIpIHtcclxuICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmxlbmd0aDtcclxuICBcclxuICAgIGlmIChkaXJlY3Rpb24gPT09IFwibGVmdFwiICYmIHRoaXMuY2FuTmF2aWdhdGVMZWZ0KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXgtLTtcclxuICAgIH0gZWxzZSBpZiAoZGlyZWN0aW9uID09PSBcInJpZ2h0XCIgJiYgdGhpcy5jYW5OYXZpZ2F0ZVJpZ2h0KSB7XHJcbiAgICAgIHRoaXMuY3VycmVudEltYWdlSW5kZXgrKztcclxuICAgIH1cclxuICBcclxuICAgIC8vIFVwZGF0ZSBzZWxlY3RlZCBpbWFnZVxyXG4gICAgdGhpcy5zZWxlY3RJbWFnZUFycmF5ID0gdGhpcy5pbWFnZXNBcnJheURhdGFbdGhpcy5jdXJyZW50SW1hZ2VJbmRleF07XHJcbiAgXHJcbiAgICAvLyBVcGRhdGUgcmVtYWluaW5nIGltYWdlc1xyXG4gICAgdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5ID0gdGhpcy5pbWFnZXNBcnJheURhdGEuZmlsdGVyKFxyXG4gICAgICAoXzogYW55LCBpOiBhbnkpID0+IGkgIT09IHRoaXMuY3VycmVudEltYWdlSW5kZXhcclxuICAgICk7XHJcbiAgfVxyXG59IiwiPGRpdiBjbGFzcz1cImNhcmQgbXQtM1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG10LTMgcHgtMCBib3JkZXItYm90dG9tLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWFjY29yZGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3VzdG9tLWFjY29yZGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWFpbmhlYWRpbmcgcGItMCBjdXN0b20tYWNjb3JkaW9uLWhlYWRlclwiIChjbGljayk9XCJ0b2dnbGVBY2NvcmRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1nLWRpcmVjXCI+SW1hZ2UgRGlyZWN0b3J5PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkaXZpZGVyXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY29yZGlvbi1hcnJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBEb3duIGFycm93IGZvciBjb2xsYXBzZWQgc3RhdGUsIHVwIGFycm93IGZvciBleHBhbmRlZCBzdGF0ZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgKm5nSWY9XCIhaXNBY2NvcmRpb25FeHBhbmRlZFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiA2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEgMUw1IDVMOSAxXCIgc3Ryb2tlPVwiIzA3MTQzN1wiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiaXNBY2NvcmRpb25FeHBhbmRlZFwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI2XCIgaGVpZ2h0PVwiNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxNiA2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEgNUw1IDFMOSA1XCIgc3Ryb2tlPVwiIzFiODRmZlwiIHN0cm9rZS13aWR0aD1cIjFcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8c2VjdGlvbiAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIj5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImZvbGRlclZpZXdcIiBjbGFzcz1cImNhcmQtYm9keSBweC0wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGwtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xIG10LTUgdGV4dC1jZW50ZXJcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIGRhdGVBcnJheTtsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldGltYWdlcyhpLG9iailcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpID09PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+PHN2ZyB3aWR0aD1cIjU3XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU3IDU2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuMTU0Mjk3XCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjMzNCNUZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zOS44MjE2IDM2LjE2NjdDMzkuODIxNiAzNi43ODU1IDM5LjU3NTggMzcuMzc5IDM5LjEzODIgMzcuODE2NkMzOC43MDA2IDM4LjI1NDIgMzguMTA3MSAzOC41IDM3LjQ4ODMgMzguNUgxOC44MjE2QzE4LjIwMjggMzguNSAxNy42MDkzIDM4LjI1NDIgMTcuMTcxNyAzNy44MTY2QzE2LjczNDEgMzcuMzc5IDE2LjQ4ODMgMzYuNzg1NSAxNi40ODgzIDM2LjE2NjdWMTkuODMzM0MxNi40ODgzIDE5LjIxNDUgMTYuNzM0MSAxOC42MjEgMTcuMTcxNyAxOC4xODM0QzE3LjYwOTMgMTcuNzQ1OCAxOC4yMDI4IDE3LjUgMTguODIxNiAxNy41SDI0LjY1NDlMMjYuOTg4MyAyMUgzNy40ODgzQzM4LjEwNzEgMjEgMzguNzAwNiAyMS4yNDU4IDM5LjEzODIgMjEuNjgzNEMzOS41NzU4IDIyLjEyMSAzOS44MjE2IDIyLjcxNDUgMzkuODIxNiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJ3aGl0ZVwiIHN0cm9rZS13aWR0aD1cIjIuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtMlwiPnt7b2JqIHwgZGF0ZTonZGQgTU1NJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpICE9PSBzZWxlY3RJbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCI+PHN2ZyB3aWR0aD1cIjU3XCIgaGVpZ2h0PVwiNTZcIiB2aWV3Qm94PVwiMCAwIDU3IDU2XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjAuNDYyODkxXCIgd2lkdGg9XCI1NlwiIGhlaWdodD1cIjU2XCIgcng9XCIxMlwiIGZpbGw9XCIjRUFGOEZGXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00MC4xMzAyIDM2LjE2NjdDNDAuMTMwMiAzNi43ODU1IDM5Ljg4NDQgMzcuMzc5IDM5LjQ0NjggMzcuODE2NkMzOS4wMDkyIDM4LjI1NDIgMzguNDE1NyAzOC41IDM3Ljc5NjkgMzguNUgxOS4xMzAyQzE4LjUxMTQgMzguNSAxNy45MTc5IDM4LjI1NDIgMTcuNDgwMyAzNy44MTY2QzE3LjA0MjcgMzcuMzc5IDE2Ljc5NjkgMzYuNzg1NSAxNi43OTY5IDM2LjE2NjdWMTkuODMzM0MxNi43OTY5IDE5LjIxNDUgMTcuMDQyNyAxOC42MjEgMTcuNDgwMyAxOC4xODM0QzE3LjkxNzkgMTcuNzQ1OCAxOC41MTE0IDE3LjUgMTkuMTMwMiAxNy41SDI0Ljk2MzVMMjcuMjk2OSAyMUgzNy43OTY5QzM4LjQxNTcgMjEgMzkuMDA5MiAyMS4yNDU4IDM5LjQ0NjggMjEuNjgzNEMzOS44ODQ0IDIyLjEyMSA0MC4xMzAyIDIyLjcxNDUgNDAuMTMwMiAyMy4zMzMzVjM2LjE2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMi4zMzMzM1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yXCI+e3tvYmogfCBkYXRlOidkZCBNTU0nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1ncm91cCBiZy13aGl0ZSBib3JkZXItMSBidG4tZ3JvdXAgbXgtNVwiPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBweC02IHB5LTNcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ2Zvb3RmYWxsJyA/ICdhY3RpdmVQbGFuQnRuJyA6ICdpbmFjdGl2ZVBsYW5CdG4nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQbGFuVHJlbmRzKCdmb290ZmFsbCcpXCI+XHJcbiAgICAgICAgICAgICAgICBUb3RhbCBmb290ZmFsbFxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnZm9vdGZhbGwnID8gJ2FjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtYWN0aXZlJyA6ICdpbmFjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudERhdGE/LmZvb3RmYWxsQ291bnQgfHwgMCB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNiBweS0zXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdub24tdGFnZ2luZycgPyAnYWN0aXZlUGxhbkJ0bicgOiAnaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGxhblRyZW5kcygnbm9uLXRhZ2dpbmcnKVwiPlxyXG4gICAgICAgICAgICAgICAgTm9uLXRhZ3NcclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ25vbi10YWdnaW5nJyA/ICdhY3RpdmVQbGFuQnRuIGJhZGdlIGJhZGdlLWFjdGl2ZScgOiAnaW5hY3RpdmVQbGFuQnRuIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY291bnREYXRhPy5ub25UYWdzIHx8IDAgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTYgcHktM1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnZHVwbGljYXRlJyA/ICdhY3RpdmVQbGFuQnRuJyA6ICdpbmFjdGl2ZVBsYW5CdG4nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQbGFuVHJlbmRzKCdkdXBsaWNhdGUnKVwiPlxyXG4gICAgICAgICAgICAgICAgRHVwbGljYXRlZFxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnZHVwbGljYXRlJyA/ICdhY3RpdmVQbGFuQnRuIGJhZGdlIGJhZGdlLWFjdGl2ZScgOiAnaW5hY3RpdmVQbGFuQnRuIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY291bnREYXRhPy5kdXBsaWNhdGUgfHwgMCB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNiBweS0zXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdlbXBsb3llZScgPyAnYWN0aXZlUGxhbkJ0bicgOiAnaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGxhblRyZW5kcygnZW1wbG95ZWUnKVwiPlxyXG4gICAgICAgICAgICAgICAgRW1wbG95ZWUvU3RhZmZcclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ2VtcGxveWVlJyA/ICdhY3RpdmVQbGFuQnRuIGJhZGdlIGJhZGdlLWFjdGl2ZScgOiAnaW5hY3RpdmVQbGFuQnRuIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY291bnREYXRhPy5lbXBsb3llZSB8fCAwIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBweC02IHB5LTNcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ2hvdXNla2VlcGluZycgPyAnYWN0aXZlUGxhbkJ0bicgOiAnaW5hY3RpdmVQbGFuQnRuJ1wiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UGxhblRyZW5kcygnaG91c2VrZWVwaW5nJylcIj5cclxuICAgICAgICAgICAgICAgIEhvdXNla2VlcGluZ1xyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnaG91c2VrZWVwaW5nJyA/ICdiYWRnZSBiYWRnZS1hY3RpdmUgYWN0aXZlUGxhbkJ0bicgOiAnIGJhZGdlIGJhZGdlLWxpZ2h0LWRlZmF1bHQgaW5hY3RpdmVQbGFuQnRuJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvdW50RGF0YT8uaG91c2VrZWVwaW5nIHx8IDAgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWZvbGRlclZpZXdcIiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cIiFpbWFnZUZsb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rLTAgbXQtMyBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJiYWNrbmF2XCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9Gb290ZmFsbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI1ODVfNzAzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjJcIiB5PVwiMVwiIHdpZHRoPVwiMzZcIiBoZWlnaHQ9XCIzNlwiIHJ4PVwiOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNS44MzI3IDE5SDE0LjE2Nk0xNC4xNjYgMTlMMTkuOTk5MyAyNC44MzM0TTE0LjE2NiAxOUwxOS45OTkzIDEzLjE2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT1cIjBcIiByZXN1bHQ9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZU9mZnNldCBkeT1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwLjA2Mjc0NTEgMCAwIDAgMCAwLjA5NDExNzYgMCAwIDAgMCAwLjE1Njg2MyAwIDAgMCAwLjA1IDBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW49XCJTb3VyY2VHcmFwaGljXCIgaW4yPVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlYyBtcy0yIG10LTFcIj57e2ZvbGRlckRhdGUgfCBkYXRlOidkZCBNTU0sIHl5eXknfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBtdC0yIG1iLTIgdy0xMDAgb3ZlcmZsb3cteCBweC0wXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzQXJyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai50aW1lUmFuZ2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy50aW1lUmFuZ2UgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LnRpbWVSYW5nZX19PHNwYW4gY2xhc3M9XCJteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8udGltZVJhbmdlID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvYmo/LmNvdW50ID8gb2JqPy5jb3VudCA6IDAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJyb3cgbG9hZGVyICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibm9EYXRhXCIgY2xhc3M9XCJyb3dcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uIFwiIHN0eWxlPVwibWFyZ2luOiA2NHB4O2JvcmRlci1yYWRpdXM6IDhweDtcclxuYmFja2dyb3VuZDogdmFyKC0tR3JheS01MCwgI0Y5RkFGQik7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjk0XCIgaGVpZ2h0PVwiOTRcIiB2aWV3Qm94PVwiMCAwIDk0IDk0XCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgZmlsbD1cIiNEQUYxRkZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiN1wiIHk9XCI3XCIgd2lkdGg9XCI4MFwiIGhlaWdodD1cIjgwXCIgcng9XCI0MFwiIHN0cm9rZT1cIiNFQUY4RkZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMTMuMzMzM1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTM1LjMzMiA1MS45OTk5SDMzLjY2NTRDMzIuNzgxMyA1MS45OTk5IDMxLjkzMzUgNTEuNjQ4NyAzMS4zMDgzIDUxLjAyMzZDMzAuNjgzMiA1MC4zOTg1IDMwLjMzMiA0OS41NTA2IDMwLjMzMiA0OC42NjY2VjMzLjY2NjZDMzAuMzMyIDMyLjc4MjUgMzAuNjgzMiAzMS45MzQ3IDMxLjMwODMgMzEuMzA5NkMzMS45MzM1IDMwLjY4NDQgMzIuNzgxMyAzMC4zMzMzIDMzLjY2NTQgMzAuMzMzM0g0OC42NjU0QzQ5LjU0OTQgMzAuMzMzMyA1MC4zOTczIDMwLjY4NDQgNTEuMDIyNCAzMS4zMDk2QzUxLjY0NzUgMzEuOTM0NyA1MS45OTg3IDMyLjc4MjUgNTEuOTk4NyAzMy42NjY2VjM1LjMzMzNNNDUuMzMyIDQxLjk5OTlINjAuMzMyQzYyLjE3MyA0MS45OTk5IDYzLjY2NTQgNDMuNDkyMyA2My42NjU0IDQ1LjMzMzNWNjAuMzMzM0M2My42NjU0IDYyLjE3NDIgNjIuMTczIDYzLjY2NjYgNjAuMzMyIDYzLjY2NjZINDUuMzMyQzQzLjQ5MTEgNjMuNjY2NiA0MS45OTg3IDYyLjE3NDIgNDEuOTk4NyA2MC4zMzMzVjQ1LjMzMzNDNDEuOTk4NyA0My40OTIzIDQzLjQ5MTEgNDEuOTk5OSA0NS4zMzIgNDEuOTk5OVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJub2RhdGEtdGl0bGUgbXktM1wiPlxyXG4gIHt7IG5vRGF0YU1lc3NhZ2VzW3R5cGU/LnRvTG93ZXJDYXNlKCldIHx8ICdObyBkYXRhIGZvdW5kJyB9fVxyXG48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0wIGltZy10cmFmZmljIGNvbnRhaW4gaGlnaC00MDBweCBzY3JvbGwteVwiICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTMgYm9yZGVyLWdyYXkgbXgtMiBwLTIgbXQtNVwiICpuZ0Zvcj1cImxldCBvYmogb2YgaW1hZ2VzQXJyYXlEYXRhXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgY3Vyc29yLXBvaW50ZXJcIiBbc3JjXT1cImltYWdlVXJsICsgb2JqPy5maWxlUGF0aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9iai5maWxlUGF0aCA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1nRnVsbFZpZXcob2JqKVwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhb2JqPy5maWxlUGF0aFwiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi01IHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNSB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+VGFuZ28gSUQgOiB7e29iaj8udGVtcGxkfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZy1kb2MtdmFsdWVcIj5FbnRyeSBUaW1lIDoge3tvYmo/LmVudHJ5VG1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgdGV4dC1lbmQgcHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSA9PT0nbm9uLXRhZ2dpbmcnXCIgbmdiVG9vbHRpcD1cIllldCB0byB0YWcgdGhlIGN1c3RvbWVyXCIgcGxhY2VtZW50PVwidG9wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE5XCIgaGVpZ2h0PVwiMThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTkgMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMjM0NCA1LjYyNUg2LjAzMDk0TTE2LjIxNTkgMTAuNDMyNUwxMC44Mzg0IDE1LjgxQzEwLjY5OTEgMTUuOTQ5NSAxMC41MzM3IDE2LjA2MDEgMTAuMzUxNiAxNi4xMzU2QzEwLjE2OTUgMTYuMjExMSA5Ljk3NDMxIDE2LjI0OTkgOS43NzcxOSAxNi4yNDk5QzkuNTgwMDYgMTYuMjQ5OSA5LjM4NDg3IDE2LjIxMTEgOS4yMDI3OCAxNi4xMzU2QzkuMDIwNjggMTYuMDYwMSA4Ljg1NTI1IDE1Ljk0OTUgOC43MTU5NCAxNS44MUwyLjI3MzQ0IDkuMzc1VjEuODc1SDkuNzczNDRMMTYuMjE1OSA4LjMxNzVDMTYuNDk1MyA4LjU5ODU0IDE2LjY1MjEgOC45Nzg3MiAxNi42NTIxIDkuMzc1QzE2LjY1MjEgOS43NzEyOCAxNi40OTUzIDEwLjE1MTUgMTYuMjE1OSAxMC40MzI1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSA9PT0nZHVwbGljYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2MzUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjc5NyAxMy4xODU5SDMuMzM0NjRDMi44OTI2MSAxMy4xODU5IDIuNDY4NjggMTMuMDEwMyAyLjE1NjEyIDEyLjY5NzdDMS44NDM1NiAxMi4zODUyIDEuNjY3OTcgMTEuOTYxMiAxLjY2Nzk3IDExLjUxOTJWNC4wMTkyMUMxLjY2Nzk3IDMuNTc3MTggMS44NDM1NiAzLjE1MzI2IDIuMTU2MTIgMi44NDA2OUMyLjQ2ODY4IDIuNTI4MTMgMi44OTI2MSAyLjM1MjU0IDMuMzM0NjQgMi4zNTI1NEgxMC44MzQ2QzExLjI3NjcgMi4zNTI1NCAxMS43MDA2IDIuNTI4MTMgMTIuMDEzMSAyLjg0MDY5QzEyLjMyNTcgMy4xNTMyNiAxMi41MDEzIDMuNTc3MTggMTIuNTAxMyA0LjAxOTIxVjQuODUyNTRNOS4xNjc5NyA4LjE4NTg3SDE2LjY2OEMxNy41ODg0IDguMTg1ODcgMTguMzM0NiA4LjkzMjA2IDE4LjMzNDYgOS44NTI1NFYxNy4zNTI1QzE4LjMzNDYgMTguMjczIDE3LjU4ODQgMTkuMDE5MiAxNi42NjggMTkuMDE5Mkg5LjE2Nzk3QzguMjQ3NDkgMTkuMDE5MiA3LjUwMTMgMTguMjczIDcuNTAxMyAxNy4zNTI1VjkuODUyNTRDNy41MDEzIDguOTMyMDYgOC4yNDc0OSA4LjE4NTg3IDkuMTY3OTcgOC4xODU4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjAxMl85NDYzNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNjg2MDM1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlID09PSdlbXBsb3llZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2MzkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY1NCAxOC4xODZWMTYuNTE5NEMxNC4xNjU0IDE1LjYzNTMgMTMuODE0MiAxNC43ODc1IDEzLjE4OTEgMTQuMTYyM0MxMi41NjM5IDEzLjUzNzIgMTEuNzE2MSAxMy4xODYgMTAuODMyIDEzLjE4Nkg0LjE2NTM2QzMuMjgxMzEgMTMuMTg2IDIuNDMzNDYgMTMuNTM3MiAxLjgwODM0IDE0LjE2MjNDMS4xODMyMiAxNC43ODc1IDAuODMyMDMxIDE1LjYzNTMgMC44MzIwMzEgMTYuNTE5NFYxOC4xODZNMTkuMTY1NCAxOC4xODZWMTYuNTE5NEMxOS4xNjQ4IDE1Ljc4MDggMTguOTE5IDE1LjA2MzMgMTguNDY2NSAxNC40Nzk2QzE4LjAxNCAxMy44OTU5IDE3LjM4MDUgMTMuNDc5IDE2LjY2NTQgMTMuMjk0NE0xMy4zMzIgMy4yOTQzN0MxNC4wNDkgMy40Nzc5NSAxNC42ODQ2IDMuODk0OTUgMTUuMTM4NCA0LjQ3OTYzQzE1LjU5MjIgNS4wNjQzIDE1LjgzODYgNS43ODMzOSAxNS44Mzg2IDYuNTIzNTRDMTUuODM4NiA3LjI2MzY4IDE1LjU5MjIgNy45ODI3NyAxNS4xMzg0IDguNTY3NDRDMTQuNjg0NiA5LjE1MjEyIDE0LjA0OSA5LjU2OTEyIDEzLjMzMiA5Ljc1MjdNMTAuODMyIDYuNTE5MzdDMTAuODMyIDguMzYwMzIgOS4zMzk2NSA5Ljg1MjcgNy40OTg3IDkuODUyN0M1LjY1Nzc1IDkuODUyNyA0LjE2NTM2IDguMzYwMzIgNC4xNjUzNiA2LjUxOTM3QzQuMTY1MzYgNC42Nzg0MiA1LjY1Nzc1IDMuMTg2MDQgNy40OTg3IDMuMTg2MDRDOS4zMzk2NSAzLjE4NjA0IDEwLjgzMiA0LjY3ODQyIDEwLjgzMiA2LjUxOTM3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJvYmo/LnJldm9wc1R5cGUgPT09J2hvdXNla2VlcGluZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMSAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDY0MylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMjYyMTkgMS4zNjcyMkMxMC4xNzc3IDAuNDU4OTc0IDExLjY2MiAwLjQ1ODk3NCAxMi41Nzc2IDEuMzY3MjJMMjAuMzEzMyA5LjA0MTUzQzIxLjIyODcgOS45NDk4IDIxLjIyODcgMTEuNDIyMyAyMC4zMTMzIDEyLjMzMDZMMTIuNTc3NiAyMC4wMDQ5QzExLjY2MiAyMC45MTMxIDEwLjE3NzcgMjAuOTEzMSA5LjI2MjE5IDIwLjAwNDlMNy4wNTE2NiAxNy44MTE5TDUuMDI1MzggMTkuODIyMUM0LjEwOTg3IDIwLjczMDMgMi42MjU1MyAyMC43MzAzIDEuNzEwMDIgMTkuODIyMUMwLjc5NDUxIDE4LjkxMzkgMC43OTQ1MSAxNy40NDEzIDEuNzEwMDIgMTYuNTMzMUwzLjczNjMgMTQuNTIyOUwxLjUyNjQ4IDEyLjMzMDZDMC42MTA5NjYgMTEuNDIyMyAwLjYxMDk2NiA5Ljk0OTggMS41MjY0OCA5LjA0MTUzTDkuMjYyMTkgMS4zNjcyMlpNMTEuNDcyNCAyLjQ2MzU3QzExLjE2NzIgMi4xNjA4MiAxMC42NzI0IDIuMTYwODIgMTAuMzY3MiAyLjQ2MzU3TDQuODQxNDUgNy45NDU1NkwxMy42ODIzIDE2LjcxNjNMMTkuMjA4MSAxMS4yMzQyQzE5LjUxMzMgMTAuOTMxNSAxOS41MTMzIDEwLjQ0MDYgMTkuMjA4MSAxMC4xMzc5TDE1LjMzOTkgNi4zMDAzMkwxNC4wNTA1IDcuNTc5NEMxMy43NDUzIDcuODgyMTQgMTMuMjUwNiA3Ljg4MjE0IDEyLjk0NTUgNy41Nzk0QzEyLjY0MDMgNy4yNzY2NCAxMi42NDAzIDYuNzg1NzkgMTIuOTQ1NSA2LjQ4MzA1TDE0LjIzNDcgNS4yMDM5N0wxMy4xMjk5IDQuMTA3ODZMOS45OTg3MiA3LjIxNDE4QzkuNjkzNTQgNy41MTY5MiA5LjE5ODczIDcuNTE2OTIgOC44OTM1NiA3LjIxNDE4QzguNTg4MzggNi45MTE0MyA4LjU4ODM4IDYuNDIwNTggOC44OTM1NiA2LjExNzgzTDEyLjAyNDcgMy4wMTE1MUwxMS40NzI0IDIuNDYzNTdaTTEyLjU3NzEgMTcuODEyNUwzLjczNjMzIDkuMDQxOTFMMi42MzE2IDEwLjEzNzlDMi4zMjY0MiAxMC40NDA2IDIuMzI2NDIgMTAuOTMxNSAyLjYzMTYgMTEuMjM0MkwxMC4zNjcyIDE4LjkwODVDMTAuNjcyNCAxOS4yMTEzIDExLjE2NzIgMTkuMjExMyAxMS40NzI0IDE4LjkwODVMMTIuNTc3MSAxNy44MTI1Wk00Ljg0MTMyIDE1LjYxOTJMMi44MTUxNCAxNy42Mjk0QzIuNTA5OTcgMTcuOTMyMSAyLjUwOTk3IDE4LjQyMyAyLjgxNTE0IDE4LjcyNThDMy4xMjAzMSAxOS4wMjg1IDMuNjE1MDkgMTkuMDI4NSAzLjkyMDI2IDE4LjcyNThMNS45NDY0NCAxNi43MTU2TDQuODQxMzIgMTUuNjE5MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDc1NDY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2NDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBmdWxsIGltYWdlIFZpZXcgLS0+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiaW1hZ2VGbG93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LXNocmluay0wIG10LTMganVzdGlmeS1jb250ZW50LXN0YXJ0IGFsaWduLWl0ZW1zLWNlbnRlciBweC0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvRm9vdGZhbGwxKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8yNTg1XzcwMzZcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1nLWRpcmVjIG1zLTIgbXQtMVwiPnt7Zm9sZGVyRGF0ZSB8IGRhdGU6J2RkIE1NTSwgeXl5eSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTIgbWItMiB3LTEwMCBvdmVyZmxvdy14IHB4LTBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNvbCB0ZXh0LW5vd3JhcFwiICpuZ0Zvcj1cImxldCBvYmogb2Ygb2JqZWN0c0FycmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJuYXYgbmF2LXN0cmV0Y2ggbmF2LWxpbmUtdGFiczEgbmF2LWxpbmUtdGFicyBib3JkZXItdHJhbnNwYXJlbnQgZmxleC1ub3dyYXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJuYXYtaXRlbSBjdXJzb3ItcG9pbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0ZWRUaW1lcyhvYmoudGltZVJhbmdlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8udGltZVJhbmdlID8gJ2FjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1saW5rIGN1cnNvci1wb2ludGVyIG5vLWJvcmRlciBteC0zIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7b2JqPy50aW1lUmFuZ2V9fTxzcGFuIGNsYXNzPVwibXgtMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LnRpbWVSYW5nZSA/ICdiYWRnZS1udW0tcHJpbWFyeScgOidiYWRnZS1udW0tbXV0ZWQnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb2JqPy5jb3VudCA/IG9iaj8uY291bnQgOiAwIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtMCBib3JkZXItZ3JheSBpbWctdHJhZmZpY1wiICpuZ0lmPVwiIW5vRGF0YSAmJiAhbG9hZGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcC0yICBtYi0yIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZSBib3JkZXItZ3JheSBwLTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uICpuZ0lmPVwiY2FuTmF2aWdhdGVMZWZ0XCIgKGNsaWNrKT1cIm5hdmlnYXRlSW1hZ2UoJ2xlZnQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBwb3NpdGlvbi1hYnNvbHV0ZSBzdGFydC0wIHRvcC01MCB6LWluZGV4LTEwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIOKXgFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBNYWluIEltYWdlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyIGgtMzUwcHhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3JjXT1cImltYWdlVXJsICsgc2VsZWN0SW1hZ2VBcnJheT8uZmlsZVBhdGhcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gKm5nSWY9XCJjYW5OYXZpZ2F0ZVJpZ2h0XCIgKGNsaWNrKT1cIm5hdmlnYXRlSW1hZ2UoJ3JpZ2h0JylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgcG9zaXRpb24tYWJzb2x1dGUgZW5kLTAgdG9wLTUwIHotaW5kZXgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4pa2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIFJpZ2h0IGFycm93IGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPlRhbmdvIElEIDoge3tzZWxlY3RJbWFnZUFycmF5Py50ZW1wbGR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZy1kb2MtdmFsdWVcIj5FbnRyeSBUaW1lIDoge3tzZWxlY3RJbWFnZUFycmF5Py5lbnRyeVRtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgdGV4dC1lbmQgcHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdEltYWdlQXJyYXk/LnJldm9wc1R5cGUgPT09J25vbi10YWdnaW5nJ1wiIG5nYlRvb2x0aXA9XCJZZXQgdG8gdGFnIHRoZSBjdXN0b21lclwiIHBsYWNlbWVudD1cInRvcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOVwiIGhlaWdodD1cIjE4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDE5IDE4XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuMDIzNDQgNS42MjVINi4wMzA5NE0xNi4yMTU5IDEwLjQzMjVMMTAuODM4NCAxNS44MUMxMC42OTkxIDE1Ljk0OTUgMTAuNTMzNyAxNi4wNjAxIDEwLjM1MTYgMTYuMTM1NkMxMC4xNjk1IDE2LjIxMTEgOS45NzQzMSAxNi4yNDk5IDkuNzc3MTkgMTYuMjQ5OUM5LjU4MDA2IDE2LjI0OTkgOS4zODQ4NyAxNi4yMTExIDkuMjAyNzggMTYuMTM1NkM5LjAyMDY4IDE2LjA2MDEgOC44NTUyNSAxNS45NDk1IDguNzE1OTQgMTUuODFMMi4yNzM0NCA5LjM3NVYxLjg3NUg5Ljc3MzQ0TDE2LjIxNTkgOC4zMTc1QzE2LjQ5NTMgOC41OTg1NCAxNi42NTIxIDguOTc4NzIgMTYuNjUyMSA5LjM3NUMxNi42NTIxIDkuNzcxMjggMTYuNDk1MyAxMC4xNTE1IDE2LjIxNTkgMTAuNDMyNVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RJbWFnZUFycmF5Py5yZXZvcHNUeXBlID09PSdkdXBsaWNhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00LjE2Nzk3IDEzLjE4NTlIMy4zMzQ2NEMyLjg5MjYxIDEzLjE4NTkgMi40Njg2OCAxMy4wMTAzIDIuMTU2MTIgMTIuNjk3N0MxLjg0MzU2IDEyLjM4NTIgMS42Njc5NyAxMS45NjEyIDEuNjY3OTcgMTEuNTE5MlY0LjAxOTIxQzEuNjY3OTcgMy41NzcxOCAxLjg0MzU2IDMuMTUzMjYgMi4xNTYxMiAyLjg0MDY5QzIuNDY4NjggMi41MjgxMyAyLjg5MjYxIDIuMzUyNTQgMy4zMzQ2NCAyLjM1MjU0SDEwLjgzNDZDMTEuMjc2NyAyLjM1MjU0IDExLjcwMDYgMi41MjgxMyAxMi4wMTMxIDIuODQwNjlDMTIuMzI1NyAzLjE1MzI2IDEyLjUwMTMgMy41NzcxOCAxMi41MDEzIDQuMDE5MjFWNC44NTI1NE05LjE2Nzk3IDguMTg1ODdIMTYuNjY4QzE3LjU4ODQgOC4xODU4NyAxOC4zMzQ2IDguOTMyMDYgMTguMzM0NiA5Ljg1MjU0VjE3LjM1MjVDMTguMzM0NiAxOC4yNzMgMTcuNTg4NCAxOS4wMTkyIDE2LjY2OCAxOS4wMTkySDkuMTY3OTdDOC4yNDc0OSAxOS4wMTkyIDcuNTAxMyAxOC4yNzMgNy41MDEzIDE3LjM1MjVWOS44NTI1NEM3LjUwMTMgOC45MzIwNiA4LjI0NzQ5IDguMTg1ODcgOS4xNjc5NyA4LjE4NTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RJbWFnZUFycmF5Py5yZXZvcHNUeXBlID09PSdlbXBsb3llZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2MzkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY1NCAxOC4xODZWMTYuNTE5NEMxNC4xNjU0IDE1LjYzNTMgMTMuODE0MiAxNC43ODc1IDEzLjE4OTEgMTQuMTYyM0MxMi41NjM5IDEzLjUzNzIgMTEuNzE2MSAxMy4xODYgMTAuODMyIDEzLjE4Nkg0LjE2NTM2QzMuMjgxMzEgMTMuMTg2IDIuNDMzNDYgMTMuNTM3MiAxLjgwODM0IDE0LjE2MjNDMS4xODMyMiAxNC43ODc1IDAuODMyMDMxIDE1LjYzNTMgMC44MzIwMzEgMTYuNTE5NFYxOC4xODZNMTkuMTY1NCAxOC4xODZWMTYuNTE5NEMxOS4xNjQ4IDE1Ljc4MDggMTguOTE5IDE1LjA2MzMgMTguNDY2NSAxNC40Nzk2QzE4LjAxNCAxMy44OTU5IDE3LjM4MDUgMTMuNDc5IDE2LjY2NTQgMTMuMjk0NE0xMy4zMzIgMy4yOTQzN0MxNC4wNDkgMy40Nzc5NSAxNC42ODQ2IDMuODk0OTUgMTUuMTM4NCA0LjQ3OTYzQzE1LjU5MjIgNS4wNjQzIDE1LjgzODYgNS43ODMzOSAxNS44Mzg2IDYuNTIzNTRDMTUuODM4NiA3LjI2MzY4IDE1LjU5MjIgNy45ODI3NyAxNS4xMzg0IDguNTY3NDRDMTQuNjg0NiA5LjE1MjEyIDE0LjA0OSA5LjU2OTEyIDEzLjMzMiA5Ljc1MjdNMTAuODMyIDYuNTE5MzdDMTAuODMyIDguMzYwMzIgOS4zMzk2NSA5Ljg1MjcgNy40OTg3IDkuODUyN0M1LjY1Nzc1IDkuODUyNyA0LjE2NTM2IDguMzYwMzIgNC4xNjUzNiA2LjUxOTM3QzQuMTY1MzYgNC42Nzg0MiA1LjY1Nzc1IDMuMTg2MDQgNy40OTg3IDMuMTg2MDRDOS4zMzk2NSAzLjE4NjA0IDEwLjgzMiA0LjY3ODQyIDEwLjgzMiA2LjUxOTM3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RJbWFnZUFycmF5Py5yZXZvcHNUeXBlID09PSdob3VzZWtlZXBpbmcnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjEgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2NDMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05LjI2MjE5IDEuMzY3MjJDMTAuMTc3NyAwLjQ1ODk3NCAxMS42NjIgMC40NTg5NzQgMTIuNTc3NiAxLjM2NzIyTDIwLjMxMzMgOS4wNDE1M0MyMS4yMjg3IDkuOTQ5OCAyMS4yMjg3IDExLjQyMjMgMjAuMzEzMyAxMi4zMzA2TDEyLjU3NzYgMjAuMDA0OUMxMS42NjIgMjAuOTEzMSAxMC4xNzc3IDIwLjkxMzEgOS4yNjIxOSAyMC4wMDQ5TDcuMDUxNjYgMTcuODExOUw1LjAyNTM4IDE5LjgyMjFDNC4xMDk4NyAyMC43MzAzIDIuNjI1NTMgMjAuNzMwMyAxLjcxMDAyIDE5LjgyMjFDMC43OTQ1MSAxOC45MTM5IDAuNzk0NTEgMTcuNDQxMyAxLjcxMDAyIDE2LjUzMzFMMy43MzYzIDE0LjUyMjlMMS41MjY0OCAxMi4zMzA2QzAuNjEwOTY2IDExLjQyMjMgMC42MTA5NjYgOS45NDk4IDEuNTI2NDggOS4wNDE1M0w5LjI2MjE5IDEuMzY3MjJaTTExLjQ3MjQgMi40NjM1N0MxMS4xNjcyIDIuMTYwODIgMTAuNjcyNCAyLjE2MDgyIDEwLjM2NzIgMi40NjM1N0w0Ljg0MTQ1IDcuOTQ1NTZMMTMuNjgyMyAxNi43MTYzTDE5LjIwODEgMTEuMjM0MkMxOS41MTMzIDEwLjkzMTUgMTkuNTEzMyAxMC40NDA2IDE5LjIwODEgMTAuMTM3OUwxNS4zMzk5IDYuMzAwMzJMMTQuMDUwNSA3LjU3OTRDMTMuNzQ1MyA3Ljg4MjE0IDEzLjI1MDYgNy44ODIxNCAxMi45NDU1IDcuNTc5NEMxMi42NDAzIDcuMjc2NjQgMTIuNjQwMyA2Ljc4NTc5IDEyLjk0NTUgNi40ODMwNUwxNC4yMzQ3IDUuMjAzOTdMMTMuMTI5OSA0LjEwNzg2TDkuOTk4NzIgNy4yMTQxOEM5LjY5MzU0IDcuNTE2OTIgOS4xOTg3MyA3LjUxNjkyIDguODkzNTYgNy4yMTQxOEM4LjU4ODM4IDYuOTExNDMgOC41ODgzOCA2LjQyMDU4IDguODkzNTYgNi4xMTc4M0wxMi4wMjQ3IDMuMDExNTFMMTEuNDcyNCAyLjQ2MzU3Wk0xMi41NzcxIDE3LjgxMjVMMy43MzYzMyA5LjA0MTkxTDIuNjMxNiAxMC4xMzc5QzIuMzI2NDIgMTAuNDQwNiAyLjMyNjQyIDEwLjkzMTUgMi42MzE2IDExLjIzNDJMMTAuMzY3MiAxOC45MDg1QzEwLjY3MjQgMTkuMjExMyAxMS4xNjcyIDE5LjIxMTMgMTEuNDcyNCAxOC45MDg1TDEyLjU3NzEgMTcuODEyNVpNNC44NDEzMiAxNS42MTkyTDIuODE1MTQgMTcuNjI5NEMyLjUwOTk3IDE3LjkzMjEgMi41MDk5NyAxOC40MjMgMi44MTUxNCAxOC43MjU4QzMuMTIwMzEgMTkuMDI4NSAzLjYxNTA5IDE5LjAyODUgMy45MjAyNiAxOC43MjU4TDUuOTQ2NDQgMTYuNzE1Nkw0Ljg0MTMyIDE1LjYxOTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQ3NTQ2N1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjQzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IHAtMiBtYi0yICBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aXRsZS10eXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlY3Qgbm9uLXNob3BwZXIgdHlwZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcmV2b3BzVHlwZVZhbHVlXCIgY2xhc3M9XCJtYi01IHRleHQtZW5kXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbGVhclZhbHVlKClcIj5DbGVhcjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBtZS0yXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJzZWxlY3RlZFJhZGlvVHlwZSA9PT11bmRlZmluZWQgfHwgc2VsZWN0ZWRSYWRpb1R5cGUgPT09JydcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhbGVydC10b2FzdFwiIChjbGljayk9XCJzYXZlKHNlbGVjdGVkVHlwZSlcIj5TYXZlPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJldm9wc1R5cGVWYWx1ZVwiIGNsYXNzPVwibWItNSB0ZXh0LWVuZFwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBtZS0yXCIgKGNsaWNrKT1cImVkaXRWYWx1ZSgpXCI+PHNwYW4gY2xhc3M9XCJtZS0yXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbjxwYXRoIGQ9XCJNMTQuNjU1NCAxLjcxMDQ3QzE0Ljg5MjcgMS40NzMxNSAxNS4xNzQ1IDEuMjg0OSAxNS40ODQ1IDEuMTU2NDZDMTUuNzk0NiAxLjAyODAyIDE2LjEyNjkgMC45NjE5MTQgMTYuNDYyNiAwLjk2MTkxNEMxNi43OTgyIDAuOTYxOTE0IDE3LjEzMDUgMS4wMjgwMiAxNy40NDA2IDEuMTU2NDZDMTcuNzUwNyAxLjI4NDkgMTguMDMyNCAxLjQ3MzE1IDE4LjI2OTcgMS43MTA0N0MxOC41MDcxIDEuOTQ3NzkgMTguNjk1MyAyLjIyOTUzIDE4LjgyMzggMi41Mzk2MUMxOC45NTIyIDIuODQ5NjkgMTkuMDE4MyAzLjE4MjAyIDE5LjAxODMgMy41MTc2NUMxOS4wMTgzIDMuODUzMjcgMTguOTUyMiA0LjE4NTYxIDE4LjgyMzggNC40OTU2OEMxOC42OTUzIDQuODA1NzYgMTguNTA3MSA1LjA4NzUgMTguMjY5NyA1LjMyNDgyTDYuMDcxMyAxNy41MjMzTDEuMTAxNTYgMTguODc4NkwyLjQ1Njk1IDEzLjkwODlMMTQuNjU1NCAxLjcxMDQ3WlwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjgxMDc5XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG48L3N2Zz48L3NwYW4+RWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXktMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJkdXBsaWNhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJkdXBsaWNhdGVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVHlwZVwiIFt2YWx1ZV09XCInZHVwbGljYXRlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2Uoc2VsZWN0ZWRUeXBlKVwiIFtkaXNhYmxlZF09XCJyZXZvcHNUeXBlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImR1cGxpY2F0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00LjE2Nzk3IDEzLjE4NTlIMy4zMzQ2NEMyLjg5MjYxIDEzLjE4NTkgMi40Njg2OCAxMy4wMTAzIDIuMTU2MTIgMTIuNjk3N0MxLjg0MzU2IDEyLjM4NTIgMS42Njc5NyAxMS45NjEyIDEuNjY3OTcgMTEuNTE5MlY0LjAxOTIxQzEuNjY3OTcgMy41NzcxOCAxLjg0MzU2IDMuMTUzMjYgMi4xNTYxMiAyLjg0MDY5QzIuNDY4NjggMi41MjgxMyAyLjg5MjYxIDIuMzUyNTQgMy4zMzQ2NCAyLjM1MjU0SDEwLjgzNDZDMTEuMjc2NyAyLjM1MjU0IDExLjcwMDYgMi41MjgxMyAxMi4wMTMxIDIuODQwNjlDMTIuMzI1NyAzLjE1MzI2IDEyLjUwMTMgMy41NzcxOCAxMi41MDEzIDQuMDE5MjFWNC44NTI1NE05LjE2Nzk3IDguMTg1ODdIMTYuNjY4QzE3LjU4ODQgOC4xODU4NyAxOC4zMzQ2IDguOTMyMDYgMTguMzM0NiA5Ljg1MjU0VjE3LjM1MjVDMTguMzM0NiAxOC4yNzMgMTcuNTg4NCAxOS4wMTkyIDE2LjY2OCAxOS4wMTkySDkuMTY3OTdDOC4yNDc0OSAxOS4wMTkyIDcuNTAxMyAxOC4yNzMgNy41MDEzIDE3LjM1MjVWOS44NTI1NEM3LjUwMTMgOC45MzIwNiA4LjI0NzQ5IDguMTg1ODcgOS4xNjc5NyA4LjE4NTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtNSB0YWctY2xhc3NcIj5EdXBsaWNhdGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXktMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJlbXBsb3llZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImVtcGxveWVlXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFR5cGVcIiBbdmFsdWVdPVwiJ2VtcGxveWVlJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2Uoc2VsZWN0ZWRUeXBlKVwiIFtkaXNhYmxlZF09XCJyZXZvcHNUeXBlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImVtcGxveWVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTVcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMDEyXzk0NjM5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjE2NTQgMTguMTg2VjE2LjUxOTRDMTQuMTY1NCAxNS42MzUzIDEzLjgxNDIgMTQuNzg3NSAxMy4xODkxIDE0LjE2MjNDMTIuNTYzOSAxMy41MzcyIDExLjcxNjEgMTMuMTg2IDEwLjgzMiAxMy4xODZINC4xNjUzNkMzLjI4MTMxIDEzLjE4NiAyLjQzMzQ2IDEzLjUzNzIgMS44MDgzNCAxNC4xNjIzQzEuMTgzMjIgMTQuNzg3NSAwLjgzMjAzMSAxNS42MzUzIDAuODMyMDMxIDE2LjUxOTRWMTguMTg2TTE5LjE2NTQgMTguMTg2VjE2LjUxOTRDMTkuMTY0OCAxNS43ODA4IDE4LjkxOSAxNS4wNjMzIDE4LjQ2NjUgMTQuNDc5NkMxOC4wMTQgMTMuODk1OSAxNy4zODA1IDEzLjQ3OSAxNi42NjU0IDEzLjI5NDRNMTMuMzMyIDMuMjk0MzdDMTQuMDQ5IDMuNDc3OTUgMTQuNjg0NiAzLjg5NDk1IDE1LjEzODQgNC40Nzk2M0MxNS41OTIyIDUuMDY0MyAxNS44Mzg2IDUuNzgzMzkgMTUuODM4NiA2LjUyMzU0QzE1LjgzODYgNy4yNjM2OCAxNS41OTIyIDcuOTgyNzcgMTUuMTM4NCA4LjU2NzQ0QzE0LjY4NDYgOS4xNTIxMiAxNC4wNDkgOS41NjkxMiAxMy4zMzIgOS43NTI3TTEwLjgzMiA2LjUxOTM3QzEwLjgzMiA4LjM2MDMyIDkuMzM5NjUgOS44NTI3IDcuNDk4NyA5Ljg1MjdDNS42NTc3NSA5Ljg1MjcgNC4xNjUzNiA4LjM2MDMyIDQuMTY1MzYgNi41MTkzN0M0LjE2NTM2IDQuNjc4NDIgNS42NTc3NSAzLjE4NjA0IDcuNDk4NyAzLjE4NjA0QzkuMzM5NjUgMy4xODYwNCAxMC44MzIgNC42Nzg0MiAxMC44MzIgNi41MTkzN1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjAxMl85NDYzOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNjg2MDM1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy01IHRhZy1jbGFzc1wiPkVtcGxveWVlL1N0YWZmPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIG15LTE1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgY3Vyc29yLXBvaW50ZXJcIiB0eXBlPVwicmFkaW9cIiBuYW1lPVwiaG91c2VrZWVwaW5nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaG91c2VrZWVwaW5nXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFR5cGVcIiBbdmFsdWVdPVwiJ2hvdXNla2VlcGluZydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblJhZGlvQ2hhbmdlKHNlbGVjdGVkVHlwZSlcIiBbZGlzYWJsZWRdPVwicmV2b3BzVHlwZVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJob3VzZWtlZXBpbmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjEgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2NDMpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk05LjI2MjE5IDEuMzY3MjJDMTAuMTc3NyAwLjQ1ODk3NCAxMS42NjIgMC40NTg5NzQgMTIuNTc3NiAxLjM2NzIyTDIwLjMxMzMgOS4wNDE1M0MyMS4yMjg3IDkuOTQ5OCAyMS4yMjg3IDExLjQyMjMgMjAuMzEzMyAxMi4zMzA2TDEyLjU3NzYgMjAuMDA0OUMxMS42NjIgMjAuOTEzMSAxMC4xNzc3IDIwLjkxMzEgOS4yNjIxOSAyMC4wMDQ5TDcuMDUxNjYgMTcuODExOUw1LjAyNTM4IDE5LjgyMjFDNC4xMDk4NyAyMC43MzAzIDIuNjI1NTMgMjAuNzMwMyAxLjcxMDAyIDE5LjgyMjFDMC43OTQ1MSAxOC45MTM5IDAuNzk0NTEgMTcuNDQxMyAxLjcxMDAyIDE2LjUzMzFMMy43MzYzIDE0LjUyMjlMMS41MjY0OCAxMi4zMzA2QzAuNjEwOTY2IDExLjQyMjMgMC42MTA5NjYgOS45NDk4IDEuNTI2NDggOS4wNDE1M0w5LjI2MjE5IDEuMzY3MjJaTTExLjQ3MjQgMi40NjM1N0MxMS4xNjcyIDIuMTYwODIgMTAuNjcyNCAyLjE2MDgyIDEwLjM2NzIgMi40NjM1N0w0Ljg0MTQ1IDcuOTQ1NTZMMTMuNjgyMyAxNi43MTYzTDE5LjIwODEgMTEuMjM0MkMxOS41MTMzIDEwLjkzMTUgMTkuNTEzMyAxMC40NDA2IDE5LjIwODEgMTAuMTM3OUwxNS4zMzk5IDYuMzAwMzJMMTQuMDUwNSA3LjU3OTRDMTMuNzQ1MyA3Ljg4MjE0IDEzLjI1MDYgNy44ODIxNCAxMi45NDU1IDcuNTc5NEMxMi42NDAzIDcuMjc2NjQgMTIuNjQwMyA2Ljc4NTc5IDEyLjk0NTUgNi40ODMwNUwxNC4yMzQ3IDUuMjAzOTdMMTMuMTI5OSA0LjEwNzg2TDkuOTk4NzIgNy4yMTQxOEM5LjY5MzU0IDcuNTE2OTIgOS4xOTg3MyA3LjUxNjkyIDguODkzNTYgNy4yMTQxOEM4LjU4ODM4IDYuOTExNDMgOC41ODgzOCA2LjQyMDU4IDguODkzNTYgNi4xMTc4M0wxMi4wMjQ3IDMuMDExNTFMMTEuNDcyNCAyLjQ2MzU3Wk0xMi41NzcxIDE3LjgxMjVMMy43MzYzMyA5LjA0MTkxTDIuNjMxNiAxMC4xMzc5QzIuMzI2NDIgMTAuNDQwNiAyLjMyNjQyIDEwLjkzMTUgMi42MzE2IDExLjIzNDJMMTAuMzY3MiAxOC45MDg1QzEwLjY3MjQgMTkuMjExMyAxMS4xNjcyIDE5LjIxMTMgMTEuNDcyNCAxOC45MDg1TDEyLjU3NzEgMTcuODEyNVpNNC44NDEzMiAxNS42MTkyTDIuODE1MTQgMTcuNjI5NEMyLjUwOTk3IDE3LjkzMjEgMi41MDk5NyAxOC40MjMgMi44MTUxNCAxOC43MjU4QzMuMTIwMzEgMTkuMDI4NSAzLjYxNTA5IDE5LjAyODUgMy45MjAyNiAxOC43MjU4TDUuOTQ2NDQgMTYuNzE1Nkw0Ljg0MTMyIDE1LjYxOTJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwiIzQ3NTQ2N1wiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjQzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTUgdGFnLWNsYXNzXCI+IEhvdXNlIEtlZXBpbmc8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTAgaW1nLXRyYWZmaWMgbXQtMyBoaWdoLTQwMHB4IHNjcm9sbC15XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBib3JkZXItZ3JheSBteC0yIHAtMiBtdC01XCIgKm5nRm9yPVwibGV0IG9iaiBvZiByZW1haW5pbmdJbWFnZUFycmF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKm5nSWY9XCJzZWxlY3RlZFJhZGlvVHlwZSA9PT0gJ2R1cGxpY2F0ZSdcIiB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm9iai5zZWxlY3RlZFwiIGNsYXNzPVwicG9zaXRpb24tYWJzb2x1dGUgYWJzb2x1dGUgZm9ybS1jaGVjay1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25JbWFnZUNoZWNrYm94Q2hhbmdlKG9iaiwgJ2R1cGxpY2F0ZScpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwiaW1hZ2VVcmwgKyBvYmo/LmZpbGVQYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9iai5maWxlUGF0aCA9IG51bGxcIiBhbHQ9XCJcIiAoY2xpY2spPVwiaW1nU3dhcChvYmopXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhb2JqPy5maWxlUGF0aFwiIGNsYXNzPVwibm8tcHJldmlld1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYuNSA2LjMyMjI3SDYuNTFNMTYuMjUgOS4zMjIyN0gyMS41TDE4IDE2LjMyMjNMMTQuOTEgMTIuMDAyM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3Rvcl8yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBweC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC03XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5UYW5nbyBJRCA6IHt7b2JqPy50ZW1wbGR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImltZy1kb2MtdmFsdWVcIj5FbnRyeSBUaW1lIDoge3tvYmo/LmVudHJ5VG1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTUgdGV4dC1lbmQgcHktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSA9PT0nbm9uLXRhZ2dpbmcnXCIgbmdiVG9vbHRpcD1cIllldCB0byB0YWcgdGhlIGN1c3RvbWVyXCIgcGxhY2VtZW50PVwidG9wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE5XCIgaGVpZ2h0PVwiMThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTkgMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMjM0NCA1LjYyNUg2LjAzMDk0TTE2LjIxNTkgMTAuNDMyNUwxMC44Mzg0IDE1LjgxQzEwLjY5OTEgMTUuOTQ5NSAxMC41MzM3IDE2LjA2MDEgMTAuMzUxNiAxNi4xMzU2QzEwLjE2OTUgMTYuMjExMSA5Ljk3NDMxIDE2LjI0OTkgOS43NzcxOSAxNi4yNDk5QzkuNTgwMDYgMTYuMjQ5OSA5LjM4NDg3IDE2LjIxMTEgOS4yMDI3OCAxNi4xMzU2QzkuMDIwNjggMTYuMDYwMSA4Ljg1NTI1IDE1Ljk0OTUgOC43MTU5NCAxNS44MUwyLjI3MzQ0IDkuMzc1VjEuODc1SDkuNzczNDRMMTYuMjE1OSA4LjMxNzVDMTYuNDk1MyA4LjU5ODU0IDE2LjY1MjEgOC45Nzg3MiAxNi42NTIxIDkuMzc1QzE2LjY1MjEgOS43NzEyOCAxNi40OTUzIDEwLjE1MTUgMTYuMjE1OSAxMC40MzI1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSA9PT0nZHVwbGljYXRlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2MzUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNC4xNjc5NyAxMy4xODU5SDMuMzM0NjRDMi44OTI2MSAxMy4xODU5IDIuNDY4NjggMTMuMDEwMyAyLjE1NjEyIDEyLjY5NzdDMS44NDM1NiAxMi4zODUyIDEuNjY3OTcgMTEuOTYxMiAxLjY2Nzk3IDExLjUxOTJWNC4wMTkyMUMxLjY2Nzk3IDMuNTc3MTggMS44NDM1NiAzLjE1MzI2IDIuMTU2MTIgMi44NDA2OUMyLjQ2ODY4IDIuNTI4MTMgMi44OTI2MSAyLjM1MjU0IDMuMzM0NjQgMi4zNTI1NEgxMC44MzQ2QzExLjI3NjcgMi4zNTI1NCAxMS43MDA2IDIuNTI4MTMgMTIuMDEzMSAyLjg0MDY5QzEyLjMyNTcgMy4xNTMyNiAxMi41MDEzIDMuNTc3MTggMTIuNTAxMyA0LjAxOTIxVjQuODUyNTRNOS4xNjc5NyA4LjE4NTg3SDE2LjY2OEMxNy41ODg0IDguMTg1ODcgMTguMzM0NiA4LjkzMjA2IDE4LjMzNDYgOS44NTI1NFYxNy4zNTI1QzE4LjMzNDYgMTguMjczIDE3LjU4ODQgMTkuMDE5MiAxNi42NjggMTkuMDE5Mkg5LjE2Nzk3QzguMjQ3NDkgMTkuMDE5MiA3LjUwMTMgMTguMjczIDcuNTAxMyAxNy4zNTI1VjkuODUyNTRDNy41MDEzIDguOTMyMDYgOC4yNDc0OSA4LjE4NTg3IDkuMTY3OTcgOC4xODU4N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjAxMl85NDYzNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNjg2MDM1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlID09PSdlbXBsb3llZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2MzkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY1NCAxOC4xODZWMTYuNTE5NEMxNC4xNjU0IDE1LjYzNTMgMTMuODE0MiAxNC43ODc1IDEzLjE4OTEgMTQuMTYyM0MxMi41NjM5IDEzLjUzNzIgMTEuNzE2MSAxMy4xODYgMTAuODMyIDEzLjE4Nkg0LjE2NTM2QzMuMjgxMzEgMTMuMTg2IDIuNDMzNDYgMTMuNTM3MiAxLjgwODM0IDE0LjE2MjNDMS4xODMyMiAxNC43ODc1IDAuODMyMDMxIDE1LjYzNTMgMC44MzIwMzEgMTYuNTE5NFYxOC4xODZNMTkuMTY1NCAxOC4xODZWMTYuNTE5NEMxOS4xNjQ4IDE1Ljc4MDggMTguOTE5IDE1LjA2MzMgMTguNDY2NSAxNC40Nzk2QzE4LjAxNCAxMy44OTU5IDE3LjM4MDUgMTMuNDc5IDE2LjY2NTQgMTMuMjk0NE0xMy4zMzIgMy4yOTQzN0MxNC4wNDkgMy40Nzc5NSAxNC42ODQ2IDMuODk0OTUgMTUuMTM4NCA0LjQ3OTYzQzE1LjU5MjIgNS4wNjQzIDE1LjgzODYgNS43ODMzOSAxNS44Mzg2IDYuNTIzNTRDMTUuODM4NiA3LjI2MzY4IDE1LjU5MjIgNy45ODI3NyAxNS4xMzg0IDguNTY3NDRDMTQuNjg0NiA5LjE1MjEyIDE0LjA0OSA5LjU2OTEyIDEzLjMzMiA5Ljc1MjdNMTAuODMyIDYuNTE5MzdDMTAuODMyIDguMzYwMzIgOS4zMzk2NSA5Ljg1MjcgNy40OTg3IDkuODUyN0M1LjY1Nzc1IDkuODUyNyA0LjE2NTM2IDguMzYwMzIgNC4xNjUzNiA2LjUxOTM3QzQuMTY1MzYgNC42Nzg0MiA1LjY1Nzc1IDMuMTg2MDQgNy40OTg3IDMuMTg2MDRDOS4zMzk2NSAzLjE4NjA0IDEwLjgzMiA0LjY3ODQyIDEwLjgzMiA2LjUxOTM3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJvYmo/LnJldm9wc1R5cGUgPT09J2hvdXNla2VlcGluZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMSAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDY0MylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMjYyMTkgMS4zNjcyMkMxMC4xNzc3IDAuNDU4OTc0IDExLjY2MiAwLjQ1ODk3NCAxMi41Nzc2IDEuMzY3MjJMMjAuMzEzMyA5LjA0MTUzQzIxLjIyODcgOS45NDk4IDIxLjIyODcgMTEuNDIyMyAyMC4zMTMzIDEyLjMzMDZMMTIuNTc3NiAyMC4wMDQ5QzExLjY2MiAyMC45MTMxIDEwLjE3NzcgMjAuOTEzMSA5LjI2MjE5IDIwLjAwNDlMNy4wNTE2NiAxNy44MTE5TDUuMDI1MzggMTkuODIyMUM0LjEwOTg3IDIwLjczMDMgMi42MjU1MyAyMC43MzAzIDEuNzEwMDIgMTkuODIyMUMwLjc5NDUxIDE4LjkxMzkgMC43OTQ1MSAxNy40NDEzIDEuNzEwMDIgMTYuNTMzMUwzLjczNjMgMTQuNTIyOUwxLjUyNjQ4IDEyLjMzMDZDMC42MTA5NjYgMTEuNDIyMyAwLjYxMDk2NiA5Ljk0OTggMS41MjY0OCA5LjA0MTUzTDkuMjYyMTkgMS4zNjcyMlpNMTEuNDcyNCAyLjQ2MzU3QzExLjE2NzIgMi4xNjA4MiAxMC42NzI0IDIuMTYwODIgMTAuMzY3MiAyLjQ2MzU3TDQuODQxNDUgNy45NDU1NkwxMy42ODIzIDE2LjcxNjNMMTkuMjA4MSAxMS4yMzQyQzE5LjUxMzMgMTAuOTMxNSAxOS41MTMzIDEwLjQ0MDYgMTkuMjA4MSAxMC4xMzc5TDE1LjMzOTkgNi4zMDAzMkwxNC4wNTA1IDcuNTc5NEMxMy43NDUzIDcuODgyMTQgMTMuMjUwNiA3Ljg4MjE0IDEyLjk0NTUgNy41Nzk0QzEyLjY0MDMgNy4yNzY2NCAxMi42NDAzIDYuNzg1NzkgMTIuOTQ1NSA2LjQ4MzA1TDE0LjIzNDcgNS4yMDM5N0wxMy4xMjk5IDQuMTA3ODZMOS45OTg3MiA3LjIxNDE4QzkuNjkzNTQgNy41MTY5MiA5LjE5ODczIDcuNTE2OTIgOC44OTM1NiA3LjIxNDE4QzguNTg4MzggNi45MTE0MyA4LjU4ODM4IDYuNDIwNTggOC44OTM1NiA2LjExNzgzTDEyLjAyNDcgMy4wMTE1MUwxMS40NzI0IDIuNDYzNTdaTTEyLjU3NzEgMTcuODEyNUwzLjczNjMzIDkuMDQxOTFMMi42MzE2IDEwLjEzNzlDMi4zMjY0MiAxMC40NDA2IDIuMzI2NDIgMTAuOTMxNSAyLjYzMTYgMTEuMjM0MkwxMC4zNjcyIDE4LjkwODVDMTAuNjcyNCAxOS4yMTEzIDExLjE2NzIgMTkuMjExMyAxMS40NzI0IDE4LjkwODVMMTIuNTc3MSAxNy44MTI1Wk00Ljg0MTMyIDE1LjYxOTJMMi44MTUxNCAxNy42Mjk0QzIuNTA5OTcgMTcuOTMyMSAyLjUwOTk3IDE4LjQyMyAyLjgxNTE0IDE4LjcyNThDMy4xMjAzMSAxOS4wMjg1IDMuNjE1MDkgMTkuMDI4NSAzLjkyMDI2IDE4LjcyNThMNS45NDY0NCAxNi43MTU2TDQuODQxMzIgMTUuNjE5MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDc1NDY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2NDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICN6b29tUG9wdXAgbGV0LW1vZGVsPlxyXG4gICAgPGRpdiBjbGFzcz1cInAtNCBtLTRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGJvcmRlci0wIHAtMCB3LTEwMCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiPlxyXG5cclxuICAgICAgICAgICAgPCEtLSBIZWFkaW5nIC0tPlxyXG4gICAgICAgICAgICA8aDUgY2xhc3M9XCJtb2RhbC10aXRsZSBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ2VtcGxveWVlJ1wiPlRhZ2dpbmcgYXMgZW1wbG95ZWUvc3RhZmYgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwb3B1cFR5cGUgPT09ICdkdXBsaWNhdGUnXCI+VGFnZ2luZyBhcyBkdXBsaWNhdGVzIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9wdXBUeXBlID09PSAnaG91c2VrZWVwaW5nJ1wiPlRhZ2dpbmcgYXMgSG91c2UgS2VlcGluZyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwb3B1cFR5cGUgPT09ICdub24tdGFnZ2luZydcIj5UYWdnaW5nIGFzIG5vbi10YWdnaW5nIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9oNT5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ2VtcGxveWVlJ1wiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB0YWcgdGhpcyBhcyBlbXBsb3llZS9zdGFmZj88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ2R1cGxpY2F0ZSdcIj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdGFnIHRoaXMgYXMgZHVwbGljYXRlcz8gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwb3B1cFR5cGUgPT09ICdob3VzZWtlZXBpbmcnXCI+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHRhZyB0aGlzIGFzIGhvdXNlIEtlZXBpbmc/IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ25vbi10YWdnaW5nJ1wiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB0YWcgdGhpcyBhcyBub24tdGFnZ2luZz8gPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidy0xMDAgbXQtNSBkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsU3VibWl0KClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJzdWJtaXRWYWx1ZShwb3B1cFR5cGUpXCI+XHJcbiAgICAgICAgICAgICAgICBZZXMsIFRhZ1xyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
515
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1nLXJ2cHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS10cmFmZmljL3NyYy9saWIvY29tcG9uZW50cy9pbWctcnZwcy9pbWctcnZwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2ltZy1ydnBzL2ltZy1ydnBzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBR1MsU0FBUyxFQUM1QixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7OztBQU85QyxNQUFNLE9BQU8sZ0JBQWdCO0lBT2pCO0lBQ0Q7SUFDQztJQUNBO0lBQ0E7SUFDQTtJQVhWLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQU07SUFDbEIsT0FBTyxHQUFZLElBQUksQ0FBQztJQUN4QixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsU0FBUyxDQUFNO0lBQ2YsWUFDVSxPQUF1QixFQUN4QixFQUFzQixFQUNyQixFQUFxQixFQUNyQixZQUFzQixFQUN0QixLQUFtQixFQUNuQixXQUErQjtRQUwvQixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUNyQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUN0QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25CLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtJQUN0QyxDQUFDO0lBQ2EsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDMUMsV0FBVztR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SSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQ3BELENBQUMsQ0FBTSxFQUFFLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxpQkFBaUIsQ0FDakQsQ0FBQztJQUNKLENBQUM7d0dBMWtCVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiw0SkNwQjdCLHE0NURBNHFCYzs7NEZEeHBCRCxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsY0FBYzt1T0E0Y0YsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxFbGVtZW50UmVmLFZpZXdDaGlsZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFRyYWZmaWNSdnBzU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFmZmljLXJ2cHMuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBUcmFmZmljU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1zaGFyZWRcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTmdiTW9kYWwgfSBmcm9tIFwiQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXBcIjtcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJsaWItaW1nLXJ2cHNcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2ltZy1ydnBzLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmw6IFwiLi9pbWctcnZwcy5jb21wb25lbnQuc2Nzc1wiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1nUnZwc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBoZWFkZXJEYXRhOiBhbnk7XHJcbiAgc3RvcmVJZGFycmF5OiBhbnk7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhID0gZmFsc2U7XHJcbiAgbm9ybWFsaXplOiBhbnk7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxcclxuICAgIHByaXZhdGUgdG9hc3Q6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcnZwc1NlcnZpY2U6IFRyYWZmaWNSdnBzU2VydmljZVxyXG4gICkge31cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbiAgaXNBY2NvcmRpb25FeHBhbmRlZCA9IHRydWU7XHJcbiAgdG9nZ2xlQWNjb3JkaW9uKCkge1xyXG4gICAgdGhpcy5pc0FjY29yZGlvbkV4cGFuZGVkID0gIXRoaXMuaXNBY2NvcmRpb25FeHBhbmRlZDtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEluaXRhbCgpO1xyXG4gIH1cclxuICBnZXRJbml0YWwoKSB7XHJcbiAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChkYXRhICE9PSBudWxsIHx8IGRhdGE/LmNsaWVudCAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICAgIHRoaXMuc3RvcmVJZGFycmF5ID0gdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoc3RvcmU6IGFueSkgPT4gc3RvcmUuY2hlY2tlZClcclxuICAgICAgICAgICAgLm1hcCgoc3RvcmU6IGFueSkgPT4gc3RvcmUuc3RvcmVJZCk7XHJcbiAgICAgICAgICB0aGlzLmJhY2tUb0Zvb3RmYWxsKCk7XHJcbiAgICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJEYXRhPy5kYXRlPy5zdGFydERhdGUgPT09IHRoaXMuaGVhZGVyRGF0YT8uZGF0ZT8uZW5kRGF0ZVxyXG4gICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYmFja25hdiA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlEYXRlUmFuZ2UoKTtcclxuICAgICAgICAgICAgdGhpcy5nZXRpbWFnZXMoMCwgdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmZvbGRlclZpZXcgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLmJhY2tuYXYgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBiYWNrVG9Gb290ZmFsbCgpIHtcclxuICAgIHRoaXMuc2VsZWN0SW5kZXggPSAwO1xyXG4gICAgdGhpcy5mb2xkZXJWaWV3ID0gdHJ1ZTtcclxuICAgIHRoaXMuZ2V0UnZwc0xpc3QgPSBbXTtcclxuICAgIHRoaXMuZ2V0UnZwc0ltYWdlTGlzdCA9IFtdO1xyXG4gICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXTtcclxuICAgIHRoaXMuaW1hZ2VzQXJyYXlEYXRhID0gW107XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gIH1cclxuICBmb2xkZXJWaWV3OiBib29sZWFuO1xyXG4gIGJhY2tuYXY6IGJvb2xlYW47XHJcbiAgZGF0ZUFycmF5OiBhbnk7XHJcbiAgZGlzcGxheURhdGVSYW5nZSgpIHtcclxuICAgIGNvbnN0IGRhdGVzID0gdGhpcy5nZXREYXRlUmFuZ2VBcnJheShcclxuICAgICAgdGhpcy5oZWFkZXJEYXRhLmRhdGUuc3RhcnREYXRlLFxyXG4gICAgICB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlXHJcbiAgICApO1xyXG4gICAgdGhpcy5kYXRlQXJyYXkgPSBkYXRlcztcclxuICB9XHJcblxyXG4gIGdldERhdGVSYW5nZUFycmF5KGZyb21EYXRlOiBzdHJpbmcsIHRvRGF0ZTogc3RyaW5nKTogc3RyaW5nW10ge1xyXG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZShmcm9tRGF0ZSk7IC8vIENvbnZlcnQgc3RyaW5nIHRvIERhdGUgb2JqZWN0XHJcbiAgICBjb25zdCBlbmQgPSBuZXcgRGF0ZSh0b0RhdGUpOyAvLyBDb252ZXJ0IHN0cmluZyB0byBEYXRlIG9iamVjdFxyXG4gICAgY29uc3QgZGF0ZUFycmF5OiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIC8vIENoZWNrIGlmIHRoZSBkYXRlcyBhcmUgdmFsaWRcclxuICAgIGlmIChpc05hTihzdGFydC5nZXRUaW1lKCkpIHx8IGlzTmFOKGVuZC5nZXRUaW1lKCkpKSB7XHJcbiAgICAgIHJldHVybiBkYXRlQXJyYXk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gTG9vcCBmcm9tIHN0YXJ0IGRhdGUgdG8gZW5kIGRhdGVcclxuICAgIGxldCBjdXJyZW50RGF0ZSA9IHN0YXJ0O1xyXG4gICAgd2hpbGUgKGN1cnJlbnREYXRlIDw9IGVuZCkge1xyXG4gICAgICBkYXRlQXJyYXkucHVzaChjdXJyZW50RGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSk7IC8vIEZvcm1hdCBZWVlZLU1NLUREXHJcbiAgICAgIGN1cnJlbnREYXRlLnNldERhdGUoY3VycmVudERhdGUuZ2V0RGF0ZSgpICsgMSk7IC8vIEluY3JlbWVudCB0aGUgZGF0ZSBieSAxIGRheVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRlQXJyYXk7XHJcbiAgfVxyXG4gIHNlbGVjdGVkVGltZTogYW55O1xyXG4gIGZvbGRlck5hbWU6IGFueTtcclxuICBzZWxlY3RlZFRpbWVzKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVGltZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyTmFtZSA9IHZhbDtcclxuICAgIHRoaXMuZm9sZGVyVmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy50eXBlID0gdGhpcy50eXBlXHJcbiAgICB0aGlzLmdldFJldm9wcygpO1xyXG4gIH1cclxuICBmb2xkZXJEYXRlOiBhbnk7XHJcbiAgaW1hZ2VGbG93ID0gZmFsc2U7XHJcbiAgLy8gZ2V0IFJldm9wcyBBcGlcclxuICBnZXRSdnBzTGlzdDogYW55O1xyXG4gIGdldFJ2cHNJbWFnZUxpc3Q6IGFueTtcclxuICBvYmplY3RzQXJyYXk6IGFueTtcclxuICBpbWFnZXNBcnJheURhdGE6IGFueTtcclxuICBzZWxlY3RJbmRleDogYW55ID0gMDtcclxuICBmb290ZmFsbERhdGU6IGFueTtcclxuICBsZW5ndGhWYWx1ZTogYm9vbGVhbjtcclxuICBnZXRpbWFnZXMoaW5kZXg6IGFueSwgb2JqOiBhbnkpIHtcclxuICAgIHRoaXMuc2VsZWN0SW5kZXggPSBpbmRleDtcclxuICAgIHRoaXMuZm9sZGVyRGF0ZSA9IG9iajtcclxuICAgICh0aGlzLmZvb3RmYWxsRGF0ZSA9IG9iaiksICh0aGlzLmZvbGRlclZpZXcgPSBmYWxzZSk7XHJcbiAgICB0aGlzLnNlcnZpY2U/Lmlzbm9ybWFsaXplU291cmNlXHJcbiAgICAgID8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgzMDApKVxyXG4gICAgICA/LnN1YnNjcmliZSgobm9ybWFsaXplOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLm5vcm1hbGl6ZSA9IG5vcm1hbGl6ZTtcclxuICAgICAgICBpZiAoIW5vcm1hbGl6ZSkge1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzTGlzdCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzSW1hZ2VMaXN0ID0gW107XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMuZ2V0UmV2b3BzKCk7XHJcbiAgICAgICAgICB0aGlzLmdldFRvdGFsKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubGVuZ3RoVmFsdWUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBjb3VudERhdGE6IGFueTtcclxuICBnZXRUb3RhbCgpIHtcclxuICAgIGNvbnN0IHN0b3JlSWQgPVxyXG4gICAgICB0aGlzLnN0b3JlSWRhcnJheSAmJiB0aGlzLnN0b3JlSWRhcnJheS5sZW5ndGggPiAwXHJcbiAgICAgICAgPyB0aGlzLnN0b3JlSWRhcnJheVswXVxyXG4gICAgICAgIDogbnVsbDtcclxuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLmZvbGRlckRhdGUgfHwgXCJcIjtcclxuICAgIHRoaXMucnZwc1NlcnZpY2VcclxuICAgICAgLmdldFRvdGFsVmFsKHN0b3JlSWQsIGRhdGVTdHJpbmcpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgPy5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY291bnREYXRhID0gcmVzLmRhdGE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmNvdW50RGF0YSA9IFtdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHt9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgaW1hZ2VVcmw6IGFueTtcclxuICByZXZvcHNUeXBlQ291bnQ6IGFueTtcclxuICBjdXJyZW50VGltZVJhbmdlRGF0YSA6YW55PVtdO1xyXG4gIG92ZXJhbGxBcnJheURhdGE6YW55PVtdO2FsbEZvb3RmYWxsRGF0YTphbnkgPVtdO1xyXG5nZXRSZXZvcHMoKSB7XHJcbiAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICBjb25zdCBzdG9yZUlkID1cclxuICAgIHRoaXMuc3RvcmVJZGFycmF5ICYmIHRoaXMuc3RvcmVJZGFycmF5Lmxlbmd0aCA+IDBcclxuICAgICAgPyB0aGlzLnN0b3JlSWRhcnJheVswXVxyXG4gICAgICA6IG51bGw7XHJcbiAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuZm9sZGVyRGF0ZSB8fCAnJztcclxuICBjb25zdCBncm91cEJ5S2V5ID0gJ3RpbWUnO1xyXG4gIGNvbnN0IHR5cGUgPSB0aGlzLnR5cGUgPT09J2Zvb3RmYWxsJyA/ICcnIDogdGhpcy50eXBlIHx8ICcnO1xyXG4gIGNvbnN0IHByb2Nlc3NUeXBlID0gJ2Zvb3RmYWxsJztcclxuXHJcbiAgdGhpcy5ydnBzU2VydmljZVxyXG4gICAgLmdldFJ2cHNMaXN0QXBpKHN0b3JlSWQsIGRhdGVTdHJpbmcsIGdyb3VwQnlLZXksIHR5cGUsIHByb2Nlc3NUeXBlKVxyXG4gICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzTGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMuaW1hZ2VVcmwgPSB0aGlzLnJ2cHNTZXJ2aWNlPy5mb290ZmFsbENETjtcclxuICAgICAgICAgIHRoaXMuZ2V0UnZwc0ltYWdlTGlzdCA9IHJlcz8uZGF0YT8ucmVzdWx0O1xyXG5cclxuICAgICAgICAgIC8vIFNhdmUgdGhlIGZ1bGwgZm9vdGZhbGwgZGF0YSAoZ3JvdXBlZCBieSB0aW1lUmFuZ2UpXHJcbiAgICAgICAgICB0aGlzLmFsbEZvb3RmYWxsRGF0YSA9IHJlcz8uZGF0YT8ucmVzdWx0Py5mb290ZmFsbERhdGEgfHwgW107XHJcblxyXG4gICAgICAgICAgLy8gQ3JlYXRlIHRpbWVSYW5nZSArIGNvdW50IG9iamVjdFxyXG4gICAgICAgICAgdGhpcy5vYmplY3RzQXJyYXkgPSB0aGlzLmFsbEZvb3RmYWxsRGF0YS5tYXAoKGl0ZW06IGFueSkgPT4gKHtcclxuICAgICAgICAgICAgdGltZVJhbmdlOiBpdGVtLnRpbWVSYW5nZSxcclxuICAgICAgICAgICAgY291bnQ6IGl0ZW0uZGF0YT8ubGVuZ3RoIHx8IDAsXHJcbiAgICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgICAgLy8gSWYgbm8gc2VsZWN0ZWRUaW1lIHlldCwgcGljayB0aGUgZmlyc3QgYW5kIHRyaWdnZXIgZ2V0UmV2b3BzIGFnYWluXHJcbiAgICAgICAgICBpZiAoIXRoaXMuc2VsZWN0ZWRUaW1lICYmIHRoaXMub2JqZWN0c0FycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFRpbWVzKHRoaXMub2JqZWN0c0FycmF5WzBdLnRpbWVSYW5nZSk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyBHZXQgZGF0YSBmb3IgdGhlIHNlbGVjdGVkIHRpbWVSYW5nZVxyXG4gICAgICAgICAgdGhpcy5jdXJyZW50VGltZVJhbmdlRGF0YSA9XHJcbiAgICAgICAgICAgIHRoaXMuYWxsRm9vdGZhbGxEYXRhLmZpbmQoXHJcbiAgICAgICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS50aW1lUmFuZ2UgPT09IHRoaXMuc2VsZWN0ZWRUaW1lXHJcbiAgICAgICAgICAgICk/LmRhdGEgfHwgW107XHJcblxyXG4gICAgICAgICAgLy8gQ291bnQgcmV2b3BzVHlwZXNcclxuICAgICAgICAgIGNvbnN0IHJldm9wc1R5cGVDb3VudDogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHtcclxuICAgICAgICAgICAgJ25vbi10YWdnaW5nJzogMCxcclxuICAgICAgICAgICAgZHVwbGljYXRlOiAwLFxyXG4gICAgICAgICAgICBlbXBsb3llZTogMCxcclxuICAgICAgICAgICAgaG91c2VrZWVwaW5nOiAwLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICBsZXQgdG90YWxDb3VudCA9IDA7XHJcbiAgICAgICAgICB0aGlzLm92ZXJhbGxBcnJheURhdGEgPSBbXTtcclxuXHJcbiAgICAgICAgICB0aGlzLmFsbEZvb3RmYWxsRGF0YS5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaXRlbS5kYXRhPy5mb3JFYWNoKChpbWFnZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5vdmVyYWxsQXJyYXlEYXRhLnB1c2goaW1hZ2UpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBpbWFnZS5yZXZvcHNUeXBlPy50cmltKCkgfHwgJ3Vua25vd24nO1xyXG4gICAgICAgICAgICAgIHRvdGFsQ291bnQrKztcclxuXHJcbiAgICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdub24tdGFnZ2luZycpIHJldm9wc1R5cGVDb3VudFsnbm9uLXRhZ2dpbmcnXSsrO1xyXG4gICAgICAgICAgICAgIGVsc2UgaWYgKHR5cGUgPT09ICdkdXBsaWNhdGUnKSByZXZvcHNUeXBlQ291bnRbJ2R1cGxpY2F0ZSddKys7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2VtcGxveWVlJykgcmV2b3BzVHlwZUNvdW50WydlbXBsb3llZSddKys7XHJcbiAgICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gJ2hvdXNla2VlcGluZycpIHJldm9wc1R5cGVDb3VudFsnaG91c2VrZWVwaW5nJ10rKztcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICB0aGlzLmNvdW50RGF0YSA9IHtcclxuICAgICAgICAgICAgZm9vdGZhbGxDb3VudDogdG90YWxDb3VudCxcclxuICAgICAgICAgICAgbm9uVGFnczogcmV2b3BzVHlwZUNvdW50Wydub24tdGFnZ2luZyddLFxyXG4gICAgICAgICAgICBkdXBsaWNhdGU6IHJldm9wc1R5cGVDb3VudFsnZHVwbGljYXRlJ10sXHJcbiAgICAgICAgICAgIGVtcGxveWVlOiByZXZvcHNUeXBlQ291bnRbJ2VtcGxveWVlJ10sXHJcbiAgICAgICAgICAgIGhvdXNla2VlcGluZzogcmV2b3BzVHlwZUNvdW50Wydob3VzZWtlZXBpbmcnXSxcclxuICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgLy8gQXBwbHkgdHlwZSBmaWx0ZXIgYWZ0ZXIgbG9hZGluZyB0aW1lUmFuZ2UgZGF0YVxyXG4gICAgICAgICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcclxudGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIC8vIHRoaXMubm9EYXRhID0gZmFsc2U7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIEluIGNhc2Ugb2YgZmFpbHVyZVxyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzTGlzdCA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5nZXRSdnBzSW1hZ2VMaXN0ID0gW107XHJcbiAgICAgICAgICB0aGlzLm9iamVjdHNBcnJheSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZXNBcnJheURhdGEgPSBbXTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAvLyBjb25zb2xlLmVycm9yKCdBUEkgZXJyb3I6JywgZXJyKTtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxufVxyXG5lZGl0VmFsdWUoKSB7XHJcbiAgY29uc3QgdHlwZSA9ICh0aGlzLnNlbGVjdGVkVHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICB0aGlzLnJldm9wc1R5cGVWYWx1ZSA9IGZhbHNlO1xyXG4gIGlmICh0eXBlID09PSAnZHVwbGljYXRlJykge1xyXG4gIFxyXG4gICAgLy8gU3RlcCAxOiBGaWx0ZXIgJ2R1cGxpY2F0ZScgYW5kICdub24tdGFnZ2luZycgaW1hZ2VzXHJcbiAgICB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXkgPSB0aGlzLm92ZXJhbGxBcnJheURhdGEuZmlsdGVyKChpbWc6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpbWdUeXBlID0gKGltZy5yZXZvcHNUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5zZWxlY3RJbWFnZUFycmF5Py50ZW1wbGQgPT09IGltZy50ZW1wbGQ7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgKGltZ1R5cGUgPT09ICdkdXBsaWNhdGUnIHx8IGltZ1R5cGUgPT09ICdub24tdGFnZ2luZycpICYmXHJcbiAgICAgICAgIWlzU2VsZWN0ZWQgLy8g4pyFIEV4Y2x1ZGUgY3VycmVudCBzZWxlY3RlZCBpbWFnZVxyXG4gICAgICApO1xyXG4gICAgfSk7XHJcblxyXG4gICAgLy8gU3RlcCAyOiBNYXJrIG9ubHkgZHVwbGljYXRlIGltYWdlcyBhcyBzZWxlY3RlZCBpZiBpc0NoZWNrZWQgaXMgdHJ1ZVxyXG4gICAgdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5LmZvckVhY2goKGltZzogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gKGltZy5yZXZvcHNUeXBlIHx8ICcnKS50b0xvd2VyQ2FzZSgpID09PSAnZHVwbGljYXRlJztcclxuICAgICAgY29uc3QgaXNDaGVja2VkID0gaW1nLmlzQ2hlY2tlZCA9PT0gdHJ1ZTtcclxuXHJcbiAgICAgIGltZy5zZWxlY3RlZCA9IGlzRHVwbGljYXRlICYmIGlzQ2hlY2tlZDtcclxuICAgIH0pO1xyXG4gIH0gZWxzZSB7XHJcbiAgICAvLyBOb3QgYSBkdXBsaWNhdGUg4oCUIHJlc2V0IGxpc3QgYnkgdHlwZVxyXG4gIFxyXG4gIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheSA9IHRoaXMub3ZlcmFsbEFycmF5RGF0YS5maWx0ZXIoKGltZzogYW55KSA9PiB7XHJcbiAgY29uc3QgaW1nVHlwZSA9IChpbWcucmV2b3BzVHlwZSB8fCAnJykudG9Mb3dlckNhc2UoKTtcclxuICBjb25zdCBpc1NhbWVUeXBlID0gaW1nVHlwZSA9PT0gdHlwZTtcclxuXHJcbiAgY29uc3QgaXNTYW1lQXNTZWxlY3RlZCA9IHRoaXMuc2VsZWN0SW1hZ2VBcnJheT8udGVtcGxkID09PSBpbWcudGVtcGxkO1xyXG5cclxuICAvLyDinIUgT25seSBpbmNsdWRlIHNhbWUgdHlwZSBhbmQgZXhjbHVkZSBjdXJyZW50bHkgdmlld2VkIGltYWdlXHJcbiAgcmV0dXJuIGlzU2FtZVR5cGUgJiYgIWlzU2FtZUFzU2VsZWN0ZWQ7XHJcbn0pO1xyXG4gIH1cclxufVxyXG5cclxuXHJcblxyXG4gIGJhY2tUb0Zvb3RmYWxsMSgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRSYWRpb1R5cGUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmltYWdlRmxvdyA9IGZhbHNlO1xyXG4gIH1cclxuICBzZWxlY3RJbWFnZUFycmF5OiBhbnk7XHJcbiAgcmVtYWluaW5nSW1hZ2VBcnJheTogYW55O1xyXG4gIHJldm9wc1R5cGVWYWx1ZSA9ZmFsc2U7XHJcblxyXG5cclxuaW1nRnVsbFZpZXcob2JqOiBhbnkpIHtcclxuICB0aGlzLnNlbGVjdEltYWdlQXJyYXkgPSBvYmo7XHJcbiAgaWYob2JqPy5yZXZvcHNUeXBlID09PSAnZHVwbGljYXRlJyB8fCBvYmo/LnJldm9wc1R5cGUgPT09J2VtcGxveWVlJyB8fCAgb2JqPy5yZXZvcHNUeXBlID09PSdob3VzZWtlZXBpbmcnKXtcclxudGhpcy5yZXZvcHNUeXBlVmFsdWUgPSB0cnVlO1xyXG50aGlzLnNlbGVjdGVkVHlwZSA9IG9iaj8ucmV2b3BzVHlwZTtcclxudGhpcy5vblJhZGlvQ2hhbmdlKG9iaj8ucmV2b3BzVHlwZSk7XHJcbiAgfSBlbHNle1xyXG50aGlzLnJldm9wc1R5cGVWYWx1ZSA9ZmFsc2U7XHJcbnRoaXMuc2VsZWN0ZWRUeXBlID0nJztcclxudGhpcy5zZWxlY3RlZFJhZGlvVHlwZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcbiAgdGhpcy5pbWFnZUZsb3cgPSB0cnVlO1xyXG4gIC8vIE9ubHkgaW5jbHVkZSBpbWFnZXMgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgcmV2b3BzVHlwZVxyXG4gIGNvbnN0IHNlbGVjdGVkVHlwZSA9IG9iai5yZXZvcHNUeXBlPy50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAvLyBGaWx0ZXIgb25seSBpbWFnZXMgd2l0aCB0aGUgc2FtZSB0eXBlIGZyb20gb3ZlcmFsbEFycmF5RGF0YVxyXG4gIGNvbnN0IGZpbHRlcmVkQnlUeXBlID0gdGhpcy5vdmVyYWxsQXJyYXlEYXRhLmZpbHRlcihcclxuICAgIChpbWc6IGFueSkgPT4gaW1nLnJldm9wc1R5cGU/LnRvTG93ZXJDYXNlKCkgPT09IHNlbGVjdGVkVHlwZVxyXG4gICk7XHJcblxyXG4gIC8vIEZpbmQgaW5kZXggb2YgY2xpY2tlZCBpbWFnZSBpbiB0aGUgZmlsdGVyZWQgbGlzdFxyXG4gIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSBmaWx0ZXJlZEJ5VHlwZS5maW5kSW5kZXgoXHJcbiAgICAoaW1nOiBhbnkpID0+IGltZy50ZW1wbGQgPT09IG9iai50ZW1wbGRcclxuICApO1xyXG5cclxuICAvLyBSZW1haW5pbmcgaW1hZ2VzIChleGNsdWRpbmcgY3VycmVudClcclxuICB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXkgPSBmaWx0ZXJlZEJ5VHlwZS5maWx0ZXIoXHJcbiAgICAoXzogYW55LCBpOiBudW1iZXIpID0+IGkgIT09IHRoaXMuY3VycmVudEltYWdlSW5kZXhcclxuICApO1xyXG5cclxuICAvLyBjb25zb2xlLmxvZygnVG90YWwgKHNhbWUgdHlwZSkgSW1hZ2VzOicsIGZpbHRlcmVkQnlUeXBlLmxlbmd0aCk7XHJcbiAgLy8gY29uc29sZS5sb2coJ1NlbGVjdGVkIEltYWdlOicsIHRoaXMuc2VsZWN0SW1hZ2VBcnJheSk7XHJcbiAgLy8gY29uc29sZS5sb2coJ1JlbWFpbmluZzonLCB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXkubGVuZ3RoKTtcclxufVxyXG5cclxuXHJcbmltZ1N3YXAob2JqOiBhbnkpIHtcclxuICBpZiAodGhpcy5zZWxlY3RJbWFnZUFycmF5KSB7XHJcbiAgICAvLyBGaW5kIHdoZXJlIHRoZSBuZXcgc2VsZWN0ZWQgaW1hZ2UgaXMgaW4gdGhlIGxpc3RcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5LmZpbmRJbmRleChcclxuICAgICAgKGltZzogYW55KSA9PiBpbWcudGVtcGxkID09PSBvYmoudGVtcGxkXHJcbiAgICApO1xyXG5cclxuICAgIC8vIFJlcGxhY2Ugc2VsZWN0ZWRJbWFnZUFycmF5IGJhY2sgaW50byBpdHMgb3JpZ2luYWwgcG9zaXRpb25cclxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcclxuICAgICAgdGhpcy5yZW1haW5pbmdJbWFnZUFycmF5W2luZGV4XSA9IHRoaXMuc2VsZWN0SW1hZ2VBcnJheTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIGZhbGxiYWNrIGlmIG5vdCBmb3VuZFxyXG4gICAgICB0aGlzLnJlbWFpbmluZ0ltYWdlQXJyYXkucHVzaCh0aGlzLnNlbGVjdEltYWdlQXJyYXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gVXBkYXRlIHNlbGVjdGVkIGltYWdlXHJcbiAgdGhpcy5zZWxlY3RJbWFnZUFycmF5ID0gb2JqO1xyXG5cclxuICAvLyBSZW1vdmUgc2VsZWN0ZWQgZnJvbSByZW1haW5pbmcgbGlzdFxyXG4gIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheSA9IHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheS5maWx0ZXIoXHJcbiAgICAoaW1nOiBhbnkpID0+IGltZy50ZW1wbGQgIT09IG9iai50ZW1wbGRcclxuICApO1xyXG5cclxuICB0aGlzLmltYWdlRmxvdyA9IHRydWU7XHJcbn1cclxuXHJcbiAgXHJcbiAgc2VsZWN0ZWRUeXBlOiBhbnkgPSBcIlwiOyAvLyBkZWZhdWx0IHNlbGVjdGVkXHJcbnNlbGVjdGVkUmFkaW9UeXBlOmFueTtcclxuICBvblJhZGlvQ2hhbmdlKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkRHVwbGljYXRlSW1hZ2VzTGlzdCA9W107XHJcbiAgICB0aGlzLnNlbGVjdGVkUmFkaW9UeXBlID0gdmFsO1xyXG4gICAgfVxyXG5cclxuICB0eXBlOiBhbnkgPSBcImZvb3RmYWxsXCI7XHJcbnNlbGVjdFBsYW5UcmVuZHModHlwZTogYW55KSB7XHJcbiAgdGhpcy50eXBlID0gdHlwZTtcclxuXHJcbiAgdGhpcy5hcHBseUZpbHRlcnMoKTtcclxufVxyXG5hcHBseUZpbHRlcnMoKSB7XHJcbiAgICB0aGlzLmltYWdlRmxvdyA9ZmFsc2U7XHJcbiAgLy8gY29uc29sZS5sb2coJ/Cfk4wgY3VycmVudFRpbWVSYW5nZURhdGE6JywgdGhpcy5jdXJyZW50VGltZVJhbmdlRGF0YSk7XHJcbiAgLy8gY29uc29sZS5sb2coJ/Cfk4wgQ3VycmVudCByZXZvcHNUeXBlOicsIHRoaXMudHlwZSk7XHJcblxyXG4gIGlmICh0aGlzLnR5cGU/LnRvTG93ZXJDYXNlKCkgPT09ICdmb290ZmFsbCcpIHtcclxuICAgIHRoaXMuaW1hZ2VzQXJyYXlEYXRhID0gWy4uLnRoaXMuY3VycmVudFRpbWVSYW5nZURhdGFdO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLmltYWdlc0FycmF5RGF0YSA9IHRoaXMuY3VycmVudFRpbWVSYW5nZURhdGEuZmlsdGVyKFxyXG4gICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnJldm9wc1R5cGU/LnRvTG93ZXJDYXNlKCkgPT09IHRoaXMudHlwZS50b0xvd2VyQ2FzZSgpXHJcbiAgICApO1xyXG4gIH1cclxuICBpZighdGhpcy5pbWFnZXNBcnJheURhdGE/Lmxlbmd0aCAmJiB0aGlzLmltYWdlc0FycmF5RGF0YT8ubGVuZ3RoID09PTApe1xyXG4gICAgdGhpcy5ub0RhdGEgPXRydWU7XHJcbiAgfSBlbHNle1xyXG4gICAgdGhpcy5ub0RhdGEgPWZhbHNlO1xyXG4gIH1cclxudGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4vLyBjb25zb2xlLmxvZygnaW1hZ2VzQXJyYXlEYXRhOicsIHRoaXMuaW1hZ2VzQXJyYXlEYXRhKTtcclxuLy8gY29uc29sZS5sb2coJ25vRGF0YTonLCB0aGlzLm5vRGF0YSk7XHJcbiAgLy8gY29uc29sZS5sb2coJ/Cfk4wgRmlsdGVyZWQgaW1hZ2VzQXJyYXlEYXRhOicsIHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmxlbmd0aCk7XHJcbiAgLy8gdGhpcy5ub0RhdGEgPSB0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGggPT09IDA7XHJcbn1cclxuc2VsZWN0ZWREdXBsaWNhdGVJbWFnZXNMaXN0OmFueT1bXTtcclxub25JbWFnZUNoZWNrYm94Q2hhbmdlKGltZzogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICBpZiAodHlwZSA9PT0gJ2R1cGxpY2F0ZScpIHtcclxuICAgIGlmIChpbWcuc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3QgYWxyZWFkeUV4aXN0cyA9IHRoaXMuc2VsZWN0ZWREdXBsaWNhdGVJbWFnZXNMaXN0LnNvbWUoXHJcbiAgICAgICAgKGl0ZW06YW55KSA9PiBpdGVtLnRlbXBsZCA9PT0gaW1nLnRlbXBsZFxyXG4gICAgICApO1xyXG5cclxuICAgICAgaWYgKCFhbHJlYWR5RXhpc3RzKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3QucHVzaCh7XHJcbiAgICAgICAgICAuLi5pbWcsXHJcbiAgICAgICAgICBpc0NoZWNrZWQ6IHRydWUsXHJcbiAgICAgICAgICBwYXJlbnQ6IGltZy5wYXJlbnQgfHwgbnVsbFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkRHVwbGljYXRlSW1hZ2VzTGlzdCA9IHRoaXMuc2VsZWN0ZWREdXBsaWNhdGVJbWFnZXNMaXN0LmZpbHRlcihcclxuICAgICAgICAoaXRlbTphbnkpID0+IGl0ZW0udGVtcGxkICE9PSBpbWcudGVtcGxkXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5jbGVhclZhbHVlKCl7XHJcbiAgdGhpcy5zYXZlKCdub24tdGFnZ2luZycpO1xyXG4vLyB0aGlzLnN1Ym1pdFZhbHVlKCdub24tdGFnZ2luZycpXHJcbn1cclxuY2FuY2VsKCkge1xyXG4gIC8vIDEuIENsZWFyIHNlbGVjdGVkIGR1cGxpY2F0ZSBpbWFnZXMgbGlzdFxyXG4gIHRoaXMuc2VsZWN0ZWREdXBsaWNhdGVJbWFnZXNMaXN0ID0gW107XHJcblxyXG4gIC8vIDIuIFJlc2V0IGFsbCBjaGVja2JveGVzIGFuZCByYWRpbyBidXR0b25zIGluIG92ZXJhbGwgaW1hZ2UgbGlzdFxyXG4gIHRoaXMub3ZlcmFsbEFycmF5RGF0YSA9IHRoaXMub3ZlcmFsbEFycmF5RGF0YS5tYXAoKGltZzogYW55KSA9PiAoe1xyXG4gICAgLi4uaW1nLFxyXG4gICAgaXNDaGVja2VkOiBmYWxzZSxcclxuICAgIHNlbGVjdGVkOiBmYWxzZSwgICAgLy8gYXNzdW1pbmcgJ3NlbGVjdGVkJyBpcyBjaGVja2JveCBiaW5kXHJcbiAgICBwYXJlbnQ6IG51bGwsICAgICAgIC8vIHJlc2V0IHBhcmVudCBpZiB1c2VkXHJcbiAgICAvLyBBZGQgb3RoZXIgZmxhZ3MgaGVyZSBpZiBuZWVkZWRcclxuICB9KSk7XHJcblxyXG4gIC8vIDMuIENsb3NlIGltYWdlIGZsb3cvZnVsbC12aWV3IGlmIG9wZW5cclxuICB0aGlzLmltYWdlRmxvdyA9IGZhbHNlO1xyXG5cclxuICAvLyA0LiBSZXNldCBjdXJyZW50bHkgc2VsZWN0ZWQgaW1hZ2VcclxuICB0aGlzLnNlbGVjdEltYWdlQXJyYXkgPSBudWxsO1xyXG4gIHRoaXMuY3VycmVudEltYWdlSW5kZXggPSAwO1xyXG4gIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheSA9IFtdO1xyXG5cclxuICAvLyA1LiAoT3B0aW9uYWwpIFJlc2V0IHJhZGlvIGJ1dHRvbnMg4oCUIGlmIHlvdSBoYXZlIGFueSBzcGVjaWZpYyBmbGFnXHJcbiB0aGlzLnNlbGVjdGVkUmFkaW9UeXBlID0gdW5kZWZpbmVkO1xyXG59XHJcbnBvcHVwVHlwZTphbnk7XHJcbkBWaWV3Q2hpbGQoJ3pvb21Qb3B1cCcpIHpvb21Qb3B1cDogRWxlbWVudFJlZjtcclxuc2F2ZShjYXRlZ29yeTogYW55KSB7XHJcbiAgIGNvbnN0IG1vZGFsUmVmID0gdGhpcy5tb2RhbFNlcnZpY2Uub3Blbih0aGlzLnpvb21Qb3B1cCwgeyBjZW50ZXJlZDogdHJ1ZSwgc2l6ZTogJ21kJyxcclxuICAgIGJhY2tkcm9wOiAnc3RhdGljJywgICAvLyBQcmV2ZW50IGNsb3Npbmcgb24gb3V0c2lkZSBjbGlja1xyXG4gIGtleWJvYXJkOiBmYWxzZSAgICAgICAvLyBQcmV2ZW50IGNsb3Npbmcgb24gRVNDIGtleVxyXG4gIH0pO1xyXG4gICAgdGhpcy5wb3B1cFR5cGUgPSBjYXRlZ29yeTtcclxufVxyXG5cclxuY2FuY2VsU3VibWl0KCl7XHJcbiAgICAgIHRoaXMubW9kYWxTZXJ2aWNlLmRpc21pc3NBbGwoKTtcclxuXHJcbiAgdGhpcy5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3QgPSBbXTtcclxufVxyXG4gICBzdWJtaXRWYWx1ZShjYXRlZ29yeTphbnkpe1xyXG4gIGxldCBkdXBsaWNhdGVJbWFnZXMgPSBbXTtcclxuXHJcbiAgaWYgKGNhdGVnb3J5ID09PSAnZHVwbGljYXRlJykge1xyXG4gICAgZHVwbGljYXRlSW1hZ2VzID0gdGhpcy5zZWxlY3RlZER1cGxpY2F0ZUltYWdlc0xpc3RcclxuICAgICAgLmZpbHRlcigoaXRlbTphbnkpID0+IGl0ZW0uaXNDaGVja2VkKVxyXG4gICAgICAubWFwKChpdGVtOmFueSkgPT4gKHtcclxuICAgICAgICB0ZW1wSWQ6IGl0ZW0/LnRlbXBsZCxcclxuICAgICAgICB0aW1lUmFuZ2U6IGl0ZW0/LnRpbWVSYW5nZSB8fCAnJyxcclxuICAgICAgICBlbnRyeVRpbWU6IGl0ZW0/LmVudHJ5VGltZSB8fCBpdGVtPy5lbnRyeVRtZSAgfHwgJycsXHJcbiAgICAgICAgZXhpdFRpbWU6IGl0ZW0/LmV4aXRUaW1lIHx8ICcnLFxyXG4gICAgICAgIGZpbGVQYXRoOiBpdGVtPy5maWxlUGF0aCxcclxuICAgICAgICByZXZvcHNUeXBlOiAnZHVwbGljYXRlJyxcclxuICAgICAgICBpc0NoZWNrZWQ6IHRydWVcclxuICAgICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgY29uc3QgaW1nID0gdGhpcy5zZWxlY3RJbWFnZUFycmF5O1xyXG5cclxuICBjb25zdCBvYmogPSB7XHJcbiAgICBzdG9yZUlkOiAgdGhpcy5zdG9yZUlkYXJyYXkgJiYgdGhpcy5zdG9yZUlkYXJyYXkubGVuZ3RoID4gMFxyXG4gICAgICAgID8gdGhpcy5zdG9yZUlkYXJyYXlbMF1cclxuICAgICAgICA6IG51bGwsXHJcbiAgICBkYXRlU3RyaW5nOiB0aGlzLmZvbGRlckRhdGUgfHwgXCJcIixcclxuICAgIHRlbXBJZDogaW1nPy50ZW1wbGQgfHwgMCwgLy8g4pyFIG1hcCBjb3JyZWN0bHlcclxuICAgIHJldm9wc1R5cGU6IGNhdGVnb3J5LFxyXG4gICAgdGltZVJhbmdlOiBpbWc/LnRpbWVSYW5nZSB8fCAnJyxcclxuICAgIGlzQ2hlY2tlZDogdHJ1ZSxcclxuICAgIGR1cGxpY2F0ZUltYWdlOiBkdXBsaWNhdGVJbWFnZXMsXHJcbiAgICBwcm9jZXNzVHlwZTogaW1nPy5wcm9jZXNzVHlwZSB8fCAnZm9vdGZhbGwnLFxyXG4gICAgZW50cnlUaW1lOiBpbWc/LmVudHJ5VGltZSB8fCBpbWc/LmVudHJ5VG1lIHx8ICcnLCAvLyDinIUgaGFuZGxlIHR5cG9cclxuICAgIGV4aXRUaW1lOiBpbWc/LmV4aXRUaW1lIHx8ICcnLFxyXG4gICAgZmlsZVBhdGg6IGltZz8uZmlsZVBhdGggfHwgJydcclxuICB9O1xyXG5cclxuICAvLyBTdGVwIDQ6IFN1Ym1pdCB0aGUgcGF5bG9hZFxyXG4gIHRoaXMucnZwc1NlcnZpY2UuZ2V0UnZwc1RhZyhvYmopXHJcbiAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXM/Lm1lc3NhZ2UgfHwgJ1RpY2tldCB1cGRhdGVkIHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgdGhpcy5pbWFnZUZsb3cgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5nZXRSZXZvcHMoKTtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsU3VibWl0KCk7IFxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJhZGlvVHlwZSA9dW5kZWZpbmVkOyAgICBcclxuICAgICAgICAgICB0aGlzLnNlbGVjdGVkVHlwZSA9ICcnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0ZhaWxlZCB0byB1cGRhdGUgdGlja2V0Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgbXNnID0gZXJyLmVycm9yLmVycm9yIHx8IGVyci5lcnJvciB8fCBlcnI/LmVycm9yPy5tZXNzYWdlIHx8IGVyci5tZXNzYWdlIHx8ICdVbmtub3duIGVycm9yJztcclxuICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoJ0Vycm9yIHVwZGF0aW5nIHRpY2tldDogJyArIG1zZyk7XHJcbiAgICAgICBcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG59XHJcblxyXG4gIG5vRGF0YU1lc3NhZ2VzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xyXG4gIGR1cGxpY2F0ZTogJ05vIGR1cGxpY2F0ZXMgZm91bmQnLFxyXG4gIGVtcGxveWVlOiAnTm8gRW1wbG95ZWUvU3RhZmYgZm91bmQnLFxyXG4gIGhvdXNla2VlcGluZzogJ05vIGhvdXNlS2VlcGluZyBmb3VuZCcsXHJcbiAgJ25vbi10YWdnaW5nJzogJ05vIG5vbi10YWdnaW5nIGZvdW5kJ1xyXG59O1xyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuXHJcblxyXG5cclxuICBjdXJyZW50SW1hZ2VJbmRleDogbnVtYmVyID0gMDtcclxuICBnZXQgY2FuTmF2aWdhdGVMZWZ0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEltYWdlSW5kZXggPiAwO1xyXG4gIH1cclxuICBcclxuICBnZXQgY2FuTmF2aWdhdGVSaWdodCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRJbWFnZUluZGV4IDwgdGhpcy5pbWFnZXNBcnJheURhdGEubGVuZ3RoIC0gMTtcclxuICB9XHJcbiAgXHJcbiAgbmF2aWdhdGVJbWFnZShkaXJlY3Rpb246IFwibGVmdFwiIHwgXCJyaWdodFwiKSB7XHJcbiAgICBjb25zdCBsZW5ndGggPSB0aGlzLmltYWdlc0FycmF5RGF0YS5sZW5ndGg7XHJcbiAgXHJcbiAgICBpZiAoZGlyZWN0aW9uID09PSBcImxlZnRcIiAmJiB0aGlzLmNhbk5hdmlnYXRlTGVmdCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4LS07XHJcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gXCJyaWdodFwiICYmIHRoaXMuY2FuTmF2aWdhdGVSaWdodCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRJbWFnZUluZGV4Kys7XHJcbiAgICB9XHJcbiAgXHJcbiAgICAvLyBVcGRhdGUgc2VsZWN0ZWQgaW1hZ2VcclxuICAgIHRoaXMuc2VsZWN0SW1hZ2VBcnJheSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhW3RoaXMuY3VycmVudEltYWdlSW5kZXhdO1xyXG4gIFxyXG4gICAgLy8gVXBkYXRlIHJlbWFpbmluZyBpbWFnZXNcclxuICAgIHRoaXMucmVtYWluaW5nSW1hZ2VBcnJheSA9IHRoaXMuaW1hZ2VzQXJyYXlEYXRhLmZpbHRlcihcclxuICAgICAgKF86IGFueSwgaTogYW55KSA9PiBpICE9PSB0aGlzLmN1cnJlbnRJbWFnZUluZGV4XHJcbiAgICApO1xyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJjYXJkIG10LTNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBtdC0zIHB4LTAgYm9yZGVyLWJvdHRvbS0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImN1c3RvbS1hY2NvcmRpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1haW5oZWFkaW5nIHBiLTAgY3VzdG9tLWFjY29yZGlvbi1oZWFkZXJcIiAoY2xpY2spPVwidG9nZ2xlQWNjb3JkaW9uKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltZy1kaXJlY1wiPkltYWdlIERpcmVjdG9yeTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGl2aWRlclwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhY2NvcmRpb24tYXJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRG93biBhcnJvdyBmb3IgY29sbGFwc2VkIHN0YXRlLCB1cCBhcnJvdyBmb3IgZXhwYW5kZWQgc3RhdGUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnICpuZ0lmPVwiIWlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDFMNSA1TDkgMVwiIHN0cm9rZT1cIiMwNzE0MzdcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyAqbmdJZj1cImlzQWNjb3JkaW9uRXhwYW5kZWRcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyNlwiIGhlaWdodD1cIjZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTYgNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xIDVMNSAxTDkgNVwiIHN0cm9rZT1cIiMxYjg0ZmZcIiBzdHJva2Utd2lkdGg9XCIxXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPHNlY3Rpb24gKm5nSWY9XCJpc0FjY29yZGlvbkV4cGFuZGVkXCI+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmb2xkZXJWaWV3XCIgY2xhc3M9XCJjYXJkLWJvZHkgcHgtMFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2Nyb2xsLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMSBtdC01IHRleHQtY2VudGVyXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBkYXRlQXJyYXk7bGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXRpbWFnZXMoaSxvYmopXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSA9PT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjE1NDI5N1wiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiIzMzQjVGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzkuODIxNiAzNi4xNjY3QzM5LjgyMTYgMzYuNzg1NSAzOS41NzU4IDM3LjM3OSAzOS4xMzgyIDM3LjgxNjZDMzguNzAwNiAzOC4yNTQyIDM4LjEwNzEgMzguNSAzNy40ODgzIDM4LjVIMTguODIxNkMxOC4yMDI4IDM4LjUgMTcuNjA5MyAzOC4yNTQyIDE3LjE3MTcgMzcuODE2NkMxNi43MzQxIDM3LjM3OSAxNi40ODgzIDM2Ljc4NTUgMTYuNDg4MyAzNi4xNjY3VjE5LjgzMzNDMTYuNDg4MyAxOS4yMTQ1IDE2LjczNDEgMTguNjIxIDE3LjE3MTcgMTguMTgzNEMxNy42MDkzIDE3Ljc0NTggMTguMjAyOCAxNy41IDE4LjgyMTYgMTcuNUgyNC42NTQ5TDI2Ljk4ODMgMjFIMzcuNDg4M0MzOC4xMDcxIDIxIDM4LjcwMDYgMjEuMjQ1OCAzOS4xMzgyIDIxLjY4MzRDMzkuNTc1OCAyMi4xMjEgMzkuODIxNiAyMi43MTQ1IDM5LjgyMTYgMjMuMzMzM1YzNi4xNjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwid2hpdGVcIiBzdHJva2Utd2lkdGg9XCIyLjMzMzMzXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj57e29iaiB8IGRhdGU6J2RkIE1NTSd9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaSAhPT0gc2VsZWN0SW5kZXg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgd2lkdGg9XCI1N1wiIGhlaWdodD1cIjU2XCIgdmlld0JveD1cIjAgMCA1NyA1NlwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIwLjQ2Mjg5MVwiIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHJ4PVwiMTJcIiBmaWxsPVwiI0VBRjhGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNDAuMTMwMiAzNi4xNjY3QzQwLjEzMDIgMzYuNzg1NSAzOS44ODQ0IDM3LjM3OSAzOS40NDY4IDM3LjgxNjZDMzkuMDA5MiAzOC4yNTQyIDM4LjQxNTcgMzguNSAzNy43OTY5IDM4LjVIMTkuMTMwMkMxOC41MTE0IDM4LjUgMTcuOTE3OSAzOC4yNTQyIDE3LjQ4MDMgMzcuODE2NkMxNy4wNDI3IDM3LjM3OSAxNi43OTY5IDM2Ljc4NTUgMTYuNzk2OSAzNi4xNjY3VjE5LjgzMzNDMTYuNzk2OSAxOS4yMTQ1IDE3LjA0MjcgMTguNjIxIDE3LjQ4MDMgMTguMTgzNEMxNy45MTc5IDE3Ljc0NTggMTguNTExNCAxNy41IDE5LjEzMDIgMTcuNUgyNC45NjM1TDI3LjI5NjkgMjFIMzcuNzk2OUMzOC40MTU3IDIxIDM5LjAwOTIgMjEuMjQ1OCAzOS40NDY4IDIxLjY4MzRDMzkuODg0NCAyMi4xMjEgNDAuMTMwMiAyMi43MTQ1IDQwLjEzMDIgMjMuMzMzM1YzNi4xNjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzAwQTNGRlwiIHN0cm9rZS13aWR0aD1cIjIuMzMzMzNcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtMlwiPnt7b2JqIHwgZGF0ZTonZGQgTU1NJ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZm9sZGVyVmlld1wiIGNsYXNzPVwibmF2LWdyb3VwIGJnLXdoaXRlIGJvcmRlci0xIGJ0bi1ncm91cCBteC01XCI+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTYgcHktM1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnZm9vdGZhbGwnID8gJ2FjdGl2ZVBsYW5CdG4nIDogJ2luYWN0aXZlUGxhbkJ0bidcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBsYW5UcmVuZHMoJ2Zvb3RmYWxsJylcIj5cclxuICAgICAgICAgICAgICAgIFRvdGFsIGZvb3RmYWxsXHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdmb290ZmFsbCcgPyAnYWN0aXZlUGxhbkJ0biBiYWRnZSBiYWRnZS1hY3RpdmUnIDogJ2luYWN0aXZlUGxhbkJ0biBiYWRnZSBiYWRnZS1saWdodC1kZWZhdWx0J1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGNvdW50RGF0YT8uZm9vdGZhbGxDb3VudCB8fCAwIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBweC02IHB5LTNcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ25vbi10YWdnaW5nJyA/ICdhY3RpdmVQbGFuQnRuJyA6ICdpbmFjdGl2ZVBsYW5CdG4nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQbGFuVHJlbmRzKCdub24tdGFnZ2luZycpXCI+XHJcbiAgICAgICAgICAgICAgICBOb24tdGFnc1xyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnbm9uLXRhZ2dpbmcnID8gJ2FjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtYWN0aXZlJyA6ICdpbmFjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudERhdGE/Lm5vblRhZ3MgfHwgMCB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgcHgtNiBweS0zXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdkdXBsaWNhdGUnID8gJ2FjdGl2ZVBsYW5CdG4nIDogJ2luYWN0aXZlUGxhbkJ0bidcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdFBsYW5UcmVuZHMoJ2R1cGxpY2F0ZScpXCI+XHJcbiAgICAgICAgICAgICAgICBEdXBsaWNhdGVkXHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdkdXBsaWNhdGUnID8gJ2FjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtYWN0aXZlJyA6ICdpbmFjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudERhdGE/LmR1cGxpY2F0ZSB8fCAwIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBweC02IHB5LTNcIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwidHlwZSA9PT0gJ2VtcGxveWVlJyA/ICdhY3RpdmVQbGFuQnRuJyA6ICdpbmFjdGl2ZVBsYW5CdG4nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQbGFuVHJlbmRzKCdlbXBsb3llZScpXCI+XHJcbiAgICAgICAgICAgICAgICBFbXBsb3llZS9TdGFmZlxyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnZW1wbG95ZWUnID8gJ2FjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtYWN0aXZlJyA6ICdpbmFjdGl2ZVBsYW5CdG4gYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCdcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb3VudERhdGE/LmVtcGxveWVlIHx8IDAgfX1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHB4LTYgcHktM1wiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnaG91c2VrZWVwaW5nJyA/ICdhY3RpdmVQbGFuQnRuJyA6ICdpbmFjdGl2ZVBsYW5CdG4nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQbGFuVHJlbmRzKCdob3VzZWtlZXBpbmcnKVwiPlxyXG4gICAgICAgICAgICAgICAgSG91c2VrZWVwaW5nXHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInR5cGUgPT09ICdob3VzZWtlZXBpbmcnID8gJ2JhZGdlIGJhZGdlLWFjdGl2ZSBhY3RpdmVQbGFuQnRuJyA6ICcgYmFkZ2UgYmFkZ2UtbGlnaHQtZGVmYXVsdCBpbmFjdGl2ZVBsYW5CdG4nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgY291bnREYXRhPy5ob3VzZWtlZXBpbmcgfHwgMCB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCIhZm9sZGVyVmlld1wiIGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiIWltYWdlRmxvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1zaHJpbmstMCBtdC0zIGp1c3RpZnktY29udGVudC1zdGFydCBhbGlnbi1pdGVtcy1jZW50ZXIgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImJhY2tuYXZcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cImJhY2tUb0Zvb3RmYWxsKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjIuNVwiIHk9XCIxLjVcIiB3aWR0aD1cIjM1XCIgaGVpZ2h0PVwiMzVcIiByeD1cIjcuNVwiIHN0cm9rZT1cIiNEMEQ1RERcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZpbHRlciBpZD1cImZpbHRlcjBfZF8yNTg1XzcwMzZcIiB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCBpbj1cIlNvdXJjZUFscGhhXCIgdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVCbGVuZCBtb2RlPVwibm9ybWFsXCIgaW4yPVwiQmFja2dyb3VuZEltYWdlRml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJzaGFwZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1nLWRpcmVjIG1zLTIgbXQtMVwiPnt7Zm9sZGVyRGF0ZSB8IGRhdGU6J2RkIE1NTSwgeXl5eSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTIgbWItMiB3LTEwMCBvdmVyZmxvdy14IHB4LTBcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdGV4dC1ub3dyYXBcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIG9iamVjdHNBcnJheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IG5hdi1zdHJldGNoIG5hdi1saW5lLXRhYnMxIG5hdi1saW5lLXRhYnMgYm9yZGVyLXRyYW5zcGFyZW50IGZsZXgtbm93cmFwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW0gY3Vyc29yLXBvaW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNlbGVjdGVkVGltZXMob2JqLnRpbWVSYW5nZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0ZWRUaW1lID09PSBvYmo/LnRpbWVSYW5nZSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtbGluayBjdXJzb3ItcG9pbnRlciBuby1ib3JkZXIgbXgtMyBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e29iaj8udGltZVJhbmdlfX08c3BhbiBjbGFzcz1cIm14LTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy50aW1lUmFuZ2UgPyAnYmFkZ2UtbnVtLXByaW1hcnknIDonYmFkZ2UtbnVtLW11dGVkJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9iaj8uY291bnQgPyBvYmo/LmNvdW50IDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW4gXCIgc3R5bGU9XCJtYXJnaW46IDY0cHg7Ym9yZGVyLXJhZGl1czogOHB4O1xyXG5iYWNrZ3JvdW5kOiB2YXIoLS1HcmF5LTUwLCAjRjlGQUZCKTtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiOTRcIiBoZWlnaHQ9XCI5NFwiIHZpZXdCb3g9XCIwIDAgOTQgOTRcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3QgeD1cIjdcIiB5PVwiN1wiIHdpZHRoPVwiODBcIiBoZWlnaHQ9XCI4MFwiIHJ4PVwiNDBcIiBmaWxsPVwiI0RBRjFGRlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3XCIgeT1cIjdcIiB3aWR0aD1cIjgwXCIgaGVpZ2h0PVwiODBcIiByeD1cIjQwXCIgc3Ryb2tlPVwiI0VBRjhGRlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIxMy4zMzMzXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMzUuMzMyIDUxLjk5OTlIMzMuNjY1NEMzMi43ODEzIDUxLjk5OTkgMzEuOTMzNSA1MS42NDg3IDMxLjMwODMgNTEuMDIzNkMzMC42ODMyIDUwLjM5ODUgMzAuMzMyIDQ5LjU1MDYgMzAuMzMyIDQ4LjY2NjZWMzMuNjY2NkMzMC4zMzIgMzIuNzgyNSAzMC42ODMyIDMxLjkzNDcgMzEuMzA4MyAzMS4zMDk2QzMxLjkzMzUgMzAuNjg0NCAzMi43ODEzIDMwLjMzMzMgMzMuNjY1NCAzMC4zMzMzSDQ4LjY2NTRDNDkuNTQ5NCAzMC4zMzMzIDUwLjM5NzMgMzAuNjg0NCA1MS4wMjI0IDMxLjMwOTZDNTEuNjQ3NSAzMS45MzQ3IDUxLjk5ODcgMzIuNzgyNSA1MS45OTg3IDMzLjY2NjZWMzUuMzMzM000NS4zMzIgNDEuOTk5OUg2MC4zMzJDNjIuMTczIDQxLjk5OTkgNjMuNjY1NCA0My40OTIzIDYzLjY2NTQgNDUuMzMzM1Y2MC4zMzMzQzYzLjY2NTQgNjIuMTc0MiA2Mi4xNzMgNjMuNjY2NiA2MC4zMzIgNjMuNjY2Nkg0NS4zMzJDNDMuNDkxMSA2My42NjY2IDQxLjk5ODcgNjIuMTc0MiA0MS45OTg3IDYwLjMzMzNWNDUuMzMzM0M0MS45OTg3IDQzLjQ5MjMgNDMuNDkxMSA0MS45OTk5IDQ1LjMzMiA0MS45OTk5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZSBteS0zXCI+XHJcbiAge3sgbm9EYXRhTWVzc2FnZXNbdHlwZT8udG9Mb3dlckNhc2UoKV0gfHwgJ05vIGRhdGEgZm91bmQnIH19XHJcbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTAgaW1nLXRyYWZmaWMgY29udGFpbiBoaWdoLTQwMHB4IHNjcm9sbC15XCIgKm5nSWY9XCIhbm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMyBib3JkZXItZ3JheSBteC0yIHAtMiBtdC01XCIgKm5nRm9yPVwibGV0IG9iaiBvZiBpbWFnZXNBcnJheURhdGFcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyBjdXJzb3ItcG9pbnRlclwiIFtzcmNdPVwiaW1hZ2VVcmwgKyBvYmo/LmZpbGVQYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib2JqLmZpbGVQYXRoID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWdGdWxsVmlldyhvYmopXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFvYmo/LmZpbGVQYXRoXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYi01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGlkPVwiR3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEuNSAxNi4zMjI5SDUuMjZDNS42MzI3MyAxNi4zMjU1IDUuOTk4NzcgMTYuMjIzOSA2LjMxNjgyIDE2LjAyOTVDNi42MzQ4NyAxNS44MzUyIDYuODkyMjggMTUuNTU1OCA3LjA2IDE1LjIyMjlMOC41IDEyLjMyMjlNMS41IDE4LjMyMjlWMTQuMzIyOU0xNy41IDYuODIyOTFMMTMuNSAxNC44MjI5TDMuMTEgOS42MjI5MUMyLjQyMDMzIDkuMjc1NTMgMS44OTYzNSA4LjY2OTEgMS42NTI3MiA3LjkzNjMyQzEuNDA5MDkgNy4yMDM1NCAxLjQ2NTY0IDYuNDA0MSAxLjgxIDUuNzEyOTFMMy4xOSAyLjkyMjkxQzMuMzYyIDIuNTgwMTQgMy41OTk4NCAyLjI3NDYgMy44ODk5NCAyLjAyMzc1QzQuMTgwMDMgMS43NzI5IDQuNTE2NyAxLjU4MTY1IDQuODgwNzIgMS40NjA5M0M1LjI0NDc0IDEuMzQwMjEgNS42Mjg5NyAxLjI5MjM5IDYuMDExNDcgMS4zMjAxOEM2LjM5Mzk4IDEuMzQ3OTcgNi43NjcyNiAxLjQ1MDg0IDcuMTEgMS42MjI5MUwxNy41IDYuODIyOTFaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGVyIG1iLTUgdGV4dC1jZW50ZXJcIj5QcmV2aWV3IG5vdCBhdmFpbGFibGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHktMiBpbWctZG9jLXRpbWVcIj5UYW5nbyBJRCA6IHt7b2JqPy50ZW1wbGR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLWRvYy12YWx1ZVwiPkVudHJ5IFRpbWUgOiB7e29iaj8uZW50cnlUbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSB0ZXh0LWVuZCBweS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlID09PSdub24tdGFnZ2luZydcIiBuZ2JUb29sdGlwPVwiWWV0IHRvIHRhZyB0aGUgY3VzdG9tZXJcIiBwbGFjZW1lbnQ9XCJ0b3BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTlcIiBoZWlnaHQ9XCIxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxOSAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAyMzQ0IDUuNjI1SDYuMDMwOTRNMTYuMjE1OSAxMC40MzI1TDEwLjgzODQgMTUuODFDMTAuNjk5MSAxNS45NDk1IDEwLjUzMzcgMTYuMDYwMSAxMC4zNTE2IDE2LjEzNTZDMTAuMTY5NSAxNi4yMTExIDkuOTc0MzEgMTYuMjQ5OSA5Ljc3NzE5IDE2LjI0OTlDOS41ODAwNiAxNi4yNDk5IDkuMzg0ODcgMTYuMjExMSA5LjIwMjc4IDE2LjEzNTZDOS4wMjA2OCAxNi4wNjAxIDguODU1MjUgMTUuOTQ5NSA4LjcxNTk0IDE1LjgxTDIuMjczNDQgOS4zNzVWMS44NzVIOS43NzM0NEwxNi4yMTU5IDguMzE3NUMxNi40OTUzIDguNTk4NTQgMTYuNjUyMSA4Ljk3ODcyIDE2LjY1MjEgOS4zNzVDMTYuNjUyMSA5Ljc3MTI4IDE2LjQ5NTMgMTAuMTUxNSAxNi4yMTU5IDEwLjQzMjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlID09PSdkdXBsaWNhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00LjE2Nzk3IDEzLjE4NTlIMy4zMzQ2NEMyLjg5MjYxIDEzLjE4NTkgMi40Njg2OCAxMy4wMTAzIDIuMTU2MTIgMTIuNjk3N0MxLjg0MzU2IDEyLjM4NTIgMS42Njc5NyAxMS45NjEyIDEuNjY3OTcgMTEuNTE5MlY0LjAxOTIxQzEuNjY3OTcgMy41NzcxOCAxLjg0MzU2IDMuMTUzMjYgMi4xNTYxMiAyLjg0MDY5QzIuNDY4NjggMi41MjgxMyAyLjg5MjYxIDIuMzUyNTQgMy4zMzQ2NCAyLjM1MjU0SDEwLjgzNDZDMTEuMjc2NyAyLjM1MjU0IDExLjcwMDYgMi41MjgxMyAxMi4wMTMxIDIuODQwNjlDMTIuMzI1NyAzLjE1MzI2IDEyLjUwMTMgMy41NzcxOCAxMi41MDEzIDQuMDE5MjFWNC44NTI1NE05LjE2Nzk3IDguMTg1ODdIMTYuNjY4QzE3LjU4ODQgOC4xODU4NyAxOC4zMzQ2IDguOTMyMDYgMTguMzM0NiA5Ljg1MjU0VjE3LjM1MjVDMTguMzM0NiAxOC4yNzMgMTcuNTg4NCAxOS4wMTkyIDE2LjY2OCAxOS4wMTkySDkuMTY3OTdDOC4yNDc0OSAxOS4wMTkyIDcuNTAxMyAxOC4yNzMgNy41MDEzIDE3LjM1MjVWOS44NTI1NEM3LjUwMTMgOC45MzIwNiA4LjI0NzQ5IDguMTg1ODcgOS4xNjc5NyA4LjE4NTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJvYmo/LnJldm9wc1R5cGUgPT09J2VtcGxveWVlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzOSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjU0IDE4LjE4NlYxNi41MTk0QzE0LjE2NTQgMTUuNjM1MyAxMy44MTQyIDE0Ljc4NzUgMTMuMTg5MSAxNC4xNjIzQzEyLjU2MzkgMTMuNTM3MiAxMS43MTYxIDEzLjE4NiAxMC44MzIgMTMuMTg2SDQuMTY1MzZDMy4yODEzMSAxMy4xODYgMi40MzM0NiAxMy41MzcyIDEuODA4MzQgMTQuMTYyM0MxLjE4MzIyIDE0Ljc4NzUgMC44MzIwMzEgMTUuNjM1MyAwLjgzMjAzMSAxNi41MTk0VjE4LjE4Nk0xOS4xNjU0IDE4LjE4NlYxNi41MTk0QzE5LjE2NDggMTUuNzgwOCAxOC45MTkgMTUuMDYzMyAxOC40NjY1IDE0LjQ3OTZDMTguMDE0IDEzLjg5NTkgMTcuMzgwNSAxMy40NzkgMTYuNjY1NCAxMy4yOTQ0TTEzLjMzMiAzLjI5NDM3QzE0LjA0OSAzLjQ3Nzk1IDE0LjY4NDYgMy44OTQ5NSAxNS4xMzg0IDQuNDc5NjNDMTUuNTkyMiA1LjA2NDMgMTUuODM4NiA1Ljc4MzM5IDE1LjgzODYgNi41MjM1NEMxNS44Mzg2IDcuMjYzNjggMTUuNTkyMiA3Ljk4Mjc3IDE1LjEzODQgOC41Njc0NEMxNC42ODQ2IDkuMTUyMTIgMTQuMDQ5IDkuNTY5MTIgMTMuMzMyIDkuNzUyN00xMC44MzIgNi41MTkzN0MxMC44MzIgOC4zNjAzMiA5LjMzOTY1IDkuODUyNyA3LjQ5ODcgOS44NTI3QzUuNjU3NzUgOS44NTI3IDQuMTY1MzYgOC4zNjAzMiA0LjE2NTM2IDYuNTE5MzdDNC4xNjUzNiA0LjY3ODQyIDUuNjU3NzUgMy4xODYwNCA3LjQ5ODcgMy4xODYwNEM5LjMzOTY1IDMuMTg2MDQgMTAuODMyIDQuNjc4NDIgMTAuODMyIDYuNTE5MzdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2MzlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSA9PT0naG91c2VrZWVwaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIxIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMDEyXzk0NjQzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4yNjIxOSAxLjM2NzIyQzEwLjE3NzcgMC40NTg5NzQgMTEuNjYyIDAuNDU4OTc0IDEyLjU3NzYgMS4zNjcyMkwyMC4zMTMzIDkuMDQxNTNDMjEuMjI4NyA5Ljk0OTggMjEuMjI4NyAxMS40MjIzIDIwLjMxMzMgMTIuMzMwNkwxMi41Nzc2IDIwLjAwNDlDMTEuNjYyIDIwLjkxMzEgMTAuMTc3NyAyMC45MTMxIDkuMjYyMTkgMjAuMDA0OUw3LjA1MTY2IDE3LjgxMTlMNS4wMjUzOCAxOS44MjIxQzQuMTA5ODcgMjAuNzMwMyAyLjYyNTUzIDIwLjczMDMgMS43MTAwMiAxOS44MjIxQzAuNzk0NTEgMTguOTEzOSAwLjc5NDUxIDE3LjQ0MTMgMS43MTAwMiAxNi41MzMxTDMuNzM2MyAxNC41MjI5TDEuNTI2NDggMTIuMzMwNkMwLjYxMDk2NiAxMS40MjIzIDAuNjEwOTY2IDkuOTQ5OCAxLjUyNjQ4IDkuMDQxNTNMOS4yNjIxOSAxLjM2NzIyWk0xMS40NzI0IDIuNDYzNTdDMTEuMTY3MiAyLjE2MDgyIDEwLjY3MjQgMi4xNjA4MiAxMC4zNjcyIDIuNDYzNTdMNC44NDE0NSA3Ljk0NTU2TDEzLjY4MjMgMTYuNzE2M0wxOS4yMDgxIDExLjIzNDJDMTkuNTEzMyAxMC45MzE1IDE5LjUxMzMgMTAuNDQwNiAxOS4yMDgxIDEwLjEzNzlMMTUuMzM5OSA2LjMwMDMyTDE0LjA1MDUgNy41Nzk0QzEzLjc0NTMgNy44ODIxNCAxMy4yNTA2IDcuODgyMTQgMTIuOTQ1NSA3LjU3OTRDMTIuNjQwMyA3LjI3NjY0IDEyLjY0MDMgNi43ODU3OSAxMi45NDU1IDYuNDgzMDVMMTQuMjM0NyA1LjIwMzk3TDEzLjEyOTkgNC4xMDc4Nkw5Ljk5ODcyIDcuMjE0MThDOS42OTM1NCA3LjUxNjkyIDkuMTk4NzMgNy41MTY5MiA4Ljg5MzU2IDcuMjE0MThDOC41ODgzOCA2LjkxMTQzIDguNTg4MzggNi40MjA1OCA4Ljg5MzU2IDYuMTE3ODNMMTIuMDI0NyAzLjAxMTUxTDExLjQ3MjQgMi40NjM1N1pNMTIuNTc3MSAxNy44MTI1TDMuNzM2MzMgOS4wNDE5MUwyLjYzMTYgMTAuMTM3OUMyLjMyNjQyIDEwLjQ0MDYgMi4zMjY0MiAxMC45MzE1IDIuNjMxNiAxMS4yMzQyTDEwLjM2NzIgMTguOTA4NUMxMC42NzI0IDE5LjIxMTMgMTEuMTY3MiAxOS4yMTEzIDExLjQ3MjQgMTguOTA4NUwxMi41NzcxIDE3LjgxMjVaTTQuODQxMzIgMTUuNjE5MkwyLjgxNTE0IDE3LjYyOTRDMi41MDk5NyAxNy45MzIxIDIuNTA5OTcgMTguNDIzIDIuODE1MTQgMTguNzI1OEMzLjEyMDMxIDE5LjAyODUgMy42MTUwOSAxOS4wMjg1IDMuOTIwMjYgMTguNzI1OEw1Ljk0NjQ0IDE2LjcxNTZMNC44NDEzMiAxNS42MTkyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM0NzU0NjdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjAxMl85NDY0M1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNjg2MDM1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcblxyXG4gICAgICAgICAgICA8IS0tIGZ1bGwgaW1hZ2UgVmlldyAtLT5cclxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJpbWFnZUZsb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtc2hyaW5rLTAgbXQtMyBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9Gb290ZmFsbDEoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIiB2aWV3Qm94PVwiMCAwIDQwIDQwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBmaWx0ZXI9XCJ1cmwoI2ZpbHRlcjBfZF8yNTg1XzcwMzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjUuODMyNyAxOUgxNC4xNjZNMTQuMTY2IDE5TDE5Ljk5OTMgMjQuODMzNE0xNC4xNjYgMTlMMTkuOTk5MyAxMy4xNjY3XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyVW5pdHM9XCJ1c2VyU3BhY2VPblVzZVwiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz1cInNSR0JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMFwiIHJlc3VsdD1cImhhcmRBbHBoYVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9maWx0ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbWctZGlyZWMgbXMtMiBtdC0xXCI+e3tmb2xkZXJEYXRlIHwgZGF0ZTonZGQgTU1NLCB5eXl5J319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMiBtYi0yIHctMTAwIG92ZXJmbG93LXggcHgtMFwiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29sIHRleHQtbm93cmFwXCIgKm5nRm9yPVwibGV0IG9iaiBvZiBvYmplY3RzQXJyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cIm5hdiBuYXYtc3RyZXRjaCBuYXYtbGluZS10YWJzMSBuYXYtbGluZS10YWJzIGJvcmRlci10cmFuc3BhcmVudCBmbGV4LW5vd3JhcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtIGN1cnNvci1wb2ludGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIChjbGljayk9XCJzZWxlY3RlZFRpbWVzKG9iai50aW1lUmFuZ2UpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdGVkVGltZSA9PT0gb2JqPy50aW1lUmFuZ2UgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibmF2LWxpbmsgY3Vyc29yLXBvaW50ZXIgbm8tYm9yZGVyIG14LTMgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tvYmo/LnRpbWVSYW5nZX19PHNwYW4gY2xhc3M9XCJteC0yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJzZWxlY3RlZFRpbWUgPT09IG9iaj8udGltZVJhbmdlID8gJ2JhZGdlLW51bS1wcmltYXJ5JyA6J2JhZGdlLW51bS1tdXRlZCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBvYmo/LmNvdW50ID8gb2JqPy5jb3VudCA6IDAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0wIGJvcmRlci1ncmF5IGltZy10cmFmZmljXCIgKm5nSWY9XCIhbm9EYXRhICYmICFsb2FkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNiBwLTIgIG1iLTIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlIGJvcmRlci1ncmF5IHAtMiBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gKm5nSWY9XCJjYW5OYXZpZ2F0ZUxlZnRcIiAoY2xpY2spPVwibmF2aWdhdGVJbWFnZSgnbGVmdCcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IHBvc2l0aW9uLWFic29sdXRlIHN0YXJ0LTAgdG9wLTUwIHotaW5kZXgtMTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4peAXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIE1haW4gSW1hZ2UgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgY3Vyc29yLXBvaW50ZXIgaC0zNTBweFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiaW1hZ2VVcmwgKyBzZWxlY3RJbWFnZUFycmF5Py5maWxlUGF0aFwiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiAqbmdJZj1cImNhbk5hdmlnYXRlUmlnaHRcIiAoY2xpY2spPVwibmF2aWdhdGVJbWFnZSgncmlnaHQnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBwb3NpdGlvbi1hYnNvbHV0ZSBlbmQtMCB0b3AtNTAgei1pbmRleC0xMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDilrZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gUmlnaHQgYXJyb3cgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMiBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtN1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInB5LTIgaW1nLWRvYy10aW1lXCI+VGFuZ28gSUQgOiB7e3NlbGVjdEltYWdlQXJyYXk/LnRlbXBsZH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLWRvYy12YWx1ZVwiPkVudHJ5IFRpbWUgOiB7e3NlbGVjdEltYWdlQXJyYXk/LmVudHJ5VG1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSB0ZXh0LWVuZCBweS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0SW1hZ2VBcnJheT8ucmV2b3BzVHlwZSA9PT0nbm9uLXRhZ2dpbmcnXCIgbmdiVG9vbHRpcD1cIllldCB0byB0YWcgdGhlIGN1c3RvbWVyXCIgcGxhY2VtZW50PVwidG9wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE5XCIgaGVpZ2h0PVwiMThcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTkgMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi4wMjM0NCA1LjYyNUg2LjAzMDk0TTE2LjIxNTkgMTAuNDMyNUwxMC44Mzg0IDE1LjgxQzEwLjY5OTEgMTUuOTQ5NSAxMC41MzM3IDE2LjA2MDEgMTAuMzUxNiAxNi4xMzU2QzEwLjE2OTUgMTYuMjExMSA5Ljk3NDMxIDE2LjI0OTkgOS43NzcxOSAxNi4yNDk5QzkuNTgwMDYgMTYuMjQ5OSA5LjM4NDg3IDE2LjIxMTEgOS4yMDI3OCAxNi4xMzU2QzkuMDIwNjggMTYuMDYwMSA4Ljg1NTI1IDE1Ljk0OTUgOC43MTU5NCAxNS44MUwyLjI3MzQ0IDkuMzc1VjEuODc1SDkuNzczNDRMMTYuMjE1OSA4LjMxNzVDMTYuNDk1MyA4LjU5ODU0IDE2LjY1MjEgOC45Nzg3MiAxNi42NTIxIDkuMzc1QzE2LjY1MjEgOS43NzEyOCAxNi40OTUzIDEwLjE1MTUgMTYuMjE1OSAxMC40MzI1WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdEltYWdlQXJyYXk/LnJldm9wc1R5cGUgPT09J2R1cGxpY2F0ZSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMDEyXzk0NjM1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY3OTcgMTMuMTg1OUgzLjMzNDY0QzIuODkyNjEgMTMuMTg1OSAyLjQ2ODY4IDEzLjAxMDMgMi4xNTYxMiAxMi42OTc3QzEuODQzNTYgMTIuMzg1MiAxLjY2Nzk3IDExLjk2MTIgMS42Njc5NyAxMS41MTkyVjQuMDE5MjFDMS42Njc5NyAzLjU3NzE4IDEuODQzNTYgMy4xNTMyNiAyLjE1NjEyIDIuODQwNjlDMi40Njg2OCAyLjUyODEzIDIuODkyNjEgMi4zNTI1NCAzLjMzNDY0IDIuMzUyNTRIMTAuODM0NkMxMS4yNzY3IDIuMzUyNTQgMTEuNzAwNiAyLjUyODEzIDEyLjAxMzEgMi44NDA2OUMxMi4zMjU3IDMuMTUzMjYgMTIuNTAxMyAzLjU3NzE4IDEyLjUwMTMgNC4wMTkyMVY0Ljg1MjU0TTkuMTY3OTcgOC4xODU4N0gxNi42NjhDMTcuNTg4NCA4LjE4NTg3IDE4LjMzNDYgOC45MzIwNiAxOC4zMzQ2IDkuODUyNTRWMTcuMzUyNUMxOC4zMzQ2IDE4LjI3MyAxNy41ODg0IDE5LjAxOTIgMTYuNjY4IDE5LjAxOTJIOS4xNjc5N0M4LjI0NzQ5IDE5LjAxOTIgNy41MDEzIDE4LjI3MyA3LjUwMTMgMTcuMzUyNVY5Ljg1MjU0QzcuNTAxMyA4LjkzMjA2IDguMjQ3NDkgOC4xODU4NyA5LjE2Nzk3IDguMTg1ODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2MzVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdEltYWdlQXJyYXk/LnJldm9wc1R5cGUgPT09J2VtcGxveWVlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzOSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjU0IDE4LjE4NlYxNi41MTk0QzE0LjE2NTQgMTUuNjM1MyAxMy44MTQyIDE0Ljc4NzUgMTMuMTg5MSAxNC4xNjIzQzEyLjU2MzkgMTMuNTM3MiAxMS43MTYxIDEzLjE4NiAxMC44MzIgMTMuMTg2SDQuMTY1MzZDMy4yODEzMSAxMy4xODYgMi40MzM0NiAxMy41MzcyIDEuODA4MzQgMTQuMTYyM0MxLjE4MzIyIDE0Ljc4NzUgMC44MzIwMzEgMTUuNjM1MyAwLjgzMjAzMSAxNi41MTk0VjE4LjE4Nk0xOS4xNjU0IDE4LjE4NlYxNi41MTk0QzE5LjE2NDggMTUuNzgwOCAxOC45MTkgMTUuMDYzMyAxOC40NjY1IDE0LjQ3OTZDMTguMDE0IDEzLjg5NTkgMTcuMzgwNSAxMy40NzkgMTYuNjY1NCAxMy4yOTQ0TTEzLjMzMiAzLjI5NDM3QzE0LjA0OSAzLjQ3Nzk1IDE0LjY4NDYgMy44OTQ5NSAxNS4xMzg0IDQuNDc5NjNDMTUuNTkyMiA1LjA2NDMgMTUuODM4NiA1Ljc4MzM5IDE1LjgzODYgNi41MjM1NEMxNS44Mzg2IDcuMjYzNjggMTUuNTkyMiA3Ljk4Mjc3IDE1LjEzODQgOC41Njc0NEMxNC42ODQ2IDkuMTUyMTIgMTQuMDQ5IDkuNTY5MTIgMTMuMzMyIDkuNzUyN00xMC44MzIgNi41MTkzN0MxMC44MzIgOC4zNjAzMiA5LjMzOTY1IDkuODUyNyA3LjQ5ODcgOS44NTI3QzUuNjU3NzUgOS44NTI3IDQuMTY1MzYgOC4zNjAzMiA0LjE2NTM2IDYuNTE5MzdDNC4xNjUzNiA0LjY3ODQyIDUuNjU3NzUgMy4xODYwNCA3LjQ5ODcgMy4xODYwNEM5LjMzOTY1IDMuMTg2MDQgMTAuODMyIDQuNjc4NDIgMTAuODMyIDYuNTE5MzdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2MzlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdEltYWdlQXJyYXk/LnJldm9wc1R5cGUgPT09J2hvdXNla2VlcGluZydcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMSAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDY0MylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMjYyMTkgMS4zNjcyMkMxMC4xNzc3IDAuNDU4OTc0IDExLjY2MiAwLjQ1ODk3NCAxMi41Nzc2IDEuMzY3MjJMMjAuMzEzMyA5LjA0MTUzQzIxLjIyODcgOS45NDk4IDIxLjIyODcgMTEuNDIyMyAyMC4zMTMzIDEyLjMzMDZMMTIuNTc3NiAyMC4wMDQ5QzExLjY2MiAyMC45MTMxIDEwLjE3NzcgMjAuOTEzMSA5LjI2MjE5IDIwLjAwNDlMNy4wNTE2NiAxNy44MTE5TDUuMDI1MzggMTkuODIyMUM0LjEwOTg3IDIwLjczMDMgMi42MjU1MyAyMC43MzAzIDEuNzEwMDIgMTkuODIyMUMwLjc5NDUxIDE4LjkxMzkgMC43OTQ1MSAxNy40NDEzIDEuNzEwMDIgMTYuNTMzMUwzLjczNjMgMTQuNTIyOUwxLjUyNjQ4IDEyLjMzMDZDMC42MTA5NjYgMTEuNDIyMyAwLjYxMDk2NiA5Ljk0OTggMS41MjY0OCA5LjA0MTUzTDkuMjYyMTkgMS4zNjcyMlpNMTEuNDcyNCAyLjQ2MzU3QzExLjE2NzIgMi4xNjA4MiAxMC42NzI0IDIuMTYwODIgMTAuMzY3MiAyLjQ2MzU3TDQuODQxNDUgNy45NDU1NkwxMy42ODIzIDE2LjcxNjNMMTkuMjA4MSAxMS4yMzQyQzE5LjUxMzMgMTAuOTMxNSAxOS41MTMzIDEwLjQ0MDYgMTkuMjA4MSAxMC4xMzc5TDE1LjMzOTkgNi4zMDAzMkwxNC4wNTA1IDcuNTc5NEMxMy43NDUzIDcuODgyMTQgMTMuMjUwNiA3Ljg4MjE0IDEyLjk0NTUgNy41Nzk0QzEyLjY0MDMgNy4yNzY2NCAxMi42NDAzIDYuNzg1NzkgMTIuOTQ1NSA2LjQ4MzA1TDE0LjIzNDcgNS4yMDM5N0wxMy4xMjk5IDQuMTA3ODZMOS45OTg3MiA3LjIxNDE4QzkuNjkzNTQgNy41MTY5MiA5LjE5ODczIDcuNTE2OTIgOC44OTM1NiA3LjIxNDE4QzguNTg4MzggNi45MTE0MyA4LjU4ODM4IDYuNDIwNTggOC44OTM1NiA2LjExNzgzTDEyLjAyNDcgMy4wMTE1MUwxMS40NzI0IDIuNDYzNTdaTTEyLjU3NzEgMTcuODEyNUwzLjczNjMzIDkuMDQxOTFMMi42MzE2IDEwLjEzNzlDMi4zMjY0MiAxMC40NDA2IDIuMzI2NDIgMTAuOTMxNSAyLjYzMTYgMTEuMjM0MkwxMC4zNjcyIDE4LjkwODVDMTAuNjcyNCAxOS4yMTEzIDExLjE2NzIgMTkuMjExMyAxMS40NzI0IDE4LjkwODVMMTIuNTc3MSAxNy44MTI1Wk00Ljg0MTMyIDE1LjYxOTJMMi44MTUxNCAxNy42Mjk0QzIuNTA5OTcgMTcuOTMyMSAyLjUwOTk3IDE4LjQyMyAyLjgxNTE0IDE4LjcyNThDMy4xMjAzMSAxOS4wMjg1IDMuNjE1MDkgMTkuMDI4NSAzLjkyMDI2IDE4LjcyNThMNS45NDY0NCAxNi43MTU2TDQuODQxMzIgMTUuNjE5MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDc1NDY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2NDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgcC0yIG1iLTIgIG10LTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteC0yIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRpdGxlLXR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdCBub24tc2hvcHBlciB0eXBlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFyZXZvcHNUeXBlVmFsdWVcIiBjbGFzcz1cIm1iLTUgdGV4dC1lbmRcIiByb2xlPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoKVwiPkNsZWFyPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cInNlbGVjdGVkUmFkaW9UeXBlID09PXVuZGVmaW5lZCB8fCBzZWxlY3RlZFJhZGlvVHlwZSA9PT0nJ1wiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFsZXJ0LXRvYXN0XCIgKGNsaWNrKT1cInNhdmUoc2VsZWN0ZWRUeXBlKVwiPlNhdmU8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmV2b3BzVHlwZVZhbHVlXCIgY2xhc3M9XCJtYi01IHRleHQtZW5kXCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG1lLTJcIiAoY2xpY2spPVwiZWRpdFZhbHVlKClcIj48c3BhbiBjbGFzcz1cIm1lLTJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuPHBhdGggZD1cIk0xNC42NTU0IDEuNzEwNDdDMTQuODkyNyAxLjQ3MzE1IDE1LjE3NDUgMS4yODQ5IDE1LjQ4NDUgMS4xNTY0NkMxNS43OTQ2IDEuMDI4MDIgMTYuMTI2OSAwLjk2MTkxNCAxNi40NjI2IDAuOTYxOTE0QzE2Ljc5ODIgMC45NjE5MTQgMTcuMTMwNSAxLjAyODAyIDE3LjQ0MDYgMS4xNTY0NkMxNy43NTA3IDEuMjg0OSAxOC4wMzI0IDEuNDczMTUgMTguMjY5NyAxLjcxMDQ3QzE4LjUwNzEgMS45NDc3OSAxOC42OTUzIDIuMjI5NTMgMTguODIzOCAyLjUzOTYxQzE4Ljk1MjIgMi44NDk2OSAxOS4wMTgzIDMuMTgyMDIgMTkuMDE4MyAzLjUxNzY1QzE5LjAxODMgMy44NTMyNyAxOC45NTIyIDQuMTg1NjEgMTguODIzOCA0LjQ5NTY4QzE4LjY5NTMgNC44MDU3NiAxOC41MDcxIDUuMDg3NSAxOC4yNjk3IDUuMzI0ODJMNi4wNzEzIDE3LjUyMzNMMS4xMDE1NiAxOC44Nzg2TDIuNDU2OTUgMTMuOTA4OUwxNC42NTU0IDEuNzEwNDdaXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuODEwNzlcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbjwvc3ZnPjwvc3Bhbj5FZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBteS0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImR1cGxpY2F0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImR1cGxpY2F0ZVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRUeXBlXCIgW3ZhbHVlXT1cIidkdXBsaWNhdGUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZShzZWxlY3RlZFR5cGUpXCIgW2Rpc2FibGVkXT1cInJldm9wc1R5cGVWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZHVwbGljYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMDEyXzk0NjM1KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTQuMTY3OTcgMTMuMTg1OUgzLjMzNDY0QzIuODkyNjEgMTMuMTg1OSAyLjQ2ODY4IDEzLjAxMDMgMi4xNTYxMiAxMi42OTc3QzEuODQzNTYgMTIuMzg1MiAxLjY2Nzk3IDExLjk2MTIgMS42Njc5NyAxMS41MTkyVjQuMDE5MjFDMS42Njc5NyAzLjU3NzE4IDEuODQzNTYgMy4xNTMyNiAyLjE1NjEyIDIuODQwNjlDMi40Njg2OCAyLjUyODEzIDIuODkyNjEgMi4zNTI1NCAzLjMzNDY0IDIuMzUyNTRIMTAuODM0NkMxMS4yNzY3IDIuMzUyNTQgMTEuNzAwNiAyLjUyODEzIDEyLjAxMzEgMi44NDA2OUMxMi4zMjU3IDMuMTUzMjYgMTIuNTAxMyAzLjU3NzE4IDEyLjUwMTMgNC4wMTkyMVY0Ljg1MjU0TTkuMTY3OTcgOC4xODU4N0gxNi42NjhDMTcuNTg4NCA4LjE4NTg3IDE4LjMzNDYgOC45MzIwNiAxOC4zMzQ2IDkuODUyNTRWMTcuMzUyNUMxOC4zMzQ2IDE4LjI3MyAxNy41ODg0IDE5LjAxOTIgMTYuNjY4IDE5LjAxOTJIOS4xNjc5N0M4LjI0NzQ5IDE5LjAxOTIgNy41MDEzIDE4LjI3MyA3LjUwMTMgMTcuMzUyNVY5Ljg1MjU0QzcuNTAxMyA4LjkzMjA2IDguMjQ3NDkgOC4xODU4NyA5LjE2Nzk3IDguMTg1ODdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2MzVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy01IHRhZy1jbGFzc1wiPkR1cGxpY2F0ZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBteS0xNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0IGN1cnNvci1wb2ludGVyXCIgdHlwZT1cInJhZGlvXCIgbmFtZT1cImVtcGxveWVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZW1wbG95ZWVcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVHlwZVwiIFt2YWx1ZV09XCInZW1wbG95ZWUnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25SYWRpb0NoYW5nZShzZWxlY3RlZFR5cGUpXCIgW2Rpc2FibGVkXT1cInJldm9wc1R5cGVWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsXCIgZm9yPVwiZW1wbG95ZWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtNVwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzIwMTJfOTQ2MzkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuMTY1NCAxOC4xODZWMTYuNTE5NEMxNC4xNjU0IDE1LjYzNTMgMTMuODE0MiAxNC43ODc1IDEzLjE4OTEgMTQuMTYyM0MxMi41NjM5IDEzLjUzNzIgMTEuNzE2MSAxMy4xODYgMTAuODMyIDEzLjE4Nkg0LjE2NTM2QzMuMjgxMzEgMTMuMTg2IDIuNDMzNDYgMTMuNTM3MiAxLjgwODM0IDE0LjE2MjNDMS4xODMyMiAxNC43ODc1IDAuODMyMDMxIDE1LjYzNTMgMC44MzIwMzEgMTYuNTE5NFYxOC4xODZNMTkuMTY1NCAxOC4xODZWMTYuNTE5NEMxOS4xNjQ4IDE1Ljc4MDggMTguOTE5IDE1LjA2MzMgMTguNDY2NSAxNC40Nzk2QzE4LjAxNCAxMy44OTU5IDE3LjM4MDUgMTMuNDc5IDE2LjY2NTQgMTMuMjk0NE0xMy4zMzIgMy4yOTQzN0MxNC4wNDkgMy40Nzc5NSAxNC42ODQ2IDMuODk0OTUgMTUuMTM4NCA0LjQ3OTYzQzE1LjU5MjIgNS4wNjQzIDE1LjgzODYgNS43ODMzOSAxNS44Mzg2IDYuNTIzNTRDMTUuODM4NiA3LjI2MzY4IDE1LjU5MjIgNy45ODI3NyAxNS4xMzg0IDguNTY3NDRDMTQuNjg0NiA5LjE1MjEyIDE0LjA0OSA5LjU2OTEyIDEzLjMzMiA5Ljc1MjdNMTAuODMyIDYuNTE5MzdDMTAuODMyIDguMzYwMzIgOS4zMzk2NSA5Ljg1MjcgNy40OTg3IDkuODUyN0M1LjY1Nzc1IDkuODUyNyA0LjE2NTM2IDguMzYwMzIgNC4xNjUzNiA2LjUxOTM3QzQuMTY1MzYgNC42Nzg0MiA1LjY1Nzc1IDMuMTg2MDQgNy40OTg3IDMuMTg2MDRDOS4zMzk2NSAzLjE4NjA0IDEwLjgzMiA0LjY3ODQyIDEwLjgzMiA2LjUxOTM3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTUgdGFnLWNsYXNzXCI+RW1wbG95ZWUvU3RhZmY8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgbXktMTVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBjdXJzb3ItcG9pbnRlclwiIHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJob3VzZWtlZXBpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJob3VzZWtlZXBpbmdcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkVHlwZVwiIFt2YWx1ZV09XCInaG91c2VrZWVwaW5nJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uUmFkaW9DaGFuZ2Uoc2VsZWN0ZWRUeXBlKVwiIFtkaXNhYmxlZF09XCJyZXZvcHNUeXBlVmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiIGZvcj1cImhvdXNla2VlcGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy01XCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMSAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDY0MylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cImV2ZW5vZGRcIiBjbGlwLXJ1bGU9XCJldmVub2RkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkuMjYyMTkgMS4zNjcyMkMxMC4xNzc3IDAuNDU4OTc0IDExLjY2MiAwLjQ1ODk3NCAxMi41Nzc2IDEuMzY3MjJMMjAuMzEzMyA5LjA0MTUzQzIxLjIyODcgOS45NDk4IDIxLjIyODcgMTEuNDIyMyAyMC4zMTMzIDEyLjMzMDZMMTIuNTc3NiAyMC4wMDQ5QzExLjY2MiAyMC45MTMxIDEwLjE3NzcgMjAuOTEzMSA5LjI2MjE5IDIwLjAwNDlMNy4wNTE2NiAxNy44MTE5TDUuMDI1MzggMTkuODIyMUM0LjEwOTg3IDIwLjczMDMgMi42MjU1MyAyMC43MzAzIDEuNzEwMDIgMTkuODIyMUMwLjc5NDUxIDE4LjkxMzkgMC43OTQ1MSAxNy40NDEzIDEuNzEwMDIgMTYuNTMzMUwzLjczNjMgMTQuNTIyOUwxLjUyNjQ4IDEyLjMzMDZDMC42MTA5NjYgMTEuNDIyMyAwLjYxMDk2NiA5Ljk0OTggMS41MjY0OCA5LjA0MTUzTDkuMjYyMTkgMS4zNjcyMlpNMTEuNDcyNCAyLjQ2MzU3QzExLjE2NzIgMi4xNjA4MiAxMC42NzI0IDIuMTYwODIgMTAuMzY3MiAyLjQ2MzU3TDQuODQxNDUgNy45NDU1NkwxMy42ODIzIDE2LjcxNjNMMTkuMjA4MSAxMS4yMzQyQzE5LjUxMzMgMTAuOTMxNSAxOS41MTMzIDEwLjQ0MDYgMTkuMjA4MSAxMC4xMzc5TDE1LjMzOTkgNi4zMDAzMkwxNC4wNTA1IDcuNTc5NEMxMy43NDUzIDcuODgyMTQgMTMuMjUwNiA3Ljg4MjE0IDEyLjk0NTUgNy41Nzk0QzEyLjY0MDMgNy4yNzY2NCAxMi42NDAzIDYuNzg1NzkgMTIuOTQ1NSA2LjQ4MzA1TDE0LjIzNDcgNS4yMDM5N0wxMy4xMjk5IDQuMTA3ODZMOS45OTg3MiA3LjIxNDE4QzkuNjkzNTQgNy41MTY5MiA5LjE5ODczIDcuNTE2OTIgOC44OTM1NiA3LjIxNDE4QzguNTg4MzggNi45MTE0MyA4LjU4ODM4IDYuNDIwNTggOC44OTM1NiA2LjExNzgzTDEyLjAyNDcgMy4wMTE1MUwxMS40NzI0IDIuNDYzNTdaTTEyLjU3NzEgMTcuODEyNUwzLjczNjMzIDkuMDQxOTFMMi42MzE2IDEwLjEzNzlDMi4zMjY0MiAxMC40NDA2IDIuMzI2NDIgMTAuOTMxNSAyLjYzMTYgMTEuMjM0MkwxMC4zNjcyIDE4LjkwODVDMTAuNjcyNCAxOS4yMTEzIDExLjE2NzIgMTkuMjExMyAxMS40NzI0IDE4LjkwODVMMTIuNTc3MSAxNy44MTI1Wk00Ljg0MTMyIDE1LjYxOTJMMi44MTUxNCAxNy42Mjk0QzIuNTA5OTcgMTcuOTMyMSAyLjUwOTk3IDE4LjQyMyAyLjgxNTE0IDE4LjcyNThDMy4xMjAzMSAxOS4wMjg1IDMuNjE1MDkgMTkuMDI4NSAzLjkyMDI2IDE4LjcyNThMNS45NDY0NCAxNi43MTU2TDQuODQxMzIgMTUuNjE5MlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCIjNDc1NDY3XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2NDNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIxXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtNSB0YWctY2xhc3NcIj4gSG91c2UgS2VlcGluZzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgcHgtMCBpbWctdHJhZmZpYyBtdC0zIGhpZ2gtNDAwcHggc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0zIGJvcmRlci1ncmF5IG14LTIgcC0yIG10LTVcIiAqbmdGb3I9XCJsZXQgb2JqIG9mIHJlbWFpbmluZ0ltYWdlQXJyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cInNlbGVjdGVkUmFkaW9UeXBlID09PSAnZHVwbGljYXRlJ1wiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwib2JqLnNlbGVjdGVkXCIgY2xhc3M9XCJwb3NpdGlvbi1hYnNvbHV0ZSBhYnNvbHV0ZSBmb3JtLWNoZWNrLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbkltYWdlQ2hlY2tib3hDaGFuZ2Uob2JqLCAnZHVwbGljYXRlJylcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIGN1cnNvci1wb2ludGVyXCIgW3NyY109XCJpbWFnZVVybCArIG9iaj8uZmlsZVBhdGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib2JqLmZpbGVQYXRoID0gbnVsbFwiIGFsdD1cIlwiIChjbGljayk9XCJpbWdTd2FwKG9iailcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIiFvYmo/LmZpbGVQYXRoXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjIzXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIzIDIwXCIgZmlsbD1cIm5vbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi01IHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uIG1iLTUgdGV4dC1jZW50ZXJcIj5UaGUgc2VsZWN0ZWQgY2FtZXJhIGlzIG5vdCBhdmFpbGFibGUgYXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9tZW50Ljwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHB4LTIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS0yIGltZy1kb2MtdGltZVwiPlRhbmdvIElEIDoge3tvYmo/LnRlbXBsZH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW1nLWRvYy12YWx1ZVwiPkVudHJ5IFRpbWUgOiB7e29iaj8uZW50cnlUbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNSB0ZXh0LWVuZCBweS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlID09PSdub24tdGFnZ2luZydcIiBuZ2JUb29sdGlwPVwiWWV0IHRvIHRhZyB0aGUgY3VzdG9tZXJcIiBwbGFjZW1lbnQ9XCJ0b3BcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTlcIiBoZWlnaHQ9XCIxOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxOSAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjAyMzQ0IDUuNjI1SDYuMDMwOTRNMTYuMjE1OSAxMC40MzI1TDEwLjgzODQgMTUuODFDMTAuNjk5MSAxNS45NDk1IDEwLjUzMzcgMTYuMDYwMSAxMC4zNTE2IDE2LjEzNTZDMTAuMTY5NSAxNi4yMTExIDkuOTc0MzEgMTYuMjQ5OSA5Ljc3NzE5IDE2LjI0OTlDOS41ODAwNiAxNi4yNDk5IDkuMzg0ODcgMTYuMjExMSA5LjIwMjc4IDE2LjEzNTZDOS4wMjA2OCAxNi4wNjAxIDguODU1MjUgMTUuOTQ5NSA4LjcxNTk0IDE1LjgxTDIuMjczNDQgOS4zNzVWMS44NzVIOS43NzM0NEwxNi4yMTU5IDguMzE3NUMxNi40OTUzIDguNTk4NTQgMTYuNjUyMSA4Ljk3ODcyIDE2LjY1MjEgOS4zNzVDMTYuNjUyMSA5Ljc3MTI4IDE2LjQ5NTMgMTAuMTUxNSAxNi4yMTU5IDEwLjQzMjVaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwib2JqPy5yZXZvcHNUeXBlID09PSdkdXBsaWNhdGUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00LjE2Nzk3IDEzLjE4NTlIMy4zMzQ2NEMyLjg5MjYxIDEzLjE4NTkgMi40Njg2OCAxMy4wMTAzIDIuMTU2MTIgMTIuNjk3N0MxLjg0MzU2IDEyLjM4NTIgMS42Njc5NyAxMS45NjEyIDEuNjY3OTcgMTEuNTE5MlY0LjAxOTIxQzEuNjY3OTcgMy41NzcxOCAxLjg0MzU2IDMuMTUzMjYgMi4xNTYxMiAyLjg0MDY5QzIuNDY4NjggMi41MjgxMyAyLjg5MjYxIDIuMzUyNTQgMy4zMzQ2NCAyLjM1MjU0SDEwLjgzNDZDMTEuMjc2NyAyLjM1MjU0IDExLjcwMDYgMi41MjgxMyAxMi4wMTMxIDIuODQwNjlDMTIuMzI1NyAzLjE1MzI2IDEyLjUwMTMgMy41NzcxOCAxMi41MDEzIDQuMDE5MjFWNC44NTI1NE05LjE2Nzk3IDguMTg1ODdIMTYuNjY4QzE3LjU4ODQgOC4xODU4NyAxOC4zMzQ2IDguOTMyMDYgMTguMzM0NiA5Ljg1MjU0VjE3LjM1MjVDMTguMzM0NiAxOC4yNzMgMTcuNTg4NCAxOS4wMTkyIDE2LjY2OCAxOS4wMTkySDkuMTY3OTdDOC4yNDc0OSAxOS4wMTkyIDcuNTAxMyAxOC4yNzMgNy41MDEzIDE3LjM1MjVWOS44NTI1NEM3LjUwMTMgOC45MzIwNiA4LjI0NzQ5IDguMTg1ODcgOS4xNjc5NyA4LjE4NTg3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yMDEyXzk0NjM1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAgMC42ODYwMzUpXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJvYmo/LnJldm9wc1R5cGUgPT09J2VtcGxveWVlJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjAxMl85NDYzOSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC4xNjU0IDE4LjE4NlYxNi41MTk0QzE0LjE2NTQgMTUuNjM1MyAxMy44MTQyIDE0Ljc4NzUgMTMuMTg5MSAxNC4xNjIzQzEyLjU2MzkgMTMuNTM3MiAxMS43MTYxIDEzLjE4NiAxMC44MzIgMTMuMTg2SDQuMTY1MzZDMy4yODEzMSAxMy4xODYgMi40MzM0NiAxMy41MzcyIDEuODA4MzQgMTQuMTYyM0MxLjE4MzIyIDE0Ljc4NzUgMC44MzIwMzEgMTUuNjM1MyAwLjgzMjAzMSAxNi41MTk0VjE4LjE4Nk0xOS4xNjU0IDE4LjE4NlYxNi41MTk0QzE5LjE2NDggMTUuNzgwOCAxOC45MTkgMTUuMDYzMyAxOC40NjY1IDE0LjQ3OTZDMTguMDE0IDEzLjg5NTkgMTcuMzgwNSAxMy40NzkgMTYuNjY1NCAxMy4yOTQ0TTEzLjMzMiAzLjI5NDM3QzE0LjA0OSAzLjQ3Nzk1IDE0LjY4NDYgMy44OTQ5NSAxNS4xMzg0IDQuNDc5NjNDMTUuNTkyMiA1LjA2NDMgMTUuODM4NiA1Ljc4MzM5IDE1LjgzODYgNi41MjM1NEMxNS44Mzg2IDcuMjYzNjggMTUuNTkyMiA3Ljk4Mjc3IDE1LjEzODQgOC41Njc0NEMxNC42ODQ2IDkuMTUyMTIgMTQuMDQ5IDkuNTY5MTIgMTMuMzMyIDkuNzUyN00xMC44MzIgNi41MTkzN0MxMC44MzIgOC4zNjAzMiA5LjMzOTY1IDkuODUyNyA3LjQ5ODcgOS44NTI3QzUuNjU3NzUgOS44NTI3IDQuMTY1MzYgOC4zNjAzMiA0LjE2NTM2IDYuNTE5MzdDNC4xNjUzNiA0LjY3ODQyIDUuNjU3NzUgMy4xODYwNCA3LjQ5ODcgMy4xODYwNEM5LjMzOTY1IDMuMTg2MDQgMTAuODMyIDQuNjc4NDIgMTAuODMyIDYuNTE5MzdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzIwMTJfOTQ2MzlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjY4NjAzNSlcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIm9iaj8ucmV2b3BzVHlwZSA9PT0naG91c2VrZWVwaW5nJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIxIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8yMDEyXzk0NjQzKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZmlsbC1ydWxlPVwiZXZlbm9kZFwiIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOS4yNjIxOSAxLjM2NzIyQzEwLjE3NzcgMC40NTg5NzQgMTEuNjYyIDAuNDU4OTc0IDEyLjU3NzYgMS4zNjcyMkwyMC4zMTMzIDkuMDQxNTNDMjEuMjI4NyA5Ljk0OTggMjEuMjI4NyAxMS40MjIzIDIwLjMxMzMgMTIuMzMwNkwxMi41Nzc2IDIwLjAwNDlDMTEuNjYyIDIwLjkxMzEgMTAuMTc3NyAyMC45MTMxIDkuMjYyMTkgMjAuMDA0OUw3LjA1MTY2IDE3LjgxMTlMNS4wMjUzOCAxOS44MjIxQzQuMTA5ODcgMjAuNzMwMyAyLjYyNTUzIDIwLjczMDMgMS43MTAwMiAxOS44MjIxQzAuNzk0NTEgMTguOTEzOSAwLjc5NDUxIDE3LjQ0MTMgMS43MTAwMiAxNi41MzMxTDMuNzM2MyAxNC41MjI5TDEuNTI2NDggMTIuMzMwNkMwLjYxMDk2NiAxMS40MjIzIDAuNjEwOTY2IDkuOTQ5OCAxLjUyNjQ4IDkuMDQxNTNMOS4yNjIxOSAxLjM2NzIyWk0xMS40NzI0IDIuNDYzNTdDMTEuMTY3MiAyLjE2MDgyIDEwLjY3MjQgMi4xNjA4MiAxMC4zNjcyIDIuNDYzNTdMNC44NDE0NSA3Ljk0NTU2TDEzLjY4MjMgMTYuNzE2M0wxOS4yMDgxIDExLjIzNDJDMTkuNTEzMyAxMC45MzE1IDE5LjUxMzMgMTAuNDQwNiAxOS4yMDgxIDEwLjEzNzlMMTUuMzM5OSA2LjMwMDMyTDE0LjA1MDUgNy41Nzk0QzEzLjc0NTMgNy44ODIxNCAxMy4yNTA2IDcuODgyMTQgMTIuOTQ1NSA3LjU3OTRDMTIuNjQwMyA3LjI3NjY0IDEyLjY0MDMgNi43ODU3OSAxMi45NDU1IDYuNDgzMDVMMTQuMjM0NyA1LjIwMzk3TDEzLjEyOTkgNC4xMDc4Nkw5Ljk5ODcyIDcuMjE0MThDOS42OTM1NCA3LjUxNjkyIDkuMTk4NzMgNy41MTY5MiA4Ljg5MzU2IDcuMjE0MThDOC41ODgzOCA2LjkxMTQzIDguNTg4MzggNi40MjA1OCA4Ljg5MzU2IDYuMTE3ODNMMTIuMDI0NyAzLjAxMTUxTDExLjQ3MjQgMi40NjM1N1pNMTIuNTc3MSAxNy44MTI1TDMuNzM2MzMgOS4wNDE5MUwyLjYzMTYgMTAuMTM3OUMyLjMyNjQyIDEwLjQ0MDYgMi4zMjY0MiAxMC45MzE1IDIuNjMxNiAxMS4yMzQyTDEwLjM2NzIgMTguOTA4NUMxMC42NzI0IDE5LjIxMTMgMTEuMTY3MiAxOS4yMTEzIDExLjQ3MjQgMTguOTA4NUwxMi41NzcxIDE3LjgxMjVaTTQuODQxMzIgMTUuNjE5MkwyLjgxNTE0IDE3LjYyOTRDMi41MDk5NyAxNy45MzIxIDIuNTA5OTcgMTguNDIzIDIuODE1MTQgMTguNzI1OEMzLjEyMDMxIDE5LjAyODUgMy42MTUwOSAxOS4wMjg1IDMuOTIwMjYgMTguNzI1OEw1Ljk0NjQ0IDE2LjcxNTZMNC44NDEzMiAxNS42MTkyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIiM0NzU0NjdcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMjAxMl85NDY0M1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuNjg2MDM1KVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG48L2Rpdj5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI3pvb21Qb3B1cCBsZXQtbW9kZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwicC00IG0tNFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgYm9yZGVyLTAgcC0wIHctMTAwIGZsZXgtY29sdW1uIGFsaWduLWl0ZW1zLXN0YXJ0XCI+XHJcblxyXG4gICAgICAgICAgICA8IS0tIEhlYWRpbmcgLS0+XHJcbiAgICAgICAgICAgIDxoNSBjbGFzcz1cIm1vZGFsLXRpdGxlIG1iLTJcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9wdXBUeXBlID09PSAnZW1wbG95ZWUnXCI+VGFnZ2luZyBhcyBlbXBsb3llZS9zdGFmZiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ2R1cGxpY2F0ZSdcIj5UYWdnaW5nIGFzIGR1cGxpY2F0ZXMgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJwb3B1cFR5cGUgPT09ICdob3VzZWtlZXBpbmcnXCI+VGFnZ2luZyBhcyBIb3VzZSBLZWVwaW5nIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ25vbi10YWdnaW5nJ1wiPlRhZ2dpbmcgYXMgbm9uLXRhZ2dpbmcgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2g1PlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9wdXBUeXBlID09PSAnZW1wbG95ZWUnXCI+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHRhZyB0aGlzIGFzIGVtcGxveWVlL3N0YWZmPzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9wdXBUeXBlID09PSAnZHVwbGljYXRlJ1wiPkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byB0YWcgdGhpcyBhcyBkdXBsaWNhdGVzPyA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvcHVwVHlwZSA9PT0gJ2hvdXNla2VlcGluZydcIj5BcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gdGFnIHRoaXMgYXMgaG91c2UgS2VlcGluZz8gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9wdXBUeXBlID09PSAnbm9uLXRhZ2dpbmcnXCI+QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHRhZyB0aGlzIGFzIG5vbi10YWdnaW5nPyA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMCBtdC01IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgbWUtMlwiIChjbGljayk9XCJjYW5jZWxTdWJtaXQoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInN1Ym1pdFZhbHVlKHBvcHVwVHlwZSlcIj5cclxuICAgICAgICAgICAgICAgIFllcywgVGFnXHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+Il19