@pmcretail/mapper-library 0.0.41 → 0.0.43

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.
@@ -513,4 +513,4 @@ export class BasketService {
513
513
  }
514
514
  }
515
515
  }
516
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL2Jhc2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsTUFBTSxPQUFPLGFBQWE7SUF1QnhCLElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFXLGtCQUFrQixDQUFDLENBQU07UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBR0QsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE5QnhELGtCQUFhLEdBQVc7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLEVBQUUsQ0FBQztZQUNaLFlBQVksRUFBRSxFQUFFO1NBQ2pCLENBQUM7UUFFTSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDdkQsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEMsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3pELGFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxD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RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQy9DLElBQUksVUFBVSxDQUFDLGFBQWEsS0FBSyxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzt3QkFDeEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQy9CLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxRCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IERFTElWRVJZX01FVEhPRFMgfSBmcm9tICcuL21hcHBlci1saWJyYXJ5Lm1vZGVsJztcclxuaW1wb3J0IHsgQmFza2V0LCBEZWxpdmVyeUdyb3VwSW5mbywgRGVsaXZlcnlJbmZvLCBQcm9kdWN0LCBUcmFuc2FjdGlvblByb21vdGlvbiB9IGZyb20gJy4vbWFwcGVyLWxpYnJhcnkubW9kZWwnO1xyXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkRpc2NvdW50IH0gZnJvbSAnLi9tYXBwZXItbGlicmFyeS5tb2RlbCc7XHJcbmltcG9ydCB7IE51bWJlclV0aWxTZXJ2aWNlIH0gZnJvbSAnLi9udW1iZXItdXRpbC5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBCYXNrZXRTZXJ2aWNlIHtcclxuICBjdXJyZW50QmFza2V0OiBCYXNrZXQgPSB7XHJcbiAgICBwcm9kdWN0czogW10sXHJcbiAgICB0cmFuc2FjdGlvbkRpc2NvdW50OiBbXSxcclxuICAgIHF1YW50aXR5OiAwLFxyXG4gICAgdG90YWw6IDAsXHJcbiAgICBzYWxlVG90YWw6IDAsXHJcbiAgICBiYXNlQ3VycmVuY3k6ICcnXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBiYXNrZXRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XHJcbiAgYmFza2V0ID0gdGhpcy5iYXNrZXRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gIHByaXZhdGUgcHJvZHVjdFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcclxuICBwcm9kdWN0ID0gdGhpcy5wcm9kdWN0U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBwcml2YXRlIHBlZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwZWVyU3luYyA9IHRoaXMucGVlclNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBzY2FuU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XHJcbiAgc2Nhbm5lciA9IHRoaXMuc2NhblNvdXJjZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfaXNNaXhlZEJhc2tldFNhbGVzOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBnZXQgaXNNaXhlZEJhc2tldFNhbGVzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNNaXhlZEJhc2tldFNhbGVzO1xyXG4gIH1cclxuICBwdWJsaWMgc2V0IGlzTWl4ZWRCYXNrZXRTYWxlcyh2OiBhbnkpIHtcclxuICAgIHRoaXMuX2lzTWl4ZWRCYXNrZXRTYWxlcyA9IHY7XHJcbiAgfVxyXG5cclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBudW1iZXJVdGlsU2VydmljZTogTnVtYmVyVXRpbFNlcnZpY2UpIHsgfVxyXG5cclxuICB1cGRhdGVCYXNrZXQoYmFza2V0OiBCYXNrZXQpIHtcclxuICAgIHRoaXMuY3VycmVudEJhc2tldCA9IGJhc2tldDtcclxuICAgIHRoaXMuaXNNaXhlZEJhc2tldFNhbGVzID0gdGhpcy5maWx0ZXJQcm9kdWN0TGlzdFdpdGhXZWJPcmRlcih0cnVlKS5sZW5ndGggPiAwO1xyXG4gICAgdGhpcy5iYXNrZXRTb3VyY2UubmV4dChiYXNrZXQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY2FsY3VsYXRlcyB0aGUgdG90YWwgYmFza2V0IHZhbHVlIGFuZCBxdWFudGl0eVxyXG4gICAqIEBwYXJhbSAgbnVsbFxyXG4gICAqIEByZXR1cm5zIHZvaWRcclxuICAgKi9cclxuICB1cGRhdGVCYXNrZXRUb3RhbChiYXNrZXREZXRhaWxzOiB7IHF1YW50aXR5OiBudW1iZXI7IHRvdGFsOiBudW1iZXI7IHByb2R1Y3RzOiBhbnk7IHRyYW5zYWN0aW9uSWQ6IGFueTsgYmFza2V0VG90YWw6IGFueTsgfSwgYmFza2V0U3RhdGU6IHsgdXBkYXRlQmFza2V0OiAoYXJnMDogYW55KSA9PiB2b2lkOyB9KSB7XHJcbiAgICBiYXNrZXREZXRhaWxzLnF1YW50aXR5ID0gMDtcclxuICAgIGJhc2tldERldGFpbHMudG90YWwgPSAwO1xyXG4gICAgZm9yIChjb25zdCBwIG9mIGJhc2tldERldGFpbHMucHJvZHVjdHMpIHtcclxuICAgICAgYmFza2V0RGV0YWlscy5xdWFudGl0eSA9IGJhc2tldERldGFpbHMucXVhbnRpdHkgKyBwLnF1YW50aXR5O1xyXG4gICAgICBiYXNrZXREZXRhaWxzLnRvdGFsID1cclxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsKGJhc2tldERldGFpbHMudG90YWwpICtcclxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsKHAudG90YWwpO1xyXG4gICAgfVxyXG4gICAgY29uc29sZS5sb2coXHJcbiAgICAgIFwiZTpiYXNrZXQgOmJhc2tldCBzZXJ2aWNlIDogYmFza2V0RGV0YWlscyB1cGRhdGVkIHZhbHVlcyBmb3IgdHJhbnNhY3Rpb24gaWRcIixcclxuICAgICAgYmFza2V0RGV0YWlscy50cmFuc2FjdGlvbklkLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXREZXRhaWxzKVxyXG4gICAgKTtcclxuICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWwgPSBiYXNrZXREZXRhaWxzLnRvdGFsO1xyXG4gICAgYmFza2V0U3RhdGUudXBkYXRlQmFza2V0KGJhc2tldERldGFpbHMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYWRkIExpbmUgcHJvbW90aW9uXHJcbiAgICogQHBhcmFtICBudWxsXHJcbiAgICogQHJldHVybnMgYmFza2V0RGV0YWlsc1xyXG4gICAqL1xyXG4gIGFkZGxpbmVQcm9tb3Rpb24ocHJvbW90aW9uTGlzdDogeyByZXN1bHQ6IHsgbGluZVByb21vdGlvbnM6IHN0cmluZyB8IGFueVtdOyB9OyB9LCBiYXNrZXREZXRhaWxzOiB7IHByb2R1Y3RzOiBhbnk7IH0pIHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcImU6YmFza2V0IDpiYXNrZXQgU2VydmljZSA6IHByb21vdGlvbkxpc3QgYW5kIGJhc2tldERldGFpbHMgZm9yIGxpbmVQcm9tb3Rpb25zXCIsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHByb21vdGlvbkxpc3QpLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXREZXRhaWxzKVxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgcHJvbW90aW9uTGlzdCAmJlxyXG4gICAgICBwcm9tb3Rpb25MaXN0LnJlc3VsdCAmJlxyXG4gICAgICBwcm9tb3Rpb25MaXN0LnJlc3VsdC5saW5lUHJvbW90aW9ucyAmJlxyXG4gICAgICBwcm9tb3Rpb25MaXN0LnJlc3VsdC5saW5lUHJvbW90aW9ucy5sZW5ndGggPiAwXHJcbiAgICApIHtcclxuICAgICAgZm9yICh2YXIgZWxlbWVudCBvZiBiYXNrZXREZXRhaWxzLnByb2R1Y3RzKSB7XHJcbiAgICAgICAgZm9yICh2YXIgcHJvbW90aW9uZWxlbWVudCBvZiBwcm9tb3Rpb25MaXN0LnJlc3VsdC5saW5lUHJvbW90aW9ucykge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBlbGVtZW50Lml0ZW1MaW5lSWQudG9TdHJpbmcoKSA9PT1cclxuICAgICAgICAgICAgcHJvbW90aW9uZWxlbWVudC5pdGVtTGluZUlkLnRvU3RyaW5nKClcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBlbGVtZW50LmxpbmVQcm9tb3Rpb25zID0gcHJvbW90aW9uZWxlbWVudDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBiYXNrZXREZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogYWRkIFRyYW5zYWN0aW9uIHByb21vdGlvblxyXG4gICAqIEBwYXJhbSAgbnVsbFxyXG4gICAqIEByZXR1cm5zIGJhc2tldERldGFpbHNcclxuICAgKi9cclxuXHJcbiAgYWRkVHJhbnNhY3Rpb25Qcm9tb3Rpb24ocHJvbW90aW9uTGlzdDogeyByZXN1bHQ6IHsgdHJhbnNhY3Rpb25Qcm9tb3Rpb246IGFueSB9OyB9LCBiYXNrZXRkZXRhaWxzOiBCYXNrZXQpIHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcImU6YmFza2V0IDpiYXNrZXQgU2VydmljZSA6IHByb21vdGlvbkxpc3QgYW5kIGJhc2tldERldGFpbHMgZm9yIHRyYW5zYWN0aW9uUHJvbW90aW9uXCIsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHByb21vdGlvbkxpc3QpLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXRkZXRhaWxzKSxcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0ZGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbilcclxuICAgICk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHByb21vdGlvbkxpc3QgJiZcclxuICAgICAgcHJvbW90aW9uTGlzdC5yZXN1bHQgJiZcclxuICAgICAgcHJvbW90aW9uTGlzdC5yZXN1bHQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gJiZcclxuICAgICAgcHJvbW90aW9uTGlzdC5yZXN1bHQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ubGVuZ3RoID4gMFxyXG4gICAgKSB7XHJcbiAgICAgIHByb21vdGlvbkxpc3QucmVzdWx0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmZvckVhY2goKHRQcm9tb3Rpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbkVudHJ5VXBkYXRlZDogYW55ID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAgICAgIHt9LFxyXG4gICAgICAgICAgdFByb21vdGlvblxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uRW50cnlVcGRhdGVkLml0ZW1MaW5lSWRzID0gYmFza2V0ZGV0YWlscy5wcm9kdWN0cy5tYXAoXHJcbiAgICAgICAgICAocHJvZHVjdCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcHJvZHVjdC5pdGVtTGluZUlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGlmICghYmFza2V0ZGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbikge1xyXG4gICAgICAgICAgYmFza2V0ZGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbiA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBiYXNrZXRkZXRhaWxzLnRyYW5zYWN0aW9uUHJvbW90aW9uLnB1c2goXHJcbiAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbkVudHJ5VXBkYXRlZFxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIGJhc2tldGRldGFpbHMgPSB0aGlzLnRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjKFxyXG4gICAgICAgICAgYmFza2V0ZGV0YWlscyxcclxuICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uRW50cnlVcGRhdGVkXHJcbiAgICAgICAgKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgXCJiYXNrZXQgZGV0YWlscyBpbiByZWZ1bmQgY2FsY3VsYXRpb24gZmlsZVwiLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXRkZXRhaWxzKVxyXG4gICAgKTtcclxuICAgIHJldHVybiBiYXNrZXRkZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZHVjdFRvdGFsRm9yU3VtbWFyeShiYXNrZXREZXRhaWxzOiB7IHRvdGFsOiBzdHJpbmcgfCBudW1iZXI7IHF1YW50aXR5OiBzdHJpbmcgfCBudW1iZXI7IHByb2R1Y3RzOiBhbnk7IH0pIHtcclxuICAgIC8qc2FsZS0gICAgICAgICAgICBwcm9kdWN0IHJlZnVuZGVkUXVhbnRpdHkgPSB1bmRlZmluZWRcclxuICAgIHBhcnRpYWwgcmVmdW5kIC0gICBwcm9kdWN0IHJlZnVuZGVkUXVhbnRpdHkgaXMgPiAwXHJcbiAgICB0b3RhbCByZWZ1bmQgLSAgICAgcHJvdWRjdCByZWZ1bmRlZFF1YW50aXR5IGlzID4gMFxyXG4gICAgZXhjaGFuZ2UgLSAgICAgICAgIGV4Y2hhbmdlIHByb2R1Y3QgcmVmdW5kZWRRdWFudGl0eSBpcyA+IDAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIG5ldyBwcm9kdWN0IHJlZnVuZGVkUXVhbnRpdHkgPSB1bmRlZmluZWQgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgIG9sZCBwcm9kdWN0IHdpdGhvdXQgZXhjaGFuZ2UgcmVmdW5kZWRRdWFudGl0eSA9IDBcclxuICAgIHVucmVmZXJlbmNlIHJlZnVuZC1wcm9kdWN0IHJlZnVuZGVkUXVhbnRpdHkgaXMgPiAwICovXHJcblxyXG4gICAgYmFza2V0RGV0YWlscy50b3RhbCA9IDA7XHJcbiAgICBiYXNrZXREZXRhaWxzLnF1YW50aXR5ID0gMDtcclxuICAgIGZvciAodmFyIHByb2R1Y3Qgb2YgYmFza2V0RGV0YWlscy5wcm9kdWN0cykge1xyXG4gICAgICBpZiAocHJvZHVjdC5saW5lUHJvbW90aW9ucykge1xyXG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LmxpbmVQcm9tb3Rpb25zLnByb21vdGlvbkxpbmVQcmljZTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9kdWN0LmxpbmVEaXNjb3VudCAmJiAhcHJvZHVjdC5saW5lUHJvbW90aW9ucykge1xyXG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LmxpbmVEaXNjb3VudC5kaXNjb3VudGVkTGluZVByaWNlO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LnRvdGFsTGluZVByaWNlO1xyXG4gICAgICB9XHJcbiAgICAgIHByb2R1Y3QudG90YWwgPVxyXG4gICAgICAgIHByb2R1Y3QudG90YWwgLVxyXG4gICAgICAgIE1hdGguYWJzKHByb2R1Y3QucmVmdW5kZWRUb3RhbCA/IHByb2R1Y3QucmVmdW5kZWRUb3RhbCA6IDApO1xyXG5cclxuICAgICAgYmFza2V0RGV0YWlscy50b3RhbCArPSBwcm9kdWN0LnRvdGFsO1xyXG4gICAgICBiYXNrZXREZXRhaWxzLnF1YW50aXR5ID1cclxuICAgICAgICBiYXNrZXREZXRhaWxzLnF1YW50aXR5ICtcclxuICAgICAgICAocHJvZHVjdC5xdWFudGl0eSAtXHJcbiAgICAgICAgICAocHJvZHVjdC5yZWZ1bmRlZFF1YW50aXR5ID8gcHJvZHVjdC5yZWZ1bmRlZFF1YW50aXR5IDogMCkpO1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcImUtYmFza2V0OkV4Y2hhbmdlU3VtbWFyeVNjcmVlbjp1cGRhdGUgYmFza2V0ZGV0YWlscyB0b3RhbCA6XCIgK1xyXG4gICAgICAgIGJhc2tldERldGFpbHMudG90YWwgK1xyXG4gICAgICAgIFwiIFByb2R1Y3QgbGluZSBJRCA6IFwiICtcclxuICAgICAgICBwcm9kdWN0Lml0ZW1MaW5lSWQgK1xyXG4gICAgICAgIFwiIHByb2R1Y3QgdG90YWwgOiBcIiArXHJcbiAgICAgICAgcHJvZHVjdC50b3RhbCxcclxuICAgICAgICBcInF1YW50aXR5ICA6IFwiICsgYmFza2V0RGV0YWlscy5xdWFudGl0eVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMudXBkYXRlQmFza2V0VG90YWxGb3JTdW1tYXJ5KGJhc2tldERldGFpbHMpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmFza2V0VG90YWxGb3JTdW1tYXJ5KGJhc2tldERldGFpbHM6IGFueSkge1xyXG4gICAgYmFza2V0RGV0YWlscy5iYXNrZXRUb3RhbCA9IGJhc2tldERldGFpbHMudG90YWw7XHJcbiAgICBjb25zb2xlLmluZm8oXHJcbiAgICAgIFwiZWJhc2tldCA6IGJhc2tldCBTZXJ2aWNlIDogdXBkYXRlIEJhc2tldCBUb3RhbCBmb3IgdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb25EaXNjb3VudCAgXCIsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGJhc2tldERldGFpbHMudHJhbnNhY3Rpb25EaXNjb3VudClcclxuICAgICk7XHJcblxyXG4gICAgY29uc29sZS5pbmZvKFxyXG4gICAgICBcImViYXNrZXQgOiBiYXNrZXQgU2VydmljZSA6IHVwZGF0ZSBCYXNrZXQgVG90YWwgZm9yIHRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uUHJvbW90aW9uICBcIixcclxuICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0RGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbilcclxuICAgICk7XHJcblxyXG4gICAgYmFza2V0RGV0YWlscyA9IHRoaXMudXBkYXRlVHJhbnNhY3Rpb25Qcm9tb3Rpb24oYmFza2V0RGV0YWlscyk7XHJcbiAgICBiYXNrZXREZXRhaWxzID0gdGhpcy51cGRhdGVUcmFuc2FjdGlvbkRpc2NvdW50KGJhc2tldERldGFpbHMpO1xyXG4gICAgYmFza2V0RGV0YWlscy5iYXNrZXRUb3RhbCA9IE51bWJlcihiYXNrZXREZXRhaWxzLmJhc2tldFRvdGFsLnRvRml4ZWQoMikpO1xyXG5cclxuICAgIGNvbnNvbGUuaW5mbyhcclxuICAgICAgXCJlYmFza2V0IDogYmFza2V0IFNlcnZpY2UgOiB1cGRhdGUgQmFza2V0IFRvdGFsOiBiYXNrZXRUb3RhbCBhZnRlciBwcm9tb3Rpb24gYXBwbGllZCAgZm9yIGJhc2tldFRvdGFsXCIsXHJcbiAgICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWxcclxuICAgICk7XHJcbiAgICByZXR1cm4gYmFza2V0RGV0YWlscztcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRyYW5zYWN0aW9uRGlzY291bnQoYmFza2V0RGV0YWlsczogeyB0cmFuc2FjdGlvbkRpc2NvdW50OiBhbnlbXTsgYmFza2V0VG90YWw6IG51bWJlcjsgfSkge1xyXG4gICAgaWYgKFxyXG4gICAgICBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uRGlzY291bnQgJiZcclxuICAgICAgYmFza2V0RGV0YWlscy50cmFuc2FjdGlvbkRpc2NvdW50Lmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICBjb25zdCBkaXNjb3VudFRvdGFsID0gYmFza2V0RGV0YWlscy50cmFuc2FjdGlvbkRpc2NvdW50LnJlZHVjZShcclxuICAgICAgICAobjogYW55LCB7IGRpc2NvdW50QW1vdW50IH06IGFueSkgPT4gbiArIGRpc2NvdW50QW1vdW50LFxyXG4gICAgICAgIDBcclxuICAgICAgKTtcclxuICAgICAgY29uc29sZS5sb2coXCJlYmFza2V0IDogYmFza2V0IFNlcnZpY2UgOiAgZGlzY291bnRUb3RhbCBcIiwgZGlzY291bnRUb3RhbCk7XHJcbiAgICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWwgPVxyXG4gICAgICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWwgLSBNYXRoLmFicyhkaXNjb3VudFRvdGFsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBiYXNrZXREZXRhaWxzO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVHJhbnNhY3Rpb25Qcm9tb3Rpb24oYmFza2V0RGV0YWlsczogeyB0cmFuc2FjdGlvblByb21vdGlvbjogYW55W107IGJhc2tldFRvdGFsOiBudW1iZXI7IH0pIHtcclxuICAgIGlmIChcclxuICAgICAgYmFza2V0RGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbiAmJlxyXG4gICAgICBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uUHJvbW90aW9uLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICBjb25zdCBkaXNjb3VudFRvdGFsID0gYmFza2V0RGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbi5yZWR1Y2UoXHJcbiAgICAgICAgKG46IGFueSwgeyBwcm9tb3Rpb25BbW91bnQgfTogYW55KSA9PiBuICsgcHJvbW90aW9uQW1vdW50LFxyXG4gICAgICAgIDBcclxuICAgICAgKTtcclxuICAgICAgYmFza2V0RGV0YWlscy5iYXNrZXRUb3RhbCA9XHJcbiAgICAgICAgYmFza2V0RGV0YWlscy5iYXNrZXRUb3RhbCAtIE1hdGguYWJzKGRpc2NvdW50VG90YWwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJhc2tldERldGFpbHM7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVCYXNrZXRUb3RhbFdpdGhvdXREaXNjb3VudChiYXNrZXQ6IEJhc2tldCk6IEJhc2tldCB7XHJcbiAgICBiYXNrZXQudG90YWwgPSAwO1xyXG4gICAgYmFza2V0LnF1YW50aXR5ID0gMDtcclxuXHJcbiAgICBmb3IgKHZhciBwcm9kdWN0IG9mIGJhc2tldC5wcm9kdWN0cykge1xyXG4gICAgICBpZiAocHJvZHVjdC5saW5lUHJvbW90aW9ucykge1xyXG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LmxpbmVQcm9tb3Rpb25zLnByb21vdGlvbkxpbmVQcmljZTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9kdWN0LmxpbmVEaXNjb3VudCAmJiAhcHJvZHVjdC5saW5lUHJvbW90aW9ucykge1xyXG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LmxpbmVEaXNjb3VudC5kaXNjb3VudGVkTGluZVByaWNlIHx8IDA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcHJvZHVjdC50b3RhbCA9IHByb2R1Y3QudG90YWxMaW5lUHJpY2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHByb2R1Y3QudG90YWwgPVxyXG4gICAgICAgIHByb2R1Y3QudG90YWwgLVxyXG4gICAgICAgIE1hdGguYWJzKHByb2R1Y3QucmVmdW5kZWRUb3RhbCA/IHByb2R1Y3QucmVmdW5kZWRUb3RhbCA6IDApO1xyXG4gICAgICBiYXNrZXQudG90YWwgKz0gcHJvZHVjdC50b3RhbDtcclxuICAgICAgYmFza2V0LnF1YW50aXR5ID1cclxuICAgICAgICBiYXNrZXQucXVhbnRpdHkgK1xyXG4gICAgICAgIChwcm9kdWN0LnF1YW50aXR5IC1cclxuICAgICAgICAgIChwcm9kdWN0LnJlZnVuZGVkUXVhbnRpdHkgPyBwcm9kdWN0LnJlZnVuZGVkUXVhbnRpdHkgOiAwKSk7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBcImUtYmFza2V0OmJhc2tldCBzZXJ2aWNlOnVwZGF0ZSBiYXNrZXRkZXRhaWxzIHRvdGFsIDpcIiArXHJcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0KSArXHJcbiAgICAgICAgYmFza2V0LnRvdGFsICtcclxuICAgICAgICBcIiBQcm9kdWN0IGxpbmUgSUQgOiBcIiArXHJcbiAgICAgICAgcHJvZHVjdC5pdGVtTGluZUlkICtcclxuICAgICAgICBcIiBwcm9kdWN0IHRvdGFsIDogXCIgK1xyXG4gICAgICAgIHByb2R1Y3QudG90YWxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBiYXNrZXQuYmFza2V0VG90YWwgPSBiYXNrZXQudG90YWw7XHJcbiAgICByZXR1cm4gYmFza2V0O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmFza2V0VG90YWxXaXRoRGlzY291bnRzKGJhc2tldDogYW55KTogQmFza2V0IHtcclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcImU6YmFza2V0IDpSZWZ1bmRCYXNrZXRTY3JlZW4gOiB0aGlzLmJhc2tldERldGFpbHMgbmV3IHZhbHVlc1wiLFxyXG4gICAgICBiYXNrZXQsXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KGJhc2tldC5iYXNrZXRUb3RhbClcclxuICAgICk7XHJcbiAgICBpZiAoYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uICYmIGJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGNvbnN0IGRpc2NvdW50VG90YWwgPSBiYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ucmVkdWNlKFxyXG4gICAgICAgIChuOiBhbnksIHsgcHJvbW90aW9uQW1vdW50IH06IGFueSkgPT4gbiArIHByb21vdGlvbkFtb3VudCxcclxuICAgICAgICAwXHJcbiAgICAgICk7XHJcbiAgICAgIGJhc2tldC5iYXNrZXRUb3RhbCA9IGJhc2tldC5iYXNrZXRUb3RhbCAtIGRpc2NvdW50VG90YWw7XHJcbiAgICB9XHJcbiAgICBpZiAoYmFza2V0LnRyYW5zYWN0aW9uRGlzY291bnQgJiYgYmFza2V0LnRyYW5zYWN0aW9uRGlzY291bnQubGVuZ3RoID4gMCkge1xyXG4gICAgICBjb25zdCBkaXNjb3VudFRvdGFsID0gYmFza2V0LnRyYW5zYWN0aW9uRGlzY291bnQucmVkdWNlKFxyXG4gICAgICAgIChuOiBhbnksIHsgZGlzY291bnRBbW91bnQgfTogYW55KSA9PiBuICsgZGlzY291bnRBbW91bnQsXHJcbiAgICAgICAgMFxyXG4gICAgICApO1xyXG5cclxuICAgICAgYmFza2V0LmJhc2tldFRvdGFsID0gYmFza2V0LmJhc2tldFRvdGFsIC0gZGlzY291bnRUb3RhbDtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcImU6YmFza2V0IDpSZWZ1bmRCYXNrZXRTY3JlZW4gOiBiYXNrZXQgbmV3IHZhbHVlc1wiLFxyXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXQpXHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBiYXNrZXQ7XHJcbiAgfVxyXG5cclxuICB0cmFuc2FjdGlvbkRpc2NvdW50QW5kUHJvbW90aW9uUHJvZHVjdG9ydGlvbkNhbGN1bGF0aW9uKGJhc2tldDogQmFza2V0KSB7XHJcbiAgICBpZiAoYmFza2V0LnRyYW5zYWN0aW9uRGlzY291bnQgJiYgYmFza2V0LnRyYW5zYWN0aW9uRGlzY291bnQubGVuZ3RoID4gMCkge1xyXG4gICAgICBiYXNrZXQudHJhbnNhY3Rpb25EaXNjb3VudC5mb3JFYWNoKFxyXG4gICAgICAgIChkaXNjb3VudCkgPT5cclxuICAgICAgICAoYmFza2V0ID0gdGhpcy50cmFuc2FjdGlvbkRpc2NvdW50UHJvZHVjdFBvcnRpb25DYWxjKFxyXG4gICAgICAgICAgYmFza2V0LFxyXG4gICAgICAgICAgZGlzY291bnRcclxuICAgICAgICApKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChiYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gJiYgYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmxlbmd0aCA+IDApIHtcclxuICAgICAgYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmZvckVhY2goKHByb21vdGlvbikgPT4ge1xyXG4gICAgICAgIGJhc2tldCA9IHRoaXMudHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGMoYmFza2V0LCBwcm9tb3Rpb24pO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBcImViYXNrZXQ6IGJhc2tldCBpdGVtIGRpc2NvdW50IHByb3Rpb24gY2FsY3VsYXRpb25cIixcclxuICAgICAgYmFza2V0LFxyXG4gICAgICBiYXNrZXQucHJvZHVjdHNcclxuICAgICk7XHJcbiAgICByZXR1cm4gYmFza2V0O1xyXG4gIH1cclxuXHJcbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGMoXHJcbiAgICBiYXNrZXQ6IGFueSxcclxuICAgIHByb21vdGlvbjogYW55XHJcbiAgKSB7XHJcbiAgICBsZXQgdG90YWwgPSAwO1xyXG4gICAgbGV0IHBlcmNlbnRhZ2UgPSAwO1xyXG4gICAge1xyXG4gICAgICBiYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocDphbnkpID0+IHtcclxuICAgICAgICBpZiAocHJvbW90aW9uLml0ZW1MaW5lSWRzLmluY2x1ZGVzKHAuaXRlbUxpbmVJZCkpIHtcclxuICAgICAgICAgIHAgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwKTtcclxuICAgICAgICAgIGNvbnN0IHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsID1cclxuICAgICAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocC5pdGVtRGlzY291bnRzLnRybkRpc2NvdW50c1BvcnRpb24pICtcclxuICAgICAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uKSAtXHJcbiAgICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHAuaXRlbURpc2NvdW50cy5yZWZ1bmRQb3J0aW9uKTtcclxuICAgICAgICAgIHRvdGFsICs9IChwLnRvdGFsIC0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdENvbnRyaWJ1dGlvbkluVG90YWwpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBjb25zb2xlLmxvZyhcclxuICAgICAgICBgZWJhc2tldDogdHJuc2FjdGlvblByb21vdGlvbjogJHtKU09OLnN0cmluZ2lmeShcclxuICAgICAgICAgIHByb21vdGlvblxyXG4gICAgICAgICl9LCBzZWxlY3RlZCBwcm9kdWN0cyB0b3RhbDogJHt0b3RhbH1gXHJcbiAgICAgICk7XHJcbiAgICAgIGJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0OiBhbnkpID0+IHtcclxuICAgICAgICBwcm9kdWN0ID0gdGhpcy52YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsID1cclxuICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5EaXNjb3VudHNQb3J0aW9uKSArXHJcbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24pIC1cclxuICAgICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy5yZWZ1bmRQb3J0aW9uKTtcclxuXHJcbiAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcyhwcm9kdWN0Lml0ZW1MaW5lSWQpKSB7XHJcbiAgICAgICAgICBwZXJjZW50YWdlID0gKChwcm9kdWN0LnRvdGFsIC0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdENvbnRyaWJ1dGlvbkluVG90YWwpKSAvIHRvdGFsKSAqIDEwMDtcclxuICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiArPVxyXG4gICAgICAgICAgICAocHJvbW90aW9uLnByb21vdGlvbkFtb3VudCAqIHBlcmNlbnRhZ2UpIC8gMTAwO1xyXG4gICAgICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uID0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGJhc2tldDtcclxuICB9XHJcblxyXG4gIHRyYW5zYWN0aW9uRGlzY291bnRQcm9kdWN0UG9ydGlvbkNhbGMoXHJcbiAgICBiYXNrZXQ6IGFueSxcclxuICAgIGRpc2NvdW50OiBhbnlcclxuICApIHtcclxuICAgIGxldCB0b3RhbCA9IDA7XHJcbiAgICBsZXQgcGVyY2VudGFnZSA9IDA7XHJcblxyXG4gICAgYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHA6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoZGlzY291bnQuaXRlbUxpbmVJZHMuaW5jbHVkZXMocC5pdGVtTGluZUlkKSkge1xyXG4gICAgICAgIHAgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwKTtcclxuICAgICAgICBjb25zdCBwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCA9XHJcbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbikgK1xyXG4gICAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uKSAtXHJcbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMucmVmdW5kUG9ydGlvbik7XHJcblxyXG5cclxuICAgICAgICB0b3RhbCArPSAocC50b3RhbCAtIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsKSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICBgZWJhc2tldDogdHJuc2FjdGlvbkRpc2NvdW50OiAke0pTT04uc3RyaW5naWZ5KFxyXG4gICAgICAgIGRpc2NvdW50XHJcbiAgICAgICl9LCBzZWxlY3RlZCBwcm9kdWN0cyB0b3RhbDogJHt0b3RhbH1gXHJcbiAgICApO1xyXG5cclxuICAgIGJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0OmFueSkgPT4ge1xyXG4gICAgICBwcm9kdWN0ID0gdGhpcy52YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHByb2R1Y3QuZGlzY291bnRhYmxlLCBcImViYXNrZXQgOiBiYXNrZXQgc2VydmljZSA6IGRpc2NvdW50YWJsZSBpbiBiYXNrZXQgc2VydmljZVwiKTtcclxuXHJcbiAgICAgIGNvbnN0IHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsID1cclxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbikgK1xyXG4gICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbikgLVxyXG4gICAgICAgIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy5yZWZ1bmRQb3J0aW9uKTtcclxuXHJcbiAgICAgIGlmIChkaXNjb3VudC5pdGVtTGluZUlkcy5pbmNsdWRlcyhwcm9kdWN0Lml0ZW1MaW5lSWQpICYmIHByb2R1Y3QuZGlzY291bnRhYmxlID09IHRydWUpIHtcclxuICAgICAgICBwZXJjZW50YWdlID0gKChwcm9kdWN0LnRvdGFsIC0gdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdENvbnRyaWJ1dGlvbkluVG90YWwpKSAvIHRvdGFsKSAqIDEwMDtcclxuICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbiArPVxyXG4gICAgICAgICAgKGRpc2NvdW50LmRpc2NvdW50QW1vdW50ICogcGVyY2VudGFnZSkgLyAxMDA7XHJcbiAgICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzLnRybkRpc2NvdW50c1BvcnRpb24gPSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbilcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYmFza2V0O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICBpZiAoIXByb2R1Y3QuaXRlbURpc2NvdW50cykge1xyXG4gICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMgPSB7XHJcbiAgICAgICAgdHJuRGlzY291bnRzUG9ydGlvbjogMCxcclxuICAgICAgICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjogMCxcclxuICAgICAgICByZWZ1bmRQb3J0aW9uOiAwLFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByb2R1Y3Q7XHJcbiAgfVxyXG5cclxuICBtYXJrUHJvZHVjdChwcm9kdWN0OiBQcm9kdWN0KSB7XHJcbiAgICB0aGlzLnByb2R1Y3RTb3VyY2UubmV4dChwcm9kdWN0KTtcclxuICB9XHJcbiAgc3RvcFBlZXJTeW5jUHJvY2VzcyhwZWVyU3luYzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5wZWVyU291cmNlLm5leHQocGVlclN5bmMpO1xyXG4gIH1cclxuXHJcbiAgc2NhblN0YXJ0KGlzU2Nhbm5pbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2NhblNvdXJjZS5uZXh0KGlzU2Nhbm5pbmcpO1xyXG4gIH1cclxuXHJcbiAgcHJvbW90aW9uUmVtYWluaW5nQ2FsY3VsYXRpb24ocHJvbW90aW9uOiBUcmFuc2FjdGlvblByb21vdGlvbltdKSB7XHJcbiAgICB2YXIgcHJvbW90aW9uVmFsdWUgPSAwO1xyXG4gICAgcHJvbW90aW9uLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgcHJvbW90aW9uVmFsdWUgKz0gZWxlbWVudC5wcm9tb3Rpb25BbW91bnQ7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBwcm9tb3Rpb25WYWx1ZTtcclxuICB9XHJcblxyXG4gIGRpc2NvdW50UmVtYWluaW5nQ2FsY3VsYXRpb24oZGlzY291bnQ6IFRyYW5zYWN0aW9uRGlzY291bnRbXSkge1xyXG4gICAgdmFyIGRpc2NvdW50VmFsdWUgPSAwO1xyXG4gICAgZGlzY291bnQuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBkaXNjb3VudFZhbHVlICs9IGVsZW1lbnQuZGlzY291bnRBbW91bnQ7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkaXNjb3VudFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZGlzY291bnRSZWZ1bmRlZENhbGN1bGF0aW9uKGRpc2NvdW50OiBUcmFuc2FjdGlvbkRpc2NvdW50W10pIHtcclxuICAgIHZhciBkaXNjb3VudFZhbHVlID0gMDtcclxuICAgIGRpc2NvdW50LmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgaWYgKGVsZW1lbnQuZGlzY291bnRBbW91bnQgPCAwKSB7XHJcbiAgICAgICAgZGlzY291bnRWYWx1ZSArPSBlbGVtZW50LmRpc2NvdW50QW1vdW50O1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkaXNjb3VudFZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVOZXdJdGVtTGluZUlkKHByb2R1Y3RzOiBQcm9kdWN0W10pIHtcclxuICAgIGxldCBsYXJnZXN0TnVtYmVyOiBhbnkgPSAwO1xyXG5cclxuICAgIGlmIChwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBpdGVtTGluZUlkQXJyYXkgPSBwcm9kdWN0cy5tYXAoKHByb2R1Y3QpID0+IHtcclxuICAgICAgICByZXR1cm4gcHJvZHVjdC5pdGVtTGluZUlkO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGxhcmdlc3ROdW1iZXIgPSBpdGVtTGluZUlkQXJyYXkucmVkdWNlKChhIDphbnksIGI6YW55KSA9PiBNYXRoLm1heChhLCBiKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxhcmdlc3ROdW1iZXIgKyAxO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQmFza2V0UHJvZHVjdERhdGFBc1BlclF1YW50aXR5KFxyXG4gICAgcHJvZHVjdDogYW55LFxyXG4gICAgcXVhbnRpdHk6IG51bWJlclxyXG4gICk6IFByb2R1Y3Qge1xyXG5cclxuICAgIGNvbnNvbGUubG9nKGBlYmFza2V0OiB1cGRhdGVCYXNrZXRQcm9kdWN0RGF0YUFzUGVyUXVhbnRpdHkgOiAke3F1YW50aXR5fSBwcm9kdWN0OiAke0pTT04uc3RyaW5naWZ5KHByb2R1Y3QpfWApO1xyXG4gICAgcHJvZHVjdC5xdWFudGl0eSA9IHF1YW50aXR5O1xyXG4gICAgaWYgKHByb2R1Y3QuaGFzT3duUHJvcGVydHkoXCJsaW5lRGlzY291bnRcIikpIHtcclxuICAgICAgLy8gJiYgdGhpcy5wcm9kdWN0LnF1YW50aXR5ICE9PSB0aGlzLnByb2R1Y3REZXRhaWxGb3JtLmNvbnRyb2xzLnF1YW50aXR5LnZhbHVlXHJcbiAgICAgIHByb2R1Y3QubGluZURpc2NvdW50LmRpc2NvdW50ZWRMaW5lUHJpY2UgPSBOdW1iZXIoXHJcbiAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS5nZXRGbG9vcmVkRml4ZWQoXHJcbiAgICAgICAgICBwcm9kdWN0LmxpbmVEaXNjb3VudC51bml0UHJpY2UgKiBxdWFudGl0eSxcclxuICAgICAgICAgIDJcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICAgIHByb2R1Y3QubGluZURpc2NvdW50LmRpc2NvdW50QW1vdW50ID1cclxuICAgICAgICBwcm9kdWN0LnRvdGFsTGluZVByaWNlIC0gcHJvZHVjdC5saW5lRGlzY291bnQuZGlzY291bnRlZExpbmVQcmljZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb2R1Y3QudG90YWxMaW5lUHJpY2UgPVxyXG4gICAgICAgIHF1YW50aXR5ICogdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbChwcm9kdWN0LnNlbGVjdGVkUHJpY2UpO1xyXG4gICAgfVxyXG4gICAgaWYgKHByb2R1Y3QubGluZURpc2NvdW50KSB7XHJcbiAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LmxpbmVEaXNjb3VudC5kaXNjb3VudGVkTGluZVByaWNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvZHVjdC50b3RhbCA9IHByb2R1Y3QudG90YWxMaW5lUHJpY2U7XHJcbiAgICB9XHJcbiAgICBjb25zb2xlLmxvZyhgZWJhc2tldDogdXBkYXRlQmFza2V0UHJvZHVjdERhdGFBc1BlclF1YW50aXR5IDogJHtxdWFudGl0eX0gcHJvZHVjdDogJHtKU09OLnN0cmluZ2lmeShwcm9kdWN0KX1gKTtcclxuXHJcbiAgICByZXR1cm4gcHJvZHVjdDtcclxuICB9XHJcblxyXG4gIGZpbHRlclByb2R1Y3RMaXN0V2l0aFdlYk9yZGVyKGlzV2ViT3JkZXI6IGJvb2xlYW4pOiBQcm9kdWN0W10ge1xyXG4gICAgY29uc29sZS5sb2coXCJlYmFza2V0OiBmaWx0ZXJQcm9kdWN0TGlzdFdpdGhXZWJPcmRlciBoaXRcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy5jdXJyZW50QmFza2V0LnByb2R1Y3RzKSk7XHJcbiAgICBpZiAoaXNXZWJPcmRlcilcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cy5maWx0ZXIoKHgpID0+IHguaXNXZWJPcmRlcik7XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cy5maWx0ZXIoKHgpID0+ICF4LmlzV2ViT3JkZXIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyUHJvZHVjdExpc3RXaXRoRGVsaXZlcnkoKTogUHJvZHVjdFtdIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZWJhc2tldDogZmlsdGVyUHJvZHVjdExpc3RXaXRoRGVsaXZlcnkgaGl0XCIsIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cykpO1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cy5maWx0ZXIoKHgpID0+IHguZGVsaXZlcnlNZXRob2QgPT09IERFTElWRVJZX01FVEhPRFMuREVMSVZFUlkudG9TdHJpbmcoKSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJQcm9kdWN0TGlzdFdpdGhEZWxpdmVyeUdyb3VwKGdyb3VwOiBzdHJpbmcsIHByb2R1Y3RzOiBQcm9kdWN0W10pOiBQcm9kdWN0W10ge1xyXG4gICAgY29uc29sZS5sb2coXCJlYmFza2V0OiBmaWx0ZXJQcm9kdWN0TGlzdFdpdGhEZWxpdmVyeUdyb3VwIGhpdFwiLCBKU09OLnN0cmluZ2lmeShwcm9kdWN0cykpO1xyXG4gICAgcmV0dXJuIHByb2R1Y3RzLmZpbHRlcigoeCkgPT4geC5kZWxpdmVyeUdyb3VwID09PSBncm91cCk7XHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZU5ld0RlbGl2ZXJ5R3JvdXBOdW1iZXIocHJvZHVjdHM6IFByb2R1Y3RbXSkge1xyXG4gICAgbGV0IGxhcmdlc3ROdW1iZXIgPSAwO1xyXG5cclxuICAgIGlmIChwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkZWxpdmVyeUdyb3VwQXJyID0gcHJvZHVjdHMubWFwKChwcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2R1Y3QuZGVsaXZlcnlHcm91cCkge1xyXG4gICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHByb2R1Y3QuZGVsaXZlcnlHcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAwO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICAgIGxhcmdlc3ROdW1iZXIgPSBkZWxpdmVyeUdyb3VwQXJyLnJlZHVjZSgoYSwgYikgPT4gTWF0aC5tYXgoYSwgYikpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAobGFyZ2VzdE51bWJlciArIDEpLnRvU3RyaW5nKCk7XHJcbiAgfVxyXG5cclxuICBnZXREZWxpdmVyeUdyb3VwTnVtYmVycyhwcm9kdWN0czogUHJvZHVjdFtdKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImdldERlbGl2ZXJ5R3JvdXBOdW1iZXJzIGluaXRpYXRpbmcgOiBcIiwgSlNPTi5zdHJpbmdpZnkocHJvZHVjdHMpKTtcclxuXHJcbiAgICBsZXQgdW5pcXVlQW5kc29ydGVkUmVzdWx0OiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICAgIGlmIChwcm9kdWN0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkZWxpdmVyeUdyb3VwQXJyID0gcHJvZHVjdHMubWFwKChwcm9kdWN0KSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2R1Y3QuZGVsaXZlcnlHcm91cCkge1xyXG4gICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHByb2R1Y3QuZGVsaXZlcnlHcm91cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKHByb2R1Y3QuZGVsaXZlcnlNZXRob2QgPT09IFwiMVwiKSB7XHJcbiAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgdW5pcXVlQW5kc29ydGVkUmVzdWx0ID0gQXJyYXkuZnJvbShuZXcgU2V0KGRlbGl2ZXJ5R3JvdXBBcnIpKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZ2V0RGVsaXZlcnlHcm91cE51bWJlcnMgOiBcIiwgSlNPTi5zdHJpbmdpZnkodW5pcXVlQW5kc29ydGVkUmVzdWx0KSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdW5pcXVlQW5kc29ydGVkUmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZHVjdHNXaXRoTmV3RGVsaXZlcnlHcm91cE51bWJlcihwcm9kdWN0czogUHJvZHVjdFtdKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInVwZGF0ZVByb2R1Y3RzV2l0aE5ld0RlbGl2ZXJ5R3JvdXBOdW1iZXIgaW5pdGlhdGluZyA6IFwiLCBKU09OLnN0cmluZ2lmeShwcm9kdWN0cykpO1xyXG5cclxuICAgIGxldCBuZXdHcm91cE51bWJlciA9IHRoaXMuZ2VuZXJhdGVOZXdEZWxpdmVyeUdyb3VwTnVtYmVyKHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cyk7XHJcbiAgICBpZiAocHJvZHVjdHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRCYXNrZXQucHJvZHVjdHMuZm9yRWFjaChjQlByb2R1Y3RzID0+IHtcclxuICAgICAgICBwcm9kdWN0cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xyXG4gICAgICAgICAgaWYgKGNCUHJvZHVjdHMuaXRlbUxpbmVJZCA9PT0gZWxlbWVudC5pdGVtTGluZUlkKSB7XHJcbiAgICAgICAgICAgIGNCUHJvZHVjdHMuZGVsaXZlcnlHcm91cCA9IG5ld0dyb3VwTnVtYmVyO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlQmFza2V0KHRoaXMuY3VycmVudEJhc2tldCk7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjYWxjdWxhdGVFc3RpbWF0ZWRUaW1lKHByb2R1Y3RzOiBhbnlbXSkge1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IHRpbWU7XHJcbiAgICAgIGxldCBlc3RtYXRlZFRpbWU6IG51bWJlciA9IDA7XHJcbiAgICAgIGxldCBlc3RpbWF0ZWREYXlzOiBzdHJpbmcgPSBcIkhvdXJzXCI7XHJcbiAgICAgIHByb2R1Y3RzLmZvckVhY2goKGVsZW1lbnQ6IHsgbGVhZFRpbWU6IHsgdHlwZTogc3RyaW5nOyB2YWx1ZTogYW55OyB9OyB9KSA9PiB7XHJcblxyXG4gICAgICAgIGlmIChlbGVtZW50LmxlYWRUaW1lLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJ3ZWVrc1wiKSB7XHJcbiAgICAgICAgICB0aW1lID0gTnVtYmVyKGVsZW1lbnQubGVhZFRpbWUudmFsdWUpICogMjQgKiA3O1xyXG4gICAgICAgICAgZXN0bWF0ZWRUaW1lID0gTWF0aC5tYXgoZXN0bWF0ZWRUaW1lLCB0aW1lKTtcclxuICAgICAgICAgIGVzdGltYXRlZERheXMgPSAoZXN0bWF0ZWRUaW1lID09PSB0aW1lKSA/IGVsZW1lbnQubGVhZFRpbWUudHlwZSA6IGVzdGltYXRlZERheXNcclxuICAgICAgICAgIGNvbnNvbGUubG9nKFwid2Vla1wiLCBlc3RtYXRlZFRpbWUsIGVzdGltYXRlZERheXMpO1xyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubGVhZFRpbWUudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcImRheXNcIikge1xyXG4gICAgICAgICAgdGltZSA9IE51bWJlcihlbGVtZW50LmxlYWRUaW1lLnZhbHVlKSAqIDI0O1xyXG4gICAgICAgICAgZXN0bWF0ZWRUaW1lID0gTWF0aC5tYXgoZXN0bWF0ZWRUaW1lLCB0aW1lKTtcclxuICAgICAgICAgIGVzdGltYXRlZERheXMgPSAoZXN0bWF0ZWRUaW1lID09PSB0aW1lKSA/IGVsZW1lbnQubGVhZFRpbWUudHlwZSA6IGVzdGltYXRlZERheXNcclxuXHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcImRheXNcIiwgZXN0bWF0ZWRUaW1lLCBlc3RpbWF0ZWREYXlzKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQubGVhZFRpbWUudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcIm1vbnRoc1wiKSB7XHJcbiAgICAgICAgICB0aW1lID0gTnVtYmVyKGVsZW1lbnQubGVhZFRpbWUudmFsdWUpICogMjQgKiAzMDtcclxuICAgICAgICAgIGVzdG1hdGVkVGltZSA9IE1hdGgubWF4KGVzdG1hdGVkVGltZSwgdGltZSk7XHJcbiAgICAgICAgICBlc3RpbWF0ZWREYXlzID0gKGVzdG1hdGVkVGltZSA9PT0gdGltZSkgPyBlbGVtZW50LmxlYWRUaW1lLnR5cGUgOiBlc3RpbWF0ZWREYXlzXHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJtb250aHNcIiwgZXN0bWF0ZWRUaW1lLCBlc3RpbWF0ZWREYXlzKTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGVsZW1lbnQubGVhZFRpbWUudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcInllYXJzXCIpIHtcclxuICAgICAgICAgIHRpbWUgPSBOdW1iZXIoZWxlbWVudC5sZWFkVGltZS52YWx1ZSkgKiAyNCAqIDM2NTtcclxuICAgICAgICAgIGVzdG1hdGVkVGltZSA9IE1hdGgubWF4KGVzdG1hdGVkVGltZSwgdGltZSk7XHJcbiAgICAgICAgICBlc3RpbWF0ZWREYXlzID0gKGVzdG1hdGVkVGltZSA9PT0gdGltZSkgPyBlbGVtZW50LmxlYWRUaW1lLnR5cGUgOiBlc3RpbWF0ZWREYXlzXHJcblxyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ5ZWFyc1wiLCBlc3RtYXRlZFRpbWUsIGVzdGltYXRlZERheXMpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGltZSA9IE51bWJlcihlbGVtZW50LmxlYWRUaW1lLnZhbHVlKTtcclxuICAgICAgICAgIGVzdG1hdGVkVGltZSA9IE1hdGgubWF4KGVzdG1hdGVkVGltZSwgdGltZSk7XHJcbiAgICAgICAgICBlc3RpbWF0ZWREYXlzID0gKGVzdG1hdGVkVGltZSA9PT0gdGltZSkgPyBlbGVtZW50LmxlYWRUaW1lLnR5cGUgOiBlc3RpbWF0ZWREYXlzO1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJob3Vyc1wiLCBlc3RtYXRlZFRpbWUsIGVzdGltYXRlZERheXMpO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKGVzdGltYXRlZERheXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJkYXlzXCIpIHtcclxuICAgICAgICBlc3RtYXRlZFRpbWUgPSBlc3RtYXRlZFRpbWUgLyAyNDtcclxuICAgICAgfSBlbHNlIGlmIChlc3RpbWF0ZWREYXlzLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwid2Vla3NcIikge1xyXG4gICAgICAgIGVzdG1hdGVkVGltZSA9IGVzdG1hdGVkVGltZSAvICgyNCAqIDcpO1xyXG4gICAgICB9IGVsc2UgaWYgKGVzdGltYXRlZERheXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJtb250aHNcIikge1xyXG4gICAgICAgIGVzdG1hdGVkVGltZSA9IGVzdG1hdGVkVGltZSAvICgyNCAqIDMwKTtcclxuICAgICAgfSBlbHNlIGlmIChlc3RpbWF0ZWREYXlzLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwieWVhcnNcIikge1xyXG4gICAgICAgIGVzdG1hdGVkVGltZSA9IGVzdG1hdGVkVGltZSAvICgyNCAqIDM2NSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCBlc3RpbWF0ZSA9IHtcclxuICAgICAgICB2YWx1ZTogZXN0bWF0ZWRUaW1lLnRvU3RyaW5nKCksXHJcbiAgICAgICAgdHlwZTogZXN0aW1hdGVkRGF5c1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBlc3RpbWF0ZTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3IgaW4gY2FsY3VsYXRlRXN0aW1hdGVkVGltZVwiLCBlcnJvcik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gMDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVByb2R1Y3RzV2l0aERlbGl2ZXJ5R3JvdXBOdW1iZXIob2xkR3JvdXA6IHN0cmluZywgbmV3R3JvdXA6IHN0cmluZykge1xyXG4gICAgY29uc29sZS5sb2coXCJ1cGRhdGVQcm9kdWN0c1dpdGhEZWxpdmVyeUdyb3VwTnVtYmVyIGluaXRpYXRpbmdcIik7XHJcblxyXG4gICAgdGhpcy5jdXJyZW50QmFza2V0LnByb2R1Y3RzLmZvckVhY2goY0JQcm9kdWN0cyA9PiB7XHJcbiAgICAgIGlmIChjQlByb2R1Y3RzLmRlbGl2ZXJ5R3JvdXAgPT09IG9sZEdyb3VwKSB7XHJcbiAgICAgICAgY0JQcm9kdWN0cy5kZWxpdmVyeUdyb3VwID0gbmV3R3JvdXA7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnVwZGF0ZUJhc2tldCh0aGlzLmN1cnJlbnRCYXNrZXQpO1xyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGVsaXZlcnlJbmZvKCk6IGFueSB7XHJcbiAgICBjb25zb2xlLmxvZyhcImdldERlbGl2ZXJ5R3JvdXBJbmZvciBpbml0aWF0aW5nXCIpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgbGV0IGdyb3VwSW5mbzogRGVsaXZlcnlJbmZvID0ge1xyXG4gICAgICAgIGdyb3VwczogW11cclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5nZXREZWxpdmVyeUdyb3VwTnVtYmVycyh0aGlzLmN1cnJlbnRCYXNrZXQucHJvZHVjdHMpLmZvckVhY2goKGdyb3VwTnVtYmVyKSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwOiBhbnkgPSB7XHJcbiAgICAgICAgICBncm91cE51bWJlcjogZ3JvdXBOdW1iZXIsXHJcbiAgICAgICAgICBpdGVtczogW10sXHJcbiAgICAgICAgICBlc3RpbWF0ZToge1xyXG4gICAgICAgICAgICB0eXBlOiBcIkhvdXJzXCIsXHJcbiAgICAgICAgICAgIHZhbHVlOiBcIjBcIlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmN1cnJlbnRCYXNrZXQucHJvZHVjdHMuZm9yRWFjaChjQlByb2R1Y3RzID0+IHtcclxuICAgICAgICAgIGlmIChjQlByb2R1Y3RzLmRlbGl2ZXJ5R3JvdXAgPT09IGdyb3VwTnVtYmVyLnRvU3RyaW5nKCkpIHtcclxuICAgICAgICAgICAgZ3JvdXAuaXRlbXMucHVzaChjQlByb2R1Y3RzKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgZ3JvdXAuZXN0aW1hdGUgPSB0aGlzLmNhbGN1bGF0ZUVzdGltYXRlZFRpbWUoZ3JvdXAuaXRlbXMpO1xyXG5cclxuICAgICAgICBncm91cEluZm8uZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG5cclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gZ3JvdXBJbmZvO1xyXG4gICAgfVxyXG4gICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyb3IpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
516
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFza2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL2Jhc2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFLMUQsTUFBTSxPQUFPLGFBQWE7SUF1QnhCLElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ2xDLENBQUM7SUFDRCxJQUFXLGtCQUFrQixDQUFDLENBQU07UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBR0QsWUFBb0IsaUJBQW9DO1FBQXBDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUE5QnhELGtCQUFhLEdBQVc7WUFDdEIsUUFBUSxFQUFFLEVBQUU7WUFDWixtQkFBbUIsRUFBRSxFQUFFO1lBQ3ZCLFFBQVEsRUFBRSxDQUFDO1lBQ1gsS0FBSyxFQUFFLENBQUM7WUFDUixTQUFTLEVBQUUsQ0FBQztZQUNaLFlBQVksRUFBRSxFQUFFO1NBQ2pCLENBQUM7UUFFTSxpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3RELFdBQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUM7UUFDdkQsWUFBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFcEMsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3pELGFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRWxD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RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7b0JBQy9DLElBQUksVUFBVSxDQUFDLGFBQWEsS0FBSyxXQUFXLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQzt3QkFDeEQsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQy9CLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7Z0JBRUgsS0FBSyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUUxRCxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUUvQixDQUFDLENBQUMsQ0FBQztZQUVILE9BQU8sU0FBUyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgREVMSVZFUllfTUVUSE9EUyB9IGZyb20gJy4vbWFwcGVyLWxpYnJhcnkubW9kZWwnO1xuaW1wb3J0IHsgQmFza2V0LCBEZWxpdmVyeUdyb3VwSW5mbywgRGVsaXZlcnlJbmZvLCBQcm9kdWN0LCBUcmFuc2FjdGlvblByb21vdGlvbiB9IGZyb20gJy4vbWFwcGVyLWxpYnJhcnkubW9kZWwnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25EaXNjb3VudCB9IGZyb20gJy4vbWFwcGVyLWxpYnJhcnkubW9kZWwnO1xuaW1wb3J0IHsgTnVtYmVyVXRpbFNlcnZpY2UgfSBmcm9tICcuL251bWJlci11dGlsLnNlcnZpY2UnO1xuXG5leHBvcnQgY2xhc3MgQmFza2V0U2VydmljZSB7XG4gIGN1cnJlbnRCYXNrZXQ6IEJhc2tldCA9IHtcbiAgICBwcm9kdWN0czogW10sXG4gICAgdHJhbnNhY3Rpb25EaXNjb3VudDogW10sXG4gICAgcXVhbnRpdHk6IDAsXG4gICAgdG90YWw6IDAsXG4gICAgc2FsZVRvdGFsOiAwLFxuICAgIGJhc2VDdXJyZW5jeTogJydcbiAgfTtcblxuICBwcml2YXRlIGJhc2tldFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgYmFza2V0ID0gdGhpcy5iYXNrZXRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBwcm9kdWN0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICBwcm9kdWN0ID0gdGhpcy5wcm9kdWN0U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuXG4gIHByaXZhdGUgcGVlclNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwZWVyU3luYyA9IHRoaXMucGVlclNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIHNjYW5Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgc2Nhbm5lciA9IHRoaXMuc2NhblNvdXJjZS5hc09ic2VydmFibGUoKTtcblxuICBwcml2YXRlIF9pc01peGVkQmFza2V0U2FsZXM6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBnZXQgaXNNaXhlZEJhc2tldFNhbGVzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzTWl4ZWRCYXNrZXRTYWxlcztcbiAgfVxuICBwdWJsaWMgc2V0IGlzTWl4ZWRCYXNrZXRTYWxlcyh2OiBhbnkpIHtcbiAgICB0aGlzLl9pc01peGVkQmFza2V0U2FsZXMgPSB2O1xuICB9XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG51bWJlclV0aWxTZXJ2aWNlOiBOdW1iZXJVdGlsU2VydmljZSkgeyB9XG5cbiAgdXBkYXRlQmFza2V0KGJhc2tldDogQmFza2V0KSB7XG4gICAgdGhpcy5jdXJyZW50QmFza2V0ID0gYmFza2V0O1xuICAgIHRoaXMuaXNNaXhlZEJhc2tldFNhbGVzID0gdGhpcy5maWx0ZXJQcm9kdWN0TGlzdFdpdGhXZWJPcmRlcih0cnVlKS5sZW5ndGggPiAwO1xuICAgIHRoaXMuYmFza2V0U291cmNlLm5leHQoYmFza2V0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxjdWxhdGVzIHRoZSB0b3RhbCBiYXNrZXQgdmFsdWUgYW5kIHF1YW50aXR5XG4gICAqIEBwYXJhbSAgbnVsbFxuICAgKiBAcmV0dXJucyB2b2lkXG4gICAqL1xuICB1cGRhdGVCYXNrZXRUb3RhbChiYXNrZXREZXRhaWxzOiB7IHF1YW50aXR5OiBudW1iZXI7IHRvdGFsOiBudW1iZXI7IHByb2R1Y3RzOiBhbnk7IHRyYW5zYWN0aW9uSWQ6IGFueTsgYmFza2V0VG90YWw6IGFueTsgfSwgYmFza2V0U3RhdGU6IHsgdXBkYXRlQmFza2V0OiAoYXJnMDogYW55KSA9PiB2b2lkOyB9KSB7XG4gICAgYmFza2V0RGV0YWlscy5xdWFudGl0eSA9IDA7XG4gICAgYmFza2V0RGV0YWlscy50b3RhbCA9IDA7XG4gICAgZm9yIChjb25zdCBwIG9mIGJhc2tldERldGFpbHMucHJvZHVjdHMpIHtcbiAgICAgIGJhc2tldERldGFpbHMucXVhbnRpdHkgPSBiYXNrZXREZXRhaWxzLnF1YW50aXR5ICsgcC5xdWFudGl0eTtcbiAgICAgIGJhc2tldERldGFpbHMudG90YWwgPVxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsKGJhc2tldERldGFpbHMudG90YWwpICtcbiAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbChwLnRvdGFsKTtcbiAgICB9XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcImU6YmFza2V0IDpiYXNrZXQgc2VydmljZSA6IGJhc2tldERldGFpbHMgdXBkYXRlZCB2YWx1ZXMgZm9yIHRyYW5zYWN0aW9uIGlkXCIsXG4gICAgICBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uSWQsXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXREZXRhaWxzKVxuICAgICk7XG4gICAgYmFza2V0RGV0YWlscy5iYXNrZXRUb3RhbCA9IGJhc2tldERldGFpbHMudG90YWw7XG4gICAgYmFza2V0U3RhdGUudXBkYXRlQmFza2V0KGJhc2tldERldGFpbHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIGFkZCBMaW5lIHByb21vdGlvblxuICAgKiBAcGFyYW0gIG51bGxcbiAgICogQHJldHVybnMgYmFza2V0RGV0YWlsc1xuICAgKi9cbiAgYWRkbGluZVByb21vdGlvbihwcm9tb3Rpb25MaXN0OiB7IHJlc3VsdDogeyBsaW5lUHJvbW90aW9uczogc3RyaW5nIHwgYW55W107IH07IH0sIGJhc2tldERldGFpbHM6IHsgcHJvZHVjdHM6IGFueTsgfSkge1xuICAgIGNvbnNvbGUubG9nKFxuICAgICAgXCJlOmJhc2tldCA6YmFza2V0IFNlcnZpY2UgOiBwcm9tb3Rpb25MaXN0IGFuZCBiYXNrZXREZXRhaWxzIGZvciBsaW5lUHJvbW90aW9uc1wiLFxuICAgICAgSlNPTi5zdHJpbmdpZnkocHJvbW90aW9uTGlzdCksXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXREZXRhaWxzKVxuICAgICk7XG4gICAgaWYgKFxuICAgICAgcHJvbW90aW9uTGlzdCAmJlxuICAgICAgcHJvbW90aW9uTGlzdC5yZXN1bHQgJiZcbiAgICAgIHByb21vdGlvbkxpc3QucmVzdWx0LmxpbmVQcm9tb3Rpb25zICYmXG4gICAgICBwcm9tb3Rpb25MaXN0LnJlc3VsdC5saW5lUHJvbW90aW9ucy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBmb3IgKHZhciBlbGVtZW50IG9mIGJhc2tldERldGFpbHMucHJvZHVjdHMpIHtcbiAgICAgICAgZm9yICh2YXIgcHJvbW90aW9uZWxlbWVudCBvZiBwcm9tb3Rpb25MaXN0LnJlc3VsdC5saW5lUHJvbW90aW9ucykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIGVsZW1lbnQuaXRlbUxpbmVJZC50b1N0cmluZygpID09PVxuICAgICAgICAgICAgcHJvbW90aW9uZWxlbWVudC5pdGVtTGluZUlkLnRvU3RyaW5nKClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGVsZW1lbnQubGluZVByb21vdGlvbnMgPSBwcm9tb3Rpb25lbGVtZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYmFza2V0RGV0YWlscztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGQgVHJhbnNhY3Rpb24gcHJvbW90aW9uXG4gICAqIEBwYXJhbSAgbnVsbFxuICAgKiBAcmV0dXJucyBiYXNrZXREZXRhaWxzXG4gICAqL1xuXG4gIGFkZFRyYW5zYWN0aW9uUHJvbW90aW9uKHByb21vdGlvbkxpc3Q6IHsgcmVzdWx0OiB7IHRyYW5zYWN0aW9uUHJvbW90aW9uOiBhbnkgfTsgfSwgYmFza2V0ZGV0YWlsczogQmFza2V0KSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcImU6YmFza2V0IDpiYXNrZXQgU2VydmljZSA6IHByb21vdGlvbkxpc3QgYW5kIGJhc2tldERldGFpbHMgZm9yIHRyYW5zYWN0aW9uUHJvbW90aW9uXCIsXG4gICAgICBKU09OLnN0cmluZ2lmeShwcm9tb3Rpb25MaXN0KSxcbiAgICAgIEpTT04uc3RyaW5naWZ5KGJhc2tldGRldGFpbHMpLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0ZGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbilcbiAgICApO1xuICAgIGlmIChcbiAgICAgIHByb21vdGlvbkxpc3QgJiZcbiAgICAgIHByb21vdGlvbkxpc3QucmVzdWx0ICYmXG4gICAgICBwcm9tb3Rpb25MaXN0LnJlc3VsdC50cmFuc2FjdGlvblByb21vdGlvbiAmJlxuICAgICAgcHJvbW90aW9uTGlzdC5yZXN1bHQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgcHJvbW90aW9uTGlzdC5yZXN1bHQudHJhbnNhY3Rpb25Qcm9tb3Rpb24uZm9yRWFjaCgodFByb21vdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbkVudHJ5VXBkYXRlZDogYW55ID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB0UHJvbW90aW9uXG4gICAgICAgICk7XG5cbiAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25FbnRyeVVwZGF0ZWQuaXRlbUxpbmVJZHMgPSBiYXNrZXRkZXRhaWxzLnByb2R1Y3RzLm1hcChcbiAgICAgICAgICAocHJvZHVjdCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHByb2R1Y3QuaXRlbUxpbmVJZDtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKCFiYXNrZXRkZXRhaWxzLnRyYW5zYWN0aW9uUHJvbW90aW9uKSB7XG4gICAgICAgICAgYmFza2V0ZGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbiA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGJhc2tldGRldGFpbHMudHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHVzaChcbiAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbkVudHJ5VXBkYXRlZFxuICAgICAgICApO1xuXG4gICAgICAgIGJhc2tldGRldGFpbHMgPSB0aGlzLnRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjKFxuICAgICAgICAgIGJhc2tldGRldGFpbHMsXG4gICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25FbnRyeVVwZGF0ZWRcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFwiYmFza2V0IGRldGFpbHMgaW4gcmVmdW5kIGNhbGN1bGF0aW9uIGZpbGVcIixcbiAgICAgIEpTT04uc3RyaW5naWZ5KGJhc2tldGRldGFpbHMpXG4gICAgKTtcbiAgICByZXR1cm4gYmFza2V0ZGV0YWlscztcbiAgfVxuXG4gIHVwZGF0ZVByb2R1Y3RUb3RhbEZvclN1bW1hcnkoYmFza2V0RGV0YWlsczogeyB0b3RhbDogc3RyaW5nIHwgbnVtYmVyOyBxdWFudGl0eTogc3RyaW5nIHwgbnVtYmVyOyBwcm9kdWN0czogYW55OyB9KSB7XG4gICAgLypzYWxlLSAgICAgICAgICAgIHByb2R1Y3QgcmVmdW5kZWRRdWFudGl0eSA9IHVuZGVmaW5lZFxuICAgIHBhcnRpYWwgcmVmdW5kIC0gICBwcm9kdWN0IHJlZnVuZGVkUXVhbnRpdHkgaXMgPiAwXG4gICAgdG90YWwgcmVmdW5kIC0gICAgIHByb3VkY3QgcmVmdW5kZWRRdWFudGl0eSBpcyA+IDBcbiAgICBleGNoYW5nZSAtICAgICAgICAgZXhjaGFuZ2UgcHJvZHVjdCByZWZ1bmRlZFF1YW50aXR5IGlzID4gMCAgXG4gICAgICAgICAgICAgICAgICAgICAgIG5ldyBwcm9kdWN0IHJlZnVuZGVkUXVhbnRpdHkgPSB1bmRlZmluZWQgIFxuICAgICAgICAgICAgICAgICAgICAgICBvbGQgcHJvZHVjdCB3aXRob3V0IGV4Y2hhbmdlIHJlZnVuZGVkUXVhbnRpdHkgPSAwXG4gICAgdW5yZWZlcmVuY2UgcmVmdW5kLXByb2R1Y3QgcmVmdW5kZWRRdWFudGl0eSBpcyA+IDAgKi9cblxuICAgIGJhc2tldERldGFpbHMudG90YWwgPSAwO1xuICAgIGJhc2tldERldGFpbHMucXVhbnRpdHkgPSAwO1xuICAgIGZvciAodmFyIHByb2R1Y3Qgb2YgYmFza2V0RGV0YWlscy5wcm9kdWN0cykge1xuICAgICAgaWYgKHByb2R1Y3QubGluZVByb21vdGlvbnMpIHtcbiAgICAgICAgcHJvZHVjdC50b3RhbCA9IHByb2R1Y3QubGluZVByb21vdGlvbnMucHJvbW90aW9uTGluZVByaWNlO1xuICAgICAgfSBlbHNlIGlmIChwcm9kdWN0LmxpbmVEaXNjb3VudCAmJiAhcHJvZHVjdC5saW5lUHJvbW90aW9ucykge1xuICAgICAgICBwcm9kdWN0LnRvdGFsID0gcHJvZHVjdC5saW5lRGlzY291bnQuZGlzY291bnRlZExpbmVQcmljZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LnRvdGFsTGluZVByaWNlO1xuICAgICAgfVxuICAgICAgcHJvZHVjdC50b3RhbCA9XG4gICAgICAgIHByb2R1Y3QudG90YWwgLVxuICAgICAgICBNYXRoLmFicyhwcm9kdWN0LnJlZnVuZGVkVG90YWwgPyBwcm9kdWN0LnJlZnVuZGVkVG90YWwgOiAwKTtcblxuICAgICAgYmFza2V0RGV0YWlscy50b3RhbCArPSBwcm9kdWN0LnRvdGFsO1xuICAgICAgYmFza2V0RGV0YWlscy5xdWFudGl0eSA9XG4gICAgICAgIGJhc2tldERldGFpbHMucXVhbnRpdHkgK1xuICAgICAgICAocHJvZHVjdC5xdWFudGl0eSAtXG4gICAgICAgICAgKHByb2R1Y3QucmVmdW5kZWRRdWFudGl0eSA/IHByb2R1Y3QucmVmdW5kZWRRdWFudGl0eSA6IDApKTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBcImUtYmFza2V0OkV4Y2hhbmdlU3VtbWFyeVNjcmVlbjp1cGRhdGUgYmFza2V0ZGV0YWlscyB0b3RhbCA6XCIgK1xuICAgICAgICBiYXNrZXREZXRhaWxzLnRvdGFsICtcbiAgICAgICAgXCIgUHJvZHVjdCBsaW5lIElEIDogXCIgK1xuICAgICAgICBwcm9kdWN0Lml0ZW1MaW5lSWQgK1xuICAgICAgICBcIiBwcm9kdWN0IHRvdGFsIDogXCIgK1xuICAgICAgICBwcm9kdWN0LnRvdGFsLFxuICAgICAgICBcInF1YW50aXR5ICA6IFwiICsgYmFza2V0RGV0YWlscy5xdWFudGl0eVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudXBkYXRlQmFza2V0VG90YWxGb3JTdW1tYXJ5KGJhc2tldERldGFpbHMpO1xuICB9XG5cbiAgdXBkYXRlQmFza2V0VG90YWxGb3JTdW1tYXJ5KGJhc2tldERldGFpbHM6IGFueSkge1xuICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWwgPSBiYXNrZXREZXRhaWxzLnRvdGFsO1xuICAgIGNvbnNvbGUuaW5mbyhcbiAgICAgIFwiZWJhc2tldCA6IGJhc2tldCBTZXJ2aWNlIDogdXBkYXRlIEJhc2tldCBUb3RhbCBmb3IgdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb25EaXNjb3VudCAgXCIsXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uRGlzY291bnQpXG4gICAgKTtcblxuICAgIGNvbnNvbGUuaW5mbyhcbiAgICAgIFwiZWJhc2tldCA6IGJhc2tldCBTZXJ2aWNlIDogdXBkYXRlIEJhc2tldCBUb3RhbCBmb3IgdHJhbnNhY3Rpb24gdHJhbnNhY3Rpb25Qcm9tb3Rpb24gIFwiLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0RGV0YWlscy50cmFuc2FjdGlvblByb21vdGlvbilcbiAgICApO1xuXG4gICAgYmFza2V0RGV0YWlscyA9IHRoaXMudXBkYXRlVHJhbnNhY3Rpb25Qcm9tb3Rpb24oYmFza2V0RGV0YWlscyk7XG4gICAgYmFza2V0RGV0YWlscyA9IHRoaXMudXBkYXRlVHJhbnNhY3Rpb25EaXNjb3VudChiYXNrZXREZXRhaWxzKTtcbiAgICBiYXNrZXREZXRhaWxzLmJhc2tldFRvdGFsID0gTnVtYmVyKGJhc2tldERldGFpbHMuYmFza2V0VG90YWwudG9GaXhlZCgyKSk7XG5cbiAgICBjb25zb2xlLmluZm8oXG4gICAgICBcImViYXNrZXQgOiBiYXNrZXQgU2VydmljZSA6IHVwZGF0ZSBCYXNrZXQgVG90YWw6IGJhc2tldFRvdGFsIGFmdGVyIHByb21vdGlvbiBhcHBsaWVkICBmb3IgYmFza2V0VG90YWxcIixcbiAgICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWxcbiAgICApO1xuICAgIHJldHVybiBiYXNrZXREZXRhaWxzO1xuICB9XG5cbiAgdXBkYXRlVHJhbnNhY3Rpb25EaXNjb3VudChiYXNrZXREZXRhaWxzOiB7IHRyYW5zYWN0aW9uRGlzY291bnQ6IGFueVtdOyBiYXNrZXRUb3RhbDogbnVtYmVyOyB9KSB7XG4gICAgaWYgKFxuICAgICAgYmFza2V0RGV0YWlscy50cmFuc2FjdGlvbkRpc2NvdW50ICYmXG4gICAgICBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uRGlzY291bnQubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgY29uc3QgZGlzY291bnRUb3RhbCA9IGJhc2tldERldGFpbHMudHJhbnNhY3Rpb25EaXNjb3VudC5yZWR1Y2UoXG4gICAgICAgIChuOiBhbnksIHsgZGlzY291bnRBbW91bnQgfTogYW55KSA9PiBuICsgZGlzY291bnRBbW91bnQsXG4gICAgICAgIDBcbiAgICAgICk7XG4gICAgICBjb25zb2xlLmxvZyhcImViYXNrZXQgOiBiYXNrZXQgU2VydmljZSA6ICBkaXNjb3VudFRvdGFsIFwiLCBkaXNjb3VudFRvdGFsKTtcbiAgICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWwgPVxuICAgICAgICBiYXNrZXREZXRhaWxzLmJhc2tldFRvdGFsIC0gTWF0aC5hYnMoZGlzY291bnRUb3RhbCk7XG4gICAgfVxuICAgIHJldHVybiBiYXNrZXREZXRhaWxzO1xuICB9XG5cbiAgdXBkYXRlVHJhbnNhY3Rpb25Qcm9tb3Rpb24oYmFza2V0RGV0YWlsczogeyB0cmFuc2FjdGlvblByb21vdGlvbjogYW55W107IGJhc2tldFRvdGFsOiBudW1iZXI7IH0pIHtcbiAgICBpZiAoXG4gICAgICBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uUHJvbW90aW9uICYmXG4gICAgICBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uUHJvbW90aW9uLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIGNvbnN0IGRpc2NvdW50VG90YWwgPSBiYXNrZXREZXRhaWxzLnRyYW5zYWN0aW9uUHJvbW90aW9uLnJlZHVjZShcbiAgICAgICAgKG46IGFueSwgeyBwcm9tb3Rpb25BbW91bnQgfTogYW55KSA9PiBuICsgcHJvbW90aW9uQW1vdW50LFxuICAgICAgICAwXG4gICAgICApO1xuICAgICAgYmFza2V0RGV0YWlscy5iYXNrZXRUb3RhbCA9XG4gICAgICAgIGJhc2tldERldGFpbHMuYmFza2V0VG90YWwgLSBNYXRoLmFicyhkaXNjb3VudFRvdGFsKTtcbiAgICB9XG4gICAgcmV0dXJuIGJhc2tldERldGFpbHM7XG4gIH1cblxuICB1cGRhdGVCYXNrZXRUb3RhbFdpdGhvdXREaXNjb3VudChiYXNrZXQ6IEJhc2tldCk6IEJhc2tldCB7XG4gICAgYmFza2V0LnRvdGFsID0gMDtcbiAgICBiYXNrZXQucXVhbnRpdHkgPSAwO1xuXG4gICAgZm9yICh2YXIgcHJvZHVjdCBvZiBiYXNrZXQucHJvZHVjdHMpIHtcbiAgICAgIGlmIChwcm9kdWN0LmxpbmVQcm9tb3Rpb25zKSB7XG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LmxpbmVQcm9tb3Rpb25zLnByb21vdGlvbkxpbmVQcmljZTtcbiAgICAgIH0gZWxzZSBpZiAocHJvZHVjdC5saW5lRGlzY291bnQgJiYgIXByb2R1Y3QubGluZVByb21vdGlvbnMpIHtcbiAgICAgICAgcHJvZHVjdC50b3RhbCA9IHByb2R1Y3QubGluZURpc2NvdW50LmRpc2NvdW50ZWRMaW5lUHJpY2UgfHwgMDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LnRvdGFsTGluZVByaWNlO1xuICAgICAgfVxuXG4gICAgICBwcm9kdWN0LnRvdGFsID1cbiAgICAgICAgcHJvZHVjdC50b3RhbCAtXG4gICAgICAgIE1hdGguYWJzKHByb2R1Y3QucmVmdW5kZWRUb3RhbCA/IHByb2R1Y3QucmVmdW5kZWRUb3RhbCA6IDApO1xuICAgICAgYmFza2V0LnRvdGFsICs9IHByb2R1Y3QudG90YWw7XG4gICAgICBiYXNrZXQucXVhbnRpdHkgPVxuICAgICAgICBiYXNrZXQucXVhbnRpdHkgK1xuICAgICAgICAocHJvZHVjdC5xdWFudGl0eSAtXG4gICAgICAgICAgKHByb2R1Y3QucmVmdW5kZWRRdWFudGl0eSA/IHByb2R1Y3QucmVmdW5kZWRRdWFudGl0eSA6IDApKTtcblxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIFwiZS1iYXNrZXQ6YmFza2V0IHNlcnZpY2U6dXBkYXRlIGJhc2tldGRldGFpbHMgdG90YWwgOlwiICtcbiAgICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0KSArXG4gICAgICAgIGJhc2tldC50b3RhbCArXG4gICAgICAgIFwiIFByb2R1Y3QgbGluZSBJRCA6IFwiICtcbiAgICAgICAgcHJvZHVjdC5pdGVtTGluZUlkICtcbiAgICAgICAgXCIgcHJvZHVjdCB0b3RhbCA6IFwiICtcbiAgICAgICAgcHJvZHVjdC50b3RhbFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBiYXNrZXQuYmFza2V0VG90YWwgPSBiYXNrZXQudG90YWw7XG4gICAgcmV0dXJuIGJhc2tldDtcbiAgfVxuXG4gIHVwZGF0ZUJhc2tldFRvdGFsV2l0aERpc2NvdW50cyhiYXNrZXQ6IGFueSk6IEJhc2tldCB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBcImU6YmFza2V0IDpSZWZ1bmRCYXNrZXRTY3JlZW4gOiB0aGlzLmJhc2tldERldGFpbHMgbmV3IHZhbHVlc1wiLFxuICAgICAgYmFza2V0LFxuICAgICAgSlNPTi5zdHJpbmdpZnkoYmFza2V0LmJhc2tldFRvdGFsKVxuICAgICk7XG4gICAgaWYgKGJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiAmJiBiYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZGlzY291bnRUb3RhbCA9IGJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbi5yZWR1Y2UoXG4gICAgICAgIChuOiBhbnksIHsgcHJvbW90aW9uQW1vdW50IH06IGFueSkgPT4gbiArIHByb21vdGlvbkFtb3VudCxcbiAgICAgICAgMFxuICAgICAgKTtcbiAgICAgIGJhc2tldC5iYXNrZXRUb3RhbCA9IGJhc2tldC5iYXNrZXRUb3RhbCAtIGRpc2NvdW50VG90YWw7XG4gICAgfVxuICAgIGlmIChiYXNrZXQudHJhbnNhY3Rpb25EaXNjb3VudCAmJiBiYXNrZXQudHJhbnNhY3Rpb25EaXNjb3VudC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkaXNjb3VudFRvdGFsID0gYmFza2V0LnRyYW5zYWN0aW9uRGlzY291bnQucmVkdWNlKFxuICAgICAgICAobjogYW55LCB7IGRpc2NvdW50QW1vdW50IH06IGFueSkgPT4gbiArIGRpc2NvdW50QW1vdW50LFxuICAgICAgICAwXG4gICAgICApO1xuXG4gICAgICBiYXNrZXQuYmFza2V0VG90YWwgPSBiYXNrZXQuYmFza2V0VG90YWwgLSBkaXNjb3VudFRvdGFsO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFwiZTpiYXNrZXQgOlJlZnVuZEJhc2tldFNjcmVlbiA6IGJhc2tldCBuZXcgdmFsdWVzXCIsXG4gICAgICBKU09OLnN0cmluZ2lmeShiYXNrZXQpXG4gICAgKTtcblxuICAgIHJldHVybiBiYXNrZXQ7XG4gIH1cblxuICB0cmFuc2FjdGlvbkRpc2NvdW50QW5kUHJvbW90aW9uUHJvZHVjdG9ydGlvbkNhbGN1bGF0aW9uKGJhc2tldDogQmFza2V0KSB7XG4gICAgaWYgKGJhc2tldC50cmFuc2FjdGlvbkRpc2NvdW50ICYmIGJhc2tldC50cmFuc2FjdGlvbkRpc2NvdW50Lmxlbmd0aCA+IDApIHtcbiAgICAgIGJhc2tldC50cmFuc2FjdGlvbkRpc2NvdW50LmZvckVhY2goXG4gICAgICAgIChkaXNjb3VudCkgPT5cbiAgICAgICAgKGJhc2tldCA9IHRoaXMudHJhbnNhY3Rpb25EaXNjb3VudFByb2R1Y3RQb3J0aW9uQ2FsYyhcbiAgICAgICAgICBiYXNrZXQsXG4gICAgICAgICAgZGlzY291bnRcbiAgICAgICAgKSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiAmJiBiYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmZvckVhY2goKHByb21vdGlvbikgPT4ge1xuICAgICAgICBiYXNrZXQgPSB0aGlzLnRyYW5zYWN0aW9uUHJvbW90aW9uUHJvZHVjdFBvcnRpb25DYWxjKGJhc2tldCwgcHJvbW90aW9uKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIFwiZWJhc2tldDogYmFza2V0IGl0ZW0gZGlzY291bnQgcHJvdGlvbiBjYWxjdWxhdGlvblwiLFxuICAgICAgYmFza2V0LFxuICAgICAgYmFza2V0LnByb2R1Y3RzXG4gICAgKTtcbiAgICByZXR1cm4gYmFza2V0O1xuICB9XG5cbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGMoXG4gICAgYmFza2V0OiBhbnksXG4gICAgcHJvbW90aW9uOiBhbnlcbiAgKSB7XG4gICAgbGV0IHRvdGFsID0gMDtcbiAgICBsZXQgcGVyY2VudGFnZSA9IDA7XG4gICAge1xuICAgICAgYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHA6YW55KSA9PiB7XG4gICAgICAgIGlmIChwcm9tb3Rpb24uaXRlbUxpbmVJZHMuaW5jbHVkZXMocC5pdGVtTGluZUlkKSkge1xuICAgICAgICAgIHAgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwKTtcbiAgICAgICAgICBjb25zdCBwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCA9XG4gICAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbikgK1xuICAgICAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uKSAtXG4gICAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMucmVmdW5kUG9ydGlvbik7XG4gICAgICAgICAgdG90YWwgKz0gKHAudG90YWwgLSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgZWJhc2tldDogdHJuc2FjdGlvblByb21vdGlvbjogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBwcm9tb3Rpb25cbiAgICAgICAgKX0sIHNlbGVjdGVkIHByb2R1Y3RzIHRvdGFsOiAke3RvdGFsfWBcbiAgICAgICk7XG4gICAgICBiYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdDogYW55KSA9PiB7XG4gICAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcblxuICAgICAgICBjb25zdCBwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCA9XG4gICAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdC5pdGVtRGlzY291bnRzLnRybkRpc2NvdW50c1BvcnRpb24pICtcbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24pIC1cbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMucmVmdW5kUG9ydGlvbik7XG5cbiAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcyhwcm9kdWN0Lml0ZW1MaW5lSWQpKSB7XG4gICAgICAgICAgcGVyY2VudGFnZSA9ICgocHJvZHVjdC50b3RhbCAtIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsKSkgLyB0b3RhbCkgKiAxMDA7XG4gICAgICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzLnRyblByb21vdGlvbnNQb3J0aW9uICs9XG4gICAgICAgICAgICAocHJvbW90aW9uLnByb21vdGlvbkFtb3VudCAqIHBlcmNlbnRhZ2UpIC8gMTAwO1xuICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiA9IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gYmFza2V0O1xuICB9XG5cbiAgdHJhbnNhY3Rpb25EaXNjb3VudFByb2R1Y3RQb3J0aW9uQ2FsYyhcbiAgICBiYXNrZXQ6IGFueSxcbiAgICBkaXNjb3VudDogYW55XG4gICkge1xuICAgIGxldCB0b3RhbCA9IDA7XG4gICAgbGV0IHBlcmNlbnRhZ2UgPSAwO1xuXG4gICAgYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHA6IGFueSkgPT4ge1xuICAgICAgaWYgKGRpc2NvdW50Lml0ZW1MaW5lSWRzLmluY2x1ZGVzKHAuaXRlbUxpbmVJZCkpIHtcbiAgICAgICAgcCA9IHRoaXMudmFsaWRhdGVQcm9kdWN0SXRlbURpc2NvdW50KHApO1xuICAgICAgICBjb25zdCBwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCA9XG4gICAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocC5pdGVtRGlzY291bnRzLnRybkRpc2NvdW50c1BvcnRpb24pICtcbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24pIC1cbiAgICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwLml0ZW1EaXNjb3VudHMucmVmdW5kUG9ydGlvbik7XG5cblxuICAgICAgICB0b3RhbCArPSAocC50b3RhbCAtIHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3RDb250cmlidXRpb25JblRvdGFsKSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zb2xlLmxvZyhcbiAgICAgIGBlYmFza2V0OiB0cm5zYWN0aW9uRGlzY291bnQ6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgIGRpc2NvdW50XG4gICAgICApfSwgc2VsZWN0ZWQgcHJvZHVjdHMgdG90YWw6ICR7dG90YWx9YFxuICAgICk7XG5cbiAgICBiYXNrZXQucHJvZHVjdHMuZm9yRWFjaCgocHJvZHVjdDphbnkpID0+IHtcbiAgICAgIHByb2R1Y3QgPSB0aGlzLnZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0KTtcbiAgICAgIGNvbnNvbGUubG9nKHByb2R1Y3QuZGlzY291bnRhYmxlLCBcImViYXNrZXQgOiBiYXNrZXQgc2VydmljZSA6IGRpc2NvdW50YWJsZSBpbiBiYXNrZXQgc2VydmljZVwiKTtcblxuICAgICAgY29uc3QgcHJvZHVjdENvbnRyaWJ1dGlvbkluVG90YWwgPVxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbikgK1xuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24pIC1cbiAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZS50cmltVG8yRGVjaW1hbDIocHJvZHVjdC5pdGVtRGlzY291bnRzLnJlZnVuZFBvcnRpb24pO1xuXG4gICAgICBpZiAoZGlzY291bnQuaXRlbUxpbmVJZHMuaW5jbHVkZXMocHJvZHVjdC5pdGVtTGluZUlkKSAmJiBwcm9kdWN0LmRpc2NvdW50YWJsZSA9PSB0cnVlKSB7XG4gICAgICAgIHBlcmNlbnRhZ2UgPSAoKHByb2R1Y3QudG90YWwgLSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMihwcm9kdWN0Q29udHJpYnV0aW9uSW5Ub3RhbCkpIC8gdG90YWwpICogMTAwO1xuICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbiArPVxuICAgICAgICAgIChkaXNjb3VudC5kaXNjb3VudEFtb3VudCAqIHBlcmNlbnRhZ2UpIC8gMTAwO1xuICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuRGlzY291bnRzUG9ydGlvbiA9IHRoaXMubnVtYmVyVXRpbFNlcnZpY2UudHJpbVRvMkRlY2ltYWwyKHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5EaXNjb3VudHNQb3J0aW9uKVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBiYXNrZXQ7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVQcm9kdWN0SXRlbURpc2NvdW50KHByb2R1Y3Q6IFByb2R1Y3QpIHtcbiAgICBpZiAoIXByb2R1Y3QuaXRlbURpc2NvdW50cykge1xuICAgICAgcHJvZHVjdC5pdGVtRGlzY291bnRzID0ge1xuICAgICAgICB0cm5EaXNjb3VudHNQb3J0aW9uOiAwLFxuICAgICAgICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjogMCxcbiAgICAgICAgcmVmdW5kUG9ydGlvbjogMCxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiBwcm9kdWN0O1xuICB9XG5cbiAgbWFya1Byb2R1Y3QocHJvZHVjdDogUHJvZHVjdCkge1xuICAgIHRoaXMucHJvZHVjdFNvdXJjZS5uZXh0KHByb2R1Y3QpO1xuICB9XG4gIHN0b3BQZWVyU3luY1Byb2Nlc3MocGVlclN5bmM6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnBlZXJTb3VyY2UubmV4dChwZWVyU3luYyk7XG4gIH1cblxuICBzY2FuU3RhcnQoaXNTY2FubmluZzogYm9vbGVhbikge1xuICAgIHRoaXMuc2NhblNvdXJjZS5uZXh0KGlzU2Nhbm5pbmcpO1xuICB9XG5cbiAgcHJvbW90aW9uUmVtYWluaW5nQ2FsY3VsYXRpb24ocHJvbW90aW9uOiBUcmFuc2FjdGlvblByb21vdGlvbltdKSB7XG4gICAgdmFyIHByb21vdGlvblZhbHVlID0gMDtcbiAgICBwcm9tb3Rpb24uZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgcHJvbW90aW9uVmFsdWUgKz0gZWxlbWVudC5wcm9tb3Rpb25BbW91bnQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHByb21vdGlvblZhbHVlO1xuICB9XG5cbiAgZGlzY291bnRSZW1haW5pbmdDYWxjdWxhdGlvbihkaXNjb3VudDogVHJhbnNhY3Rpb25EaXNjb3VudFtdKSB7XG4gICAgdmFyIGRpc2NvdW50VmFsdWUgPSAwO1xuICAgIGRpc2NvdW50LmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGRpc2NvdW50VmFsdWUgKz0gZWxlbWVudC5kaXNjb3VudEFtb3VudDtcbiAgICB9KTtcbiAgICByZXR1cm4gZGlzY291bnRWYWx1ZTtcbiAgfVxuXG4gIGRpc2NvdW50UmVmdW5kZWRDYWxjdWxhdGlvbihkaXNjb3VudDogVHJhbnNhY3Rpb25EaXNjb3VudFtdKSB7XG4gICAgdmFyIGRpc2NvdW50VmFsdWUgPSAwO1xuICAgIGRpc2NvdW50LmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LmRpc2NvdW50QW1vdW50IDwgMCkge1xuICAgICAgICBkaXNjb3VudFZhbHVlICs9IGVsZW1lbnQuZGlzY291bnRBbW91bnQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGRpc2NvdW50VmFsdWU7XG4gIH1cblxuICBnZW5lcmF0ZU5ld0l0ZW1MaW5lSWQocHJvZHVjdHM6IFByb2R1Y3RbXSkge1xuICAgIGxldCBsYXJnZXN0TnVtYmVyOiBhbnkgPSAwO1xuXG4gICAgaWYgKHByb2R1Y3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIGxldCBpdGVtTGluZUlkQXJyYXkgPSBwcm9kdWN0cy5tYXAoKHByb2R1Y3QpID0+IHtcbiAgICAgICAgcmV0dXJuIHByb2R1Y3QuaXRlbUxpbmVJZDtcbiAgICAgIH0pO1xuXG4gICAgICBsYXJnZXN0TnVtYmVyID0gaXRlbUxpbmVJZEFycmF5LnJlZHVjZSgoYSA6YW55LCBiOmFueSkgPT4gTWF0aC5tYXgoYSwgYikpO1xuICAgIH1cblxuICAgIHJldHVybiBsYXJnZXN0TnVtYmVyICsgMTtcbiAgfVxuXG4gIHVwZGF0ZUJhc2tldFByb2R1Y3REYXRhQXNQZXJRdWFudGl0eShcbiAgICBwcm9kdWN0OiBhbnksXG4gICAgcXVhbnRpdHk6IG51bWJlclxuICApOiBQcm9kdWN0IHtcblxuICAgIGNvbnNvbGUubG9nKGBlYmFza2V0OiB1cGRhdGVCYXNrZXRQcm9kdWN0RGF0YUFzUGVyUXVhbnRpdHkgOiAke3F1YW50aXR5fSBwcm9kdWN0OiAke0pTT04uc3RyaW5naWZ5KHByb2R1Y3QpfWApO1xuICAgIHByb2R1Y3QucXVhbnRpdHkgPSBxdWFudGl0eTtcbiAgICBpZiAocHJvZHVjdC5oYXNPd25Qcm9wZXJ0eShcImxpbmVEaXNjb3VudFwiKSkge1xuICAgICAgLy8gJiYgdGhpcy5wcm9kdWN0LnF1YW50aXR5ICE9PSB0aGlzLnByb2R1Y3REZXRhaWxGb3JtLmNvbnRyb2xzLnF1YW50aXR5LnZhbHVlXG4gICAgICBwcm9kdWN0LmxpbmVEaXNjb3VudC5kaXNjb3VudGVkTGluZVByaWNlID0gTnVtYmVyKFxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLmdldEZsb29yZWRGaXhlZChcbiAgICAgICAgICBwcm9kdWN0LmxpbmVEaXNjb3VudC51bml0UHJpY2UgKiBxdWFudGl0eSxcbiAgICAgICAgICAyXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgICBwcm9kdWN0LmxpbmVEaXNjb3VudC5kaXNjb3VudEFtb3VudCA9XG4gICAgICAgIHByb2R1Y3QudG90YWxMaW5lUHJpY2UgLSBwcm9kdWN0LmxpbmVEaXNjb3VudC5kaXNjb3VudGVkTGluZVByaWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBwcm9kdWN0LnRvdGFsTGluZVByaWNlID1cbiAgICAgICAgcXVhbnRpdHkgKiB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsKHByb2R1Y3Quc2VsZWN0ZWRQcmljZSk7XG4gICAgfVxuICAgIGlmIChwcm9kdWN0LmxpbmVEaXNjb3VudCkge1xuICAgICAgcHJvZHVjdC50b3RhbCA9IHByb2R1Y3QubGluZURpc2NvdW50LmRpc2NvdW50ZWRMaW5lUHJpY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2R1Y3QudG90YWwgPSBwcm9kdWN0LnRvdGFsTGluZVByaWNlO1xuICAgIH1cbiAgICBjb25zb2xlLmxvZyhgZWJhc2tldDogdXBkYXRlQmFza2V0UHJvZHVjdERhdGFBc1BlclF1YW50aXR5IDogJHtxdWFudGl0eX0gcHJvZHVjdDogJHtKU09OLnN0cmluZ2lmeShwcm9kdWN0KX1gKTtcblxuICAgIHJldHVybiBwcm9kdWN0O1xuICB9XG5cbiAgZmlsdGVyUHJvZHVjdExpc3RXaXRoV2ViT3JkZXIoaXNXZWJPcmRlcjogYm9vbGVhbik6IFByb2R1Y3RbXSB7XG4gICAgY29uc29sZS5sb2coXCJlYmFza2V0OiBmaWx0ZXJQcm9kdWN0TGlzdFdpdGhXZWJPcmRlciBoaXRcIiwgSlNPTi5zdHJpbmdpZnkodGhpcy5jdXJyZW50QmFza2V0LnByb2R1Y3RzKSk7XG4gICAgaWYgKGlzV2ViT3JkZXIpXG4gICAgICByZXR1cm4gdGhpcy5jdXJyZW50QmFza2V0LnByb2R1Y3RzLmZpbHRlcigoeCkgPT4geC5pc1dlYk9yZGVyKTtcbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRCYXNrZXQucHJvZHVjdHMuZmlsdGVyKCh4KSA9PiAheC5pc1dlYk9yZGVyKTtcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJQcm9kdWN0TGlzdFdpdGhEZWxpdmVyeSgpOiBQcm9kdWN0W10ge1xuICAgIGNvbnNvbGUubG9nKFwiZWJhc2tldDogZmlsdGVyUHJvZHVjdExpc3RXaXRoRGVsaXZlcnkgaGl0XCIsIEpTT04uc3RyaW5naWZ5KHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cykpO1xuICAgIHJldHVybiB0aGlzLmN1cnJlbnRCYXNrZXQucHJvZHVjdHMuZmlsdGVyKCh4KSA9PiB4LmRlbGl2ZXJ5TWV0aG9kID09PSBERUxJVkVSWV9NRVRIT0RTLkRFTElWRVJZLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgZmlsdGVyUHJvZHVjdExpc3RXaXRoRGVsaXZlcnlHcm91cChncm91cDogc3RyaW5nLCBwcm9kdWN0czogUHJvZHVjdFtdKTogUHJvZHVjdFtdIHtcbiAgICBjb25zb2xlLmxvZyhcImViYXNrZXQ6IGZpbHRlclByb2R1Y3RMaXN0V2l0aERlbGl2ZXJ5R3JvdXAgaGl0XCIsIEpTT04uc3RyaW5naWZ5KHByb2R1Y3RzKSk7XG4gICAgcmV0dXJuIHByb2R1Y3RzLmZpbHRlcigoeCkgPT4geC5kZWxpdmVyeUdyb3VwID09PSBncm91cCk7XG4gIH1cblxuICBnZW5lcmF0ZU5ld0RlbGl2ZXJ5R3JvdXBOdW1iZXIocHJvZHVjdHM6IFByb2R1Y3RbXSkge1xuICAgIGxldCBsYXJnZXN0TnVtYmVyID0gMDtcblxuICAgIGlmIChwcm9kdWN0cy5sZW5ndGggPiAwKSB7XG4gICAgICBsZXQgZGVsaXZlcnlHcm91cEFyciA9IHByb2R1Y3RzLm1hcCgocHJvZHVjdCkgPT4ge1xuICAgICAgICBpZiAocHJvZHVjdC5kZWxpdmVyeUdyb3VwKSB7XG4gICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHByb2R1Y3QuZGVsaXZlcnlHcm91cCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KTtcblxuICAgICAgbGFyZ2VzdE51bWJlciA9IGRlbGl2ZXJ5R3JvdXBBcnIucmVkdWNlKChhLCBiKSA9PiBNYXRoLm1heChhLCBiKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIChsYXJnZXN0TnVtYmVyICsgMSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGdldERlbGl2ZXJ5R3JvdXBOdW1iZXJzKHByb2R1Y3RzOiBQcm9kdWN0W10pIHtcbiAgICBjb25zb2xlLmxvZyhcImdldERlbGl2ZXJ5R3JvdXBOdW1iZXJzIGluaXRpYXRpbmcgOiBcIiwgSlNPTi5zdHJpbmdpZnkocHJvZHVjdHMpKTtcblxuICAgIGxldCB1bmlxdWVBbmRzb3J0ZWRSZXN1bHQ6IG51bWJlcltdID0gW107XG5cbiAgICBpZiAocHJvZHVjdHMubGVuZ3RoID4gMCkge1xuICAgICAgbGV0IGRlbGl2ZXJ5R3JvdXBBcnIgPSBwcm9kdWN0cy5tYXAoKHByb2R1Y3QpID0+IHtcbiAgICAgICAgaWYgKHByb2R1Y3QuZGVsaXZlcnlHcm91cCkge1xuICAgICAgICAgIHJldHVybiBwYXJzZUludChwcm9kdWN0LmRlbGl2ZXJ5R3JvdXApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHByb2R1Y3QuZGVsaXZlcnlNZXRob2QgPT09IFwiMVwiKSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIDA7XG4gICAgICB9KTtcblxuICAgICAgdW5pcXVlQW5kc29ydGVkUmVzdWx0ID0gQXJyYXkuZnJvbShuZXcgU2V0KGRlbGl2ZXJ5R3JvdXBBcnIpKS5zb3J0KChhLCBiKSA9PiBhIC0gYik7XG4gICAgICBjb25zb2xlLmxvZyhcImdldERlbGl2ZXJ5R3JvdXBOdW1iZXJzIDogXCIsIEpTT04uc3RyaW5naWZ5KHVuaXF1ZUFuZHNvcnRlZFJlc3VsdCkpO1xuICAgIH1cbiAgICByZXR1cm4gdW5pcXVlQW5kc29ydGVkUmVzdWx0O1xuICB9XG5cbiAgdXBkYXRlUHJvZHVjdHNXaXRoTmV3RGVsaXZlcnlHcm91cE51bWJlcihwcm9kdWN0czogUHJvZHVjdFtdKSB7XG4gICAgY29uc29sZS5sb2coXCJ1cGRhdGVQcm9kdWN0c1dpdGhOZXdEZWxpdmVyeUdyb3VwTnVtYmVyIGluaXRpYXRpbmcgOiBcIiwgSlNPTi5zdHJpbmdpZnkocHJvZHVjdHMpKTtcblxuICAgIGxldCBuZXdHcm91cE51bWJlciA9IHRoaXMuZ2VuZXJhdGVOZXdEZWxpdmVyeUdyb3VwTnVtYmVyKHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cyk7XG4gICAgaWYgKHByb2R1Y3RzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKGNCUHJvZHVjdHMgPT4ge1xuICAgICAgICBwcm9kdWN0cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgIGlmIChjQlByb2R1Y3RzLml0ZW1MaW5lSWQgPT09IGVsZW1lbnQuaXRlbUxpbmVJZCkge1xuICAgICAgICAgICAgY0JQcm9kdWN0cy5kZWxpdmVyeUdyb3VwID0gbmV3R3JvdXBOdW1iZXI7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUJhc2tldCh0aGlzLmN1cnJlbnRCYXNrZXQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNhbGN1bGF0ZUVzdGltYXRlZFRpbWUocHJvZHVjdHM6IGFueVtdKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCB0aW1lO1xuICAgICAgbGV0IGVzdG1hdGVkVGltZTogbnVtYmVyID0gMDtcbiAgICAgIGxldCBlc3RpbWF0ZWREYXlzOiBzdHJpbmcgPSBcIkhvdXJzXCI7XG4gICAgICBwcm9kdWN0cy5mb3JFYWNoKChlbGVtZW50OiB7IGxlYWRUaW1lOiB7IHR5cGU6IHN0cmluZzsgdmFsdWU6IGFueTsgfTsgfSkgPT4ge1xuXG4gICAgICAgIGlmIChlbGVtZW50LmxlYWRUaW1lLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJ3ZWVrc1wiKSB7XG4gICAgICAgICAgdGltZSA9IE51bWJlcihlbGVtZW50LmxlYWRUaW1lLnZhbHVlKSAqIDI0ICogNztcbiAgICAgICAgICBlc3RtYXRlZFRpbWUgPSBNYXRoLm1heChlc3RtYXRlZFRpbWUsIHRpbWUpO1xuICAgICAgICAgIGVzdGltYXRlZERheXMgPSAoZXN0bWF0ZWRUaW1lID09PSB0aW1lKSA/IGVsZW1lbnQubGVhZFRpbWUudHlwZSA6IGVzdGltYXRlZERheXNcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIndlZWtcIiwgZXN0bWF0ZWRUaW1lLCBlc3RpbWF0ZWREYXlzKTtcblxuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQubGVhZFRpbWUudHlwZS50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcImRheXNcIikge1xuICAgICAgICAgIHRpbWUgPSBOdW1iZXIoZWxlbWVudC5sZWFkVGltZS52YWx1ZSkgKiAyNDtcbiAgICAgICAgICBlc3RtYXRlZFRpbWUgPSBNYXRoLm1heChlc3RtYXRlZFRpbWUsIHRpbWUpO1xuICAgICAgICAgIGVzdGltYXRlZERheXMgPSAoZXN0bWF0ZWRUaW1lID09PSB0aW1lKSA/IGVsZW1lbnQubGVhZFRpbWUudHlwZSA6IGVzdGltYXRlZERheXNcblxuICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF5c1wiLCBlc3RtYXRlZFRpbWUsIGVzdGltYXRlZERheXMpO1xuXG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5sZWFkVGltZS50eXBlLnRvTG9jYWxlTG93ZXJDYXNlKCkgPT09IFwibW9udGhzXCIpIHtcbiAgICAgICAgICB0aW1lID0gTnVtYmVyKGVsZW1lbnQubGVhZFRpbWUudmFsdWUpICogMjQgKiAzMDtcbiAgICAgICAgICBlc3RtYXRlZFRpbWUgPSBNYXRoLm1heChlc3RtYXRlZFRpbWUsIHRpbWUpO1xuICAgICAgICAgIGVzdGltYXRlZERheXMgPSAoZXN0bWF0ZWRUaW1lID09PSB0aW1lKSA/IGVsZW1lbnQubGVhZFRpbWUudHlwZSA6IGVzdGltYXRlZERheXNcblxuICAgICAgICAgIGNvbnNvbGUubG9nKFwibW9udGhzXCIsIGVzdG1hdGVkVGltZSwgZXN0aW1hdGVkRGF5cyk7XG5cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmIChlbGVtZW50LmxlYWRUaW1lLnR5cGUudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJ5ZWFyc1wiKSB7XG4gICAgICAgICAgdGltZSA9IE51bWJlcihlbGVtZW50LmxlYWRUaW1lLnZhbHVlKSAqIDI0ICogMzY1O1xuICAgICAgICAgIGVzdG1hdGVkVGltZSA9IE1hdGgubWF4KGVzdG1hdGVkVGltZSwgdGltZSk7XG4gICAgICAgICAgZXN0aW1hdGVkRGF5cyA9IChlc3RtYXRlZFRpbWUgPT09IHRpbWUpID8gZWxlbWVudC5sZWFkVGltZS50eXBlIDogZXN0aW1hdGVkRGF5c1xuXG4gICAgICAgICAgY29uc29sZS5sb2coXCJ5ZWFyc1wiLCBlc3RtYXRlZFRpbWUsIGVzdGltYXRlZERheXMpO1xuXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGltZSA9IE51bWJlcihlbGVtZW50LmxlYWRUaW1lLnZhbHVlKTtcbiAgICAgICAgICBlc3RtYXRlZFRpbWUgPSBNYXRoLm1heChlc3RtYXRlZFRpbWUsIHRpbWUpO1xuICAgICAgICAgIGVzdGltYXRlZERheXMgPSAoZXN0bWF0ZWRUaW1lID09PSB0aW1lKSA/IGVsZW1lbnQubGVhZFRpbWUudHlwZSA6IGVzdGltYXRlZERheXM7XG4gICAgICAgICAgY29uc29sZS5sb2coXCJob3Vyc1wiLCBlc3RtYXRlZFRpbWUsIGVzdGltYXRlZERheXMpO1xuXG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBpZiAoZXN0aW1hdGVkRGF5cy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcImRheXNcIikge1xuICAgICAgICBlc3RtYXRlZFRpbWUgPSBlc3RtYXRlZFRpbWUgLyAyNDtcbiAgICAgIH0gZWxzZSBpZiAoZXN0aW1hdGVkRGF5cy50b0xvY2FsZUxvd2VyQ2FzZSgpID09PSBcIndlZWtzXCIpIHtcbiAgICAgICAgZXN0bWF0ZWRUaW1lID0gZXN0bWF0ZWRUaW1lIC8gKDI0ICogNyk7XG4gICAgICB9IGVsc2UgaWYgKGVzdGltYXRlZERheXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJtb250aHNcIikge1xuICAgICAgICBlc3RtYXRlZFRpbWUgPSBlc3RtYXRlZFRpbWUgLyAoMjQgKiAzMCk7XG4gICAgICB9IGVsc2UgaWYgKGVzdGltYXRlZERheXMudG9Mb2NhbGVMb3dlckNhc2UoKSA9PT0gXCJ5ZWFyc1wiKSB7XG4gICAgICAgIGVzdG1hdGVkVGltZSA9IGVzdG1hdGVkVGltZSAvICgyNCAqIDM2NSk7XG4gICAgICB9XG5cbiAgICAgIGxldCBlc3RpbWF0ZSA9IHtcbiAgICAgICAgdmFsdWU6IGVzdG1hdGVkVGltZS50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiBlc3RpbWF0ZWREYXlzXG4gICAgICB9XG4gICAgICByZXR1cm4gZXN0aW1hdGU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3IgaW4gY2FsY3VsYXRlRXN0aW1hdGVkVGltZVwiLCBlcnJvcik7XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgdXBkYXRlUHJvZHVjdHNXaXRoRGVsaXZlcnlHcm91cE51bWJlcihvbGRHcm91cDogc3RyaW5nLCBuZXdHcm91cDogc3RyaW5nKSB7XG4gICAgY29uc29sZS5sb2coXCJ1cGRhdGVQcm9kdWN0c1dpdGhEZWxpdmVyeUdyb3VwTnVtYmVyIGluaXRpYXRpbmdcIik7XG5cbiAgICB0aGlzLmN1cnJlbnRCYXNrZXQucHJvZHVjdHMuZm9yRWFjaChjQlByb2R1Y3RzID0+IHtcbiAgICAgIGlmIChjQlByb2R1Y3RzLmRlbGl2ZXJ5R3JvdXAgPT09IG9sZEdyb3VwKSB7XG4gICAgICAgIGNCUHJvZHVjdHMuZGVsaXZlcnlHcm91cCA9IG5ld0dyb3VwO1xuICAgICAgfVxuXG4gICAgfSk7XG5cbiAgICB0aGlzLnVwZGF0ZUJhc2tldCh0aGlzLmN1cnJlbnRCYXNrZXQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGdldERlbGl2ZXJ5SW5mbygpOiBhbnkge1xuICAgIGNvbnNvbGUubG9nKFwiZ2V0RGVsaXZlcnlHcm91cEluZm9yIGluaXRpYXRpbmdcIik7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBncm91cEluZm86IERlbGl2ZXJ5SW5mbyA9IHtcbiAgICAgICAgZ3JvdXBzOiBbXVxuICAgICAgfVxuXG4gICAgICB0aGlzLmdldERlbGl2ZXJ5R3JvdXBOdW1iZXJzKHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cykuZm9yRWFjaCgoZ3JvdXBOdW1iZXIpID0+IHtcbiAgICAgICAgbGV0IGdyb3VwOiBhbnkgPSB7XG4gICAgICAgICAgZ3JvdXBOdW1iZXI6IGdyb3VwTnVtYmVyLFxuICAgICAgICAgIGl0ZW1zOiBbXSxcbiAgICAgICAgICBlc3RpbWF0ZToge1xuICAgICAgICAgICAgdHlwZTogXCJIb3Vyc1wiLFxuICAgICAgICAgICAgdmFsdWU6IFwiMFwiXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudEJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKGNCUHJvZHVjdHMgPT4ge1xuICAgICAgICAgIGlmIChjQlByb2R1Y3RzLmRlbGl2ZXJ5R3JvdXAgPT09IGdyb3VwTnVtYmVyLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIGdyb3VwLml0ZW1zLnB1c2goY0JQcm9kdWN0cyk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBncm91cC5lc3RpbWF0ZSA9IHRoaXMuY2FsY3VsYXRlRXN0aW1hdGVkVGltZShncm91cC5pdGVtcyk7XG5cbiAgICAgICAgZ3JvdXBJbmZvLmdyb3Vwcy5wdXNoKGdyb3VwKTtcblxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBncm91cEluZm87XG4gICAgfVxuICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -5,18 +5,18 @@ export class MapperLibraryComponent {
5
5
  ngOnInit() {
6
6
  }
7
7
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MapperLibraryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MapperLibraryComponent, selector: "lib-mapper-library", ngImport: i0, template: `
9
- <p>
10
- mapper-library works!
11
- </p>
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MapperLibraryComponent, selector: "lib-mapper-library", ngImport: i0, template: `
9
+ <p>
10
+ mapper-library works!
11
+ </p>
12
12
  `, isInline: true }); }
13
13
  }
14
14
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MapperLibraryComponent, decorators: [{
15
15
  type: Component,
16
- args: [{ selector: 'lib-mapper-library', template: `
17
- <p>
18
- mapper-library works!
19
- </p>
16
+ args: [{ selector: 'lib-mapper-library', template: `
17
+ <p>
18
+ mapper-library works!
19
+ </p>
20
20
  ` }]
21
21
  }], ctorParameters: () => [] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcGVyLWxpYnJhcnkvc3JjL2xpYi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs4R0FMVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwREFSdkI7Ozs7R0FJVDs7MkZBSVUsc0JBQXNCO2tCQVZsQyxTQUFTOytCQUNFLG9CQUFvQixZQUNwQjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLW1hcHBlci1saWJyYXJ5JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPHA+XHJcbiAgICAgIG1hcHBlci1saWJyYXJ5IHdvcmtzIVxyXG4gICAgPC9wPlxyXG4gIGAsXHJcbiAgc3R5bGVzOiBbXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFwcGVyTGlicmFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbn1cclxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcGVyLWxpYnJhcnkvc3JjL2xpYi9tYXBwZXItbGlicmFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs4R0FMVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwREFSdkI7Ozs7R0FJVDs7MkZBSVUsc0JBQXNCO2tCQVZsQyxTQUFTOytCQUNFLG9CQUFvQixZQUNwQjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW1hcHBlci1saWJyYXJ5JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8cD5cbiAgICAgIG1hcHBlci1saWJyYXJ5IHdvcmtzIVxuICAgIDwvcD5cbiAgYCxcbiAgc3R5bGVzOiBbXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTWFwcGVyTGlicmFyeUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iXX0=
