tango-app-ui-analyse-traffic 3.4.0-beta.24 → 3.4.0-beta.25-patch.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/esm2022/lib/components/explore-view/explore-view.component.mjs +5 -5
  2. package/esm2022/lib/components/nob-upload/nob-upload.component.mjs +10 -557
  3. package/esm2022/lib/components/tango-analyse-traffic/tango-analyse-traffic.component.mjs +3 -3
  4. package/esm2022/lib/components/traffic-analysis/traffic-analysis.component.mjs +155 -1975
  5. package/esm2022/lib/components/traffic-card-charts/traffic-card-charts.component.mjs +20 -56
  6. package/esm2022/lib/components/traffic-charts/traffic-charts.component.mjs +12 -10
  7. package/esm2022/lib/components/video-url/video-url.component.mjs +3 -3
  8. package/esm2022/lib/services/traffic.service.mjs +20 -78
  9. package/esm2022/lib/tango-analyse-traffic.module.mjs +3 -5
  10. package/fesm2022/tango-app-ui-analyse-traffic.mjs +3512 -6360
  11. package/fesm2022/tango-app-ui-analyse-traffic.mjs.map +1 -1
  12. package/lib/components/nob-upload/nob-upload.component.d.ts +3 -72
  13. package/lib/components/traffic-analysis/traffic-analysis.component.d.ts +5 -156
  14. package/lib/components/traffic-card-charts/traffic-card-charts.component.d.ts +0 -2
  15. package/lib/components/video-url/video-url.component.d.ts +2 -1
  16. package/lib/services/traffic.service.d.ts +0 -20
  17. package/lib/tango-analyse-traffic.module.d.ts +7 -9
  18. package/package.json +1 -1
  19. package/esm2022/lib/components/add-nob/add-nob.component.mjs +0 -261
  20. package/esm2022/lib/components/custom-select/custom-select.component.mjs +0 -155
  21. package/lib/components/add-nob/add-nob.component.d.ts +0 -49
  22. package/lib/components/custom-select/custom-select.component.d.ts +0 -33
@@ -43,8 +43,8 @@ export class ExploreViewComponent {
43
43
  this.pageInfo.setTitle('Explore');
44
44
  this.pageInfo.setDescription('To optimize and improve existing algorithm');
45
45
  this.pageInfo.setBreadcrumbs([
46
- { title: 'Tango Eye', path: '/manage/traffic', isActive: false, isSeparator: false },
47
- { title: 'Tango Eye', path: '/manage/traffic', isActive: false, isSeparator: true },
46
+ { title: 'Analyze', path: '/manage/traffic', isActive: false, isSeparator: false },
47
+ { title: 'Analyze', path: '/manage/traffic', isActive: false, isSeparator: true },
48
48
  { title: 'Traffic', path: '/manage/traffic', isActive: false, isSeparator: false },
49
49
  { title: 'Traffic', path: '/manage/traffic', isActive: false, isSeparator: true },
50
50
  ]);
@@ -273,10 +273,10 @@ export class ExploreViewComponent {
273
273
  });
274
274
  }
275
275
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExploreViewComponent, deps: [{ token: i1.PageInfoService }, { token: i2.TrafficService }, { token: i1.GlobalStateService }, { token: i3.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
276
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExploreViewComponent, selector: "lib-explore-view", ngImport: i0, template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" 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 </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map1\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img *ngIf=\"dataImages !== null\" class=\"w-100\" [src]=\"dataImages\" (error)=\"dataImages = null\" [alt]=\"dataImages ? 'Image' : 'Error Image'\">\r\n <!-- <img *ngIf=\"dataImages === null\" class=\"w-100\" src=\"assets/tango/Image/baseimg.png\" alt=\"Image\"> -->\r\n <div *ngIf=\"dataImages === null\" 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 \r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\" >\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label cursor-pointer\" (click)=\"storeView(storeId)\">{{selectedStore.storeName ?? '--'}}</span>\r\n </h3>\r\n <span class=\"badge badge-light-primary mb-2\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{dataStoreMap?.hourlyData?.openTime ? dataStoreMap?.hourlyData?.openTime:'--'}} - {{dataStoreMap?.hourlyData?.closeTime ? dataStoreMap?.hourlyData?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgFootfall ? dataStoreMap?.avgData?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekdayFootfall ? dataStoreMap?.avgData?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekendFootfall ? dataStoreMap?.avgData?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0 pt-0 px-0\">\r\n <div class=\"row\">\r\n <div class=\"mt-5 col-lg-6\">\r\n <button class=\"btn btn-outline w-100 px-2\" routerLink=\"/manage/controlcenter\"> <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7543_11544)\">\r\n <path d=\"M1.58334 10C1.58334 10 4.91668 3.33337 10.75 3.33337C16.5833 3.33337 19.9167 10 19.9167 10C19.9167 10 16.5833 16.6667 10.75 16.6667C4.91668 16.6667 1.58334 10 1.58334 10Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.75 12.5C12.1307 12.5 13.25 11.3808 13.25 10C13.25 8.61933 12.1307 7.50004 10.75 7.50004C9.3693 7.50004 8.25001 8.61933 8.25001 10C8.25001 11.3808 9.3693 12.5 10.75 12.5Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7543_11544\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.75)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span><span class=\"ms-2\">Watch Live</span></button>\r\n </div>\r\n <div class=\"mt-5 col-lg-6\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\" (click)=\"storeView(storeId)\"><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M15.75 10.8333V15.8333C15.75 16.2754 15.5744 16.6993 15.2618 17.0118C14.9493 17.3244 14.5254 17.5 14.0833 17.5H4.91667C4.47464 17.5 4.05072 17.3244 3.73816 17.0118C3.42559 16.6993 3.25 16.2754 3.25 15.8333V6.66667C3.25 6.22464 3.42559 5.80072 3.73816 5.48816C4.05072 5.17559 4.47464 5 4.91667 5H9.91667M13.25 2.5H18.25M18.25 2.5V7.5M18.25 2.5L9.08333 11.6667\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span><span class=\"ms-2\">View more</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card 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 px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}.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}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }] });
276
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ExploreViewComponent, selector: "lib-explore-view", ngImport: i0, template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" 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 </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map1\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img *ngIf=\"dataImages !== null\" class=\"w-100\" [src]=\"dataImages\" (error)=\"dataImages = null\" [alt]=\"dataImages ? 'Image' : 'Error Image'\">\r\n <!-- <img *ngIf=\"dataImages === null\" class=\"w-100\" src=\"assets/tango/Image/baseimg.png\" alt=\"Image\"> -->\r\n <div *ngIf=\"dataImages === null\" 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 \r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\" >\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label cursor-pointer\" (click)=\"storeView(storeId)\">{{selectedStore.storeName ?? '--'}}</span>\r\n </h3>\r\n <span class=\"badge badge-light-primary mb-2\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{dataStoreMap?.hourlyData?.openTime ? dataStoreMap?.hourlyData?.openTime:'--'}} - {{dataStoreMap?.hourlyData?.closeTime ? dataStoreMap?.hourlyData?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgFootfall ? dataStoreMap?.avgData?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekdayFootfall ? dataStoreMap?.avgData?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekendFootfall ? dataStoreMap?.avgData?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0 px-0\">\r\n <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\" (click)=\"storeView(storeId)\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card 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 px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}.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}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
277
277
  }
278
278
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ExploreViewComponent, decorators: [{
279
279
  type: Component,
280
- args: [{ selector: 'lib-explore-view', template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" 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 </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map1\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img *ngIf=\"dataImages !== null\" class=\"w-100\" [src]=\"dataImages\" (error)=\"dataImages = null\" [alt]=\"dataImages ? 'Image' : 'Error Image'\">\r\n <!-- <img *ngIf=\"dataImages === null\" class=\"w-100\" src=\"assets/tango/Image/baseimg.png\" alt=\"Image\"> -->\r\n <div *ngIf=\"dataImages === null\" 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 \r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\" >\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label cursor-pointer\" (click)=\"storeView(storeId)\">{{selectedStore.storeName ?? '--'}}</span>\r\n </h3>\r\n <span class=\"badge badge-light-primary mb-2\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{dataStoreMap?.hourlyData?.openTime ? dataStoreMap?.hourlyData?.openTime:'--'}} - {{dataStoreMap?.hourlyData?.closeTime ? dataStoreMap?.hourlyData?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgFootfall ? dataStoreMap?.avgData?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekdayFootfall ? dataStoreMap?.avgData?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekendFootfall ? dataStoreMap?.avgData?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0 pt-0 px-0\">\r\n <div class=\"row\">\r\n <div class=\"mt-5 col-lg-6\">\r\n <button class=\"btn btn-outline w-100 px-2\" routerLink=\"/manage/controlcenter\"> <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_7543_11544)\">\r\n <path d=\"M1.58334 10C1.58334 10 4.91668 3.33337 10.75 3.33337C16.5833 3.33337 19.9167 10 19.9167 10C19.9167 10 16.5833 16.6667 10.75 16.6667C4.91668 16.6667 1.58334 10 1.58334 10Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.75 12.5C12.1307 12.5 13.25 11.3808 13.25 10C13.25 8.61933 12.1307 7.50004 10.75 7.50004C9.3693 7.50004 8.25001 8.61933 8.25001 10C8.25001 11.3808 9.3693 12.5 10.75 12.5Z\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_7543_11544\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.75)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span><span class=\"ms-2\">Watch Live</span></button>\r\n </div>\r\n <div class=\"mt-5 col-lg-6\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\" (click)=\"storeView(storeId)\"><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path d=\"M15.75 10.8333V15.8333C15.75 16.2754 15.5744 16.6993 15.2618 17.0118C14.9493 17.3244 14.5254 17.5 14.0833 17.5H4.91667C4.47464 17.5 4.05072 17.3244 3.73816 17.0118C3.42559 16.6993 3.25 16.2754 3.25 15.8333V6.66667C3.25 6.22464 3.42559 5.80072 3.73816 5.48816C4.05072 5.17559 4.47464 5 4.91667 5H9.91667M13.25 2.5H18.25M18.25 2.5V7.5M18.25 2.5L9.08333 11.6667\" stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span><span class=\"ms-2\">View more</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card 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 px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}.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}\n"] }]
280
+ args: [{ selector: 'lib-explore-view', template: "<div *ngIf=\"!noData\" class=\"row\">\r\n <div [ngClass]=\"setClass\">\r\n <div class=\"card px-2 py-3\">\r\n <div class=\"d-flex align-items-center me-2\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"cursor-pointer\" (click)=\"backToFootfall()\">\r\n <svg width=\"40\" height=\"40\" viewBox=\"0 0 40 40\" fill=\"none\" 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 </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div id=\"map1\" style=\"width: 100%; height: 100vh;\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"auth\" class=\"col-md-3\">\r\n <div class=\"card px-5 h-100 py-3 position-relative\">\r\n <img (click)=\"toggleAuth()\" class=\"leftIcon position-absolute left-0 cursor-pointer\"\r\n src=\"assets/tango/Image/leftIcon.svg\">\r\n <img *ngIf=\"dataImages !== null\" class=\"w-100\" [src]=\"dataImages\" (error)=\"dataImages = null\" [alt]=\"dataImages ? 'Image' : 'Error Image'\">\r\n <!-- <img *ngIf=\"dataImages === null\" class=\"w-100\" src=\"assets/tango/Image/baseimg.png\" alt=\"Image\"> -->\r\n <div *ngIf=\"dataImages === null\" 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 \r\n <div class=\"card-header mt-3 px-0 border-0 min-h-10px\" >\r\n <div class=\"col-md-12\">\r\n <h3 class=\"card-title align-items-start d-flex\">\r\n <span class=\"card-label cursor-pointer\" (click)=\"storeView(storeId)\">{{selectedStore.storeName ?? '--'}}</span>\r\n </h3>\r\n <span class=\"badge badge-light-primary mb-2\">App ID : {{selectedStore.appId ?? '--'}}</span>\r\n\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-body pt-0 px-0\">\r\n <div class=\"col-md-12\">\r\n <span class=\"map-subtext\">{{selectedStore?.storeProfile?.address ? selectedStore?.storeProfile?.address:'--'}} {{selectedStore?.storeProfile?.country ? selectedStore?.storeProfile?.country:'--'}} {{selectedStore?.storeProfile?.pincode ? selectedStore?.storeProfile?.pincode:'--'}}</span>\r\n <div class=\"flex items-center gap-5 mt-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.name ?selectedStore?.spocDetails?.name:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.contact ?selectedStore?.spocDetails?.contact:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M14.6654 3.99984C14.6654 3.2665 14.0654 2.6665 13.332 2.6665H2.66536C1.93203 2.6665 1.33203 3.2665 1.33203 3.99984M14.6654 3.99984V11.9998C14.6654 12.7332 14.0654 13.3332 13.332 13.3332H2.66536C1.93203 13.3332 1.33203 12.7332 1.33203 11.9998V3.99984M14.6654 3.99984L7.9987 8.6665L1.33203 3.99984\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.spocDetails?.email ? selectedStore?.spocDetails?.email:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600 \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.type ? selectedStore?.storeType?.type:'--'}}\r\n </span>\r\n </span>\r\n <span class=\"text-sm text-gray-600 mx-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146516)\">\r\n <path\r\n d=\"M14.665 11.2802V13.2802C14.6657 13.4659 14.6277 13.6497 14.5533 13.8198C14.479 13.9899 14.3699 14.1426 14.233 14.2681C14.0962 14.3937 13.9347 14.4892 13.7588 14.5487C13.5829 14.6082 13.3966 14.6303 13.2117 14.6136C11.1602 14.3907 9.18966 13.6897 7.45833 12.5669C5.84755 11.5433 4.48189 10.1777 3.45833 8.56689C2.33165 6.8277 1.63049 4.84756 1.41166 2.78689C1.395 2.60254 1.41691 2.41673 1.47599 2.24131C1.53508 2.06589 1.63004 1.90469 1.75484 1.76797C1.87964 1.63126 2.03153 1.52203 2.20086 1.44724C2.37018 1.37245 2.55322 1.33374 2.73833 1.33356H4.73833C5.06187 1.33038 5.37552 1.44495 5.62084 1.65592C5.86615 1.86689 6.02638 2.15986 6.07166 2.48023C6.15608 3.12027 6.31263 3.74871 6.53833 4.35356C6.62802 4.59218 6.64744 4.8515 6.59427 5.10081C6.5411 5.35012 6.41757 5.57897 6.23833 5.76023L5.39166 6.60689C6.3407 8.27592 7.72263 9.65786 9.39166 10.6069L10.2383 9.76023C10.4196 9.58099 10.6484 9.45746 10.8977 9.40429C11.1471 9.35112 11.4064 9.37053 11.645 9.46023C12.2498 9.68593 12.8783 9.84248 13.5183 9.92689C13.8422 9.97258 14.1379 10.1357 14.3494 10.3852C14.5608 10.6348 14.6731 10.9533 14.665 11.2802Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146516\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium map-subtext text-gray-800\">\r\n {{selectedStore?.storeType?.name ? selectedStore?.storeType?.name:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n \r\n <div class=\"flex items-center gap-5 my-3\">\r\n <span class=\"text-sm text-gray-600\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146529)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146529\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <span class=\"text-sm font-medium text-gray-800\">\r\n {{dataStoreMap?.hourlyData?.openTime ? dataStoreMap?.hourlyData?.openTime:'--'}} - {{dataStoreMap?.hourlyData?.closeTime ? dataStoreMap?.hourlyData?.closeTime:'--'}}\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgFootfall ? dataStoreMap?.avgData?.avgFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Footfall \r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekdayFootfall ? dataStoreMap?.avgData?.avgWeekdayFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekday Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n <div class=\"flex flex-col my-3\">\r\n <a class=\"map-avg\">\r\n {{dataStoreMap?.avgData?.avgWeekendFootfall ? dataStoreMap?.avgData?.avgWeekendFootfall:'--'}}\r\n </a>\r\n <br>\r\n <span class=\"text-sm text-gray-700 map-avgtest\">\r\n Avg Weekend Footfall <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1865_146536)\">\r\n <path\r\n d=\"M6 8V6M6 4H6.005M11 6C11 8.76142 8.76142 11 6 11C3.23858 11 1 8.76142 1 6C1 3.23858 3.23858 1 6 1C8.76142 1 11 3.23858 11 6Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1865_146536\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n \r\n \r\n \r\n </div>\r\n </div>\r\n <div class=\"card-footer border-0 px-0\">\r\n <div class=\"mt-5 col-lg-12\">\r\n <button class=\"btn btn-light-primary1 w-100 px-2\" (click)=\"storeView(storeId)\"><span class=\"ms-2\">View more\r\n Details</span></button>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<!-- <div *ngIf=\"loading\" class=\"row px-3 loader card 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 px-3\">\r\n <div class=\"card\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-nodata-table\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Store map</div>\r\n </div>\r\n </div>\r\n</div>", styles: ["#map{width:100%!important;position:relative}:host::ng-deep .mapboxgl-popup-content{background:var(--gradient-primary-800700265-deg, linear-gradient(27deg, #0082CC 8.33%, #0093E6 91.67%))!important}:host::ng-deep .map-container{height:500px;width:100%!important;position:relative;overflow:hidden}:host::ng-deep .mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#008ddc;display:none!important}#map{top:0;bottom:0;width:100%}.marker{display:block;border:none;border-radius:50%;cursor:pointer;padding:0}.tooltip{position:absolute;background-color:#fff;padding:5px 10px;border-radius:4px;box-shadow:0 2px 6px #00000026;z-index:3;font-size:12px;pointer-events:none}.mapboxgl-popup{background-color:#fffc;border-radius:8px;padding:10px}.mapboxgl-popup-content{background-color:#fffc;color:#fff;padding:5px;border-radius:5px}.leftIcon{width:50px;height:50px;left:-25px;top:31px}.card-title .card-label{color:var(--Gray-900, #101828)!important;font-family:Inter;font-size:14px!important;font-weight:600!important;line-height:20px}.btn-light-primary1{color:var(--White, #FFF)!important;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize;border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important}.map-subtext{color:var(--Gray-500, #667085)!important;font-size:12px!important;font-style:normal;font-weight:500!important;line-height:18px}.map-avg{color:var(--Gray-700, #344054)!important;font-size:18px!important;font-style:normal;font-weight:600;line-height:28px}.map-avgtest{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-style:normal;font-weight:500;line-height:20px}.img-nodata-table{width:35%;height:20%}:host::ng-deep .mapboxgl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0;outline:none!important;display:none!important}.nodata-title{font-size:14px!important;font-weight:600}.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}\n"] }]
281
281
  }], ctorParameters: () => [{ type: i1.PageInfoService }, { type: i2.TrafficService }, { type: i1.GlobalStateService }, { type: i3.Router }, { type: i0.ChangeDetectorRef }] });
