tango-app-ui-store-builder 1.2.4 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/esm2022/lib/components/custom-select/custom-select.component.mjs +14 -5
  2. package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +15 -8
  3. package/esm2022/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.mjs +7 -2
  4. package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +173 -22
  5. package/esm2022/lib/components/plano-tools/cad-files/cad-files.component.mjs +88 -0
  6. package/esm2022/lib/components/plano-tools/move-bucket/move-bucket.component.mjs +239 -0
  7. package/esm2022/lib/components/plano-tools/plano-migrate/plano-migrate.component.mjs +3 -3
  8. package/esm2022/lib/components/plano-tools/swap-template/swap-template.component.mjs +325 -0
  9. package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
  10. package/esm2022/lib/components/popups/delete-confirmation/delete-confirmation.component.mjs +10 -3
  11. package/esm2022/lib/services/store-builder.service.mjs +15 -1
  12. package/esm2022/lib/tango-store-builder-routing.module.mjs +16 -1
  13. package/esm2022/lib/tango-store-builder.module.mjs +10 -1
  14. package/fesm2022/tango-app-ui-store-builder.mjs +873 -40
  15. package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
  16. package/lib/components/custom-select/custom-select.component.d.ts +5 -2
  17. package/lib/components/manage-plano/rollout-table/rollout-table.component.d.ts +4 -4
  18. package/lib/components/manage-plano/verification-table/verification-table.component.d.ts +5 -5
  19. package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +1 -0
  20. package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +11 -1
  21. package/lib/components/plano-tools/cad-files/cad-files.component.d.ts +30 -0
  22. package/lib/components/plano-tools/move-bucket/move-bucket.component.d.ts +64 -0
  23. package/lib/components/plano-tools/swap-template/swap-template.component.d.ts +83 -0
  24. package/lib/components/popups/delete-confirmation/delete-confirmation.component.d.ts +3 -1
  25. package/lib/services/store-builder.service.d.ts +16 -0
  26. package/lib/tango-store-builder.module.d.ts +56 -53
  27. package/package.json +1 -1
@@ -582,9 +582,23 @@ export class StoreBuilderService {
582
582
  deleteTaskForStores(data) {
583
583
  return this.http.post(`${this.storeBuilderApiUrl}/task/deleteTaskForStores`, data);
584
584
  }
585
+ getFloorsWithStatus(storeName, clientId) {
586
+ return this.http.get(`${this.storeBuilderApiUrl}/task/getFloorsWithStatus`, { params: { storeName, clientId } });
587
+ }
588
+ moveStoreBucket(data) {
589
+ return this.http.post(`${this.storeBuilderApiUrl}/task/moveStoreBucket`, data);
590
+ }
591
+ swapFixtureTemplate(data) {
592
+ return this.http.post(`${this.storeBuilderApiUrl}/script/swapFixtureTemplate`, data);
593
+ }
585
594
  getPlanoDataSchema() {
586
595
  return this.http.get(`${this.storeBuilderApiUrl}/getPlanoDataSchema`);
587
596
  }
597
+ getCadFiles(storeName) {
598
+ return this.http.get(`${this.storeBuilderApiUrl}/onboardPlano/cadFiles`, {
599
+ params: { storeName },
600
+ });
601
+ }
588
602
  runPlanoDataQuery(data) {
589
603
  return this.http.post(`${this.storeBuilderApiUrl}/runPlanoDataQuery`, data);
590
604
  }
@@ -601,4 +615,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
601
615
  providedIn: "root",
602
616
  }]
