@tuki-io/tuki-widgets 0.0.200 → 0.0.202

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +4 -4
  2. package/esm2020/user-creation/src/app.constants.mjs +16 -2
  3. package/esm2020/user-creation/src/classes/notification.mjs +32 -0
  4. package/esm2020/user-creation/src/environments/environment.mjs +11 -0
  5. package/esm2020/user-creation/src/interfaces/user-creation-wizard.interfaces.mjs +199 -0
  6. package/esm2020/user-creation/src/shared/components/notification/notification.component.mjs +38 -0
  7. package/esm2020/user-creation/src/shared/material.module.mjs +35 -7
  8. package/esm2020/user-creation/src/shared/pipes/truncate.pipe.mjs +30 -0
  9. package/esm2020/user-creation/src/shared/services/notification.service.mjs +62 -0
  10. package/esm2020/user-creation/src/shared/services/user-creation-api.service.mjs +43 -19
  11. package/esm2020/user-creation/src/shared/shared.module.mjs +27 -4
  12. package/esm2020/user-creation/src/user-creation.module.mjs +40 -7
  13. package/esm2020/user-creation/src/utils/app-loader/app-loader.mjs +14 -0
  14. package/esm2020/user-creation/src/utils/build-savable-end-user.mjs +147 -0
  15. package/esm2020/user-creation/src/utils/device-default-prefix.mjs +13 -0
  16. package/esm2020/user-creation/src/utils/device-name-validation.mjs +23 -0
  17. package/esm2020/user-creation/src/utils/model.mjs +19 -0
  18. package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +26 -0
  19. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +512 -20
  20. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-overview-step/user-overview-step.component.mjs +3 -3
  21. package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +80 -34
  22. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +83 -19
  23. package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +599 -124
  24. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -3
  25. package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  26. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +2129 -325
  27. package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  28. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -3
  29. package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
  30. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +2084 -314
  31. package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
  32. package/package.json +1 -1
  33. package/user-creation/src/app.constants.d.ts +10 -0
  34. package/user-creation/src/classes/notification.d.ts +18 -0
  35. package/user-creation/src/environments/environment.d.ts +9 -0
  36. package/user-creation/src/interfaces/user-creation-wizard.interfaces.d.ts +554 -0
  37. package/user-creation/src/shared/components/notification/notification.component.d.ts +19 -0
  38. package/user-creation/src/shared/material.module.d.ts +5 -1
  39. package/user-creation/src/shared/pipes/truncate.pipe.d.ts +7 -0
  40. package/user-creation/src/shared/services/notification.service.d.ts +18 -0
  41. package/user-creation/src/shared/services/user-creation-api.service.d.ts +8 -2
  42. package/user-creation/src/shared/shared.module.d.ts +3 -1
  43. package/user-creation/src/user-creation.module.d.ts +17 -10
  44. package/user-creation/src/utils/app-loader/app-loader.d.ts +6 -0
  45. package/user-creation/src/utils/build-savable-end-user.d.ts +23 -0
  46. package/user-creation/src/utils/device-default-prefix.d.ts +5 -0
  47. package/user-creation/src/utils/device-name-validation.d.ts +6 -0
  48. package/user-creation/src/utils/model.d.ts +1 -0
  49. package/user-creation/src/utils/parse-device-name-rule.d.ts +8 -0
  50. package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +83 -7
  51. package/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.d.ts +11 -4
  52. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.d.ts +18 -0
  53. package/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.d.ts +71 -56
@@ -45,14 +45,14 @@ export class StatCardComponent {
45
45
  return Math.ceil(this.stats?.totalUpgraded / this.stats?.total * 100);
46
46
  }
47
47
  get pendingActivationPercentage() {
48
- return Math.ceil(this.stats?.pendingActivation / this.stats?.totalUpgraded * 100);
48
+ return Math.ceil(this.stats?.pendingActivation / this.stats?.pendingActivation * 100);
49
49
  }
50
50
  }