@@ -36,4 +36,4 @@ export var PROMOTION_TYPE;
36
36
  (function (PROMOTION_TYPE) {
37
37
  PROMOTION_TYPE["COUPON"] = "COUPON";
38
38
  })(PROMOTION_TYPE || (PROMOTION_TYPE = {}));
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL21hcHBlci1saWJyYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLHFDQUFpQixDQUFBO0lBQ2pCLCtDQUEyQixDQUFBO0lBQzNCLG1EQUErQixDQUFBO0lBQy9CLGlDQUFhLENBQUE7SUFDYiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBUFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU8zQjtBQVNELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0RBQVksQ0FBQTtJQUNaLGlFQUFhLENBQUE7SUFDYixtRkFBc0IsQ0FBQTtJQUN0Qix5RUFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQTRpQkQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFhRCxNQUFNLENBQU4sSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQzNCLHdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCO0FBZ0xELE1BQU0sQ0FBTixJQUFZLFNBRVg7QUFGRCxXQUFZLFNBQVM7SUFDbkIsc0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUZXLFNBQVMsS0FBVCxTQUFTLFFBRXBCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUV6QixnQ0FBVyxDQUFBO0lBQ1gsOENBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUV4QixtQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5cclxuZXhwb3J0IGVudW0gVFJBTlNBQ1RJT05fVFlQRSB7XHJcbiAgU0FMRSA9IFwiU0FMRVwiLFxyXG4gIFJFRlVORCA9IFwiUkVGVU5EXCIsXHJcbiAgU0FMRV9SRUZVTkQgPSBcIlNBTEVfUkVGVU5EXCIsXHJcbiAgU0FMRV9FWENIQU5HRSA9IFwiU0FMRV9FWENIQU5HRVwiLFxyXG4gIFZPSUQgPSBcIlZPSURcIixcclxuICBXRUJfUkVUVVJOUyA9IFwiV0VCX1JFVFVSTlNcIlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EaXNjb3VudCB7XHJcbiAgdHJuRGlzY291bnRzUG9ydGlvbjogbnVtYmVyO1xyXG4gIHRyblByb21vdGlvbnNQb3J0aW9uOiBudW1iZXI7XHJcbiAgcmVmdW5kUG9ydGlvbjogbnVtYmVyO1xyXG4gIGN1cnJlbnRSZWZ1bmRQb3J0aW9uPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBERUxJVkVSWV9NRVRIT0RTIHtcclxuICBERUxJVkVSWSA9IDEsXHJcbiAgRFJPUF9TSElQID0gMixcclxuICBDT0xMRUNUX0ZST01fU1RPUkUgPSAzLFxyXG4gIFNISVBfVE9fU1RPUkUgPSA0XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdENoYW5nZSB7XHJcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcclxuICBTS1U6IHN0cmluZztcclxuICBxdWFudGl0eTogbnVtYmVyO1xyXG4gIHNlbGVjdGVkUHJpY2U/OiBudW1iZXI7XHJcbiAgbGluZURpc2NvdW50PzogTGluZURpc2NvdW50O1xyXG4gIGxpbmVQcm9tb3Rpb25zPzogTGluZVByb21vdGlvbnM7XHJcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZTtcclxuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5zIHF1YW50aXR5IG9mIGJvdGggZnVsbCBwcmljZWQgYW5kIHByb21vdGlvbmFsIHF1YW50aXRpZXNcclxuICByZWZ1bmRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyOyAgICAgICAgICAgICAgIC8vIHByb21vdGlvbmFsIHF1YW50aXR5XHJcbiAgcmVmdW5kZWQ/OiBib29sZWFuO1xyXG4gIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kZWRSZWFzb24/OiBzdHJpbmc7XHJcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86IHN0cmluZztcclxuICBpc0NoZWNrZWQ/OiBib29sZWFuO1xyXG4gIHNlYWxlZD86IGJvb2xlYW47XHJcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFByb2R1Y3RcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFByb2R1Y3RDaGFuZ2Uge1xyXG4gIGl0ZW1MaW5lSWQ/OiBudW1iZXI7XHJcbiAgc3RhdHVzOiBudW1iZXI7XHJcbiAgc3ViR3JvdXA6IG51bWJlcjtcclxuICBicmFuZDogc3RyaW5nO1xyXG4gIGN1cnJlbmN5OiBzdHJpbmc7XHJcbiAgY2F0ZWdvcnk6IHN0cmluZztcclxuICBjb3VudHJ5b2ZPcmlnaW46IHN0cmluZztcclxuICBwcm9kdWN0SWQ6IHN0cmluZztcclxuICBwcm9kdWN0VHlwZTogbnVtYmVyO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgaW1hZ2VVcmxzOiBbc3RyaW5nXTtcclxuICBpc0ltYWdlRmFpbFRvTG9hZD86IGJvb2xlYW47XHJcbiAgc2l6ZTogc3RyaW5nO1xyXG4gIHR5cGU6IHN0cmluZztcclxuICBzZWFzb246IG51bWJlcjtcclxuICBwcm9kdWN0R3JvdXA6IG51bWJlcjtcclxuICBzdHlsZUNvZGU6IHN0cmluZztcclxuICBub2RlU3RydWN0dXJlOiBOb2RlU3RydWN0dXJlW107XHJcbiAgYmFyY29kZTogc3RyaW5nO1xyXG4gIHByaWNlOiBQcmljZVtdO1xyXG4gIGNvbG91cjogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XHJcbiAgdG90YWxMaW5lUHJpY2U6IG51bWJlcjtcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIGFkZGVkSW5CYXNrZXQ/OiBib29sZWFuO1xyXG4gIHNlbGVjdGVkVkFUPzogbnVtYmVyO1xyXG4gIHNlbGVjdGVkVkFUQ29kZT86IHN0cmluZztcclxuICBzZWxlY3RlZFJSUFByaWNlPzogbnVtYmVyO1xyXG4gIGxpbmVEaXNjb3VudD86IExpbmVEaXNjb3VudDtcclxuICBleGNoYW5nZT86IEV4Y2hhbmdlO1xyXG4gIC8vIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7XHJcbiAgLy8gcmVmdW5kZWQ/OiBib29sZWFuO1xyXG4gIC8vIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XHJcbiAgLy8gcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xyXG4gIC8vIGlzQ2hlY2tlZD86Ym9vbGVhbjtcclxuICByZWZ1bmRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyOyAgICAgICAgICAgICAgIC8vIHByb21vdGlvbmFsIHF1YW50aXR5XHJcbiAgZXhjaGFuZ2VSZWFzb24/OiBzdHJpbmc7XHJcbiAgZXhjaGFuZ2VRdWFudGl0eT86IG51bWJlcjtcclxuICBpdGVtRGlzY291bnRzOiBJdGVtRGlzY291bnQ7XHJcblxyXG4gIGdpZnRDYXJkTnVtYmVySXNzdWVkPzogc3RyaW5nO1xyXG4gIGdpZnRDYXJkQW1vdW50PzogbnVtYmVyO1xyXG4gIGdpZnRDYXJkUmVjaXBpZW50RW1haWw/OiBzdHJpbmc7XHJcbiAgZ2lmdENhcmRFeHBpcnlEYXRlPzogc3RyaW5nO1xyXG4gIGdpZnRDYXJkUmVjaXBpZW50TmFtZT86IHN0cmluZztcclxuICBnaWZ0Q2FyZD86IGJvb2xlYW47XHJcblxyXG4gIGRpc2NvdW50YWJsZTogYm9vbGVhbjtcclxuICAvLyBzZWFsZWQ/OmJvb2xlYW47XHJcbiAgZXhjbHVkZVByb21vdGlvbjogYm9vbGVhbjtcclxuICBjYXRlZ29yaWVzOiBDYXRlZ29yaWVzW107XHJcbiAgZGVzY3JpcHRpb25zOiBEZXNjcmlwdGlvbnNbXTtcclxuICBiYXJjb2Rlczogc3RyaW5nW107XHJcblxyXG4gIC8vTmV3IEZlaWxkc1xyXG4gIGV4dGVybmFsSWQ6IHN0cmluZztcclxuICBjcmVhdGVkRGF0ZTogc3RyaW5nO1xyXG4gIHVwZGF0ZWREYXRlOiBzdHJpbmc7XHJcbiAgY3JlYXRlZEJ5OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEJ5OiBzdHJpbmc7XHJcbiAgYXR0cmlidXRlczogQ29yZUF0dHJpYnV0ZVtdO1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbG9uZ19kZXNjcmlwdGlvbjogc3RyaW5nO1xyXG5cclxuICAvLyBNaXhlZCBTYWxlcyBmaWVsZHNcclxuICBpc1dlYk9yZGVyPzogYm9vbGVhbixcclxuICBmdWxsZmlsbWVudElkOiBzdHJpbmcsXHJcbiAgZnVsbGZpbG1lbnRMb2NhdGlvbk5hbWU/OiBzdHJpbmcsXHJcbiAgZGVsaXZlcnlNZXRob2Q/OiBzdHJpbmcsXHJcbiAgZGVsaXZlcnlHcm91cD86IHN0cmluZyxcclxuICBzZWxlY3RlZEludmVudG9yeT86IEludmVudG9yeUluZm87XHJcbiAgbGVhZFRpbWU/OiBsZWFkVGltZVxyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgbGVhZFRpbWUge1xyXG4gIHR5cGU6IHN0cmluZyxcclxuICB2YWx1ZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXhjaGFuZ2Uge1xyXG4gIGV4Y2hhbmdlSWQ6IG51bWJlcixcclxuICBsaW5lSXRlbUlkOiBudW1iZXIsXHJcbiAgcmVhc29uOiBzdHJpbmcsXHJcbiAgcXVhbnRpdHk6IG51bWJlcixcclxuICBuZXdJdGVtczogUHJvZHVjdFtdO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhdGVnb3JpZXMge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgcGFyZW50SWQ6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgY2F0ZWdvcnlJZDogc3RyaW5nO1xyXG4gIHN0YXR1czogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdGlvbnMge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29yZUF0dHJpYnV0ZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHZhbHVlOiBzdHJpbmc7XHJcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcclxuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogQmFza2V0XHJcbiAqL1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXQge1xyXG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcclxuICBwcm9kdWN0czogUHJvZHVjdFtdO1xyXG4gIHRyYW5zYWN0aW9uRGlzY291bnQ6IGFueVtdO1xyXG4gIHF1YW50aXR5OiBudW1iZXI7XHJcbiAgdG90YWw6IG51bWJlcjtcclxuICBzYWxlVG90YWw6IG51bWJlcjtcclxuICBkaXNjb3VudFRvdGFsPzogbnVtYmVyO1xyXG4gIHRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XHJcbiAgb2ZmbGluZVRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XHJcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XHJcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kVG90YWw/OiBudW1iZXI7XHJcbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24/OiBUcmFuc2FjdGlvblByb21vdGlvbltdO1xyXG4gIGN1c3RvbWVyPzogYW55O1xyXG4gIGV4Y2hhbmdlPzogRXhjaGFuZ2VbXTtcclxuICBpblN0b3JlRmxhZz86IGJvb2xlYW5cclxufVxyXG5cclxuXHJcblxyXG4vKipcclxuICogUHJpY2VcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2Uge1xyXG4gIFZBVDogbnVtYmVyO1xyXG4gIFZBVENvZGU6IHN0cmluZztcclxuICBzYWxlc1ByaWNlOiBudW1iZXI7XHJcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgUlJQUHJpY2U6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIE5vZGUgc3RydWN0dXJlXHJcbiAqL1xyXG5pbnRlcmZhY2UgTm9kZVN0cnVjdHVyZSB7XHJcbiAgc3RhdHVzOiBib29sZWFuO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBub2RlVHlwZTogc3RyaW5nO1xyXG4gIGlzT3ZlcnJpZGU6IGJvb2xlYW47XHJcbiAgbm9kZUlkOiBzdHJpbmc7XHJcbiAgcGFyZW50SWQ6IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIExpbmUgRGlzY291bnRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGluZURpc2NvdW50IHtcclxuICBpdGVtTGluZUlkOiBzdHJpbmcsXHJcbiAgZGlzY291bnRBbW91bnQ6IG51bWJlcixcclxuICBkaXNjb3VudFR5cGU6IHN0cmluZyxcclxuICAvLyByZWFzb25Db2RlOiBzdHJpbmcsXHJcbiAgbmFtZT86IHN0cmluZyxcclxuICB1bml0UHJpY2U6IG51bWJlcixcclxuICBkaXNjb3VudGVkTGluZVByaWNlPzogbnVtYmVyLFxyXG4gIHByaWNlTWFuYWdlck92ZXJyaWRlPzogVXNlck92ZXJyaWRlLFxyXG4gIHByaWNlT3ZlcnJpZGVSZWFzb25Db2RlPzogc3RyaW5nLFxyXG4gIHByaWNlT3ZlcnJpZGVSZWFzb25OYW1lPzogc3RyaW5nLFxyXG4gIHByaWNlT3ZlcnJpZGVBbW91bnQ/OiBudW1iZXIsXHJcbiAgcGVyY2VudGFnZURpc2NvdW50TWFuYWdlck92ZXJyaWRlPzogVXNlck92ZXJyaWRlLFxyXG4gIHBlcmNlbnRhZ2VEaXNjb3VudFJlYXNvbkNvZGU/OiBzdHJpbmcsXHJcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uTmFtZT86IHN0cmluZyxcclxuICBwZXJjZW50YWdlRGlzY291bnRWYWx1ZT86IG51bWJlclxyXG59XHJcblxyXG4vKipcclxuICogVXNlciBPdmVycmlkZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBVc2VyT3ZlcnJpZGUge1xyXG4gIHVzZXJJZDogc3RyaW5nLFxyXG4gIGF1dG9tYXRpY0FwcHJvdmU6IHN0cmluZyxcclxuICBvcmlnaW5hbFVzZXJJZDogc3RyaW5nXHJcbn1cclxuXHJcbi8qKlxyXG4qIGxpbmUgUHJvbW90aW9uc1xyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIExpbmVQcm9tb3Rpb25zIHtcclxuXHJcbiAgdHJpZ2dlcjogVHJpZ2dlcltdLFxyXG4gIGl0ZW1MaW5lSWQ6IG51bWJlcixcclxuICBwcm9tb3Rpb25JZDogc3RyaW5nLFxyXG4gIGRpc3BsYXlUZXh0OiBzdHJpbmcsXHJcbiAgcHJvbW90aW9uVHlwZTogc3RyaW5nLFxyXG4gIHByb21vdGlvbkFtb3VudDogbnVtYmVyLFxyXG4gIG5hbWU6IHN0cmluZyxcclxuICBwcm9tb3Rpb25JbmZvOiBzdHJpbmcsXHJcbiAgcHJvbW90aW9uTGluZVByaWNlOiBudW1iZXJcclxuICByZWZ1bmRlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4qIHRyaWdnZXJcclxuKi9cclxuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyIHtcclxuICBpdGVtTGluZUlkOiBzdHJpbmc7XHJcbiAgcXVhbnRpdHk/OiBudW1iZXI7XHJcbiAgdG90YWxRdWFudGl0eT86IG51bWJlcjtcclxuICBsaW5lUHJvbW90aW9uQW1vdW50PzpudW1iZXI7ICAgLy8gcHJvbW90aW9uIGFtb3VudCBhcHBsaWVkIGFjY3Jvc3MgdGhlIGxpbmVcclxuICBwcm9tb3Rpb25BbW91bnQ/Om51bWJlcjsgICAvLyBwcm9tb3Rpb24gYW1vdW50IGFwcGxpZWQgb24gMSB1bml0XHJcbiAgcmVmdW5kZWRSZWFzb24/OiBzdHJpbmc7XHJcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xyXG4gIHByb21vdGlvbklkPzpzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4qIFRyYW5zYWN0aW9uIFByb21vdGlvblxyXG4qL1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUHJvbW90aW9uIHtcclxuICBkaXNwbGF5VGV4dDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBwcm9tb3Rpb25BbW91bnQ6IG51bWJlcjtcclxuICBwcm9tb3Rpb25JZDogc3RyaW5nO1xyXG4gIHByb21vdGlvbkluZm86IHN0cmluZztcclxuICBwcm9tb3Rpb25UeXBlOiBzdHJpbmc7XHJcbiAgaXRlbUxpbmVJZHM6IG51bWJlcltdO1xyXG4gIHR5cGU/OnN0cmluZztcclxuICBzdWJMZXZlbFR5cGU/OlBST01PVElPTl9MRVZFTFxyXG4gIHRyaWdnZXI/OlRyaWdnZXJbXTtcclxuICBjb3Vwb25Db2RlPzpzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUmVmdW5kUHJvZHVjdENoYW5nZSB7XHJcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcclxuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUHJvbW90aW9uYWxRdWFudGl0eT86IG51bWJlcjtcclxuICByZWZ1bmRUb3RhbD86IG51bWJlcjtcclxuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcclxuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIHJlZnVuZFdpdGhQcm9tb3Rpb246IGJvb2xlYW47XHJcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnZlbnRvcnlJbmZvIHtcclxuICBzdG9yZU5hbWU6IHN0cmluZyxcclxuICBzdG9yZUlkOiBzdHJpbmcsXHJcbiAgcXVhbnRpdHlBdmFpbGFibGU6IG51bWJlcixcclxuICBxdWFudGl0eVJlcXVpcmVkOiBudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJbnZlbnRvcnlSZXF1ZXN0SW5mbyBleHRlbmRzIEludmVudG9yeUluZm8ge1xyXG4gIHJlcXVlc3RlZFF1YW50aXR5OiBudW1iZXIsXHJcbiAgcmVxdWVzdGVkQWN0aW9uOiBERUxJVkVSWV9NRVRIT0RTXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlJbmZvIHtcclxuICBncm91cHM6IERlbGl2ZXJ5R3JvdXBJbmZvW11cclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEZWxpdmVyeUdyb3VwSW5mbyB7XHJcbiAgZ3JvdXBOdW1iZXI6IG51bWJlcjtcclxuICBpdGVtczogUHJvZHVjdFtdO1xyXG4gIGVzdGltYXRlPzogRXN0aW1hdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRXN0aW1hdGUge1xyXG4gIHR5cGU6IHN0cmluZyxcclxuICB2YWx1ZTogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Eb2N1bWVudCB7XHJcbiAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcclxuICBzdWJzaWRpYXJ5SWQ/OiBzdHJpbmc7XHJcbiAgb2ZmbGluZVRyYW5zYWN0aW9uSWQ/OnN0cmluZztcclxuICB0cmFuc2FjdGlvblJlZj86IHN0cmluZztcclxuICBkYXRlVGltZT86IHN0cmluZztcclxuICBvcmdDb2RlOiBzdHJpbmc7XHJcbiAgc3RvcmVJZDogc3RyaW5nO1xyXG4gIHN0b3JlTm9kZUlkOnN0cmluZztcclxuICBzdG9yZU5vZGVTdHJ1Y3R1cmU6c3RyaW5nO1xyXG4gIGRldmljZUlkOiBzdHJpbmc7XHJcbiAgdGVybWluYWxJZDpzdHJpbmc7XHJcbiAgaW5pdGlhdGluZ01vZHVsZSA6c3RyaW5nO1xyXG4gIGV4cG9ydDpib29sZWFuO1xyXG4gIHVzZXJJZD86IHN0cmluZztcclxuICB1c2VyTmFtZT86c3RyaW5nO1xyXG4gIGN1c3RvbWVyPzogQ3VzdG9tZXI7XHJcbiAgYmFza2V0OiBhbnk7XHJcbiAgYmFza2V0U3VtbWFyeTogQmFza2V0U3VtbWFyeTtcclxuICAvLyBsaW5lRGlzY291bnQ6IExpbmVEaXNjb3VudFtdO1xyXG4gIGJhc2VDdXJyZW5jeTogc3RyaW5nO1xyXG4gIHNwbGl0UGF5bWVudD86Ym9vbGVhbjtcclxuICBpc1BheW1lbnRDb21wbGV0ZWQ/OmJvb2xlYW47XHJcbiAgcGF5bWVudERldGFpbHM/OiBhbnk7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICBvcGVyYXRpb25TdGF0dXM/OiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xyXG4gIHVwZGF0ZWRBdD86IHN0cmluZztcclxuICB0cmFuc0NvbXBsZXRlZEF0Pzogc3RyaW5nO1xyXG4gIGlkPzogc3RyaW5nO1xyXG4gIHNhbGVUb3RhbD86IG51bWJlcjtcclxuICByZWFzb25Db2RlPzogc3RyaW5nO1xyXG4gIHJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIG92ZXJyaWRlPzogVXNlck92ZXJyaWRlO1xyXG4gIG9yaWdpbmFsVHJhbnNJZD86c3RyaW5nO1xyXG4gIG9yaWdpbmFsRXh0ZXJuYWxJZD86IHN0cmluZztcclxuICBhcGlSZXNwb25zZT86IEFQSVJlc3BvbnNlOyAgICAvLyBUT0RPIGFkZCBoYW5kbGVyIGFzIHBlciBleHBvcnQgcHJvdmlkZXJcclxuICB1bnJlZmVyZW5jZWRSZWZ1bmQ/OmJvb2xlYW47XHJcbiAgZ2lmdGVkUmVjZWlwdD86Ym9vbGVhbjtcclxuICBjdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzPzphbnk7XHJcbiAgaXNDaGVja2VkPzpib29sZWFuO1xyXG4gIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzPzogZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNbXTtcclxuICByZWZ1bmRSZXF1ZXN0PzogYW55W107XHJcbiAgaXNJblN0b3JlT3JkZXI/OiBib29sZWFuOyBcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBUElSZXNwb25zZVxyXG57XHJcbiAgaW50ZXJuYWxJZD86bnVtYmVyO1xyXG4gIHRyYW5pZD86c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc3tcclxuICBwcm9kdWN0czogUHJvZHVjdFtdO1xyXG4gIGxpbmVEaXNjb3VudD86TGluZURpc2NvdW50W107XHJcbiAgbGluZVByb21vdGlvbj86TGluZVByb21vdGlvbnNbXTtcclxuICB0cmFuc2FjdGlvblByb21vdGlvbj86VHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcclxuICB0cmFuc2FjdGlvbkRpc2NvdW50PzpUcmFuc2FjdGlvbkRpc2NvdW50W107XHJcbiAgYmFza2V0U3VtbWFyeT86QmFza2V0U3VtbWFyeTsgIFxyXG4gIHRheEJyZWFrZG93bj86VGF4QnJlYWtkb3duOyAgXHJcbiAgdG90YWxUYXhTdW1tYXJ5PzpUb3RhbFRheFN1bW1hcnlbXTtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldFN1bW1hcnkge1xyXG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XHJcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xyXG4gIFZBVFRvdGFsPzogbnVtYmVyO1xyXG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XHJcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kVG90YWw/Om51bWJlcjtcclxuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xyXG4gIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw/OiBudW1iZXI7XHJcbiAgaW5TdG9yZT86IEJhc2tldFN1bW1hcnlEZXRhaWxzO1xyXG4gIHdlYk9yZGVyPzogQmFza2V0U3VtbWFyeURldGFpbHM7XHJcbiAgY25jPzogQmFza2V0U3VtbWFyeURldGFpbHM7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFza2V0U3VtbWFyeURldGFpbHMge1xyXG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XHJcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xyXG4gIFZBVFRvdGFsPzogbnVtYmVyO1xyXG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XHJcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XHJcbiAgcmVmdW5kVG90YWw/Om51bWJlcjtcclxuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xyXG4gIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25EaXNjb3VudHtcclxuICBkaXNjb3VudEFtb3VudDpudW1iZXI7XHJcbiAgZGlzY291bnRUeXBlOlN0cmluZztcclxuICByZWFzb25Db2RlOnN0cmluZztcclxuICBvdmVycmlkZT86IFVzZXJPdmVycmlkZTtcclxuICBpdGVtTGluZUlkcz86bnVtYmVyW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVEJhc2tldCB7XHJcbiAgcHJvZHVjdHM6IFRQcm9kdWN0W107XHJcbiAgbGluZURpc2NvdW50OkxpbmVEaXNjb3VudFtdO1xyXG4gIGV4Y2hhbmdlOkV4Y2hhbmdlW107XHJcbiAgbGluZVByb21vdGlvbjpMaW5lUHJvbW90aW9uc1tdO1xyXG4gIHRyYW5zYWN0aW9uUHJvbW90aW9uPzpUcmFuc2FjdGlvblByb21vdGlvbltdO1xyXG4gIHRyYW5zYWN0aW9uRGlzY291bnQ/OlRyYW5zYWN0aW9uRGlzY291bnRbXTtcclxuICB0YXhCcmVha2Rvd24/OlRheEJyZWFrZG93bjtcclxuICB0b3RhbFRheFN1bW1hcnk/OlRvdGFsVGF4U3VtbWFyeVtdO1xyXG5cclxuICBcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBURXhjaGFuZ2V7XHJcbiAgZXhjaGFuZ2VJZD86bnVtYmVyLFxyXG4gIGxpbmVJdGVtSWQ/OiBudW1iZXIsXHJcbiAgcmVhc29uPzogc3RyaW5nLFxyXG4gIHF1YW50aXR5PzogbnVtYmVyLFxyXG4gIG5ld0l0ZW1zPzpUTmV3SXRlbXNbXTtcclxuICB9XHJcbiAgXHJcbiAgZXhwb3J0IGludGVyZmFjZSBUTmV3SXRlbXN7XHJcbiAgbGluZUl0ZW1JZDpudW1iZXIsXHJcbiAgIFF1YW50aXR5Om51bWJlclxyXG4gIH1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVFByb2R1Y3Qge1xyXG4gIGl0ZW1MaW5lSWQ6IHN0cmluZztcclxuICBTS1U6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIGltYWdlVXJsczogW3N0cmluZ107XHJcbiAgcHJpY2U6IG51bWJlcjtcclxuICB0YXhDb2RlPzogc3RyaW5nO1xyXG4gIHRheFBlcmNlbnQ/OiBzdHJpbmc7XHJcbiAgcXVhbnRpdHk6IG51bWJlcjtcclxuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUHJvbW90aW9uYWxRdWFudGl0eT86bnVtYmVyO1xyXG4gIHJlZnVuZGVkPzogYm9vbGVhbjtcclxuICByZWZ1bmRlZFRvdGFsPzogbnVtYmVyO1xyXG4gIHJlZnVuZGVkUmVhc29uPzpzdHJpbmc7XHJcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xyXG4gIHNlbGVjdGVkUlJQUHJpY2U/OiBudW1iZXI7XHJcbiAgdG90YWxMaW5lUHJpY2U6IG51bWJlcjtcclxuICBiYXJDb2RlPzogc3RyaW5nO1xyXG4gIGJhcmNvZGVzPzogc3RyaW5nW107XHJcbiAgZmxhZ2dlZD86IGJvb2xlYW47XHJcbiAgZXhjaGFuZ2U/OkV4Y2hhbmdlO1xyXG4gIGV4Y2x1ZGVQcm9tb3Rpb246Ym9vbGVhbjtcclxuICBkaXNjb3VudGFibGU/OmJvb2xlYW47XHJcblxyXG4gIGl0ZW1EaXNjb3VudHM/Okl0ZW1EaXNjb3VudHM7XHJcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcclxuXHJcbiAgLy8gTWl4ZWQgU2FsZXMgZmllbGRzXHJcbiAgZnVsbGZpbG1lbnRJZDpzdHJpbmcsXHJcbiAgZnVsbGZpbG1lbnRMb2NhdGlvbk5hbWU6c3RyaW5nLFxyXG4gIGRlbGl2ZXJ5TWV0aG9kPzpzdHJpbmcsXHJcbiAgZGVsaXZlcnlHcm91cD86c3RyaW5nLFxyXG4gIGdpZnRDYXJkTnVtYmVySXNzdWVkPzogc3RyaW5nLFxyXG4gIGdpZnRDYXJkQW1vdW50PzogbnVtYmVyLFxyXG4gIGdpZnRDYXJkUmVjaXBpZW50RW1haWw/OiBzdHJpbmcsXHJcbiAgZ2lmdENhcmRFeHBpcnlEYXRlPzogc3RyaW5nICxcclxuICBnaWZ0Q2FyZFJlY2lwaWVudE5hbWU/OiBzdHJpbmcsXHJcbiAgZ2lmdENhcmQ/OmJvb2xlYW4sXHJcbiAgY3VycmVuY3k/OnN0cmluZyxcclxuICBpc1dlYk9yZGVyPzpib29sZWFuLFxyXG4gIGxlYWRUaW1lPzogbGVhZFRpbWVcclxuICBcclxuICAvLyBjdXJyZW50dHJhbnNhY3Rpb24gZG9jIGNoYW5nZXNcclxuICBsaW5lRGlzY291bnQ/OmFueVxyXG5cclxuICBhdHRyaWJ1dGVzPzpDb3JlQXR0cmlidXRlW107XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSXRlbURpc2NvdW50c3tcclxuICB0cm5EaXNjb3VudHNQb3J0aW9uOm51bWJlcjtcclxuICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjpudW1iZXI7XHJcbiAgcmVmdW5kUG9ydGlvbjpudW1iZXI7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lciB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0aXRsZT86IHN0cmluZztcclxuICBmaXJzdE5hbWU6IHN0cmluZztcclxuICBsYXN0TmFtZTogc3RyaW5nO1xyXG4gIGVtYWlsOiBzdHJpbmc7XHJcbiAgcG9zdENvZGU6IHN0cmluZztcclxuICB0ZWxlcGhvbmU/OiBzdHJpbmc7XHJcbiAgYmlsbGluZ0FkZHJlc3M/OiBBZGRyZXNzIHwgQWRkcmVzc1tdO1xyXG4gIHNoaXBwaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW107XHJcbiAgc2hpcG1lbnREZXRhaWxzPzogU2hpcG1lbnREZXRhaWxzW107XHJcbiAgYWRkcmVzc0RldGFpbD86IHN0cmluZztcclxuICBub0N1c3RvbWVyU2VsZWN0ZWQ/OiBib29sZWFuO1xyXG4gIGV4dGVybmFsSWQ/OiBzdHJpbmc7IFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFkZHJlc3MgXHJcbntcclxuICBpZD86IHN0cmluZztcclxuICBjb3VudHJ5Q29kZT86IHN0cmluZztcclxuICBhZGRyZXNzMT86IHN0cmluZztcclxuICBhZGRyZXNzMj86IHN0cmluZztcclxuICBhZGRyZXNzMz86IHN0cmluZztcclxuICBjaXR5Pzogc3RyaW5nO1xyXG4gIGNvdW50eT86IHN0cmluZztcclxuICBwb3N0Q29kZT86IHN0cmluZztcclxuICBjb3VudHJ5Pzogc3RyaW5nO1xyXG4gfVxyXG5cclxuIGV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnREZXRhaWxzIHtcclxuICBpZD86IHN0cmluZyxcclxuICBkZWxpdmVyeUdyb3VwPzogc3RyaW5nLFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBheW1lbnREZXRhaWxzIHtcclxuICBjYXJkTnVtYmVyPzogYW55O1xyXG4gIHNxTm8/Om51bWJlcjtcclxuICByZXN1bHQ/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k6IHN0cmluZztcclxuICBhbW91bnQ6IHN0cmluZztcclxuICBhdXRoY29kZT86IHN0cmluZztcclxuICBwYW4/OiBzdHJpbmc7XHJcbiAgY2FyZFR5cGU/OiBzdHJpbmc7XHJcbiAgdHJhbnNhY3Rpb25EYXRlPzogc3RyaW5nO1xyXG4gIG1pZD86IHN0cmluZztcclxuICB0aWQ/OiBzdHJpbmc7XHJcbiAgY3ZtPzogc3RyaW5nO1xyXG4gIGhvc3RSZWZlcmVuY2VJZD86IHN0cmluZztcclxuICBhaWQ/OiBzdHJpbmc7XHJcbiAgcmVjZWlwdE5vPzogc3RyaW5nO1xyXG4gIGV4cGlyeWRhdGU/OiBzdHJpbmc7XHJcbiAgdHJhbnNhY3Rpb25SZWZlcmVuY2U6IHN0cmluZztcclxuICBhcHBsaWNhdGlvblZlcnNpb24/OiBzdHJpbmc7XHJcbiAgZW50cnlNZXRob2Q/OnN0cmluZztcclxuICB0cmFuc2FjdGlvblR5cGU6c3RyaW5nO1xyXG4gIHRvdGFsYW1vdW50OnN0cmluZztcclxuICBwYXltZW50VHlwZT86c3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheEJyZWFrZG93blxyXG57XHJcbiAgdGF4TGluZXMgOiBUYXhMaW5lW10sXHJcbiAgdG90YWxUYXhhYmxlQW1vdW50OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVG90YWxUYXhTdW1tYXJ5e1xyXG4gIFZBVENvZGU6c3RyaW5nLFxyXG4gIFZBVCA6IG51bWJlcjtcclxuICBQcmVUYXhTdW06ICBudW1iZXJcclxuICBUYXhTdW06ICBudW1iZXJcclxuICBUWHJhdGVTdW06IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRheExpbmVcclxue1xyXG4gICAgaXRlbUxpbmVJZDogbnVtYmVyLFxyXG4gICAgdGF4YWJsZUFtb3VudDogbnVtYmVyLFxyXG4gICAgdGF4TGluZVRvdGFsOiBudW1iZXIsXHJcbiAgICBWQVQ6IG51bWJlcixcclxuICAgIFZBVENvZGUgOiBzdHJpbmcsXHJcbiAgICBQcmVUYXg6IG51bWJlclxyXG59XHJcblxyXG5leHBvcnQgZW51bSBESVNDT1VOVFRZUEUge1xyXG4gIFBFUkNFTlQgPSAnUGVyY2VudCcsXHJcbiAgQU1PVU5UID0gJ0FNT1VOVCdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkluZm8ge1xyXG4gIHNoaXBwaW5nSWQ/OiBzdHJpbmcsXHJcbiAgZXh0ZXJuYWxTaGlwcGluZ0lkPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMge1xyXG4gIHVuaXF1ZUlkPzogc3RyaW5nLFxyXG4gIHByb3ZpZGVyVHlwZT86IHN0cmluZyxcclxuICBkZXRhaWxzPzogVHJhbnNhY3Rpb25JbmZvXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIElOSVRJQVRJTkdfTU9EVUxFIHtcclxuICBFQkFTS0VUID0gXCJlQmFza2V0XCJcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBwZW5kaW5nTWV0aG9kIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICB0eXBlPzogc3RyaW5nO1xyXG4gIG1lc3NhZ2U/OiBzdHJpbmc7XHJcbiAgcGF0aD86IHN0cmluZztcclxuICBkZXRhaWxzPzogU2hpcG1lbnRJZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudElkIHtcclxuICBzaGlwbWVudElkPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyQWRkcmVzcyB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgYWRkcmVzczE/OiBzdHJpbmc7XHJcbiAgY2l0eT86IHN0cmluZztcclxuICBjb3VudHJ5X2NvZGU/OiBzdHJpbmc7XHJcbiAgZmlyc3RfbmFtZT86IHN0cmluZztcclxuICBmdWxsX25hbWU/OiBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgbGFzdF9uYW1lPzogc3RyaW5nO1xyXG4gIHBob25lPzogc3RyaW5nO1xyXG4gIHNhbHV0YXRpb24/OiBzdHJpbmc7XHJcbiAgY19hcmVhPzogc3RyaW5nO1xyXG4gIGNfZW1haWw/OiBzdHJpbmc7XHJcbiAgY19waG9uZVdoYXRzQXBwPzogc3RyaW5nO1xyXG4gIGNfc3RyVmFsdWU/OiBzdHJpbmc7XHJcbiAgcG9zdGFsX2NvZGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJJbmZvIHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBjdXN0b21lcl9pZD86IHN0cmluZztcclxuICBlbWFpbD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHcm91cGVkVGF4SXRlbSB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgdGF4X3JhdGU/OiBudW1iZXI7XHJcbiAgdGF4X3ZhbHVlPzogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGFkZGl0aW9uYWxOb3RlcyB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgbGluaz86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0SXRlbSB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgYWRqdXN0ZWRfdGF4PzogbnVtYmVyO1xyXG4gIGJhc2VfcHJpY2U/OiBudW1iZXI7XHJcbiAgYm9udXNfcHJvZHVjdF9saW5lX2l0ZW0/OiBib29sZWFuO1xyXG4gIGdpZnQ/OiBib29sZWFuO1xyXG4gIGl0ZW1faWQ/OiBzdHJpbmc7XHJcbiAgaXRlbV90ZXh0Pzogc3RyaW5nO1xyXG4gIHByaWNlPzogbnVtYmVyO1xyXG4gIHByaWNlX2FkanVzdG1lbnRzPzogUHJpY2VBZGp1c3RtZW50W107XHJcbiAgcHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudD86IG51bWJlcjtcclxuICBwcmljZV9hZnRlcl9vcmRlcl9kaXNjb3VudD86IG51bWJlcjtcclxuICBwcm9kdWN0X2lkPzogc3RyaW5nO1xyXG4gIHByb2R1Y3RfbmFtZT86IHN0cmluZztcclxuICBxdWFudGl0eT86IG51bWJlcjtcclxuICBzaGlwbWVudF9pZD86IHN0cmluZztcclxuICB0YXg/OiBudW1iZXI7XHJcbiAgdGF4X2Jhc2lzPzogbnVtYmVyO1xyXG4gIHRheF9jbGFzc19pZD86IHN0cmluZztcclxuICB0YXhfcmF0ZT86IG51bWJlcjtcclxuICBjX29zdU9iamVjdERhdGE/OnN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ01ldGhvZCB7XHJcbiAgX3R5cGU/OiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XHJcbiAgaWQ/OiBzdHJpbmc7XHJcbiAgbmFtZT86IHN0cmluZztcclxuICBwcmljZT86IG51bWJlcjtcclxuICBjX2FwcHJvYWNoaW5nVGhyZXNob2xkTWVzc2FnZT86IHN0cmluZztcclxuICBjX2VzdGltYXRlZEFycml2YWxUaW1lPzogc3RyaW5nO1xyXG4gIGNfaXNFbWFpbD86IGJvb2xlYW47XHJcbiAgY19zdG9yZVBpY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xyXG4gIGNfdGhyZXNob2xkVmFsdWU/OiBudW1iZXI7XHJcbn0gXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHNoaXBtZW50IHtcclxuICBfdHlwZT86IHN0cmluZztcclxuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgYWRqdXN0ZWRfc2hpcHBpbmdfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIGdpZnQ/OiBib29sZWFuO1xyXG4gIG1lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcclxuICBwcm9kdWN0X3N1Yl90b3RhbD86IG51bWJlcjtcclxuICBwcm9kdWN0X3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xyXG4gIHNoaXBtZW50X3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBwaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XHJcbiAgc2hpcHBpbmdfbWV0aG9kPzogU2hpcHBpbmdNZXRob2Q7XHJcbiAgc2hpcHBpbmdfc3RhdHVzPzogc3RyaW5nO1xyXG4gIHNoaXBwaW5nX3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcclxuICB0YXhfdG90YWw/OiBudW1iZXI7XHJcbiAgY19mcm9tU3RvcmVJZD86IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ0l0ZW0ge1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIGFkanVzdGVkX3RheD86IG51bWJlcjtcclxuICBiYXNlX3ByaWNlPzogbnVtYmVyO1xyXG4gIGl0ZW1faWQ/OiBzdHJpbmc7XHJcbiAgaXRlbV90ZXh0Pzogc3RyaW5nO1xyXG4gIHByaWNlPzogbnVtYmVyO1xyXG4gIHByaWNlX2FmdGVyX2l0ZW1fZGlzY291bnQ/OiBudW1iZXI7XHJcbiAgc2hpcG1lbnRfaWQ/OiBzdHJpbmc7XHJcbiAgdGF4PzogbnVtYmVyO1xyXG4gIHRheF9iYXNpcz86IG51bWJlcjtcclxuICB0YXhfY2xhc3NfaWQ/OiBzdHJpbmc7XHJcbiAgdGF4X3JhdGU/OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGllZERpc2NvdW50IHtcclxuICBfdHlwZT86IHN0cmluZyxcclxuICBhbW91bnQ/OiBudW1iZXIsXHJcbiAgcGVyY2VudGFnZT86IG51bWJlcixcclxuICB0eXBlPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VBZGp1c3RtZW50IHtcclxuICBfdHlwZT86IHN0cmluZyxcclxuICBhcHBsaWVkX2Rpc2NvdW50PzogQXBwbGllZERpc2NvdW50LFxyXG4gIGNvdXBvbl9jb2RlPzogc3RyaW5nLFxyXG4gIGNyZWF0aW9uX2RhdGU/OiBzdHJpbmcsXHJcbiAgY3VzdG9tPzogYm9vbGVhbixcclxuICBpdGVtX3RleHQ/OiBzdHJpbmcsXHJcbiAgbGFzdF9tb2RpZmllZD86IHN0cmluZyxcclxuICBtYW51YWw/OiBib29sZWFuLFxyXG4gIHByaWNlPzogbnVtYmVyXHJcbiAgcHJpY2VfYWRqdXN0bWVudF9pZD86IHN0cmluZyxcclxuICBwcm9tb3Rpb25faWQ/OiBzdHJpbmcsXHJcbiAgcHJvbW90aW9uX2xpbms/OiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBPcmRlckRldGFpbHMge1xyXG4gIF92Pzogc3RyaW5nO1xyXG4gIF90eXBlPzogc3RyaW5nO1xyXG4gIF9yZXNvdXJjZV9zdGF0ZT86IHN0cmluZztcclxuICBfZmxhc2g/OiBwZW5kaW5nTWV0aG9kW107XHJcbiAgYWRqdXN0ZWRfbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xyXG4gIGFkanVzdGVkX3NoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcclxuICBhZ2VudF9iYXNrZXQ/OiBib29sZWFuO1xyXG4gIGJhc2tldF9pZD86IHN0cmluZztcclxuICBiaWxsaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XHJcbiAgY2hhbm5lbF90eXBlPzogc3RyaW5nO1xyXG4gIGNyZWF0aW9uX2RhdGU/OiBzdHJpbmc7XHJcbiAgY3VycmVuY3k/OiBzdHJpbmc7XHJcbiAgY3VzdG9tZXJfaW5mbz86IEN1c3RvbWVySW5mbztcclxuICBncm91cGVkX3RheF9pdGVtcz86IEdyb3VwZWRUYXhJdGVtW107XHJcbiAgbGFzdF9tb2RpZmllZD86IHN0cmluZztcclxuICBtZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgbm90ZXM/OiBhZGRpdGlvbmFsTm90ZXM7XHJcbiAgb3JkZXJfcHJpY2VfYWRqdXN0bWVudHM/OiBQcmljZUFkanVzdG1lbnRbXSxcclxuICBvcmRlcl9ubz86IHN0cmluZztcclxuICBvcmRlcl90b3RhbD86IG51bWJlcjtcclxuICBwcm9kdWN0X2l0ZW1zPzogUHJvZHVjdEl0ZW1bXTtcclxuICBwcm9kdWN0X3N1Yl90b3RhbD86IG51bWJlcjtcclxuICBwcm9kdWN0X3RvdGFsPzogbnVtYmVyO1xyXG4gIHNoaXBtZW50cz86IHNoaXBtZW50W107XHJcbiAgc2hpcHBpbmdfaXRlbXM/OiBTaGlwcGluZ0l0ZW1bXTtcclxuICBzaGlwcGluZ190b3RhbD86IG51bWJlcjtcclxuICBzaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XHJcbiAgdGF4YXRpb24/OiBzdHJpbmc7XHJcbiAgdGF4X3JvdW5kZWRfYXRfZ3JvdXA/OiBib29sZWFuO1xyXG4gIHRheF90b3RhbD86IG51bWJlcjtcclxuICBjX2lzSW5TdG9yZU9yZGVyPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUFJPVklERVJTIHtcclxuICBTQUxFU0ZPUkNFID0gXCJTYWxlc2ZvcmNlXCJcclxufVxyXG5cclxuZXhwb3J0IGVudW0gUFJPTU9USU9OX0xFVkVMXHJcbntcclxuICBMSU5FPVwiTElORVwiLFxyXG4gIFRSQU5TQUNUSU9OPVwiVFJBTlNBQ1RJT05cIlxyXG59XHJcblxyXG5leHBvcnQgZW51bSBQUk9NT1RJT05fVFlQRVxyXG57XHJcbiAgQ09VUE9OPVwiQ09VUE9OXCJcclxufVxyXG5cclxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL21hcHBlci1saWJyYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLHFDQUFpQixDQUFBO0lBQ2pCLCtDQUEyQixDQUFBO0lBQzNCLG1EQUErQixDQUFBO0lBQy9CLGlDQUFhLENBQUE7SUFDYiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBUFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU8zQjtBQVNELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0RBQVksQ0FBQTtJQUNaLGlFQUFhLENBQUE7SUFDYixtRkFBc0IsQ0FBQTtJQUN0Qix5RUFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQTRpQkQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFhRCxNQUFNLENBQU4sSUFBWSxpQkFFWDtBQUZELFdBQVksaUJBQWlCO0lBQzNCLHdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBRTVCO0FBZ0xELE1BQU0sQ0FBTixJQUFZLFNBRVg7QUFGRCxXQUFZLFNBQVM7SUFDbkIsc0NBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUZXLFNBQVMsS0FBVCxTQUFTLFFBRXBCO0FBRUQsTUFBTSxDQUFOLElBQVksZUFJWDtBQUpELFdBQVksZUFBZTtJQUV6QixnQ0FBVyxDQUFBO0lBQ1gsOENBQXlCLENBQUE7QUFDM0IsQ0FBQyxFQUpXLGVBQWUsS0FBZixlQUFlLFFBSTFCO0FBRUQsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUV4QixtQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5leHBvcnQgZW51bSBUUkFOU0FDVElPTl9UWVBFIHtcbiAgU0FMRSA9IFwiU0FMRVwiLFxuICBSRUZVTkQgPSBcIlJFRlVORFwiLFxuICBTQUxFX1JFRlVORCA9IFwiU0FMRV9SRUZVTkRcIixcbiAgU0FMRV9FWENIQU5HRSA9IFwiU0FMRV9FWENIQU5HRVwiLFxuICBWT0lEID0gXCJWT0lEXCIsXG4gIFdFQl9SRVRVUk5TID0gXCJXRUJfUkVUVVJOU1wiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXRlbURpc2NvdW50IHtcbiAgdHJuRGlzY291bnRzUG9ydGlvbjogbnVtYmVyO1xuICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjogbnVtYmVyO1xuICByZWZ1bmRQb3J0aW9uOiBudW1iZXI7XG4gIGN1cnJlbnRSZWZ1bmRQb3J0aW9uPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZW51bSBERUxJVkVSWV9NRVRIT0RTIHtcbiAgREVMSVZFUlkgPSAxLFxuICBEUk9QX1NISVAgPSAyLFxuICBDT0xMRUNUX0ZST01fU1RPUkUgPSAzLFxuICBTSElQX1RPX1NUT1JFID0gNFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RDaGFuZ2Uge1xuICBpdGVtTGluZUlkPzogbnVtYmVyO1xuICBTS1U6IHN0cmluZztcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgc2VsZWN0ZWRQcmljZT86IG51bWJlcjtcbiAgbGluZURpc2NvdW50PzogTGluZURpc2NvdW50O1xuICBsaW5lUHJvbW90aW9ucz86IExpbmVQcm9tb3Rpb25zO1xuICBleGNoYW5nZT86IEV4Y2hhbmdlO1xuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyOyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5zIHF1YW50aXR5IG9mIGJvdGggZnVsbCBwcmljZWQgYW5kIHByb21vdGlvbmFsIHF1YW50aXRpZXNcbiAgcmVmdW5kUHJvbW90aW9uYWxRdWFudGl0eT86IG51bWJlcjsgICAgICAgICAgICAgICAvLyBwcm9tb3Rpb25hbCBxdWFudGl0eVxuICByZWZ1bmRlZD86IGJvb2xlYW47XG4gIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XG4gIHJlZnVuZGVkUmVhc29uPzogc3RyaW5nO1xuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpc0NoZWNrZWQ/OiBib29sZWFuO1xuICBzZWFsZWQ/OiBib29sZWFuO1xuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb2R1Y3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0IGV4dGVuZHMgUHJvZHVjdENoYW5nZSB7XG4gIGl0ZW1MaW5lSWQ/OiBudW1iZXI7XG4gIHN0YXR1czogbnVtYmVyO1xuICBzdWJHcm91cDogbnVtYmVyO1xuICBicmFuZDogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xuICBjYXRlZ29yeTogc3RyaW5nO1xuICBjb3VudHJ5b2ZPcmlnaW46IHN0cmluZztcbiAgcHJvZHVjdElkOiBzdHJpbmc7XG4gIHByb2R1Y3RUeXBlOiBudW1iZXI7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGltYWdlVXJsczogW3N0cmluZ107XG4gIGlzSW1hZ2VGYWlsVG9Mb2FkPzogYm9vbGVhbjtcbiAgc2l6ZTogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIHNlYXNvbjogbnVtYmVyO1xuICBwcm9kdWN0R3JvdXA6IG51bWJlcjtcbiAgc3R5bGVDb2RlOiBzdHJpbmc7XG4gIG5vZGVTdHJ1Y3R1cmU6IE5vZGVTdHJ1Y3R1cmVbXTtcbiAgYmFyY29kZTogc3RyaW5nO1xuICBwcmljZTogUHJpY2VbXTtcbiAgY29sb3VyOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHRvdGFsTGluZVByaWNlOiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG4gIGFkZGVkSW5CYXNrZXQ/OiBib29sZWFuO1xuICBzZWxlY3RlZFZBVD86IG51bWJlcjtcbiAgc2VsZWN0ZWRWQVRDb2RlPzogc3RyaW5nO1xuICBzZWxlY3RlZFJSUFByaWNlPzogbnVtYmVyO1xuICBsaW5lRGlzY291bnQ/OiBMaW5lRGlzY291bnQ7XG4gIGV4Y2hhbmdlPzogRXhjaGFuZ2U7XG4gIC8vIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7XG4gIC8vIHJlZnVuZGVkPzogYm9vbGVhbjtcbiAgLy8gcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcbiAgLy8gcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xuICAvLyBpc0NoZWNrZWQ/OmJvb2xlYW47XG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcbiAgZXhjaGFuZ2VSZWFzb24/OiBzdHJpbmc7XG4gIGV4Y2hhbmdlUXVhbnRpdHk/OiBudW1iZXI7XG4gIGl0ZW1EaXNjb3VudHM6IEl0ZW1EaXNjb3VudDtcblxuICBnaWZ0Q2FyZE51bWJlcklzc3VlZD86IHN0cmluZztcbiAgZ2lmdENhcmRBbW91bnQ/OiBudW1iZXI7XG4gIGdpZnRDYXJkUmVjaXBpZW50RW1haWw/OiBzdHJpbmc7XG4gIGdpZnRDYXJkRXhwaXJ5RGF0ZT86IHN0cmluZztcbiAgZ2lmdENhcmRSZWNpcGllbnROYW1lPzogc3RyaW5nO1xuICBnaWZ0Q2FyZD86IGJvb2xlYW47XG5cbiAgZGlzY291bnRhYmxlOiBib29sZWFuO1xuICAvLyBzZWFsZWQ/OmJvb2xlYW47XG4gIGV4Y2x1ZGVQcm9tb3Rpb246IGJvb2xlYW47XG4gIGNhdGVnb3JpZXM6IENhdGVnb3JpZXNbXTtcbiAgZGVzY3JpcHRpb25zOiBEZXNjcmlwdGlvbnNbXTtcbiAgYmFyY29kZXM6IHN0cmluZ1tdO1xuXG4gIC8vTmV3IEZlaWxkc1xuICBleHRlcm5hbElkOiBzdHJpbmc7XG4gIGNyZWF0ZWREYXRlOiBzdHJpbmc7XG4gIHVwZGF0ZWREYXRlOiBzdHJpbmc7XG4gIGNyZWF0ZWRCeTogc3RyaW5nO1xuICB1cGRhdGVkQnk6IHN0cmluZztcbiAgYXR0cmlidXRlczogQ29yZUF0dHJpYnV0ZVtdO1xuICBpZDogc3RyaW5nO1xuICBsb25nX2Rlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgLy8gTWl4ZWQgU2FsZXMgZmllbGRzXG4gIGlzV2ViT3JkZXI/OiBib29sZWFuLFxuICBmdWxsZmlsbWVudElkOiBzdHJpbmcsXG4gIGZ1bGxmaWxtZW50TG9jYXRpb25OYW1lPzogc3RyaW5nLFxuICBkZWxpdmVyeU1ldGhvZD86IHN0cmluZyxcbiAgZGVsaXZlcnlHcm91cD86IHN0cmluZyxcbiAgc2VsZWN0ZWRJbnZlbnRvcnk/OiBJbnZlbnRvcnlJbmZvO1xuICBsZWFkVGltZT86IGxlYWRUaW1lXG59XG5leHBvcnQgaW50ZXJmYWNlIGxlYWRUaW1lIHtcbiAgdHlwZTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhjaGFuZ2Uge1xuICBleGNoYW5nZUlkOiBudW1iZXIsXG4gIGxpbmVJdGVtSWQ6IG51bWJlcixcbiAgcmVhc29uOiBzdHJpbmcsXG4gIHF1YW50aXR5OiBudW1iZXIsXG4gIG5ld0l0ZW1zOiBQcm9kdWN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2F0ZWdvcmllcyB7XG4gIGlkOiBzdHJpbmc7XG4gIHBhcmVudElkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnlJZDogc3RyaW5nO1xuICBzdGF0dXM6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVzY3JpcHRpb25zIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvcmVBdHRyaWJ1dGUge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHNlYXJjaGFibGU6IGJvb2xlYW47XG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFza2V0XG4gKi9cblxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXQge1xuICBzdWJzaWRpYXJ5SWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIHRyYW5zYWN0aW9uRGlzY291bnQ6IGFueVtdO1xuICBxdWFudGl0eTogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBzYWxlVG90YWw6IG51bWJlcjtcbiAgZGlzY291bnRUb3RhbD86IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgb2ZmbGluZVRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGJhc2VDdXJyZW5jeTogc3RyaW5nO1xuICBiYXNrZXRUb3RhbD86IG51bWJlcjtcbiAgcmVmdW5kVG90YWw/OiBudW1iZXI7XG4gIHRyYW5zYWN0aW9uUHJvbW90aW9uPzogVHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcbiAgY3VzdG9tZXI/OiBhbnk7XG4gIGV4Y2hhbmdlPzogRXhjaGFuZ2VbXTtcbiAgaW5TdG9yZUZsYWc/OiBib29sZWFuXG59XG5cblxuXG4vKipcbiAqIFByaWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2Uge1xuICBWQVQ6IG51bWJlcjtcbiAgVkFUQ29kZTogc3RyaW5nO1xuICBzYWxlc1ByaWNlOiBudW1iZXI7XG4gIGN1cnJlbmN5Q29kZTogc3RyaW5nO1xuICBSUlBQcmljZTogbnVtYmVyO1xufVxuXG4vKipcbiAqIE5vZGUgc3RydWN0dXJlXG4gKi9cbmludGVyZmFjZSBOb2RlU3RydWN0dXJlIHtcbiAgc3RhdHVzOiBib29sZWFuO1xuICBuYW1lOiBzdHJpbmc7XG4gIG5vZGVUeXBlOiBzdHJpbmc7XG4gIGlzT3ZlcnJpZGU6IGJvb2xlYW47XG4gIG5vZGVJZDogc3RyaW5nO1xuICBwYXJlbnRJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIExpbmUgRGlzY291bnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW5lRGlzY291bnQge1xuICBpdGVtTGluZUlkOiBzdHJpbmcsXG4gIGRpc2NvdW50QW1vdW50OiBudW1iZXIsXG4gIGRpc2NvdW50VHlwZTogc3RyaW5nLFxuICAvLyByZWFzb25Db2RlOiBzdHJpbmcsXG4gIG5hbWU/OiBzdHJpbmcsXG4gIHVuaXRQcmljZTogbnVtYmVyLFxuICBkaXNjb3VudGVkTGluZVByaWNlPzogbnVtYmVyLFxuICBwcmljZU1hbmFnZXJPdmVycmlkZT86IFVzZXJPdmVycmlkZSxcbiAgcHJpY2VPdmVycmlkZVJlYXNvbkNvZGU/OiBzdHJpbmcsXG4gIHByaWNlT3ZlcnJpZGVSZWFzb25OYW1lPzogc3RyaW5nLFxuICBwcmljZU92ZXJyaWRlQW1vdW50PzogbnVtYmVyLFxuICBwZXJjZW50YWdlRGlzY291bnRNYW5hZ2VyT3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGUsXG4gIHBlcmNlbnRhZ2VEaXNjb3VudFJlYXNvbkNvZGU/OiBzdHJpbmcsXG4gIHBlcmNlbnRhZ2VEaXNjb3VudFJlYXNvbk5hbWU/OiBzdHJpbmcsXG4gIHBlcmNlbnRhZ2VEaXNjb3VudFZhbHVlPzogbnVtYmVyXG59XG5cbi8qKlxuICogVXNlciBPdmVycmlkZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJPdmVycmlkZSB7XG4gIHVzZXJJZDogc3RyaW5nLFxuICBhdXRvbWF0aWNBcHByb3ZlOiBzdHJpbmcsXG4gIG9yaWdpbmFsVXNlcklkOiBzdHJpbmdcbn1cblxuLyoqXG4qIGxpbmUgUHJvbW90aW9uc1xuKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGluZVByb21vdGlvbnMge1xuXG4gIHRyaWdnZXI6IFRyaWdnZXJbXSxcbiAgaXRlbUxpbmVJZDogbnVtYmVyLFxuICBwcm9tb3Rpb25JZDogc3RyaW5nLFxuICBkaXNwbGF5VGV4dDogc3RyaW5nLFxuICBwcm9tb3Rpb25UeXBlOiBzdHJpbmcsXG4gIHByb21vdGlvbkFtb3VudDogbnVtYmVyLFxuICBuYW1lOiBzdHJpbmcsXG4gIHByb21vdGlvbkluZm86IHN0cmluZyxcbiAgcHJvbW90aW9uTGluZVByaWNlOiBudW1iZXJcbiAgcmVmdW5kZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiogdHJpZ2dlclxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJpZ2dlciB7XG4gIGl0ZW1MaW5lSWQ6IHN0cmluZztcbiAgcXVhbnRpdHk/OiBudW1iZXI7XG4gIHRvdGFsUXVhbnRpdHk/OiBudW1iZXI7XG4gIGxpbmVQcm9tb3Rpb25BbW91bnQ/Om51bWJlcjsgICAvLyBwcm9tb3Rpb24gYW1vdW50IGFwcGxpZWQgYWNjcm9zcyB0aGUgbGluZVxuICBwcm9tb3Rpb25BbW91bnQ/Om51bWJlcjsgICAvLyBwcm9tb3Rpb24gYW1vdW50IGFwcGxpZWQgb24gMSB1bml0XG4gIHJlZnVuZGVkUmVhc29uPzogc3RyaW5nO1xuICByZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uPzpzdHJpbmc7XG4gIHByb21vdGlvbklkPzpzdHJpbmc7XG59XG5cbi8qKlxuKiBUcmFuc2FjdGlvbiBQcm9tb3Rpb25cbiovXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uUHJvbW90aW9uIHtcbiAgZGlzcGxheVRleHQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBwcm9tb3Rpb25BbW91bnQ6IG51bWJlcjtcbiAgcHJvbW90aW9uSWQ6IHN0cmluZztcbiAgcHJvbW90aW9uSW5mbzogc3RyaW5nO1xuICBwcm9tb3Rpb25UeXBlOiBzdHJpbmc7XG4gIGl0ZW1MaW5lSWRzOiBudW1iZXJbXTtcbiAgdHlwZT86c3RyaW5nO1xuICBzdWJMZXZlbFR5cGU/OlBST01PVElPTl9MRVZFTFxuICB0cmlnZ2VyPzpUcmlnZ2VyW107XG4gIGNvdXBvbkNvZGU/OnN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWZ1bmRQcm9kdWN0Q2hhbmdlIHtcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcbiAgcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjtcbiAgcmVmdW5kZWRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyO1xuICByZWZ1bmRUb3RhbD86IG51bWJlcjtcbiAgcmVmdW5kZWRSZWFzb24/OiBzdHJpbmc7XG4gIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHJlZnVuZFdpdGhQcm9tb3Rpb246IGJvb2xlYW47XG4gIGlzTGFzdEV4Y2hhbmdlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52ZW50b3J5SW5mbyB7XG4gIHN0b3JlTmFtZTogc3RyaW5nLFxuICBzdG9yZUlkOiBzdHJpbmcsXG4gIHF1YW50aXR5QXZhaWxhYmxlOiBudW1iZXIsXG4gIHF1YW50aXR5UmVxdWlyZWQ6IG51bWJlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludmVudG9yeVJlcXVlc3RJbmZvIGV4dGVuZHMgSW52ZW50b3J5SW5mbyB7XG4gIHJlcXVlc3RlZFF1YW50aXR5OiBudW1iZXIsXG4gIHJlcXVlc3RlZEFjdGlvbjogREVMSVZFUllfTUVUSE9EU1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGl2ZXJ5SW5mbyB7XG4gIGdyb3VwczogRGVsaXZlcnlHcm91cEluZm9bXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGl2ZXJ5R3JvdXBJbmZvIHtcbiAgZ3JvdXBOdW1iZXI6IG51bWJlcjtcbiAgaXRlbXM6IFByb2R1Y3RbXTtcbiAgZXN0aW1hdGU/OiBFc3RpbWF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFc3RpbWF0ZSB7XG4gIHR5cGU6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRG9jdW1lbnQge1xuICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICBzdWJzaWRpYXJ5SWQ/OiBzdHJpbmc7XG4gIG9mZmxpbmVUcmFuc2FjdGlvbklkPzpzdHJpbmc7XG4gIHRyYW5zYWN0aW9uUmVmPzogc3RyaW5nO1xuICBkYXRlVGltZT86IHN0cmluZztcbiAgb3JnQ29kZTogc3RyaW5nO1xuICBzdG9yZUlkOiBzdHJpbmc7XG4gIHN0b3JlTm9kZUlkOnN0cmluZztcbiAgc3RvcmVOb2RlU3RydWN0dXJlOnN0cmluZztcbiAgZGV2aWNlSWQ6IHN0cmluZztcbiAgdGVybWluYWxJZDpzdHJpbmc7XG4gIGluaXRpYXRpbmdNb2R1bGUgOnN0cmluZztcbiAgZXhwb3J0OmJvb2xlYW47XG4gIHVzZXJJZD86IHN0cmluZztcbiAgdXNlck5hbWU/OnN0cmluZztcbiAgY3VzdG9tZXI/OiBDdXN0b21lcjtcbiAgYmFza2V0OiBhbnk7XG4gIGJhc2tldFN1bW1hcnk6IEJhc2tldFN1bW1hcnk7XG4gIC8vIGxpbmVEaXNjb3VudDogTGluZURpc2NvdW50W107XG4gIGJhc2VDdXJyZW5jeTogc3RyaW5nO1xuICBzcGxpdFBheW1lbnQ/OmJvb2xlYW47XG4gIGlzUGF5bWVudENvbXBsZXRlZD86Ym9vbGVhbjtcbiAgcGF5bWVudERldGFpbHM/OiBhbnk7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIG9wZXJhdGlvblN0YXR1cz86IHN0cmluZztcbiAgY3JlYXRlZEF0Pzogc3RyaW5nO1xuICB1cGRhdGVkQXQ/OiBzdHJpbmc7XG4gIHRyYW5zQ29tcGxldGVkQXQ/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBzYWxlVG90YWw/OiBudW1iZXI7XG4gIHJlYXNvbkNvZGU/OiBzdHJpbmc7XG4gIHJlYXNvbkRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBvdmVycmlkZT86IFVzZXJPdmVycmlkZTtcbiAgb3JpZ2luYWxUcmFuc0lkPzpzdHJpbmc7XG4gIG9yaWdpbmFsRXh0ZXJuYWxJZD86IHN0cmluZztcbiAgYXBpUmVzcG9uc2U/OiBBUElSZXNwb25zZTsgICAgLy8gVE9ETyBhZGQgaGFuZGxlciBhcyBwZXIgZXhwb3J0IHByb3ZpZGVyXG4gIHVucmVmZXJlbmNlZFJlZnVuZD86Ym9vbGVhbjtcbiAgZ2lmdGVkUmVjZWlwdD86Ym9vbGVhbjtcbiAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlscz86YW55O1xuICBpc0NoZWNrZWQ/OmJvb2xlYW47XG4gIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzPzogZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNbXTtcbiAgcmVmdW5kUmVxdWVzdD86IGFueVtdO1xuICBpc0luU3RvcmVPcmRlcj86IGJvb2xlYW47IFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVJlc3BvbnNlXG57XG4gIGludGVybmFsSWQ/Om51bWJlcjtcbiAgdHJhbmlkPzpzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxze1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICBsaW5lRGlzY291bnQ/OkxpbmVEaXNjb3VudFtdO1xuICBsaW5lUHJvbW90aW9uPzpMaW5lUHJvbW90aW9uc1tdO1xuICB0cmFuc2FjdGlvblByb21vdGlvbj86VHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcbiAgdHJhbnNhY3Rpb25EaXNjb3VudD86VHJhbnNhY3Rpb25EaXNjb3VudFtdO1xuICBiYXNrZXRTdW1tYXJ5PzpCYXNrZXRTdW1tYXJ5OyAgXG4gIHRheEJyZWFrZG93bj86VGF4QnJlYWtkb3duOyAgXG4gIHRvdGFsVGF4U3VtbWFyeT86VG90YWxUYXhTdW1tYXJ5W107XG59XG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldFN1bW1hcnkge1xuICB0b3RhbEl0ZW1zPzogbnVtYmVyO1xuICBzYWxlVG90YWw/OiBudW1iZXI7XG4gIFZBVFRvdGFsPzogbnVtYmVyO1xuICBkaXNjb3VudFRvdGFsPzogbnVtYmVyO1xuICBiYXNrZXRUb3RhbD86IG51bWJlcjtcbiAgcmVmdW5kVG90YWw/Om51bWJlcjtcbiAgc2hpcHBpbmdUb3RhbD86IG51bWJlcjtcbiAgYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbD86IG51bWJlcjtcbiAgaW5TdG9yZT86IEJhc2tldFN1bW1hcnlEZXRhaWxzO1xuICB3ZWJPcmRlcj86IEJhc2tldFN1bW1hcnlEZXRhaWxzO1xuICBjbmM/OiBCYXNrZXRTdW1tYXJ5RGV0YWlscztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNrZXRTdW1tYXJ5RGV0YWlscyB7XG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XG4gIHNhbGVUb3RhbD86IG51bWJlcjtcbiAgVkFUVG90YWw/OiBudW1iZXI7XG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XG4gIGJhc2tldFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRUb3RhbD86bnVtYmVyO1xuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xuICBiYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uRGlzY291bnR7XG4gIGRpc2NvdW50QW1vdW50Om51bWJlcjtcbiAgZGlzY291bnRUeXBlOlN0cmluZztcbiAgcmVhc29uQ29kZTpzdHJpbmc7XG4gIG92ZXJyaWRlPzogVXNlck92ZXJyaWRlO1xuICBpdGVtTGluZUlkcz86bnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEJhc2tldCB7XG4gIHByb2R1Y3RzOiBUUHJvZHVjdFtdO1xuICBsaW5lRGlzY291bnQ6TGluZURpc2NvdW50W107XG4gIGV4Y2hhbmdlOkV4Y2hhbmdlW107XG4gIGxpbmVQcm9tb3Rpb246TGluZVByb21vdGlvbnNbXTtcbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24/OlRyYW5zYWN0aW9uUHJvbW90aW9uW107XG4gIHRyYW5zYWN0aW9uRGlzY291bnQ/OlRyYW5zYWN0aW9uRGlzY291bnRbXTtcbiAgdGF4QnJlYWtkb3duPzpUYXhCcmVha2Rvd247XG4gIHRvdGFsVGF4U3VtbWFyeT86VG90YWxUYXhTdW1tYXJ5W107XG5cbiAgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVEV4Y2hhbmdle1xuICBleGNoYW5nZUlkPzpudW1iZXIsXG4gIGxpbmVJdGVtSWQ/OiBudW1iZXIsXG4gIHJlYXNvbj86IHN0cmluZyxcbiAgcXVhbnRpdHk/OiBudW1iZXIsXG4gIG5ld0l0ZW1zPzpUTmV3SXRlbXNbXTtcbiAgfVxuICBcbiAgZXhwb3J0IGludGVyZmFjZSBUTmV3SXRlbXN7XG4gIGxpbmVJdGVtSWQ6bnVtYmVyLFxuICAgUXVhbnRpdHk6bnVtYmVyXG4gIH1cblxuZXhwb3J0IGludGVyZmFjZSBUUHJvZHVjdCB7XG4gIGl0ZW1MaW5lSWQ6IHN0cmluZztcbiAgU0tVOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGltYWdlVXJsczogW3N0cmluZ107XG4gIHByaWNlOiBudW1iZXI7XG4gIHRheENvZGU/OiBzdHJpbmc7XG4gIHRheFBlcmNlbnQ/OiBzdHJpbmc7XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIHJlZnVuZGVkUXVhbnRpdHk/OiBudW1iZXI7XG4gIHJlZnVuZGVkUHJvbW90aW9uYWxRdWFudGl0eT86bnVtYmVyO1xuICByZWZ1bmRlZD86IGJvb2xlYW47XG4gIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XG4gIHJlZnVuZGVkUmVhc29uPzpzdHJpbmc7XG4gIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OnN0cmluZztcbiAgc2VsZWN0ZWRSUlBQcmljZT86IG51bWJlcjtcbiAgdG90YWxMaW5lUHJpY2U6IG51bWJlcjtcbiAgYmFyQ29kZT86IHN0cmluZztcbiAgYmFyY29kZXM/OiBzdHJpbmdbXTtcbiAgZmxhZ2dlZD86IGJvb2xlYW47XG4gIGV4Y2hhbmdlPzpFeGNoYW5nZTtcbiAgZXhjbHVkZVByb21vdGlvbjpib29sZWFuO1xuICBkaXNjb3VudGFibGU/OmJvb2xlYW47XG5cbiAgaXRlbURpc2NvdW50cz86SXRlbURpc2NvdW50cztcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcblxuICAvLyBNaXhlZCBTYWxlcyBmaWVsZHNcbiAgZnVsbGZpbG1lbnRJZDpzdHJpbmcsXG4gIGZ1bGxmaWxtZW50TG9jYXRpb25OYW1lOnN0cmluZyxcbiAgZGVsaXZlcnlNZXRob2Q/OnN0cmluZyxcbiAgZGVsaXZlcnlHcm91cD86c3RyaW5nLFxuICBnaWZ0Q2FyZE51bWJlcklzc3VlZD86IHN0cmluZyxcbiAgZ2lmdENhcmRBbW91bnQ/OiBudW1iZXIsXG4gIGdpZnRDYXJkUmVjaXBpZW50RW1haWw/OiBzdHJpbmcsXG4gIGdpZnRDYXJkRXhwaXJ5RGF0ZT86IHN0cmluZyAsXG4gIGdpZnRDYXJkUmVjaXBpZW50TmFtZT86IHN0cmluZyxcbiAgZ2lmdENhcmQ/OmJvb2xlYW4sXG4gIGN1cnJlbmN5PzpzdHJpbmcsXG4gIGlzV2ViT3JkZXI/OmJvb2xlYW4sXG4gIGxlYWRUaW1lPzogbGVhZFRpbWVcbiAgXG4gIC8vIGN1cnJlbnR0cmFuc2FjdGlvbiBkb2MgY2hhbmdlc1xuICBsaW5lRGlzY291bnQ/OmFueVxuXG4gIGF0dHJpYnV0ZXM/OkNvcmVBdHRyaWJ1dGVbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJdGVtRGlzY291bnRze1xuICB0cm5EaXNjb3VudHNQb3J0aW9uOm51bWJlcjtcbiAgdHJuUHJvbW90aW9uc1BvcnRpb246bnVtYmVyO1xuICByZWZ1bmRQb3J0aW9uOm51bWJlcjtcbn1cblxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXIge1xuICBpZDogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgZmlyc3ROYW1lOiBzdHJpbmc7XG4gIGxhc3ROYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHBvc3RDb2RlOiBzdHJpbmc7XG4gIHRlbGVwaG9uZT86IHN0cmluZztcbiAgYmlsbGluZ0FkZHJlc3M/OiBBZGRyZXNzIHwgQWRkcmVzc1tdO1xuICBzaGlwcGluZ0FkZHJlc3M/OiBBZGRyZXNzIHwgQWRkcmVzc1tdO1xuICBzaGlwbWVudERldGFpbHM/OiBTaGlwbWVudERldGFpbHNbXTtcbiAgYWRkcmVzc0RldGFpbD86IHN0cmluZztcbiAgbm9DdXN0b21lclNlbGVjdGVkPzogYm9vbGVhbjtcbiAgZXh0ZXJuYWxJZD86IHN0cmluZzsgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkcmVzcyBcbntcbiAgaWQ/OiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlPzogc3RyaW5nO1xuICBhZGRyZXNzMT86IHN0cmluZztcbiAgYWRkcmVzczI/OiBzdHJpbmc7XG4gIGFkZHJlc3MzPzogc3RyaW5nO1xuICBjaXR5Pzogc3RyaW5nO1xuICBjb3VudHk/OiBzdHJpbmc7XG4gIHBvc3RDb2RlPzogc3RyaW5nO1xuICBjb3VudHJ5Pzogc3RyaW5nO1xuIH1cblxuIGV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnREZXRhaWxzIHtcbiAgaWQ/OiBzdHJpbmcsXG4gIGRlbGl2ZXJ5R3JvdXA/OiBzdHJpbmcsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bWVudERldGFpbHMge1xuICBjYXJkTnVtYmVyPzogYW55O1xuICBzcU5vPzpudW1iZXI7XG4gIHJlc3VsdD86IHN0cmluZztcbiAgY3VycmVuY3k6IHN0cmluZztcbiAgYW1vdW50OiBzdHJpbmc7XG4gIGF1dGhjb2RlPzogc3RyaW5nO1xuICBwYW4/OiBzdHJpbmc7XG4gIGNhcmRUeXBlPzogc3RyaW5nO1xuICB0cmFuc2FjdGlvbkRhdGU/OiBzdHJpbmc7XG4gIG1pZD86IHN0cmluZztcbiAgdGlkPzogc3RyaW5nO1xuICBjdm0/OiBzdHJpbmc7XG4gIGhvc3RSZWZlcmVuY2VJZD86IHN0cmluZztcbiAgYWlkPzogc3RyaW5nO1xuICByZWNlaXB0Tm8/OiBzdHJpbmc7XG4gIGV4cGlyeWRhdGU/OiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uUmVmZXJlbmNlOiBzdHJpbmc7XG4gIGFwcGxpY2F0aW9uVmVyc2lvbj86IHN0cmluZztcbiAgZW50cnlNZXRob2Q/OnN0cmluZztcbiAgdHJhbnNhY3Rpb25UeXBlOnN0cmluZztcbiAgdG90YWxhbW91bnQ6c3RyaW5nO1xuICBwYXltZW50VHlwZT86c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRheEJyZWFrZG93blxue1xuICB0YXhMaW5lcyA6IFRheExpbmVbXSxcbiAgdG90YWxUYXhhYmxlQW1vdW50OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG90YWxUYXhTdW1tYXJ5e1xuICBWQVRDb2RlOnN0cmluZyxcbiAgVkFUIDogbnVtYmVyO1xuICBQcmVUYXhTdW06ICBudW1iZXJcbiAgVGF4U3VtOiAgbnVtYmVyXG4gIFRYcmF0ZVN1bTogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGF4TGluZVxue1xuICAgIGl0ZW1MaW5lSWQ6IG51bWJlcixcbiAgICB0YXhhYmxlQW1vdW50OiBudW1iZXIsXG4gICAgdGF4TGluZVRvdGFsOiBudW1iZXIsXG4gICAgVkFUOiBudW1iZXIsXG4gICAgVkFUQ29kZSA6IHN0cmluZyxcbiAgICBQcmVUYXg6IG51bWJlclxufVxuXG5leHBvcnQgZW51bSBESVNDT1VOVFRZUEUge1xuICBQRVJDRU5UID0gJ1BlcmNlbnQnLFxuICBBTU9VTlQgPSAnQU1PVU5UJ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uSW5mbyB7XG4gIHNoaXBwaW5nSWQ/OiBzdHJpbmcsXG4gIGV4dGVybmFsU2hpcHBpbmdJZD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzIHtcbiAgdW5pcXVlSWQ/OiBzdHJpbmcsXG4gIHByb3ZpZGVyVHlwZT86IHN0cmluZyxcbiAgZGV0YWlscz86IFRyYW5zYWN0aW9uSW5mb1xufVxuXG5leHBvcnQgZW51bSBJTklUSUFUSU5HX01PRFVMRSB7XG4gIEVCQVNLRVQgPSBcImVCYXNrZXRcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIHBlbmRpbmdNZXRob2Qge1xuICBfdHlwZT86IHN0cmluZztcbiAgdHlwZT86IHN0cmluZztcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgZGV0YWlscz86IFNoaXBtZW50SWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hpcG1lbnRJZCB7XG4gIHNoaXBtZW50SWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJBZGRyZXNzIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xuICBhZGRyZXNzMT86IHN0cmluZztcbiAgY2l0eT86IHN0cmluZztcbiAgY291bnRyeV9jb2RlPzogc3RyaW5nO1xuICBmaXJzdF9uYW1lPzogc3RyaW5nO1xuICBmdWxsX25hbWU/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBsYXN0X25hbWU/OiBzdHJpbmc7XG4gIHBob25lPzogc3RyaW5nO1xuICBzYWx1dGF0aW9uPzogc3RyaW5nO1xuICBjX2FyZWE/OiBzdHJpbmc7XG4gIGNfZW1haWw/OiBzdHJpbmc7XG4gIGNfcGhvbmVXaGF0c0FwcD86IHN0cmluZztcbiAgY19zdHJWYWx1ZT86IHN0cmluZztcbiAgcG9zdGFsX2NvZGU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tZXJJbmZvIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIGN1c3RvbWVyX2lkPzogc3RyaW5nO1xuICBlbWFpbD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHcm91cGVkVGF4SXRlbSB7XG4gIF90eXBlPzogc3RyaW5nO1xuICB0YXhfcmF0ZT86IG51bWJlcjtcbiAgdGF4X3ZhbHVlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIGFkZGl0aW9uYWxOb3RlcyB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBsaW5rPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByb2R1Y3RJdGVtIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIGFkanVzdGVkX3RheD86IG51bWJlcjtcbiAgYmFzZV9wcmljZT86IG51bWJlcjtcbiAgYm9udXNfcHJvZHVjdF9saW5lX2l0ZW0/OiBib29sZWFuO1xuICBnaWZ0PzogYm9vbGVhbjtcbiAgaXRlbV9pZD86IHN0cmluZztcbiAgaXRlbV90ZXh0Pzogc3RyaW5nO1xuICBwcmljZT86IG51bWJlcjtcbiAgcHJpY2VfYWRqdXN0bWVudHM/OiBQcmljZUFkanVzdG1lbnRbXTtcbiAgcHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudD86IG51bWJlcjtcbiAgcHJpY2VfYWZ0ZXJfb3JkZXJfZGlzY291bnQ/OiBudW1iZXI7XG4gIHByb2R1Y3RfaWQ/OiBzdHJpbmc7XG4gIHByb2R1Y3RfbmFtZT86IHN0cmluZztcbiAgcXVhbnRpdHk/OiBudW1iZXI7XG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xuICB0YXg/OiBudW1iZXI7XG4gIHRheF9iYXNpcz86IG51bWJlcjtcbiAgdGF4X2NsYXNzX2lkPzogc3RyaW5nO1xuICB0YXhfcmF0ZT86IG51bWJlcjtcbiAgY19vc3VPYmplY3REYXRhPzpzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2hpcHBpbmdNZXRob2Qge1xuICBfdHlwZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBwcmljZT86IG51bWJlcjtcbiAgY19hcHByb2FjaGluZ1RocmVzaG9sZE1lc3NhZ2U/OiBzdHJpbmc7XG4gIGNfZXN0aW1hdGVkQXJyaXZhbFRpbWU/OiBzdHJpbmc7XG4gIGNfaXNFbWFpbD86IGJvb2xlYW47XG4gIGNfc3RvcmVQaWNrdXBFbmFibGVkPzogYm9vbGVhbjtcbiAgY190aHJlc2hvbGRWYWx1ZT86IG51bWJlcjtcbn0gXG5cbmV4cG9ydCBpbnRlcmZhY2Ugc2hpcG1lbnQge1xuICBfdHlwZT86IHN0cmluZztcbiAgYWRqdXN0ZWRfbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xuICBhZGp1c3RlZF9zaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XG4gIGdpZnQ/OiBib29sZWFuO1xuICBtZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XG4gIHByb2R1Y3Rfc3ViX3RvdGFsPzogbnVtYmVyO1xuICBwcm9kdWN0X3RvdGFsPzogbnVtYmVyO1xuICBzaGlwbWVudF9pZD86IHN0cmluZztcbiAgc2hpcG1lbnRfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBwaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XG4gIHNoaXBwaW5nX21ldGhvZD86IFNoaXBwaW5nTWV0aG9kO1xuICBzaGlwcGluZ19zdGF0dXM/OiBzdHJpbmc7XG4gIHNoaXBwaW5nX3RvdGFsPzogbnVtYmVyO1xuICBzaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XG4gIHRheF90b3RhbD86IG51bWJlcjtcbiAgY19mcm9tU3RvcmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ0l0ZW0ge1xuICBfdHlwZT86IHN0cmluZztcbiAgYWRqdXN0ZWRfdGF4PzogbnVtYmVyO1xuICBiYXNlX3ByaWNlPzogbnVtYmVyO1xuICBpdGVtX2lkPzogc3RyaW5nO1xuICBpdGVtX3RleHQ/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBwcmljZV9hZnRlcl9pdGVtX2Rpc2NvdW50PzogbnVtYmVyO1xuICBzaGlwbWVudF9pZD86IHN0cmluZztcbiAgdGF4PzogbnVtYmVyO1xuICB0YXhfYmFzaXM/OiBudW1iZXI7XG4gIHRheF9jbGFzc19pZD86IHN0cmluZztcbiAgdGF4X3JhdGU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGllZERpc2NvdW50IHtcbiAgX3R5cGU/OiBzdHJpbmcsXG4gIGFtb3VudD86IG51bWJlcixcbiAgcGVyY2VudGFnZT86IG51bWJlcixcbiAgdHlwZT86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFByaWNlQWRqdXN0bWVudCB7XG4gIF90eXBlPzogc3RyaW5nLFxuICBhcHBsaWVkX2Rpc2NvdW50PzogQXBwbGllZERpc2NvdW50LFxuICBjb3Vwb25fY29kZT86IHN0cmluZyxcbiAgY3JlYXRpb25fZGF0ZT86IHN0cmluZyxcbiAgY3VzdG9tPzogYm9vbGVhbixcbiAgaXRlbV90ZXh0Pzogc3RyaW5nLFxuICBsYXN0X21vZGlmaWVkPzogc3RyaW5nLFxuICBtYW51YWw/OiBib29sZWFuLFxuICBwcmljZT86IG51bWJlclxuICBwcmljZV9hZGp1c3RtZW50X2lkPzogc3RyaW5nLFxuICBwcm9tb3Rpb25faWQ/OiBzdHJpbmcsXG4gIHByb21vdGlvbl9saW5rPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3JkZXJEZXRhaWxzIHtcbiAgX3Y/OiBzdHJpbmc7XG4gIF90eXBlPzogc3RyaW5nO1xuICBfcmVzb3VyY2Vfc3RhdGU/OiBzdHJpbmc7XG4gIF9mbGFzaD86IHBlbmRpbmdNZXRob2RbXTtcbiAgYWRqdXN0ZWRfbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xuICBhZGp1c3RlZF9zaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XG4gIGFnZW50X2Jhc2tldD86IGJvb2xlYW47XG4gIGJhc2tldF9pZD86IHN0cmluZztcbiAgYmlsbGluZ19hZGRyZXNzPzogQ3VzdG9tZXJBZGRyZXNzO1xuICBjaGFubmVsX3R5cGU/OiBzdHJpbmc7XG4gIGNyZWF0aW9uX2RhdGU/OiBzdHJpbmc7XG4gIGN1cnJlbmN5Pzogc3RyaW5nO1xuICBjdXN0b21lcl9pbmZvPzogQ3VzdG9tZXJJbmZvO1xuICBncm91cGVkX3RheF9pdGVtcz86IEdyb3VwZWRUYXhJdGVtW107XG4gIGxhc3RfbW9kaWZpZWQ/OiBzdHJpbmc7XG4gIG1lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcbiAgbm90ZXM/OiBhZGRpdGlvbmFsTm90ZXM7XG4gIG9yZGVyX3ByaWNlX2FkanVzdG1lbnRzPzogUHJpY2VBZGp1c3RtZW50W10sXG4gIG9yZGVyX25vPzogc3RyaW5nO1xuICBvcmRlcl90b3RhbD86IG51bWJlcjtcbiAgcHJvZHVjdF9pdGVtcz86IFByb2R1Y3RJdGVtW107XG4gIHByb2R1Y3Rfc3ViX3RvdGFsPzogbnVtYmVyO1xuICBwcm9kdWN0X3RvdGFsPzogbnVtYmVyO1xuICBzaGlwbWVudHM/OiBzaGlwbWVudFtdO1xuICBzaGlwcGluZ19pdGVtcz86IFNoaXBwaW5nSXRlbVtdO1xuICBzaGlwcGluZ190b3RhbD86IG51bWJlcjtcbiAgc2hpcHBpbmdfdG90YWxfdGF4PzogbnVtYmVyO1xuICB0YXhhdGlvbj86IHN0cmluZztcbiAgdGF4X3JvdW5kZWRfYXRfZ3JvdXA/OiBib29sZWFuO1xuICB0YXhfdG90YWw/OiBudW1iZXI7XG4gIGNfaXNJblN0b3JlT3JkZXI/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBQUk9WSURFUlMge1xuICBTQUxFU0ZPUkNFID0gXCJTYWxlc2ZvcmNlXCJcbn1cblxuZXhwb3J0IGVudW0gUFJPTU9USU9OX0xFVkVMXG57XG4gIExJTkU9XCJMSU5FXCIsXG4gIFRSQU5TQUNUSU9OPVwiVFJBTlNBQ1RJT05cIlxufVxuXG5leHBvcnQgZW51bSBQUk9NT1RJT05fVFlQRVxue1xuICBDT1VQT049XCJDT1VQT05cIlxufVxuXG4iXX0=
@@ -18,4 +18,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
18
18
  ]