603
617
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
604
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7OztBQUU3QixNQUFNLFVBQVUsR0FDZCxpRkFBaUYsQ0FBQztBQUNwRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLG1CQUFtQjtJQVdwQjtJQUNBO0lBWFYsV0FBVyxDQUFTO0lBQ3BCLGtCQUFrQixDQUFTO0lBQzNCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFFdEIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsSUFBZ0IsRUFDaEIsRUFBc0I7UUFEdEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU5QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25FLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFH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QUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDbkIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLDZCQUE2QixFQUN2RCxJQUFJLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCx5QkFBeUIsQ0FBQyxJQUl6QjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQiw0QkFBNEIsRUFDdEQsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQUMsSUFBUztRQUMzQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsMkJBQTJCLEVBQ3JELElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUVELGtCQUFrQjtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixxQkFBcUIsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQVNqQjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDO3dHQS9uQ1UsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSBcImZpbGUtc2F2ZXJcIjtcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tIFwieGxzeFwiO1xyXG5cclxuY29uc3QgRVhDRUxfVFlQRSA9XHJcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04XCI7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9IFwiLnhsc3hcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3JlQnVpbGRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHN0b3JlQXBpVXJsOiBzdHJpbmc7XHJcbiAgc3RvcmVCdWlsZGVyQXBpVXJsOiBzdHJpbmc7XHJcbiAgdHJhZmZpY0FwaVVybDogc3RyaW5nO1xyXG4gIHRpY2tldHNBcGlVcmw6IHN0cmluZztcclxuXHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMuc3RvcmVCdWlsZGVyQXBpVXJsID0gZW52LnN0b3JlQnVpbGRlclVybDtcclxuICAgICAgICB0aGlzLnN0b3JlQXBpVXJsID0gZW52LnN0b3JlQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9IGVudi50cmFmZmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudGlja2V0c0FwaVVybCA9IGVudi50aWNrZXRzQXBpVXJsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7XHJcbiAgICAgIFNoZWV0czogeyBkYXRhOiB3b3Jrc2hlZXQgfSxcclxuICAgICAgU2hlZXROYW1lczogW1wiZGF0YVwiXSxcclxuICAgIH07XHJcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywge1xyXG4gICAgICBib29rVHlwZTogXCJ4bHN4XCIsXHJcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVBc0V4Y2VsRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEUsXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBcImxpc3RcIiArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzVGVtcGxhdGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFLFxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcblxyXG4gIGxheW91dExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlTGF5b3V0TGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3N0b3JlSW5mcmFMaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVMYXlvdXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2NyZWF0ZVN0b3JlTGF5b3V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVBbmRTdWJtaXRMYXlvdXRUYXNrKHN0b3JlTmFtZTogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9jcmVhdGVMYXlvdXRgLCB7XHJcbiAgICAgIHN0b3JlTmFtZTogW3N0b3JlTmFtZV0sXHJcbiAgICAgIGNsaWVudElkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBCdWxrVXBsb2FkKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGxvYWRCdWxrU3RvcmVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUxheW91dGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9EZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUZpeHR1cmVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGbG9vcihkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZGVsZXRlRmxvb3JgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGFkZEZsb29yKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVGbG9vcmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRmxvb3JMYXlvdXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZVN0b3JlTGF5b3V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZURldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlRGV0YWlsc2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkRmlsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBsb2FkRmlsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmlsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcmVtb3ZlRmlsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUGxhbm9TdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZVN0YXR1c2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlTGF5b3V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9kZWxldGVTdG9yZUxheW91dC8ke2RhdGF9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVEZXRhaWxlZERpc3RhbmNlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlRGVhdGFpbGVkRGlzdGFuY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGVydEZpeHR1cmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Vwc2VydEZpeHR1cmVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIC8vIEZpeHR1cmUgTGlicmFyeVxyXG4gIGNyZWF0ZUZpeHR1cmVMaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2NyZWF0ZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVMaWJyYXJ5RGV0YWlscyhpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlRGV0YWlsc2AsXHJcbiAgICAgIHsgcGFyYW1zOiB7IGZpeHR1cmVJZDogaWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVTaXplTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlU2l6ZUxpc3RgLFxyXG4gICAgICB7IHBhcmFtczogeyBjbGllbnRJZDogaWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVMaWJyYXJ5TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUxpYnJhcnlMaXN0VG9FeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZUxpYnJhcnkoZGF0YTogYW55LCBpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBkYXRlRml4dHVyZS8ke2lkfWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlRml4dHVyZUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZHVwbGljYXRlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRml4dHVyZUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZGVsZXRlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYnVsa0FjdGlvbkZpeHR1cmVMaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVCdWxrVXBsb2FkYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTmFtZUxpc3QoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZU5hbWVMaXN0YCxcclxuICAgICAgeyBwYXJhbXM6IHsgY2xpZW50SWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTGliTmFtZUxpc3QoaWQ6IHN0cmluZywgc3RhdHVzPzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlTGliTmFtZUxpc3RgLFxyXG4gICAgICB7IHBhcmFtczogeyBjbGllbnRJZDogaWQsIC4uLihzdGF0dXMgPyB7IHN0YXR1cyB9IDoge30pIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBWTSBMaWJyYXJ5XHJcbiAgZ2V0Vm1MaWJyYXJ5RGV0YWlscyhpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRWbURldGFpbHNgLFxyXG4gICAgICB7XHJcbiAgICAgICAgcGFyYW1zOiB7IHZtSWQ6IGlkIH0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vm1MaWJyYXJ5TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRWbUxpYkxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZtTGlicmFyeUxpc3RUb0V4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRWbUxpYkxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkVXBkYXRlVm1MaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2FkZFVwZGF0ZVZtYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVWbUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZHVwbGljYXRlVm1MaWJgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVZtTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kZWxldGVWbUxpYmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYnVsa0FjdGlvblZtTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS92bUJ1bGtVcGxvYWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZNTmFtZUxpc3QoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS92bU5hbWVMaXN0YCwge1xyXG4gICAgICBwYXJhbXM6IHsgY2xpZW50SWQ6IGlkIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vICBWbVR5cGVzXHJcbiAgZ2V0Vm1UeXBlc0xpc3QoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0Vm1UeXBlTGlzdGAsXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJhbXM6IHsgY2xpZW50SWQ6IGlkIH0sXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbWFuYWdlVm1UeXBlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2FkZFZtVHlwZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkVm1UeXBlSW1hZ2UoZm9ybURhdGE6IGFueSwgaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3VwbG9hZFZtdHlwZUltYWdlLyR7aWR9YCxcclxuICAgICAgZm9ybURhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQnJhbmQgbGlzdFxyXG4gIGdldEJyYW5kTGlzdChpZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0QnJhbmRMaXN0YCxcclxuICAgICAge1xyXG4gICAgICAgIGNsaWVudElkOiBpZCxcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBicmFuZEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRCcmFuZExpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGaXh0dXJlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVGaXh0dXJlc1YyYCwge1xyXG4gICAgICAuLi5kYXRhLFxyXG4gICAgICAvLyBzdGF0dXM6IFtcImNvbXBsZXRlZFwiXSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0T25ib2FyZFN0b3JlRml4dHVyZXMoZGF0YTogYW55KSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlRml4dHVyZXNWMmAsIHtcclxuICAvLyAgICAgLi4uZGF0YSxcclxuICAvLyAgICAgc3RhdHVzOiBbXCJkcmFmdFwiLCBcImFsbG9jYXRpb25QZW5kaW5nXCJdLFxyXG4gIC8vICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBGaXh0dXJlIFRlbXBsYXRlc1xyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZUxpc3RPbGQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZ2V0VGVtcGxhdGVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlVGVtcGxhdGVMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL21hc3RlclRlbXBsYXRlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVDaGlsZExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdGVtcGxhdGVDaGlsZExpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZUxpc3RUb0V4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRUZW1wbGF0ZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlRGV0YWlscyhpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRUZW1wbGF0ZURldGFpbHNgLFxyXG4gICAgICB7IHBhcmFtczogeyB0ZW1wbGF0ZUlkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlRml4dHVyZVRlbXBsYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2NyZWF0ZVRlbXBsYXRlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG4gIHJlcGxhY2VGaXh0dXJlRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9yZXBsYWNlRml4dHVyZURldGFpbHNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVUZW1wbGF0ZShkYXRhOiBhbnksIGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS91cGRhdGVUZW1wbGF0ZS8ke2lkfWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlRml4dHVyZVRlbXBsYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2R1cGxpY2F0ZVRlbXBsYXRlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaXh0dXJlVGVtcGxhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZGVsZXRlVGVtcGxhdGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVTdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVGaXh0dXJlU3RhdHVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVBcHByb3ZhbFN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZUFwcHJvdmFsU3RhdHVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVzZmVlZGJhY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRTdG9yZUZpeHR1cmVzZmVlZGJhY2tgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVN0b3JlUGxhbm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVTdG9yZVBsYW5vYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZlZWRiYWNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0cGxhbm9GZWVkYmFja2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um9sbG91dEZlZWRiYWNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0Um9sbG91dEZlZWRiYWNrdjJgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFpvbmVWZXJpZmljYXRpb25GZWVkYmFjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFpvbmVWZXJpZmljYXRpb25GZWVkYmFja2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlWm9uZVZlcmlmaWNhdGlvblN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVpvbmVWZXJpZmljYXRpb25TdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEhlYWRlcnNMaXN0KHN0b3JlSWQ/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2dldEhlYWRlckxpc3RgLCBcclxuICAgICAgLy8geyAgICAgIHBhcmFtczogeyBzdG9yZUlkOiBzdG9yZUlkID8/IFwiXCIgfSAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UElETGlzdChoZWFkZXI6IHN0cmluZyA9IFwib3RoZXJzXCIpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2dldFBJRExpc3RgLCB7XHJcbiAgICAgIHBhcmFtczogeyBoZWFkZXIgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZUNvbXBsaWFuY2VTdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVGaXh0dXJlU3RhdHVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhZGRVcGRhdGVCcmFuZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9hZGRVcGRhdGVCcmFuZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQnJhbmQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBsb2FkQnJhbmRMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUYXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3VwZGF0ZVRhc2tjb25maWdgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRhc2tDb25maWcoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRUYXNrQ29uZmlnP2NsaWVudElkPSR7ZGF0YX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVN0b3JlRml4dHVyZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVN0b3JlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gU3RvcmVcclxuICBnZXRQbGFub0xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0T25ib2FyZFBsYW5vTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9vbmJvYXJkUGxhbm9MaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0xpc3RFeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlzdGAsIGRhdGEsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldE9uYm9hcmRQbGFub0xpc3RFeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vb25ib2FyZFBsYW5vTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHtcclxuICAgICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0NhcmRzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0NhcmRzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub1JvbGxvdXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub1JvbGxvdXRMaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRSb2xsb3V0TGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9Sb2xsb3V0TGlzdGAsIGRhdGEsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vZ3JhbUxpc3RFeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFBsYW5vZ3JhbUxpc3RgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVUYXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2NyZWF0ZVRhc2tgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUdsb2JhbENvbW1lbnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVHbG9iYWxDb21tZW50YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxUZW1wbGF0ZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZ2V0QWxsVGVtcGxhdGVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG4gIGFzc2lnZWRUZW1wbGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9hc3NpZ2VkVGVtcGxhdGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcbiAgVGVtcGxhdGVTdG9yZXNMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL1RlbXBsYXRlU3RvcmVzTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFza0luZm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2tEZXRhaWxzP3BsYW5vSWQ9JHtkYXRhLnBsYW5vSWR9JmZsb29ySWQ9JHtkYXRhLmZsb29ySWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlVGVtcGxhdGUoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZ2V0VGVtcGxhdGVgLFxyXG4gICAgICB7IHBhcmFtczogeyB0ZW1wbGF0ZUlkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um9sbG91dFRhc2tJbmZvKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRSb2xsb3V0VGFza0RldGFpbHM/cGxhbm9JZD0ke2RhdGEucGxhbm9JZH0mZmxvb3JJZD0ke2RhdGEuZmxvb3JJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJldm9rZVRhc2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svcmV2b2tlVGFza2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUm9sbG91dFN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVJvbGxvdXRTdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlQXNzaWduTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90ZW1wbGF0ZUFzc2lnbkxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlVHJlZUxpc3QocGFyYW1zOiB7XHJcbiAgICBtYXN0ZXJJZD86IHN0cmluZztcclxuICAgIHN0b3JlSWQ/OiBzdHJpbmc7XHJcbiAgICBjbGllbnRJZD86IHN0cmluZztcclxuICAgIHRlbXBsYXRlR3JvdXBOYW1lcz86IHN0cmluZ1tdO1xyXG4gICAgZml4dHVyZU5hbWVzPzogc3RyaW5nW107XHJcbiAgICBzdG9yZU5hbWVzPzogc3RyaW5nW107XHJcbiAgfSkge1xyXG4gICAgbGV0IHF1ZXJ5UGFydHM6IHN0cmluZ1tdID0gW107XHJcbiAgICBpZiAocGFyYW1zLm1hc3RlcklkKSBxdWVyeVBhcnRzLnB1c2goYG1hc3RlcklkPSR7cGFyYW1zLm1hc3RlcklkfWApO1xyXG4gICAgZWxzZSBpZiAocGFyYW1zLnN0b3JlSWQpIHF1ZXJ5UGFydHMucHVzaChgc3RvcmVJZD0ke3BhcmFtcy5zdG9yZUlkfWApO1xyXG4gICAgZWxzZSBpZiAocGFyYW1zLmNsaWVudElkKSBxdWVyeVBhcnRzLnB1c2goYGNsaWVudElkPSR7cGFyYW1zLmNsaWVudElkfWApO1xyXG5cclxuICAgIGlmIChwYXJhbXMudGVtcGxhdGVHcm91cE5hbWVzPy5sZW5ndGgpXHJcbiAgICAgIHF1ZXJ5UGFydHMucHVzaChcclxuICAgICAgICBgdGVtcGxhdGVHcm91cE5hbWVzPSR7cGFyYW1zLnRlbXBsYXRlR3JvdXBOYW1lcy5qb2luKFwiLFwiKX1gLFxyXG4gICAgICApO1xyXG4gICAgaWYgKHBhcmFtcy5maXh0dXJlTmFtZXM/Lmxlbmd0aClcclxuICAgICAgcXVlcnlQYXJ0cy5wdXNoKGBmaXh0dXJlTmFtZXM9JHtwYXJhbXMuZml4dHVyZU5hbWVzLmpvaW4oXCIsXCIpfWApO1xyXG4gICAgaWYgKHBhcmFtcy5zdG9yZU5hbWVzPy5sZW5ndGgpXHJcbiAgICAgIHF1ZXJ5UGFydHMucHVzaChgc3RvcmVOYW1lcz0ke3BhcmFtcy5zdG9yZU5hbWVzLmpvaW4oXCIsXCIpfWApO1xyXG5cclxuICAgIGxldCBxdWVyeVN0cmluZyA9IHF1ZXJ5UGFydHMubGVuZ3RoID8gYD8ke3F1ZXJ5UGFydHMuam9pbihcIiZcIil9YCA6IFwiXCI7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdGVtcGxhdGVUcmVlTGlzdCR7cXVlcnlTdHJpbmd9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUcmVlRmlsdGVyT3B0aW9ucyhjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90cmVlRmlsdGVyT3B0aW9ucz9jbGllbnRJZD0ke2NsaWVudElkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVWZXJzaW9uTGlzdCh0ZW1wbGF0ZUlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RlbXBsYXRlVmVyc2lvbkxpc3Q/dGVtcGxhdGVJZD0ke3RlbXBsYXRlSWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlQWlEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRGaXh0dXJlQUlEZXRhaWxzP2ZpeHR1cmVJZD0ke2RhdGF9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlU2hlbGZEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVNoZWxmRGV0YWlsc3YyYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub2dyYW1MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRQbGFub2dyYW1MaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub2dyYW1Db21wbGlhbmNlRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2NhbGN1bGF0ZUNvbXBsaWFuY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb2R1Y3RNYXBwaW5nKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlUHJvZHVjdE1hcHBpbmdgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENvdW50cmllcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlckNvdW50cnlfdjJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFJlZ2lvbnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJMb2NhdGlvbnNfdjJgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vU3RvcmVWaWRlb1BhcmFtcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFBsYW5vU3RvcmVWaWRlb1BhcmFtc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGlzaChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2NyZWF0ZVJldmlzaW9uYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXZpc2lvbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRSZXZpc2lvbnNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlUGxhbm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRSZXZpc2lvbkRhdGFgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2ZVJldmlzaW9uKGRhdGE6IHtcclxuICAgIHJldmlzaW9uSWQ6IHN0cmluZztcclxuICAgIHBsYW5vSWQ6IHN0cmluZztcclxuICAgIGZsb29ySWQ6IHN0cmluZztcclxuICAgIHNlbmRWZXJpZmljYXRpb25UYXNrOiBib29sZWFuO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3NldEFjdGl2ZVJldmlzaW9uYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSZXZpc2lvbk5hbWUoZGF0YTogeyByZXZpc2lvbklkOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVSZXZpc2lvbk5hbWVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFNoZWxmRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2hlbGZQcm9kdWN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub1N0b3JlTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9TdG9yZUxpc3Q/Y2xpZW50SWQ9JHtkYXRhfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsU3RvcmVzKGNsaWVudElkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0QWxsU3RvcmVzP2NsaWVudElkPSR7Y2xpZW50SWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZsb29yc0xpc3Qoc3RvcmVJZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFN0b3JlRmxvb3JzTGlzdD9zdG9yZUlkPSR7c3RvcmVJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVBsYW5vRnJvbUNBRChcclxuICAgIGZpbGU6IEZpbGUsXHJcbiAgICBzdG9yZUlkOiBzdHJpbmcsXHJcbiAgICBzdG9yZU5hbWU6IHN0cmluZyxcclxuICAgIGZsb29yTnVtYmVyOiBudW1iZXIsXHJcbiAgKSB7XHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG5cclxuICAgIGZvcm1EYXRhLmFwcGVuZChcImZpbGVcIiwgZmlsZSk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJzdG9yZUlkXCIsIHN0b3JlSWQpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmxvb3JOdW1iZXJcIiwgZmxvb3JOdW1iZXIudG9TdHJpbmcoKSk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJzdG9yZU5hbWVcIiwgc3RvcmVOYW1lKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vY3JlYXRlUGxhbm9Gcm9tQ0FEYCxcclxuICAgICAgZm9ybURhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlRW1wdHlQbGFubyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9jcmVhdGVFbXB0eVBsYW5vYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxQbGFub0lkcyhjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9nZXRBbGxQbGFub0lkc00/Y2xpZW50SWQ9JHtjbGllbnRJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRGaXh0dXJlQWkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2ZpbmRGaXh0dXJlQUlgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGZpbmRGaXh0dXJlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9maW5kRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVwbGFjZUZpeHR1cmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL3JlcGxhY2VGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXBsYWNlQnJhbmRMaXN0KGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZ2V0UmVwbGFjZUJyYW5kTGlzdGAsXHJcbiAgICAgIHsgY2xpZW50SWQgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXBsYWNlVm1MaXN0KGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZ2V0UmVwbGFjZVZtTGlzdGAsXHJcbiAgICAgIHsgY2xpZW50SWQgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0lkKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRQbGFub0lkYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvdXBkYXRlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXBwcm92ZVBsYW5vTGF5b3V0KGZsb29ySWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL2FwcHJvdmVQbGFub0xheW91dGAsXHJcbiAgICAgIHsgZmxvb3JJZDogZmxvb3JJZCB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydE1CUVNoZWV0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldFBsYW5vRXhjZWxgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0UGxhbm9PcmRlclNoZWV0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldFBsYW5vT3JkZXJFeGNlbGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBydW5BbG9jYXRpb24oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vcnVuQWxvY2F0aW9uYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRJdm1Db252ZXJzaW9uQWxpYXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9pdm1Db252ZXJzaW9uQWxpYXNgLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFsbEZpbmRSZXBsYWNlRGF0YShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZ2V0QWxsRmluZFJlcGxhY2VEYXRhYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaW5kUmVwbGFjZURhdGFCeUlkKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRGaW5kUmVwbGFjZURhdGFCeUlkYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzYXZlQXNEcmFmdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvc2F2ZUFzRHJhZnRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlT3JDbHVzdGVyTGlzdChkYXRhOiB7IHNlYXJjaE1vZGU6IFwic3RvcmVcIiB8IFwiY2x1c3RlclwiIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZ2V0U3RvcmVPckNsdXN0ZXJMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBiYXRjaEZpbmRSZXBsYWNlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9iYXRjaEZpbmRSZXBsYWNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhcHByb3ZlUmVwbGFjZShkYXRhOiB7XHJcbiAgICBmaW5kUmVwbGFjZUlkOiBzdHJpbmc7XHJcbiAgICBzdG9yZXM/OiBhbnlbXTtcclxuICAgIHNjaGVkdWxlPzogYm9vbGVhbjtcclxuICAgIHNjaGVkdWxlRGF0ZT86IHN0cmluZyB8IG51bGw7XHJcbiAgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9hcHByb3ZlUmVwbGFjZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmF0Y2hQcm9ncmVzcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvdXBkYXRlQmF0Y2hQcm9ncmVzc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY2FuY2VsRmluZFJlcGxhY2UoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2NhbmNlbEZpbmRSZXBsYWNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaW5kUmVwbGFjZUFpKGRhdGE6IHsgaWQ6IHN0cmluZyB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2RlbGV0ZUZpbmRSZXBsYWNlQWlgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJldm9rZUZpbmRSZXBsYWNlKGRhdGE6IHsgZmluZFJlcGxhY2VJZDogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvcmV2b2tlRmluZFJlcGxhY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVN0b3JlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L2NyZWF0ZS1zdG9yZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgc3BvY0VtYWlsQ2hlY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vc3BvY0VtYWlsQ2hlY2tgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUluZnJhVGlja2V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvY3JlYXRlVGlja2V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRGb290ZmFsbERldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRGaXh0dXJlRm9vdGZhbGxgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRvcFBlcmZvcm1pbmdab25lcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFRvcFBlcmZvcm1pbmdab25lc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVFbmdhZ2VycyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVFbmdhZ2Vyc2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGaXh0dXJlRW5nYWdlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUZpeHR1cmVFbmdhZ2Vyc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGaXh0dXJlRm9vdGZhbGwoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUZpeHR1cmVGb290ZmFsbGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gVk0gQWxsb2NhdGlvbiBFbmdpbmVcclxuICBnZXRWbVJ1bGVMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2dldFJ1bGVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWbVJ1bGVEZXRhaWxzKHJ1bGVJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9nZXRSdWxlRGV0YWlsc2AsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHJ1bGVJZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2NyZWF0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVZtUnVsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS91cGRhdGVSdWxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVWbVJ1bGUocnVsZUlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2RlbGV0ZVJ1bGUvJHtydWxlSWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhY3RpdmF0ZVZtUnVsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9hY3RpdmF0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlYWN0aXZhdGVWbVJ1bGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZGVhY3RpdmF0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZVZtUnVsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9kdXBsaWNhdGVSdWxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3NpZ25WbVJ1bGVTdG9yZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvYXNzaWduU3RvcmVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmVWbVJ1bGVGb3JTdG9yZShzdG9yZUlkOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2dldEFjdGl2ZVJ1bGVGb3JTdG9yZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlSWQsIGNsaWVudElkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTnVtYmVyc0J5U3RvcmUoc3RvcmVOYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRGaXh0dXJlTnVtYmVyc0J5U3RvcmVgLFxyXG4gICAgICB7IHBhcmFtczogeyBzdG9yZU5hbWUsIGNsaWVudElkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhbGxvd0VkaXRXaXRob3V0UmVtb3ZpbmdSZXNwb25zZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svYWxsb3dFZGl0V2l0aG91dFJlbW92aW5nUmVzcG9uc2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVEZXRhaWxzQnlTdG9yZShzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2dldEZpeHR1cmVEZXRhaWxzQnlTdG9yZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVUeXBlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay91cGRhdGVGaXh0dXJlVHlwZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGaXh0dXJlc0ZvclJlb3JkZXIoc3RvcmVOYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVGaXh0dXJlc0ZvclJlb3JkZXJgLFxyXG4gICAgICB7IHBhcmFtczogeyBzdG9yZU5hbWUsIGNsaWVudElkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW9yZGVyU3RvcmVGaXh0dXJlTnVtYmVycyhkYXRhOiB7IHN0b3JlTmFtZTogc3RyaW5nOyBjbGllbnRJZDogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Jlb3JkZXJTdG9yZUZpeHR1cmVOdW1iZXJzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlTnVtYmVyTWFudWFsKGRhdGE6IHtcclxuICAgIGZpeHR1cmVJZDogc3RyaW5nO1xyXG4gICAgZml4dHVyZU51bWJlcj86IG51bWJlcjtcclxuICAgIGFzc29jaWF0ZWRFbGVtZW50Rml4dHVyZU51bWJlcj86IG51bWJlcjtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVGaXh0dXJlTnVtYmVyTWFudWFsYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVUYXNrRm9yU3RvcmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9kZWxldGVUYXNrRm9yU3RvcmVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0RhdGFTY2hlbWEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9EYXRhU2NoZW1hYCk7XHJcbiAgfVxyXG5cclxuICBydW5QbGFub0RhdGFRdWVyeShkYXRhOiB7XHJcbiAgICBjbGllbnRJZDogc3RyaW5nO1xyXG4gICAgc3RvcmVOYW1lczogc3RyaW5nW107XHJcbiAgICBmaWx0ZXJzOiB7IGZpZWxkOiBzdHJpbmc7IG9wZXJhdG9yOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdO1xyXG4gICAgZmlsdGVyQ29tYmluYXRvcjogXCJBTkRcIiB8IFwiT1JcIjtcclxuICAgIHNlbGVjdGlvbk1vZGU6IFwiYWxsXCIgfCBcImZpcnN0TlwiO1xyXG4gICAgbGltaXRQZXJTdG9yZT86IG51bWJlcjtcclxuICAgIGNvbHVtbnM6IHsga2V5OiBzdHJpbmc7IGxhYmVsPzogc3RyaW5nIH1bXTtcclxuICAgIGluY2x1ZGVOb3RGb3VuZFJvd3M/OiBib29sZWFuO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcnVuUGxhbm9EYXRhUXVlcnlgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
618
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7OztBQUU3QixNQUFNLFVBQVUsR0FDZCxpRkFBaUYsQ0FBQztBQUNwRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLG1CQUFtQjtJQVdwQjtJQUNBO0lBWFYsV0FBVyxDQUFTO0lBQ3BCLGtCQUFrQixDQUFTO0lBQzNCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFFdEIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsSUFBZ0IsRUFDaEIsRUFBc0I7UUFEdEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU5QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25FLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFH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Q0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQix3QkFBd0IsRUFBRTtZQUN2RSxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUU7U0FDdEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFDLElBU2pCO1FBQ0MsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0Isb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7d0dBbHFDVSxtQkFBbUI7NEdBQW5CLG1CQUFtQixjQUZsQixNQUFNOzs0RkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3kgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCAqIGFzIEZpbGVTYXZlciBmcm9tIFwiZmlsZS1zYXZlclwiO1xyXG5pbXBvcnQgKiBhcyBYTFNYIGZyb20gXCJ4bHN4XCI7XHJcblxyXG5jb25zdCBFWENFTF9UWVBFID1cclxuICBcImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0O2NoYXJzZXQ9VVRGLThcIjtcclxuY29uc3QgRVhDRUxfRVhURU5TSU9OID0gXCIueGxzeFwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmVCdWlsZGVyU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgc3RvcmVBcGlVcmw6IHN0cmluZztcclxuICBzdG9yZUJ1aWxkZXJBcGlVcmw6IHN0cmluZztcclxuICB0cmFmZmljQXBpVXJsOiBzdHJpbmc7XHJcbiAgdGlja2V0c0FwaVVybDogc3RyaW5nO1xyXG5cclxuICBkcm9wRG93blRyaWdnZXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKGVudikgPT4ge1xyXG4gICAgICBpZiAoZW52KSB7XHJcbiAgICAgICAgdGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmwgPSBlbnYuc3RvcmVCdWlsZGVyVXJsO1xyXG4gICAgICAgIHRoaXMuc3RvcmVBcGlVcmwgPSBlbnYuc3RvcmVBcGlVcmw7XHJcbiAgICAgICAgdGhpcy50cmFmZmljQXBpVXJsID0gZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy50aWNrZXRzQXBpVXJsID0gZW52LnRpY2tldHNBcGlVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGV4cG9ydEFzRXhjZWxGaWxlKGpzb246IGFueVtdLCBleGNlbEZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtzaGVldDogWExTWC5Xb3JrU2hlZXQgPSBYTFNYLnV0aWxzLmpzb25fdG9fc2hlZXQoanNvbik7XHJcbiAgICBjb25zdCB3b3JrYm9vazogWExTWC5Xb3JrQm9vayA9IHtcclxuICAgICAgU2hlZXRzOiB7IGRhdGE6IHdvcmtzaGVldCB9LFxyXG4gICAgICBTaGVldE5hbWVzOiBbXCJkYXRhXCJdLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IGV4Y2VsQnVmZmVyOiBhbnkgPSBYTFNYLndyaXRlKHdvcmtib29rLCB7XHJcbiAgICAgIGJvb2tUeXBlOiBcInhsc3hcIixcclxuICAgICAgdHlwZTogXCJhcnJheVwiLFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNhdmVBc0V4Y2VsRmlsZShleGNlbEJ1ZmZlciwgZXhjZWxGaWxlTmFtZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzRXhjZWxGaWxlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRSxcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIFwibGlzdFwiICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlQXNUZW1wbGF0ZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEUsXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuXHJcbiAgbGF5b3V0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVMYXlvdXRMaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vc3RvcmVJbmZyYUxpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUxheW91dChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vY3JlYXRlU3RvcmVMYXlvdXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUFuZFN1Ym1pdExheW91dFRhc2soc3RvcmVOYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2NyZWF0ZUxheW91dGAsIHtcclxuICAgICAgc3RvcmVOYW1lOiBbc3RvcmVOYW1lXSxcclxuICAgICAgY2xpZW50SWQsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEJ1bGtVcGxvYWQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwbG9hZEJ1bGtTdG9yZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlTGF5b3V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0RldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlRml4dHVyZXNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZsb29yKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9kZWxldGVGbG9vcmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgYWRkRmxvb3IoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZUZsb29yYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGbG9vckxheW91dChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlU3RvcmVMYXlvdXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVEZXRhaWxzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGxvYWRGaWxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9yZW1vdmVGaWxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQbGFub1N0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlU3RhdHVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVMYXlvdXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2RlbGV0ZVN0b3JlTGF5b3V0LyR7ZGF0YX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURldGFpbGVkRGlzdGFuY2UoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVEZWF0YWlsZWREaXN0YW5jZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkZXJ0Rml4dHVyZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBzZXJ0Rml4dHVyZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLy8gRml4dHVyZSBMaWJyYXJ5XHJcbiAgY3JlYXRlRml4dHVyZUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvY3JlYXRlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUxpYnJhcnlEZXRhaWxzKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVEZXRhaWxzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgZml4dHVyZUlkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVNpemVMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVTaXplTGlzdGAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IGNsaWVudElkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUxpYnJhcnlMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTGlicmFyeUxpc3RUb0V4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnksIGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS91cGRhdGVGaXh0dXJlLyR7aWR9YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kdXBsaWNhdGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kZWxldGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBidWxrQWN0aW9uRml4dHVyZUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZUJ1bGtVcGxvYWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVOYW1lTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlTmFtZUxpc3RgLFxyXG4gICAgICB7IHBhcmFtczogeyBjbGllbnRJZDogaWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVMaWJOYW1lTGlzdChpZDogc3RyaW5nLCBzdGF0dXM/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVMaWJOYW1lTGlzdGAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IGNsaWVudElkOiBpZCwgLi4uKHN0YXR1cyA/IHsgc3RhdHVzIH0gOiB7fSkgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIFZNIExpYnJhcnlcclxuICBnZXRWbUxpYnJhcnlEZXRhaWxzKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtRGV0YWlsc2AsXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJhbXM6IHsgdm1JZDogaWQgfSxcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWbUxpYnJhcnlMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtTGliTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vm1MaWJyYXJ5TGlzdFRvRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtTGliTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhZGRVcGRhdGVWbUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvYWRkVXBkYXRlVm1gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZVZtTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kdXBsaWNhdGVWbUxpYmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlVm1MaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2RlbGV0ZVZtTGliYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBidWxrQWN0aW9uVm1MaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3ZtQnVsa1VwbG9hZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vk1OYW1lTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3ZtTmFtZUxpc3RgLCB7XHJcbiAgICAgIHBhcmFtczogeyBjbGllbnRJZDogaWQgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIFZtVHlwZXNcclxuICBnZXRWbVR5cGVzTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRWbVR5cGVMaXN0YCxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmFtczogeyBjbGllbnRJZDogaWQgfSxcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBtYW5hZ2VWbVR5cGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvYWRkVm1UeXBlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRWbVR5cGVJbWFnZShmb3JtRGF0YTogYW55LCBpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBsb2FkVm10eXBlSW1hZ2UvJHtpZH1gLFxyXG4gICAgICBmb3JtRGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmFuZCBsaXN0XHJcbiAgZ2V0QnJhbmRMaXN0KGlkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRCcmFuZExpc3RgLFxyXG4gICAgICB7XHJcbiAgICAgICAgY2xpZW50SWQ6IGlkLFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJyYW5kRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldEJyYW5kTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUZpeHR1cmVzVjJgLCB7XHJcbiAgICAgIC4uLmRhdGEsXHJcbiAgICAgIC8vIHN0YXR1czogW1wiY29tcGxldGVkXCJdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBnZXRPbmJvYXJkU3RvcmVGaXh0dXJlcyhkYXRhOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVGaXh0dXJlc1YyYCwge1xyXG4gIC8vICAgICAuLi5kYXRhLFxyXG4gIC8vICAgICBzdGF0dXM6IFtcImRyYWZ0XCIsIFwiYWxsb2NhdGlvblBlbmRpbmdcIl0sXHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIEZpeHR1cmUgVGVtcGxhdGVzXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlTGlzdE9sZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRUZW1wbGF0ZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvbWFzdGVyVGVtcGxhdGVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZUNoaWxkTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90ZW1wbGF0ZUNoaWxkTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlTGlzdFRvRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldFRlbXBsYXRlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlVGVtcGxhdGVEZXRhaWxzKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldFRlbXBsYXRlRGV0YWlsc2AsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHRlbXBsYXRlSWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVGaXh0dXJlVGVtcGxhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvY3JlYXRlVGVtcGxhdGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVwbGFjZUZpeHR1cmVEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3JlcGxhY2VGaXh0dXJlRGV0YWlsc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZVRlbXBsYXRlKGRhdGE6IGFueSwgaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3VwZGF0ZVRlbXBsYXRlLyR7aWR9YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVGaXh0dXJlVGVtcGxhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZHVwbGljYXRlVGVtcGxhdGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpeHR1cmVUZW1wbGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9kZWxldGVUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZVN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZUZpeHR1cmVTdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwcHJvdmFsU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlQXBwcm92YWxTdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRml4dHVyZXNmZWVkYmFjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFN0b3JlRml4dHVyZXNmZWVkYmFja2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3RvcmVQbGFubyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVN0b3JlUGxhbm9gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRmVlZGJhY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRwbGFub0ZlZWRiYWNrYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSb2xsb3V0RmVlZGJhY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRSb2xsb3V0RmVlZGJhY2t2MmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZVZlcmlmaWNhdGlvbkZlZWRiYWNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0Wm9uZVZlcmlmaWNhdGlvbkZlZWRiYWNrYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVab25lVmVyaWZpY2F0aW9uU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlWm9uZVZlcmlmaWNhdGlvblN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SGVhZGVyc0xpc3Qoc3RvcmVJZD86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0SGVhZGVyTGlzdGAsIFxyXG4gICAgICAvLyB7ICAgICAgcGFyYW1zOiB7IHN0b3JlSWQ6IHN0b3JlSWQgPz8gXCJcIiB9ICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQSURMaXN0KGhlYWRlcjogc3RyaW5nID0gXCJvdGhlcnNcIikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0UElETGlzdGAsIHtcclxuICAgICAgcGFyYW1zOiB7IGhlYWRlciB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlQ29tcGxpYW5jZVN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZUZpeHR1cmVTdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFkZFVwZGF0ZUJyYW5kKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2FkZFVwZGF0ZUJyYW5kYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRCcmFuZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS91cGxvYWRCcmFuZExpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRhc2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBkYXRlVGFza2NvbmZpZ2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFza0NvbmZpZyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFRhc2tDb25maWc/Y2xpZW50SWQ9JHtkYXRhfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3RvcmVGaXh0dXJlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlU3RvcmVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBTdG9yZVxyXG4gIGdldFBsYW5vTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRPbmJvYXJkUGxhbm9MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL29uYm9hcmRQbGFub0xpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vTGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaXN0YCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T25ib2FyZFBsYW5vTGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9vbmJvYXJkUGxhbm9MaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICAge1xyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vQ2FyZHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQ2FyZHNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vUm9sbG91dExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vUm9sbG91dExpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFJvbGxvdXRMaXN0RXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub1JvbGxvdXRMaXN0YCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9ncmFtTGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9ncmFtTGlzdGAsIGRhdGEsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVRhc2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svY3JlYXRlVGFza2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlR2xvYmFsQ29tbWVudChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZUdsb2JhbENvbW1lbnRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFRlbXBsYXRlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRBbGxUZW1wbGF0ZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcbiAgYXNzaWdlZFRlbXBsYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2Fzc2lnZWRUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuICBUZW1wbGF0ZVN0b3Jlc0xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvVGVtcGxhdGVTdG9yZXNMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUYXNrSW5mbyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFza0RldGFpbHM/cGxhbm9JZD0ke2RhdGEucGxhbm9JZH0mZmxvb3JJZD0ke2RhdGEuZmxvb3JJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZShpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRUZW1wbGF0ZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHRlbXBsYXRlSWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSb2xsb3V0VGFza0luZm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFJvbGxvdXRUYXNrRGV0YWlscz9wbGFub0lkPSR7ZGF0YS5wbGFub0lkfSZmbG9vcklkPSR7ZGF0YS5mbG9vcklkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmV2b2tlVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9yZXZva2VUYXNrYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSb2xsb3V0U3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlUm9sbG91dFN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVBc3NpZ25MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RlbXBsYXRlQXNzaWduTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVUcmVlTGlzdChwYXJhbXM6IHtcclxuICAgIG1hc3RlcklkPzogc3RyaW5nO1xyXG4gICAgc3RvcmVJZD86IHN0cmluZztcclxuICAgIGNsaWVudElkPzogc3RyaW5nO1xyXG4gICAgdGVtcGxhdGVHcm91cE5hbWVzPzogc3RyaW5nW107XHJcbiAgICBmaXh0dXJlTmFtZXM/OiBzdHJpbmdbXTtcclxuICAgIHN0b3JlTmFtZXM/OiBzdHJpbmdbXTtcclxuICB9KSB7XHJcbiAgICBsZXQgcXVlcnlQYXJ0czogc3RyaW5nW10gPSBbXTtcclxuICAgIGlmIChwYXJhbXMubWFzdGVySWQpIHF1ZXJ5UGFydHMucHVzaChgbWFzdGVySWQ9JHtwYXJhbXMubWFzdGVySWR9YCk7XHJcbiAgICBlbHNlIGlmIChwYXJhbXMuc3RvcmVJZCkgcXVlcnlQYXJ0cy5wdXNoKGBzdG9yZUlkPSR7cGFyYW1zLnN0b3JlSWR9YCk7XHJcbiAgICBlbHNlIGlmIChwYXJhbXMuY2xpZW50SWQpIHF1ZXJ5UGFydHMucHVzaChgY2xpZW50SWQ9JHtwYXJhbXMuY2xpZW50SWR9YCk7XHJcblxyXG4gICAgaWYgKHBhcmFtcy50ZW1wbGF0ZUdyb3VwTmFtZXM/Lmxlbmd0aClcclxuICAgICAgcXVlcnlQYXJ0cy5wdXNoKFxyXG4gICAgICAgIGB0ZW1wbGF0ZUdyb3VwTmFtZXM9JHtwYXJhbXMudGVtcGxhdGVHcm91cE5hbWVzLmpvaW4oXCIsXCIpfWAsXHJcbiAgICAgICk7XHJcbiAgICBpZiAocGFyYW1zLmZpeHR1cmVOYW1lcz8ubGVuZ3RoKVxyXG4gICAgICBxdWVyeVBhcnRzLnB1c2goYGZpeHR1cmVOYW1lcz0ke3BhcmFtcy5maXh0dXJlTmFtZXMuam9pbihcIixcIil9YCk7XHJcbiAgICBpZiAocGFyYW1zLnN0b3JlTmFtZXM/Lmxlbmd0aClcclxuICAgICAgcXVlcnlQYXJ0cy5wdXNoKGBzdG9yZU5hbWVzPSR7cGFyYW1zLnN0b3JlTmFtZXMuam9pbihcIixcIil9YCk7XHJcblxyXG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJ0cy5sZW5ndGggPyBgPyR7cXVlcnlQYXJ0cy5qb2luKFwiJlwiKX1gIDogXCJcIjtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90ZW1wbGF0ZVRyZWVMaXN0JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRyZWVGaWx0ZXJPcHRpb25zKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RyZWVGaWx0ZXJPcHRpb25zP2NsaWVudElkPSR7Y2xpZW50SWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZVZlcnNpb25MaXN0KHRlbXBsYXRlSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdGVtcGxhdGVWZXJzaW9uTGlzdD90ZW1wbGF0ZUlkPSR7dGVtcGxhdGVJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVBaURldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldEZpeHR1cmVBSURldGFpbHM/Zml4dHVyZUlkPSR7ZGF0YX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVTaGVsZkRldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlU2hlbGZEZXRhaWxzdjJgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vZ3JhbUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFBsYW5vZ3JhbUxpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vZ3JhbUNvbXBsaWFuY2VEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vY2FsY3VsYXRlQ29tcGxpYW5jZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZHVjdE1hcHBpbmcoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVQcm9kdWN0TWFwcGluZ2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q291bnRyaWVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyQ291bnRyeV92MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVnaW9ucyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlckxvY2F0aW9uc192MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9TdG9yZVZpZGVvUGFyYW1zKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0UGxhbm9TdG9yZVZpZGVvUGFyYW1zYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaXNoKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vY3JlYXRlUmV2aXNpb25gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJldmlzaW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFJldmlzaW9uc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVQbGFubyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFJldmlzaW9uRGF0YWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlUmV2aXNpb24oZGF0YToge1xyXG4gICAgcmV2aXNpb25JZDogc3RyaW5nO1xyXG4gICAgcGxhbm9JZDogc3RyaW5nO1xyXG4gICAgZmxvb3JJZDogc3RyaW5nO1xyXG4gICAgc2VuZFZlcmlmaWNhdGlvblRhc2s6IGJvb2xlYW47XHJcbiAgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vc2V0QWN0aXZlUmV2aXNpb25gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJldmlzaW9uTmFtZShkYXRhOiB7IHJldmlzaW9uSWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVJldmlzaW9uTmFtZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2hlbGZEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zaGVsZlByb2R1Y3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vU3RvcmVMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRQbGFub1N0b3JlTGlzdD9jbGllbnRJZD0ke2RhdGF9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxTdG9yZXMoY2xpZW50SWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRBbGxTdG9yZXM/Y2xpZW50SWQ9JHtjbGllbnRJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRmxvb3JzTGlzdChzdG9yZUlkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVGbG9vcnNMaXN0P3N0b3JlSWQ9JHtzdG9yZUlkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUGxhbm9Gcm9tQ0FEKFxyXG4gICAgZmlsZTogRmlsZSxcclxuICAgIHN0b3JlSWQ6IHN0cmluZyxcclxuICAgIHN0b3JlTmFtZTogc3RyaW5nLFxyXG4gICAgZmxvb3JOdW1iZXI6IG51bWJlcixcclxuICApIHtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZChcInN0b3JlSWRcIiwgc3RvcmVJZCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJmbG9vck51bWJlclwiLCBmbG9vck51bWJlci50b1N0cmluZygpKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZChcInN0b3JlTmFtZVwiLCBzdG9yZU5hbWUpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9jcmVhdGVQbGFub0Zyb21DQURgLFxyXG4gICAgICBmb3JtRGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFbXB0eVBsYW5vKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL2NyZWF0ZUVtcHR5UGxhbm9gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFBsYW5vSWRzKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldEFsbFBsYW5vSWRzTT9jbGllbnRJZD0ke2NsaWVudElkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEZpeHR1cmVBaShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZmluZEZpeHR1cmVBSWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEZpeHR1cmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2ZpbmRGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlRml4dHVyZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvcmVwbGFjZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJlcGxhY2VCcmFuZExpc3QoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRSZXBsYWNlQnJhbmRMaXN0YCxcclxuICAgICAgeyBjbGllbnRJZCB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJlcGxhY2VWbUxpc3QoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRSZXBsYWNlVm1MaXN0YCxcclxuICAgICAgeyBjbGllbnRJZCB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vSWQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldFBsYW5vSWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS91cGRhdGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhcHByb3ZlUGxhbm9MYXlvdXQoZmxvb3JJZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vYXBwcm92ZVBsYW5vTGF5b3V0YCxcclxuICAgICAgeyBmbG9vcklkOiBmbG9vcklkIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TUJRU2hlZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvZ2V0UGxhbm9FeGNlbGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRQbGFub09yZGVyU2hlZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvZ2V0UGxhbm9PcmRlckV4Y2VsYCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJ1bkFsb2NhdGlvbihkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9ydW5BbG9jYXRpb25gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEl2bUNvbnZlcnNpb25BbGlhcygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL2l2bUNvbnZlcnNpb25BbGlhc2AsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRmluZFJlcGxhY2VEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRBbGxGaW5kUmVwbGFjZURhdGFgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpbmRSZXBsYWNlRGF0YUJ5SWQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldEZpbmRSZXBsYWNlRGF0YUJ5SWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNhdmVBc0RyYWZ0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9zYXZlQXNEcmFmdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVPckNsdXN0ZXJMaXN0KGRhdGE6IHsgc2VhcmNoTW9kZTogXCJzdG9yZVwiIHwgXCJjbHVzdGVyXCIgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRTdG9yZU9yQ2x1c3Rlckxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJhdGNoRmluZFJlcGxhY2UoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2JhdGNoRmluZFJlcGxhY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFwcHJvdmVSZXBsYWNlKGRhdGE6IHtcclxuICAgIGZpbmRSZXBsYWNlSWQ6IHN0cmluZztcclxuICAgIHN0b3Jlcz86IGFueVtdO1xyXG4gICAgc2NoZWR1bGU/OiBib29sZWFuO1xyXG4gICAgc2NoZWR1bGVEYXRlPzogc3RyaW5nIHwgbnVsbDtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2FwcHJvdmVSZXBsYWNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVCYXRjaFByb2dyZXNzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS91cGRhdGVCYXRjaFByb2dyZXNzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxGaW5kUmVwbGFjZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvY2FuY2VsRmluZFJlcGxhY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpbmRSZXBsYWNlQWkoZGF0YTogeyBpZDogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZGVsZXRlRmluZFJlcGxhY2VBaWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmV2b2tlRmluZFJlcGxhY2UoZGF0YTogeyBmaW5kUmVwbGFjZUlkOiBzdHJpbmcgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9yZXZva2VGaW5kUmVwbGFjZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU3RvcmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vY3JlYXRlLXN0b3JlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzcG9jRW1haWxDaGVjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9zcG9jRW1haWxDaGVja2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlSW5mcmFUaWNrZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9jcmVhdGVUaWNrZXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEZvb3RmYWxsRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldEZpeHR1cmVGb290ZmFsbGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9wUGVyZm9ybWluZ1pvbmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0VG9wUGVyZm9ybWluZ1pvbmVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUVuZ2FnZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUVuZ2FnZXJzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVFbmdhZ2VycyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFN0b3JlRml4dHVyZUVuZ2FnZXJzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVGb290ZmFsbChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFN0b3JlRml4dHVyZUZvb3RmYWxsYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBWTSBBbGxvY2F0aW9uIEVuZ2luZVxyXG4gIGdldFZtUnVsZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZ2V0UnVsZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZtUnVsZURldGFpbHMocnVsZUlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2dldFJ1bGVEZXRhaWxzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgcnVsZUlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVWbVJ1bGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvY3JlYXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL3VwZGF0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVZtUnVsZShydWxlSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZGVsZXRlUnVsZS8ke3J1bGVJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2FjdGl2YXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVhY3RpdmF0ZVZtUnVsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9kZWFjdGl2YXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2R1cGxpY2F0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFzc2lnblZtUnVsZVN0b3JlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9hc3NpZ25TdG9yZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVZtUnVsZUZvclN0b3JlKHN0b3JlSWQ6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZ2V0QWN0aXZlUnVsZUZvclN0b3JlYCxcclxuICAgICAgeyBwYXJhbXM6IHsgc3RvcmVJZCwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVOdW1iZXJzQnlTdG9yZShzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2dldEZpeHR1cmVOdW1iZXJzQnlTdG9yZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFsbG93RWRpdFdpdGhvdXRSZW1vdmluZ1Jlc3BvbnNlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9hbGxvd0VkaXRXaXRob3V0UmVtb3ZpbmdSZXNwb25zZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZURldGFpbHNCeVN0b3JlKHN0b3JlTmFtZTogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0Rml4dHVyZURldGFpbHNCeVN0b3JlYCxcclxuICAgICAgeyBwYXJhbXM6IHsgc3RvcmVOYW1lLCBjbGllbnRJZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZVR5cGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL3VwZGF0ZUZpeHR1cmVUeXBlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVzRm9yUmVvcmRlcihzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUZpeHR1cmVzRm9yUmVvcmRlcmAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlb3JkZXJTdG9yZUZpeHR1cmVOdW1iZXJzKGRhdGE6IHsgc3RvcmVOYW1lOiBzdHJpbmc7IGNsaWVudElkOiBzdHJpbmcgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcmVvcmRlclN0b3JlRml4dHVyZU51bWJlcnNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVOdW1iZXJNYW51YWwoZGF0YToge1xyXG4gICAgZml4dHVyZUlkOiBzdHJpbmc7XHJcbiAgICBmaXh0dXJlTnVtYmVyPzogbnVtYmVyO1xyXG4gICAgYXNzb2NpYXRlZEVsZW1lbnRGaXh0dXJlTnVtYmVyPzogbnVtYmVyO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZUZpeHR1cmVOdW1iZXJNYW51YWxgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVRhc2tGb3JTdG9yZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2RlbGV0ZVRhc2tGb3JTdG9yZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZsb29yc1dpdGhTdGF0dXMoc3RvcmVOYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRGbG9vcnNXaXRoU3RhdHVzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgc3RvcmVOYW1lLCBjbGllbnRJZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbW92ZVN0b3JlQnVja2V0KGRhdGE6IHtcclxuICAgIGZsb29ySWQ6IHN0cmluZztcclxuICAgIHRhcmdldFN0YXR1czogXCJkcmFmdFwiIHwgXCJhbGxvY2F0aW9uUGVuZGluZ1wiIHwgXCJjb21wbGV0ZWRcIjtcclxuICAgIGNsZWFyTGF5b3V0VGFza3M6IGJvb2xlYW47XHJcbiAgICBjbGVhckZpeHR1cmVUYXNrczogYm9vbGVhbjtcclxuICAgIGNsZWFyWm9uZVRhc2tzOiBib29sZWFuO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svbW92ZVN0b3JlQnVja2V0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzd2FwRml4dHVyZVRlbXBsYXRlKGRhdGE6IHtcclxuICAgIGRhdGE6IHsgc3RvcmVOYW1lOiBzdHJpbmc7IGZpeHR1cmVOdW1iZXI6IG51bWJlcjsgdGVtcGxhdGVOYW1lOiBzdHJpbmcgfVtdO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9zd2FwRml4dHVyZVRlbXBsYXRlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0RhdGFTY2hlbWEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9EYXRhU2NoZW1hYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWRGaWxlcyhzdG9yZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9jYWRGaWxlc2AsIHtcclxuICAgICAgcGFyYW1zOiB7IHN0b3JlTmFtZSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBydW5QbGFub0RhdGFRdWVyeShkYXRhOiB7XHJcbiAgICBjbGllbnRJZDogc3RyaW5nO1xyXG4gICAgc3RvcmVOYW1lczogc3RyaW5nW107XHJcbiAgICBmaWx0ZXJzOiB7IGZpZWxkOiBzdHJpbmc7IG9wZXJhdG9yOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdO1xyXG4gICAgZmlsdGVyQ29tYmluYXRvcjogXCJBTkRcIiB8IFwiT1JcIjtcclxuICAgIHNlbGVjdGlvbk1vZGU6IFwiYWxsXCIgfCBcImZpcnN0TlwiO1xyXG4gICAgbGltaXRQZXJTdG9yZT86IG51bWJlcjtcclxuICAgIGNvbHVtbnM6IHsga2V5OiBzdHJpbmc7IGxhYmVsPzogc3RyaW5nIH1bXTtcclxuICAgIGluY2x1ZGVOb3RGb3VuZFJvd3M/OiBib29sZWFuO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcnVuUGxhbm9EYXRhUXVlcnlgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -49,6 +49,9 @@ import { UpdateFixtureTypeComponent } from "./components/plano-tools/update-fixt
49
49
  import { PlanoDataExportComponent } from "./components/plano-tools/plano-data-export/plano-data-export.component";