51
51
  StatCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StatCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- StatCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StatCardComponent, selector: "tk-stat-card", inputs: { title: "title", type: "type", readinessStats: "readinessStats", upgradeStatus: "upgradeStatus" }, ngImport: i0, template: "<tk-card [title]=\"title\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div class=\"card__content-info\">\r\n <div class=\"card__content-wrapper\">\r\n <img width=\"42\" [src]=\"'assets/icons/' + type + '.png'\" alt=\"\" />\r\n <div class=\"card__content-text\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-label\">\r\n {{ upgradeStatus === 'ready' ? stats?.totalReady : stats?.totalUpgraded }}\r\n {{ type === 'user' ? 'Users' : 'Sites' }}</div>\r\n <div class=\"card__content-description\">{{ upgradeStatus === 'ready' ? 'Ready to Upgrade' : 'Already Upgraded' }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-label\">\r\n {{ stats?.pendingActivation }}\r\n {{ 'Users' }}</div>\r\n <div class=\"card__content-description\">{{ 'Ready to activate' }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card__content-progress-wrapper\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ readyPercentage }}%</span>\r\n <span>From all {{ stats?.total }} {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"readyPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"upgradeStatus === 'already'\" class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ upgradedPercentage }}%</span>\r\n <span>From all {{ stats?.totalReady }} ready {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"upgradedPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ pendingActivationPercentage }}%</span>\r\n <span>From all {{ stats?.totalUpgraded }} {{ 'upgraded users' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\" style=\"overflow: hidden;\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.pending-activation]=\"upgradeStatus === 'pending'\"\r\n [style.width.%]=\"pendingActivationPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</tk-card>\r\n", styles: [":host{display:block;height:100%;box-sizing:border-box}.card__content-info{display:flex;align-items:center;justify-content:space-between}.card__content-text{display:flex;flex-direction:column;gap:.25rem}.card__content-text .card__content-label{font-size:20px}.card__content-text .card__content-description{font-size:12px}.card__content-wrapper{display:flex;align-items:center;justify-content:center;gap:1rem}.card__content-wrapper:first-child{display:flex;gap:.5rem}.card__content-progress-wrapper{display:flex;flex-direction:column;gap:1rem}.card__content-progress{display:flex;flex-direction:column;gap:.25rem;font-size:14px}.card__content-progress .card__content-progress-label{display:flex;align-items:center;justify-content:space-between;padding:.05rem}.card__content-progress .card__content-progress-bar{background-color:#ededed;border-radius:10rem}.card__content-progress .card__content-progress-bar .card__content-progress-bar-fill{height:10px;border-radius:inherit}.ready{background-color:#0a78cc}.already{background-color:#16a693}.pending-activation{background-color:#ddbf45}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CardComponent, selector: "tk-card", inputs: ["title"] }] });
52
+ StatCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StatCardComponent, selector: "tk-stat-card", inputs: { title: "title", type: "type", readinessStats: "readinessStats", upgradeStatus: "upgradeStatus" }, ngImport: i0, template: "<tk-card [title]=\"title\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div class=\"card__content-info\">\r\n <div class=\"card__content-wrapper\">\r\n <img width=\"42\" [src]=\"'assets/icons/' + type + '.png'\" alt=\"\" />\r\n <div class=\"card__content-text\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-label\">\r\n {{ upgradeStatus === 'ready' ? stats?.totalReady : stats?.totalUpgraded }}\r\n {{ type === 'user' ? 'Users' : 'Sites' }}</div>\r\n <div class=\"card__content-description\">{{ upgradeStatus === 'ready' ? 'Ready to Upgrade' : 'Already Upgraded' }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-label\">\r\n {{ stats?.pendingActivation }}\r\n {{ 'Users' }}</div>\r\n <div class=\"card__content-description\">{{ 'Ready to activate' }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card__content-progress-wrapper\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ readyPercentage }}%</span>\r\n <span>From all {{ stats?.total }} {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"readyPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"upgradeStatus === 'already'\" class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ upgradedPercentage }}%</span>\r\n <span>From all {{ stats?.totalReady }} ready {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"upgradedPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ pendingActivationPercentage }}%</span>\r\n <span>From all {{ stats?.pendingActivation }} {{ 'upgraded users' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\" style=\"overflow: hidden;\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.pending-activation]=\"upgradeStatus === 'pending'\"\r\n [style.width.%]=\"pendingActivationPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</tk-card>\r\n", styles: [":host{display:block;height:100%;box-sizing:border-box}.card__content-info{display:flex;align-items:center;justify-content:space-between}.card__content-text{display:flex;flex-direction:column;gap:.25rem}.card__content-text .card__content-label{font-size:20px}.card__content-text .card__content-description{font-size:12px}.card__content-wrapper{display:flex;align-items:center;justify-content:center;gap:1rem}.card__content-wrapper:first-child{display:flex;gap:.5rem}.card__content-progress-wrapper{display:flex;flex-direction:column;gap:1rem}.card__content-progress{display:flex;flex-direction:column;gap:.25rem;font-size:14px}.card__content-progress .card__content-progress-label{display:flex;align-items:center;justify-content:space-between;padding:.05rem}.card__content-progress .card__content-progress-bar{background-color:#ededed;border-radius:10rem}.card__content-progress .card__content-progress-bar .card__content-progress-bar-fill{height:10px;border-radius:inherit}.ready{background-color:#0a78cc}.already{background-color:#16a693}.pending-activation{background-color:#ddbf45}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CardComponent, selector: "tk-card", inputs: ["title"] }] });
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StatCardComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'tk-stat-card', template: "<tk-card [title]=\"title\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div class=\"card__content-info\">\r\n <div class=\"card__content-wrapper\">\r\n <img width=\"42\" [src]=\"'assets/icons/' + type + '.png'\" alt=\"\" />\r\n <div class=\"card__content-text\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-label\">\r\n {{ upgradeStatus === 'ready' ? stats?.totalReady : stats?.totalUpgraded }}\r\n {{ type === 'user' ? 'Users' : 'Sites' }}</div>\r\n <div class=\"card__content-description\">{{ upgradeStatus === 'ready' ? 'Ready to Upgrade' : 'Already Upgraded' }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-label\">\r\n {{ stats?.pendingActivation }}\r\n {{ 'Users' }}</div>\r\n <div class=\"card__content-description\">{{ 'Ready to activate' }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card__content-progress-wrapper\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ readyPercentage }}%</span>\r\n <span>From all {{ stats?.total }} {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"readyPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"upgradeStatus === 'already'\" class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ upgradedPercentage }}%</span>\r\n <span>From all {{ stats?.totalReady }} ready {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"upgradedPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ pendingActivationPercentage }}%</span>\r\n <span>From all {{ stats?.totalUpgraded }} {{ 'upgraded users' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\" style=\"overflow: hidden;\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.pending-activation]=\"upgradeStatus === 'pending'\"\r\n [style.width.%]=\"pendingActivationPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</tk-card>\r\n", styles: [":host{display:block;height:100%;box-sizing:border-box}.card__content-info{display:flex;align-items:center;justify-content:space-between}.card__content-text{display:flex;flex-direction:column;gap:.25rem}.card__content-text .card__content-label{font-size:20px}.card__content-text .card__content-description{font-size:12px}.card__content-wrapper{display:flex;align-items:center;justify-content:center;gap:1rem}.card__content-wrapper:first-child{display:flex;gap:.5rem}.card__content-progress-wrapper{display:flex;flex-direction:column;gap:1rem}.card__content-progress{display:flex;flex-direction:column;gap:.25rem;font-size:14px}.card__content-progress .card__content-progress-label{display:flex;align-items:center;justify-content:space-between;padding:.05rem}.card__content-progress .card__content-progress-bar{background-color:#ededed;border-radius:10rem}.card__content-progress .card__content-progress-bar .card__content-progress-bar-fill{height:10px;border-radius:inherit}.ready{background-color:#0a78cc}.already{background-color:#16a693}.pending-activation{background-color:#ddbf45}\n"] }]
55
+ args: [{ selector: 'tk-stat-card', template: "<tk-card [title]=\"title\">\r\n <ng-container ngProjectAs=\"card-content\">\r\n <div class=\"card__content-info\">\r\n <div class=\"card__content-wrapper\">\r\n <img width=\"42\" [src]=\"'assets/icons/' + type + '.png'\" alt=\"\" />\r\n <div class=\"card__content-text\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-label\">\r\n {{ upgradeStatus === 'ready' ? stats?.totalReady : stats?.totalUpgraded }}\r\n {{ type === 'user' ? 'Users' : 'Sites' }}</div>\r\n <div class=\"card__content-description\">{{ upgradeStatus === 'ready' ? 'Ready to Upgrade' : 'Already Upgraded' }}</div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-label\">\r\n {{ stats?.pendingActivation }}\r\n {{ 'Users' }}</div>\r\n <div class=\"card__content-description\">{{ 'Ready to activate' }}</div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card__content-progress-wrapper\">\r\n <ng-container *ngIf=\"upgradeStatus === 'ready' || upgradeStatus === 'already'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ readyPercentage }}%</span>\r\n <span>From all {{ stats?.total }} {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"readyPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"upgradeStatus === 'already'\" class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ upgradedPercentage }}%</span>\r\n <span>From all {{ stats?.totalReady }} ready {{ type === 'user' ? 'users' : 'sites' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.already]=\"upgradeStatus === 'already'\"\r\n [style.width.%]=\"upgradedPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"upgradeStatus === 'pending'\">\r\n <div class=\"card__content-progress\">\r\n <div class=\"card__content-progress-label\">\r\n <span>{{ pendingActivationPercentage }}%</span>\r\n <span>From all {{ stats?.pendingActivation }} {{ 'upgraded users' }}</span>\r\n </div>\r\n <div class=\"card__content-progress-bar\" style=\"overflow: hidden;\">\r\n <div\r\n class=\"card__content-progress-bar-fill ready\"\r\n [class.pending-activation]=\"upgradeStatus === 'pending'\"\r\n [style.width.%]=\"pendingActivationPercentage\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</tk-card>\r\n", styles: [":host{display:block;height:100%;box-sizing:border-box}.card__content-info{display:flex;align-items:center;justify-content:space-between}.card__content-text{display:flex;flex-direction:column;gap:.25rem}.card__content-text .card__content-label{font-size:20px}.card__content-text .card__content-description{font-size:12px}.card__content-wrapper{display:flex;align-items:center;justify-content:center;gap:1rem}.card__content-wrapper:first-child{display:flex;gap:.5rem}.card__content-progress-wrapper{display:flex;flex-direction:column;gap:1rem}.card__content-progress{display:flex;flex-direction:column;gap:.25rem;font-size:14px}.card__content-progress .card__content-progress-label{display:flex;align-items:center;justify-content:space-between;padding:.05rem}.card__content-progress .card__content-progress-bar{background-color:#ededed;border-radius:10rem}.card__content-progress .card__content-progress-bar .card__content-progress-bar-fill{height:10px;border-radius:inherit}.ready{background-color:#0a78cc}.already{background-color:#16a693}.pending-activation{background-color:#ddbf45}\n"] }]
56
56
  }], propDecorators: { title: [{
57
57
  type: Input
58
58
  }], type: [{
@@ -62,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
62
62
  }], upgradeStatus: [{
63
63
  type: Input
64
64
  }] } });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC9zaGFyZWQvY29tcG9uZW50cy9zdGF0LWNhcmQvc3RhdC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC9zaGFyZWQvY29tcG9uZW50cy9zdGF0LWNhcmQvc3RhdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxpQkFBaUI7SUFRMUIsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVO2dCQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDcEQsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDMUQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2hFLENBQUE7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVO2dCQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDcEQsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUM3RCxDQUFBO1NBQ0o7SUFDTCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsSUFBRyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2pEO2FBQU0sSUFBRyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDekU7O1lBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixJQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3pELE9BQU8sQ0FBQyxDQUFDO1NBQ1o7YUFBTSxJQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2xJOztZQUNJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDdEYsQ0FBQzs7K0dBakRRLGlCQUFpQjttR0FBakIsaUJBQWlCLGdLQ1I5Qiwyd0dBb0VBOzRGRDVEYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0ksY0FBYzs4QkFLZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFNpdGVzVXBncmFkZVJlYWRpbmVzcywgU2l0ZXNVcGdyYWRlU3VtbWFyeSwgVXNlcnNVcGdyYWRlUmVhZGluZXNzLCBVc2Vyc1VwZ3JhZGVTdW1tYXJ5IH0gZnJvbSBcIi4uLy4uLy4uL3dpZGdldHMvdXBncmFkZS1vdmVydmlldy90eXBlcy91cGdyYWRlLW92ZXJ2aWV3XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGstc3RhdC1jYXJkJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zdGF0LWNhcmQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc3RhdC1jYXJkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIEBJbnB1dCgpIHRpdGxlITogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgdHlwZSE6ICdzaXRlJyB8ICd1c2VyJztcclxuICAgIEBJbnB1dCgpIHJlYWRpbmVzc1N0YXRzOiBhbnk7XHJcbiAgICBASW5wdXQoKSB1cGdyYWRlU3RhdHVzITogJ3JlYWR5JyB8ICdhbHJlYWR5JyB8ICdwZW5kaW5nJztcclxuXHJcbiAgICBzdGF0czogYW55O1xyXG5cclxuICAgIG5nT25Jbml0KCkgeyAgICAgICAgXHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhdHMgPSB7XHJcbiAgICAgICAgICAgICAgICBpZDogdGhpcy5yZWFkaW5lc3NTdGF0cz8uaWQsXHJcbiAgICAgICAgICAgICAgICBjdXN0b21lcklkOiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5jdXN0b21lcklkLFxyXG4gICAgICAgICAgICAgICAgdG90YWw6IHRoaXMucmVhZGluZXNzU3RhdHM/LlsndG90YWxVc2VycyddLFxyXG4gICAgICAgICAgICAgICAgdG90YWxSZWFkeTogdGhpcy5yZWFkaW5lc3NTdGF0cz8uWyd0b3RhbFJlYWR5VXNlcnMnXSxcclxuICAgICAgICAgICAgICAgIHRvdGFsVXBncmFkZWQ6IHRoaXMucmVhZGluZXNzU3RhdHM/LlsndG90YWxVcGdyYWRlZFVzZXJzJ10sXHJcbiAgICAgICAgICAgICAgICBwZW5kaW5nQWN0aXZhdGlvbjogdGhpcy5yZWFkaW5lc3NTdGF0cz8uWydwZW5kaW5nQWN0aXZhdGlvbiddLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0cyA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHRoaXMucmVhZGluZXNzU3RhdHM/LmN1c3RvbWVySWQsXHJcbiAgICAgICAgICAgICAgICB0b3RhbDogdGhpcy5yZWFkaW5lc3NTdGF0cz8uWyd0b3RhbFNpdGVzJ10sXHJcbiAgICAgICAgICAgICAgICB0b3RhbFJlYWR5OiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5bJ3RvdGFsUmVhZHlTaXRlcyddLFxyXG4gICAgICAgICAgICAgICAgdG90YWxVcGdyYWRlZDogdGhpcy5yZWFkaW5lc3NTdGF0cz8uWyd0b3RhbFVwZ3JhZGVkU2l0ZXMnXSxcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBnZXQgcmVhZHlQZXJjZW50YWdlKCkge1xyXG4gICAgICAgIGlmKHRoaXMudXBncmFkZVN0YXR1cyA9PT0gJ2FscmVhZHknICYmIHRoaXMudHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwoMSAvIHRoaXMuc3RhdHM/LnRvdGFsICogMTAwKTtcclxuICAgICAgICB9IGVsc2UgaWYodGhpcy51cGdyYWRlU3RhdHVzID09PSAnYWxyZWFkeScgJiYgdGhpcy50eXBlID09PSAnc2l0ZScpIHsgXHJcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5zdGF0cz8udG90YWxVcGdyYWRlZCAvIHRoaXMuc3RhdHM/LnRvdGFsICogMTAwKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSByZXR1cm4gTWF0aC5jZWlsKHRoaXMuc3RhdHM/LnRvdGFsUmVhZHkgLyB0aGlzLnN0YXRzPy50b3RhbCAqIDEwMCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IHVwZ3JhZGVkUGVyY2VudGFnZSgpIHtcclxuICAgICAgICBpZih0aGlzLnVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5JyAmJiB0aGlzLnR5cGUgPT09ICd1c2VyJykge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICB9IGVsc2UgaWYodGhpcy51cGdyYWRlU3RhdHVzID09PSAnYWxyZWFkeScgJiYgdGhpcy50eXBlID09PSAnc2l0ZScpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHM/LnRvdGFsUmVhZHkgPT0gMCB8fCB0aGlzLnN0YXRzPy50b3RhbCA9PSAwID8gMCA6IE1hdGguY2VpbCh0aGlzLnN0YXRzPy50b3RhbFJlYWR5IC8gdGhpcy5zdGF0cz8udG90YWwgKiAxMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHJldHVybiBNYXRoLmNlaWwodGhpcy5zdGF0cz8udG90YWxVcGdyYWRlZCAvIHRoaXMuc3RhdHM/LnRvdGFsICogMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgcGVuZGluZ0FjdGl2YXRpb25QZXJjZW50YWdlKCkge1xyXG4gICAgICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy5zdGF0cz8ucGVuZGluZ0FjdGl2YXRpb24gLyB0aGlzLnN0YXRzPy50b3RhbFVwZ3JhZGVkICogMTAwKTtcclxuICAgIH1cclxufSIsIjx0ay1jYXJkIFt0aXRsZV09XCJ0aXRsZVwiPlxyXG4gIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJjYXJkLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LWluZm9cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbWcgd2lkdGg9XCI0MlwiIFtzcmNdPVwiJ2Fzc2V0cy9pY29ucy8nICsgdHlwZSArICcucG5nJ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtdGV4dFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdyZWFkeScgfHwgdXBncmFkZVN0YXR1cyA9PT0gJ2FscmVhZHknXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAge3sgdXBncmFkZVN0YXR1cyA9PT0gJ3JlYWR5JyA/IHN0YXRzPy50b3RhbFJlYWR5IDogc3RhdHM/LnRvdGFsVXBncmFkZWQgfX1cclxuICAgICAgICAgICAgICB7eyB0eXBlID09PSAndXNlcicgPyAnVXNlcnMnIDogJ1NpdGVzJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1kZXNjcmlwdGlvblwiPnt7IHVwZ3JhZGVTdGF0dXMgPT09ICdyZWFkeScgPyAnUmVhZHkgdG8gVXBncmFkZScgOiAnQWxyZWFkeSBVcGdyYWRlZCcgfX08L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdwZW5kaW5nJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7IHN0YXRzPy5wZW5kaW5nQWN0aXZhdGlvbiB9fVxyXG4gICAgICAgICAgICAgIHt7ICdVc2VycycgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtZGVzY3JpcHRpb25cIj57eyAnUmVhZHkgdG8gYWN0aXZhdGUnIH19PC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLXdyYXBwZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdyZWFkeScgfHwgdXBncmFkZVN0YXR1cyA9PT0gJ2FscmVhZHknXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3NcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHJlYWR5UGVyY2VudGFnZSB9fSU8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPkZyb20gYWxsIHt7IHN0YXRzPy50b3RhbCB9fSB7eyB0eXBlID09PSAndXNlcicgPyAndXNlcnMnIDogJ3NpdGVzJyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtYmFyLWZpbGwgcmVhZHlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hbHJlYWR5XT1cInVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5J1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicmVhZHlQZXJjZW50YWdlXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5J1wiIGNsYXNzPVwiY2FyZF9fY29udGVudC1wcm9ncmVzc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtbGFiZWxcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgdXBncmFkZWRQZXJjZW50YWdlIH19JTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+RnJvbSBhbGwge3sgc3RhdHM/LnRvdGFsUmVhZHkgfX0gcmVhZHkge3sgdHlwZSA9PT0gJ3VzZXInID8gJ3VzZXJzJyA6ICdzaXRlcycgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWJhclwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWJhci1maWxsIHJlYWR5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYWxyZWFkeV09XCJ1cGdyYWRlU3RhdHVzID09PSAnYWxyZWFkeSdcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInVwZ3JhZGVkUGVyY2VudGFnZVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdwZW5kaW5nJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1wcm9ncmVzcy1sYWJlbFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBwZW5kaW5nQWN0aXZhdGlvblBlcmNlbnRhZ2UgfX0lPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj5Gcm9tIGFsbCB7eyBzdGF0cz8udG90YWxVcGdyYWRlZCB9fSB7eyAndXBncmFkZWQgdXNlcnMnIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1wcm9ncmVzcy1iYXJcIiBzdHlsZT1cIm92ZXJmbG93OiBoaWRkZW47XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtYmFyLWZpbGwgcmVhZHlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5wZW5kaW5nLWFjdGl2YXRpb25dPVwidXBncmFkZVN0YXR1cyA9PT0gJ3BlbmRpbmcnXCJcclxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJwZW5kaW5nQWN0aXZhdGlvblBlcmNlbnRhZ2VcIlxyXG4gICAgICAgICAgICA+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC90ay1jYXJkPlxyXG4iXX0=
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC9zaGFyZWQvY29tcG9uZW50cy9zdGF0LWNhcmQvc3RhdC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy9kaTJtdC9zaGFyZWQvY29tcG9uZW50cy9zdGF0LWNhcmQvc3RhdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxpQkFBaUI7SUFRMUIsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7WUFDdEIsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVO2dCQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDcEQsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDMUQsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2hFLENBQUE7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDVCxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUFFO2dCQUMzQixVQUFVLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVO2dCQUMzQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDMUMsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDcEQsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQzthQUM3RCxDQUFBO1NBQ0o7SUFDTCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2YsSUFBRyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2pEO2FBQU0sSUFBRyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRTtZQUNoRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDekU7O1lBQ0ksT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNsQixJQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ3pELE9BQU8sQ0FBQyxDQUFDO1NBQ1o7YUFBTSxJQUFHLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ2xJOztZQUNJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsSUFBSSwyQkFBMkI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMxRixDQUFDOzsrR0FqRFEsaUJBQWlCO21HQUFqQixpQkFBaUIsZ0tDUjlCLCt3R0FvRUE7NEZENURhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDSSxjQUFjOzhCQUtmLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2l0ZXNVcGdyYWRlUmVhZGluZXNzLCBTaXRlc1VwZ3JhZGVTdW1tYXJ5LCBVc2Vyc1VwZ3JhZGVSZWFkaW5lc3MsIFVzZXJzVXBncmFkZVN1bW1hcnkgfSBmcm9tIFwiLi4vLi4vLi4vd2lkZ2V0cy91cGdyYWRlLW92ZXJ2aWV3L3R5cGVzL3VwZ3JhZGUtb3ZlcnZpZXdcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0ay1zdGF0LWNhcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3N0YXQtY2FyZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zdGF0LWNhcmQuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RhdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgdGl0bGUhOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSB0eXBlITogJ3NpdGUnIHwgJ3VzZXInO1xyXG4gICAgQElucHV0KCkgcmVhZGluZXNzU3RhdHM6IGFueTtcclxuICAgIEBJbnB1dCgpIHVwZ3JhZGVTdGF0dXMhOiAncmVhZHknIHwgJ2FscmVhZHknIHwgJ3BlbmRpbmcnO1xyXG5cclxuICAgIHN0YXRzOiBhbnk7XHJcblxyXG4gICAgbmdPbkluaXQoKSB7ICAgICAgICBcclxuICAgICAgICBpZiAodGhpcy50eXBlID09PSAndXNlcicpIHtcclxuICAgICAgICAgICAgdGhpcy5zdGF0cyA9IHtcclxuICAgICAgICAgICAgICAgIGlkOiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5pZCxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWVySWQ6IHRoaXMucmVhZGluZXNzU3RhdHM/LmN1c3RvbWVySWQsXHJcbiAgICAgICAgICAgICAgICB0b3RhbDogdGhpcy5yZWFkaW5lc3NTdGF0cz8uWyd0b3RhbFVzZXJzJ10sXHJcbiAgICAgICAgICAgICAgICB0b3RhbFJlYWR5OiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5bJ3RvdGFsUmVhZHlVc2VycyddLFxyXG4gICAgICAgICAgICAgICAgdG90YWxVcGdyYWRlZDogdGhpcy5yZWFkaW5lc3NTdGF0cz8uWyd0b3RhbFVwZ3JhZGVkVXNlcnMnXSxcclxuICAgICAgICAgICAgICAgIHBlbmRpbmdBY3RpdmF0aW9uOiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5bJ3BlbmRpbmdBY3RpdmF0aW9uJ10sXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnN0YXRzID0ge1xyXG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMucmVhZGluZXNzU3RhdHM/LmlkLFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tZXJJZDogdGhpcy5yZWFkaW5lc3NTdGF0cz8uY3VzdG9tZXJJZCxcclxuICAgICAgICAgICAgICAgIHRvdGFsOiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5bJ3RvdGFsU2l0ZXMnXSxcclxuICAgICAgICAgICAgICAgIHRvdGFsUmVhZHk6IHRoaXMucmVhZGluZXNzU3RhdHM/LlsndG90YWxSZWFkeVNpdGVzJ10sXHJcbiAgICAgICAgICAgICAgICB0b3RhbFVwZ3JhZGVkOiB0aGlzLnJlYWRpbmVzc1N0YXRzPy5bJ3RvdGFsVXBncmFkZWRTaXRlcyddLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGdldCByZWFkeVBlcmNlbnRhZ2UoKSB7XHJcbiAgICAgICAgaWYodGhpcy51cGdyYWRlU3RhdHVzID09PSAnYWxyZWFkeScgJiYgdGhpcy50eXBlID09PSAndXNlcicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbCgxIC8gdGhpcy5zdGF0cz8udG90YWwgKiAxMDApO1xyXG4gICAgICAgIH0gZWxzZSBpZih0aGlzLnVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5JyAmJiB0aGlzLnR5cGUgPT09ICdzaXRlJykgeyBcclxuICAgICAgICAgICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnN0YXRzPy50b3RhbFVwZ3JhZGVkIC8gdGhpcy5zdGF0cz8udG90YWwgKiAxMDApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHJldHVybiBNYXRoLmNlaWwodGhpcy5zdGF0cz8udG90YWxSZWFkeSAvIHRoaXMuc3RhdHM/LnRvdGFsICogMTAwKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgdXBncmFkZWRQZXJjZW50YWdlKCkge1xyXG4gICAgICAgIGlmKHRoaXMudXBncmFkZVN0YXR1cyA9PT0gJ2FscmVhZHknICYmIHRoaXMudHlwZSA9PT0gJ3VzZXInKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgIH0gZWxzZSBpZih0aGlzLnVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5JyAmJiB0aGlzLnR5cGUgPT09ICdzaXRlJykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zdGF0cz8udG90YWxSZWFkeSA9PSAwIHx8IHRoaXMuc3RhdHM/LnRvdGFsID09IDAgPyAwIDogTWF0aC5jZWlsKHRoaXMuc3RhdHM/LnRvdGFsUmVhZHkgLyB0aGlzLnN0YXRzPy50b3RhbCAqIDEwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnN0YXRzPy50b3RhbFVwZ3JhZGVkIC8gdGhpcy5zdGF0cz8udG90YWwgKiAxMDApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBwZW5kaW5nQWN0aXZhdGlvblBlcmNlbnRhZ2UoKSB7XHJcbiAgICAgICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnN0YXRzPy5wZW5kaW5nQWN0aXZhdGlvbiAvIHRoaXMuc3RhdHM/LnBlbmRpbmdBY3RpdmF0aW9uICogMTAwKTtcclxuICAgIH1cclxufSIsIjx0ay1jYXJkIFt0aXRsZV09XCJ0aXRsZVwiPlxyXG4gIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJjYXJkLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LWluZm9cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgIDxpbWcgd2lkdGg9XCI0MlwiIFtzcmNdPVwiJ2Fzc2V0cy9pY29ucy8nICsgdHlwZSArICcucG5nJ1wiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtdGV4dFwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdyZWFkeScgfHwgdXBncmFkZVN0YXR1cyA9PT0gJ2FscmVhZHknXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LWxhYmVsXCI+XHJcbiAgICAgICAgICAgICAge3sgdXBncmFkZVN0YXR1cyA9PT0gJ3JlYWR5JyA/IHN0YXRzPy50b3RhbFJlYWR5IDogc3RhdHM/LnRvdGFsVXBncmFkZWQgfX1cclxuICAgICAgICAgICAgICB7eyB0eXBlID09PSAndXNlcicgPyAnVXNlcnMnIDogJ1NpdGVzJyB9fTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1kZXNjcmlwdGlvblwiPnt7IHVwZ3JhZGVTdGF0dXMgPT09ICdyZWFkeScgPyAnUmVhZHkgdG8gVXBncmFkZScgOiAnQWxyZWFkeSBVcGdyYWRlZCcgfX08L2Rpdj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdwZW5kaW5nJ1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7IHN0YXRzPy5wZW5kaW5nQWN0aXZhdGlvbiB9fVxyXG4gICAgICAgICAgICAgIHt7ICdVc2VycycgfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtZGVzY3JpcHRpb25cIj57eyAnUmVhZHkgdG8gYWN0aXZhdGUnIH19PC9kaXY+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLXdyYXBwZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdyZWFkeScgfHwgdXBncmFkZVN0YXR1cyA9PT0gJ2FscmVhZHknXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3NcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWxhYmVsXCI+XHJcbiAgICAgICAgICAgIDxzcGFuPnt7IHJlYWR5UGVyY2VudGFnZSB9fSU8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuPkZyb20gYWxsIHt7IHN0YXRzPy50b3RhbCB9fSB7eyB0eXBlID09PSAndXNlcicgPyAndXNlcnMnIDogJ3NpdGVzJyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtYmFyXCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtYmFyLWZpbGwgcmVhZHlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5hbHJlYWR5XT1cInVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5J1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicmVhZHlQZXJjZW50YWdlXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdhbHJlYWR5J1wiIGNsYXNzPVwiY2FyZF9fY29udGVudC1wcm9ncmVzc1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtbGFiZWxcIj5cclxuICAgICAgICAgICAgPHNwYW4+e3sgdXBncmFkZWRQZXJjZW50YWdlIH19JTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4+RnJvbSBhbGwge3sgc3RhdHM/LnRvdGFsUmVhZHkgfX0gcmVhZHkge3sgdHlwZSA9PT0gJ3VzZXInID8gJ3VzZXJzJyA6ICdzaXRlcycgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWJhclwiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWJhci1maWxsIHJlYWR5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYWxyZWFkeV09XCJ1cGdyYWRlU3RhdHVzID09PSAnYWxyZWFkeSdcIlxyXG4gICAgICAgICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInVwZ3JhZGVkUGVyY2VudGFnZVwiXHJcbiAgICAgICAgICAgID48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVwZ3JhZGVTdGF0dXMgPT09ICdwZW5kaW5nJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZF9fY29udGVudC1wcm9ncmVzcy1sYWJlbFwiPlxyXG4gICAgICAgICAgICA8c3Bhbj57eyBwZW5kaW5nQWN0aXZhdGlvblBlcmNlbnRhZ2UgfX0lPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3Bhbj5Gcm9tIGFsbCB7eyBzdGF0cz8ucGVuZGluZ0FjdGl2YXRpb24gfX0ge3sgJ3VwZ3JhZGVkIHVzZXJzJyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRfX2NvbnRlbnQtcHJvZ3Jlc3MtYmFyXCIgc3R5bGU9XCJvdmVyZmxvdzogaGlkZGVuO1wiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkX19jb250ZW50LXByb2dyZXNzLWJhci1maWxsIHJlYWR5XCJcclxuICAgICAgICAgICAgICBbY2xhc3MucGVuZGluZy1hY3RpdmF0aW9uXT1cInVwZ3JhZGVTdGF0dXMgPT09ICdwZW5kaW5nJ1wiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwicGVuZGluZ0FjdGl2YXRpb25QZXJjZW50YWdlXCJcclxuICAgICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvdGstY2FyZD5cclxuIl19
@@ -1,16 +1,30 @@
1
1
  export const API = {
2
2
  WEBEX_CHECK_CONTROL_HUB_INTEGRATION: "/webex/api/search/webex/customers/:customerId/controlhubexists",
3
- SITES: "/api/customers/:customerId/sites",
3
+ SITES: "/dcp/api/customers/:customerId/sites",
4
4
  SITE: "/dcp/api/sites/:siteId",
5
5
  DEVICE_TYPES: "/dcp/api/provision/options/:siteId/devicetypes",
6
6
  SITE_SETTINGS: "/dcp/api/sites/:siteId/settings",
7
7
  VM_USER_TEMPLATES: "/dcp/api/provision/options/:siteId/vmusertemplates",
8
+ EXISTING_USERS: "/dcp/api/provision/:siteId/users",
8
9
  USER_TEMPLATES_UPLOAD_LIST: "/dcp/api/searchbulkupdate/uploadedusertemplatelist",
9
10
  USER_TEMPLATE_TOKEN: "/dcp/api/bulkupdate/:customerId/usertemplate/:id/token",
11
+ AVAILABLE_DN_IN_RANGES: "/dcp/api/sites/:siteId/available-dn-in-ranges",
12
+ USER_CHECK_ID_EXISTING: "/dcp/api/provision/:siteId/users/:userId",
13
+ LDAP_USERS: "/dcp/api/provision/:siteId/users",
14
+ USERS: "/dcp/api/provision/:siteId/users",
15
+ CREATE_NEW_USER_FROM_TEMPLATE: "/dcp/api/provision/newUserFromUserTemplate",
16
+ DEVICE_DEFAULTS: "/api/provision/options/:siteId/devicedefaults/:deviceType",
10
17
  };
