tango-app-ui-ticket-user 3.0.14-dev → 3.0.15-dev

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.
@@ -1,4 +1,5 @@
1
1
  import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
2
3
  import * as i0 from "@angular/core";
3
4
  import * as i1 from "../../services/ticket-infra.service";
4
5
  import * as i2 from "@angular/common";
@@ -12,6 +13,7 @@ export class EdgeCameraviewComponent {
12
13
  currentDate;
13
14
  value;
14
15
  CameraDetails;
16
+ destroy$ = new Subject();
15
17
  constructor(infraService, cd) {
16
18
  this.infraService = infraService;
17
19
  this.cd = cd;
@@ -26,10 +28,10 @@ export class EdgeCameraviewComponent {
26
28
  this.noData = false;
27
29
  let obj = {
28
30
  storeId: this.value?.storeId,
29
- from: this.value?.startTime.slice(0, -2),
30
- to: this.value?.endTime.slice(0, -2)
31
+ from: this.value?.startTime,
32
+ to: this.value?.endTime
31
33
  };
32
- this.infraService.viewedgeAppLog(obj).subscribe({
34
+ this.infraService.viewedgeAppLog(obj).pipe(takeUntil(this.destroy$)).subscribe({
33
35
  next: (res) => {
34
36
  if (res && res?.code == 200) {
35
37
  this.viewEdgeAppLogList = res?.data;
@@ -45,7 +47,7 @@ export class EdgeCameraviewComponent {
45
47
  storeId: this.value?.storeId
46
48
  // storeId:"201-129"
47
49
  };
48
- this.infraService.getCameraImages(data).subscribe({
50
+ this.infraService.getCameraImages(data).pipe(takeUntil(this.destroy$)).subscribe({
49
51
  next: (res) => {
50
52
  if (res && res.code == 200) {
51
53
  this.CameraDetails = res?.data;
@@ -72,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImpor
72
74
  }], ctorParameters: () => [{ type: i1.TicketsService }, { type: i0.ChangeDetectorRef }], propDecorators: { value: [{
73
75
  type: Input
74
76
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN4QjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUVmLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFHLEdBQUcsSUFBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFJO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQTdEVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix1RkNScEMsMHpMQWtHQTs7MkZEMUZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7bUhBU3RCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGdlLWNhbWVyYXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGdlQ2FtZXJhdmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld0VkZ2VBcHBMb2dMaXN0OiBhbnk7XHJcbiAgY3VycmVudERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBDYW1lcmFEZXRhaWxzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5mcmFTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Vmlld0VkZ2VBcHBMb2coKTtcclxuICAgIHRoaXMuZ2V0Q2FtZXJhSW1hZ2VzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgZ2V0Vmlld0VkZ2VBcHBMb2coKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBzdG9yZUlkOiB0aGlzLnZhbHVlPy5zdG9yZUlkLFxyXG4gICAgICBmcm9tOiB0aGlzLnZhbHVlPy5zdGFydFRpbWUuc2xpY2UoMCwgLTIpLFxyXG4gICAgICB0bzogdGhpcy52YWx1ZT8uZW5kVGltZS5zbGljZSgwLCAtMilcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3ZWRnZUFwcExvZyhvYmopLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3RWRnZUFwcExvZ0xpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgaWYocmVzJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuQ2FtZXJhRGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0xXCI+e3t2YWx1ZT8uc3RvcmVOYW1lfX0tIFN0b3JlIEluZnJhc3RydWN0dXJlPC9zcGFuPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QmFzZWQgb24gZGF0ZSA6IHt7Y3VycmVudERhdGUgfCBkYXRlOidkZC1NTS15eSd9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPkVkZ2UgQXBwIFN0YXR1cyA8c3BhbiAqbmdJZj1cInZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzXCI+LSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHctMTAwIHB4LTEwIHB5LTMgbXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QXBwIExvZ2luIFRpbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFN0YXJ0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgQ2xvc2UgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFF1aXRUaW1lIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgQ3Jhc2ggVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uQXBwQ3Jhc2h0aW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPlN5c3RlbSBDaGVjayA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHctMTAwIHB4LTEwIHB5LTMgbXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlIFwiPlN5c3RlbSBJZGxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5zY3JlZW5TdGF0dXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BbnRpdmlydXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmFudGlWaXJ1cyA/dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkZpbGVzIFB1c2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uZmlsZXNQdXNoZWQgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uZmlsZXNQdXNoZWQgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPkNhbWVyYSBDaGVjazwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkZXRhaWxzIG9mIENhbWVyYURldGFpbHNcIiBjbGFzcz1cImNvbC1zbS02IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIoZGV0YWlscz8uaXNBY3RpdmF0ZWQgJiYgZGV0YWlscy5pc1VwKSA/ICdiZy1zdWNjZXNzJzonYmctZGFuZ2VyJ1wiIGNsYXNzPVwidy0xMHB4IGgtMTBweCBib3JkZXItMCByb3VuZGVkLTMgbWUtMlwiPjwvZGl2PjxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTnVtYmVyXCI+e3tkZXRhaWxzPy5jYW1lcmFOdW1iZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy5jYW1lcmFOYW1lXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtcy0yXCI+e3tkZXRhaWxzPy5jYW1lcmFOYW1lIHwgdGl0bGVjYXNlfX0gQ2FtZXJhPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+PHNwYW4+e3tkZXRhaWxzPy5zdHJlYW1OYW1lfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIG1oLTIwMHB4IHJvdW5kZWQtMyBtdC0zXCIgc3JjPSd7e2RldGFpbHM/LnRodW1ibmFpbEltYWdlfX0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhcHR1cmVBdFwiIGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPkRhdGUgQWRkZWQgOiB7e2RldGFpbHM/LmNhcHR1cmVBdCB8IGN1c3RvbURhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy50aW1lRWxhcHNlZFwiIGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPkZyYW1lIFJhdGUgOiB7e2RldGFpbHM/LnRpbWVFbGFwc2VkfX0gU2VjPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGEgfHwgIUNhbWVyYURldGFpbHM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7QUFPMUMsTUFBTSxPQUFPLHVCQUF1QjtJQVNkO0lBQXNDO0lBUjFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBQ0YsUUFBUSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7SUFFMUMsWUFBb0IsWUFBNEIsRUFBVSxFQUFxQjtRQUEzRCxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUcvRSxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUNELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXBCLElBQUksR0FBRyxHQUFHO1lBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM1QixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTO1lBQzNCLEVBQUUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87U0FDeEIsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzdFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7aUJBQ3hCO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBRWYsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxJQUFJLEdBQUc7WUFDVCxPQUFPLEVBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPO1lBQzdCLG9CQUFvQjtTQUNyQixDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDL0UsSUFBSSxFQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7Z0JBQ2QsSUFBRyxHQUFHLElBQUcsR0FBRyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUM7b0JBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxFQUFFLElBQUksQ0FBQztvQkFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO2lCQUNyQjtxQkFBSTtvQkFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7aUJBQ3BCO1lBQ0gsQ0FBQztZQUNELEtBQUssRUFBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO2dCQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNyQixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQzt1R0E5RFUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsdUZDVHBDLDB6TEFrR0E7OzJGRHpGYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0UscUJBQXFCO21IQVN0QixLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRpY2tldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LWluZnJhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkZ2UtY2FtZXJhdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkZ2UtY2FtZXJhdmlldy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VkZ2UtY2FtZXJhdmlldy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkZ2VDYW1lcmF2aWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB2aWV3RWRnZUFwcExvZ0xpc3Q6IGFueTtcclxuICBjdXJyZW50RGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSB2YWx1ZTogYW55O1xyXG4gIENhbWVyYURldGFpbHM6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmZyYVNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLCBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG5cclxuXHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5nZXRWaWV3RWRnZUFwcExvZygpO1xyXG4gICAgdGhpcy5nZXRDYW1lcmFJbWFnZXMoKTtcclxuICAgIHRoaXMuY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIH1cclxuICBnZXRWaWV3RWRnZUFwcExvZygpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG5cclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMudmFsdWU/LnN0b3JlSWQsXHJcbiAgICAgIGZyb206IHRoaXMudmFsdWU/LnN0YXJ0VGltZSxcclxuICAgICAgdG86IHRoaXMudmFsdWU/LmVuZFRpbWVcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3ZWRnZUFwcExvZyhvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudmlld0VkZ2VBcHBMb2dMaXN0ID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcblxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgZ2V0Q2FtZXJhSW1hZ2VzKCl7XHJcbiAgICBsZXQgZGF0YSA9IHtcclxuICAgICAgc3RvcmVJZCA6IHRoaXMudmFsdWU/LnN0b3JlSWRcclxuICAgICAgLy8gc3RvcmVJZDpcIjIwMS0xMjlcIlxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmZyYVNlcnZpY2UuZ2V0Q2FtZXJhSW1hZ2VzKGRhdGEpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OihyZXM6YW55KT0+IHtcclxuICAgICAgICBpZihyZXMmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgICAgdGhpcy5DYW1lcmFEZXRhaWxzID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjooZXJyKT0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBmbGV4LWNvbHVtbiBib3JkZXItMFwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJtdC01IG1zZ3Byb2ZpbGVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvZWRnZWFwcCBpY29uLnN2Z1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYXJkLWxhYmVsIG1iLTFcIj57e3ZhbHVlPy5zdG9yZU5hbWV9fS0gU3RvcmUgSW5mcmFzdHJ1Y3R1cmU8L3NwYW4+XHJcbiAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5CYXNlZCBvbiBkYXRlIDoge3tjdXJyZW50RGF0ZSB8IGRhdGU6J2RkLU1NLXl5J319IDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+RWRnZSBBcHAgU3RhdHVzIDxzcGFuICpuZ0lmPVwidmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXNcIj4tIHt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFN0YXR1cyA6Jy0tJ319PC9zcGFuPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgTG9naW4gVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGFydFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDbG9zZSBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBRdWl0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFwcCBDcmFzaCBUaW1lPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LkFwcENyYXNodGltZSA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+U3lzdGVtIENoZWNrIDwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvcmRlciBib3JkZXItZ3JheSBib3JkZXItMSByb3VuZGVkLTMgdy0xMDAgcHgtMTAgcHktMyBtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGUgXCI+U3lzdGVtIElkbGU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LnNjcmVlblN0YXR1cyA/dmlld0VkZ2VBcHBMb2dMaXN0Py5zY3JlZW5TdGF0dXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkFudGl2aXJ1czwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYW50aVZpcnVzID92aWV3RWRnZUFwcExvZ0xpc3Q/LmFudGlWaXJ1cyA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+RmlsZXMgUHVzaGVkPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5maWxlc1B1c2hlZCA/dmlld0VkZ2VBcHBMb2dMaXN0Py5maWxlc1B1c2hlZCA6Jy0tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTEwXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaGVhZGluZyBtYi01IGZ3LXNlbWlib2xkXCI+Q2FtZXJhIENoZWNrPC9zcGFuPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRldGFpbHMgb2YgQ2FtZXJhRGV0YWlsc1wiIGNsYXNzPVwiY29sLXNtLTYgbXQtMTBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIihkZXRhaWxzPy5pc0FjdGl2YXRlZCAmJiBkZXRhaWxzLmlzVXApID8gJ2JnLXN1Y2Nlc3MnOidiZy1kYW5nZXInXCIgY2xhc3M9XCJ3LTEwcHggaC0xMHB4IGJvcmRlci0wIHJvdW5kZWQtMyBtZS0yXCI+PC9kaXY+PHNwYW4gKm5nSWY9XCJkZXRhaWxzPy5jYW1lcmFOdW1iZXJcIj57e2RldGFpbHM/LmNhbWVyYU51bWJlcn19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhbWVyYU5hbWVcIiBjbGFzcz1cImJhZGdlIGJhZGdlLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IG1zLTJcIj57e2RldGFpbHM/LmNhbWVyYU5hbWUgfCB0aXRsZWNhc2V9fSBDYW1lcmE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cmVhbWRhdGUgZnctc2VtaWJvbGRcIj48c3Bhbj57e2RldGFpbHM/LnN0cmVhbU5hbWV9fTwvc3Bhbj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDAgbWgtMjAwcHggcm91bmRlZC0zIG10LTNcIiBzcmM9J3t7ZGV0YWlscz8udGh1bWJuYWlsSW1hZ2V9fSc+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTMgZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FwdHVyZUF0XCIgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+RGF0ZSBBZGRlZCA6IHt7ZGV0YWlscz8uY2FwdHVyZUF0IHwgY3VzdG9tRGF0ZUZvcm1hdH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LnRpbWVFbGFwc2VkXCIgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+RnJhbWUgUmF0ZSA6IHt7ZGV0YWlscz8udGltZUVsYXBzZWR9fSBTZWM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIFxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCIgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlciAgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YSB8fCAhQ2FtZXJhRGV0YWlscz8ubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIHctMjVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -33,6 +33,7 @@ export class EdgeappLogComponent {
33
33
  selectedDate;
34
34
  ticketId;
35
35
  ticketInfo;
36
+ isCustomDate;
36
37
  constructor(modalService, infraService, cd, dataservice, gs, route) {
37
38
  this.modalService = modalService;
38
39
  this.infraService = infraService;
@@ -44,6 +45,10 @@ export class EdgeappLogComponent {
44
45
  console.log('route.snapshot', this.ticketId);
45
46
  }
46
47
  ngOnInit() {
48
+ this.isCustomDate = (m) => {
49
+ const isValidDate = m > this.dayjs();
50
+ return isValidDate ? 'invalid-date' : false;
51
+ };
47
52
  this.selectedDateRange.startDate = this.dayjs().utc().format('DD-MM-YYYY');
48
53
  this.selectedDate = this.dayjs().utc().format('YYYY-MM-DD');
49
54
  this.getEdgeAppLogTable();
@@ -120,22 +125,31 @@ export class EdgeappLogComponent {
120
125
  let obj = {
121
126
  storeName: this.ticketInfo?.storeName,
122
127
  storeId: this.storeId,
123
- startTime: data.startTime,
124
- endTime: data.endTime
128
+ startTime: dayjs(`1991-01-01 ${data.startTime}`, 'YYYY-MM-DD hh:mm A').format("HH:mm"),
129
+ endTime: dayjs(`1991-01-01 ${data.endTime}`, 'YYYY-MM-DD hh:mm A').format("HH:mm")
125
130
  };
131
+ console.log(obj);
126
132
  const modalRef = this.modalService.open(EdgeCameraviewComponent, {
127
133
  centered: true,
128
134
  size: 'lg',
129
135
  });
130
136
  modalRef.componentInstance.value = obj;
131
137
  }
138
+ onStartDateChange(event) {
139
+ if (this.dayjs(event.startDate).isValid()) {
140
+ this.isCustomDate = (m) => {
141
+ const isValidDate = m > this.dayjs() || m > this.dayjs(event.startDate.add(90, "days"));
142
+ return isValidDate ? "invalid-date" : false;
143
+ };
144
+ }
145
+ }
132
146
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeappLogComponent, deps: [{ token: i1.NgbModal }, { token: i2.TicketsService }, { token: i0.ChangeDetectorRef }, { token: i3.DataService }, { token: i4.GlobalStateService }, { token: i5.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
133
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeappLogComponent, selector: "lib-edgeapp-log", inputs: { storeId: "storeId" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\"> \r\n <div class=\"badge-light-primary text-primary rounded-2 px-5 py-3\">Edge App Logs</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDownload && !noData\" class=\"btn btn-default btn-outline\" (click)=\"edgeAppExportasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> Export\r\n </div>\r\n <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Time Stamp</th>\r\n <th>Downtime</th>\r\n <th>Avg Internet Speed</th>\r\n <th>App Status</th>\r\n <th>Files Pushed</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of getEdgeAppLoveValue;let i=index;\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <span><img src='./assets/tango/Images/document.svg'></span>\r\n <div class=\"d-grid ms-3\">\r\n <span>{{obj.startTime}} - {{obj.endTime}}</span>\r\n <span class=\"textSub mt-1\">{{obj.hourStatus}}</span>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{obj.downtime}} mins</td>\r\n <td>{{obj.Internetspeed ? obj.Internetspeed:'--'}}</td>\r\n <td><span class=\"badge badge-light-success text-success\">{{obj.AppStatus ? obj.AppStatus :'--'}}</span></td>\r\n <td>{{obj.files_pushed ? obj.files_pushed:'--'}}</td>\r\n <td><span (click)=\"openCameraView(obj)\" class=\"cursor-pointer\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4652_11479)\">\r\n <path d=\"M0.833984 10.0265C0.833984 10.0265 4.16732 3.35986 10.0007 3.35986C15.834 3.35986 19.1673 10.0265 19.1673 10.0265C19.1673 10.0265 15.834 16.6932 10.0007 16.6932C4.16732 16.6932 0.833984 10.0265 0.833984 10.0265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.0007 12.5265C11.3814 12.5265 12.5006 11.4072 12.5006 10.0265C12.5006 8.64582 11.3814 7.52653 10.0007 7.52653C8.61994 7.52653 7.50065 8.64582 7.50065 10.0265C7.50065 11.4072 8.61994 12.5265 10.0007 12.5265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4652_11479\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0 0.0263672)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></td>\r\n </tr>\r\n \r\n </tbody>\r\n \r\n </table> \r\n </div>\r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".textSub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}tr{vertical-align:middle!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
147
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeappLogComponent, selector: "lib-edgeapp-log", inputs: { storeId: "storeId" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\"> \r\n <div class=\"badge-light-primary text-primary rounded-2 px-5 py-3\">Edge App Logs</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDownload && !noData\" class=\"btn btn-default btn-outline\" (click)=\"edgeAppExportasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> Export\r\n </div>\r\n <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Time Stamp</th>\r\n <th>Downtime</th>\r\n <th>Avg Internet Speed</th>\r\n <th>App Status</th>\r\n <th>Files Pushed</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of getEdgeAppLoveValue;let i=index;\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <span><img src='./assets/tango/Images/document.svg'></span>\r\n <div class=\"d-grid ms-3\">\r\n <span>{{obj.startTime}} - {{obj.endTime}}</span>\r\n <span class=\"textSub mt-1\">{{obj.hourStatus}}</span>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{obj.downtime}} mins</td>\r\n <td>{{obj.Internetspeed ? obj.Internetspeed:'--'}}</td>\r\n <td><span class=\"badge badge-light-success text-success\">{{obj.AppStatus ? obj.AppStatus :'--'}}</span></td>\r\n <td>{{obj.files_pushed ? obj.files_pushed:'--'}}</td>\r\n <td><span (click)=\"openCameraView(obj)\" class=\"cursor-pointer\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4652_11479)\">\r\n <path d=\"M0.833984 10.0265C0.833984 10.0265 4.16732 3.35986 10.0007 3.35986C15.834 3.35986 19.1673 10.0265 19.1673 10.0265C19.1673 10.0265 15.834 16.6932 10.0007 16.6932C4.16732 16.6932 0.833984 10.0265 0.833984 10.0265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.0007 12.5265C11.3814 12.5265 12.5006 11.4072 12.5006 10.0265C12.5006 8.64582 11.3814 7.52653 10.0007 7.52653C8.61994 7.52653 7.50065 8.64582 7.50065 10.0265C7.50065 11.4072 8.61994 12.5265 10.0007 12.5265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4652_11479\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0 0.0263672)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></td>\r\n </tr>\r\n \r\n </tbody>\r\n \r\n </table> \r\n </div>\r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".textSub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}tr{vertical-align:middle!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
134
148
  }
135
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeappLogComponent, decorators: [{
136
150
  type: Component,
137
- args: [{ selector: 'lib-edgeapp-log', template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\"> \r\n <div class=\"badge-light-primary text-primary rounded-2 px-5 py-3\">Edge App Logs</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDownload && !noData\" class=\"btn btn-default btn-outline\" (click)=\"edgeAppExportasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> Export\r\n </div>\r\n <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Time Stamp</th>\r\n <th>Downtime</th>\r\n <th>Avg Internet Speed</th>\r\n <th>App Status</th>\r\n <th>Files Pushed</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of getEdgeAppLoveValue;let i=index;\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <span><img src='./assets/tango/Images/document.svg'></span>\r\n <div class=\"d-grid ms-3\">\r\n <span>{{obj.startTime}} - {{obj.endTime}}</span>\r\n <span class=\"textSub mt-1\">{{obj.hourStatus}}</span>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{obj.downtime}} mins</td>\r\n <td>{{obj.Internetspeed ? obj.Internetspeed:'--'}}</td>\r\n <td><span class=\"badge badge-light-success text-success\">{{obj.AppStatus ? obj.AppStatus :'--'}}</span></td>\r\n <td>{{obj.files_pushed ? obj.files_pushed:'--'}}</td>\r\n <td><span (click)=\"openCameraView(obj)\" class=\"cursor-pointer\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4652_11479)\">\r\n <path d=\"M0.833984 10.0265C0.833984 10.0265 4.16732 3.35986 10.0007 3.35986C15.834 3.35986 19.1673 10.0265 19.1673 10.0265C19.1673 10.0265 15.834 16.6932 10.0007 16.6932C4.16732 16.6932 0.833984 10.0265 0.833984 10.0265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.0007 12.5265C11.3814 12.5265 12.5006 11.4072 12.5006 10.0265C12.5006 8.64582 11.3814 7.52653 10.0007 7.52653C8.61994 7.52653 7.50065 8.64582 7.50065 10.0265C7.50065 11.4072 8.61994 12.5265 10.0007 12.5265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4652_11479\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0 0.0263672)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></td>\r\n </tr>\r\n \r\n </tbody>\r\n \r\n </table> \r\n </div>\r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".textSub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}tr{vertical-align:middle!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
151
+ args: [{ selector: 'lib-edgeapp-log', template: "<div class=\"card\">\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\"> \r\n <div class=\"badge-light-primary text-primary rounded-2 px-5 py-3\">Edge App Logs</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"(gs.userAccess | async)?.manage_tickets_isDownload && !noData\" class=\"btn btn-default btn-outline\" (click)=\"edgeAppExportasXlsx()\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <path d=\"M17.5 12.5264V15.8597C17.5 16.3017 17.3244 16.7257 17.0118 17.0382C16.6993 17.3508 16.2754 17.5264 15.8333 17.5264H4.16667C3.72464 17.5264 3.30072 17.3508 2.98816 17.0382C2.67559 16.7257 2.5 16.3017 2.5 15.8597V12.5264M14.1667 6.69303L10 2.52637M10 2.52637L5.83333 6.69303M10 2.52637V12.5264\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></span> Export\r\n </div>\r\n <div class=\"d-flex align-items-center position-relative my-1 ms-3\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n\r\n <input class=\"fx-date-range form-control ps-14\" type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" />\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Time Stamp</th>\r\n <th>Downtime</th>\r\n <th>Avg Internet Speed</th>\r\n <th>App Status</th>\r\n <th>Files Pushed</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of getEdgeAppLoveValue;let i=index;\">\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <span><img src='./assets/tango/Images/document.svg'></span>\r\n <div class=\"d-grid ms-3\">\r\n <span>{{obj.startTime}} - {{obj.endTime}}</span>\r\n <span class=\"textSub mt-1\">{{obj.hourStatus}}</span>\r\n </div>\r\n </div>\r\n </td>\r\n <td>{{obj.downtime}} mins</td>\r\n <td>{{obj.Internetspeed ? obj.Internetspeed:'--'}}</td>\r\n <td><span class=\"badge badge-light-success text-success\">{{obj.AppStatus ? obj.AppStatus :'--'}}</span></td>\r\n <td>{{obj.files_pushed ? obj.files_pushed:'--'}}</td>\r\n <td><span (click)=\"openCameraView(obj)\" class=\"cursor-pointer\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_4652_11479)\">\r\n <path d=\"M0.833984 10.0265C0.833984 10.0265 4.16732 3.35986 10.0007 3.35986C15.834 3.35986 19.1673 10.0265 19.1673 10.0265C19.1673 10.0265 15.834 16.6932 10.0007 16.6932C4.16732 16.6932 0.833984 10.0265 0.833984 10.0265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M10.0007 12.5265C11.3814 12.5265 12.5006 11.4072 12.5006 10.0265C12.5006 8.64582 11.3814 7.52653 10.0007 7.52653C8.61994 7.52653 7.50065 8.64582 7.50065 10.0265C7.50065 11.4072 8.61994 12.5265 10.0007 12.5265Z\" stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4652_11479\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0 0.0263672)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg></span></td>\r\n </tr>\r\n \r\n </tbody>\r\n \r\n </table> \r\n </div>\r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".textSub{color:var(--Gray-500, #667085);font-size:14px;font-weight:400;line-height:20px}tr{vertical-align:middle!important}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
138
152
  }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i2.TicketsService }, { type: i0.ChangeDetectorRef }, { type: i3.DataService }, { type: i4.GlobalStateService }, { type: i5.ActivatedRoute }], propDecorators: { storeId: [{
139
153
  type: Input
140
154
  }] } });
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZWFwcC1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tdGlja2V0LXVzZXIvc3JjL2xpYi9jb21wb25lbnRzL2VkZ2VhcHAtbG9nL2VkZ2VhcHAtbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlYXBwLWxvZy9lZGdlYXBwLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFJdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFFN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBTXRCLE1BQU0sT0FBTyxtQkFBbUI7SUFXVjtJQUNWO0lBQ0E7SUFDQTtJQUNEO0lBQ0E7SUFmVCxNQUFNLEdBQVksS0FBSyxDQUFDO0lBQ3hCLE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsbUJBQW1CLEdBQVEsRUFBRSxDQUFDO0lBQ3JCLE9BQU8sQ0FBTTtJQUN0QixpQkFBaUIsR0FBUSxFQUFFLENBQUM7SUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNJLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFD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LE1BQU0sRUFBRSxJQUFJO1NBQ2IsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDcEYsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQTtZQUNsRCxDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFTO1FBRXRCLElBQUksR0FBRyxHQUFHO1lBQ1IsU0FBUyxFQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsU0FBUztZQUNwQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN0QixDQUFBO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDL0QsUUFBUSxFQUFFLElBQUk7WUFDZCxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO0lBQ3pDLENBQUM7dUdBMUdVLG1CQUFtQjsyRkFBbkIsbUJBQW1CLHVGQ25CaEMsdXBOQXVHQTs7MkZEcEZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7a09BUWxCLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiTW9kYWwsIE5nYk1vZGFsUmVmLCBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRWRnZUNhbWVyYXZpZXdDb21wb25lbnQgfSBmcm9tICcuLi9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRpY2tldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LWluZnJhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuaW1wb3J0ICdkYXlqcy9sb2NhbGUvZW4nO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5kYXlqcy5leHRlbmQodXRjKTtcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKVxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGdlYXBwLWxvZycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkZ2VhcHAtbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZWRnZWFwcC1sb2cuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGdlYXBwTG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBub0RhdGE6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBsb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuICBnZXRFZGdlQXBwTG92ZVZhbHVlOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBzdG9yZUlkOiBhbnk7XHJcbiAgc2VsZWN0ZWREYXRlUmFuZ2U6IGFueSA9IHt9O1xyXG4gIGRheWpzID0gZGF5anNcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBzZWxlY3RlZERhdGU6IGFueTtcclxuICB0aWNrZXRJZDogYW55O1xyXG4gIHRpY2tldEluZm86IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTmdiTW9kYWwsXHJcbiAgICBwcml2YXRlIGluZnJhU2VydmljZTogVGlja2V0c1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgZGF0YXNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgcHVibGljIGdzOkdsb2JhbFN0YXRlU2VydmljZSxcclxuICAgIHB1YmxpYyByb3V0ZTpBY3RpdmF0ZWRSb3V0ZSAgKSB7XHJcbiAgICB0aGlzLnRpY2tldElkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ3RpY2tldElkJyk7XHJcbiAgICBjb25zb2xlLmxvZygncm91dGUuc25hcHNob3QnLHRoaXMudGlja2V0SWQpXHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gdGhpcy5kYXlqcygpLnV0YygpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0aGlzLmRheWpzKCkudXRjKCkuZm9ybWF0KCdZWVlZLU1NLUREJyk7XHJcbiAgICB0aGlzLmdldEVkZ2VBcHBMb2dUYWJsZSgpO1xyXG4gICAgdGhpcy52aWV3VGlja2V0KClcclxuICB9XHJcbiAgdmlld1RpY2tldCgpIHtcclxuICAgIGxldCBwYXJhbXMgPSB7XHJcbiAgICAgIHRpY2tldElkOiB0aGlzLnRpY2tldElkXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3VGlja2V0KHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudGlja2V0SW5mbyA9IHJlcz8uZGF0YT8uYmFzaWNEZXRhaWxzXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG4gIGdldEVkZ2VBcHBMb2dUYWJsZSgpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkLFxyXG4gICAgICBEYXRlOiB0aGlzLnNlbGVjdGVkRGF0ZVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmZyYVNlcnZpY2UuZWRnZUFwcExvZ1RhYmxlKG9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5nZXRFZGdlQXBwTG92ZVZhbHVlID0gcmVzPy5kYXRhO1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgICB9IGVsc2UgaWYgKHJlcy5jb2RlID09IDIwNCkge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICBkYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICBpZiAodGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLnV0YygpLmZvcm1hdCgnREQtTU0tWVlZWScpO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLnV0YygpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgICAgIHRoaXMuZ2V0RWRnZUFwcExvZ1RhYmxlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBkYXRlcyBwcm92aWRlZDonLCBldmVudC5zdGFydERhdGUsIGV2ZW50LmVuZERhdGUpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdJbnZhbGlkIGV2ZW50IG9iamVjdDonLCBldmVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGVkZ2VBcHBFeHBvcnRhc1hsc3goKSB7ICAgIFxyXG4gICAgbGV0IG9iaiA9IHsgICAgICBcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkLFxyXG4gICAgICBEYXRlOiB0aGlzLnNlbGVjdGVkRGF0ZSxcclxuICAgICAgZXhwb3J0OiB0cnVlXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5lZGdlQXBwTG9nVGFibGVFeHBvcnQob2JqKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhc2VydmljZS5zYXZlQXNFeGNlbEZpbGUocmVzLCAnRWRnZWFwcCcpXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgb3BlbkNhbWVyYVZpZXcoZGF0YTogYW55KSB7XHJcbiAgICBcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIHN0b3JlTmFtZTp0aGlzLnRpY2tldEluZm8/LnN0b3JlTmFtZSxcclxuICAgICAgc3RvcmVJZDogdGhpcy5zdG9yZUlkLFxyXG4gICAgICBzdGFydFRpbWU6IGRhdGEuc3RhcnRUaW1lLFxyXG4gICAgICBlbmRUaW1lOiBkYXRhLmVuZFRpbWVcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRWRnZUNhbWVyYXZpZXdDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6ICdsZycsXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0gb2JqO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj4gICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSByb3VuZGVkLTIgcHgtNSBweS0zXCI+RWRnZSBBcHAgTG9nczwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRvb2xiYXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiKGdzLnVzZXJBY2Nlc3MgfCBhc3luYyk/Lm1hbmFnZV90aWNrZXRzX2lzRG93bmxvYWQgJiYgIW5vRGF0YVwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1vdXRsaW5lXCIgKGNsaWNrKT1cImVkZ2VBcHBFeHBvcnRhc1hsc3goKVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIxXCIgdmlld0JveD1cIjAgMCAyMCAyMVwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xNy41IDEyLjUyNjRWMTUuODU5N0MxNy41IDE2LjMwMTcgMTcuMzI0NCAxNi43MjU3IDE3LjAxMTggMTcuMDM4MkMxNi42OTkzIDE3LjM1MDggMTYuMjc1NCAxNy41MjY0IDE1LjgzMzMgMTcuNTI2NEg0LjE2NjY3QzMuNzI0NjQgMTcuNTI2NCAzLjMwMDcyIDE3LjM1MDggMi45ODgxNiAxNy4wMzgyQzIuNjc1NTkgMTYuNzI1NyAyLjUgMTYuMzAxNyAyLjUgMTUuODU5N1YxMi41MjY0TTE0LjE2NjcgNi42OTMwM0wxMCAyLjUyNjM3TTEwIDIuNTI2MzdMNS44MzMzMyA2LjY5MzAzTTEwIDIuNTI2MzdWMTIuNTI2NFwiIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj4gRXhwb3J0XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmUgbXktMSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZ4LWRhdGUtcmFuZ2UgZm9ybS1jb250cm9sIHBzLTE0XCIgdHlwZT1cInRleHRcIiBtYXRJbnB1dCBuZ3hEYXRlcmFuZ2VwaWNrZXJNZCBbc2luZ2xlRGF0ZVBpY2tlcl09XCJ0cnVlXCIgW2Ryb3BzXT1cIidkb3duJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW29wZW5zXT1cIidyaWdodCdcIiBbYWx3YXlzU2hvd0NhbGVuZGFyc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCJcclxuICAgICAgICAgICAgICAgICAgICBbbG9jYWxlXT1cInsgZm9ybWF0OiAnREQtTU0tWVlZWScsIGZpcnN0RGF5OiAxLCBtb250aE5hbWVzOiBbJ0phbnVhcnknLCAnRmVicnVhcnknLCAnTWFyY2gnLCAnQXByaWwnLCAnTWF5JywgJ0p1bmUnLCAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInXSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgPC9kaXY+XHJcbiAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgIDxkaXYgKm5nSWY9XCIhbG9hZGluZyAmJiAhbm9EYXRhXCIgY2xhc3M9XCJ0YWJsZS1yZXNwb25zaXZlXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgYm90dG9tLWJvcmRlclwiPlxyXG4gICAgICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPlRpbWUgU3RhbXA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD5Eb3dudGltZTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPkF2ZyBJbnRlcm5ldCBTcGVlZDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPkFwcCBTdGF0dXM8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD5GaWxlcyBQdXNoZWQ8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aD5BY3Rpb248L3RoPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgPC90aGVhZD5cclxuICAgICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBvYmogb2YgZ2V0RWRnZUFwcExvdmVWYWx1ZTtsZXQgaT1pbmRleDtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj48aW1nIHNyYz0nLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2RvY3VtZW50LnN2Zyc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZ3JpZCBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tvYmouc3RhcnRUaW1lfX0gLSB7e29iai5lbmRUaW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0U3ViIG10LTFcIj57e29iai5ob3VyU3RhdHVzfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tvYmouZG93bnRpbWV9fSBtaW5zPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tvYmouSW50ZXJuZXRzcGVlZCA/IG9iai5JbnRlcm5ldHNwZWVkOictLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtbGlnaHQtc3VjY2VzcyB0ZXh0LXN1Y2Nlc3NcIj57e29iai5BcHBTdGF0dXMgPyBvYmouQXBwU3RhdHVzIDonLS0nfX08L3NwYW4+PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3tvYmouZmlsZXNfcHVzaGVkID8gb2JqLmZpbGVzX3B1c2hlZDonLS0nfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD48c3BhbiAoY2xpY2spPVwib3BlbkNhbWVyYVZpZXcob2JqKVwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGcgY2xpcC1wYXRoPVwidXJsKCNjbGlwMF80NjUyXzExNDc5KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAuODMzOTg0IDEwLjAyNjVDMC44MzM5ODQgMTAuMDI2NSA0LjE2NzMyIDMuMzU5ODYgMTAuMDAwNyAzLjM1OTg2QzE1LjgzNCAzLjM1OTg2IDE5LjE2NzMgMTAuMDI2NSAxOS4xNjczIDEwLjAyNjVDMTkuMTY3MyAxMC4wMjY1IDE1LjgzNCAxNi42OTMyIDEwLjAwMDcgMTYuNjkzMkM0LjE2NzMyIDE2LjY5MzIgMC44MzM5ODQgMTAuMDI2NSAwLjgzMzk4NCAxMC4wMjY1WlwiIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTEwLjAwMDcgMTIuNTI2NUMxMS4zODE0IDEyLjUyNjUgMTIuNTAwNiAxMS40MDcyIDEyLjUwMDYgMTAuMDI2NUMxMi41MDA2IDguNjQ1ODIgMTEuMzgxNCA3LjUyNjUzIDEwLjAwMDcgNy41MjY1M0M4LjYxOTk0IDcuNTI2NTMgNy41MDA2NSA4LjY0NTgyIDcuNTAwNjUgMTAuMDI2NUM3LjUwMDY1IDExLjQwNzIgOC42MTk5NCAxMi41MjY1IDEwLjAwMDcgMTIuNTI2NVpcIiBzdHJva2U9XCIjNDc1NDY3XCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9nPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfNDY1Ml8xMTQ3OVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBmaWxsPVwid2hpdGVcIiB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoMCAwLjAyNjM2NzIpXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2NsaXBQYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPjwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIDwvdGFibGU+ICAgXHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCIgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbG9hZGVyIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGFcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBhbGlnbi1pdGVtcy1jZW50ZXIgZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZWFwcC1sb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tdGlja2V0LXVzZXIvc3JjL2xpYi9jb21wb25lbnRzL2VkZ2VhcHAtbG9nL2VkZ2VhcHAtbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlYXBwLWxvZy9lZGdlYXBwLWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFJdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7QUFFN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0FBTXRCLE1BQU0sT0FBTyxtQkFBbUI7SUFZVjtJQUNWO0lBQ0E7SUFDQTtJQUNEO0lBQ0E7SUFoQlQsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixPQUFPLEdBQVksSUFBSSxDQUFDO0lBQ3hCLG1CQUFtQixHQUFRLEVBQUUsQ0FBQztJQUNyQixPQUFPLENBQU07SUFDdEIsaUJBQWlCLEdBQVEsRUFBRSxDQUFDO0lBQzVCLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDSSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxZQUFZLENBQU07SUFDbEIsUUFBUSxDQUFNO0lBQ2QsVUFBVSxDQUFNO0lBQ2hCLFlBQVksQ0FBNkM7SUFDekQsWUFBb0IsWUFBc0IsRUFDaEMsWUFBNEIsRUFDNUIsRUFBcUIsRUFDckIsV0FBd0IsRUFDekIsRUFBcUIsRUFDckIsS0FBb0I7UUFMVCxpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFDNUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDN0MsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBYyxFQUFFLEVBQUU7WUFDckMsTUFBTSxXQUFXLEdBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDaEQsQ0FBQyxDQUFBO1FBQ0MsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUE7SUFDbkIsQ0FBQztJQUNELFVBQVU7UUFDUixJQUFJLE1BQU0sR0FBRztZQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFBO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDNUUsSUFBSSxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxFQUFFO29CQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksQ0FBQTtpQkFDMUM7WUFDSCxDQUFDO1NBQ0EsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDeEIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQzlFLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEdBQUcsRUFBRSxJQUFJLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztvQkFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtpQkFDeEI7cUJBQU0sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO2lCQUNwQjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDN0MsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzFGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMzRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMzQjtpQkFBTTtnQkFDTCxPQUFPLENBQUMsS0FBSyxDQUFDLHlCQUF5QixFQUFFLEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFFO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDL0M7SUFDSCxDQUFDO0lBQ0QsbUJBQW1CO1FBQ2pCLElBQUksR0FBRyxHQUFHO1lBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN2QixNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUE7UUFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3BGLElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUE7WUFDbEQsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBUztRQUN0QixJQUFJLEdBQUcsR0FBRztZQUNSLFNBQVMsRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFNBQVM7WUFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3JCLFNBQVMsRUFBRSxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ3JGLE9BQU8sRUFBRSxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUMsb0JBQW9CLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2xGLENBQUE7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQy9ELFFBQVEsRUFBRSxJQUFJO1lBQ2QsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFDSCxRQUFRLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsaUJBQWlCLENBQUMsS0FBVTtRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFjLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxXQUFXLEdBQ2YsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDdEUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQzlDLENBQUMsQ0FBQztTQUNIO0lBQ0gsQ0FBQzt1R0F4SFUsbUJBQW1COzJGQUFuQixtQkFBbUIsdUZDbkJoQyx3dU5BdUdBOzsyRkRwRmEsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGlCQUFpQjtrT0FRbEIsT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYsIE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBFZGdlQ2FtZXJhdmlld0NvbXBvbmVudCB9IGZyb20gJy4uL2VkZ2UtY2FtZXJhdmlldy9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgJ2RheWpzL2xvY2FsZS9lbic7XHJcbmltcG9ydCB1dGMgZnJvbSAnZGF5anMvcGx1Z2luL3V0Yyc7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkZ2VhcHAtbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWRnZWFwcC1sb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGdlYXBwLWxvZy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkZ2VhcHBMb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIG5vRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGdldEVkZ2VBcHBMb3ZlVmFsdWU6IGFueSA9IFtdO1xyXG4gIEBJbnB1dCgpIHN0b3JlSWQ6IGFueTtcclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgZGF5anMgPSBkYXlqc1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHNlbGVjdGVkRGF0ZTogYW55O1xyXG4gIHRpY2tldElkOiBhbnk7XHJcbiAgdGlja2V0SW5mbzogYW55O1xyXG4gIGlzQ3VzdG9tRGF0ZTogKG06IGRheWpzLkRheWpzKSA9PiBmYWxzZSB8IFwiaW52YWxpZC1kYXRlXCI7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLFxyXG4gICAgcHJpdmF0ZSBpbmZyYVNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGRhdGFzZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgIHB1YmxpYyBnczpHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgICBwdWJsaWMgcm91dGU6QWN0aXZhdGVkUm91dGUgICkge1xyXG4gICAgdGhpcy50aWNrZXRJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1NYXAuZ2V0KCd0aWNrZXRJZCcpO1xyXG4gICAgY29uc29sZS5sb2coJ3JvdXRlLnNuYXBzaG90Jyx0aGlzLnRpY2tldElkKVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gJ2ludmFsaWQtZGF0ZScgOiBmYWxzZTtcclxuICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoKS51dGMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKTtcclxuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdGhpcy5kYXlqcygpLnV0YygpLmZvcm1hdCgnWVlZWS1NTS1ERCcpO1xyXG4gICAgdGhpcy5nZXRFZGdlQXBwTG9nVGFibGUoKTtcclxuICAgIHRoaXMudmlld1RpY2tldCgpXHJcbiAgfVxyXG4gIHZpZXdUaWNrZXQoKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge1xyXG4gICAgICB0aWNrZXRJZDogdGhpcy50aWNrZXRJZFxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmZyYVNlcnZpY2Uudmlld1RpY2tldChwYXJhbXMpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnRpY2tldEluZm8gPSByZXM/LmRhdGE/LmJhc2ljRGV0YWlsc1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuICBnZXRFZGdlQXBwTG9nVGFibGUoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgIGxldCBvYmogPSB7XHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCxcclxuICAgICAgRGF0ZTogdGhpcy5zZWxlY3RlZERhdGVcclxuICAgIH1cclxuICAgIHRoaXMuaW5mcmFTZXJ2aWNlLmVkZ2VBcHBMb2dUYWJsZShvYmopLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcz8uY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMuZ2V0RWRnZUFwcExvdmVWYWx1ZSA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpXHJcbiAgICAgICAgfSBlbHNlIGlmIChyZXMuY29kZSA9PSAyMDQpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZGF0ZWNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAoZXZlbnQgJiYgZXZlbnQuc3RhcnREYXRlICYmIGV2ZW50LmVuZERhdGUpIHtcclxuICAgICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlLnN0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS51dGMoKS5mb3JtYXQoJ0RELU1NLVlZWVknKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS51dGMoKS5mb3JtYXQoJ1lZWVktTU0tREQnKTtcclxuICAgICAgICB0aGlzLmdldEVkZ2VBcHBMb2dUYWJsZSgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ludmFsaWQgZGF0ZXMgcHJvdmlkZWQ6JywgZXZlbnQuc3RhcnREYXRlLCBldmVudC5lbmREYXRlKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcignSW52YWxpZCBldmVudCBvYmplY3Q6JywgZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuICBlZGdlQXBwRXhwb3J0YXNYbHN4KCkgeyAgICBcclxuICAgIGxldCBvYmogPSB7ICAgICAgXHJcbiAgICAgIHN0b3JlSWQ6IHRoaXMuc3RvcmVJZCxcclxuICAgICAgRGF0ZTogdGhpcy5zZWxlY3RlZERhdGUsXHJcbiAgICAgIGV4cG9ydDogdHJ1ZVxyXG4gICAgfVxyXG4gICAgdGhpcy5pbmZyYVNlcnZpY2UuZWRnZUFwcExvZ1RhYmxlRXhwb3J0KG9iaikucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YXNlcnZpY2Uuc2F2ZUFzRXhjZWxGaWxlKHJlcywgJ0VkZ2VhcHAnKVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG9wZW5DYW1lcmFWaWV3KGRhdGE6IGFueSkge1xyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgc3RvcmVOYW1lOnRoaXMudGlja2V0SW5mbz8uc3RvcmVOYW1lLFxyXG4gICAgICBzdG9yZUlkOiB0aGlzLnN0b3JlSWQsXHJcbiAgICAgIHN0YXJ0VGltZTogZGF5anMoYDE5OTEtMDEtMDEgJHtkYXRhLnN0YXJ0VGltZX1gLCdZWVlZLU1NLUREIGhoOm1tIEEnKS5mb3JtYXQoXCJISDptbVwiKSxcclxuICAgICAgZW5kVGltZTogZGF5anMoYDE5OTEtMDEtMDEgJHtkYXRhLmVuZFRpbWV9YCwnWVlZWS1NTS1ERCBoaDptbSBBJykuZm9ybWF0KFwiSEg6bW1cIilcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKG9iailcclxuXHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oRWRnZUNhbWVyYXZpZXdDb21wb25lbnQsIHtcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHNpemU6ICdsZycsXHJcbiAgICB9KTtcclxuICAgIG1vZGFsUmVmLmNvbXBvbmVudEluc3RhbmNlLnZhbHVlID0gb2JqO1xyXG4gIH1cclxuICBvblN0YXJ0RGF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlID1cclxuICAgICAgICAgIG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCg5MCwgXCJkYXlzXCIpKTtcclxuICAgICAgICByZXR1cm4gaXNWYWxpZERhdGUgPyBcImludmFsaWQtZGF0ZVwiIDogZmFsc2U7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPiAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhZGdlLWxpZ2h0LXByaW1hcnkgdGV4dC1wcmltYXJ5IHJvdW5kZWQtMiBweC01IHB5LTNcIj5FZGdlIEFwcCBMb2dzPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8ubWFuYWdlX3RpY2tldHNfaXNEb3dubG9hZCAmJiAhbm9EYXRhXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmVcIiAoY2xpY2spPVwiZWRnZUFwcEV4cG9ydGFzWGxzeCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjFcIiB2aWV3Qm94PVwiMCAwIDIwIDIxXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNTI2NFYxNS44NTk3QzE3LjUgMTYuMzAxNyAxNy4zMjQ0IDE2LjcyNTcgMTcuMDExOCAxNy4wMzgyQzE2LjY5OTMgMTcuMzUwOCAxNi4yNzU0IDE3LjUyNjQgMTUuODMzMyAxNy41MjY0SDQuMTY2NjdDMy43MjQ2NCAxNy41MjY0IDMuMzAwNzIgMTcuMzUwOCAyLjk4ODE2IDE3LjAzODJDMi42NzU1OSAxNi43MjU3IDIuNSAxNi4zMDE3IDIuNSAxNS44NTk3VjEyLjUyNjRNMTQuMTY2NyA2LjY5MzAzTDEwIDIuNTI2MzdNMTAgMi41MjYzN0w1LjgzMzMzIDYuNjkzMDNNMTAgMi41MjYzN1YxMi41MjY0XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPiBFeHBvcnRcclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tMSBwb3NpdGlvbi1hYnNvbHV0ZSBtcy0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEzLjMzMzMgMS42NjY2M1Y0Ljk5OTk2TTYuNjY2NjcgMS42NjY2M1Y0Ljk5OTk2TTIuNSA4LjMzMzI5SDE3LjVNNC4xNjY2NyAzLjMzMzI5SDE1LjgzMzNDMTYuNzUzOCAzLjMzMzI5IDE3LjUgNC4wNzk0OCAxNy41IDQuOTk5OTZWMTYuNjY2NkMxNy41IDE3LjU4NzEgMTYuNzUzOCAxOC4zMzMzIDE1LjgzMzMgMTguMzMzM0g0LjE2NjY3QzMuMjQ2MTkgMTguMzMzMyAyLjUgMTcuNTg3MSAyLjUgMTYuNjY2NlY0Ljk5OTk2QzIuNSA0LjA3OTQ4IDMuMjQ2MTkgMy4zMzMyOSA0LjE2NjY3IDMuMzMzMjlaXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cIiMzNDQwNTRcIiBzdHJva2Utd2lkdGg9XCIxLjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuXHJcbiAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtzaW5nbGVEYXRlUGlja2VyXT1cInRydWVcIiBbZHJvcHNdPVwiJ2Rvd24nXCJcclxuICAgICAgICAgICAgICAgICAgICBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBba2VlcENhbGVuZGFyT3BlbmluZ1dpdGhSYW5nZV09XCJ0cnVlXCIgW3Nob3dDYW5jZWxdPVwidHJ1ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWREYXRlUmFuZ2VcIiAoc3RhcnREYXRlQ2hhbmdlZCk9XCJvblN0YXJ0RGF0ZUNoYW5nZSgkZXZlbnQpXCIgW2lzQ3VzdG9tRGF0ZV09XCJpc0N1c3RvbURhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChkYXRlc1VwZGF0ZWQpPVwiZGF0ZWNoYW5nZSgkZXZlbnQpXCIgbmFtZT1cImRhdGVyYW5nZVwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICA8L2Rpdj5cclxuICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFsb2FkaW5nICYmICFub0RhdGFcIiBjbGFzcz1cInRhYmxlLXJlc3BvbnNpdmVcIj5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZSBib3R0b20tYm9yZGVyXCI+XHJcbiAgICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+VGltZSBTdGFtcDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPkRvd250aW1lPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+QXZnIEludGVybmV0IFNwZWVkPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+QXBwIFN0YXR1czwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPkZpbGVzIFB1c2hlZDwvdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRoPkFjdGlvbjwvdGg+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IG9iaiBvZiBnZXRFZGdlQXBwTG92ZVZhbHVlO2xldCBpPWluZGV4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPjxpbWcgc3JjPScuL2Fzc2V0cy90YW5nby9JbWFnZXMvZG9jdW1lbnQuc3ZnJz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ncmlkIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e29iai5zdGFydFRpbWV9fSAtIHt7b2JqLmVuZFRpbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRTdWIgbXQtMVwiPnt7b2JqLmhvdXJTdGF0dXN9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e29iai5kb3dudGltZX19IG1pbnM8L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e29iai5JbnRlcm5ldHNwZWVkID8gb2JqLkludGVybmV0c3BlZWQ6Jy0tJ319PC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8dGQ+PHNwYW4gY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1zdWNjZXNzIHRleHQtc3VjY2Vzc1wiPnt7b2JqLkFwcFN0YXR1cyA/IG9iai5BcHBTdGF0dXMgOictLSd9fTwvc3Bhbj48L3RkPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD57e29iai5maWxlc19wdXNoZWQgPyBvYmouZmlsZXNfcHVzaGVkOictLSd9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkPjxzcGFuIChjbGljayk9XCJvcGVuQ2FtZXJhVmlldyhvYmopXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMVwiIHZpZXdCb3g9XCIwIDAgMjAgMjFcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZyBjbGlwLXBhdGg9XCJ1cmwoI2NsaXAwXzQ2NTJfMTE0NzkpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMC44MzM5ODQgMTAuMDI2NUMwLjgzMzk4NCAxMC4wMjY1IDQuMTY3MzIgMy4zNTk4NiAxMC4wMDA3IDMuMzU5ODZDMTUuODM0IDMuMzU5ODYgMTkuMTY3MyAxMC4wMjY1IDE5LjE2NzMgMTAuMDI2NUMxOS4xNjczIDEwLjAyNjUgMTUuODM0IDE2LjY5MzIgMTAuMDAwNyAxNi42OTMyQzQuMTY3MzIgMTYuNjkzMiAwLjgzMzk4NCAxMC4wMjY1IDAuODMzOTg0IDEwLjAyNjVaXCIgc3Ryb2tlPVwiIzQ3NTQ2N1wiIHN0cm9rZS13aWR0aD1cIjJcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTAuMDAwNyAxMi41MjY1QzExLjM4MTQgMTIuNTI2NSAxMi41MDA2IDExLjQwNzIgMTIuNTAwNiAxMC4wMjY1QzEyLjUwMDYgOC42NDU4MiAxMS4zODE0IDcuNTI2NTMgMTAuMDAwNyA3LjUyNjUzQzguNjE5OTQgNy41MjY1MyA3LjUwMDY1IDguNjQ1ODIgNy41MDA2NSAxMC4wMjY1QzcuNTAwNjUgMTEuNDA3MiA4LjYxOTk0IDEyLjUyNjUgMTAuMDAwNyAxMi41MjY1WlwiIHN0cm9rZT1cIiM0NzU0NjdcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZWZzPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF80NjUyXzExNDc5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwIDAuMDI2MzY3MilcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPjwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPC90Ym9keT5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgPC90YWJsZT4gICBcclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRpbmdcIiA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzaGltbWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGxpbmtcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vRGF0YVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0xMiBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWctc3JjIHctMjVcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JY29ucy9Ob2RhdGEuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19