282
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZXhwbG9yZS12aWV3L2V4cGxvcmUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2V4cGxvcmUtdmlldy9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBTXRDLE1BQU0sT0FBTyxvQkFBb0I7SUFxQmI7SUFBa0M7SUFBK0I7SUFBK0I7SUFBc0I7SUFwQnhJLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQU07SUFFbEIsb0NBQW9DO0lBQ3BDLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsVUFBVSxHQUEyQjtRQUNuQyxLQUFLLEVBQUUsYUFBYTtRQUNwQixNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7UUFDMUIsSUFBSSxFQUFFLEVBQUU7S0FDVCxDQUFDO0lBQ2UsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDbkMsSUFBSSxHQUFZLEtBQUssQ0FBQyxDQUFFLHVDQUF1QztJQUMvRCxRQUFRLEdBQVcsV0FBVyxDQUFDO0lBQ3RDLGFBQWEsQ0FBTTtJQUNuQixPQUFPLEdBQVUsSUFBSSxDQUFDO0lBQ3RCLE1B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Q0FBQTtRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDL0MsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztTQUM5QixDQUFDLENBQUM7SUFFTCxDQUFDO3dHQS9SVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENaakMsZ252QkF5U007OzRGRDdSTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhZmZpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCAqIGFzIG1hcGJveGdsIGZyb20gJ21hcGJveC1nbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWV4cGxvcmUtdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGxvcmUtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2V4cGxvcmUtdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cGxvcmVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSAge1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBzdG9yZUlkYXJyYXk6IGFueTtcclxuICBcclxuICAvLyBtYXA6IGdvb2dsZS5tYXBzLk1hcCB8IHVuZGVmaW5lZDtcclxuICBhdUxvY2F0aW9uczogYW55W10gPSBbXTtcclxuICBtYXBPcHRpb25zOiBnb29nbGUubWFwcy5NYXBPcHRpb25zID0ge1xyXG4gICAgbWFwSWQ6IFwiREVNT19NQVBfSURcIixcclxuICAgIGNlbnRlcjogeyBsYXQ6IDAsIGxuZzogMCB9LCAgLy8gSW5pdGlhbCBjZW50ZXJcclxuICAgIHpvb206IDEwLFxyXG4gIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIGF1dGg6IGJvb2xlYW4gPSBmYWxzZTsgIC8vIFNldCB0aGlzIGJhc2VkIG9uIHlvdXIgaW5pdGlhbCBsb2dpY1xyXG4gIHB1YmxpYyBzZXRDbGFzczogc3RyaW5nID0gJ2NvbC1tZC0xMic7XHJcbiAgc2VsZWN0ZWRTdG9yZTogYW55O1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9dHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPWZhbHNlO1xyXG4gIGRhdGFJbWFnZXM6IGFueTtcclxuICBkYXRhU3RvcmVNYXA6IGFueTtcclxuICBuZXdEYXRhU3RvcmVNYXA6IGFueTtcclxuICBzdG9yZUlkOiBhbnk7XHJcbmNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgcm91dGVyOlJvdXRlcixwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZil7XHJcblxyXG59XHJcbnNldFBhZ2VEYXRhKCl7XHJcbiAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZSgnRXhwbG9yZScpXHJcbiAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbignVG8gb3B0aW1pemUgYW5kIGltcHJvdmUgZXhpc3RpbmcgYWxnb3JpdGhtJylcclxuICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICB7dGl0bGU6J1RhbmdvIEV5ZScsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiBmYWxzZX0sXHJcbiAge3RpdGxlOidUYW5nbyBFeWUnLCBwYXRoOiAnL21hbmFnZS90cmFmZmljJywgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZX0sXHJcbiAge3RpdGxlOidUcmFmZmljJywgcGF0aDogJy9tYW5hZ2UvdHJhZmZpYycsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlfSxcclxuICB7dGl0bGU6J1RyYWZmaWMnLCBwYXRoOiAnL21hbmFnZS90cmFmZmljJywgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogdHJ1ZX0sXHJcbiAgXSlcclxufVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRQYWdlRGF0YSgpO1xyXG4gICBcclxuICAgIChtYXBib3hnbCBhcyBhbnkpLmFjY2Vzc1Rva2VuID0gJ3BrLmV5SjFJam9pWW1Gc1lXcHBkR0Z1WjI4aUxDSmhJam9pWTIwd1oyeGllbTU1TURGeFlUSjNiMjF6YjNGak5IZHdheUo5Lm5uSUl6dDdPZVlsWUh1ZkdFOGxGV1EnO1xyXG5cclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWVcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkZWJvdW5jZVRpbWUoMTAwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gT25seSBwcm9jZXNzIHRoZSBsYXRlc3QgZGF0YSBhZnRlciBkZWJvdW5jZSB0aW1lXHJcbiAgICAgICAgdGhpcy5oZWFkZXJEYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLnN0b3JlSWRhcnJheSA9IHRoaXMuaGVhZGVyRGF0YT8uc3RvcmVzLmZpbHRlcigoc3RvcmU6YW55KSA9PiBzdG9yZS5jaGVja2VkKS5tYXAoKHN0b3JlOmFueSkgPT4gc3RvcmUuc3RvcmVJZClcclxuICAgICAgIFxyXG4gICAgICAgIHRoaXMuZ2V0TWFwKCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIFxyXG4gICAgfVxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuXHJcblxyXG5cclxuICBtYXA6IG1hcGJveGdsLk1hcDtcclxuXHJcbiAgZ2V0TWFwKCkge1xyXG4gICAgdGhpcy5sb2FkaW5nID10cnVlO1xyXG4gICAgY29uc3Qgb2JqID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVEYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWRhcnJheVxyXG4gICAgfTtcclxuICBcclxuICAgIHRoaXMuc2VydmljZS5nZU1hcHMob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuZGF0YSAmJiByZXMuZGF0YS5zdG9yZURhdGEpIHtcclxuICAgICAgICAgICAgdGhpcy5hdUxvY2F0aW9ucyA9IHJlcy5kYXRhLnN0b3JlRGF0YTtcclxuICAgICAgICAgICAgdGhpcy5nZXREYXRhKCk7XHJcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5hdUxvY2F0aW9ucy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgY29uc3QgZmlyc3RMb2NhdGlvbiA9IHRoaXMuYXVMb2NhdGlvbnNbMF07XHJcbiAgICAgICAgICAgICAgaWYgKGZpcnN0TG9jYXRpb24gJiYgdHlwZW9mIGZpcnN0TG9jYXRpb24ubGF0ID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgZmlyc3RMb2NhdGlvbi5sbmcgPT09ICdudW1iZXInKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcE9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMubWFwT3B0aW9ucyxcclxuICAgICAgICAgICAgICAgICAgY2VudGVyOiB7IGxhdDogZmlyc3RMb2NhdGlvbi5sYXQsIGxuZzogZmlyc3RMb2NhdGlvbi5sbmcgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9IFxyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9ZmFsc2U7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm5vRGF0YSA9dHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPWZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPXRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0RGF0YSgpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCBtYXBDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFwMScpO1xyXG4gICAgICBpZiAoIW1hcENvbnRhaW5lcikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgaWYgKHRoaXMuYXVMb2NhdGlvbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICBcclxuICAgIGNvbnN0IGdlb2pzb24gPSB7XHJcbiAgICAgICd0eXBlJzogJ0ZlYXR1cmVDb2xsZWN0aW9uJyxcclxuICAgICAgJ2ZlYXR1cmVzJzogdGhpcy5hdUxvY2F0aW9ucy5tYXAoKHN0b3JlLCBpbmRleCkgPT4gKHtcclxuICAgICAgICAndHlwZSc6ICdGZWF0dXJlJyxcclxuICAgICAgICAncHJvcGVydGllcyc6IHtcclxuICAgICAgICAgICdzdG9yZU5hbWUnOiBzdG9yZS5zdG9yZU5hbWUsXHJcbiAgICAgICAgICAnaW1hZ2VJZCc6IDEwMTEgKyBpbmRleCxcclxuICAgICAgICAgICdpY29uU2l6ZSc6IFs2MCwgNjBdLFxyXG4gICAgICAgICAgJ2Zvb3RmYWxsJzogc3RvcmUuYXZnRm9vdGZhbGwsXHJcbiAgICAgICAgICAnb3BlblRpbWUnOiBzdG9yZS5vcGVuVGltZSxcclxuICAgICAgICAgICdjbG9zZVRpbWUnOiBzdG9yZS5jbG9zZVRpbWUsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAnZ2VvbWV0cnknOiB7XHJcbiAgICAgICAgICAndHlwZSc6ICdQb2ludCcsXHJcbiAgICAgICAgICAnY29vcmRpbmF0ZXMnOiBbc3RvcmUubG5nLCBzdG9yZS5sYXRdXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSlcclxuICAgIH07XHJcbiAgXHJcbiAgICBjb25zdCBmaXJzdExvY2F0aW9uID0gdGhpcy5hdUxvY2F0aW9uc1swXTtcclxuICAgIHRoaXMubWFwID0gbmV3IG1hcGJveGdsLk1hcCh7XHJcbiAgICAgIGNvbnRhaW5lcjogJ21hcDEnLFxyXG4gICAgICBzdHlsZTogJ21hcGJveDovL3N0eWxlcy9tYXBib3gvc3RyZWV0cy12MTInLFxyXG4gICAgICBjZW50ZXI6IFtmaXJzdExvY2F0aW9uLmxuZywgZmlyc3RMb2NhdGlvbi5sYXRdLCAvLyBDZW50ZXIgbWFwIG9uIHRoZSBmaXJzdCBsb2NhdGlvblxyXG4gICAgICB6b29tOiAxMCwgLy8gQWRqdXN0IHRoaXMgdmFsdWUgKDEgPSB3b3JsZCB2aWV3LCAyMCA9IGJ1aWxkaW5nIHZpZXcpXHJcbiAgICAgIG1heFpvb206IDIwLCAvLyBPcHRpb25hbDogTGltaXQgbWF4IHpvb20gbGV2ZWxcclxuICAgICAgbWluWm9vbTogMSAgIC8vIE9wdGlvbmFsOiBMaW1pdCBtaW4gem9vbSBsZXZlbFxyXG4gICAgfSk7XHJcbiAgXHJcbiAgICAvLyB0aGlzLm1hcCA9IG5ldyBtYXBib3hnbC5NYXAoe1xyXG4gICAgLy8gICBjb250YWluZXI6ICdtYXAxJyxcclxuICAgIC8vICAgc3R5bGU6ICdtYXBib3g6Ly9zdHlsZXMvbWFwYm94L3N0cmVldHMtdjEyJyxcclxuICAgIC8vICAgY2VudGVyOiBbZmlyc3RMb2NhdGlvbi5sbmcsIGZpcnN0TG9jYXRpb24ubGF0XSxcclxuICAgIC8vICAgem9vbTogNFxyXG4gICAgLy8gfSk7XHJcbiAgXHJcbiAgICBnZW9qc29uLmZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmUsIGZlYXR1cmVJbmRleCkgPT4ge1xyXG4gICAgICBjb25zdCB7IHByb3BlcnRpZXMsIGdlb21ldHJ5IH0gPSBmZWF0dXJlO1xyXG4gICAgICBjb25zdCBzdG9yZSA9IHRoaXMuYXVMb2NhdGlvbnNbZmVhdHVyZUluZGV4XTtcclxuICBcclxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgY29uc3Qgd2lkdGggPSBwcm9wZXJ0aWVzLmljb25TaXplWzBdO1xyXG4gICAgICBjb25zdCBoZWlnaHQgPSBwcm9wZXJ0aWVzLmljb25TaXplWzFdO1xyXG4gICAgICBlbC5jbGFzc05hbWUgPSAnbWFya2VyJztcclxuICAgICAgZWwuaW5uZXJIVE1MID0gYFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItaWNvblwiIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7IHdpZHRoOiA2NXB4OyBoZWlnaHQ6IDcwcHg7IGRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogY2VudGVyOyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlci1jb250ZW50XCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyBhbGlnbi1pdGVtczogY2VudGVyO1wiPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwibWItMVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEzXCIgaGVpZ2h0PVwiMTNcIiB2aWV3Qm94PVwiMCAwIDEzIDEzXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEuMzM2NTQgMy4zNjM3TDEuMjk2NTggMy40MjYxMUMwLjg3NzY5OCA0LjE2NzAxIDEuMzI0OTMgNS4xMDMzNSAyLjEyOTMxIDUuMjEwNzZDMi4yMDIxOCA1LjIxOTY3IDIuMjY5OTkgNS4yMjQzOCAyLjMzNjI1IDUuMjI0MzhDMi43NzAyMSA1LjIyNDM4IDMuMTUzOSA1LjAzODIxIDMuNDIxMzIgNC43NDc5M0wzLjgzNjY2IDQuMjk3MUw0LjI1MDU5IDQuNzQ5MjNDNC41MTQ3NiA1LjAzNzc4IDQuODk3NTggNS4yMjQzOCA1LjMzNDQ4IDUuMjI0MzhDNS43Njk0MSA1LjIyNDM4IDYuMTU0NDMgNS4wMzc1MiA2LjQxODM3IDQuNzQ5MjNMNi44MzM1OSA0LjI5NTY4TDcuMjQ4ODIgNC43NDkyM0M3LjUxMjc1IDUuMDM3NTIgNy44OTc3NyA1LjIyNDM4IDguMzMyNzEgNS4yMjQzOEM4Ljc2NzY0IDUuMjI0MzggOS4xNTI2NiA1LjAzNzUyIDkuNDE2NiA0Ljc0OTIzTDkuODMxODIgNC4yOTU2OEwxMC4yNDcgNC43NDkyM0MxMC41MTEgNS4wMzc1MiAxMC44OTYgNS4yMjQzOCAxMS4zMzA5IDUuMjI0MzhDMTEuMzk1IDUuMjI0MzggMTEuNDY0OSA1LjIxOTY2IDExLjUzNzIgNS4yMTA4M0MxMi4zNTkzIDUuMDk4NzUgMTIuODA4IDQuMTEyMjUgMTIuMzI4NiAzLjM2NDA4QzEyLjMyODYgMy4zNjQwMyAxMi4zMjg1IDMuMzYzOTkgMTIuMzI4NSAzLjM2Mzk1TDExLjAwODggMS4zMDYyMUwxMS4wMDgxIDEuMzA1MTFDMTAuOTk2NyAxLjI4NzIyIDEwLjk2ODYgMS4yNjgwNCAxMC45MzMyIDEuMjY4MDRIMi43Mjk0MkMyLjY5NDAzIDEuMjY4MDQgMi42NjU4OSAxLjI4NzIyIDIuNjU0NDggMS4zMDUxMUwyLjY1NDAxIDEuMzA1ODRMMS4zMzY1NCAzLjM2MzdaTTExLjA3MzEgNy4wNjY2N1Y5LjQxNzUzVjkuOTgwNDlIMTAuNTEwMUgzLjE1MjQ4SDIuNTg5NTJWOS40MTc1M1Y3LjA2NzAyQzIuNTA2NzggNy4wNzMxOCAyLjQyMzA4IDcuMDc2MzQgMi4zMzg1NSA3LjA3NjM0QzIuMzA2NzkgNy4wNzYzNCAyLjI3NTI1IDcuMDc1ODcgMi4yNDM5MiA3LjA3NDk1VjkuNDE3NTNWMTAuODY5NkMyLjI0MzkyIDExLjM1MjYgMi42NDQ2NyAxMS43NTg3IDMuMTUyNDggMTEuNzU4N0gxMC41MTAxQzExLjAxNzkgMTEuNzU4NyAxMS40MTg3IDExLjM1MjYgMTEuNDE4NyAxMC44Njk2VjkuNDE3NTNWNy4wNzUwOUMxMS4zODg4IDcuMDc1OTEgMTEuMzU4NyA3LjA3NjM0IDExLjMyODYgNy4wNzYzNEMxMS4yNDI4IDcuMDc2MzQgMTEuMTU3NSA3LjA3MzA4IDExLjA3MzEgNy4wNjY2N1pcIiBzdHJva2U9XCIjMTAxODI4XCIgc3Ryb2tlLXdpZHRoPVwiMS4xMjU5MlwiLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWxhYmVsXCIgc3R5bGU9XCJjb2xvcjogdmFyKC0tR3JheS03MDAsICMzNDQwNTQpOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZvbnQtZmFtaWx5OiBJbnRlcjsgZm9udC1zaXplOiA5LjAwN3B4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtd2VpZ2h0OiA2MDA7IGxpbmUtaGVpZ2h0OiAxM3B4O1wiPlxyXG4gICAgICAgICAgICAgICR7cHJvcGVydGllcy5zdG9yZU5hbWV9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIGA7XHJcbiAgICAgIGVsLnN0eWxlLndpZHRoID0gYCR7d2lkdGh9cHhgO1xyXG4gICAgICBlbC5zdHlsZS5oZWlnaHQgPSBgJHtoZWlnaHR9cHhgO1xyXG4gICAgICBlbC5zdHlsZS5iYWNrZ3JvdW5kU2l6ZSA9ICcxMDAlJztcclxuICBcclxuICAgICAgLy8gQ3JlYXRlIGFuIGVtcHR5IHBvcHVwIGluaXRpYWxseVxyXG4gICAgICBjb25zdCBwb3B1cCA9IG5ldyBtYXBib3hnbC5Qb3B1cCh7IG9mZnNldDogMjUgfSlcclxuICAgICAgICAuc2V0SFRNTCgnPGRpdj5Mb2FkaW5nLi4uPC9kaXY+Jyk7XHJcbiAgXHJcbiAgICAgIC8vIENyZWF0ZSBtYXJrZXIgd2l0aCB0aGUgcG9wdXBcclxuICAgICAgY29uc3QgbWFya2VyID0gbmV3IG1hcGJveGdsLk1hcmtlcihlbClcclxuICAgICAgICAuc2V0TG5nTGF0KFtnZW9tZXRyeS5jb29yZGluYXRlc1swXSwgZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV1dKVxyXG4gICAgICAgIC5zZXRQb3B1cChwb3B1cClcclxuICAgICAgICAuYWRkVG8odGhpcy5tYXApO1xyXG4gIFxyXG4gICAgICAvLyBIYW5kbGUgY2xpY2sgZXZlbnRzXHJcbiAgICAgIGVsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYWRqdXN0TGF5b3V0KHN0b3JlLCBtYXJrZXIsIHBvcHVwKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9LDApXHJcbiAgfVxyXG4gIFxyXG4gIGFkanVzdExheW91dChzdG9yZTogYW55LCBtYXJrZXI6IG1hcGJveGdsLk1hcmtlciwgcG9wdXA6IG1hcGJveGdsLlBvcHVwKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBzdG9yZTtcclxuXHJcbiAgICB0aGlzLnN0b3JlSWQgPSBzdG9yZT8uc3RvcmVJZDtcclxuICAgIHRoaXMuYXV0aCA9IHRydWU7XHJcbiAgICB0aGlzLnNldENsYXNzID0gJ2NvbC1tZC05JztcclxuICBcclxuICAgIGNvbnN0IG9iaiA9IHtcclxuICAgICAgY2xpZW50SWQ6IHRoaXMuaGVhZGVyRGF0YS5jbGllbnQsXHJcbiAgICAgIHN0b3JlRGF0ZTogdGhpcy5oZWFkZXJEYXRhLmRhdGUuZW5kRGF0ZSxcclxuICAgICAgc3RvcmVJZDogW3N0b3JlPy5zdG9yZUlkXVxyXG4gICAgfTtcclxuICBcclxuICAgIHRoaXMuc2VydmljZS5nZXRTdG9yZU1hcERhdGEob2JqKT8ucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXM/LmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFTdG9yZU1hcCA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgICAgdGhpcy5kYXRhSW1hZ2VzID0gcmVzPy5kYXRhPy5jYW1lcmFCYXNlSW1hZ2UgfHwgJ2Fzc2V0cy90YW5nby9JbWFnZXMvcHJldmlld19ub3QucG5nJztcclxuICBcclxuICAgICAgICAgICAgLy8gVXBkYXRlIHRoZSBwb3B1cCBjb250ZW50XHJcbiAgICAgICAgICAgIHBvcHVwLnNldEhUTUwoYFxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiIHNyYz1cIiR7dGhpcy5kYXRhSW1hZ2VzfVwiIG9uZXJyb3I9XCJ0aGlzLm9uZXJyb3I9bnVsbDsgdGhpcy5zcmM9J2Fzc2V0cy90YW5nby9JbWFnZXMvcHJldmlld19ub3QucG5nJztcIiBhbHQ9XCJTdG9yZSBJbWFnZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC1wcmltYXJ5LTgwMDcwMDI2NS1kZWcsIGxpbmVhci1ncmFkaWVudCgyN2RlZywgIzAwODJDQyA4LjMzJSwgIzAwOTNFNiA5MS42NyUpKTtjb2xvcjp3aGl0ZTsgcGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtd2hpdGVcIj4ke3N0b3JlLnN0b3JlTmFtZSB8fCAnU3RvcmUgTmFtZSd9PC9oND5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5BdmcuIEZvb3RmYWxsIC8gSG91cjogJHt0aGlzLmRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8uaG91cmx5Rm9vdGZhbGwgfHwgJy0tJ308L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPk9wZW4gVGltZTogJHt0aGlzLmRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8ub3BlblRpbWUgfHwgJy0tJ308L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPkNsb3NlIFRpbWU6ICR7dGhpcy5kYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/LmNsb3NlVGltZSB8fCAnLS0nfTwvaDY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIGApO1xyXG4gIFxyXG4gICAgICAgICAgICAvLyBFbnN1cmUgdGhlIHBvcHVwIGlzIGFkZGVkIHRvIHRoZSBtYXAgYW5kIHBvc2l0aW9uZWQgY29ycmVjdGx5XHJcbiAgICAgICAgICAgIG1hcmtlci5zZXRQb3B1cChwb3B1cCk7IC8vIEF0dGFjaCB0aGUgcG9wdXAgdG8gdGhlIG1hcmtlclxyXG4gICAgICAgICAgICBpZiAoIXBvcHVwLmlzT3BlbigpKSB7XHJcbiAgICAgICAgICAgICAgcG9wdXAuYWRkVG8odGhpcy5tYXApOyAvLyBBZGQgcG9wdXAgdG8gdGhlIG1hcFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFJbWFnZXMgPSAnYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmV2aWV3X25vdC5wbmcnO1xyXG4gICAgICAgICAgICBwb3B1cC5zZXRIVE1MKGBcclxuICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDBcIiBzcmM9XCIke3RoaXMuZGF0YUltYWdlc31cIiBvbmVycm9yPVwidGhpcy5vbmVycm9yPW51bGw7IHRoaXMuc3JjPSdhc3NldHMvdGFuZ28vSW1hZ2VzL3ByZXZpZXdfbm90LnBuZyc7XCIgYWx0PVwiU3RvcmUgSW1hZ2VcIj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiYmFja2dyb3VuZDogdmFyKC0tZ3JhZGllbnQtcHJpbWFyeS04MDA3MDAyNjUtZGVnLCBsaW5lYXItZ3JhZGllbnQoMjdkZWcsICMwMDgyQ0MgOC4zMyUsICMwMDkzRTYgOTEuNjclKSk7Y29sb3I6d2hpdGU7IHBhZGRpbmc6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8aDQgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+JHtzdG9yZS5zdG9yZU5hbWUgfHwgJ1N0b3JlIE5hbWUnfTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+QXZlcmFnZSBGb290ZmFsbDogLS08L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPk9wZW4gVGltZTogLS08L2g2PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPkNsb3NlIFRpbWU6IC0tPC9oNj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgYCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgZmV0Y2hpbmcgc3RvcmUgbWFwIGRhdGE6JywgZXJyKTtcclxuICAgICAgICAgIHBvcHVwLnNldEhUTUwoYFxyXG4gICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiIHNyYz1cIiR7dGhpcy5kYXRhSW1hZ2VzfVwiIG9uZXJyb3I9XCJ0aGlzLm9uZXJyb3I9bnVsbDsgdGhpcy5zcmM9J2Fzc2V0cy90YW5nby9JbWFnZXMvcHJldmlld19ub3QucG5nJztcIiBhbHQ9XCJTdG9yZSBJbWFnZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC1wcmltYXJ5LTgwMDcwMDI2NS1kZWcsIGxpbmVhci1ncmFkaWVudCgyN2RlZywgIzAwODJDQyA4LjMzJSwgIzAwOTNFNiA5MS42NyUpKTtjb2xvcjp3aGl0ZTsgcGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtd2hpdGVcIj4ke3N0b3JlLnN0b3JlTmFtZSB8fCAnU3RvcmUgTmFtZSd9PC9oND5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5BdmVyYWdlIEZvb3RmYWxsOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+T3BlbiBUaW1lOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+Q2xvc2UgVGltZTogLS08L2g2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgYCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbiAgXHJcbiAgXHJcbiAgXHJcbiAgXHJcbiAgLy8gYWRqdXN0TGF5b3V0KHN0b3JlOmFueSkge1xyXG4gIC8vICAgdGhpcy5zZWxlY3RlZFN0b3JlID0gc3RvcmU7XHJcbiAgLy8gICB0aGlzLmF1dGggPXRydWU7XHJcbiAgLy8gICB0aGlzLnNldENsYXNzID0gJ2NvbC1tZC05JzsgLy8gQWRqdXN0IHRoZSBsYXlvdXQgdG8gOCBjb2x1bW5zIG9uIG1hcmtlciBjbGlja1xyXG4gICBcclxuICAvLyAgIC8vIHRoaXMubmV3RGF0YVN0b3JlTWFwID0gZGF0YTtcclxuICAvLyB9XHJcbiAgZGF0YVZhbHVlKGRhdGE6YW55KXtcclxuICAgIHRoaXMubmV3RGF0YVN0b3JlTWFwID0gZGF0YVxyXG4gIH1cclxuICB0b2dnbGVBdXRoKCkge1xyXG4gICAgdGhpcy5hdXRoID0gIXRoaXMuYXV0aDtcclxuICAgIHRoaXMuc2V0Q2xhc3MgPSB0aGlzLmF1dGggPyAnY29sLW1kLTknIDogJ2NvbC1tZC0xMic7XHJcbiAgfVxyXG5cclxuICAgIGJhY2tUb0Zvb3RmYWxsKCl7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9tYW5hZ2UvdHJhZmZpYyddKVxyXG4gIH1cclxuICBzdG9yZVZpZXcoZGF0YTphbnkpe1xyXG4gICAgY29uc3QgZGF0YXZhbHVlOiBhbnkgPSBKU09OLnBhcnNlKFxyXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIpIHx8IFwie31cIlxyXG4gICAgKTtcclxuICAgIGRhdGF2YWx1ZS5zdG9yZSA9IGRhdGE7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcImhlYWRlci1maWx0ZXJzXCIsIEpTT04uc3RyaW5naWZ5KGRhdGF2YWx1ZSkpO1xyXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgIHRoaXMuZ3MuZGF0YVJhbmdlVmFsdWUubmV4dChkYXRhdmFsdWUpXHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCIvbWFuYWdlL3N0b3Jlcy9jYW1lcmFzXCJdLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IHN0b3JlSWQ6IGRhdGF9LFxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuICAvLyBvbk1hcmtlckNsaWNrKGxvY2F0aW9uOiBhbnkpIHtcclxuICAvLyAgIGNvbnNvbGUubG9nKCdNYXJrZXIgY2xpY2tlZDonLCBsb2NhdGlvbik7XHJcbiAgLy8gICAvLyBQZXJmb3JtIGFjdGlvbnMgYmFzZWQgb24gdGhlIGNsaWNrZWQgbG9jYXRpb25cclxuICAvLyB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cIiFub0RhdGFcIiBjbGFzcz1cInJvd1wiPlxyXG4gICAgPGRpdiBbbmdDbGFzc109XCJzZXRDbGFzc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTIgcHktM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBtZS0yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwiYmFja1RvRm9vdGZhbGwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiIHZpZXdCb3g9XCIwIDAgNDAgNDBcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGZpbHRlcj1cInVybCgjZmlsdGVyMF9kXzI1ODVfNzAzNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMlwiIHk9XCIxXCIgd2lkdGg9XCIzNlwiIGhlaWdodD1cIjM2XCIgcng9XCI4XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiMi41XCIgeT1cIjEuNVwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzNVwiIHJ4PVwiNy41XCIgc3Ryb2tlPVwiI0QwRDVERFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yNS44MzI3IDE5SDE0LjE2Nk0xNC4xNjYgMTlMMTkuOTk5MyAyNC44MzM0TTE0LjE2NiAxOUwxOS45OTkzIDEzLjE2NjdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmlsdGVyIGlkPVwiZmlsdGVyMF9kXzI1ODVfNzAzNlwiIHg9XCIwXCIgeT1cIjBcIiB3aWR0aD1cIjQwXCIgaGVpZ2h0PVwiNDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJVbml0cz1cInVzZXJTcGFjZU9uVXNlXCIgY29sb3ItaW50ZXJwb2xhdGlvbi1maWx0ZXJzPVwic1JHQlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PVwiMFwiIHJlc3VsdD1cIkJhY2tncm91bmRJbWFnZUZpeFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUNvbG9yTWF0cml4IGluPVwiU291cmNlQWxwaGFcIiB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwXCIgcmVzdWx0PVwiaGFyZEFscGhhXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlT2Zmc2V0IGR5PVwiMVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggdHlwZT1cIm1hdHJpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM9XCIwIDAgMCAwIDAuMDYyNzQ1MSAwIDAgMCAwIDAuMDk0MTE3NiAwIDAgMCAwIDAuMTU2ODYzIDAgMCAwIDAuMDUgMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbjI9XCJCYWNrZ3JvdW5kSW1hZ2VGaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwiZWZmZWN0MV9kcm9wU2hhZG93XzI1ODVfNzAzNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUJsZW5kIG1vZGU9XCJub3JtYWxcIiBpbj1cIlNvdXJjZUdyYXBoaWNcIiBpbjI9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD1cInNoYXBlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZpbHRlcj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHAtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBpZD1cIm1hcDFcIiBzdHlsZT1cIndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMHZoO1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJhdXRoXCIgY2xhc3M9XCJjb2wtbWQtM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIHB4LTUgaC0xMDAgcHktMyBwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICA8aW1nIChjbGljayk9XCJ0b2dnbGVBdXRoKClcIiBjbGFzcz1cImxlZnRJY29uIHBvc2l0aW9uLWFic29sdXRlIGxlZnQtMCBjdXJzb3ItcG9pbnRlclwiXHJcbiAgICAgICAgICAgICAgICBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2UvbGVmdEljb24uc3ZnXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJkYXRhSW1hZ2VzICE9PSBudWxsXCIgY2xhc3M9XCJ3LTEwMFwiIFtzcmNdPVwiZGF0YUltYWdlc1wiIChlcnJvcik9XCJkYXRhSW1hZ2VzID0gbnVsbFwiIFthbHRdPVwiZGF0YUltYWdlcyA/ICdJbWFnZScgOiAnRXJyb3IgSW1hZ2UnXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGltZyAqbmdJZj1cImRhdGFJbWFnZXMgPT09IG51bGxcIiBjbGFzcz1cInctMTAwXCIgc3JjPVwiYXNzZXRzL3RhbmdvL0ltYWdlL2Jhc2VpbWcucG5nXCIgYWx0PVwiSW1hZ2VcIj4gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkYXRhSW1hZ2VzID09PSBudWxsXCIgY2xhc3M9XCJuby1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1iLTVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjNcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjMgMjBcIiBmaWxsPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJHcm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNi41IDYuMzIyMjdINi41MU0xNi4yNSA5LjMyMjI3SDIxLjVMMTggMTYuMzIyM0wxNC45MSAxMi4wMDIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGlkPVwiVmVjdG9yXzJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMS41IDE2LjMyMjlINS4yNkM1LjYzMjczIDE2LjMyNTUgNS45OTg3NyAxNi4yMjM5IDYuMzE2ODIgMTYuMDI5NUM2LjYzNDg3IDE1LjgzNTIgNi44OTIyOCAxNS41NTU4IDcuMDYgMTUuMjIyOUw4LjUgMTIuMzIyOU0xLjUgMTguMzIyOVYxNC4zMjI5TTE3LjUgNi44MjI5MUwxMy41IDE0LjgyMjlMMy4xMSA5LjYyMjkxQzIuNDIwMzMgOS4yNzU1MyAxLjg5NjM1IDguNjY5MSAxLjY1MjcyIDcuOTM2MzJDMS40MDkwOSA3LjIwMzU0IDEuNDY1NjQgNi40MDQxIDEuODEgNS43MTI5MUwzLjE5IDIuOTIyOTFDMy4zNjIgMi41ODAxNCAzLjU5OTg0IDIuMjc0NiAzLjg4OTk0IDIuMDIzNzVDNC4xODAwMyAxLjc3MjkgNC41MTY3IDEuNTgxNjUgNC44ODA3MiAxLjQ2MDkzQzUuMjQ0NzQgMS4zNDAyMSA1LjYyODk3IDEuMjkyMzkgNi4wMTE0NyAxLjMyMDE4QzYuMzkzOTggMS4zNDc5NyA2Ljc2NzI2IDEuNDUwODQgNy4xMSAxLjYyMjkxTDE3LjUgNi44MjI5MVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWFkZXIgbWItNSB0ZXh0LWNlbnRlclwiPlByZXZpZXcgbm90IGF2YWlsYWJsZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb24gbWItNSB0ZXh0LWNlbnRlclwiPlRoZSBzZWxlY3RlZCBjYW1lcmEgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGVcclxuICAgICAgICAgICAgICAgICAgICBtb21lbnQuPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIG10LTMgcHgtMCBib3JkZXItMCBtaW4taC0xMHB4XCIgPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGUgYWxpZ24taXRlbXMtc3RhcnQgZC1mbGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzdG9yZVZpZXcoc3RvcmVJZClcIj57e3NlbGVjdGVkU3RvcmUuc3RvcmVOYW1lID8/ICctLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2gzPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtcHJpbWFyeSBtYi0yXCI+QXBwIElEIDoge3tzZWxlY3RlZFN0b3JlLmFwcElkID8/ICctLSd9fTwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBwdC0wIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hcC1zdWJ0ZXh0XCI+e3tzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmFkZHJlc3MgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmFkZHJlc3M6Jy0tJ319IHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5jb3VudHJ5ID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5jb3VudHJ5OictLSd9fSB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8ucGluY29kZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8ucGluY29kZTonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTMuMzM0NiAxNFYxMi42NjY3QzEzLjMzNDYgMTEuOTU5NCAxMy4wNTM3IDExLjI4MTEgMTIuNTUzNiAxMC43ODFDMTIuMDUzNSAxMC4yODEgMTEuMzc1MiAxMCAxMC42NjggMTBINS4zMzQ2NEM0LjYyNzM5IDEwIDMuOTQ5MTEgMTAuMjgxIDMuNDQ5MDIgMTAuNzgxQzIuOTQ4OTIgMTEuMjgxMSAyLjY2Nzk3IDExLjk1OTQgMi42Njc5NyAxMi42NjY3VjE0TTEwLjY2OCA0LjY2NjY3QzEwLjY2OCA2LjEzOTQzIDkuNDc0MDYgNy4zMzMzMyA4LjAwMTMgNy4zMzMzM0M2LjUyODU0IDcuMzMzMzMgNS4zMzQ2NCA2LjEzOTQzIDUuMzM0NjQgNC42NjY2N0M1LjMzNDY0IDMuMTkzOTEgNi41Mjg1NCAyIDguMDAxMyAyQzkuNDc0MDYgMiAxMC42NjggMy4xOTM5MSAxMC42NjggNC42NjY2N1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5uYW1lID9zZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8ubmFtZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMCBteC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTE2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjUgMTEuMjgwMlYxMy4yODAyQzE0LjY2NTcgMTMuNDY1OSAxNC42Mjc3IDEzLjY0OTcgMTQuNTUzMyAxMy44MTk4QzE0LjQ3OSAxMy45ODk5IDE0LjM2OTkgMTQuMTQyNiAxNC4yMzMgMTQuMjY4MUMxNC4wOTYyIDE0LjM5MzcgMTMuOTM0NyAxNC40ODkyIDEzLjc1ODggMTQuNTQ4N0MxMy41ODI5IDE0LjYwODIgMTMuMzk2NiAxNC42MzAzIDEzLjIxMTcgMTQuNjEzNkMxMS4xNjAyIDE0LjM5MDcgOS4xODk2NiAxMy42ODk3IDcuNDU4MzMgMTIuNTY2OUM1Ljg0NzU1IDExLjU0MzMgNC40ODE4OSAxMC4xNzc3IDMuNDU4MzMgOC41NjY4OUMyLjMzMTY1IDYuODI3NyAxLjYzMDQ5IDQuODQ3NTYgMS40MTE2NiAyLjc4Njg5QzEuMzk1IDIuNjAyNTQgMS40MTY5MSAyLjQxNjczIDEuNDc1OTkgMi4yNDEzMUMxLjUzNTA4IDIuMDY1ODkgMS42MzAwNCAxLjkwNDY5IDEuNzU0ODQgMS43Njc5N0MxLjg3OTY0IDEuNjMxMjYgMi4wMzE1MyAxLjUyMjAzIDIuMjAwODYgMS40NDcyNEMyLjM3MDE4IDEuMzcyNDUgMi41NTMyMiAxLjMzMzc0IDIuNzM4MzMgMS4zMzM1Nkg0LjczODMzQzUuMDYxODcgMS4zMzAzOCA1LjM3NTUyIDEuNDQ0OTUgNS42MjA4NCAxLjY1NTkyQzUuODY2MTUgMS44NjY4OSA2LjAyNjM4IDIuMTU5ODYgNi4wNzE2NiAyLjQ4MDIzQzYuMTU2MDggMy4xMjAyNyA2LjMxMjYzIDMuNzQ4NzEgNi41MzgzMyA0LjM1MzU2QzYuNjI4MDIgNC41OTIxOCA2LjY0NzQ0IDQuODUxNSA2LjU5NDI3IDUuMTAwODFDNi41NDExIDUuMzUwMTIgNi40MTc1NyA1LjU3ODk3IDYuMjM4MzMgNS43NjAyM0w1LjM5MTY2IDYuNjA2ODlDNi4zNDA3IDguMjc1OTIgNy43MjI2MyA5LjY1Nzg2IDkuMzkxNjYgMTAuNjA2OUwxMC4yMzgzIDkuNzYwMjNDMTAuNDE5NiA5LjU4MDk5IDEwLjY0ODQgOS40NTc0NiAxMC44OTc3IDkuNDA0MjlDMTEuMTQ3MSA5LjM1MTEyIDExLjQwNjQgOS4zNzA1MyAxMS42NDUgOS40NjAyM0MxMi4yNDk4IDkuNjg1OTMgMTIuODc4MyA5Ljg0MjQ4IDEzLjUxODMgOS45MjY4OUMxMy44NDIyIDkuOTcyNTggMTQuMTM3OSAxMC4xMzU3IDE0LjM0OTQgMTAuMzg1MkMxNC41NjA4IDEwLjYzNDggMTQuNjczMSAxMC45NTMzIDE0LjY2NSAxMS4yODAyWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8xODY1XzE0NjUxNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8uY29udGFjdCA/c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/LmNvbnRhY3Q6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xNC42NjU0IDMuOTk5ODRDMTQuNjY1NCAzLjI2NjUgMTQuMDY1NCAyLjY2NjUgMTMuMzMyIDIuNjY2NUgyLjY2NTM2QzEuOTMyMDMgMi42NjY1IDEuMzMyMDMgMy4yNjY1IDEuMzMyMDMgMy45OTk4NE0xNC42NjU0IDMuOTk5ODRWMTEuOTk5OEMxNC42NjU0IDEyLjczMzIgMTQuMDY1NCAxMy4zMzMyIDEzLjMzMiAxMy4zMzMySDIuNjY1MzZDMS45MzIwMyAxMy4zMzMyIDEuMzMyMDMgMTIuNzMzMiAxLjMzMjAzIDExLjk5OThWMy45OTk4NE0xNC42NjU0IDMuOTk5ODRMNy45OTg3IDguNjY2NUwxLjMzMjAzIDMuOTk5ODRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS40XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5lbWFpbCA/IHNlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5lbWFpbDonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNSBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzQ2IDE0VjEyLjY2NjdDMTMuMzM0NiAxMS45NTk0IDEzLjA1MzcgMTEuMjgxMSAxMi41NTM2IDEwLjc4MUMxMi4wNTM1IDEwLjI4MSAxMS4zNzUyIDEwIDEwLjY2OCAxMEg1LjMzNDY0QzQuNjI3MzkgMTAgMy45NDkxMSAxMC4yODEgMy40NDkwMiAxMC43ODFDMi45NDg5MiAxMS4yODExIDIuNjY3OTcgMTEuOTU5NCAyLjY2Nzk3IDEyLjY2NjdWMTRNMTAuNjY4IDQuNjY2NjdDMTAuNjY4IDYuMTM5NDMgOS40NzQwNiA3LjMzMzMzIDguMDAxMyA3LjMzMzMzQzYuNTI4NTQgNy4zMzMzMyA1LjMzNDY0IDYuMTM5NDMgNS4zMzQ2NCA0LjY2NjY3QzUuMzM0NjQgMy4xOTM5MSA2LjUyODU0IDIgOC4wMDEzIDJDOS40NzQwNiAyIDEwLjY2OCAzLjE5MzkxIDEwLjY2OCA0LjY2NjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy50eXBlID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy50eXBlOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG14LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MTYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NSAxMS4yODAyVjEzLjI4MDJDMTQuNjY1NyAxMy40NjU5IDE0LjYyNzcgMTMuNjQ5NyAxNC41NTMzIDEzLjgxOThDMTQuNDc5IDEzLjk4OTkgMTQuMzY5OSAxNC4xNDI2IDE0LjIzMyAxNC4yNjgxQzE0LjA5NjIgMTQuMzkzNyAxMy45MzQ3IDE0LjQ4OTIgMTMuNzU4OCAxNC41NDg3QzEzLjU4MjkgMTQuNjA4MiAxMy4zOTY2IDE0LjYzMDMgMTMuMjExNyAxNC42MTM2QzExLjE2MDIgMTQuMzkwNyA5LjE4OTY2IDEzLjY4OTcgNy40NTgzMyAxMi41NjY5QzUuODQ3NTUgMTEuNTQzMyA0LjQ4MTg5IDEwLjE3NzcgMy40NTgzMyA4LjU2Njg5QzIuMzMxNjUgNi44Mjc3IDEuNjMwNDkgNC44NDc1NiAxLjQxMTY2IDIuNzg2ODlDMS4zOTUgMi42MDI1NCAxLjQxNjkxIDIuNDE2NzMgMS40NzU5OSAyLjI0MTMxQzEuNTM1MDggMi4wNjU4OSAxLjYzMDA0IDEuOTA0NjkgMS43NTQ4NCAxLjc2Nzk3QzEuODc5NjQgMS42MzEyNiAyLjAzMTUzIDEuNTIyMDMgMi4yMDA4NiAxLjQ0NzI0QzIuMzcwMTggMS4zNzI0NSAyLjU1MzIyIDEuMzMzNzQgMi43MzgzMyAxLjMzMzU2SDQuNzM4MzNDNS4wNjE4NyAxLjMzMDM4IDUuMzc1NTIgMS40NDQ5NSA1LjYyMDg0IDEuNjU1OTJDNS44NjYxNSAxLjg2Njg5IDYuMDI2MzggMi4xNTk4NiA2LjA3MTY2IDIuNDgwMjNDNi4xNTYwOCAzLjEyMDI3IDYuMzEyNjMgMy43NDg3MSA2LjUzODMzIDQuMzUzNTZDNi42MjgwMiA0LjU5MjE4IDYuNjQ3NDQgNC44NTE1IDYuNTk0MjcgNS4xMDA4MUM2LjU0MTEgNS4zNTAxMiA2LjQxNzU3IDUuNTc4OTcgNi4yMzgzMyA1Ljc2MDIzTDUuMzkxNjYgNi42MDY4OUM2LjM0MDcgOC4yNzU5MiA3LjcyMjYzIDkuNjU3ODYgOS4zOTE2NiAxMC42MDY5TDEwLjIzODMgOS43NjAyM0MxMC40MTk2IDkuNTgwOTkgMTAuNjQ4NCA5LjQ1NzQ2IDEwLjg5NzcgOS40MDQyOUMxMS4xNDcxIDkuMzUxMTIgMTEuNDA2NCA5LjM3MDUzIDExLjY0NSA5LjQ2MDIzQzEyLjI0OTggOS42ODU5MyAxMi44NzgzIDkuODQyNDggMTMuNTE4MyA5LjkyNjg5QzEzLjg0MjIgOS45NzI1OCAxNC4xMzc5IDEwLjEzNTcgMTQuMzQ5NCAxMC4zODUyQzE0LjU2MDggMTAuNjM0OCAxNC42NzMxIDEwLjk1MzMgMTQuNjY1IDExLjI4MDJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8ubmFtZSA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlVHlwZT8ubmFtZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIHZpZXdCb3g9XCIwIDAgMTggMThcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MjkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTkgNC41VjlMMTIgMTAuNU0xNi41IDlDMTYuNSAxMy4xNDIxIDEzLjE0MjEgMTYuNSA5IDE2LjVDNC44NTc4NiAxNi41IDEuNSAxMy4xNDIxIDEuNSA5QzEuNSA0Ljg1Nzg2IDQuODU3ODYgMS41IDkgMS41QzEzLjE0MjEgMS41IDE2LjUgNC44NTc4NiAxNi41IDlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTI5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE4XCIgaGVpZ2h0PVwiMThcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8ub3BlblRpbWUgPyBkYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/Lm9wZW5UaW1lOictLSd9fSAtIHt7ZGF0YVN0b3JlTWFwPy5ob3VybHlEYXRhPy5jbG9zZVRpbWUgPyBkYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/LmNsb3NlVGltZTonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXAtYXZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnRm9vdGZhbGwgPyBkYXRhU3RvcmVNYXA/LmF2Z0RhdGE/LmF2Z0Zvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBGb290ZmFsbCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWFwLWF2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhU3RvcmVNYXA/LmF2Z0RhdGE/LmF2Z1dlZWtkYXlGb290ZmFsbCA/IGRhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnV2Vla2RheUZvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBXZWVrZGF5IEZvb3RmYWxsIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPVwibWFwLWF2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhU3RvcmVNYXA/LmF2Z0RhdGE/LmF2Z1dlZWtlbmRGb290ZmFsbCA/IGRhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnV2Vla2VuZEZvb3RmYWxsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS03MDAgbWFwLWF2Z3Rlc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEF2ZyBXZWVrZW5kIEZvb3RmYWxsIDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzE4NjVfMTQ2NTM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTYgOFY2TTYgNEg2LjAwNU0xMSA2QzExIDguNzYxNDIgOC43NjE0MiAxMSA2IDExQzMuMjM4NTggMTEgMSA4Ljc2MTQyIDEgNkMxIDMuMjM4NTggMy4yMzg1OCAxIDYgMUM4Ljc2MTQyIDEgMTEgMy4yMzg1OCAxMSA2WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzk4QTJCM1wiIHN0cm9rZS13aWR0aD1cIjEuNVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTM2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCIgZmlsbD1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWZvb3RlciBib3JkZXItMCBwdC0wIHB4LTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtNSBjb2wtbGctNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIHB4LTJcIiByb3V0ZXJMaW5rPVwiL21hbmFnZS9jb250cm9sY2VudGVyXCI+IDxzcGFuPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjFcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjEgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF83NTQzXzExNTQ0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xLjU4MzM0IDEwQzEuNTgzMzQgMTAgNC45MTY2OCAzLjMzMzM3IDEwLjc1IDMuMzMzMzdDMTYuNTgzMyAzLjMzMzM3IDE5LjkxNjcgMTAgMTkuOTE2NyAxMEMxOS45MTY3IDEwIDE2LjU4MzMgMTYuNjY2NyAxMC43NSAxNi42NjY3QzQuOTE2NjggMTYuNjY2NyAxLjU4MzM0IDEwIDEuNTgzMzQgMTBaXCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjc1IDEyLjVDMTIuMTMwNyAxMi41IDEzLjI1IDExLjM4MDggMTMuMjUgMTBDMTMuMjUgOC42MTkzMyAxMi4xMzA3IDcuNTAwMDQgMTAuNzUgNy41MDAwNEM5LjM2OTMgNy41MDAwNCA4LjI1MDAxIDguNjE5MzMgOC4yNTAwMSAxMEM4LjI1MDAxIDExLjM4MDggOS4zNjkzIDEyLjUgMTAuNzUgMTIuNVpcIiBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNzU0M18xMTU0NFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHJlY3Qgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgZmlsbD1cIndoaXRlXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuNzUpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm1zLTJcIj5XYXRjaCBMaXZlPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IGNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLWxpZ2h0LXByaW1hcnkxIHctMTAwIHB4LTJcIiAoY2xpY2spPVwic3RvcmVWaWV3KHN0b3JlSWQpXCI+PHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMVwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMSAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE1Ljc1IDEwLjgzMzNWMTUuODMzM0MxNS43NSAxNi4yNzU0IDE1LjU3NDQgMTYuNjk5MyAxNS4yNjE4IDE3LjAxMThDMTQuOTQ5MyAxNy4zMjQ0IDE0LjUyNTQgMTcuNSAxNC4wODMzIDE3LjVINC45MTY2N0M0LjQ3NDY0IDE3LjUgNC4wNTA3MiAxNy4zMjQ0IDMuNzM4MTYgMTcuMDExOEMzLjQyNTU5IDE2LjY5OTMgMy4yNSAxNi4yNzU0IDMuMjUgMTUuODMzM1Y2LjY2NjY3QzMuMjUgNi4yMjQ2NCAzLjQyNTU5IDUuODAwNzIgMy43MzgxNiA1LjQ4ODE2QzQuMDUwNzIgNS4xNzU1OSA0LjQ3NDY0IDUgNC45MTY2NyA1SDkuOTE2NjdNMTMuMjUgMi41SDE4LjI1TTE4LjI1IDIuNVY3LjVNMTguMjUgMi41TDkuMDgzMzMgMTEuNjY2N1wiIHN0cm9rZT1cIndoaXRlXCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz1cIm1zLTJcIj5WaWV3IG1vcmU8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBweC0zIGxvYWRlciBjYXJkICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4gLS0+XHJcbjxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvdyBweC0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhLXRhYmxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgU3RvcmUgbWFwPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
282
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtdHJhZmZpYy9zcmMvbGliL2NvbXBvbmVudHMvZXhwbG9yZS12aWV3L2V4cGxvcmUtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1hbmFseXNlLXRyYWZmaWMvc3JjL2xpYi9jb21wb25lbnRzL2V4cGxvcmUtdmlldy9leHBsb3JlLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQyxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRy9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEtBQUssUUFBUSxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0FBTXRDLE1BQU0sT0FBTyxvQkFBb0I7SUFxQmI7SUFBa0M7SUFBK0I7SUFBK0I7SUFBc0I7SUFwQnhJLFVBQVUsQ0FBTTtJQUNoQixZQUFZLENBQU07SUFFbEIsb0NBQW9DO0lBQ3BDLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsVUFBVSxHQUEyQjtRQUNuQyxLQUFLLEVBQUUsYUFBYTtRQUNwQixNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUU7UUFDMUIsSUFBSSxFQUFFLEVBQUU7S0FDVCxDQUFDO0lBQ2UsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFDbkMsSUFBSSxHQUFZLEtBQUssQ0FBQyxDQUFFLHVDQUF1QztJQUMvRCxRQUFRLEdBQVcsV0FBVyxDQUFDO0lBQ3RDLGFBQWEsQ0FBTTtJQUNuQixPQUFPLEdBQVUsSUFBSSxDQUFDO0lBQ3RCLE1B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Q0FBQTtRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEVBQUU7WUFDL0MsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQztTQUM5QixDQUFDLENBQUM7SUFFTCxDQUFDO3dHQS9SVSxvQkFBb0I7NEZBQXBCLG9CQUFvQix3RENaakMsK2hyQkF5Uk07OzRGRDdRTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhZmZpY1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90cmFmZmljLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UsIFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCAqIGFzIG1hcGJveGdsIGZyb20gJ21hcGJveC1nbCc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWV4cGxvcmUtdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cGxvcmUtdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2V4cGxvcmUtdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEV4cGxvcmVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSAge1xyXG4gIGhlYWRlckRhdGE6IGFueTtcclxuICBzdG9yZUlkYXJyYXk6IGFueTtcclxuICBcclxuICAvLyBtYXA6IGdvb2dsZS5tYXBzLk1hcCB8IHVuZGVmaW5lZDtcclxuICBhdUxvY2F0aW9uczogYW55W10gPSBbXTtcclxuICBtYXBPcHRpb25zOiBnb29nbGUubWFwcy5NYXBPcHRpb25zID0ge1xyXG4gICAgbWFwSWQ6IFwiREVNT19NQVBfSURcIixcclxuICAgIGNlbnRlcjogeyBsYXQ6IDAsIGxuZzogMCB9LCAgLy8gSW5pdGlhbCBjZW50ZXJcclxuICAgIHpvb206IDEwLFxyXG4gIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgcHVibGljIGF1dGg6IGJvb2xlYW4gPSBmYWxzZTsgIC8vIFNldCB0aGlzIGJhc2VkIG9uIHlvdXIgaW5pdGlhbCBsb2dpY1xyXG4gIHB1YmxpYyBzZXRDbGFzczogc3RyaW5nID0gJ2NvbC1tZC0xMic7XHJcbiAgc2VsZWN0ZWRTdG9yZTogYW55O1xyXG4gIGxvYWRpbmc6Ym9vbGVhbiA9dHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPWZhbHNlO1xyXG4gIGRhdGFJbWFnZXM6IGFueTtcclxuICBkYXRhU3RvcmVNYXA6IGFueTtcclxuICBuZXdEYXRhU3RvcmVNYXA6IGFueTtcclxuICBzdG9yZUlkOiBhbnk7XHJcbmNvbnN0cnVjdG9yKHByaXZhdGUgcGFnZUluZm86UGFnZUluZm9TZXJ2aWNlLCBwcml2YXRlIHNlcnZpY2U6IFRyYWZmaWNTZXJ2aWNlLHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLHByaXZhdGUgcm91dGVyOlJvdXRlcixwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZil7XHJcblxyXG59XHJcbnNldFBhZ2VEYXRhKCl7XHJcbiAgdGhpcy5wYWdlSW5mby5zZXRUaXRsZSgnRXhwbG9yZScpXHJcbiAgdGhpcy5wYWdlSW5mby5zZXREZXNjcmlwdGlvbignVG8gb3B0aW1pemUgYW5kIGltcHJvdmUgZXhpc3RpbmcgYWxnb3JpdGhtJylcclxuICB0aGlzLnBhZ2VJbmZvLnNldEJyZWFkY3J1bWJzKFtcclxuICB7dGl0bGU6J0FuYWx5emUnLCBwYXRoOiAnL21hbmFnZS90cmFmZmljJywgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2V9LFxyXG4gIHt0aXRsZTonQW5hbHl6ZScsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlfSxcclxuICB7dGl0bGU6J1RyYWZmaWMnLCBwYXRoOiAnL21hbmFnZS90cmFmZmljJywgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2V9LFxyXG4gIHt0aXRsZTonVHJhZmZpYycsIHBhdGg6ICcvbWFuYWdlL3RyYWZmaWMnLCBpc0FjdGl2ZTogZmFsc2UsIGlzU2VwYXJhdG9yOiB0cnVlfSxcclxuICBdKVxyXG59XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgIFxyXG4gICAgKG1hcGJveGdsIGFzIGFueSkuYWNjZXNzVG9rZW4gPSAncGsuZXlKMUlqb2lZbUZzWVdwcGRHRnVaMjhpTENKaElqb2lZMjB3WjJ4aWVtNTVNREZ4WVRKM2IyMXpiM0ZqTkhkd2F5Sjkubm5JSXp0N09lWWxZSHVmR0U4bEZXUSc7XHJcblxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCksIGRlYm91bmNlVGltZSgxMDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBPbmx5IHByb2Nlc3MgdGhlIGxhdGVzdCBkYXRhIGFmdGVyIGRlYm91bmNlIHRpbWVcclxuICAgICAgICB0aGlzLmhlYWRlckRhdGEgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMuc3RvcmVJZGFycmF5ID0gdGhpcy5oZWFkZXJEYXRhPy5zdG9yZXMuZmlsdGVyKChzdG9yZTphbnkpID0+IHN0b3JlLmNoZWNrZWQpLm1hcCgoc3RvcmU6YW55KSA9PiBzdG9yZS5zdG9yZUlkKVxyXG4gICAgICAgXHJcbiAgICAgICAgdGhpcy5nZXRNYXAoKTtcclxuICAgICAgfSlcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG5cclxuXHJcblxyXG4gIG1hcDogbWFwYm94Z2wuTWFwO1xyXG5cclxuICBnZXRNYXAoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPXRydWU7XHJcbiAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgIGNsaWVudElkOiB0aGlzLmhlYWRlckRhdGEuY2xpZW50LFxyXG4gICAgICBzdG9yZURhdGU6IHRoaXMuaGVhZGVyRGF0YS5kYXRlLmVuZERhdGUsXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZGFycmF5XHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5zZXJ2aWNlLmdlTWFwcyhvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcy5kYXRhICYmIHJlcy5kYXRhLnN0b3JlRGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLmF1TG9jYXRpb25zID0gcmVzLmRhdGEuc3RvcmVEYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmF1TG9jYXRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBjb25zdCBmaXJzdExvY2F0aW9uID0gdGhpcy5hdUxvY2F0aW9uc1swXTtcclxuICAgICAgICAgICAgICBpZiAoZmlyc3RMb2NhdGlvbiAmJiB0eXBlb2YgZmlyc3RMb2NhdGlvbi5sYXQgPT09ICdudW1iZXInICYmIHR5cGVvZiBmaXJzdExvY2F0aW9uLmxuZyA9PT0gJ251bWJlcicpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFwT3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgICAgICAgLi4udGhpcy5tYXBPcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgICBjZW50ZXI6IHsgbGF0OiBmaXJzdExvY2F0aW9uLmxhdCwgbG5nOiBmaXJzdExvY2F0aW9uLmxuZyB9XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH0gXHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID1mYWxzZTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMubm9EYXRhID10cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9ZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBnZXREYXRhKCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIGNvbnN0IG1hcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXAxJyk7XHJcbiAgICAgIGlmICghbWFwQ29udGFpbmVyKSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICBpZiAodGhpcy5hdUxvY2F0aW9ucy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIFxyXG4gICAgY29uc3QgZ2VvanNvbiA9IHtcclxuICAgICAgJ3R5cGUnOiAnRmVhdHVyZUNvbGxlY3Rpb24nLFxyXG4gICAgICAnZmVhdHVyZXMnOiB0aGlzLmF1TG9jYXRpb25zLm1hcCgoc3RvcmUsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICd0eXBlJzogJ0ZlYXR1cmUnLFxyXG4gICAgICAgICdwcm9wZXJ0aWVzJzoge1xyXG4gICAgICAgICAgJ3N0b3JlTmFtZSc6IHN0b3JlLnN0b3JlTmFtZSxcclxuICAgICAgICAgICdpbWFnZUlkJzogMTAxMSArIGluZGV4LFxyXG4gICAgICAgICAgJ2ljb25TaXplJzogWzYwLCA2MF0sXHJcbiAgICAgICAgICAnZm9vdGZhbGwnOiBzdG9yZS5hdmdGb290ZmFsbCxcclxuICAgICAgICAgICdvcGVuVGltZSc6IHN0b3JlLm9wZW5UaW1lLFxyXG4gICAgICAgICAgJ2Nsb3NlVGltZSc6IHN0b3JlLmNsb3NlVGltZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICdnZW9tZXRyeSc6IHtcclxuICAgICAgICAgICd0eXBlJzogJ1BvaW50JyxcclxuICAgICAgICAgICdjb29yZGluYXRlcyc6IFtzdG9yZS5sbmcsIHN0b3JlLmxhdF1cclxuICAgICAgICB9XHJcbiAgICAgIH0pKVxyXG4gICAgfTtcclxuICBcclxuICAgIGNvbnN0IGZpcnN0TG9jYXRpb24gPSB0aGlzLmF1TG9jYXRpb25zWzBdO1xyXG4gICAgdGhpcy5tYXAgPSBuZXcgbWFwYm94Z2wuTWFwKHtcclxuICAgICAgY29udGFpbmVyOiAnbWFwMScsXHJcbiAgICAgIHN0eWxlOiAnbWFwYm94Oi8vc3R5bGVzL21hcGJveC9zdHJlZXRzLXYxMicsXHJcbiAgICAgIGNlbnRlcjogW2ZpcnN0TG9jYXRpb24ubG5nLCBmaXJzdExvY2F0aW9uLmxhdF0sIC8vIENlbnRlciBtYXAgb24gdGhlIGZpcnN0IGxvY2F0aW9uXHJcbiAgICAgIHpvb206IDEwLCAvLyBBZGp1c3QgdGhpcyB2YWx1ZSAoMSA9IHdvcmxkIHZpZXcsIDIwID0gYnVpbGRpbmcgdmlldylcclxuICAgICAgbWF4Wm9vbTogMjAsIC8vIE9wdGlvbmFsOiBMaW1pdCBtYXggem9vbSBsZXZlbFxyXG4gICAgICBtaW5ab29tOiAxICAgLy8gT3B0aW9uYWw6IExpbWl0IG1pbiB6b29tIGxldmVsXHJcbiAgICB9KTtcclxuICBcclxuICAgIC8vIHRoaXMubWFwID0gbmV3IG1hcGJveGdsLk1hcCh7XHJcbiAgICAvLyAgIGNvbnRhaW5lcjogJ21hcDEnLFxyXG4gICAgLy8gICBzdHlsZTogJ21hcGJveDovL3N0eWxlcy9tYXBib3gvc3RyZWV0cy12MTInLFxyXG4gICAgLy8gICBjZW50ZXI6IFtmaXJzdExvY2F0aW9uLmxuZywgZmlyc3RMb2NhdGlvbi5sYXRdLFxyXG4gICAgLy8gICB6b29tOiA0XHJcbiAgICAvLyB9KTtcclxuICBcclxuICAgIGdlb2pzb24uZmVhdHVyZXMuZm9yRWFjaCgoZmVhdHVyZSwgZmVhdHVyZUluZGV4KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcGVydGllcywgZ2VvbWV0cnkgfSA9IGZlYXR1cmU7XHJcbiAgICAgIGNvbnN0IHN0b3JlID0gdGhpcy5hdUxvY2F0aW9uc1tmZWF0dXJlSW5kZXhdO1xyXG4gIFxyXG4gICAgICBjb25zdCBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICBjb25zdCB3aWR0aCA9IHByb3BlcnRpZXMuaWNvblNpemVbMF07XHJcbiAgICAgIGNvbnN0IGhlaWdodCA9IHByb3BlcnRpZXMuaWNvblNpemVbMV07XHJcbiAgICAgIGVsLmNsYXNzTmFtZSA9ICdtYXJrZXInO1xyXG4gICAgICBlbC5pbm5lckhUTUwgPSBgXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1hcmtlci1pY29uXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsgd2lkdGg6IDY1cHg7IGhlaWdodDogNzBweDsgZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibWFya2VyLWNvbnRlbnRcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGFsaWduLWl0ZW1zOiBjZW50ZXI7XCI+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJtYi0xXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTNcIiBoZWlnaHQ9XCIxM1wiIHZpZXdCb3g9XCIwIDAgMTMgMTNcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMS4zMzY1NCAzLjM2MzdMMS4yOTY1OCAzLjQyNjExQzAuODc3Njk4IDQuMTY3MDEgMS4zMjQ5MyA1LjEwMzM1IDIuMTI5MzEgNS4yMTA3NkMyLjIwMjE4IDUuMjE5NjcgMi4yNjk5OSA1LjIyNDM4IDIuMzM2MjUgNS4yMjQzOEMyLjc3MDIxIDUuMjI0MzggMy4xNTM5IDUuMDM4MjEgMy40MjEzMiA0Ljc0NzkzTDMuODM2NjYgNC4yOTcxTDQuMjUwNTkgNC43NDkyM0M0LjUxNDc2IDUuMDM3NzggNC44OTc1OCA1LjIyNDM4IDUuMzM0NDggNS4yMjQzOEM1Ljc2OTQxIDUuMjI0MzggNi4xNTQ0MyA1LjAzNzUyIDYuNDE4MzcgNC43NDkyM0w2LjgzMzU5IDQuMjk1NjhMNy4yNDg4MiA0Ljc0OTIzQzcuNTEyNzUgNS4wMzc1MiA3Ljg5Nzc3IDUuMjI0MzggOC4zMzI3MSA1LjIyNDM4QzguNzY3NjQgNS4yMjQzOCA5LjE1MjY2IDUuMDM3NTIgOS40MTY2IDQuNzQ5MjNMOS44MzE4MiA0LjI5NTY4TDEwLjI0NyA0Ljc0OTIzQzEwLjUxMSA1LjAzNzUyIDEwLjg5NiA1LjIyNDM4IDExLjMzMDkgNS4yMjQzOEMxMS4zOTUgNS4yMjQzOCAxMS40NjQ5IDUuMjE5NjYgMTEuNTM3MiA1LjIxMDgzQzEyLjM1OTMgNS4wOTg3NSAxMi44MDggNC4xMTIyNSAxMi4zMjg2IDMuMzY0MDhDMTIuMzI4NiAzLjM2NDAzIDEyLjMyODUgMy4zNjM5OSAxMi4zMjg1IDMuMzYzOTVMMTEuMDA4OCAxLjMwNjIxTDExLjAwODEgMS4zMDUxMUMxMC45OTY3IDEuMjg3MjIgMTAuOTY4NiAxLjI2ODA0IDEwLjkzMzIgMS4yNjgwNEgyLjcyOTQyQzIuNjk0MDMgMS4yNjgwNCAyLjY2NTg5IDEuMjg3MjIgMi42NTQ0OCAxLjMwNTExTDIuNjU0MDEgMS4zMDU4NEwxLjMzNjU0IDMuMzYzN1pNMTEuMDczMSA3LjA2NjY3VjkuNDE3NTNWOS45ODA0OUgxMC41MTAxSDMuMTUyNDhIMi41ODk1MlY5LjQxNzUzVjcuMDY3MDJDMi41MDY3OCA3LjA3MzE4IDIuNDIzMDggNy4wNzYzNCAyLjMzODU1IDcuMDc2MzRDMi4zMDY3OSA3LjA3NjM0IDIuMjc1MjUgNy4wNzU4NyAyLjI0MzkyIDcuMDc0OTVWOS40MTc1M1YxMC44Njk2QzIuMjQzOTIgMTEuMzUyNiAyLjY0NDY3IDExLjc1ODcgMy4xNTI0OCAxMS43NTg3SDEwLjUxMDFDMTEuMDE3OSAxMS43NTg3IDExLjQxODcgMTEuMzUyNiAxMS40MTg3IDEwLjg2OTZWOS40MTc1M1Y3LjA3NTA5QzExLjM4ODggNy4wNzU5MSAxMS4zNTg3IDcuMDc2MzQgMTEuMzI4NiA3LjA3NjM0QzExLjI0MjggNy4wNzYzNCAxMS4xNTc1IDcuMDczMDggMTEuMDczMSA3LjA2NjY3WlwiIHN0cm9rZT1cIiMxMDE4MjhcIiBzdHJva2Utd2lkdGg9XCIxLjEyNTkyXCIvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYXJrZXItbGFiZWxcIiBzdHlsZT1cImNvbG9yOiB2YXIoLS1HcmF5LTcwMCwgIzM0NDA1NCk7IHRleHQtYWxpZ246IGNlbnRlcjsgZm9udC1mYW1pbHk6IEludGVyOyBmb250LXNpemU6IDkuMDA3cHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9udC13ZWlnaHQ6IDYwMDsgbGluZS1oZWlnaHQ6IDEzcHg7XCI+XHJcbiAgICAgICAgICAgICAgJHtwcm9wZXJ0aWVzLnN0b3JlTmFtZX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgYDtcclxuICAgICAgZWwuc3R5bGUud2lkdGggPSBgJHt3aWR0aH1weGA7XHJcbiAgICAgIGVsLnN0eWxlLmhlaWdodCA9IGAke2hlaWdodH1weGA7XHJcbiAgICAgIGVsLnN0eWxlLmJhY2tncm91bmRTaXplID0gJzEwMCUnO1xyXG4gIFxyXG4gICAgICAvLyBDcmVhdGUgYW4gZW1wdHkgcG9wdXAgaW5pdGlhbGx5XHJcbiAgICAgIGNvbnN0IHBvcHVwID0gbmV3IG1hcGJveGdsLlBvcHVwKHsgb2Zmc2V0OiAyNSB9KVxyXG4gICAgICAgIC5zZXRIVE1MKCc8ZGl2PkxvYWRpbmcuLi48L2Rpdj4nKTtcclxuICBcclxuICAgICAgLy8gQ3JlYXRlIG1hcmtlciB3aXRoIHRoZSBwb3B1cFxyXG4gICAgICBjb25zdCBtYXJrZXIgPSBuZXcgbWFwYm94Z2wuTWFya2VyKGVsKVxyXG4gICAgICAgIC5zZXRMbmdMYXQoW2dlb21ldHJ5LmNvb3JkaW5hdGVzWzBdLCBnZW9tZXRyeS5jb29yZGluYXRlc1sxXV0pXHJcbiAgICAgICAgLnNldFBvcHVwKHBvcHVwKVxyXG4gICAgICAgIC5hZGRUbyh0aGlzLm1hcCk7XHJcbiAgXHJcbiAgICAgIC8vIEhhbmRsZSBjbGljayBldmVudHNcclxuICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hZGp1c3RMYXlvdXQoc3RvcmUsIG1hcmtlciwgcG9wdXApO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH0sMClcclxuICB9XHJcbiAgXHJcbiAgYWRqdXN0TGF5b3V0KHN0b3JlOiBhbnksIG1hcmtlcjogbWFwYm94Z2wuTWFya2VyLCBwb3B1cDogbWFwYm94Z2wuUG9wdXApIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRTdG9yZSA9IHN0b3JlO1xyXG5cclxuICAgIHRoaXMuc3RvcmVJZCA9IHN0b3JlPy5zdG9yZUlkO1xyXG4gICAgdGhpcy5hdXRoID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0Q2xhc3MgPSAnY29sLW1kLTknO1xyXG4gIFxyXG4gICAgY29uc3Qgb2JqID0ge1xyXG4gICAgICBjbGllbnRJZDogdGhpcy5oZWFkZXJEYXRhLmNsaWVudCxcclxuICAgICAgc3RvcmVEYXRlOiB0aGlzLmhlYWRlckRhdGEuZGF0ZS5lbmREYXRlLFxyXG4gICAgICBzdG9yZUlkOiBbc3RvcmU/LnN0b3JlSWRdXHJcbiAgICB9O1xyXG4gIFxyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFN0b3JlTWFwRGF0YShvYmopPy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YVN0b3JlTWFwID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgICB0aGlzLmRhdGFJbWFnZXMgPSByZXM/LmRhdGE/LmNhbWVyYUJhc2VJbWFnZSB8fCAnYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmV2aWV3X25vdC5wbmcnO1xyXG4gIFxyXG4gICAgICAgICAgICAvLyBVcGRhdGUgdGhlIHBvcHVwIGNvbnRlbnRcclxuICAgICAgICAgICAgcG9wdXAuc2V0SFRNTChgXHJcbiAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwXCIgc3JjPVwiJHt0aGlzLmRhdGFJbWFnZXN9XCIgb25lcnJvcj1cInRoaXMub25lcnJvcj1udWxsOyB0aGlzLnNyYz0nYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmV2aWV3X25vdC5wbmcnO1wiIGFsdD1cIlN0b3JlIEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQ6IHZhcigtLWdyYWRpZW50LXByaW1hcnktODAwNzAwMjY1LWRlZywgbGluZWFyLWdyYWRpZW50KDI3ZGVnLCAjMDA4MkNDIDguMzMlLCAjMDA5M0U2IDkxLjY3JSkpO2NvbG9yOndoaXRlOyBwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC13aGl0ZVwiPiR7c3RvcmUuc3RvcmVOYW1lIHx8ICdTdG9yZSBOYW1lJ308L2g0PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPkF2Zy4gRm9vdGZhbGwgLyBIb3VyOiAke3RoaXMuZGF0YVN0b3JlTWFwPy5ob3VybHlEYXRhPy5ob3VybHlGb290ZmFsbCB8fCAnLS0nfTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+T3BlbiBUaW1lOiAke3RoaXMuZGF0YVN0b3JlTWFwPy5ob3VybHlEYXRhPy5vcGVuVGltZSB8fCAnLS0nfTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+Q2xvc2UgVGltZTogJHt0aGlzLmRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8uY2xvc2VUaW1lIHx8ICctLSd9PC9oNj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgYCk7XHJcbiAgXHJcbiAgICAgICAgICAgIC8vIEVuc3VyZSB0aGUgcG9wdXAgaXMgYWRkZWQgdG8gdGhlIG1hcCBhbmQgcG9zaXRpb25lZCBjb3JyZWN0bHlcclxuICAgICAgICAgICAgbWFya2VyLnNldFBvcHVwKHBvcHVwKTsgLy8gQXR0YWNoIHRoZSBwb3B1cCB0byB0aGUgbWFya2VyXHJcbiAgICAgICAgICAgIGlmICghcG9wdXAuaXNPcGVuKCkpIHtcclxuICAgICAgICAgICAgICBwb3B1cC5hZGRUbyh0aGlzLm1hcCk7IC8vIEFkZCBwb3B1cCB0byB0aGUgbWFwXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGF0YUltYWdlcyA9ICdhc3NldHMvdGFuZ28vSW1hZ2VzL3ByZXZpZXdfbm90LnBuZyc7XHJcbiAgICAgICAgICAgIHBvcHVwLnNldEhUTUwoYFxyXG4gICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMFwiIHNyYz1cIiR7dGhpcy5kYXRhSW1hZ2VzfVwiIG9uZXJyb3I9XCJ0aGlzLm9uZXJyb3I9bnVsbDsgdGhpcy5zcmM9J2Fzc2V0cy90YW5nby9JbWFnZXMvcHJldmlld19ub3QucG5nJztcIiBhbHQ9XCJTdG9yZSBJbWFnZVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJiYWNrZ3JvdW5kOiB2YXIoLS1ncmFkaWVudC1wcmltYXJ5LTgwMDcwMDI2NS1kZWcsIGxpbmVhci1ncmFkaWVudCgyN2RlZywgIzAwODJDQyA4LjMzJSwgIzAwOTNFNiA5MS42NyUpKTtjb2xvcjp3aGl0ZTsgcGFkZGluZzogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxoNCBjbGFzcz1cInRleHQtd2hpdGVcIj4ke3N0b3JlLnN0b3JlTmFtZSB8fCAnU3RvcmUgTmFtZSd9PC9oND5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5BdmVyYWdlIEZvb3RmYWxsOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+T3BlbiBUaW1lOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJ0ZXh0LXdoaXRlXCI+Q2xvc2UgVGltZTogLS08L2g2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICBgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmZXRjaGluZyBzdG9yZSBtYXAgZGF0YTonLCBlcnIpO1xyXG4gICAgICAgICAgcG9wdXAuc2V0SFRNTChgXHJcbiAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwXCIgc3JjPVwiJHt0aGlzLmRhdGFJbWFnZXN9XCIgb25lcnJvcj1cInRoaXMub25lcnJvcj1udWxsOyB0aGlzLnNyYz0nYXNzZXRzL3RhbmdvL0ltYWdlcy9wcmV2aWV3X25vdC5wbmcnO1wiIGFsdD1cIlN0b3JlIEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImJhY2tncm91bmQ6IHZhcigtLWdyYWRpZW50LXByaW1hcnktODAwNzAwMjY1LWRlZywgbGluZWFyLWdyYWRpZW50KDI3ZGVnLCAjMDA4MkNDIDguMzMlLCAjMDA5M0U2IDkxLjY3JSkpO2NvbG9yOndoaXRlOyBwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGg0IGNsYXNzPVwidGV4dC13aGl0ZVwiPiR7c3RvcmUuc3RvcmVOYW1lIHx8ICdTdG9yZSBOYW1lJ308L2g0PlxyXG4gICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwidGV4dC13aGl0ZVwiPkF2ZXJhZ2UgRm9vdGZhbGw6IC0tPC9oNj5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5PcGVuIFRpbWU6IC0tPC9oNj5cclxuICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cInRleHQtd2hpdGVcIj5DbG9zZSBUaW1lOiAtLTwvaDY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICBgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICBcclxuICBcclxuICBcclxuICBcclxuICAvLyBhZGp1c3RMYXlvdXQoc3RvcmU6YW55KSB7XHJcbiAgLy8gICB0aGlzLnNlbGVjdGVkU3RvcmUgPSBzdG9yZTtcclxuICAvLyAgIHRoaXMuYXV0aCA9dHJ1ZTtcclxuICAvLyAgIHRoaXMuc2V0Q2xhc3MgPSAnY29sLW1kLTknOyAvLyBBZGp1c3QgdGhlIGxheW91dCB0byA4IGNvbHVtbnMgb24gbWFya2VyIGNsaWNrXHJcbiAgIFxyXG4gIC8vICAgLy8gdGhpcy5uZXdEYXRhU3RvcmVNYXAgPSBkYXRhO1xyXG4gIC8vIH1cclxuICBkYXRhVmFsdWUoZGF0YTphbnkpe1xyXG4gICAgdGhpcy5uZXdEYXRhU3RvcmVNYXAgPSBkYXRhXHJcbiAgfVxyXG4gIHRvZ2dsZUF1dGgoKSB7XHJcbiAgICB0aGlzLmF1dGggPSAhdGhpcy5hdXRoO1xyXG4gICAgdGhpcy5zZXRDbGFzcyA9IHRoaXMuYXV0aCA/ICdjb2wtbWQtOScgOiAnY29sLW1kLTEyJztcclxuICB9XHJcblxyXG4gICAgYmFja1RvRm9vdGZhbGwoKXtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL21hbmFnZS90cmFmZmljJ10pXHJcbiAgfVxyXG4gIHN0b3JlVmlldyhkYXRhOmFueSl7XHJcbiAgICBjb25zdCBkYXRhdmFsdWU6IGFueSA9IEpTT04ucGFyc2UoXHJcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIikgfHwgXCJ7fVwiXHJcbiAgICApO1xyXG4gICAgZGF0YXZhbHVlLnN0b3JlID0gZGF0YTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiaGVhZGVyLWZpbHRlcnNcIiwgSlNPTi5zdHJpbmdpZnkoZGF0YXZhbHVlKSk7XHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgdGhpcy5ncy5kYXRhUmFuZ2VWYWx1ZS5uZXh0KGRhdGF2YWx1ZSlcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcIi9tYW5hZ2Uvc3RvcmVzL2NhbWVyYXNcIl0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgc3RvcmVJZDogZGF0YX0sXHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG4gIC8vIG9uTWFya2VyQ2xpY2sobG9jYXRpb246IGFueSkge1xyXG4gIC8vICAgY29uc29sZS5sb2coJ01hcmtlciBjbGlja2VkOicsIGxvY2F0aW9uKTtcclxuICAvLyAgIC8vIFBlcmZvcm0gYWN0aW9ucyBiYXNlZCBvbiB0aGUgY2xpY2tlZCBsb2NhdGlvblxyXG4gIC8vIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiIW5vRGF0YVwiIGNsYXNzPVwicm93XCI+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzXT1cInNldENsYXNzXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtMiBweS0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIG1lLTJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJiYWNrVG9Gb290ZmFsbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIGhlaWdodD1cIjQwXCIgdmlld0JveD1cIjAgMCA0MCA0MFwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgZmlsdGVyPVwidXJsKCNmaWx0ZXIwX2RfMjU4NV83MDM2KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyXCIgeT1cIjFcIiB3aWR0aD1cIjM2XCIgaGVpZ2h0PVwiMzZcIiByeD1cIjhcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCIyLjVcIiB5PVwiMS41XCIgd2lkdGg9XCIzNVwiIGhlaWdodD1cIjM1XCIgcng9XCI3LjVcIiBzdHJva2U9XCIjRDBENUREXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTI1LjgzMjcgMTlIMTQuMTY2TTE0LjE2NiAxOUwxOS45OTkzIDI0LjgzMzRNMTQuMTY2IDE5TDE5Ljk5OTMgMTMuMTY2N1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmaWx0ZXIgaWQ9XCJmaWx0ZXIwX2RfMjU4NV83MDM2XCIgeD1cIjBcIiB5PVwiMFwiIHdpZHRoPVwiNDBcIiBoZWlnaHQ9XCI0MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclVuaXRzPVwidXNlclNwYWNlT25Vc2VcIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9XCJzUkdCXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZUZsb29kIGZsb29kLW9wYWNpdHk9XCIwXCIgcmVzdWx0PVwiQmFja2dyb3VuZEltYWdlRml4XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQ29sb3JNYXRyaXggaW49XCJTb3VyY2VBbHBoYVwiIHR5cGU9XCJtYXRyaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPVwiMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDBcIiByZXN1bHQ9XCJoYXJkQWxwaGFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVPZmZzZXQgZHk9XCIxXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj1cIjFcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmVDb2xvck1hdHJpeCB0eXBlPVwibWF0cml4XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz1cIjAgMCAwIDAgMC4wNjI3NDUxIDAgMCAwIDAgMC4wOTQxMTc2IDAgMCAwIDAgMC4xNTY4NjMgMCAwIDAgMC4wNSAwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluMj1cIkJhY2tncm91bmRJbWFnZUZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ9XCJlZmZlY3QxX2Ryb3BTaGFkb3dfMjU4NV83MDM2XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZlQmxlbmQgbW9kZT1cIm5vcm1hbFwiIGluPVwiU291cmNlR3JhcGhpY1wiIGluMj1cImVmZmVjdDFfZHJvcFNoYWRvd18yNTg1XzcwMzZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PVwic2hhcGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZmlsdGVyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcC0wXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwibWFwMVwiIHN0eWxlPVwid2lkdGg6IDEwMCU7IGhlaWdodDogMTAwdmg7XCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cImF1dGhcIiBjbGFzcz1cImNvbC1tZC0zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgcHgtNSBoLTEwMCBweS0zIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgIDxpbWcgKGNsaWNrKT1cInRvZ2dsZUF1dGgoKVwiIGNsYXNzPVwibGVmdEljb24gcG9zaXRpb24tYWJzb2x1dGUgbGVmdC0wIGN1cnNvci1wb2ludGVyXCJcclxuICAgICAgICAgICAgICAgIHNyYz1cImFzc2V0cy90YW5nby9JbWFnZS9sZWZ0SWNvbi5zdmdcIj5cclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImRhdGFJbWFnZXMgIT09IG51bGxcIiBjbGFzcz1cInctMTAwXCIgW3NyY109XCJkYXRhSW1hZ2VzXCIgKGVycm9yKT1cImRhdGFJbWFnZXMgPSBudWxsXCIgW2FsdF09XCJkYXRhSW1hZ2VzID8gJ0ltYWdlJyA6ICdFcnJvciBJbWFnZSdcIj5cclxuICAgICAgICAgICAgPCEtLSA8aW1nICpuZ0lmPVwiZGF0YUltYWdlcyA9PT0gbnVsbFwiIGNsYXNzPVwidy0xMDBcIiBzcmM9XCJhc3NldHMvdGFuZ28vSW1hZ2UvYmFzZWltZy5wbmdcIiBhbHQ9XCJJbWFnZVwiPiAtLT5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRhdGFJbWFnZXMgPT09IG51bGxcIiBjbGFzcz1cIm5vLXByZXZpZXdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWItNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgd2lkdGg9XCIyM1wiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMyAyMFwiIGZpbGw9XCJub25lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBpZD1cIkdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBpZD1cIlZlY3RvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk02LjUgNi4zMjIyN0g2LjUxTTE2LjI1IDkuMzIyMjdIMjEuNUwxOCAxNi4zMjIzTDE0LjkxIDEyLjAwMjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGggaWQ9XCJWZWN0b3JfMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xLjUgMTYuMzIyOUg1LjI2QzUuNjMyNzMgMTYuMzI1NSA1Ljk5ODc3IDE2LjIyMzkgNi4zMTY4MiAxNi4wMjk1QzYuNjM0ODcgMTUuODM1MiA2Ljg5MjI4IDE1LjU1NTggNy4wNiAxNS4yMjI5TDguNSAxMi4zMjI5TTEuNSAxOC4zMjI5VjE0LjMyMjlNMTcuNSA2LjgyMjkxTDEzLjUgMTQuODIyOUwzLjExIDkuNjIyOTFDMi40MjAzMyA5LjI3NTUzIDEuODk2MzUgOC42NjkxIDEuNjUyNzIgNy45MzYzMkMxLjQwOTA5IDcuMjAzNTQgMS40NjU2NCA2LjQwNDEgMS44MSA1LjcxMjkxTDMuMTkgMi45MjI5MUMzLjM2MiAyLjU4MDE0IDMuNTk5ODQgMi4yNzQ2IDMuODg5OTQgMi4wMjM3NUM0LjE4MDAzIDEuNzcyOSA0LjUxNjcgMS41ODE2NSA0Ljg4MDcyIDEuNDYwOTNDNS4yNDQ3NCAxLjM0MDIxIDUuNjI4OTcgMS4yOTIzOSA2LjAxMTQ3IDEuMzIwMThDNi4zOTM5OCAxLjM0Nzk3IDYuNzY3MjYgMS40NTA4NCA3LjExIDEuNjIyOTFMMTcuNSA2LjgyMjkxWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRlciBtYi01IHRleHQtY2VudGVyXCI+UHJldmlldyBub3QgYXZhaWxhYmxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkZXNjcmlwdGlvbiBtYi01IHRleHQtY2VudGVyXCI+VGhlIHNlbGVjdGVkIGNhbWVyYSBpcyBub3QgYXZhaWxhYmxlIGF0IHRoZVxyXG4gICAgICAgICAgICAgICAgICAgIG1vbWVudC48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgbXQtMyBweC0wIGJvcmRlci0wIG1pbi1oLTEwcHhcIiA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGNsYXNzPVwiY2FyZC10aXRsZSBhbGlnbi1pdGVtcy1zdGFydCBkLWZsZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsIGN1cnNvci1wb2ludGVyXCIgKGNsaWNrKT1cInN0b3JlVmlldyhzdG9yZUlkKVwiPnt7c2VsZWN0ZWRTdG9yZS5zdG9yZU5hbWUgPz8gJy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IG1iLTJcIj5BcHAgSUQgOiB7e3NlbGVjdGVkU3RvcmUuYXBwSWQgPz8gJy0tJ319PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHB0LTAgcHgtMFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWFwLXN1YnRleHRcIj57e3NlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8uYWRkcmVzcyA/IHNlbGVjdGVkU3RvcmU/LnN0b3JlUHJvZmlsZT8uYWRkcmVzczonLS0nfX0ge3tzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmNvdW50cnkgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVByb2ZpbGU/LmNvdW50cnk6Jy0tJ319IHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5waW5jb2RlID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVQcm9maWxlPy5waW5jb2RlOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTUgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzQ2IDE0VjEyLjY2NjdDMTMuMzM0NiAxMS45NTk0IDEzLjA1MzcgMTEuMjgxMSAxMi41NTM2IDEwLjc4MUMxMi4wNTM1IDEwLjI4MSAxMS4zNzUyIDEwIDEwLjY2OCAxMEg1LjMzNDY0QzQuNjI3MzkgMTAgMy45NDkxMSAxMC4yODEgMy40NDkwMiAxMC43ODFDMi45NDg5MiAxMS4yODExIDIuNjY3OTcgMTEuOTU5NCAyLjY2Nzk3IDEyLjY2NjdWMTRNMTAuNjY4IDQuNjY2NjdDMTAuNjY4IDYuMTM5NDMgOS40NzQwNiA3LjMzMzMzIDguMDAxMyA3LjMzMzMzQzYuNTI4NTQgNy4zMzMzMyA1LjMzNDY0IDYuMTM5NDMgNS4zMzQ2NCA0LjY2NjY3QzUuMzM0NjQgMy4xOTM5MSA2LjUyODU0IDIgOC4wMDEzIDJDOS40NzQwNiAyIDEwLjY2OCAzLjE5MzkxIDEwLjY2OCA0LjY2NjY3WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/Lm5hbWUgP3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5uYW1lOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwIG14LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIHZpZXdCb3g9XCIwIDAgMTYgMTZcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MTYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NSAxMS4yODAyVjEzLjI4MDJDMTQuNjY1NyAxMy40NjU5IDE0LjYyNzcgMTMuNjQ5NyAxNC41NTMzIDEzLjgxOThDMTQuNDc5IDEzLjk4OTkgMTQuMzY5OSAxNC4xNDI2IDE0LjIzMyAxNC4yNjgxQzE0LjA5NjIgMTQuMzkzNyAxMy45MzQ3IDE0LjQ4OTIgMTMuNzU4OCAxNC41NDg3QzEzLjU4MjkgMTQuNjA4MiAxMy4zOTY2IDE0LjYzMDMgMTMuMjExNyAxNC42MTM2QzExLjE2MDIgMTQuMzkwNyA5LjE4OTY2IDEzLjY4OTcgNy40NTgzMyAxMi41NjY5QzUuODQ3NTUgMTEuNTQzMyA0LjQ4MTg5IDEwLjE3NzcgMy40NTgzMyA4LjU2Njg5QzIuMzMxNjUgNi44Mjc3IDEuNjMwNDkgNC44NDc1NiAxLjQxMTY2IDIuNzg2ODlDMS4zOTUgMi42MDI1NCAxLjQxNjkxIDIuNDE2NzMgMS40NzU5OSAyLjI0MTMxQzEuNTM1MDggMi4wNjU4OSAxLjYzMDA0IDEuOTA0NjkgMS43NTQ4NCAxLjc2Nzk3QzEuODc5NjQgMS42MzEyNiAyLjAzMTUzIDEuNTIyMDMgMi4yMDA4NiAxLjQ0NzI0QzIuMzcwMTggMS4zNzI0NSAyLjU1MzIyIDEuMzMzNzQgMi43MzgzMyAxLjMzMzU2SDQuNzM4MzNDNS4wNjE4NyAxLjMzMDM4IDUuMzc1NTIgMS40NDQ5NSA1LjYyMDg0IDEuNjU1OTJDNS44NjYxNSAxLjg2Njg5IDYuMDI2MzggMi4xNTk4NiA2LjA3MTY2IDIuNDgwMjNDNi4xNTYwOCAzLjEyMDI3IDYuMzEyNjMgMy43NDg3MSA2LjUzODMzIDQuMzUzNTZDNi42MjgwMiA0LjU5MjE4IDYuNjQ3NDQgNC44NTE1IDYuNTk0MjcgNS4xMDA4MUM2LjU0MTEgNS4zNTAxMiA2LjQxNzU3IDUuNTc4OTcgNi4yMzgzMyA1Ljc2MDIzTDUuMzkxNjYgNi42MDY4OUM2LjM0MDcgOC4yNzU5MiA3LjcyMjYzIDkuNjU3ODYgOS4zOTE2NiAxMC42MDY5TDEwLjIzODMgOS43NjAyM0MxMC40MTk2IDkuNTgwOTkgMTAuNjQ4NCA5LjQ1NzQ2IDEwLjg5NzcgOS40MDQyOUMxMS4xNDcxIDkuMzUxMTIgMTEuNDA2NCA5LjM3MDUzIDExLjY0NSA5LjQ2MDIzQzEyLjI0OTggOS42ODU5MyAxMi44NzgzIDkuODQyNDggMTMuNTE4MyA5LjkyNjg5QzEzLjg0MjIgOS45NzI1OCAxNC4xMzc5IDEwLjEzNTcgMTQuMzQ5NCAxMC4zODUyQzE0LjU2MDggMTAuNjM0OCAxNC42NzMxIDEwLjk1MzMgMTQuNjY1IDExLjI4MDJaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxjbGlwUGF0aCBpZD1cImNsaXAwXzE4NjVfMTQ2NTE2XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIGZvbnQtbWVkaXVtIG1hcC1zdWJ0ZXh0IHRleHQtZ3JheS04MDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkU3RvcmU/LnNwb2NEZXRhaWxzPy5jb250YWN0ID9zZWxlY3RlZFN0b3JlPy5zcG9jRGV0YWlscz8uY29udGFjdDonLS0nfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWdyYXktNjAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjY2NTQgMy45OTk4NEMxNC42NjU0IDMuMjY2NSAxNC4wNjU0IDIuNjY2NSAxMy4zMzIgMi42NjY1SDIuNjY1MzZDMS45MzIwMyAyLjY2NjUgMS4zMzIwMyAzLjI2NjUgMS4zMzIwMyAzLjk5OTg0TTE0LjY2NTQgMy45OTk4NFYxMS45OTk4QzE0LjY2NTQgMTIuNzMzMiAxNC4wNjU0IDEzLjMzMzIgMTMuMzMyIDEzLjMzMzJIMi42NjUzNkMxLjkzMjAzIDEzLjMzMzIgMS4zMzIwMyAxMi43MzMyIDEuMzMyMDMgMTEuOTk5OFYzLjk5OTg0TTE0LjY2NTQgMy45OTk4NEw3Ljk5ODcgOC42NjY1TDEuMzMyMDMgMy45OTk4NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjRcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/LmVtYWlsID8gc2VsZWN0ZWRTdG9yZT8uc3BvY0RldGFpbHM/LmVtYWlsOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC01IG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzNDYgMTRWMTIuNjY2N0MxMy4zMzQ2IDExLjk1OTQgMTMuMDUzNyAxMS4yODExIDEyLjU1MzYgMTAuNzgxQzEyLjA1MzUgMTAuMjgxIDExLjM3NTIgMTAgMTAuNjY4IDEwSDUuMzM0NjRDNC42MjczOSAxMCAzLjk0OTExIDEwLjI4MSAzLjQ0OTAyIDEwLjc4MUMyLjk0ODkyIDExLjI4MTEgMi42Njc5NyAxMS45NTk0IDIuNjY3OTcgMTIuNjY2N1YxNE0xMC42NjggNC42NjY2N0MxMC42NjggNi4xMzk0MyA5LjQ3NDA2IDcuMzMzMzMgOC4wMDEzIDcuMzMzMzNDNi41Mjg1NCA3LjMzMzMzIDUuMzM0NjQgNi4xMzk0MyA1LjMzNDY0IDQuNjY2NjdDNS4zMzQ2NCAzLjE5MzkxIDYuNTI4NTQgMiA4LjAwMTMgMkM5LjQ3NDA2IDIgMTAuNjY4IDMuMTkzOTEgMTAuNjY4IDQuNjY2NjdaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1zbSBmb250LW1lZGl1bSBtYXAtc3VidGV4dCB0ZXh0LWdyYXktODAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZFN0b3JlPy5zdG9yZVR5cGU/LnR5cGUgPyBzZWxlY3RlZFN0b3JlPy5zdG9yZVR5cGU/LnR5cGU6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNtIHRleHQtZ3JheS02MDAgbXgtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxNlwiIGhlaWdodD1cIjE2XCIgdmlld0JveD1cIjAgMCAxNiAxNlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODY1XzE0NjUxNilcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTQuNjY1IDExLjI4MDJWMTMuMjgwMkMxNC42NjU3IDEzLjQ2NTkgMTQuNjI3NyAxMy42NDk3IDE0LjU1MzMgMTMuODE5OEMxNC40NzkgMTMuOTg5OSAxNC4zNjk5IDE0LjE0MjYgMTQuMjMzIDE0LjI2ODFDMTQuMDk2MiAxNC4zOTM3IDEzLjkzNDcgMTQuNDg5MiAxMy43NTg4IDE0LjU0ODdDMTMuNTgyOSAxNC42MDgyIDEzLjM5NjYgMTQuNjMwMyAxMy4yMTE3IDE0LjYxMzZDMTEuMTYwMiAxNC4zOTA3IDkuMTg5NjYgMTMuNjg5NyA3LjQ1ODMzIDEyLjU2NjlDNS44NDc1NSAxMS41NDMzIDQuNDgxODkgMTAuMTc3NyAzLjQ1ODMzIDguNTY2ODlDMi4zMzE2NSA2LjgyNzcgMS42MzA0OSA0Ljg0NzU2IDEuNDExNjYgMi43ODY4OUMxLjM5NSAyLjYwMjU0IDEuNDE2OTEgMi40MTY3MyAxLjQ3NTk5IDIuMjQxMzFDMS41MzUwOCAyLjA2NTg5IDEuNjMwMDQgMS45MDQ2OSAxLjc1NDg0IDEuNzY3OTdDMS44Nzk2NCAxLjYzMTI2IDIuMDMxNTMgMS41MjIwMyAyLjIwMDg2IDEuNDQ3MjRDMi4zNzAxOCAxLjM3MjQ1IDIuNTUzMjIgMS4zMzM3NCAyLjczODMzIDEuMzMzNTZINC43MzgzM0M1LjA2MTg3IDEuMzMwMzggNS4zNzU1MiAxLjQ0NDk1IDUuNjIwODQgMS42NTU5MkM1Ljg2NjE1IDEuODY2ODkgNi4wMjYzOCAyLjE1OTg2IDYuMDcxNjYgMi40ODAyM0M2LjE1NjA4IDMuMTIwMjcgNi4zMTI2MyAzLjc0ODcxIDYuNTM4MzMgNC4zNTM1NkM2LjYyODAyIDQuNTkyMTggNi42NDc0NCA0Ljg1MTUgNi41OTQyNyA1LjEwMDgxQzYuNTQxMSA1LjM1MDEyIDYuNDE3NTcgNS41Nzg5NyA2LjIzODMzIDUuNzYwMjNMNS4zOTE2NiA2LjYwNjg5QzYuMzQwNyA4LjI3NTkyIDcuNzIyNjMgOS42NTc4NiA5LjM5MTY2IDEwLjYwNjlMMTAuMjM4MyA5Ljc2MDIzQzEwLjQxOTYgOS41ODA5OSAxMC42NDg0IDkuNDU3NDYgMTAuODk3NyA5LjQwNDI5QzExLjE0NzEgOS4zNTExMiAxMS40MDY0IDkuMzcwNTMgMTEuNjQ1IDkuNDYwMjNDMTIuMjQ5OCA5LjY4NTkzIDEyLjg3ODMgOS44NDI0OCAxMy41MTgzIDkuOTI2ODlDMTMuODQyMiA5Ljk3MjU4IDE0LjEzNzkgMTAuMTM1NyAxNC4zNDk0IDEwLjM4NTJDMTQuNTYwOCAxMC42MzQ4IDE0LjY3MzEgMTAuOTUzMyAxNC42NjUgMTEuMjgwMlpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MTZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIxNlwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gbWFwLXN1YnRleHQgdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy5uYW1lID8gc2VsZWN0ZWRTdG9yZT8uc3RvcmVUeXBlPy5uYW1lOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTUgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTYwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxOFwiIGhlaWdodD1cIjE4XCIgdmlld0JveD1cIjAgMCAxOCAxOFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF8xODY1XzE0NjUyOSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNOSA0LjVWOUwxMiAxMC41TTE2LjUgOUMxNi41IDEzLjE0MjEgMTMuMTQyMSAxNi41IDkgMTYuNUM0Ljg1Nzg2IDE2LjUgMS41IDEzLjE0MjEgMS41IDlDMS41IDQuODU3ODYgNC44NTc4NiAxLjUgOSAxLjVDMTMuMTQyMSAxLjUgMTYuNSA0Ljg1Nzg2IDE2LjUgOVpcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNFwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MjlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMThcIiBoZWlnaHQ9XCIxOFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1ncmF5LTgwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YVN0b3JlTWFwPy5ob3VybHlEYXRhPy5vcGVuVGltZSA/IGRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8ub3BlblRpbWU6Jy0tJ319IC0ge3tkYXRhU3RvcmVNYXA/LmhvdXJseURhdGE/LmNsb3NlVGltZSA/IGRhdGFTdG9yZU1hcD8uaG91cmx5RGF0YT8uY2xvc2VUaW1lOictLSd9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz1cIm1hcC1hdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YVN0b3JlTWFwPy5hdmdEYXRhPy5hdmdGb290ZmFsbCA/IGRhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnRm9vdGZhbGw6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtYXAtYXZndGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZnIEZvb3RmYWxsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNiA4VjZNNiA0SDYuMDA1TTExIDZDMTEgOC43NjE0MiA4Ljc2MTQyIDExIDYgMTFDMy4yMzg1OCAxMSAxIDguNzYxNDIgMSA2QzEgMy4yMzg1OCAzLjIzODU4IDEgNiAxQzguNzYxNDIgMSAxMSAzLjIzODU4IDExIDZaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXAtYXZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnV2Vla2RheUZvb3RmYWxsID8gZGF0YVN0b3JlTWFwPy5hdmdEYXRhPy5hdmdXZWVrZGF5Rm9vdGZhbGw6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtYXAtYXZndGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZnIFdlZWtkYXkgRm9vdGZhbGwgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNiA4VjZNNiA0SDYuMDA1TTExIDZDMTEgOC43NjE0MiA4Ljc2MTQyIDExIDYgMTFDMy4yMzg1OCAxMSAxIDguNzYxNDIgMSA2QzEgMy4yMzg1OCAzLjIzODU4IDEgNiAxQzguNzYxNDIgMSAxMSAzLjIzODU4IDExIDZaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG15LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJtYXAtYXZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGFTdG9yZU1hcD8uYXZnRGF0YT8uYXZnV2Vla2VuZEZvb3RmYWxsID8gZGF0YVN0b3JlTWFwPy5hdmdEYXRhPy5hdmdXZWVrZW5kRm9vdGZhbGw6Jy0tJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc20gdGV4dC1ncmF5LTcwMCBtYXAtYXZndGVzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZnIFdlZWtlbmQgRm9vdGZhbGwgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIxMlwiIGhlaWdodD1cIjEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAxMiAxMlwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTg2NV8xNDY1MzYpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNiA4VjZNNiA0SDYuMDA1TTExIDZDMTEgOC43NjE0MiA4Ljc2MTQyIDExIDYgMTFDMy4yMzg1OCAxMSAxIDguNzYxNDIgMSA2QzEgMy4yMzg1OCAzLjIzODU4IDEgNiAxQzguNzYxNDIgMSAxMSAzLjIzODU4IDExIDZaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjOThBMkIzXCIgc3Ryb2tlLXdpZHRoPVwiMS41XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTg2NV8xNDY1MzZcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiBmaWxsPVwid2hpdGVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyIGJvcmRlci0wIHB4LTBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTUgY29sLWxnLTEyXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1saWdodC1wcmltYXJ5MSB3LTEwMCBweC0yXCIgKGNsaWNrKT1cInN0b3JlVmlldyhzdG9yZUlkKVwiPjxzcGFuIGNsYXNzPVwibXMtMlwiPlZpZXcgbW9yZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBEZXRhaWxzPC9zcGFuPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gPGRpdiAqbmdJZj1cImxvYWRpbmdcIiBjbGFzcz1cInJvdyBweC0zIGxvYWRlciBjYXJkICBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4gLS0+XHJcbjxkaXYgKm5nSWY9XCJub0RhdGFcIiBjbGFzcz1cInJvdyBweC0zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctbm9kYXRhLXRhYmxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhMS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS10aXRsZVwiPk5vIGRhdGEgZm91bmQ8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vZGF0YS1zdWJcIj5UaGVyZSBpcyBubyByZXN1bHQgZm9yIHRoaXMgU3RvcmUgbWFwPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19