19
19
  }]
20
20
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcGVyLWxpYnJhcnkvc3JjL2xpYi9tYXBwZXItbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFjcEUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBUjVCLHNCQUFzQixhQUt0QixzQkFBc0I7K0dBR2IsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQVYvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWFwcGVyTGlicmFyeUNvbXBvbmVudCB9IGZyb20gJy4vbWFwcGVyLWxpYnJhcnkuY29tcG9uZW50JztcclxuXHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIE1hcHBlckxpYnJhcnlDb21wb25lbnRcclxuICBdLFxyXG4gIGltcG9ydHM6IFtcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIE1hcHBlckxpYnJhcnlDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBwZXJMaWJyYXJ5TW9kdWxlIHsgfVxyXG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwcGVyLWxpYnJhcnkvc3JjL2xpYi9tYXBwZXItbGlicmFyeS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFjcEUsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUIsaUJBUjVCLHNCQUFzQixhQUt0QixzQkFBc0I7K0dBR2IsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQVYvQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixzQkFBc0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRSxFQUNSO29CQUNELE9BQU8sRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3ZCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hcHBlckxpYnJhcnlDb21wb25lbnQgfSBmcm9tICcuL21hcHBlci1saWJyYXJ5LmNvbXBvbmVudCc7XG5cblxuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBNYXBwZXJMaWJyYXJ5Q29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE1hcHBlckxpYnJhcnlDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNYXBwZXJMaWJyYXJ5TW9kdWxlIHsgfVxuIl19
@@ -37,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
37
37
  providedIn: "root",