50
50
  import { StoreExportsComponent } from "./components/plano-tools/store-exports/store-exports.component";
51
51
  import { ModifyFixtureNumbersComponent } from "./components/plano-tools/modify-fixture-numbers/modify-fixture-numbers.component";
52
+ import { SwapTemplateComponent } from "./components/plano-tools/swap-template/swap-template.component";
53
+ import { MoveBucketComponent } from "./components/plano-tools/move-bucket/move-bucket.component";
54
+ import { CadFilesComponent } from "./components/plano-tools/cad-files/cad-files.component";
52
55
  import * as i0 from "@angular/core";
53
56
  import * as i1 from "@angular/router";
54
57
  const routes = [
@@ -245,6 +248,18 @@ const routes = [
245
248
  path: "store-exports",
246
249
  component: StoreExportsComponent,
247
250
  },
251
+ {
252
+ path: "swap-template",
253
+ component: SwapTemplateComponent,
254
+ },
255
+ {
256
+ path: "move-bucket",
257
+ component: MoveBucketComponent,
258
+ },
259
+ {
260
+ path: "cad-files",
261
+ component: CadFilesComponent,
262
+ },
248
263
  ],
249
264
  },
250
265
  {
@@ -290,4 +305,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
290
305
  exports: [RouterModule],
291
306
  }]