11
18
  export const USER_CREATION_TYPES = {
12
19
  CUCM: 'CUCM',
13
20
  MT: 'MT'
14
21
  };
15
22
  export const MAX_INTEGER = 2147483647;
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy9hcHAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRztJQUNmLG1DQUFtQyxFQUFFLGdFQUFnRTtJQUNyRyxLQUFLLEVBQUUsa0NBQWtDO0lBQ3pDLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsWUFBWSxFQUFFLGdEQUFnRDtJQUM5RCxhQUFhLEVBQUUsaUNBQWlDO0lBQ2hELGlCQUFpQixFQUFFLG9EQUFvRDtJQUN2RSwwQkFBMEIsRUFBRSxvREFBb0Q7SUFDaEYsbUJBQW1CLEVBQUUsd0RBQXdEO0NBQ2hGLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUNqQyxJQUFJLEVBQUUsTUFBTTtJQUNaLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJID0ge1xyXG4gICAgV0VCRVhfQ0hFQ0tfQ09OVFJPTF9IVUJfSU5URUdSQVRJT046IFwiL3dlYmV4L2FwaS9zZWFyY2gvd2ViZXgvY3VzdG9tZXJzLzpjdXN0b21lcklkL2NvbnRyb2xodWJleGlzdHNcIixcclxuICAgIFNJVEVTOiBcIi9hcGkvY3VzdG9tZXJzLzpjdXN0b21lcklkL3NpdGVzXCIsXHJcbiAgICBTSVRFOiBcIi9kY3AvYXBpL3NpdGVzLzpzaXRlSWRcIixcclxuICAgIERFVklDRV9UWVBFUzogXCIvZGNwL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL2RldmljZXR5cGVzXCIsXHJcbiAgICBTSVRFX1NFVFRJTkdTOiBcIi9kY3AvYXBpL3NpdGVzLzpzaXRlSWQvc2V0dGluZ3NcIixcclxuICAgIFZNX1VTRVJfVEVNUExBVEVTOiBcIi9kY3AvYXBpL3Byb3Zpc2lvbi9vcHRpb25zLzpzaXRlSWQvdm11c2VydGVtcGxhdGVzXCIsXHJcbiAgICBVU0VSX1RFTVBMQVRFU19VUExPQURfTElTVDogXCIvZGNwL2FwaS9zZWFyY2hidWxrdXBkYXRlL3VwbG9hZGVkdXNlcnRlbXBsYXRlbGlzdFwiLFxyXG4gICAgVVNFUl9URU1QTEFURV9UT0tFTjogXCIvZGNwL2FwaS9idWxrdXBkYXRlLzpjdXN0b21lcklkL3VzZXJ0ZW1wbGF0ZS86aWQvdG9rZW5cIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFVTRVJfQ1JFQVRJT05fVFlQRVMgPSB7XHJcbiAgQ1VDTTogJ0NVQ00nLFxyXG4gIE1UOiAnTVQnXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgTUFYX0lOVEVHRVIgPSAyMTQ3NDgzNjQ3OyJdfQ==
23
+ export const CUTTING_SYMBOLS = [
24
+ " ",
25
+ "_",
26
+ "-"
27
+ ];
28
+ export const BREADCRUMB_LENGTH_LIMIT = 20;
29
+ export const DEFAULT_CUTTING_LENGTH = 15;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy9hcHAuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRztJQUNmLG1DQUFtQyxFQUFFLGdFQUFnRTtJQUNyRyxLQUFLLEVBQUUsc0NBQXNDO0lBQzdDLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsWUFBWSxFQUFFLGdEQUFnRDtJQUM5RCxhQUFhLEVBQUUsaUNBQWlDO0lBQ2hELGlCQUFpQixFQUFFLG9EQUFvRDtJQUN2RSxjQUFjLEVBQUUsa0NBQWtDO0lBQ2xELDBCQUEwQixFQUFFLG9EQUFvRDtJQUNoRixtQkFBbUIsRUFBRSx3REFBd0Q7SUFDN0Usc0JBQXNCLEVBQUUsK0NBQStDO0lBQ3ZFLHNCQUFzQixFQUFFLDBDQUEwQztJQUNsRSxVQUFVLEVBQUUsa0NBQWtDO0lBQzlDLEtBQUssRUFBRSxrQ0FBa0M7SUFDekMsNkJBQTZCLEVBQUUsNENBQTRDO0lBQzNFLGVBQWUsRUFBRSwyREFBMkQ7Q0FDL0UsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLElBQUksRUFBRSxNQUFNO0lBQ1osRUFBRSxFQUFFLElBQUk7Q0FDVCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQztBQUV0QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDM0IsR0FBRztJQUNILEdBQUc7SUFDSCxHQUFHO0NBQ0osQ0FBQztBQUVKLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsQ0FBQztBQUMxQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQVBJID0ge1xyXG4gICAgV0VCRVhfQ0hFQ0tfQ09OVFJPTF9IVUJfSU5URUdSQVRJT046IFwiL3dlYmV4L2FwaS9zZWFyY2gvd2ViZXgvY3VzdG9tZXJzLzpjdXN0b21lcklkL2NvbnRyb2xodWJleGlzdHNcIixcclxuICAgIFNJVEVTOiBcIi9kY3AvYXBpL2N1c3RvbWVycy86Y3VzdG9tZXJJZC9zaXRlc1wiLFxyXG4gICAgU0lURTogXCIvZGNwL2FwaS9zaXRlcy86c2l0ZUlkXCIsXHJcbiAgICBERVZJQ0VfVFlQRVM6IFwiL2RjcC9hcGkvcHJvdmlzaW9uL29wdGlvbnMvOnNpdGVJZC9kZXZpY2V0eXBlc1wiLFxyXG4gICAgU0lURV9TRVRUSU5HUzogXCIvZGNwL2FwaS9zaXRlcy86c2l0ZUlkL3NldHRpbmdzXCIsXHJcbiAgICBWTV9VU0VSX1RFTVBMQVRFUzogXCIvZGNwL2FwaS9wcm92aXNpb24vb3B0aW9ucy86c2l0ZUlkL3ZtdXNlcnRlbXBsYXRlc1wiLFxyXG4gICAgRVhJU1RJTkdfVVNFUlM6IFwiL2RjcC9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnNcIixcclxuICAgIFVTRVJfVEVNUExBVEVTX1VQTE9BRF9MSVNUOiBcIi9kY3AvYXBpL3NlYXJjaGJ1bGt1cGRhdGUvdXBsb2FkZWR1c2VydGVtcGxhdGVsaXN0XCIsXHJcbiAgICBVU0VSX1RFTVBMQVRFX1RPS0VOOiBcIi9kY3AvYXBpL2J1bGt1cGRhdGUvOmN1c3RvbWVySWQvdXNlcnRlbXBsYXRlLzppZC90b2tlblwiLFxyXG4gICAgQVZBSUxBQkxFX0ROX0lOX1JBTkdFUzogXCIvZGNwL2FwaS9zaXRlcy86c2l0ZUlkL2F2YWlsYWJsZS1kbi1pbi1yYW5nZXNcIixcclxuICAgIFVTRVJfQ0hFQ0tfSURfRVhJU1RJTkc6IFwiL2RjcC9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnMvOnVzZXJJZFwiLFxyXG4gICAgTERBUF9VU0VSUzogXCIvZGNwL2FwaS9wcm92aXNpb24vOnNpdGVJZC91c2Vyc1wiLFxyXG4gICAgVVNFUlM6IFwiL2RjcC9hcGkvcHJvdmlzaW9uLzpzaXRlSWQvdXNlcnNcIixcclxuICAgIENSRUFURV9ORVdfVVNFUl9GUk9NX1RFTVBMQVRFOiBcIi9kY3AvYXBpL3Byb3Zpc2lvbi9uZXdVc2VyRnJvbVVzZXJUZW1wbGF0ZVwiLFxyXG4gICAgREVWSUNFX0RFRkFVTFRTOiBcIi9hcGkvcHJvdmlzaW9uL29wdGlvbnMvOnNpdGVJZC9kZXZpY2VkZWZhdWx0cy86ZGV2aWNlVHlwZVwiLFxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgVVNFUl9DUkVBVElPTl9UWVBFUyA9IHtcclxuICBDVUNNOiAnQ1VDTScsXHJcbiAgTVQ6ICdNVCdcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBNQVhfSU5URUdFUiA9IDIxNDc0ODM2NDc7XHJcblxyXG5leHBvcnQgY29uc3QgQ1VUVElOR19TWU1CT0xTID0gW1xyXG4gICAgXCIgXCIsXHJcbiAgICBcIl9cIixcclxuICAgIFwiLVwiXHJcbiAgXTtcclxuXHJcbmV4cG9ydCBjb25zdCBCUkVBRENSVU1CX0xFTkdUSF9MSU1JVCA9IDIwO1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVRUSU5HX0xFTkdUSCA9IDE1OyJdfQ==
@@ -0,0 +1,32 @@
1
+ import { environment } from '../environments/environment';
2
+ const TTL_DEFAULT = environment.notificationsLifetime;
3
+ const TTL_LONG_DEFAULT = environment.longNotificationsLifetime;
4
+ export var NotificationType;
5
+ (function (NotificationType) {
6
+ NotificationType["info"] = "info";
7
+ NotificationType["error"] = "error";
8
+ NotificationType["success"] = "success";
9
+ NotificationType["warning"] = "warning";
10
+ })(NotificationType || (NotificationType = {}));
11
+ export class Notification {
12
+ constructor(data) {
13
+ this.ttl = TTL_DEFAULT;
14
+ Object.assign(this, data || {});
15
+ if (this.ttl === undefined) {
16
+ this.ttl = this.message && this.message.length && this.message.length < 80 ? TTL_DEFAULT : TTL_LONG_DEFAULT;
17
+ }
18
+ }
19
+ isInfo() {
20
+ return this.type === NotificationType.info;
21
+ }
22
+ isError() {
23
+ return this.type === NotificationType.error;
24
+ }
25
+ isSuccess() {
26
+ return this.type === NotificationType.success;
27
+ }
28
+ isWarning() {
29
+ return this.type === NotificationType.warning;
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3VzZXItY3JlYXRpb24vc3JjL2NsYXNzZXMvbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMscUJBQXFCLENBQUM7QUFDdEQsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMseUJBQXlCLENBQUM7QUFFL0QsTUFBTSxDQUFOLElBQVksZ0JBS1g7QUFMRCxXQUFZLGdCQUFnQjtJQUN4QixpQ0FBYSxDQUFBO0lBQ2IsbUNBQWUsQ0FBQTtJQUNmLHVDQUFtQixDQUFBO0lBQ25CLHVDQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFMVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSzNCO0FBRUQsTUFBTSxPQUFPLFlBQVk7SUFPdkIsWUFBWSxJQUFTO1FBSHJCLFFBQUcsR0FBVyxXQUFXLENBQUM7UUFJeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRWhDLElBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLEVBQUU7WUFDekIsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztTQUM3RztJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDOUMsQ0FBQztJQUNELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBQ2hELENBQUM7SUFDRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XHJcblxyXG5jb25zdCBUVExfREVGQVVMVCA9IGVudmlyb25tZW50Lm5vdGlmaWNhdGlvbnNMaWZldGltZTtcclxuY29uc3QgVFRMX0xPTkdfREVGQVVMVCA9IGVudmlyb25tZW50LmxvbmdOb3RpZmljYXRpb25zTGlmZXRpbWU7XHJcblxyXG5leHBvcnQgZW51bSBOb3RpZmljYXRpb25UeXBlIHtcclxuICAgIGluZm8gPSAnaW5mbycsXHJcbiAgICBlcnJvciA9ICdlcnJvcicsXHJcbiAgICBzdWNjZXNzID0gJ3N1Y2Nlc3MnLFxyXG4gICAgd2FybmluZyA9ICd3YXJuaW5nJ1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uIHtcclxuICBpZD86IG51bWJlcjtcclxuICB0eXBlPzogTm90aWZpY2F0aW9uVHlwZTtcclxuICBtZXNzYWdlPzogc3RyaW5nO1xyXG4gIHR0bDogbnVtYmVyID0gVFRMX0RFRkFVTFQ7XHJcbiAgdGltZXJJZD86IGFueTtcclxuXHJcbiAgY29uc3RydWN0b3IoZGF0YTogYW55KSB7XHJcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGRhdGEgfHwge30pO1xyXG5cclxuICAgIGlmKHRoaXMudHRsID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy50dGwgPSB0aGlzLm1lc3NhZ2UgJiYgdGhpcy5tZXNzYWdlLmxlbmd0aCAmJiB0aGlzLm1lc3NhZ2UubGVuZ3RoIDwgODAgPyBUVExfREVGQVVMVCA6IFRUTF9MT05HX0RFRkFVTFQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc0luZm8oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBOb3RpZmljYXRpb25UeXBlLmluZm87XHJcbiAgfVxyXG4gIGlzRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBOb3RpZmljYXRpb25UeXBlLmVycm9yO1xyXG4gIH1cclxuICBpc1N1Y2Nlc3MoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBOb3RpZmljYXRpb25UeXBlLnN1Y2Nlc3M7XHJcbiAgfVxyXG4gIGlzV2FybmluZygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnR5cGUgPT09IE5vdGlmaWNhdGlvblR5cGUud2FybmluZztcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,11 @@
1
+ export const environment = {
2
+ production: false,
3
+ // apiUrl: 'http://localhost:4200',
4
+ apiUrl: 'http://192.168.0.191:8080',
5
+ notificationsLifetime: 30000,
6
+ longNotificationsLifetime: 45000,
7
+ cashCleanTimer: 900000,
8
+ cashArrayLength: 10000,
9
+ matomoUrl: 'http://192.168.0.136/matomo/',
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixVQUFVLEVBQUUsS0FBSztJQUNqQixtQ0FBbUM7SUFDbkMsTUFBTSxFQUFFLDJCQUEyQjtJQUNuQyxxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLHlCQUF5QixFQUFFLEtBQUs7SUFDaEMsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLEtBQUs7SUFDdEIsU0FBUyxFQUFFLDhCQUE4QjtDQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xyXG4gIHByb2R1Y3Rpb246IGZhbHNlLFxyXG4gIC8vIGFwaVVybDogJ2h0dHA6Ly9sb2NhbGhvc3Q6NDIwMCcsXHJcbiAgYXBpVXJsOiAnaHR0cDovLzE5Mi4xNjguMC4xOTE6ODA4MCcsXHJcbiAgbm90aWZpY2F0aW9uc0xpZmV0aW1lOiAzMDAwMCxcclxuICBsb25nTm90aWZpY2F0aW9uc0xpZmV0aW1lOiA0NTAwMCxcclxuICBjYXNoQ2xlYW5UaW1lcjogOTAwMDAwLFxyXG4gIGNhc2hBcnJheUxlbmd0aDogMTAwMDAsXHJcbiAgbWF0b21vVXJsOiAnaHR0cDovLzE5Mi4xNjguMC4xMzYvbWF0b21vLycsXHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,199 @@
1
+ import { getSavableData } from '../utils/model';
2
+ // export class User implements EndUserInterface {
3
+ // userid?: string;
4
+ // firstName?: string;
5
+ // lastName?: string;
6
+ // middleName?: string;
7
+ // email?: string;
8
+ // domain?: string;
9
+ // department?: string;
10
+ // telephoneNumber?: string;
11
+ // homeNumber?: string;
12
+ // mobileNumber?: string;
13
+ // pagerNumber?: string;
14
+ // displayName?: string;
15
+ // ldapIntegrated?: boolean;
16
+ // sparkLicenses: Array<any>;
17
+ // extensionMobility: any;
18
+ // singleNumberReach?: SingleNumberReach;
19
+ // primaryLineReference: LineDirectory;
20
+ // voicemail: Voicemail;
21
+ // devices: Array<Device>;
22
+ // deviceProfiles: Array<Device>;
23
+ // lines: Array<Line>;
24
+ // features: Array<string>;
25
+ // ucServiceProfile: string;
26
+ // subscribeCss: string;
27
+ // presenceGroup: string;
28
+ // allowDeviceControlFromCti: boolean;
29
+ // enableCrossClusterEm: boolean;
30
+ // enableUserToHostConferenceNow: boolean;
31
+ // attendeesAccessCode: string;
32
+ // manager: string;
33
+ // title: string;
34
+ // associatedPc: string;
35
+ // userProfile: string;
36
+ // enableMobileVoiceAccess: boolean;
37
+ // mlppUserIdNumber: string;
38
+ // mlppPrecedencePattern: string;
39
+ // userLocale: string;
40
+ // siteId: number;
41
+ // siteName: string;
42
+ // location: string;
43
+ // lineAppearances: Array<LineAppearance>;
44
+ // meetMes: Array<MeetMeConferencing>;
45
+ // token: string;
46
+ // mlppPassword: string;
47
+ // password?: string;
48
+ // digestCredentials?: string;
49
+ // newUserid: string;
50
+ // homeCluster: boolean;
51
+ // directoryUri: string;
52
+ // createUserMode: boolean;
53
+ // pin: string;
54
+ // migrationVmUnchanged: boolean;
55
+ // migrationImPUnchanged: boolean;
56
+ // telecomManagerRule: boolean;
57
+ // userTemplateUdpDeviceTypesRules: UdpDeviceTypesRule[];
58
+ // deletedUserTemplateUdpDeviceTypesRules: UdpDeviceTypesRule[];
59
+ // hasModifiedCache = false;
60
+ // vmOnlyUser?: boolean;
61
+ // constructor(user: EndUserInterface, devicesStates = null, deviceProfilesStates = null, linesStates = null) {
62
+ // Object.assign(this, user || {});
63
+ // this.extensionMobility = new ExtensionMobility(this.extensionMobility);
64
+ // this.singleNumberReach = new SingleNumberReach(this.singleNumberReach);
65
+ // this.primaryLineReference = new LineDirectory(this.primaryLineReference);
66
+ // this.voicemail = new Voicemail(this.voicemail);
67
+ // this.devices = !this.devices ? [] : this.devices.map(device => new Device(device));
68
+ // this.userTemplateUdpDeviceTypesRules = !this.userTemplateUdpDeviceTypesRules ? [] : this.userTemplateUdpDeviceTypesRules.map(rule => new UdpDeviceTypesRule(rule));
69
+ // this.deviceProfiles = !this.deviceProfiles ? [] : this.deviceProfiles
70
+ // .map(device => new Device(device, appValidators, DeviceKind.deviceProfile));
71
+ // this.lines = !this.lines ? [] : this.lines.map(line => new Line(line));
72
+ // this.lineAppearances = !this.lineAppearances ? [] : this.lineAppearances.map(lineAppearance => new LineAppearance(lineAppearance));
73
+ // this.meetMes = !this.meetMes ? [] : this.meetMes.map(meetMe => new MeetMeConferencing(meetMe));
74
+ // this.sparkLicenses = !this.sparkLicenses ? [] : this.sparkLicenses.map(spark => new Spark(spark));
75
+ // this.features = this.features || [];
76
+ // this.password = null;
77
+ // this.digestCredentials = null;
78
+ // this.deletedUserTemplateUdpDeviceTypesRules = [];
79
+ // }
80
+ // getSavableData() {
81
+ // const excludedFields: string[] = ['form', 'editMode$', 'viewMode', 'token', 'hasModifiedCache', 'deletedUserTemplateUdpDeviceTypesRules'];
82
+ // return getSavableData(this, excludedFields);
83
+ // }
84
+ // }
85
+ export class EndUser {
86
+ constructor(init) {
87
+ this.lines = [];
88
+ Object.assign(this, init || {});
89
+ this.voicemail = new Voicemail(init?.voicemail);
90
+ }
91
+ }
92
+ export var DnRangeType;
93
+ (function (DnRangeType) {
94
+ DnRangeType["extension"] = "EXTENSION";
95
+ DnRangeType["cpg"] = "CPG";
96
+ DnRangeType["callpark"] = "CALLPARK";
97
+ DnRangeType["huntgroup"] = "HUNTGROUP";
98
+ DnRangeType["meetme"] = "MEETME";
99
+ DnRangeType["did"] = "DID";
100
+ })(DnRangeType || (DnRangeType = {}));
101
+ export var UserViewType;
102
+ (function (UserViewType) {
103
+ UserViewType[UserViewType["details"] = 0] = "details";
104
+ UserViewType[UserViewType["devices"] = 1] = "devices";
105
+ UserViewType[UserViewType["lines"] = 2] = "lines";
106
+ UserViewType[UserViewType["snr"] = 3] = "snr";
107
+ UserViewType[UserViewType["features"] = 4] = "features";
108
+ UserViewType[UserViewType["overview"] = 5] = "overview";
109
+ })(UserViewType || (UserViewType = {}));
110
+ // export class ExtensionMobility implements ExtensionMobilityInterface {
111
+ // deviceType: string = '';
112
+ // deviceProfileName: string = '';
113
+ // buttonTemplate: string = '';
114
+ // services: string[] = [];
115
+ // protocol: string = '';
116
+ // userLocale: string = '';
117
+ // lineAssociations: LineAssociation[] = [];
118
+ // speedDials: SpeedDial[] = [];
119
+ // constructor(extensionMobility: ExtensionMobilityInterface) {
120
+ // Object.assign(this, extensionMobility || {});
121
+ // }
122
+ // getSavableData() {
123
+ // return getSavableData(this);
124
+ // }
125
+ // }
126
+ // export class ExtensionMobilityInterface {
127
+ // deviceType?: string;
128
+ // deviceProfileName?: string;
129
+ // buttonTemplate?: string;
130
+ // services?: string[];
131
+ // protocol?: string;
132
+ // userLocale?: string;
133
+ // lineAssociations: LineAssociation[] = [];
134
+ // speedDials: SpeedDial[] = [];
135
+ // constructor(extensionMobility: ExtensionMobilityInterface) {
136
+ // Object.assign(this, extensionMobility || {});
137
+ // this.speedDials.map(dial => new SpeedDial(dial, false));
138
+ // }
139
+ // getSavableData() {
140
+ // return getSavableData(this);
141
+ // }
142
+ // }
143
+ // export interface SingleNumberReachInterface {
144
+ // remoteDestinationProfileName: string;
145
+ // remoteDestinations?: RemoteDestinationInterface[];
146
+ // devicePool?: string;
147
+ // css?: string;
148
+ // rerouteCss?: string;
149
+ // }
150
+ // export interface RemoteDestinationInterface {
151
+ // name: string;
152
+ // destination: string;
153
+ // answerTooSoonTimer: number;
154
+ // answerTooLateTimer: number;
155
+ // delayBeforeRingingCell: number;
156
+ // lineAssociations: LineDirectoryInterface[];
157
+ // snrVoicemailPolicy?: string;
158
+ // enableMoveToMobile?: boolean;
159
+ // ringSchedule?: RingScheduleInterface;
160
+ // todError?: boolean;
161
+ // enableSingleNumberReach?: boolean;
162
+ // }
163
+ // export interface SingleNumberReachInterface {
164
+ // remoteDestinationProfileName: string;
165
+ // remoteDestinations?: RemoteDestinationInterface[];
166
+ // devicePool?: string;
167
+ // css?: string;
168
+ // rerouteCss?: string;
169
+ // }
170
+ export class Voicemail {
171
+ constructor(vm) {
172
+ this.extension = '';
173
+ this.vmUserTemplate = '';
174
+ this.emailAddress = '';
175
+ this.greetings = [];
176
+ this.pin = '';
177
+ // non-savable data
178
+ this.changeExtensionByNewLine = 0;
179
+ if (vm && vm.extension) {
180
+ Object.assign(this, vm);
181
+ if (this.extension && this.extension.startsWith('+')) {
182
+ this.extension = '\\' + this.extension;
183
+ }
184
+ if (this.extension) {
185
+ // this.notificationDevices = this.initDevices();
186
+ // this.greetings = !this.greetings ? [] : this.greetings.map(greetings => new GreetingDetail(greetings));
187
+ }
188
+ }
189
+ else {
190
+ this.extension = '';
191
+ this.vmUserTemplate = '';
192
+ }
193
+ }
194
+ getSavableData() {
195
+ const nonSavableData = ['vmMailbox', 'notificationDevices', 'changeExtensionByNewLine'];
196
+ return getSavableData(this, nonSavableData);
197
+ }
198
+ }
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1jcmVhdGlvbi13aXphcmQuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy9pbnRlcmZhY2VzL3VzZXItY3JlYXRpb24td2l6YXJkLmludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBeUloRCxrREFBa0Q7QUFDbEQscUJBQXFCO0FBQ3JCLHdCQUF3QjtBQUN4Qix1QkFBdUI7QUFDdkIseUJBQXlCO0FBQ3pCLG9CQUFvQjtBQUNwQixxQkFBcUI7QUFDckIseUJBQXlCO0FBQ3pCLDhCQUE4QjtBQUM5Qix5QkFBeUI7QUFDekIsMkJBQTJCO0FBQzNCLDBCQUEwQjtBQUMxQiwwQkFBMEI7QUFDMUIsOEJBQThCO0FBQzlCLCtCQUErQjtBQUMvQiw0QkFBNEI7QUFDNUIsMkNBQTJDO0FBQzNDLHlDQUF5QztBQUN6QywwQkFBMEI7QUFDMUIsNEJBQTRCO0FBQzVCLG1DQUFtQztBQUNuQyx3QkFBd0I7QUFDeEIsNkJBQTZCO0FBQzdCLDhCQUE4QjtBQUM5QiwwQkFBMEI7QUFDMUIsMkJBQTJCO0FBQzNCLHdDQUF3QztBQUN4QyxtQ0FBbUM7QUFDbkMsNENBQTRDO0FBQzVDLGlDQUFpQztBQUNqQyxxQkFBcUI7QUFDckIsbUJBQW1CO0FBQ25CLDBCQUEwQjtBQUMxQix5QkFBeUI7QUFDekIsc0NBQXNDO0FBQ3RDLDhCQUE4QjtBQUM5QixtQ0FBbUM7QUFDbkMsd0JBQXdCO0FBQ3hCLG9CQUFvQjtBQUNwQixzQkFBc0I7QUFDdEIsc0JBQXNCO0FBQ3RCLDRDQUE0QztBQUM1Qyx3Q0FBd0M7QUFDeEMsbUJBQW1CO0FBQ25CLDBCQUEwQjtBQUMxQix1QkFBdUI7QUFDdkIsZ0NBQWdDO0FBQ2hDLHVCQUF1QjtBQUN2QiwwQkFBMEI7QUFDMUIsMEJBQTBCO0FBQzFCLDZCQUE2QjtBQUM3QixpQkFBaUI7QUFDakIsbUNBQW1DO0FBQ25DLG9DQUFvQztBQUNwQyxpQ0FBaUM7QUFDakMsMkRBQTJEO0FBQzNELGtFQUFrRTtBQUNsRSw4QkFBOEI7QUFFOUIsMEJBQTBCO0FBRTFCLGlIQUFpSDtBQUNqSCx1Q0FBdUM7QUFDdkMsOEVBQThFO0FBQzlFLDhFQUE4RTtBQUM5RSxnRkFBZ0Y7QUFDaEYsc0RBQXNEO0FBQ3RELDBGQUEwRjtBQUMxRiwwS0FBMEs7QUFDMUssNEVBQTRFO0FBQzVFLHFGQUFxRjtBQUNyRiw4RUFBOEU7QUFDOUUsMElBQTBJO0FBQzFJLHNHQUFzRztBQUN0Ryx5R0FBeUc7QUFDekcsMkNBQTJDO0FBQzNDLDRCQUE0QjtBQUM1QixxQ0FBcUM7QUFDckMsd0RBQXdEO0FBQ3hELE1BQU07QUFFTix1QkFBdUI7QUFDdkIsaUpBQWlKO0FBQ2pKLG1EQUFtRDtBQUNuRCxNQUFNO0FBQ04sSUFBSTtBQUVKLE1BQU0sT0FBTyxPQUFPO0lBR2xCLFlBQVksSUFBdUI7UUFGbkMsVUFBSyxHQUFvQixFQUFFLENBQUM7UUFHMUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQWtYRCxNQUFNLENBQU4sSUFBWSxXQU9YO0FBUEQsV0FBWSxXQUFXO0lBQ3JCLHNDQUF1QixDQUFBO0lBQ3ZCLDBCQUFXLENBQUE7SUFDWCxvQ0FBcUIsQ0FBQTtJQUNyQixzQ0FBdUIsQ0FBQTtJQUN2QixnQ0FBaUIsQ0FBQTtJQUNqQiwwQkFBVyxDQUFBO0FBQ2IsQ0FBQyxFQVBXLFdBQVcsS0FBWCxXQUFXLFFBT3RCO0FBc0JELE1BQU0sQ0FBTixJQUFZLFlBT1g7QUFQRCxXQUFZLFlBQVk7SUFDdEIscURBQVcsQ0FBQTtJQUNYLHFEQUFXLENBQUE7SUFDWCxpREFBUyxDQUFBO0lBQ1QsNkNBQU8sQ0FBQTtJQUNQLHVEQUFZLENBQUE7SUFDWix1REFBWSxDQUFBO0FBQ2QsQ0FBQyxFQVBXLFlBQVksS0FBWixZQUFZLFFBT3ZCO0FBc0JELHlFQUF5RTtBQUN6RSw2QkFBNkI7QUFDN0Isb0NBQW9DO0FBQ3BDLGlDQUFpQztBQUNqQyw2QkFBNkI7QUFDN0IsMkJBQTJCO0FBQzNCLDZCQUE2QjtBQUM3Qiw4Q0FBOEM7QUFDOUMsa0NBQWtDO0FBRWxDLGlFQUFpRTtBQUNqRSxvREFBb0Q7QUFDcEQsTUFBTTtBQUVOLHVCQUF1QjtBQUN2QixtQ0FBbUM7QUFDbkMsTUFBTTtBQUVOLElBQUk7QUFDSiw0Q0FBNEM7QUFDNUMseUJBQXlCO0FBQ3pCLGdDQUFnQztBQUNoQyw2QkFBNkI7QUFDN0IseUJBQXlCO0FBQ3pCLHVCQUF1QjtBQUN2Qix5QkFBeUI7QUFDekIsOENBQThDO0FBQzlDLGtDQUFrQztBQUVsQyxpRUFBaUU7QUFDakUsb0RBQW9EO0FBQ3BELGlFQUFpRTtBQUNqRSxNQUFNO0FBRU4sdUJBQXVCO0FBQ3ZCLG1DQUFtQztBQUNuQyxNQUFNO0FBRU4sSUFBSTtBQUVKLGdEQUFnRDtBQUNoRCwwQ0FBMEM7QUFDMUMsdURBQXVEO0FBQ3ZELHlCQUF5QjtBQUN6QixrQkFBa0I7QUFDbEIseUJBQXlCO0FBQ3pCLElBQUk7QUFFSixnREFBZ0Q7QUFDaEQsa0JBQWtCO0FBQ2xCLHlCQUF5QjtBQUN6QixnQ0FBZ0M7QUFDaEMsZ0NBQWdDO0FBQ2hDLG9DQUFvQztBQUNwQyxnREFBZ0Q7QUFDaEQsaUNBQWlDO0FBQ2pDLGtDQUFrQztBQUNsQywwQ0FBMEM7QUFDMUMsd0JBQXdCO0FBQ3hCLHVDQUF1QztBQUN2QyxJQUFJO0FBRUosZ0RBQWdEO0FBQ2hELDBDQUEwQztBQUMxQyx1REFBdUQ7QUFDdkQseUJBQXlCO0FBQ3pCLGtCQUFrQjtBQUNsQix5QkFBeUI7QUFDekIsSUFBSTtBQUdKLE1BQU0sT0FBTyxTQUFTO0lBcUJwQixZQUFZLEVBQXVCO1FBbkJuQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBQzVCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBVzFCLGNBQVMsR0FBVSxFQUFFLENBQUM7UUFFdEIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixtQkFBbUI7UUFDbkIsNkJBQXdCLEdBQVcsQ0FBQyxDQUFDO1FBR25DLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUU7WUFDdEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDeEIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQ3hDO1lBQ0QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixpREFBaUQ7Z0JBQ2pELDBHQUEwRzthQUMzRztTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osTUFBTSxjQUFjLEdBQUcsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUN4RixPQUFPLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDOUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0U2F2YWJsZURhdGEgfSBmcm9tICcuLi91dGlscy9tb2RlbCc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExkYXBVc2VyUm93IHtcclxuICAgIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XHJcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gICAgZW1haWw6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgTGRhcFF1ZXJ5VHlwZSA9ICd1c2VySWQnIHwgJ2ZpcnN0TmFtZScgfCAnbGFzdE5hbWUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPdmVydmlld1VzZXJSb3cgZXh0ZW5kcyBMZGFwVXNlclJvdyB7XHJcbiAgICB1c2VyVGVtcGxhdGU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPdmVydmlld0xpbmVSb3cge1xyXG4gICAgbnVtYmVyOiBzdHJpbmc7XHJcbiAgICBkaWQ6IHN0cmluZztcclxuICAgIHJvdXRlUGFydGl0aW9uTmFtZTogc3RyaW5nO1xyXG4gICAgY3NzOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJ2aWV3RGV2aWNlUm93IHtcclxuICAgIG5hbWU6IHN0cmluZztcclxuICAgIGRldmljZVR5cGU6IHN0cmluZztcclxuICAgIGxpbmVzOiBzdHJpbmc7XHJcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVc2VyQ3JlYXRpb25UeXBlID0gJ0NVQ00nIHwgJ01UJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlckRldGFpbHNGb3JtIHtcclxuICAgIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XHJcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gICAgZW1haWw6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyRGV0YWlsc0xpbmVGb3JtVmFsdWUge1xyXG4gICAgbGluZU51bWJlcjogc3RyaW5nO1xyXG4gICAgbnVtYmVyOiBzdHJpbmc7XHJcbiAgICByb3V0ZVBhcnRpdGlvbjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJEZXRhaWxzRGV2aWNlRm9ybVZhbHVlIHtcclxuICAgIGRldmljZVR5cGU6IHN0cmluZztcclxuICAgIHByb3RvY29sOiBzdHJpbmc7XHJcbiAgICBidXR0b25UZW1wbGF0ZTogc3RyaW5nO1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJEZXRhaWxzRm9ybVZhbHVlIHtcclxuICAgIHVzZXJJZDogc3RyaW5nO1xyXG4gICAgZmlyc3ROYW1lOiBzdHJpbmc7XHJcbiAgICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gICAgZW1haWw6IHN0cmluZztcclxuICAgIGxpbmVzOiBVc2VyRGV0YWlsc0xpbmVGb3JtVmFsdWVbXTtcclxuICAgIGRldmljZXM6IFVzZXJEZXRhaWxzRGV2aWNlRm9ybVZhbHVlW107XHJcbiAgICBkZXZpY2VQcm9maWxlczogVXNlckRldGFpbHNEZXZpY2VGb3JtVmFsdWVbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMaW5lT3B0aW9uIHtcclxuICAgIG51bWJlcjogc3RyaW5nO1xyXG4gICAgZGlkOiBzdHJpbmc7XHJcbiAgICBjc3M6IHN0cmluZztcclxuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0ZWRMaW5lUm93IHtcclxuICAgIGxpbmVOdW1iZXI6IHN0cmluZyB8IG51bGw7XHJcbiAgICByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlRW50cnkge1xyXG4gICAgZGV2aWNlVHlwZTogc3RyaW5nO1xyXG4gICAgcHJvdG9jb2w6IHN0cmluZztcclxuICAgIGJ1dHRvblRlbXBsYXRlOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVGVtcGxhdGVMaW5lTGlrZSB7XHJcbiAgICBkaXJlY3RvcnlOdW1iZXI/OiB7XHJcbiAgICAgICAgZGlyZWN0b3J5TnVtYmVyPzogc3RyaW5nO1xyXG4gICAgICAgIHJvdXRlUGFydGl0aW9uTmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICAgICAgdGVtcGxhdGVEaXJlY3RvcnlOdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgfTtcclxuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGNhbGxpbmdTZWFyY2hTcGFjZT86IHN0cmluZyB8IHsgbmFtZT86IHN0cmluZyB8IG51bGwgfSB8IG51bGw7XHJcbiAgICBkaWRQYXR0ZXJucz86IEFycmF5PHsgcGF0dGVybj86IHN0cmluZyB8IG51bGwgfT4gfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRGV2aWNlTGlrZSB7XHJcbiAgICBkZXZpY2VUeXBlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIHByb3RvY29sPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGJ1dHRvblRlbXBsYXRlPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIG5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gICAgbGluZUFzc29jaWF0aW9ucz86IEFycmF5PHtcclxuICAgICAgICBsb2dNaXNzZWRDYWxsPzogYm9vbGVhbiB8IHN0cmluZyB8IG51bGw7XHJcbiAgICAgICAgZGlyZWN0b3J5TnVtYmVyPzoge1xyXG4gICAgICAgICAgICBkaXJlY3RvcnlOdW1iZXI/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHJvdXRlUGFydGl0aW9uTmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICAgICAgICAgIHRlbXBsYXRlRGlyZWN0b3J5TnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICAgICAgICB9IHwgbnVsbDtcclxuICAgIH0+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRlbXBsYXRlRW5kVXNlckxpa2Uge1xyXG4gICAgdXNlcmlkPzogc3RyaW5nIHwgbnVsbDtcclxuICAgIGZpcnN0TmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBsYXN0TmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgICBlbWFpbD86IHN0cmluZyB8IG51bGw7XHJcbiAgICBsaW5lcz86IFRlbXBsYXRlTGluZUxpa2VbXSB8IG51bGw7XHJcbiAgICBkZXZpY2VzPzogVGVtcGxhdGVEZXZpY2VMaWtlW10gfCBudWxsO1xyXG59XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyVGVtcGxhdGVJbnRlcmZhY2Uge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgY3JlYXRlT3JVcGxvYWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgdXNlclRlbXBsYXRlU2V0dGluZ3M6IFVzZXJUZW1wbGF0ZVNldHRpbmdbXTtcclxuICBjdXN0b21lcklkOiBudW1iZXI7XHJcbiAgdXNlclJlcXVpcmVkRmllbGRzOiBzdHJpbmdbXTtcclxuICBkZXZpY2VSZXF1aXJlZEZpZWxkczogc3RyaW5nW107XHJcbiAgdWRwUmVxdWlyZWRGaWVsZHM6IHN0cmluZ1tdO1xyXG4gIGxpbmVSZXF1aXJlZEZpZWxkczogc3RyaW5nW107XHJcbiAgZW5kVXNlcjogRW5kVXNlckludGVyZmFjZTtcclxuICB0eXBlOiBzdHJpbmc7XHJcbiAgZ2xvYmFsVGVtcGxhdGU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRlbXBsYXRlU2V0dGluZyB7XHJcbiAgLy8gQWRkIGZpZWxkcyBpZiBuZWVkZWRcclxufVxyXG5cclxuLy8gZXhwb3J0IGNsYXNzIFVzZXIgaW1wbGVtZW50cyBFbmRVc2VySW50ZXJmYWNlIHtcclxuLy8gICB1c2VyaWQ/OiBzdHJpbmc7XHJcbi8vICAgZmlyc3ROYW1lPzogc3RyaW5nO1xyXG4vLyAgIGxhc3ROYW1lPzogc3RyaW5nO1xyXG4vLyAgIG1pZGRsZU5hbWU/OiBzdHJpbmc7XHJcbi8vICAgZW1haWw/OiBzdHJpbmc7XHJcbi8vICAgZG9tYWluPzogc3RyaW5nO1xyXG4vLyAgIGRlcGFydG1lbnQ/OiBzdHJpbmc7XHJcbi8vICAgdGVsZXBob25lTnVtYmVyPzogc3RyaW5nO1xyXG4vLyAgIGhvbWVOdW1iZXI/OiBzdHJpbmc7XHJcbi8vICAgbW9iaWxlTnVtYmVyPzogc3RyaW5nO1xyXG4vLyAgIHBhZ2VyTnVtYmVyPzogc3RyaW5nO1xyXG4vLyAgIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xyXG4vLyAgIGxkYXBJbnRlZ3JhdGVkPzogYm9vbGVhbjtcclxuLy8gICBzcGFya0xpY2Vuc2VzOiBBcnJheTxhbnk+O1xyXG4vLyAgIGV4dGVuc2lvbk1vYmlsaXR5OiBhbnk7XHJcbi8vICAgc2luZ2xlTnVtYmVyUmVhY2g/OiBTaW5nbGVOdW1iZXJSZWFjaDtcclxuLy8gICBwcmltYXJ5TGluZVJlZmVyZW5jZTogTGluZURpcmVjdG9yeTtcclxuLy8gICB2b2ljZW1haWw6IFZvaWNlbWFpbDtcclxuLy8gICBkZXZpY2VzOiBBcnJheTxEZXZpY2U+O1xyXG4vLyAgIGRldmljZVByb2ZpbGVzOiBBcnJheTxEZXZpY2U+O1xyXG4vLyAgIGxpbmVzOiBBcnJheTxMaW5lPjtcclxuLy8gICBmZWF0dXJlczogQXJyYXk8c3RyaW5nPjtcclxuLy8gICB1Y1NlcnZpY2VQcm9maWxlOiBzdHJpbmc7XHJcbi8vICAgc3Vic2NyaWJlQ3NzOiBzdHJpbmc7XHJcbi8vICAgcHJlc2VuY2VHcm91cDogc3RyaW5nO1xyXG4vLyAgIGFsbG93RGV2aWNlQ29udHJvbEZyb21DdGk6IGJvb2xlYW47XHJcbi8vICAgZW5hYmxlQ3Jvc3NDbHVzdGVyRW06IGJvb2xlYW47XHJcbi8vICAgZW5hYmxlVXNlclRvSG9zdENvbmZlcmVuY2VOb3c6IGJvb2xlYW47XHJcbi8vICAgYXR0ZW5kZWVzQWNjZXNzQ29kZTogc3RyaW5nO1xyXG4vLyAgIG1hbmFnZXI6IHN0cmluZztcclxuLy8gICB0aXRsZTogc3RyaW5nO1xyXG4vLyAgIGFzc29jaWF0ZWRQYzogc3RyaW5nO1xyXG4vLyAgIHVzZXJQcm9maWxlOiBzdHJpbmc7XHJcbi8vICAgZW5hYmxlTW9iaWxlVm9pY2VBY2Nlc3M6IGJvb2xlYW47XHJcbi8vICAgbWxwcFVzZXJJZE51bWJlcjogc3RyaW5nO1xyXG4vLyAgIG1scHBQcmVjZWRlbmNlUGF0dGVybjogc3RyaW5nO1xyXG4vLyAgIHVzZXJMb2NhbGU6IHN0cmluZztcclxuLy8gICBzaXRlSWQ6IG51bWJlcjtcclxuLy8gICBzaXRlTmFtZTogc3RyaW5nO1xyXG4vLyAgIGxvY2F0aW9uOiBzdHJpbmc7XHJcbi8vICAgbGluZUFwcGVhcmFuY2VzOiBBcnJheTxMaW5lQXBwZWFyYW5jZT47XHJcbi8vICAgbWVldE1lczogQXJyYXk8TWVldE1lQ29uZmVyZW5jaW5nPjtcclxuLy8gICB0b2tlbjogc3RyaW5nO1xyXG4vLyAgIG1scHBQYXNzd29yZDogc3RyaW5nO1xyXG4vLyAgIHBhc3N3b3JkPzogc3RyaW5nO1xyXG4vLyAgIGRpZ2VzdENyZWRlbnRpYWxzPzogc3RyaW5nO1xyXG4vLyAgIG5ld1VzZXJpZDogc3RyaW5nO1xyXG4vLyAgIGhvbWVDbHVzdGVyOiBib29sZWFuO1xyXG4vLyAgIGRpcmVjdG9yeVVyaTogc3RyaW5nO1xyXG4vLyAgIGNyZWF0ZVVzZXJNb2RlOiBib29sZWFuO1xyXG4vLyAgIHBpbjogc3RyaW5nO1xyXG4vLyAgIG1pZ3JhdGlvblZtVW5jaGFuZ2VkOiBib29sZWFuO1xyXG4vLyAgIG1pZ3JhdGlvbkltUFVuY2hhbmdlZDogYm9vbGVhbjtcclxuLy8gICB0ZWxlY29tTWFuYWdlclJ1bGU6IGJvb2xlYW47XHJcbi8vICAgdXNlclRlbXBsYXRlVWRwRGV2aWNlVHlwZXNSdWxlczogVWRwRGV2aWNlVHlwZXNSdWxlW107XHJcbi8vICAgZGVsZXRlZFVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZXM6IFVkcERldmljZVR5cGVzUnVsZVtdO1xyXG4vLyAgIGhhc01vZGlmaWVkQ2FjaGUgPSBmYWxzZTtcclxuXHJcbi8vICAgdm1Pbmx5VXNlcj86IGJvb2xlYW47XHJcblxyXG4vLyAgIGNvbnN0cnVjdG9yKHVzZXI6IEVuZFVzZXJJbnRlcmZhY2UsIGRldmljZXNTdGF0ZXMgPSBudWxsLCBkZXZpY2VQcm9maWxlc1N0YXRlcyA9IG51bGwsIGxpbmVzU3RhdGVzID0gbnVsbCkge1xyXG4vLyAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB1c2VyIHx8IHt9KTtcclxuLy8gICAgIHRoaXMuZXh0ZW5zaW9uTW9iaWxpdHkgPSBuZXcgRXh0ZW5zaW9uTW9iaWxpdHkodGhpcy5leHRlbnNpb25Nb2JpbGl0eSk7XHJcbi8vICAgICB0aGlzLnNpbmdsZU51bWJlclJlYWNoID0gbmV3IFNpbmdsZU51bWJlclJlYWNoKHRoaXMuc2luZ2xlTnVtYmVyUmVhY2gpO1xyXG4vLyAgICAgdGhpcy5wcmltYXJ5TGluZVJlZmVyZW5jZSA9IG5ldyBMaW5lRGlyZWN0b3J5KHRoaXMucHJpbWFyeUxpbmVSZWZlcmVuY2UpO1xyXG4vLyAgICAgdGhpcy52b2ljZW1haWwgPSBuZXcgVm9pY2VtYWlsKHRoaXMudm9pY2VtYWlsKTtcclxuLy8gICAgIHRoaXMuZGV2aWNlcyA9ICF0aGlzLmRldmljZXMgPyBbXSA6IHRoaXMuZGV2aWNlcy5tYXAoZGV2aWNlID0+IG5ldyBEZXZpY2UoZGV2aWNlKSk7XHJcbi8vICAgICB0aGlzLnVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZXMgPSAhdGhpcy51c2VyVGVtcGxhdGVVZHBEZXZpY2VUeXBlc1J1bGVzID8gW10gOiB0aGlzLnVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZXMubWFwKHJ1bGUgPT4gbmV3IFVkcERldmljZVR5cGVzUnVsZShydWxlKSk7XHJcbi8vICAgICB0aGlzLmRldmljZVByb2ZpbGVzID0gIXRoaXMuZGV2aWNlUHJvZmlsZXMgPyBbXSA6IHRoaXMuZGV2aWNlUHJvZmlsZXNcclxuLy8gICAgICAgLm1hcChkZXZpY2UgPT4gbmV3IERldmljZShkZXZpY2UsIGFwcFZhbGlkYXRvcnMsIERldmljZUtpbmQuZGV2aWNlUHJvZmlsZSkpO1xyXG4vLyAgICAgdGhpcy5saW5lcyA9ICF0aGlzLmxpbmVzID8gW10gOiB0aGlzLmxpbmVzLm1hcChsaW5lID0+IG5ldyBMaW5lKGxpbmUpKTtcclxuLy8gICAgIHRoaXMubGluZUFwcGVhcmFuY2VzID0gIXRoaXMubGluZUFwcGVhcmFuY2VzID8gW10gOiB0aGlzLmxpbmVBcHBlYXJhbmNlcy5tYXAobGluZUFwcGVhcmFuY2UgPT4gbmV3IExpbmVBcHBlYXJhbmNlKGxpbmVBcHBlYXJhbmNlKSk7XHJcbi8vICAgICB0aGlzLm1lZXRNZXMgPSAhdGhpcy5tZWV0TWVzID8gW10gOiB0aGlzLm1lZXRNZXMubWFwKG1lZXRNZSA9PiBuZXcgTWVldE1lQ29uZmVyZW5jaW5nKG1lZXRNZSkpO1xyXG4vLyAgICAgdGhpcy5zcGFya0xpY2Vuc2VzID0gIXRoaXMuc3BhcmtMaWNlbnNlcyA/IFtdIDogdGhpcy5zcGFya0xpY2Vuc2VzLm1hcChzcGFyayA9PiBuZXcgU3Bhcmsoc3BhcmspKTtcclxuLy8gICAgIHRoaXMuZmVhdHVyZXMgPSB0aGlzLmZlYXR1cmVzIHx8IFtdO1xyXG4vLyAgICAgdGhpcy5wYXNzd29yZCA9IG51bGw7XHJcbi8vICAgICB0aGlzLmRpZ2VzdENyZWRlbnRpYWxzID0gbnVsbDtcclxuLy8gICAgIHRoaXMuZGVsZXRlZFVzZXJUZW1wbGF0ZVVkcERldmljZVR5cGVzUnVsZXMgPSBbXTtcclxuLy8gICB9XHJcblxyXG4vLyAgIGdldFNhdmFibGVEYXRhKCkge1xyXG4vLyAgICAgY29uc3QgZXhjbHVkZWRGaWVsZHM6IHN0cmluZ1tdID0gWydmb3JtJywgJ2VkaXRNb2RlJCcsICd2aWV3TW9kZScsICd0b2tlbicsICdoYXNNb2RpZmllZENhY2hlJywgJ2RlbGV0ZWRVc2VyVGVtcGxhdGVVZHBEZXZpY2VUeXBlc1J1bGVzJ107XHJcbi8vICAgICByZXR1cm4gZ2V0U2F2YWJsZURhdGEodGhpcywgZXhjbHVkZWRGaWVsZHMpO1xyXG4vLyAgIH1cclxuLy8gfVxyXG5cclxuZXhwb3J0IGNsYXNzIEVuZFVzZXIgaW1wbGVtZW50cyBQYXJ0aWFsPEVuZFVzZXJJbnRlcmZhY2U+IHtcclxuICBsaW5lczogTGluZUludGVyZmFjZVtdID0gW107XHJcbiAgdm9pY2VtYWlsOiBWb2ljZW1haWw7XHJcbiAgY29uc3RydWN0b3IoaW5pdD86IEVuZFVzZXJJbnRlcmZhY2UpIHtcclxuICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCB8fCB7fSk7XHJcbiAgICB0aGlzLnZvaWNlbWFpbCA9IG5ldyBWb2ljZW1haWwoaW5pdD8udm9pY2VtYWlsKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRW5kVXNlckludGVyZmFjZSB7XHJcbiAgdXNlcmlkPzogc3RyaW5nIHwgbnVsbDtcclxuICBlbWFpbD86IHN0cmluZyB8IG51bGw7XHJcbiAgZmlyc3ROYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICBsYXN0TmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgZG9tYWluPzogc3RyaW5nIHwgbnVsbDtcclxuICBjdXN0b21lcklkPzogbnVtYmVyIHwgbnVsbDtcclxuICBkZXBhcnRtZW50Pzogc3RyaW5nIHwgbnVsbDtcclxuICB1c2VyUHJvZmlsZT86IHN0cmluZyB8IG51bGw7XHJcbiAgbWFuYWdlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgZW5hYmxlTW9iaWxlVm9pY2VBY2Nlc3M/OiBib29sZWFuIHwgbnVsbDtcclxuICBhc3NvY2lhdGVkUGM/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHVzZXJMb2NhbGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpZ2VzdENyZWRlbnRpYWxzPzogc3RyaW5nIHwgbnVsbDtcclxuICBtaWRkbGVOYW1lPzogc3RyaW5nIHwgbnVsbDtcclxuICB0aXRsZT86IHN0cmluZyB8IG51bGw7XHJcbiAgdGVsZXBob25lTnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICBob21lTnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICBtb2JpbGVOdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gIHBhZ2VyTnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxuICBkaXNwbGF5TmFtZT86IHN0cmluZyB8IG51bGw7XHJcbiAgZGlyZWN0b3J5VXJpPzogc3RyaW5nIHwgbnVsbDtcclxuICBwcmVzZW5jZUdyb3VwPzogc3RyaW5nIHwgbnVsbDtcclxuICBzdWJzY3JpYmVDc3M/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGFsbG93RGV2aWNlQ29udHJvbEZyb21DdGk/OiBib29sZWFuIHwgbnVsbDtcclxuICBlbmFibGVDcm9zc0NsdXN0ZXJFbT86IGJvb2xlYW4gfCBudWxsO1xyXG4gIG1scHBVc2VySWROdW1iZXI/OiBzdHJpbmcgfCBudWxsO1xyXG4gIG1scHBQcmVjZWRlbmNlUGF0dGVybj86IHN0cmluZyB8IG51bGw7XHJcbiAgY3JlYXRlVXNlck1vZGU/OiBib29sZWFuO1xyXG4gIGVuYWJsZU1vYmlsaXR5PzogYm9vbGVhbiB8IG51bGw7XHJcbiAgZGV2aWNlcz86IERldmljZUludGVyZmFjZVtdO1xyXG4gIGRldmljZVByb2ZpbGVzPzogRGV2aWNlSW50ZXJmYWNlW107XHJcbiAgbGluZXM6IExpbmVJbnRlcmZhY2VbXTtcclxuICBzaW5nbGVOdW1iZXJSZWFjaD86IHtcclxuICAgIGFzc29jaWF0ZWRMaW5lcz86IExpbmVJbnRlcmZhY2VbXSB8IG51bGw7XHJcbiAgICByZW1vdGVEZXN0aW5hdGlvbnM/OiB7XHJcbiAgICAgIGxpbmVBc3NvY2lhdGlvbnM/OiBMaW5lSW50ZXJmYWNlW10gfCBudWxsO1xyXG4gICAgfVtdIHwgbnVsbDtcclxuICAgIHJlbW90ZURlc3RpbmF0aW9uUHJvZmlsZU5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIH0gfCBudWxsO1xyXG4gIHByaW1hcnlMaW5lUmVmZXJlbmNlPzogdW5rbm93biB8IG51bGw7XHJcbiAgdm9pY2VtYWlsPzogVm9pY2VtYWlsO1xyXG4gIGZlYXR1cmVzPzogRmVhdHVyZVtdO1xyXG4gIG1pZ3JhdGlvblZtVW5jaGFuZ2VkPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgbWlncmF0aW9uSW1QVW5jaGFuZ2VkPzogYm9vbGVhbiB8IG51bGw7XHJcbiAgdWNTZXJ2aWNlUHJvZmlsZT86IHN0cmluZyB8IG51bGw7XHJcbiAgdGVsZWNvbU1hbmFnZXJSdWxlPzogYm9vbGVhbjtcclxuICB1c2VyVGVtcGxhdGVVZHBEZXZpY2VUeXBlc1J1bGVzPzogVXNlclRlbXBsYXRlVWRwRGV2aWNlVHlwZXNSdWxlW107XHJcbiAgbGRhcEludGVncmF0ZWQ/OiBib29sZWFuIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYWxsSW5mb0Rpc3BsYXkge1xyXG4gIGNhbGxlck5hbWU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGNhbGxlck51bWJlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgcmVkaXJlY3RlZE51bWJlcj86IHN0cmluZyB8IG51bGw7XHJcbiAgZGlhbGVkTnVtYmVyPzogc3RyaW5nIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaWRQYXR0ZXJuIHtcclxuICBjYWxsZWRQYXJ0eVRyYW5zZm9ybWF0aW9uTWFzaz86IHN0cmluZyB8IG51bGw7XHJcbiAgcGF0dGVybj86IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvdG9jb2xTcGVjaWZpY0RlZmF1bHRzIHtcclxuICBidXR0b25UZW1wbGF0ZXM6IHN0cmluZ1tdO1xyXG4gIHNlY3VyaXR5UHJvZmlsZXM6IHN0cmluZ1tdO1xyXG4gIHN1cHBvcnRlZEV4cGFuc2lvbk1vZHVsZXM6IHN0cmluZ1tdO1xyXG4gIHN1cHBvcnRzU29mdGtleVRlbXBsYXRlczogYm9vbGVhbjtcclxuICBzdXBwb3J0c0JMRjogYm9vbGVhbjtcclxuICBzdXBwb3J0c0VNOiBib29sZWFuO1xyXG4gIHN1cHBvcnRzTXVsdGlwbGVDYWxsRGlzcGxheTogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VEZWZhdWx0c0ludGVyZmFjZSB7XHJcbiAgZGV2aWNlVHlwZTogc3RyaW5nO1xyXG4gIGRldmljZU5hbWVSZWdleDogc3RyaW5nO1xyXG4gIGRldmljZU5hbWVFeHBsYWluZWQ6IHN0cmluZztcclxuICBuZXR3b3JrTG9jYWxlczogc3RyaW5nW107XHJcbiAgcHJvdG9jb2xQcm90b2NvbFNwZWNpZmljRGVmYXVsdDogUmVjb3JkPHN0cmluZywgUHJvdG9jb2xTcGVjaWZpY0RlZmF1bHRzPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXZpY2VJbnRlcmZhY2Uge1xyXG4gIGRldmljZVR5cGU6IHN0cmluZyB8IG51bGw7XHJcbiAgcHJvdG9jb2w6IHN0cmluZyB8IG51bGw7XHJcbiAgbmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBuZXdOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHByZWZpeDogc3RyaW5nIHwgbnVsbDtcclxuICBkZXNjcmlwdGlvbj86IHN0cmluZyB8IG51bGw7XHJcbiAgYnV0dG9uVGVtcGxhdGU6IHN0cmluZyB8IG51bGw7XHJcbiAgbG9jYXRpb246IHN0cmluZyB8IG51bGw7XHJcbiAgZGV2aWNlUG9vbE5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgc29mdGtleVRlbXBsYXRlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGVudGl0eUNoYW5nZVR5cGU6IHN0cmluZyB8IG51bGw7XHJcbiAgY3JlYXRlRGV2aWNlTW9kZT86IGJvb2xlYW47XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBjb21tb25QaG9uZUNvbmZpZ05hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgc2VjdXJpdHlQcm9maWxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHVzZXJMb2NhbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgbmV0d29ya0xvY2FsZTogc3RyaW5nIHwgbnVsbDtcclxuICBlbmFibGVkRXh0ZW5zaW9uTW9iaWxpdHk6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGZpcnN0RXhwYW5zaW9uTW9kdWxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlY29uZEV4cGFuc2lvbk1vZHVsZTogc3RyaW5nIHwgbnVsbDtcclxuICB3aXRoVWRwOiBib29sZWFuO1xyXG4gIGxpbmVBc3NvY2lhdGlvbnM6IExpbmVBc3NvY2lhdGlvbltdO1xyXG4gIHNpcFByb2ZpbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgc3Vic2NyaWJlQ2FsbGluZ1NlYXJjaFNwYWNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBleHRyYU9wdGlvbnM6IERldmljZUV4dHJhT3B0aW9ucztcclxuICB1c2VyRGV2aWNlVHlwZTogc3RyaW5nIHwgbnVsbDtcclxuICBidWlsdEluQnJpZGdlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlcnZpY2VzOiBTZXJ2aWNlW107XHJcbiAgc3BlZWREaWFsczogU3BlZWREaWFsW107XHJcbiAgYnVzeUxhbXBGaWVsZHM6IEJ1c3lMYW1wRmllbGRbXTtcclxuICB3ZWJleFVVSUQ6IHN0cmluZyB8IG51bGw7XHJcbiAgcGtpZDogc3RyaW5nIHwgbnVsbDtcclxuICBkZXZpY2VEZWZhdWx0cz86IERldmljZURlZmF1bHRzSW50ZXJmYWNlIHwgbnVsbDtcclxuICBuYW1lVmFsaWRhdGlvblJlZ2V4Pzogc3RyaW5nIHwgbnVsbDtcclxuICBuYW1lVmFsaWRhdGlvbkNhcHRpb24/OiBzdHJpbmcgfCBudWxsO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExpbmVBc3NvY2lhdGlvbiB7XHJcbiAgbGluZVBraWQ6IHN0cmluZyB8IG51bGw7XHJcbiAgaW5kZXg6IG51bWJlcjtcclxuICBwb3NpdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBkaXJlY3RvcnlOdW1iZXI6IERpcmVjdG9yeU51bWJlcjtcclxuICBlMTY0TWFzazogc3RyaW5nIHwgbnVsbDtcclxuICB0ZXh0TGFiZWw6IHN0cmluZyB8IG51bGw7XHJcbiAgZGlzcGxheUxhYmVsOiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpc3BsYXlMYWJlbEFzY2lpOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1heE51bWJlck9mQ2FsbHM6IG51bWJlciB8IG51bGw7XHJcbiAgYnVzeVRyaWdnZXI6IG51bWJlciB8IG51bGw7XHJcbiAgcmVjb3JkaW5nT3B0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIHJlY29yZGluZ1Byb2ZpbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgcmVjb3JkaW5nTWVkaWFTb3VyY2U6IHN0cmluZyB8IG51bGw7XHJcbiAgdmlzdWFsTVdJOiBib29sZWFuIHwgbnVsbDtcclxuICBhdWRpYmxlTVdJOiBib29sZWFuIHwgbnVsbDtcclxuICByaW5nU2V0dGluZ19pZGxlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHJpbmdTZXR0aW5nX2FjdGl2ZTogc3RyaW5nIHwgbnVsbDtcclxuICBwaWNrdXBBQVNfaWRsZTogc3RyaW5nIHwgbnVsbDtcclxuICBwaWNrdXBBQVNfYWN0aXZlOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1vbml0b3JDU1M6IHN0cmluZyB8IG51bGw7XHJcbiAgbG9nTWlzc2VkQ2FsbDogYm9vbGVhbiB8IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbEluZm9EaXNwbGF5OiBDYWxsSW5mb0Rpc3BsYXkgfCBzdHJpbmcgfCBudWxsO1xyXG4gIGxpbmVMb2NhbElkOiBzdHJpbmc7XHJcbiAgZGlkUGF0dGVybjogRGlkUGF0dGVybiB8IHN0cmluZyB8IG51bGw7XHJcbiAgZW50aXR5Q2hhbmdlVHlwZT86IHN0cmluZyB8IG51bGw7XHJcbiAgc2hhcmVkRGV2aWNlczogU2hhcmVkRGV2aWNlW107XHJcbiAgc2hhcmVkVXNlcnM6IFNoYXJlZFVzZXJbXTtcclxuICBvd25lclVzZXJJZDogc3RyaW5nW107XHJcbiAgYXNzb2NpYXRlZDogYm9vbGVhbjtcclxuICBwYXR0ZXJuVXNhZ2U6IHN0cmluZyB8IG51bGw7XHJcbiAgYWxlcnRpbmdOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBvcHVsYXRlV2l0aERpZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3RvcnlOdW1iZXIge1xyXG4gIC8vIGRpcmVjdG9yeU51bWJlcjogc3RyaW5nIHwgbnVsbDtcclxuICAvLyByb3V0ZVBhcnRpdGlvbk5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgLy8gcGtpZDogc3RyaW5nIHwgbnVsbDtcclxuICAvLyBkblR5cGU6IHN0cmluZyB8IG51bGw7XHJcbiAgLy8gc3ViVHlwZTogc3RyaW5nIHwgbnVsbDtcclxuXHJcbiAgZGlyZWN0b3J5TnVtYmVyOiBzdHJpbmc7XHJcbiAgdGVtcGxhdGVEaXJlY3RvcnlOdW1iZXI/OiBzdHJpbmc7XHJcbiAgcm91dGVQYXJ0aXRpb25OYW1lOiBzdHJpbmc7XHJcbiAgcGtpZD86IHN0cmluZyB8IG51bGw7XHJcbiAgZG5UeXBlPzogc3RyaW5nIHwgbnVsbDtcclxuICBzdWJUeXBlPzogc3RyaW5nIHwgbnVsbDtcclxuICBkaXNwbGF5VmFsdWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlRXh0cmFPcHRpb25zIHtcclxuICBtZWRpYVJlc291cmNlR3JvdXBMaXN0OiBzdHJpbmcgfCBudWxsO1xyXG4gIHVzZXJIb2xkTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcclxuICB1c2VySG9sZE1PSEF1ZGlvU291cmNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcclxuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFhckNzczogc3RyaW5nIHwgbnVsbDtcclxuICBhYXJHcm91cDogc3RyaW5nIHwgbnVsbDtcclxuICBwcml2YWN5OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRldmljZU1vYmlsaXR5TW9kZTogc3RyaW5nIHwgbnVsbDtcclxuICBtb2JpbGl0eVVzZXJJZDogc3RyaW5nIHwgbnVsbDtcclxuICBwaG9uZVBlcnNvbmFsaXphdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBzZXJ2aWNlc1Byb3Zpc2lvbmluZzogc3RyaW5nIHwgbnVsbDtcclxuICBwaG9uZUxvYWROYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBob25lSWRsZUJMRkFsZXJ0U2V0dGluZzogc3RyaW5nIHwgbnVsbDtcclxuICBwaG9uZUJ1c3lCTEZBbGVydFNldHRpbmc6IHN0cmluZyB8IG51bGw7XHJcbiAgdXNlVHJ1c3RlZFJlbGF5UG9pbnQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGFsd2F5c1VzZVByaW1lTGluZTogYm9vbGVhbiB8IG51bGw7XHJcbiAgYWx3YXlzVXNlUHJpbWVMaW5lRm9yVm9pY2VNZXNzYWdlOiBib29sZWFuIHwgbnVsbDtcclxuICBnZW9sb2NhdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBpZ25vcmVQcmVzZW50YXRpb25JbmRpY2F0b3JzOiBib29sZWFuIHwgbnVsbDtcclxuICBsb2dnZWRJbnRvSHVudEdyb3VwOiBib29sZWFuIHwgbnVsbDtcclxuICBlbmFibGVkRXh0ZW5zaW9uTW9iaWxpdHk6IGJvb2xlYW4gfCBudWxsO1xyXG4gIHJlbW90ZURldmljZTogc3RyaW5nIHwgbnVsbDtcclxuICBwcm90ZWN0ZWREZXZpY2U6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGhvdGxpbmVEZXZpY2U6IGJvb2xlYW47XHJcbiAgY29tbW9uRGV2aWNlQ29uZmlnTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICB1c2VEZXZpY2VQb29sQ2dwbkluZ3Jlc3NETjogYm9vbGVhbiB8IG51bGw7XHJcbiAgY2dwbkluZ3Jlc3NETjogc3RyaW5nIHwgbnVsbDtcclxuICB1c2VEZXZpY2VQb29sQ2dwblRyYW5zZm9ybUNzczogYm9vbGVhbiB8IG51bGw7XHJcbiAgY2dwblRyYW5zZm9ybWF0aW9uQ3NzOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBhY2tldENhcHR1cmVNb2RlOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBhY2tldENhcHR1cmVEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcclxuICBibGZQcmVzZW5jZUdyb3VwOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNpcERpYWxSdWxlczogc3RyaW5nIHwgbnVsbDtcclxuICBtdHBQcmVmZXJyZWRPcmlnaW5hdGluZ0NvZGVjOiBzdHJpbmcgfCBudWxsO1xyXG4gIHJlcm91dGVDc3M6IHN0cmluZyB8IG51bGw7XHJcbiAgc3Vic2NyaWJlQ3NzOiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpZ2VzdFVzZXI6IHN0cmluZyB8IG51bGw7XHJcbiAgbXRwUmVxdWlyZWQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gIHVuYXR0ZW5kZWRQb3J0OiBib29sZWFuIHwgbnVsbDtcclxuICByZXF1aXJlRHRtZlJlY2VwdGlvbjogYm9vbGVhbiB8IG51bGw7XHJcbiAgaW5mb3JtYXRpb25Vcmw6IHN0cmluZyB8IG51bGw7XHJcbiAgZGlyZWN0b3J5VXJsOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1lc3NhZ2VzVXJsOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlcnZpY2VzVXJsOiBzdHJpbmcgfCBudWxsO1xyXG4gIGF1dGhlbnRpY2F0aW9uVXJsOiBzdHJpbmcgfCBudWxsO1xyXG4gIHByb3h5U2VydmVyVXJsOiBzdHJpbmcgfCBudWxsO1xyXG4gIGlkbGVVcmw6IHN0cmluZyB8IG51bGw7XHJcbiAgaWRsZVRpbWVvdXQ6IG51bWJlciB8IG51bGw7XHJcbiAgc2VjdXJlQXV0aGVudGljYXRpb25Vcmw6IHN0cmluZyB8IG51bGw7XHJcbiAgc2VjdXJlRGlyZWN0b3J5VXJsOiBzdHJpbmcgfCBudWxsO1xyXG4gIHNlY3VyZUlkbGVVcmw6IHN0cmluZyB8IG51bGw7XHJcbiAgc2VjdXJlSW5mb3JtYXRpb25Vcmw6IHN0cmluZyB8IG51bGw7XHJcbiAgc2VjdXJlTWVzc2FnZVVybDogc3RyaW5nIHwgbnVsbDtcclxuICBzZWN1cmVTZXJ2aWNlc1VybDogc3RyaW5nIHwgbnVsbDtcclxuICBtbHBwRG9tYWluOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1scHBJbmRpY2F0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIG1scHBQcmVlbXB0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIGNvbmZpZGVudGlhbEFjY2Vzc01vZGU6IHN0cmluZyB8IG51bGw7XHJcbiAgY29uZmlkZW50aWFsQWNjZXNzTGV2ZWw6IHN0cmluZyB8IG51bGw7XHJcbiAgY29uZmlkZW50aWFsQWNjZXNzTGV2ZWxOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIGRvTm90RGlzdHVyYjogYm9vbGVhbiB8IG51bGw7XHJcbiAgZG5kT3B0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIGRuZEluY29taW5nQ2FsbEFsZXJ0OiBzdHJpbmcgfCBudWxsO1xyXG4gIGRpc2FibGVTcGVha2VycGhvbmU6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGRpc2FibGVTcGVha2VycGhvbmVBbmRIZWFkc2V0OiBib29sZWFuIHwgbnVsbDtcclxuICBmb3J3YXJkaW5nRGVsYXk6IG51bWJlciB8IG51bGw7XHJcbiAgcGNQb3J0OiBib29sZWFuIHwgbnVsbDtcclxuICBzZXR0aW5nc0FjY2Vzczogc3RyaW5nIHwgbnVsbDtcclxuICBncmF0dWl0b3VzQVJQOiBib29sZWFuIHwgbnVsbDtcclxuICBwY1ZvaWNlVmxhbkFjY2Vzczogc3RyaW5nIHwgbnVsbDtcclxuICB2aWRlb0NhcGFiaWxpdGllczogc3RyaW5nIHwgbnVsbDtcclxuICB3ZWJBY2Nlc3M6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGRheXNEaXNwbGF5Tm90QWN0aXZlOiBudW1iZXIgfCBudWxsO1xyXG4gIGRpc3BsYXlPblRpbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgZGlzcGxheU9uRHVyYXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgZGlzcGxheUlkbGVUaW1lb3V0OiBudW1iZXIgfCBudWxsO1xyXG4gIHdpcmVsZXNzSGVhZHNldEhvb2tzd2l0Y2hDb250cm9sOiBib29sZWFuIHwgbnVsbDtcclxuICBtaW5SaW5nVm9sdW1lOiBudW1iZXIgfCBudWxsO1xyXG4gIHNob3dBbGxDYWxsc09uUEw6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGxpbmVNb2RlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGxhdGVudENhcGFiaWxpdHlSZWdpc3RyYXRpb246IGJvb2xlYW4gfCBudWxsO1xyXG4gIGFjdGlvbmFibGVBbGVydDogYm9vbGVhbiB8IG51bGw7XHJcbiAgcmV2ZXJ0VG9BbGxDYWxsczogYm9vbGVhbiB8IG51bGw7XHJcbiAgd2lkZWJhbmRIZWFkc2V0VUlDb250cm9sOiBib29sZWFuIHwgbnVsbDtcclxuICB3aWRlYmFuZEhlYWRzZXQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGF1dGhlbnRpY2F0aW9uODAyOiBib29sZWFuIHwgbnVsbDtcclxuICBzcGFuVG9QY1BvcnQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGhlYWRzZXRNb25pdG9yOiBib29sZWFuIHwgbnVsbDtcclxuICBoZWFkc2V0UmVjb3JkaW5nOiBib29sZWFuIHwgbnVsbDtcclxuICB1cGRhdGVkRmllbGRzOiBzdHJpbmdbXTtcclxuICBlbmFibGVDZHBTd1BvcnQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGVuYWJsZUNkcFBjUG9ydDogYm9vbGVhbiB8IG51bGw7XHJcbiAgZW5hYmxlTGxkcFBjUG9ydDogYm9vbGVhbiB8IG51bGw7XHJcbiAgZGVmYXVsdFdhbGxwYXBlckZpbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgYW5hbG9nR2F0ZXdheVBvcnRJbmZvcm1hdGlvbjogc3RyaW5nIHwgbnVsbDtcclxuICBsb2FkU2VydmVyOiBzdHJpbmcgfCBudWxsO1xyXG4gIHBlZXJGaXJtd2FyZVNoYXJpbmc6IHN0cmluZyB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGluZUludGVyZmFjZSB7XHJcbiAgZGlyZWN0b3J5TnVtYmVyOiBEaXJlY3RvcnlOdW1iZXI7XHJcbiAgY2FsbGluZ1NlYXJjaFNwYWNlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIGxvY2FsSWQ6IHN0cmluZztcclxuICBlbnRpdHlDaGFuZ2VUeXBlOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFsZXJ0aW5nTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBhc2NpaUFsZXJ0aW5nTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBjYWxsRm9yd2FyZEFsbDogQ2FsbEZvcndhcmQ7XHJcbiAgY2FsbEZvcndhcmRBbGxTZWNvbmRhcnlDU1M6IENhbGxGb3J3YXJkO1xyXG4gIGNhbGxGb3J3YXJkQnVzeUludGVybmFsOiBDYWxsRm9yd2FyZDtcclxuICBjYWxsRm9yd2FyZEJ1c3lFeHRlcm5hbDogQ2FsbEZvcndhcmQ7XHJcbiAgY2FsbEZvcndhcmROb0Fuc3dlckludGVybmFsOiBDYWxsRm9yd2FyZDtcclxuICBjYWxsRm9yd2FyZE5vQW5zd2VyRXh0ZXJuYWw6IENhbGxGb3J3YXJkO1xyXG4gIGNhbGxGb3J3YXJkTm9Db3ZlcmFnZUludGVybmFsOiBDYWxsRm9yd2FyZDtcclxuICBjYWxsRm9yd2FyZE5vQ292ZXJhZ2VFeHRlcm5hbDogQ2FsbEZvcndhcmQ7XHJcbiAgY2FsbEZvcndhcmRPbkNUSUZhaWx1cmU6IENhbGxGb3J3YXJkO1xyXG4gIGNhbGxGb3J3YXJkVW5yZWdpc3RlcmVkSW50ZXJuYWw6IENhbGxGb3J3YXJkO1xyXG4gIGNhbGxGb3J3YXJkVW5yZWdpc3RlcmVkRXh0ZXJuYWw6IENhbGxGb3J3YXJkO1xyXG4gIHZvaWNlTWFpbFByb2ZpbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgbm9BbnN3ZXJSaW5nRHVyYXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgYXV0b0Fuc3dlcjogc3RyaW5nIHwgbnVsbDtcclxuICBjYWxsUGlja3VwR3JvdXA6IHN0cmluZyB8IG51bGw7XHJcbiAgYWFyU2V0dGluZ3M6IEFhclNldHRpbmdzO1xyXG4gIHBhcmtNb25pdG9yaW5nSW50ZXJuYWw6IHN0cmluZyB8IG51bGw7XHJcbiAgcGFya01vbml0b3JpbmdFeHRlcm5hbDogc3RyaW5nIHwgbnVsbDtcclxuICB1cmdlbnRQcmlvcml0eTogc3RyaW5nIHwgbnVsbDtcclxuICBibGZQcmVzZW5jZUdyb3VwOiBzdHJpbmcgfCBudWxsO1xyXG4gIHVzZXJIb2xkTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcclxuICB1c2VySG9sZE1PSEF1ZGlvU291cmNlTmFtZTogc3RyaW5nIHwgbnVsbDtcclxuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VJZDogc3RyaW5nIHwgbnVsbDtcclxuICBuZXR3b3JrTU9IQXVkaW9Tb3VyY2VOYW1lOiBzdHJpbmcgfCBudWxsO1xyXG4gIHJlamVjdEFub255bW91c0NhbGw6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGVudGVycHJpc2VBbHROdW06IHN0cmluZyB8IG51bGw7XHJcbiAgZTE2NEFsdE51bTogc3RyaW5nIHwgbnVsbDtcclxuICBkaXJlY3RvcnlVcmlzOiBzdHJpbmdbXTtcclxuICBjYWxsRm9yd2FyZEFsdGVybmF0ZVBhcnR5OiBDYWxsRm9yd2FyZDtcclxuICBtbHBwTm9BbnN3ZXJSaW5nRHVyYXRpb246IG51bWJlciB8IG51bGw7XHJcbiAgY29uZmlkZW50aWFsQWNjZXNzTW9kZTogc3RyaW5nIHwgbnVsbDtcclxuICBjb25maWRlbnRpYWxBY2Nlc3NMZXZlbDogc3RyaW5nIHwgbnVsbDtcclxuICBjb25maWRlbnRpYWxBY2Nlc3NMZXZlbE5hbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgY2FsbENvbnRyb2xBZ2VudFByb2ZpbGU6IHN0cmluZyB8IG51bGw7XHJcbiAgaG9sZFJldmVyc2lvblJpbmdEdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcclxuICBob2xkUmV2ZXJzaW9uTm90aWZpY2F0aW9uSW50ZXJ2YWw6IG51bWJlciB8IG51bGw7XHJcbiAgcGFydHlFbnRyYW5jZVRvbmU6IHN0cmluZyB8IG51bGw7XHJcbiAgcHN0bkZhaWxvdmVyOiBzdHJpbmcgfCBudWxsO1xyXG4gIG5ld1RvVXNlcjogYm9vbGVhbiB8IG51bGw7XHJcbiAgZGlkUGF0dGVybnM6IHN0cmluZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGxGb3J3YXJkIHtcclxuICBmb3J3YXJkVG9Wb2ljZU1haWw6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGRlc3RpbmF0aW9uOiBzdHJpbmcgfCBudWxsO1xyXG4gIGNhbGxpbmdTZWFyY2hTcGFjZTogc3RyaW5nIHwgbnVsbDtcclxuICBkdXJhdGlvbjogbnVtYmVyIHwgbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBYXJTZXR0aW5ncyB7XHJcbiAgYWFyRGVzdGluYXRpb25NYXNrOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFhckdyb3VwOiBzdHJpbmcgfCBudWxsO1xyXG4gIGFhclZvaWNlTWFpbEVuYWJsZWQ6IGJvb2xlYW4gfCBudWxsO1xyXG4gIGFhcktlZXBDYWxsSGlzdG9yeTogYm9vbGVhbiB8IG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlUHJvZmlsZSB7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZSB7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXNlclRlbXBsYXRlVWRwRGV2aWNlVHlwZXNSdWxlIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG9yaWdpbmFsRGV2aWNlVHlwZTogc3RyaW5nO1xyXG4gIHByb3RvY29sOiBzdHJpbmc7XHJcbiAgbmV3RGV2aWNlVHlwZTogc3RyaW5nO1xyXG4gIG9yaWdpbk5ld0RldmljZVR5cGU6IHN0cmluZztcclxuICBlbnRpdHlDaGFuZ2VUeXBlOiBzdHJpbmc7XHJcbiAgbmV3UHJvdG9jb2w6IHN0cmluZztcclxuICBpc1RlbXBsYXRlUnVsZTogYm9vbGVhbjtcclxuICBsb2NhbElkOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2hhcmVkRGV2aWNlIHtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGFyZWRVc2VyIHtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlIHtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTcGVlZERpYWwge1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEJ1c3lMYW1wRmllbGQge1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBEblJhbmdlVHlwZSB7XHJcbiAgZXh0ZW5zaW9uID0gJ0VYVEVOU0lPTicsXHJcbiAgY3BnID0gJ0NQRycsXHJcbiAgY2FsbHBhcmsgPSAnQ0FMTFBBUksnLFxyXG4gIGh1bnRncm91cCA9ICdIVU5UR1JPVVAnLFxyXG4gIG1lZXRtZSA9ICdNRUVUTUUnLFxyXG4gIGRpZCA9ICdESUQnXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRG5SYW5nZUludGVyZmFjZSB7XHJcbiAgZnJvbTogc3RyaW5nO1xyXG4gIHRvOiBzdHJpbmc7XHJcbiAgcHJlZml4OiBzdHJpbmc7XHJcbiAgcm91dGVQYXJ0aXRpb246IHN0cmluZztcclxuICBkblR5cGU6IERuUmFuZ2VUeXBlO1xyXG4gIHRlbXBJZHg6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdmFpbGFibGVQaG9uZU51bWJlclJhbmdlSW50ZXJmYWNlIHtcclxuICBwaG9uZU51bWJlclJhbmdlOiBEblJhbmdlSW50ZXJmYWNlO1xyXG4gIHVzZWROdW1iZXJzOiBzdHJpbmdbXTtcclxuICByZXF1ZXN0ZWROdW1iZXI6IHN0cmluZztcclxuICB1blVzZWROdW1iZXJzV2l0aERpZHM6IGFueVtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEF2YWlsYWJsZVJhbmdlSW50ZXJmYWNlIHtcclxuICBhdmFpbGFibGVOdW1iZXJMaXN0OiBBdmFpbGFibGVQaG9uZU51bWJlclJhbmdlSW50ZXJmYWNlW107XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIFVzZXJWaWV3VHlwZSB7XHJcbiAgZGV0YWlscyA9IDAsXHJcbiAgZGV2aWNlcyA9IDEsXHJcbiAgbGluZXMgPSAyLFxyXG4gIHNuciA9IDMsXHJcbiAgZmVhdHVyZXMgPSA0LFxyXG4gIG92ZXJ2aWV3ID0gNVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExpc3RVc2VySW50ZXJmYWNlIHtcclxuICB1c2VyaWQ6IHN0cmluZztcclxuICBmaXJzdE5hbWU/OiBzdHJpbmc7XHJcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgdGVsZXBob25lTnVtYmVyPzogc3RyaW5nO1xyXG4gIHZpZXdNb2RlPzogVXNlclZpZXdUeXBlO1xyXG4gIGRldmljZXM6IERldmljZUludGVyZmFjZVtdO1xyXG4gIGRldmljZVByb2ZpbGVzOiBEZXZpY2VJbnRlcmZhY2VbXTtcclxuICBsaW5lcz86IExpbmVJbnRlcmZhY2VbXTtcclxuICBzaXRlSWQ/OiBudW1iZXI7XHJcbiAgc2l0ZU5hbWU/OiBzdHJpbmc7XHJcbiAgY2hlY2tlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGRhcFVzZXJzVGFibGVSZXNwb25zZSB7XHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBwYWdlRGF0YTogTGlzdFVzZXJJbnRlcmZhY2VbXTtcclxufVxyXG5cclxuLy8gZXhwb3J0IGNsYXNzIEV4dGVuc2lvbk1vYmlsaXR5IGltcGxlbWVudHMgRXh0ZW5zaW9uTW9iaWxpdHlJbnRlcmZhY2Uge1xyXG4vLyAgIGRldmljZVR5cGU6IHN0cmluZyA9ICcnO1xyXG4vLyAgIGRldmljZVByb2ZpbGVOYW1lOiBzdHJpbmcgPSAnJztcclxuLy8gICBidXR0b25UZW1wbGF0ZTogc3RyaW5nID0gJyc7XHJcbi8vICAgc2VydmljZXM6IHN0cmluZ1tdID0gW107XHJcbi8vICAgcHJvdG9jb2w6IHN0cmluZyA9ICcnO1xyXG4vLyAgIHVzZXJMb2NhbGU6IHN0cmluZyA9ICcnO1xyXG4vLyAgIGxpbmVBc3NvY2lhdGlvbnM6IExpbmVBc3NvY2lhdGlvbltdID0gW107XHJcbi8vICAgc3BlZWREaWFsczogU3BlZWREaWFsW10gPSBbXTtcclxuXHJcbi8vICAgY29uc3RydWN0b3IoZXh0ZW5zaW9uTW9iaWxpdHk6IEV4dGVuc2lvbk1vYmlsaXR5SW50ZXJmYWNlKSB7XHJcbi8vICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGV4dGVuc2lvbk1vYmlsaXR5IHx8IHt9KTtcclxuLy8gICB9XHJcblxyXG4vLyAgIGdldFNhdmFibGVEYXRhKCkge1xyXG4vLyAgICAgcmV0dXJuIGdldFNhdmFibGVEYXRhKHRoaXMpO1xyXG4vLyAgIH1cclxuXHJcbi8vIH1cclxuLy8gZXhwb3J0IGNsYXNzIEV4dGVuc2lvbk1vYmlsaXR5SW50ZXJmYWNlIHtcclxuLy8gICBkZXZpY2VUeXBlPzogc3RyaW5nO1xyXG4vLyAgIGRldmljZVByb2ZpbGVOYW1lPzogc3RyaW5nO1xyXG4vLyAgIGJ1dHRvblRlbXBsYXRlPzogc3RyaW5nO1xyXG4vLyAgIHNlcnZpY2VzPzogc3RyaW5nW107XHJcbi8vICAgcHJvdG9jb2w/OiBzdHJpbmc7XHJcbi8vICAgdXNlckxvY2FsZT86IHN0cmluZztcclxuLy8gICBsaW5lQXNzb2NpYXRpb25zOiBMaW5lQXNzb2NpYXRpb25bXSA9IFtdO1xyXG4vLyAgIHNwZWVkRGlhbHM6IFNwZWVkRGlhbFtdID0gW107XHJcblxyXG4vLyAgIGNvbnN0cnVjdG9yKGV4dGVuc2lvbk1vYmlsaXR5OiBFeHRlbnNpb25Nb2JpbGl0eUludGVyZmFjZSkge1xyXG4vLyAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBleHRlbnNpb25Nb2JpbGl0eSB8fCB7fSk7XHJcbi8vICAgICAgIHRoaXMuc3BlZWREaWFscy5tYXAoZGlhbCA9PiBuZXcgU3BlZWREaWFsKGRpYWwsIGZhbHNlKSk7XHJcbi8vICAgfVxyXG5cclxuLy8gICBnZXRTYXZhYmxlRGF0YSgpIHtcclxuLy8gICAgIHJldHVybiBnZXRTYXZhYmxlRGF0YSh0aGlzKTtcclxuLy8gICB9XHJcblxyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIFNpbmdsZU51bWJlclJlYWNoSW50ZXJmYWNlIHtcclxuLy8gICByZW1vdGVEZXN0aW5hdGlvblByb2ZpbGVOYW1lOiBzdHJpbmc7XHJcbi8vICAgcmVtb3RlRGVzdGluYXRpb25zPzogUmVtb3RlRGVzdGluYXRpb25JbnRlcmZhY2VbXTtcclxuLy8gICBkZXZpY2VQb29sPzogc3RyaW5nO1xyXG4vLyAgIGNzcz86IHN0cmluZztcclxuLy8gICByZXJvdXRlQ3NzPzogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIFJlbW90ZURlc3RpbmF0aW9uSW50ZXJmYWNlIHtcclxuLy8gICBuYW1lOiBzdHJpbmc7XHJcbi8vICAgZGVzdGluYXRpb246IHN0cmluZztcclxuLy8gICBhbnN3ZXJUb29Tb29uVGltZXI6IG51bWJlcjtcclxuLy8gICBhbnN3ZXJUb29MYXRlVGltZXI6IG51bWJlcjtcclxuLy8gICBkZWxheUJlZm9yZVJpbmdpbmdDZWxsOiBudW1iZXI7XHJcbi8vICAgbGluZUFzc29jaWF0aW9uczogTGluZURpcmVjdG9yeUludGVyZmFjZVtdO1xyXG4vLyAgIHNuclZvaWNlbWFpbFBvbGljeT86IHN0cmluZztcclxuLy8gICBlbmFibGVNb3ZlVG9Nb2JpbGU/OiBib29sZWFuO1xyXG4vLyAgIHJpbmdTY2hlZHVsZT86IFJpbmdTY2hlZHVsZUludGVyZmFjZTtcclxuLy8gICB0b2RFcnJvcj86IGJvb2xlYW47XHJcbi8vICAgZW5hYmxlU2luZ2xlTnVtYmVyUmVhY2g/OiBib29sZWFuO1xyXG4vLyB9XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIFNpbmdsZU51bWJlclJlYWNoSW50ZXJmYWNlIHtcclxuLy8gICByZW1vdGVEZXN0aW5hdGlvblByb2ZpbGVOYW1lOiBzdHJpbmc7XHJcbi8vICAgcmVtb3RlRGVzdGluYXRpb25zPzogUmVtb3RlRGVzdGluYXRpb25JbnRlcmZhY2VbXTtcclxuLy8gICBkZXZpY2VQb29sPzogc3RyaW5nO1xyXG4vLyAgIGNzcz86IHN0cmluZztcclxuLy8gICByZXJvdXRlQ3NzPzogc3RyaW5nO1xyXG4vLyB9XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFZvaWNlbWFpbCBpbXBsZW1lbnRzIFBhcnRpYWw8Vm9pY2VtYWlsSW50ZXJmYWNlPiB7XHJcbiAgY2FsbEhhbmRsZXJPYmplY3RJZD86IHN0cmluZztcclxuICBleHRlbnNpb246IHN0cmluZyA9ICcnO1xyXG4gIHZtVXNlclRlbXBsYXRlOiBzdHJpbmcgPSAnJztcclxuICBlbWFpbEFkZHJlc3M6IHN0cmluZyA9ICcnO1xyXG4gIHZtUGFzc3dvcmQ/OiBhbnk7XHJcbiAgdm1NYWlsYm94PzogYW55O1xyXG4gIHZtVW5pZmllZE1lc3NhZ2luZ0FjY291bnQ/OiBhbnlbXTtcclxuICBub3RpZmljYXRpb25EZXZpY2VzPzogYW55W107XHJcbiAgYWx0ZXJuYXRlRXh0ZW5zaW9ucz86IGFueVtdO1xyXG4gIGxhbmd1YWdlPzogYW55O1xyXG4gIG1lc3NhZ2VBY3Rpb25zPzogYW55O1xyXG4gIGNhbGxlcklucHV0PzogYW55O1xyXG4gIHdlYkFwcFBhc3N3b3JkU2V0dGluZ3M/OiBhbnk7XHJcbiAgdm1QYXNzd29yZFNldHRpbmdzPzogYW55O1xyXG4gIGdyZWV0aW5nczogYW55W10gPSBbXTtcclxuICBwa2lkPzogc3RyaW5nO1xyXG4gIHBpbjogc3RyaW5nID0gJyc7XHJcbiAgLy8gbm9uLXNhdmFibGUgZGF0YVxyXG4gIGNoYW5nZUV4dGVuc2lvbkJ5TmV3TGluZTogbnVtYmVyID0gMDtcclxuXHJcbiAgY29uc3RydWN0b3Iodm0/OiBWb2ljZW1haWxJbnRlcmZhY2UpIHtcclxuICAgIGlmICh2bSAmJiB2bS5leHRlbnNpb24pIHtcclxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCB2bSk7XHJcbiAgICAgIGlmICh0aGlzLmV4dGVuc2lvbiAmJiB0aGlzLmV4dGVuc2lvbi5zdGFydHNXaXRoKCcrJykpIHtcclxuICAgICAgICB0aGlzLmV4dGVuc2lvbiA9ICdcXFxcJyArIHRoaXMuZXh0ZW5zaW9uO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmV4dGVuc2lvbikge1xyXG4gICAgICAgIC8vIHRoaXMubm90aWZpY2F0aW9uRGV2aWNlcyA9IHRoaXMuaW5pdERldmljZXMoKTtcclxuICAgICAgICAvLyB0aGlzLmdyZWV0aW5ncyA9ICF0aGlzLmdyZWV0aW5ncyA/IFtdIDogdGhpcy5ncmVldGluZ3MubWFwKGdyZWV0aW5ncyA9PiBuZXcgR3JlZXRpbmdEZXRhaWwoZ3JlZXRpbmdzKSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZXh0ZW5zaW9uID0gJyc7XHJcbiAgICAgIHRoaXMudm1Vc2VyVGVtcGxhdGUgPSAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFNhdmFibGVEYXRhKCkge1xyXG4gICAgY29uc3Qgbm9uU2F2YWJsZURhdGEgPSBbJ3ZtTWFpbGJveCcsICdub3RpZmljYXRpb25EZXZpY2VzJywgJ2NoYW5nZUV4dGVuc2lvbkJ5TmV3TGluZSddO1xyXG4gICAgcmV0dXJuIGdldFNhdmFibGVEYXRhKHRoaXMsIG5vblNhdmFibGVEYXRhKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVm9pY2VtYWlsSW50ZXJmYWNlIHtcclxuICBjYWxsSGFuZGxlck9iamVjdElkPzogc3RyaW5nO1xyXG4gIGV4dGVuc2lvbjogc3RyaW5nO1xyXG4gIHZtVXNlclRlbXBsYXRlPzogc3RyaW5nO1xyXG4gIHZtUGFzc3dvcmQ/OiBhbnk7XHJcbiAgdm1NYWlsYm94PzogYW55O1xyXG4gIHZtVW5pZmllZE1lc3NhZ2luZ0FjY291bnQ/OiBhbnlbXTtcclxuICBub3RpZmljYXRpb25EZXZpY2VzPzogYW55W107XHJcbiAgYWx0ZXJuYXRlRXh0ZW5zaW9ucz86IGFueVtdO1xyXG4gIGxhbmd1YWdlPzogYW55O1xyXG4gIG1lc3NhZ2VBY3Rpb25zPzogYW55O1xyXG4gIHdlYkFwcFBhc3N3b3JkPzogYW55O1xyXG4gIHZtUGFzc3dvcmRTZXR0aW5ncz86IGFueTtcclxuICBwa2lkPzogc3RyaW5nO1xyXG59Il19
@@ -0,0 +1,38 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../../shared/services/notification.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/material/button";
6
+ import * as i4 from "../../pipes/truncate.pipe";
7
+ export class NotificationsComponent {
8
+ constructor(notificationService, ref) {
9
+ this.notificationService = notificationService;
10
+ this.ref = ref;
11
+ }
12
+ ngOnInit() {
13
+ this.listChangeSubscribe();
14
+ }
15
+ ngOnDestroy() {
16
+ this.listSubscription.unsubscribe();
17
+ }
18
+ readMore() {
19
+ this.isReadMore = !this.isReadMore;
20
+ }
21
+ removeNotification(notification) {
22
+ this.notificationService.remove(notification);
23
+ }
24
+ listChangeSubscribe() {
25
+ this.listSubscription = this.notificationService.listChange
26
+ .subscribe((list) => {
27
+ this.list = list;
28
+ this.ref.detectChanges();
29
+ });
30
+ }
31
+ }
32
+ NotificationsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationsComponent, deps: [{ token: i1.NotificationService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
33
+ NotificationsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: NotificationsComponent, selector: "app-notification", ngImport: i0, template: "\r\n\r\n<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\r\n <div class=\"notification\"\r\n *ngFor=\"let notification of list\"\r\n [ngClass]=\"{'error': notification.isError(), 'success': notification.isSuccess()}\">\r\n\r\n <div class=\"flex-box\">\r\n <div class=\"notification-icons-block\">\r\n <i *ngIf=\"notification.isError()\" class=\"fa fa-exclamation-triangle\"></i>\r\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\r\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\r\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\r\n </div>\r\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\r\n {{notification.message | truncate:[93]}}\r\n </div>\r\n <div *ngIf=\"isReadMore\" class=\"message-block\">\r\n {{notification.message}}\r\n </div>\r\n </div>\r\n <div class=\"read-more-error link clickable\" *ngIf=\"notification.message && notification.message.length > 93\"\r\n (click)=\"readMore()\">{{(isReadMore ? 'Collapse' : 'Read More')}}</div>\r\n <button\r\n class=\"close\"\r\n mat-icon-button\r\n (click)=\"removeNotification(notification)\">\r\n <img class=\"notification-icon-close\" src=\"assets/icons/close_icon_modal.svg\" alt=\"\">\r\n </button>\r\n </div>\r\n</div>\r\n\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.notification-block{right:10px;top:80px;position:absolute;z-index:100}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{padding:15px 0 10px 10px;margin-bottom:18px;color:#333;border-radius:3px;border-top:1.5px solid #e5e1cd;background:#fcf8e3;box-shadow:0 8px 12px #091e4226,0 0 1px #091e424f;width:368px;position:relative}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,Poppins,sans-serif!important;word-break:break-word;width:270px}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#FFE9E9;border-top:1.5px solid #E16D6D}.notification-block .notification.success{background:#e3f4dc;border-top:1.5px solid #b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:2px;right:-5px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{width:50%;min-width:150px}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i4.TruncatePipe, name: "truncate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NotificationsComponent, decorators: [{
35
+ type: Component,
36
+ args: [{ selector: 'app-notification', changeDetection: ChangeDetectionStrategy.OnPush, template: "\r\n\r\n<div class=\"notification-block\" role=\"alert\" aria-live=\"assertive\">\r\n <div class=\"notification\"\r\n *ngFor=\"let notification of list\"\r\n [ngClass]=\"{'error': notification.isError(), 'success': notification.isSuccess()}\">\r\n\r\n <div class=\"flex-box\">\r\n <div class=\"notification-icons-block\">\r\n <i *ngIf=\"notification.isError()\" class=\"fa fa-exclamation-triangle\"></i>\r\n <i *ngIf=\"notification.isWarning()\" class=\"fa fa-hand-paper-o\"></i>\r\n <i *ngIf=\"notification.isSuccess()\" class=\"fa fa-check\"></i>\r\n <i *ngIf=\"notification.isInfo()\" class=\"fa fa-info-circle\"></i>\r\n </div>\r\n <div *ngIf=\"!isReadMore\" class=\"message-block\">\r\n {{notification.message | truncate:[93]}}\r\n </div>\r\n <div *ngIf=\"isReadMore\" class=\"message-block\">\r\n {{notification.message}}\r\n </div>\r\n </div>\r\n <div class=\"read-more-error link clickable\" *ngIf=\"notification.message && notification.message.length > 93\"\r\n (click)=\"readMore()\">{{(isReadMore ? 'Collapse' : 'Read More')}}</div>\r\n <button\r\n class=\"close\"\r\n mat-icon-button\r\n (click)=\"removeNotification(notification)\">\r\n <img class=\"notification-icon-close\" src=\"assets/icons/close_icon_modal.svg\" alt=\"\">\r\n </button>\r\n </div>\r\n</div>\r\n\r\n", styles: ["@import\"https://fonts.googleapis.com/css?family=Poppins:400,100,200,300,500,600,800,700,900\";@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.notification-block{right:10px;top:80px;position:absolute;z-index:100}.notification-block .read-more-error{margin:10px 13px 3px 0;text-align:right}.notification-block .notification{padding:15px 0 10px 10px;margin-bottom:18px;color:#333;border-radius:3px;border-top:1.5px solid #e5e1cd;background:#fcf8e3;box-shadow:0 8px 12px #091e4226,0 0 1px #091e424f;width:368px;position:relative}.notification-block .notification .message-block{font-size:14px;font-family:Poppins,Poppins,sans-serif!important;word-break:break-word;width:270px}.notification-block .notification .notification-icon-close{height:24px}.notification-block .notification.error{background:#FFE9E9;border-top:1.5px solid #E16D6D}.notification-block .notification.success{background:#e3f4dc;border-top:1.5px solid #b3d692}.notification-block .notification .fa-exclamation-triangle{color:#e16d6d!important}.notification-block .notification .fa-check{color:#a0c37f!important}.notification-block .notification .fa-info-circle,.notification-block .notification .fa-hand-paper-o{color:#bdb89e!important}.notification-block .notification .fa{font-size:20px}.notification-block .notification .close{position:absolute;top:2px;right:-5px}.notification-block .notification .close .fa{font-size:14px}.notification-block .notification .fa{margin:0;color:inherit}@media screen and (max-width: 600px){.notification-block{width:50%;min-width:150px}}\n"] }]
37
+ }], ctorParameters: function () { return [{ type: i1.NotificationService }, { type: i0.ChangeDetectorRef }]; } });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy9zaGFyZWQvY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBV3pHLE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFDUyxtQkFBd0MsRUFDdkMsR0FBc0I7UUFEdkIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN2QyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtJQUVoQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFlBQTBCO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVU7YUFDeEQsU0FBUyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O29IQWpDVSxzQkFBc0I7d0dBQXRCLHNCQUFzQix3RENYbkMsczRDQWdDQTs0RkRyQmEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNFLGtCQUFrQixtQkFHWCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9ub3RpZmljYXRpb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbm90aWZpY2F0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwdWJsaWMgbGlzdCE6IE5vdGlmaWNhdGlvbltdO1xyXG4gIHB1YmxpYyBpc1JlYWRNb3JlITogYm9vbGVhbjtcclxuICBwcml2YXRlIGxpc3RTdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5saXN0Q2hhbmdlU3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubGlzdFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlYWRNb3JlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc1JlYWRNb3JlID0gIXRoaXMuaXNSZWFkTW9yZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZW1vdmVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uOiBOb3RpZmljYXRpb24pOiB2b2lkIHtcclxuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5yZW1vdmUobm90aWZpY2F0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbGlzdENoYW5nZVN1YnNjcmliZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubGlzdFN1YnNjcmlwdGlvbiA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5saXN0Q2hhbmdlXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxpc3Q6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdCA9IGxpc3Q7XHJcbiAgICAgICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiXHJcblxyXG48ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWJsb2NrXCIgcm9sZT1cImFsZXJ0XCIgYXJpYS1saXZlPVwiYXNzZXJ0aXZlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXHJcbiAgICAgICAqbmdGb3I9XCJsZXQgbm90aWZpY2F0aW9uIG9mIGxpc3RcIlxyXG4gICAgICAgW25nQ2xhc3NdPVwieydlcnJvcic6IG5vdGlmaWNhdGlvbi5pc0Vycm9yKCksICdzdWNjZXNzJzogbm90aWZpY2F0aW9uLmlzU3VjY2VzcygpfVwiPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LWJveFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibm90aWZpY2F0aW9uLWljb25zLWJsb2NrXCI+XHJcbiAgICAgICAgPGkgKm5nSWY9XCJub3RpZmljYXRpb24uaXNFcnJvcigpXCIgY2xhc3M9XCJmYSBmYS1leGNsYW1hdGlvbi10cmlhbmdsZVwiPjwvaT5cclxuICAgICAgICA8aSAqbmdJZj1cIm5vdGlmaWNhdGlvbi5pc1dhcm5pbmcoKVwiIGNsYXNzPVwiZmEgZmEtaGFuZC1wYXBlci1vXCI+PC9pPlxyXG4gICAgICAgIDxpICpuZ0lmPVwibm90aWZpY2F0aW9uLmlzU3VjY2VzcygpXCIgY2xhc3M9XCJmYSBmYS1jaGVja1wiPjwvaT5cclxuICAgICAgICA8aSAqbmdJZj1cIm5vdGlmaWNhdGlvbi5pc0luZm8oKVwiIGNsYXNzPVwiZmEgZmEtaW5mby1jaXJjbGVcIj48L2k+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWlzUmVhZE1vcmVcIiBjbGFzcz1cIm1lc3NhZ2UtYmxvY2tcIj5cclxuICAgICAgICB7e25vdGlmaWNhdGlvbi5tZXNzYWdlIHwgdHJ1bmNhdGU6WzkzXX19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiaXNSZWFkTW9yZVwiIGNsYXNzPVwibWVzc2FnZS1ibG9ja1wiPlxyXG4gICAgICAgIHt7bm90aWZpY2F0aW9uLm1lc3NhZ2V9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJlYWQtbW9yZS1lcnJvciBsaW5rIGNsaWNrYWJsZVwiICpuZ0lmPVwibm90aWZpY2F0aW9uLm1lc3NhZ2UgJiYgbm90aWZpY2F0aW9uLm1lc3NhZ2UubGVuZ3RoID4gOTNcIlxyXG4gICAgICAgICAoY2xpY2spPVwicmVhZE1vcmUoKVwiPnt7KGlzUmVhZE1vcmUgPyAnQ29sbGFwc2UnIDogJ1JlYWQgTW9yZScpfX08L2Rpdj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJjbG9zZVwiXHJcbiAgICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgICAoY2xpY2spPVwicmVtb3ZlTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbilcIj5cclxuICAgICAgPGltZyBjbGFzcz1cIm5vdGlmaWNhdGlvbi1pY29uLWNsb3NlXCIgc3JjPVwiYXNzZXRzL2ljb25zL2Nsb3NlX2ljb25fbW9kYWwuc3ZnXCIgYWx0PVwiXCI+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG4iXX0=