38
38
  }]
39
39
  }], ctorParameters: () => [{ type: i1.CurrencyPipe }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHBlci1saWJyYXJ5L3NyYy9saWIvbnVtYmVyLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFxQixFQUFnQjtRQUFoQixPQUFFLEdBQUYsRUFBRSxDQUFjO0lBQUcsQ0FBQztJQUV6QyxjQUFjLENBQUMsRUFBVTtRQUN2QixvQ0FBb0M7UUFDcEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQVU7UUFDeEIsOEdBQThHO1FBQzlHLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsd0JBQXdCLENBQUMsUUFBYSxFQUFFLFlBQW9CO1FBQzFELElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEdBQVcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUMvQixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUMxQixZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFDaEMsUUFBUSxDQUNULENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ0wsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUM5QixNQUFNLEVBQ04sWUFBWSxDQUFDLGlCQUFpQixFQUFFLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OEdBbkNVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnVtYmVyVXRpbFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGNwOiBDdXJyZW5jeVBpcGUpIHt9XHJcblxyXG4gIHRyaW1UbzJEZWNpbWFsKG5vOiBudW1iZXIpIHtcclxuICAgIC8vcmV0dXJuIE1hdGguZmxvb3Iobm8gKiAxMDApIC8gMTAwO1xyXG4gICAgcmV0dXJuIG5vO1xyXG4gIH1cclxuXHJcbiAgdHJpbVRvMkRlY2ltYWwyKG5vOiBudW1iZXIpIHtcclxuICAgIC8vIFNFQU0tMTE0MTEgLSBIYWQgdG8gY2hhbmdlIDJuZCBwYXJhbSB0byAzIHRvIGZpeCByb3VuZGluZyBpc3N1ZSAoRklYTUUgLSBOZWVkcyBhIG5ldyBzdG9yeSBmb3IgcmVmYWN0b3JpbmcpXHJcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuZ2V0Rmxvb3JlZEZpeGVkKG5vLCAzKSk7XHJcbiAgfVxyXG5cclxuICBnZXRGbG9vcmVkRml4ZWQodiwgZCkge1xyXG4gICAgcmV0dXJuIChNYXRoLmZsb29yKHYgKiBNYXRoLnBvdygxMCwgZCkpIC8gTWF0aC5wb3coMTAsIGQpKS50b0ZpeGVkKGQpO1xyXG4gIH1cclxuXHJcbiAgQXBwZW5kV2l0aEN1cnJlbmN5U3ltYm9sKG51bVZhbHVlOiBhbnksIGN1cnJlbmN5Q29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGxldCByZXR1cm5WYWx1ZTogYW55ID0gXCJcIjtcclxuICAgIGlmIChudW1WYWx1ZSkge1xyXG4gICAgICBjb25zdCBudW1iOiBudW1iZXIgPSBwYXJzZUZsb2F0KG51bVZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZSgnLCcsJycpKTtcclxuICAgICAgIHJldHVyblZhbHVlID0gdGhpcy5jcC50cmFuc2Zvcm0oXHJcbiAgICAgICBOdW1iZXIobnVtVmFsdWUpLnRvRml4ZWQoMiksXHJcbiAgICAgICAgY3VycmVuY3lDb2RlLnRvTG9jYWxlVXBwZXJDYXNlKCksXHJcbiAgICAgICAgXCJzeW1ib2xcIlxyXG4gICAgICApO1xyXG4gICAgICBjb25zb2xlLmxvZyhcIkFwcGVuZFdpdGhDdXJyZW5jeVN5bWJvbCA6XCIgKyByZXR1cm5WYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgcmV0dXJuVmFsdWUgPSB0aGlzLmNwLnRyYW5zZm9ybShcclxuICAgICAgICBcIjAuMDBcIixcclxuICAgICAgICBjdXJyZW5jeUNvZGUudG9Mb2NhbGVVcHBlckNhc2UoKSxcclxuICAgICAgICBcInN5bWJvbFwiXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmV0dXJuVmFsdWU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHBlci1saWJyYXJ5L3NyYy9saWIvbnVtYmVyLXV0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixZQUFxQixFQUFnQjtRQUFoQixPQUFFLEdBQUYsRUFBRSxDQUFjO0lBQUcsQ0FBQztJQUV6QyxjQUFjLENBQUMsRUFBVTtRQUN2QixvQ0FBb0M7UUFDcEMsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsZUFBZSxDQUFDLEVBQVU7UUFDeEIsOEdBQThHO1FBQzlHLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsd0JBQXdCLENBQUMsUUFBYSxFQUFFLFlBQW9CO1FBQzFELElBQUksV0FBVyxHQUFRLEVBQUUsQ0FBQztRQUMxQixJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEdBQVcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDcEUsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUMvQixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUMxQixZQUFZLENBQUMsaUJBQWlCLEVBQUUsRUFDaEMsUUFBUSxDQUNULENBQUM7WUFDRixPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixHQUFHLFdBQVcsQ0FBQyxDQUFDO1FBQzFELENBQUM7YUFBTSxDQUFDO1lBQ0wsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUM5QixNQUFNLEVBQ04sWUFBWSxDQUFDLGlCQUFpQixFQUFFLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7OEdBbkNVLGlCQUFpQjtrSEFBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiBcInJvb3RcIixcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyVXRpbFNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBjcDogQ3VycmVuY3lQaXBlKSB7fVxuXG4gIHRyaW1UbzJEZWNpbWFsKG5vOiBudW1iZXIpIHtcbiAgICAvL3JldHVybiBNYXRoLmZsb29yKG5vICogMTAwKSAvIDEwMDtcbiAgICByZXR1cm4gbm87XG4gIH1cblxuICB0cmltVG8yRGVjaW1hbDIobm86IG51bWJlcikge1xuICAgIC8vIFNFQU0tMTE0MTEgLSBIYWQgdG8gY2hhbmdlIDJuZCBwYXJhbSB0byAzIHRvIGZpeCByb3VuZGluZyBpc3N1ZSAoRklYTUUgLSBOZWVkcyBhIG5ldyBzdG9yeSBmb3IgcmVmYWN0b3JpbmcpXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmdldEZsb29yZWRGaXhlZChubywgMykpO1xuICB9XG5cbiAgZ2V0Rmxvb3JlZEZpeGVkKHYsIGQpIHtcbiAgICByZXR1cm4gKE1hdGguZmxvb3IodiAqIE1hdGgucG93KDEwLCBkKSkgLyBNYXRoLnBvdygxMCwgZCkpLnRvRml4ZWQoZCk7XG4gIH1cblxuICBBcHBlbmRXaXRoQ3VycmVuY3lTeW1ib2wobnVtVmFsdWU6IGFueSwgY3VycmVuY3lDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCByZXR1cm5WYWx1ZTogYW55ID0gXCJcIjtcbiAgICBpZiAobnVtVmFsdWUpIHtcbiAgICAgIGNvbnN0IG51bWI6IG51bWJlciA9IHBhcnNlRmxvYXQobnVtVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKCcsJywnJykpO1xuICAgICAgIHJldHVyblZhbHVlID0gdGhpcy5jcC50cmFuc2Zvcm0oXG4gICAgICAgTnVtYmVyKG51bVZhbHVlKS50b0ZpeGVkKDIpLFxuICAgICAgICBjdXJyZW5jeUNvZGUudG9Mb2NhbGVVcHBlckNhc2UoKSxcbiAgICAgICAgXCJzeW1ib2xcIlxuICAgICAgKTtcbiAgICAgIGNvbnNvbGUubG9nKFwiQXBwZW5kV2l0aEN1cnJlbmN5U3ltYm9sIDpcIiArIHJldHVyblZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgIHJldHVyblZhbHVlID0gdGhpcy5jcC50cmFuc2Zvcm0oXG4gICAgICAgIFwiMC4wMFwiLFxuICAgICAgICBjdXJyZW5jeUNvZGUudG9Mb2NhbGVVcHBlckNhc2UoKSxcbiAgICAgICAgXCJzeW1ib2xcIlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldHVyblZhbHVlO1xuICB9XG59XG4iXX0=
@@ -6,4 +6,4 @@ export * from './lib/mapper-library.module';
6
6
  export * from './lib/RJ-mapper.class';
7
7
  export * from './lib/WebReturn-mapper.class';
8
8
  export * from './lib/WebReturnSalesforceMapper.class';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hcHBlci1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG1hcHBlci1saWJyYXJ5XHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwcGVyLWxpYnJhcnkuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbWFwcGVyLWxpYnJhcnkubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvUkotbWFwcGVyLmNsYXNzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvV2ViUmV0dXJuLW1hcHBlci5jbGFzcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL1dlYlJldHVyblNhbGVzZm9yY2VNYXBwZXIuY2xhc3MnOyJdfQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hcHBlci1saWJyYXJ5L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBtYXBwZXItbGlicmFyeVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21hcHBlci1saWJyYXJ5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXBwZXItbGlicmFyeS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvUkotbWFwcGVyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL1dlYlJldHVybi1tYXBwZXIuY2xhc3MnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcyc7Il19
@@ -8,18 +8,18 @@ class MapperLibraryComponent {
8
8
  ngOnInit() {
9
9
  }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MapperLibraryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
11
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MapperLibraryComponent, selector: "lib-mapper-library", ngImport: i0, template: `
12
- <p>
13
- mapper-library works!
14
- </p>
11
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: MapperLibraryComponent, selector: "lib-mapper-library", ngImport: i0, template: `
12
+ <p>
13
+ mapper-library works!
14
+ </p>
15
15
  `, isInline: true }); }
16
16
  }
17
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: MapperLibraryComponent, decorators: [{
18
18
  type: Component,
19
- args: [{ selector: 'lib-mapper-library', template: `
20
- <p>
21
- mapper-library works!
22
- </p>
19
+ args: [{ selector: 'lib-mapper-library', template: `
20
+ <p>
21
+ mapper-library works!
22
+ </p>
23
23
  ` }]
24
24
  }], ctorParameters: () => [] });
25
25