292
307
  }] });
293
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tc3RvcmUtYnVpbGRlci1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi90YW5nby1zdG9yZS1idWlsZGVyLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFN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QW9CO1FBQzFCLFNBQVMsRUFBRSx5QkFBeUI7S0FDckM7SUFDRDtRQUNFLElBQUksRUFBRSxjQUFjO1FBQ3BCLFNBQVMsRUFBRSwwQkFBMEI7UUFDckMsUUFBUSxFQUFFO1lBQ1I7Z0JBQ0UsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsU0FBUyxFQUFFLHdCQUF3QjthQUNwQztZQUNEO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLFNBQVMsRUFBRSxzQkFBc0I7YUFDbEM7U0FDRjtLQUNGO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLFNBQVMsRUFBRSwyQkFBMkI7S0FDdkM7Q0FDRixDQUFDO0FBS0YsTUFBTSxPQUFPLDhCQUE4Qjt3R0FBOUIsOEJBQThCO3lHQUE5Qiw4QkFBOEIsd0NBRi9CLFlBQVk7eUdBRVgsOEJBQThCLFlBSC9CLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzRGQUVYLDhCQUE4QjtrQkFKMUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTGF5b3V0QnVpbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZUxheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY3JlYXRlLWxheW91dC9jcmVhdGUtbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXlvdXRTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sYXlvdXQtc3VtbWFyeS9sYXlvdXQtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVMYXlvdXRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3RvcmUtbGF5b3V0LXRhYmxlL3N0b3JlLWxheW91dC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdG9yZS1idWlsZGVyL3N0b3JlLWJ1aWxkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZVN0b3JlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtc3RvcmUvY3JlYXRlLXN0b3JlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbGF5b3V0LWVsZW1lbnRzL2xheW91dC1lbGVtZW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlzdWFsaXplVm1EYXRhQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy92aXN1YWxpemUtdm0tZGF0YS92aXN1YWxpemUtdm0tZGF0YS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWFuYWdlU3RvcmVQbGFub0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXN0b3JlLXBsYW5vL21hbmFnZS1zdG9yZS1wbGFuby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL2ZpeHR1cmUtdGVtcGxhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpeHR1cmVUZW1wbGF0ZVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlLXRhYmxlL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlQmFzaWNEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLWJhc2ljLWRldGFpbHMvdGVtcGxhdGUtYmFzaWMtZGV0YWlscy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVWbXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvdGVtcGxhdGUtdm1zL3RlbXBsYXRlLXZtcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLXN1bW1hcnkvdGVtcGxhdGUtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVQcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZml4dHVyZS10ZW1wbGF0ZS90ZW1wbGF0ZS1wcm9kdWN0cy90ZW1wbGF0ZS1wcm9kdWN0cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9MaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3BsYW5vLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpeHR1cmVMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L2ZpeHR1cmUtbGlicmFyeS9maXh0dXJlLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFZtTGlicmFyeUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tbGlicmFyeS92bS1saWJyYXJ5L3ZtLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFByb2R1Y3RMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3Byb2R1Y3QtbGlicmFyeS9wcm9kdWN0LWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vQ29uZmlndXJhdGlvbnNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLWNvbmZpZ3VyYXRpb25zL3BsYW5vLWNvbmZpZ3VyYXRpb25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDcmVhdGVGaXh0dXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtZml4dHVyZS9jcmVhdGUtZml4dHVyZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlVm1Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS12bS9jcmVhdGUtdm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0L2NyZWF0ZS1wcm9kdWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBjYW5EZWFjdGl2YXRlR3VhcmQgfSBmcm9tIFwiLi9mdW5jdGlvbnMvZXhpdC5ndWFyZFwiO1xyXG5pbXBvcnQgeyBQbGFub1JvbGxvdXRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL3JvbGxvdXQtdGFibGUvcm9sbG91dC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9WZXJpZmljYXRpb25UYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL3ZlcmlmaWNhdGlvbi10YWJsZS92ZXJpZmljYXRpb24tdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hbmFnZVBsYW5vQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vbWFuYWdlLXBsYW5vLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub1JvbGxvdXRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL21hbmFnZS1zdG9yZS1wbGFuby9wbGFuby1yb2xsb3V0L3BsYW5vLXJvbGxvdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlQXNzaWduU3RvcmVzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLWFzc2lnbi1zdG9yZXMvdGVtcGxhdGUtYXNzaWduLXN0b3Jlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmluZEFuZFJlcGxhY2VDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvZmluZC1hbmQtcmVwbGFjZS9maW5kLWFuZC1yZXBsYWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub0J1aWxkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3BsYW5vLWJ1aWxkZXIvcGxhbm8tYnVpbGRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9NaWdyYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1taWdyYXRlL3BsYW5vLW1pZ3JhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVG9vbHNQYXJlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vRGV0YWlsc1BhcmVudENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVXBkYXRlQWlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2NvbGxlY3Rpb24tdXBkYXRlLWFpLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtdGFibGUvZmluZC1yZXBsYWNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kUmVwbGFjZUxheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29sbGVjdGlvbi11cGRhdGUtYWkvZmluZC1yZXBsYWNlLWxheW91dC9maW5kLXJlcGxhY2UtbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2ZpbmQtcmVwbGFjZS1sYXlvdXQvcHJlcGFyZS10ZW1wbGF0ZS9wcmVwYXJlLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSZXZpZXdSZXBsYWNlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtbGF5b3V0L3Jldmlldy1yZXBsYWNlL3Jldmlldy1yZXBsYWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub09uYm9hcmRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL29uYm9hcmQtdGFibGUvb25ib2FyZC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT25ib2FyZFN0b3JlUGxhbm9Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL29uYm9hcmQtc3RvcmUtcGxhbm8vb25ib2FyZC1zdG9yZS1wbGFuby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2FkUmVuZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9jYWQtcmVuZGVyL2NhZC1yZW5kZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFsbG93RWRpdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvYWxsb3ctZWRpdC9hbGxvdy1lZGl0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZWxldGVUYXNrQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9kZWxldGUtdGFzay9kZWxldGUtdGFzay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3VwZGF0ZS1maXh0dXJlLXR5cGUvdXBkYXRlLWZpeHR1cmUtdHlwZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1kYXRhLWV4cG9ydC9wbGFuby1kYXRhLWV4cG9ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVFeHBvcnRzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9zdG9yZS1leHBvcnRzL3N0b3JlLWV4cG9ydHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzL21vZGlmeS1maXh0dXJlLW51bWJlcnMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1idWlsZGVyXCIsXHJcbiAgICBjb21wb25lbnQ6IExheW91dEJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJjcmVhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IENyZWF0ZUxheW91dENvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwic3VtbWFyeVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogTGF5b3V0U3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1lbGVtZW50c1wiLFxyXG4gICAgY29tcG9uZW50OiBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwidmlzdWFsaXplLXZtc1wiLFxyXG4gICAgY29tcG9uZW50OiBWaXN1YWxpemVWbURhdGFDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWJ1aWxkZXJcIixcclxuICAgIGNvbXBvbmVudDogU3RvcmVCdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiY3JlYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBDcmVhdGVTdG9yZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWxheW91dFwiLFxyXG4gICAgY29tcG9uZW50OiBTdG9yZUxheW91dFRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgY29tcG9uZW50OiBNYW5hZ2VQbGFub0NvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm9uYm9hcmRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vT25ib2FyZFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJ2ZXJpZmljYXRpb25cIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vVmVyaWZpY2F0aW9uVGFibGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJvbGxvdXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vUm9sbG91dFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJcIixcclxuICAgICAgICByZWRpcmVjdFRvOiBcInZlcmlmaWNhdGlvblwiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE1hbmFnZVN0b3JlUGxhbm9Db21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcIm9uYm9hcmQtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE9uYm9hcmRTdG9yZVBsYW5vQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaXh0dXJlLXRlbXBsYXRlc1wiLFxyXG4gICAgY29tcG9uZW50OiBGaXh0dXJlVGVtcGxhdGVUYWJsZUNvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiZmluZEFuZFJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZEFuZFJlcGxhY2VDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpeHR1cmUtdGVtcGxhdGVcIixcclxuICAgIGNvbXBvbmVudDogRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJiYXNpYy1kZXRhaWxzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBUZW1wbGF0ZUJhc2ljRGV0YWlsc0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwicHJvZHVjdHNcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlUHJvZHVjdHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInZtc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVWbXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN1bW1hcnlcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlU3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYXNzaWduLXN0b3Jlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVBc3NpZ25TdG9yZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIHJlZGlyZWN0VG86IFwiYmFzaWMtZGV0YWlsc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJsaWJyYXJ5XCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vTGlicmFyeUNvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImZpeHR1cmVzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBGaXh0dXJlTGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidm1zXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBWbUxpYnJhcnlDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInByb2R1Y3RzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgICAgcmVkaXJlY3RUbzogXCJmaXh0dXJlc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJjcmVhdGUtbGlicmFyeS1maXh0dXJlXCIsXHJcbiAgICBjb21wb25lbnQ6IENyZWF0ZUZpeHR1cmVDb21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktdm1cIixcclxuICAgIGNvbXBvbmVudDogQ3JlYXRlVm1Db21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktcHJvZHVjdFwiLFxyXG4gICAgY29tcG9uZW50OiBDcmVhdGVQcm9kdWN0Q29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbmZpZ1wiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0NvbmZpZ3VyYXRpb25zQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2Utcm9sbG91dFwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub1JvbGxvdXRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInBsYW5vLXRvb2xzXCIsXHJcbiAgICBjb21wb25lbnQ6IFRvb2xzUGFyZW50Q29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYnVpbGRlclwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9CdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJtaWdyYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQbGFub01pZ3JhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1yZW5kZXJcIixcclxuICAgICAgICBjb21wb25lbnQ6IENhZFJlbmRlckNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYWxsb3ctZWRpdFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQWxsb3dFZGl0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkZWxldGUtdGFza1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogRGVsZXRlVGFza0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidXBkYXRlLWZpeHR1cmUtdHlwZVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm1vZGlmeS1maXh0dXJlLW51bWJlcnNcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkYXRhLWV4cG9ydFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJzdG9yZS1leHBvcnRzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBTdG9yZUV4cG9ydHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJzdG9yZS1wbGFub2dyYW1zXCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vVGFibGVDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLXBsYW5vZ3JhbVwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0RldGFpbHNQYXJlbnRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpbmQtcmVwbGFjZS10YWJsZVwiLFxyXG4gICAgY29tcG9uZW50OiBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaW5kLXJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZFJlcGxhY2VMYXlvdXRDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJwcmVwYXJlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJldmlld1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUmV2aWV3UmVwbGFjZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbGxlY3Rpb24tdXBkYXRlLWFpXCIsXHJcbiAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25VcGRhdGVBaUNvbXBvbmVudCxcclxuICB9LFxyXG5dO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb1N0b3JlQnVpbGRlclJvdXRpbmdNb2R1bGUge31cclxuIl19
308
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tc3RvcmUtYnVpbGRlci1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi90YW5nby1zdG9yZS1idWlsZGVyLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFN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XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTGF5b3V0QnVpbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZUxheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY3JlYXRlLWxheW91dC9jcmVhdGUtbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXlvdXRTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sYXlvdXQtc3VtbWFyeS9sYXlvdXQtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVMYXlvdXRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3RvcmUtbGF5b3V0LXRhYmxlL3N0b3JlLWxheW91dC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdG9yZS1idWlsZGVyL3N0b3JlLWJ1aWxkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZVN0b3JlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtc3RvcmUvY3JlYXRlLXN0b3JlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbGF5b3V0LWVsZW1lbnRzL2xheW91dC1lbGVtZW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlzdWFsaXplVm1EYXRhQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy92aXN1YWxpemUtdm0tZGF0YS92aXN1YWxpemUtdm0tZGF0YS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWFuYWdlU3RvcmVQbGFub0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXN0b3JlLXBsYW5vL21hbmFnZS1zdG9yZS1wbGFuby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL2ZpeHR1cmUtdGVtcGxhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpeHR1cmVUZW1wbGF0ZVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlLXRhYmxlL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlQmFzaWNEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLWJhc2ljLWRldGFpbHMvdGVtcGxhdGUtYmFzaWMtZGV0YWlscy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVWbXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvdGVtcGxhdGUtdm1zL3RlbXBsYXRlLXZtcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLXN1bW1hcnkvdGVtcGxhdGUtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVQcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZml4dHVyZS10ZW1wbGF0ZS90ZW1wbGF0ZS1wcm9kdWN0cy90ZW1wbGF0ZS1wcm9kdWN0cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9MaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3BsYW5vLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpeHR1cmVMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L2ZpeHR1cmUtbGlicmFyeS9maXh0dXJlLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFZtTGlicmFyeUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tbGlicmFyeS92bS1saWJyYXJ5L3ZtLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFByb2R1Y3RMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3Byb2R1Y3QtbGlicmFyeS9wcm9kdWN0LWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vQ29uZmlndXJhdGlvbnNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLWNvbmZpZ3VyYXRpb25zL3BsYW5vLWNvbmZpZ3VyYXRpb25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDcmVhdGVGaXh0dXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtZml4dHVyZS9jcmVhdGUtZml4dHVyZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlVm1Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS12bS9jcmVhdGUtdm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0L2NyZWF0ZS1wcm9kdWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBjYW5EZWFjdGl2YXRlR3VhcmQgfSBmcm9tIFwiLi9mdW5jdGlvbnMvZXhpdC5ndWFyZFwiO1xyXG5pbXBvcnQgeyBQbGFub1JvbGxvdXRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL3JvbGxvdXQtdGFibGUvcm9sbG91dC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9WZXJpZmljYXRpb25UYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL3ZlcmlmaWNhdGlvbi10YWJsZS92ZXJpZmljYXRpb24tdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hbmFnZVBsYW5vQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vbWFuYWdlLXBsYW5vLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub1JvbGxvdXRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL21hbmFnZS1zdG9yZS1wbGFuby9wbGFuby1yb2xsb3V0L3BsYW5vLXJvbGxvdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlQXNzaWduU3RvcmVzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLWFzc2lnbi1zdG9yZXMvdGVtcGxhdGUtYXNzaWduLXN0b3Jlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmluZEFuZFJlcGxhY2VDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvZmluZC1hbmQtcmVwbGFjZS9maW5kLWFuZC1yZXBsYWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub0J1aWxkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3BsYW5vLWJ1aWxkZXIvcGxhbm8tYnVpbGRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9NaWdyYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1taWdyYXRlL3BsYW5vLW1pZ3JhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVG9vbHNQYXJlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vRGV0YWlsc1BhcmVudENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVXBkYXRlQWlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2NvbGxlY3Rpb24tdXBkYXRlLWFpLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtdGFibGUvZmluZC1yZXBsYWNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kUmVwbGFjZUxheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29sbGVjdGlvbi11cGRhdGUtYWkvZmluZC1yZXBsYWNlLWxheW91dC9maW5kLXJlcGxhY2UtbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2ZpbmQtcmVwbGFjZS1sYXlvdXQvcHJlcGFyZS10ZW1wbGF0ZS9wcmVwYXJlLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSZXZpZXdSZXBsYWNlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtbGF5b3V0L3Jldmlldy1yZXBsYWNlL3Jldmlldy1yZXBsYWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub09uYm9hcmRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL29uYm9hcmQtdGFibGUvb25ib2FyZC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT25ib2FyZFN0b3JlUGxhbm9Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL29uYm9hcmQtc3RvcmUtcGxhbm8vb25ib2FyZC1zdG9yZS1wbGFuby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2FkUmVuZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9jYWQtcmVuZGVyL2NhZC1yZW5kZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFsbG93RWRpdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvYWxsb3ctZWRpdC9hbGxvdy1lZGl0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZWxldGVUYXNrQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9kZWxldGUtdGFzay9kZWxldGUtdGFzay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3VwZGF0ZS1maXh0dXJlLXR5cGUvdXBkYXRlLWZpeHR1cmUtdHlwZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1kYXRhLWV4cG9ydC9wbGFuby1kYXRhLWV4cG9ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVFeHBvcnRzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9zdG9yZS1leHBvcnRzL3N0b3JlLWV4cG9ydHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzL21vZGlmeS1maXh0dXJlLW51bWJlcnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN3YXBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvc3dhcC10ZW1wbGF0ZS9zd2FwLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNb3ZlQnVja2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb3ZlLWJ1Y2tldC9tb3ZlLWJ1Y2tldC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2FkRmlsZXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL2NhZC1maWxlcy9jYWQtZmlsZXMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1idWlsZGVyXCIsXHJcbiAgICBjb21wb25lbnQ6IExheW91dEJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJjcmVhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IENyZWF0ZUxheW91dENvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwic3VtbWFyeVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogTGF5b3V0U3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1lbGVtZW50c1wiLFxyXG4gICAgY29tcG9uZW50OiBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwidmlzdWFsaXplLXZtc1wiLFxyXG4gICAgY29tcG9uZW50OiBWaXN1YWxpemVWbURhdGFDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWJ1aWxkZXJcIixcclxuICAgIGNvbXBvbmVudDogU3RvcmVCdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiY3JlYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBDcmVhdGVTdG9yZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWxheW91dFwiLFxyXG4gICAgY29tcG9uZW50OiBTdG9yZUxheW91dFRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgY29tcG9uZW50OiBNYW5hZ2VQbGFub0NvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm9uYm9hcmRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vT25ib2FyZFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJ2ZXJpZmljYXRpb25cIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vVmVyaWZpY2F0aW9uVGFibGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJvbGxvdXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vUm9sbG91dFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJcIixcclxuICAgICAgICByZWRpcmVjdFRvOiBcInZlcmlmaWNhdGlvblwiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE1hbmFnZVN0b3JlUGxhbm9Db21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcIm9uYm9hcmQtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE9uYm9hcmRTdG9yZVBsYW5vQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaXh0dXJlLXRlbXBsYXRlc1wiLFxyXG4gICAgY29tcG9uZW50OiBGaXh0dXJlVGVtcGxhdGVUYWJsZUNvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiZmluZEFuZFJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZEFuZFJlcGxhY2VDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpeHR1cmUtdGVtcGxhdGVcIixcclxuICAgIGNvbXBvbmVudDogRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJiYXNpYy1kZXRhaWxzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBUZW1wbGF0ZUJhc2ljRGV0YWlsc0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwicHJvZHVjdHNcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlUHJvZHVjdHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInZtc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVWbXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN1bW1hcnlcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlU3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYXNzaWduLXN0b3Jlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVBc3NpZ25TdG9yZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIHJlZGlyZWN0VG86IFwiYmFzaWMtZGV0YWlsc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJsaWJyYXJ5XCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vTGlicmFyeUNvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImZpeHR1cmVzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBGaXh0dXJlTGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidm1zXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBWbUxpYnJhcnlDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInByb2R1Y3RzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgICAgcmVkaXJlY3RUbzogXCJmaXh0dXJlc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJjcmVhdGUtbGlicmFyeS1maXh0dXJlXCIsXHJcbiAgICBjb21wb25lbnQ6IENyZWF0ZUZpeHR1cmVDb21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktdm1cIixcclxuICAgIGNvbXBvbmVudDogQ3JlYXRlVm1Db21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktcHJvZHVjdFwiLFxyXG4gICAgY29tcG9uZW50OiBDcmVhdGVQcm9kdWN0Q29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbmZpZ1wiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0NvbmZpZ3VyYXRpb25zQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2Utcm9sbG91dFwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub1JvbGxvdXRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInBsYW5vLXRvb2xzXCIsXHJcbiAgICBjb21wb25lbnQ6IFRvb2xzUGFyZW50Q29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYnVpbGRlclwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9CdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJtaWdyYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQbGFub01pZ3JhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1yZW5kZXJcIixcclxuICAgICAgICBjb21wb25lbnQ6IENhZFJlbmRlckNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYWxsb3ctZWRpdFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQWxsb3dFZGl0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkZWxldGUtdGFza1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogRGVsZXRlVGFza0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidXBkYXRlLWZpeHR1cmUtdHlwZVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm1vZGlmeS1maXh0dXJlLW51bWJlcnNcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkYXRhLWV4cG9ydFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJzdG9yZS1leHBvcnRzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBTdG9yZUV4cG9ydHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN3YXAtdGVtcGxhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IFN3YXBUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwibW92ZS1idWNrZXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vdmVCdWNrZXRDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1maWxlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQ2FkRmlsZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJzdG9yZS1wbGFub2dyYW1zXCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vVGFibGVDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLXBsYW5vZ3JhbVwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0RldGFpbHNQYXJlbnRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpbmQtcmVwbGFjZS10YWJsZVwiLFxyXG4gICAgY29tcG9uZW50OiBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaW5kLXJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZFJlcGxhY2VMYXlvdXRDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJwcmVwYXJlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJldmlld1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUmV2aWV3UmVwbGFjZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbGxlY3Rpb24tdXBkYXRlLWFpXCIsXHJcbiAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25VcGRhdGVBaUNvbXBvbmVudCxcclxuICB9LFxyXG5dO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb1N0b3JlQnVpbGRlclJvdXRpbmdNb2R1bGUge31cclxuIl19