@pmcretail/mapper-library 0.0.56 → 0.0.61
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.
- package/bundles/pmcretail-mapper-library.umd.js +4 -4
- package/bundles/pmcretail-mapper-library.umd.js.map +1 -1
- package/esm2015/lib/WebReturnSalesforceMapper.class.js +4 -5
- package/esm2015/lib/mapper-library.model.js +2 -1
- package/fesm2015/pmcretail-mapper-library.js +4 -4
- package/fesm2015/pmcretail-mapper-library.js.map +1 -1
- package/lib/WebReturnSalesforceMapper.class.d.ts +2 -1
- package/lib/WebReturnSalesforceMapper.class.d.ts.map +1 -1
- package/lib/mapper-library.model.d.ts +3 -1
- package/lib/mapper-library.model.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -33,6 +33,7 @@ export class WebReturnSalesforceMapperBuilderClass {
|
|
|
33
33
|
},
|
|
34
34
|
currentTransactionDetails: {}
|
|
35
35
|
};
|
|
36
|
+
this.STORE_PREFIX = 'store@';
|
|
36
37
|
if (orderDetails) {
|
|
37
38
|
this.orderDetails = orderDetails;
|
|
38
39
|
}
|
|
@@ -317,11 +318,9 @@ export class WebReturnSalesforceMapperBuilderClass {
|
|
|
317
318
|
AppLoggerService.logDebug(this.className, "customer", "customer mapping ended...");
|
|
318
319
|
return this;
|
|
319
320
|
}
|
|
320
|
-
isInStoreOrder() {
|
|
321
|
+
isInStoreOrder(isInStoreOrder) {
|
|
321
322
|
AppLoggerService.logDebug(this.className, "isInStoreOrder", "isInStoreOrder mapping started...");
|
|
322
|
-
|
|
323
|
-
this.webReturnObject.isInStoreOrder = true;
|
|
324
|
-
}
|
|
323
|
+
this.webReturnObject.isInStoreOrder = isInStoreOrder || false;
|
|
325
324
|
AppLoggerService.logDebug(this.className, "isInStoreOrder", "isInStoreOrder mapping ended...");
|
|
326
325
|
return this;
|
|
327
326
|
}
|
|
@@ -444,4 +443,4 @@ export class WebReturnSalesforceMapperBuilderClass {
|
|
|
444
443
|
return shippedQtys - returnedQtys;
|
|
445
444
|
}
|
|
446
445
|
}
|
|
447
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHBlci1saWJyYXJ5L3NyYy9saWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFGLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQWdDLFNBQVMsRUFBbUIsZ0JBQWdCLEVBQTJJLE1BQU0sd0JBQXdCLENBQUM7QUFDdFosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFFdEYsTUFBTSxPQUFPLHFDQUFxQztJQWtDOUMsWUFBWSxZQUEwQixFQUMxQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQWpDdkMsY0FBUyxHQUFHLHVDQUF1QyxDQUFDO1FBRTVDLG9CQUFlLEdBQXdCO1lBQzNDLEVBQUUsRUFBRSxFQUFFO1lBQ04sT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxFQUFFO1lBQ2Ysa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsUUFBUSxFQUFFO2dCQUNOLEVBQUUsRUFBRSxFQUFFO2dCQUNOLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxFQUFFO2dCQUNiLFFBQVEsRUFBRSxFQUFFO2dCQUNaLGNBQWMsRUFBRSxFQUFFO2dC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TUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTyxFQUFFO1lBQ2pCLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLFdBQVcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxRQUFRLEVBQUU7WUFDbEIsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEQsSUFBSSxTQUFTLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEcsWUFBWSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sV0FBVyxHQUFHLFlBQVksQ0FBQztJQUN0QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBBZGRyZXNzLCBCYXNrZXRTdW1tYXJ5LCBCYXNrZXRTdW1tYXJ5RGV0YWlscywgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlscywgQ3VzdG9tZXIsIERFTElWRVJZX01FVEhPRFMsIFBST01PVElPTl9MRVZFTCwgUFJPTU9USU9OX1RZUEUsIElOSVRJQVRJTkdfTU9EVUxFLCBMaW5lUHJvbW90aW9ucywgT3JkZXJEZXRhaWxzLCBQUk9WSURFUlMsIFNoaXBtZW50RGV0YWlscywgVFJBTlNBQ1RJT05fVFlQRSwgVHJhbnNhY3Rpb25Eb2N1bWVudCwgVHJhbnNhY3Rpb25JbmZvLCBUcmFuc2FjdGlvblByb21vdGlvbiwgVHJpZ2dlciwgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMsIFRQcm9kdWN0LCBSZWZ1bmRQcm9kdWN0Q2hhbmdlLCBQcm9kdWN0IH0gZnJvbSBcIi4vbWFwcGVyLWxpYnJhcnkubW9kZWxcIjtcbmltcG9ydCB7IE51bWJlclV0aWxTZXJ2aWNlIH0gZnJvbSBcIi4vbnVtYmVyLXV0aWwuc2VydmljZVwiO1xuaW1wb3J0IHtBcHBMb2dnZXJTZXJ2aWNlfSBmcm9tICdAcG1jcmV0YWlsL2NvbW1vbi1zZXJ2aWNlcy9jb21tb24vYXBwLWxvZ2dlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3Mge1xuXG4gICAgY2xhc3NOYW1lID0gXCJXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzXCI7XG4gICAgcHJpdmF0ZSBvcmRlckRldGFpbHM6IE9yZGVyRGV0YWlscztcbiAgICBwcml2YXRlIHdlYlJldHVybk9iamVjdDogVHJhbnNhY3Rpb25Eb2N1bWVudCA9IHtcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxuICAgICAgICBzdG9yZUlkOiBcIlwiLFxuICAgICAgICBzdG9yZU5vZGVJZDogXCJcIixcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxuICAgICAgICBkZXZpY2VJZDogXCJcIixcbiAgICAgICAgdGVybWluYWxJZDogXCJcIixcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcbiAgICAgICAgZXhwb3J0OiBmYWxzZSxcbiAgICAgICAgaXNJblN0b3JlT3JkZXI6IGZhbHNlLFxuICAgICAgICBiYXNrZXQ6IHt9LFxuICAgICAgICBiYXNrZXRTdW1tYXJ5OiB7fSxcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxuICAgICAgICBjdXN0b21lcjoge1xuICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgZW1haWw6ICcnLFxuICAgICAgICAgICAgZmlyc3ROYW1lOiAnJyxcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcbiAgICAgICAgICAgIGJpbGxpbmdBZGRyZXNzOiBbXSxcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczogW10sXG4gICAgICAgICAgICBzaGlwbWVudERldGFpbHM6IFtdLFxuICAgICAgICAgICAgdGVsZXBob25lOiAnJyxcbiAgICAgICAgICAgIHBvc3RDb2RlOiAnJyxcbiAgICAgICAgICAgIG5vQ3VzdG9tZXJTZWxlY3RlZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlsczoge30gYXMgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc1xuICAgIH1cbiAgICBudW1iZXJVdGlsU2VydmljZTogYW55O1xuXG4gICAgY29uc3RydWN0b3Iob3JkZXJEZXRhaWxzOiBPcmRlckRldGFpbHMsXG4gICAgICAgIHByaXZhdGUgY3VycmVuY3lQaXBlPzogQ3VycmVuY3lQaXBlXG4gICAgICAgICkge1xuICAgICAgICBpZiAob3JkZXJEZXRhaWxzKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscyA9IG9yZGVyRGV0YWlscztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm51bWJlclV0aWxTZXJ2aWNlID0gbmV3IE51bWJlclV0aWxTZXJ2aWNlKGN1cnJlbmN5UGlwZSk7XG4gICAgfVxuXG4gICAgd2ViUmV0dXJuQ29tbW9uTWFwcGVyKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcIndlYlJldHVybkNvbW1vbk1hcHBlclwiLCBcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiB3ZWJSZXR1cm5Db21tb25NYXBwZXIgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ3R5cGUnXSA9IFRSQU5TQUNUSU9OX1RZUEUuV0VCX1JFVFVSTlM7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0WydkYXRldGltZSddID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFzZUN1cnJlbmN5ID0gdGhpcy5vcmRlckRldGFpbHMuY3VycmVuY3k7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN1YnNpZGlhcnlJZCA9ICcxJztcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaW5pdGlhdGluZ01vZHVsZSA9IElOSVRJQVRJTkdfTU9EVUxFLkVCQVNLRVQ7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmNyZWF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMuY3JlYXRpb25fZGF0ZSk7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVwZGF0ZWRBdCA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMubGFzdF9tb2RpZmllZCk7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnRyYW5zQ29tcGxldGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmxhc3RfbW9kaWZpZWQpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZXh0ZXJuYWxUcmFuc2FjdGlvbklkJ10gPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubztcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ3ZWJSZXR1cm5Db21tb25NYXBwZXJcIiwgXCJ3ZWJSZXR1cm5Db21tb25NYXBwZXIgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8vIGV4cG9ydChzdGF0dXMsIGRldGFpbHMpIHtcbiAgICAvLyAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogZXhwb3J0IG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAvLyAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogc3RhdHVzOlwiLCBzdGF0dXMpO1xuICAgIC8vICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBkZXRhaWxzOlwiLCBKU09OLnN0cmluZ2lmeShkZXRhaWxzKSk7XG4gICAgLy8gICAgIGlmIChzdGF0dXMgJiYgZGV0YWlscyAmJiBkZXRhaWxzLnByb3ZpZGVycyAmJiBkZXRhaWxzLnByb3ZpZGVycy5sZW5ndGggPiAwKSB7XG4gICAgLy8gICAgICAgICBkZXRhaWxzLnByb3ZpZGVycy5mb3JFYWNoKFxuICAgIC8vICAgICAgICAgICAgIHByb3ZpZGVyT2JqID0+IHtcbiAgICAvLyAgICAgICAgICAgICAgICAgaWYgKHByb3ZpZGVyT2JqLnByb3ZpZGVyICYmIHByb3ZpZGVyT2JqLnByb3ZpZGVyID09PSBQUk9WSURFUlMuU0FMRVNGT1JDRSkge1xuICAgIC8vICAgICAgICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXhwb3J0ID0gdHJ1ZTtcbiAgICAvLyAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IGZhbHNlO1xuICAgIC8vICAgICAgICAgICAgICAgICB9XG4gICAgLy8gICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IGZhbHNlO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4cG9ydCBtYXBwaW5nIGVuZC4uLlwiKVxuICAgIC8vICAgICByZXR1cm4gdGhpcztcbiAgICAvLyB9XG5cbiAgICBnZXREZWxpdmVyeU1ldGhvZCgpIHtcbiAgICAgICAgaWYodGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzICYmIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBzaGlwVG9TdG9yZVNoaXBtZW50ID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZpbmQoc2hpcG1lbnQgPT4gc2hpcG1lbnQuY19mcm9tU3RvcmVJZCk7XG4gICAgICAgICAgICBpZihzaGlwVG9TdG9yZVNoaXBtZW50KSByZXR1cm4gREVMSVZFUllfTUVUSE9EUy5TSElQX1RPX1NUT1JFO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gREVMSVZFUllfTUVUSE9EUy5ERUxJVkVSWTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2R1Y3Qoc3VicHJvdmlkZXIpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJwcm9kdWN0XCIsIFwicHJvZHVjdCBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAocHJvZHVjdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb2R1Y3RPYmogOiBhbnkgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcHJvZHVjdC5pdGVtX3RleHQgPyBwcm9kdWN0Lml0ZW1fdGV4dCA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgU0tVOiBwcm9kdWN0LnByb2R1Y3RfaWQgPyBwcm9kdWN0LnByb2R1Y3RfaWQgOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHF1YW50aXR5OiBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZ1bmRlZFF1YW50aXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2U6IHByb2R1Y3QuYmFzZV9wcmljZSA/IHByb2R1Y3QuYmFzZV9wcmljZSA6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiAoaW5kZXggKyAxKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsaXZlcnlNZXRob2Q6IHRoaXMuZ2V0RGVsaXZlcnlNZXRob2QoKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxMaW5lUHJpY2U6IHByb2R1Y3QucHJpY2UgPyBwcm9kdWN0LnByaWNlIDogMFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJwcm92aWRlcj8udG9Mb2NhbGVVcHBlckNhc2UoKSA9PT0gUFJPVklERVJTLlNBTEVTRk9SQ0VfT1NVLnRvTG9jYWxlVXBwZXJDYXNlKCkpe1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlUXR5ID0gcHJvZHVjdD8uY19vc3VPYmplY3REYXRhID8gdGhpcy5nZXRBdmFpbGFibGVRdHkoSlNPTi5wYXJzZShwcm9kdWN0Py5jX29zdU9iamVjdERhdGEpKSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0T2JqLmF2YWlsYWJsZVF1YW50aXR5ID0gYXZhaWxhYmxlUXR5ID4gMCA/IGF2YWlsYWJsZVF0eSA6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QgJiYgcHJvZHVjdC5wcmljZSAhPSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0T2JqKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJwcm9kdWN0XCIsIFwicHJvZHVjdCBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBsaW5lUHJvbW90aW9uKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImxpbmVQcm9tb3Rpb25cIiwgXCJsaW5lUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LmxpbmVQcm9tb3Rpb24gPSBbXSBhcyBMaW5lUHJvbW90aW9uc1tdO1xuICAgICAgICBsZXQgbGluZVByb21vdGlvbkFycmF5ID0gW10gYXMgTGluZVByb21vdGlvbnNbXTtcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzICYmIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9tb3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5lUHJvbW90aW9uT2JqID0ge30gYXMgTGluZVByb21vdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlciA9IHt9IGFzIFRyaWdnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLml0ZW1MaW5lSWQgPSBwcm9kdWN0Lml0ZW1faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai50cmlnZ2VyID0gW10gYXMgVHJpZ2dlcltdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai50cmlnZ2VyLnB1c2godHJpZ2dlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmouaXRlbUxpbmVJZCA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uSWQgPSBwcm9tb3Rpb24ucHJvbW90aW9uX2lkID8gcHJvbW90aW9uLnByb21vdGlvbl9pZCA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudCAmJiBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlID8gcHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25BbW91bnQgPSBwcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyhwcm9tb3Rpb24ucHJpY2UpIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoubmFtZSA9IHByb21vdGlvbi5jb3Vwb25fY29kZSAgPyBwcm9tb3Rpb24uY291cG9uX2NvZGUgOiAocHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOicnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uSW5mbyA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvbkxpbmVQcmljZSA9IHByb2R1Y3QucHJpY2UgLSBNYXRoLmFicyhwcm9tb3Rpb24ucHJpY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbkFycmF5LnB1c2gobGluZVByb21vdGlvbk9iaik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbiA9IGxpbmVQcm9tb3Rpb25BcnJheTtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJsaW5lUHJvbW90aW9uXCIsIFwibGluZVByb21vdGlvbiBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cmFuc2FjdGlvblByb21vdGlvbigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ0cmFuc2FjdGlvblByb21vdGlvblwiLCBcInRyYW5zYWN0aW9uUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcblxuICAgICAgICBsZXQgdHJhbnNhY3Rpb25Qcm9tb3Rpb25BcnJheSA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zKHRoaXMub3JkZXJEZXRhaWxzKTtcblxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInRyYW5zYWN0aW9uUHJvbW90aW9uXCIsIFwidHJhbnNhY3Rpb25Qcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zKGJhc2tldCk6IFRyYW5zYWN0aW9uUHJvbW90aW9uW10ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkgPSBbXSBhcyBUcmFuc2FjdGlvblByb21vdGlvbltdO1xuICAgICAgICAgICAgaWYgKGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cyAmJiBiYXNrZXQub3JkZXJfcHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25Qcm9tb3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbk9iaiA9IHt9IGFzIFRyYW5zYWN0aW9uUHJvbW90aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoubmFtZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUgOiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24gLml0ZW1fdGV4dD90cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25BbW91bnQgPSB0cmFuc2FjdGlvblByb21vdGlvbi5wcmljZSA/IE1hdGguYWJzKHRyYW5zYWN0aW9uUHJvbW90aW9uLnByaWNlKSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5wcm9tb3Rpb25JZCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbl9pZCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbl9pZCA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uSW5mbyA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uVHlwZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQgJiYgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlIDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5pdGVtTGluZUlkcyA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubWFwKChwcm9kdWN0LCBpbmRleCkgPT4gaW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25fY29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnR5cGUgPSBQUk9NT1RJT05fVFlQRS5DT1VQT047XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouY291cG9uQ29kZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnN1YkxldmVsVHlwZSA9IFBST01PVElPTl9MRVZFTC5UUkFOU0FDVElPTjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkucHVzaCh0cmFuc2FjdGlvblByb21vdGlvbk9iaik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zXCIsIFwiZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zIDogXCIsIHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkpO1xuICAgICAgICAgICAgcmV0dXJuIHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXk7XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0Vycm9yKHRoaXMuY2xhc3NOYW1lLCBcImdldFRyYW5zYWN0aW9uUHJvbW90aW9uc1wiLCBcImZhaWxlZDpcIiwgZXJyb3IpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUxpbmVQcm9tb3Rpb25XaXRoQ291cG9uKCkge1xuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICBsZXQgdHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSB7fSBhcyBUcmFuc2FjdGlvblByb21vdGlvbjtcbiAgICAgICAgICAgIGxldCB0cmlnZ2VyUHJvbW90aW9uID0gW10gYXMgVHJpZ2dlcltdO1xuICAgICAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAocHJvZHVjdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzICYmIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHByb21vdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi5jb3Vwb25fY29kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmlnZ2VyID0ge30gYXMgVHJpZ2dlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLml0ZW1MaW5lSWQgPSBwcm9kdWN0Lml0ZW1faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5xdWFudGl0eSA9IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnRvdGFsUXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5wcm9tb3Rpb25BbW91bnQgPSBwcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyhwcm9tb3Rpb24ucHJpY2UpIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnJlZnVuZGVkUmVhc29uID0gcHJvbW90aW9uLmNvdXBvbl9jb2RlID8gcHJvbW90aW9uLmNvdXBvbl9jb2RlIDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uID0gcHJvbW90aW9uLml0ZW1fdGV4dCA/IHByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnByb21vdGlvbklkID0gcHJvbW90aW9uLnByb21vdGlvbl9pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyUHJvbW90aW9uLnB1c2godHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRyaWdnZXJQcm9tb3Rpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLmRpc3BsYXlUZXh0ID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbkRlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLm5hbWUgPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnJlZnVuZGVkUmVhc29uO1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbkFtb3VudCA9IC0odHJpZ2dlclByb21vdGlvbi5yZWR1Y2UoKG4sIHsgcHJvbW90aW9uQW1vdW50IH0pID0+IG4gKyBwcm9tb3Rpb25BbW91bnQsIDApKTtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25JZCA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucHJvbW90aW9uSWQ7XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uSW5mbyA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25Db2RlID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbjtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtTGluZUlkcyA9IFtdO1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnR5cGUgPSBQUk9NT1RJT05fVFlQRS5DT1VQT047XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uc3ViTGV2ZWxUeXBlID0gUFJPTU9USU9OX0xFVkVMLkxJTkU7XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24udHJpZ2dlciA9IHRyaWdnZXJQcm9tb3Rpb247XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInVwZGF0ZUxpbmVQcm9tb3Rpb25XaXRoQ291cG9uXCIsIFwidHJhbnNhY3Rpb25Qcm9tb3Rpb25cIiwgdHJhbnNhY3Rpb25Qcm9tb3Rpb24pO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldC50cmFuc2FjdGlvblByb21vdGlvbiApIHtcbiAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uUHJvbW90aW9uICYmIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbklkICkge1xuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLnB1c2godHJhbnNhY3Rpb25Qcm9tb3Rpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRXJyb3IodGhpcy5jbGFzc05hbWUsIFwidXBkYXRlTGluZVByb21vdGlvbldpdGhDb3Vwb25cIiwgXCJsaW5lUHJvbW90aW9uIG1hcHBpbmc9PiBmYWlsZWQ6XCIsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVUcmFuc2FjdGlvblByb21vdGlvblBydGlvbkNhbGMoKSB7XG4gICAgICAgIGlmICh0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gJiYgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmZvckVhY2godHIgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsYyh0aGlzLndlYlJldHVybk9iamVjdCAsIHRyKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsYyhcbiAgICAgICAgdHhEb2M6IFRyYW5zYWN0aW9uRG9jdW1lbnQsXG4gICAgICAgIHByb21vdGlvbjogVHJhbnNhY3Rpb25Qcm9tb3Rpb25cbiAgICApIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ0cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsY1wiLFxuICAgICAgICAgICAgYHRybnNhY3Rpb25Qcm9tb3Rpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgcHJvbW90aW9uXG4gICAgICAgICAgICApfWBcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHByb21vdGlvbi50eXBlID09PSBQUk9NT1RJT05fVFlQRS5DT1VQT04gJiYgcHJvbW90aW9uLnN1YkxldmVsVHlwZSA9PT0gUFJPTU9USU9OX0xFVkVMLkxJTkUpIHtcbiAgICAgICAgICAgIHR4RG9jLmJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMudmFsaWRhdGVQcm9kdWN0SXRlbURpc2NvdW50KHByb2R1Y3QpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi50cmlnZ2VyICYmIHByb21vdGlvbi50cmlnZ2VyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvbW90aW9uLnRyaWdnZXIuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQuaXRlbUxpbmVJZCA9PT0gcHJvZHVjdC5pdGVtTGluZUlkLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24gKz0gdC5wcm9tb3Rpb25BbW91bnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHhEb2MuYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy52YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdCk7XG4gICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcygrcHJvZHVjdC5pdGVtTGluZUlkKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0SXRlbSA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZmluZChwcm9kdWN0SXRlbSA9PiBwcm9kdWN0SXRlbS5wcm9kdWN0X2lkID09PSBwcm9kdWN0LlNLVSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uUHJvbW90aW9uUG9ydGlvbiA9IChwcm9kdWN0SXRlbSAmJiBwcm9kdWN0SXRlbS5wcmljZV9hZnRlcl9pdGVtX2Rpc2NvdW50ICYmIHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX29yZGVyX2Rpc2NvdW50KSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAocHJvZHVjdEl0ZW0ucHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudCAtIHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX29yZGVyX2Rpc2NvdW50KSA6IDA7XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiArPSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMih0cmFuc2FjdGlvblByb21vdGlvblBvcnRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERvYztcbiAgICB9XG5cbiAgICAgIFxuICAgICAgcHVibGljIHZhbGlkYXRlUHJvZHVjdEl0ZW1EaXNjb3VudChwcm9kdWN0OiBUUHJvZHVjdCkge1xuICAgICAgICBpZiAoIXByb2R1Y3QuaXRlbURpc2NvdW50cykge1xuICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cyA9IHtcbiAgICAgICAgICAgIHRybkRpc2NvdW50c1BvcnRpb246IDAsXG4gICAgICAgICAgICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjogMCxcbiAgICAgICAgICAgIHJlZnVuZFBvcnRpb246IDAsXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJvZHVjdDtcbiAgICAgIH1cbiAgICBcbiAgICAgIFxuICAgIGN1c3RvbWVyKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImN1c3RvbWVyXCIsIFwiY3VzdG9tZXIgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgICAgICBsZXQgY3VzdG9tZXJPYmogPSB7fSBhcyBDdXN0b21lcjtcbiAgICAgICAgY3VzdG9tZXJPYmouZW1haWwgPSB0aGlzLm9yZGVyRGV0YWlscy5jdXN0b21lcl9pbmZvICYmIHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8uZW1haWwgPyB0aGlzLm9yZGVyRGV0YWlscy5jdXN0b21lcl9pbmZvLmVtYWlsIDogJyc7XG4gICAgICAgIGN1c3RvbWVyT2JqLmZpcnN0TmFtZSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuZmlyc3RfbmFtZSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5maXJzdF9uYW1lIDogJyc7XG4gICAgICAgIGN1c3RvbWVyT2JqLmxhc3ROYW1lID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5sYXN0X25hbWUgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MubGFzdF9uYW1lIDogJyc7XG5cbiAgICAgICAgbGV0IHNoaXBwaW5nQWRkcmVzcyA9IFtdIGFzIEFkZHJlc3NbXTtcbiAgICAgICAgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICBzaGlwbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNoaXBwaW5nQWRkcmVzc09iaiA9IHt9IGFzIEFkZHJlc3M7XG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmlkID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5pZCA6ICcnO1xuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5jb3VudHJ5Q29kZSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jb3VudHJ5X2NvZGUgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA6ICcnO1xuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5hZGRyZXNzMSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5hZGRyZXNzMSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuYWRkcmVzczEgOiAnJztcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY2l0eSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5ID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5jaXR5IDogJyc7XG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNvdW50cnkgPSAnJztcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmoucG9zdENvZGUgPSBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGFsX2NvZGUgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLnBvc3RhbF9jb2RlIDogJyc7XG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzLnB1c2goc2hpcHBpbmdBZGRyZXNzT2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgICBjdXN0b21lck9iai5zaGlwcGluZ0FkZHJlc3MgPSBzaGlwcGluZ0FkZHJlc3M7XG5cbiAgICAgICAgbGV0IGJpbGxpbmdBZGRyZXNzID0gW10gYXMgQWRkcmVzc1tdO1xuICAgICAgICBsZXQgYmlsbGluZ0FkZHJlc3NPYmogPSB7fSBhcyBBZGRyZXNzO1xuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5pZCA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuaWQgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuaWQgOiAnJztcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY291bnRyeUNvZGUgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jb3VudHJ5X2NvZGUgOiAnJztcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouYWRkcmVzczEgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmFkZHJlc3MxIDogJyc7XG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNpdHkgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmNpdHkgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY2l0eSA6ICcnO1xuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5jb3VudHJ5ID0gJyc7XG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLnBvc3RDb2RlID0gJyc7XG4gICAgICAgIGJpbGxpbmdBZGRyZXNzLnB1c2goYmlsbGluZ0FkZHJlc3NPYmopO1xuICAgICAgICBjdXN0b21lck9iai5iaWxsaW5nQWRkcmVzcyA9IGJpbGxpbmdBZGRyZXNzO1xuXG4gICAgICAgIGxldCBzaGlwbWVudERldGFpbHMgPSBbXSBhcyBTaGlwbWVudERldGFpbHNbXTtcbiAgICAgICAgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICBzaGlwbWVudCA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IHNoaXBtZW50RGV0YWlsc09iaiA9IHt9IGFzIFNoaXBtZW50RGV0YWlscztcbiAgICAgICAgICAgICAgICBzaGlwbWVudERldGFpbHNPYmouaWQgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzT2JqLmRlbGl2ZXJ5R3JvdXAgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XG4gICAgICAgICAgICAgICAgc2hpcG1lbnREZXRhaWxzLnB1c2goc2hpcG1lbnREZXRhaWxzT2JqKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgY3VzdG9tZXJPYmouc2hpcG1lbnREZXRhaWxzID0gc2hpcG1lbnREZXRhaWxzO1xuXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmN1c3RvbWVyID0gY3VzdG9tZXJPYmo7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiY3VzdG9tZXJcIiwgXCJjdXN0b21lciBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBpc0luU3RvcmVPcmRlcigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJpc0luU3RvcmVPcmRlclwiLCBcImlzSW5TdG9yZU9yZGVyIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgaWYodGhpcy5vcmRlckRldGFpbHMuY19pc0luU3RvcmVPcmRlcikge1xuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaXNJblN0b3JlT3JkZXIgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiaXNJblN0b3JlT3JkZXJcIiwgXCJpc0luU3RvcmVPcmRlciBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscygpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1wiLCBcImV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgbGV0IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzID0gW10gYXMgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNbXTtcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cyAmJiB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAgICAgc2hpcG1lbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmogPSB7fSBhcyBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscztcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uSW5mbyA9IHt9IGFzIFRyYW5zYWN0aW9uSW5mbztcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmoudW5pcXVlSWQgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubyA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX25vIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLnByb3ZpZGVyVHlwZSA9IFBST1ZJREVSUy5TQUxFU0ZPUkNFO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbkluZm8uc2hpcHBpbmdJZCA9IHNoaXBtZW50LnNoaXBwaW5nX21ldGhvZCAmJiBzaGlwbWVudC5zaGlwcGluZ19tZXRob2QuaWQgPyBzaGlwbWVudC5zaGlwcGluZ19tZXRob2QuaWQgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JbmZvLmV4dGVybmFsU2hpcHBpbmdJZCA9IHNoaXBtZW50LnNoaXBtZW50X2lkID8gc2hpcG1lbnQuc2hpcG1lbnRfaWQgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmouZGV0YWlscyA9IHRyYW5zYWN0aW9uSW5mbztcbiAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMucHVzaChleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iaik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyA9IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzO1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzXCIsIFwiZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMgbWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdXBkYXRlVGF4QnJlYWtkb3duKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInVwZGF0ZVRheEJyZWFrZG93blwiLCBcIk1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICBcbiAgICAgICAgY29uc3QgdGF4TGluZXMgPSB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zXG4gICAgICAgICAgICAubWFwKChwcm9kdWN0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFZBVCA9IHByb2R1Y3QudGF4X3JhdGUgPyAocHJvZHVjdC50YXhfcmF0ZSAqIDEwMCkgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IFZBVENvZGUgPSBwcm9kdWN0LnRheF9jbGFzc19pZCB8fCAnJztcbiAgICBcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtTGluZUlkOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgICAgIFZBVCxcbiAgICAgICAgICAgICAgICAgICAgVkFUQ29kZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9KSB8fCBbXTtcbiAgICBcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0W1widGF4QnJlYWtkb3duXCJdID0ge1xuICAgICAgICAgICAgdGF4TGluZXNcbiAgICAgICAgfTtcbiAgICBcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ1cGRhdGVUYXhCcmVha2Rvd25cIiwgYE1hcHBlZCAke3RheExpbmVzLmxlbmd0aH0gdGF4IGxpbmVzLmApO1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInVwZGF0ZVRheEJyZWFrZG93blwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJhc2tldFN1bW1hcnkoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiYmFza2V0U3VtbWFyeVwiLCBcImJhc2tldFN1bW1hcnkgbWFwcGluZyBzdGFydGVkLi4uXCIpO1xuICAgICAgICBsZXQgYmFza2V0U3VtbWFyeSA9IHt9IGFzIEJhc2tldFN1bW1hcnk7XG4gICAgICAgIGxldCBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIgPSB7fSBhcyBCYXNrZXRTdW1tYXJ5RGV0YWlscztcbiAgICAgICAgY29uc3QgbGluZVByb21vdGlvblRvdGFsID0gdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LmxpbmVQcm9tb3Rpb24ubWFwKGxpbmVQcm9tb3Rpb24gPT4gbGluZVByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50VmFsdWUsIDApO1xuICAgICAgICBjb25zdCB0cmFuc2FjdGlvblByb21vdGlvblRvdGFsID0gdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLm1hcCh0cmFuc2FjdGlvblByb21vdGlvbiA9PiB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQpLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnRWYWx1ZSkgPT4gYWNjdW11bGF0b3IgKyBjdXJyZW50VmFsdWUsIDApO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LmRpc2NvdW50VG90YWwgPSBsaW5lUHJvbW90aW9uVG90YWwgKyB0cmFuc2FjdGlvblByb21vdGlvblRvdGFsO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LlZBVFRvdGFsID0gdGhpcy5vcmRlckRldGFpbHMudGF4X3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMudGF4X3RvdGFsIDogMDtcbiAgICAgICAgYmFza2V0U3VtbWFyeS5zYWxlVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsIDogMDtcbiAgICAgICAgYmFza2V0U3VtbWFyeS5iYXNrZXRUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LnRvdGFsSXRlbXMgPSB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zICYmIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubGVuZ3RoID4gMCA/IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubGVuZ3RoIDogMDtcbiAgICAgICAgYmFza2V0U3VtbWFyeS5zaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA6IDA7XG4gICAgICAgIGJhc2tldFN1bW1hcnkuYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIuc2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBwaW5nX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5V2ViT3JkZXIuYmFza2V0VG90YWxXaXRoU2hpcHBpbmdUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LndlYk9yZGVyID0gYmFza2V0U3VtbWFyeVdlYk9yZGVyO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRTdW1tYXJ5ID0gYmFza2V0U3VtbWFyeTtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJiYXNrZXRTdW1tYXJ5XCIsIFwiYmFza2V0U3VtbWFyeSBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBkZXZpY2VJZChkZXZpY2VJZCkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5kZXZpY2VJZCA9IGRldmljZUlkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0ZXJtaW5hbElkKHRlcm1pbmFsSWQpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudGVybWluYWxJZCA9IHRlcm1pbmFsSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIG9yZ0NvZGUob3JnQ29kZSkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5vcmdDb2RlID0gb3JnQ29kZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc3RvcmVJZChzdG9yZUlkKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlSWQgPSBzdG9yZUlkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzdG9yZU5vZGVJZChzdG9yZU5vZGVJZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZUlkID0gc3RvcmVOb2RlSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHN0b3JlTm9kZVN0cnVjdHVyZShzdG9yZU5vZGVTdHJ1Y3R1cmU6IHN0cmluZykge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdG9yZU5vZGVTdHJ1Y3R1cmUgPSBzdG9yZU5vZGVTdHJ1Y3R1cmU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGRvY0lkKGRvY0lkKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmlkID0gZG9jSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHVwZGF0ZVVzZXJJRCh1c2VySUQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VySWQgPSB1c2VySUQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHVwZGF0ZVVzZXJOYW1lKG5hbWUpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QudXNlck5hbWUgPSBuYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBidWlsZCgpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJidWlsZFwiLCBcIm1hcHBpbmcgZG9uZS4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXMud2ViUmV0dXJuT2JqZWN0O1xuICAgIH1cblxuICAgIGdldFVUQ0RhdGVUaW1lKGRhdGUpIHtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlKS50b0lTT1N0cmluZygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0QXZhaWxhYmxlUXR5KHN0YXR1czogYW55KTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHNoaXBwZWRRdHlzID0gMDtcbiAgICAgICAgbGV0IHJldHVybmVkUXR5cyA9IDA7XG5cbiAgICAgICAgaWYgKHN0YXR1cz8uU0hJUFBFRCkge1xuICAgICAgICAgICAgY29uc3Qgc2hpcHBlZCA9IE9iamVjdC52YWx1ZXMoc3RhdHVzLlNISVBQRUQpO1xuICAgICAgICAgICAgbGV0IHNoaXBwZWRRdHkgPSBzaGlwcGVkLnJlZHVjZSgobiwgeyBxdHkgfSkgPT4gbiArICgodHlwZW9mIHF0eSA9PSAnc3RyaW5nJykgPyArcXR5IDogcXR5KSwgMCk7XG4gICAgICAgICAgICBzaGlwcGVkUXR5cyArPSBOdW1iZXIoc2hpcHBlZFF0eSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoc3RhdHVzPy5SRVRVUk5FRCkge1xuICAgICAgICAgICAgY29uc3QgcmV0dXJuZWQgPSBPYmplY3QudmFsdWVzKHN0YXR1cy5SRVRVUk5FRCk7XG4gICAgICAgICAgICBsZXQgcmVmdW5kUXR5ID0gcmV0dXJuZWQucmVkdWNlKChuLCB7IHF0eSB9KSA9PiBuICsgKCh0eXBlb2YgcXR5ID09ICdzdHJpbmcnKSA/ICtxdHkgOiBxdHkpLCAwKTtcbiAgICAgICAgICAgIHJldHVybmVkUXR5cyArPSBOdW1iZXIocmVmdW5kUXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzaGlwcGVkUXR5cyAtIHJldHVybmVkUXR5cztcbiAgICB9XG59XG4iXX0=
|
|
446
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21hcHBlci1saWJyYXJ5L3NyYy9saWIvV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFGLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQWdDLFNBQVMsRUFBbUIsZ0JBQWdCLEVBQTJJLE1BQU0sd0JBQXdCLENBQUM7QUFDdFosT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFeEYsTUFBTSxPQUFPLHFDQUFxQztJQWtDOUMsWUFBWSxZQUEwQixFQUMxQixZQUEyQjtRQUEzQixpQkFBWSxHQUFaLFlBQVksQ0FBZTtRQWpDdkMsY0FBUyxHQUFHLHVDQUF1QyxDQUFDO1FBRTVDLG9CQUFlLEdBQXdCO1lBQzNDLEVBQUUsRUFBRSxFQUFFO1lBQ04sT0FBTyxFQUFFLEVBQUU7WUFDWCxPQUFPLEVBQUUsRUFBRTtZQUNYLFdBQVcsRUFBRSxFQUFFO1lBQ2Ysa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixRQUFRLEVBQUUsRUFBRTtZQUNaLFVBQVUsRUFBRSxFQUFFO1lBQ2QsZ0JBQWdCLEVBQUUsRUFBRTtZQUNwQixNQUFNLEVBQUUsS0FBSztZQUNiLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE1BQU0sRUFBRSxFQUFFO1lBQ1YsYUFBYSxFQUFFLEVBQUU7WUFDakIsWUFBWSxFQUFFLEVBQUU7WUFDaEIsUUFBUSxFQUFFO2dCQUNOLEVBQUUsRUFBRSxFQUFFO2dCQUNOLEtBQUssRUFBRSxFQUFFO2dCQUNULFNBQVMsRUFBRSxFQUFFO2dCQUNiLFFBQVEsRUFBRSxFQUFFO2dCQUNaLGNBQWMsRUFBRSxFQUFFO2dCQUNsQixlQUFlLEVBQUUsRUFBRTtnQkFDbkIsZUFBZSxFQUFFLEVBQUU7Z0JBQ25CLFNBQVMsRUFBRSxFQUFFO2dCQUNiLFFBQVEsRUFBRSxFQUFFO2dCQUNaLGtCQUFrQixFQUFFLEtBQUs7YUFDNUI7WUFDRCx5QkFBeUIsRUFBRSxFQUErQjtTQUM3RCxDQUFBO1FBRU0saUJBQVksR0FBRyxRQUFRLENBQUM7UUFJM0IsSUFBSSxZQUFZLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztTQUNwQztRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxxQkFBcUI7UUFDakIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUseUZBQXlGLENBQUMsQ0FBQztRQUM5SixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLFdBQVcsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUMvRCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQzNFLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHVCQUF1QixFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDckcsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELDRCQUE0QjtJQUM1QixxSUFBcUk7SUFDckksMkhBQTJIO0lBQzNILDZJQUE2STtJQUM3SSxvRkFBb0Y7SUFDcEYscUNBQXFDO0lBQ3JDLCtCQUErQjtJQUMvQiwrRkFBK0Y7SUFDL0YsMERBQTBEO0lBQzFELDJCQUEyQjtJQUMzQiwyREFBMkQ7SUFDM0Qsb0JBQW9CO0lBQ3BCLGdCQUFnQjtJQUNoQixhQUFhO0lBQ2IsZUFBZTtJQUNmLCtDQUErQztJQUMvQyxRQUFRO0lBQ1IsZ0lBQWdJO0lBQ2hJLG1CQUFtQjtJQUNuQixJQUFJO0lBRUosaUJBQWlCO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZFLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2pHLElBQUksbUJBQW1CO2dCQUFFLE9BQU8sZ0JBQWdCLENBQUMsYUFBYSxDQUFDOztnQkFDMUQsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7U0FDekM7YUFBTTtZQUNILE9BQU8sRUFBRSxDQUFDO1NBQ2I7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLFdBQVc7UUFDZixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDN0MsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9FLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FDbkMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxVQUFVLEdBQVE7b0JBQ2xCLFdBQVcsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUN2RCxHQUFHLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDakQsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pELGdCQUFnQixFQUFFLENBQUM7b0JBQ25CLEtBQUssRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNsRCxVQUFVLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO29CQUNsQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFO29CQUNuRCxjQUFjLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDcEQsQ0FBQTtnQkFDRCxJQUFJLENBQUEsV0FBVyxhQUFYLFdBQVcsdUJBQVgsV0FBVyxDQUFFLGlCQUFpQixFQUFFLE1BQUssU0FBUyxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO29CQUNuRixNQUFNLFlBQVksR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxlQUFlLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMvRyxVQUFVLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RFO2dCQUNELElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxFQUFFO29CQUMvQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7aUJBQzVEO1lBQ0wsQ0FBQyxDQUNKLENBQUM7U0FDTDtRQUNELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsQ0FBQyxDQUFDO1FBQ2pGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxhQUFhO1FBQ1QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsYUFBYSxHQUFHLEVBQXNCLENBQUM7UUFDbkUsSUFBSSxrQkFBa0IsR0FBRyxFQUFzQixDQUFDO1FBQ2hELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQ25DLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNmLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNuRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUM3QixDQUFDLFNBQVMsRUFBRSxFQUFFO3dCQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFOzRCQUN4QixJQUFJLGdCQUFnQixHQUFHLEVBQW9CLENBQUM7NEJBQzVDLElBQUksT0FBTyxHQUFHLEVBQWEsQ0FBQzs0QkFDNUIsT0FBTyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDOzRCQUNyQyxPQUFPLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDM0QsZ0JBQWdCLENBQUMsT0FBTyxHQUFHLEVBQWUsQ0FBQzs0QkFDM0MsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQzs0QkFFdkMsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7NEJBQ3hDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ3BGLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQzlFLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLElBQUksU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUN0SSxnQkFBZ0IsQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQzs0QkFDbkYsZ0JBQWdCLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7NEJBQ3pILGdCQUFnQixDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NEJBQ2hGLGdCQUFnQixDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2hGLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUM3QztvQkFDTCxDQUFDLENBQ0osQ0FBQztpQkFDTDtZQUNMLENBQUMsQ0FDSixDQUFDO1NBQ0w7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLENBQUM7UUFDL0QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO1FBRTdHLElBQUkseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVqRixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyx5QkFBeUIsQ0FBQztRQUM3RSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSx1Q0FBdUMsQ0FBQyxDQUFDO1FBQzNHLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxNQUFNO1FBQzNCLElBQUk7WUFDQSxJQUFJLHlCQUF5QixHQUFHLEVBQTRCLENBQUM7WUFDN0QsSUFBSSxNQUFNLENBQUMsdUJBQXVCLElBQUksTUFBTSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdFLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQ2xDLENBQUMsb0JBQW9CLEVBQUUsRUFBRTtvQkFDckIsSUFBSSx1QkFBdUIsR0FBRyxFQUEwQixDQUFDO29CQUV6RCx1QkFBdUIsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDM0csdUJBQXVCLENBQUMsSUFBSSxHQUFHLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDNUssdUJBQXVCLENBQUMsZUFBZSxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNoSCx1QkFBdUIsQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDakgsdUJBQXVCLENBQUMsYUFBYSxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQzdHLHVCQUF1QixDQUFDLGFBQWEsR0FBRyxvQkFBb0IsQ0FBQyxnQkFBZ0IsSUFBSSxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUM5Syx1QkFBdUIsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN6RyxJQUFJLG9CQUFvQixDQUFDLFdBQVcsRUFBRTt3QkFDbEMsdUJBQXVCLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7d0JBQ3JELHVCQUF1QixDQUFDLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7d0JBQ3RFLHVCQUF1QixDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDO3FCQUN0RTtvQkFDRCx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQztnQkFDNUQsQ0FBQyxDQUNKLENBQUM7YUFDTDtZQUdELGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDBCQUEwQixFQUFFLDZCQUE2QixFQUFFLHlCQUF5QixDQUFDLENBQUM7WUFDaEksT0FBTyx5QkFBeUIsQ0FBQztTQUNwQztRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ1osZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsMEJBQTBCLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3hGLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsNkJBQTZCO1FBQ3pCLElBQUk7WUFFQSxJQUFJLG9CQUFvQixHQUFHLEVBQTBCLENBQUM7WUFDdEQsSUFBSSxnQkFBZ0IsR0FBRyxFQUFlLENBQUM7WUFDdkMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO2dCQUMvRSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQ25DLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUNmLE9BQU8sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBRXpDLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNuRSxPQUFPLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUM3QixDQUFDLFNBQVMsRUFBRSxFQUFFOzRCQUNWLElBQUksU0FBUyxDQUFDLFdBQVcsRUFBRTtnQ0FDdkIsSUFBSSxPQUFPLEdBQUcsRUFBYSxDQUFDO2dDQUM1QixPQUFPLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0NBQ3JDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUMzRCxPQUFPLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDaEUsT0FBTyxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUMxRSxPQUFPLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQ0FDNUUsT0FBTyxDQUFDLHlCQUF5QixHQUFHLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQ0FDbkYsT0FBTyxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDO2dDQUM3QyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7NkJBQ2xDO3dCQUNMLENBQUMsQ0FDSixDQUFDO3FCQUNMO2dCQUNMLENBQUMsQ0FDSixDQUFDO2FBQ0w7WUFFRCxJQUFJLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzdCLG9CQUFvQixDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQztnQkFDakYsb0JBQW9CLENBQUMsSUFBSSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQztnQkFDL0Qsb0JBQW9CLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLGVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0SCxvQkFBb0IsQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO2dCQUNuRSxvQkFBb0IsQ0FBQyxhQUFhLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUM7Z0JBQ25GLG9CQUFvQixDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7Z0JBQ3JFLG9CQUFvQixDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLG9CQUFvQixDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsTUFBTSxDQUFDO2dCQUNsRCxvQkFBb0IsQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQztnQkFDekQsb0JBQW9CLENBQUMsT0FBTyxHQUFHLGdCQUFnQixDQUFDO2FBQ25EO1lBQ0QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsK0JBQStCLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztZQUV6SCxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLG9CQUFvQixHQUFHLEVBQUUsQ0FBQzthQUN6RDtZQUVELElBQUksb0JBQW9CLElBQUksb0JBQW9CLENBQUMsV0FBVyxFQUFFO2dCQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUMvRTtZQUVELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNaLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLCtCQUErQixFQUFFLGlDQUFpQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3JILE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDMUI7SUFDTCxDQUFDO0lBRUQsb0NBQW9DO1FBQ2hDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUVqSCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1lBQ3pFLENBQUMsQ0FBQyxDQUFBO1NBQ0w7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsc0NBQXNDLENBQ2xDLEtBQTBCLEVBQzFCLFNBQStCO1FBRS9CLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLHdDQUF3QyxFQUM5RSx3QkFBd0IsSUFBSSxDQUFDLFNBQVMsQ0FDbEMsU0FBUyxDQUNaLEVBQUUsQ0FDTixDQUFDO1FBQ0YsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLFlBQVksS0FBSyxlQUFlLENBQUMsSUFBSSxFQUFFO1lBQzdGLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN0QyxPQUFPLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVwRCxJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNuRCxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUM1QixJQUFJLENBQUMsQ0FBQyxVQUFVLEtBQUssT0FBTyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRTs0QkFDaEQsT0FBTyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDO3lCQUNuRTtvQkFDTCxDQUFDLENBQUMsQ0FBQztpQkFDTjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFDSTtZQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUN0QyxPQUFPLEdBQUcsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUNwRCxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO29CQUNyRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDaEgsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMseUJBQXlCLElBQUksV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQzt3QkFDbEksQ0FBQyxXQUFXLENBQUMseUJBQXlCLEdBQUcsV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDekYsT0FBTyxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLDJCQUEyQixDQUFDLENBQUM7aUJBQ3JIO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDTjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFHTSwyQkFBMkIsQ0FBQyxPQUFpQjtRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUN4QixPQUFPLENBQUMsYUFBYSxHQUFHO2dCQUNwQixtQkFBbUIsRUFBRSxDQUFDO2dCQUN0QixvQkFBb0IsRUFBRSxDQUFDO2dCQUN2QixhQUFhLEVBQUUsQ0FBQzthQUNuQixDQUFDO1NBQ0w7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO0lBR0QsUUFBUTtRQUNKLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3JGLElBQUksV0FBVyxHQUFHLEVBQWMsQ0FBQztRQUNqQyxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUksV0FBVyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlKLFdBQVcsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUUzSixJQUFJLGVBQWUsR0FBRyxFQUFlLENBQUM7UUFDdEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUMvQixRQUFRLENBQUMsRUFBRTtZQUNQLElBQUksa0JBQWtCLEdBQUcsRUFBYSxDQUFDO1lBQ3ZDLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RILGtCQUFrQixDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25KLGtCQUFrQixDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3hJLGtCQUFrQixDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsZ0JBQWdCLElBQUksUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzVILGtCQUFrQixDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDaEMsa0JBQWtCLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDOUksZUFBZSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FDSixDQUFBO1FBQ0QsV0FBVyxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFFOUMsSUFBSSxjQUFjLEdBQUcsRUFBZSxDQUFDO1FBQ3JDLElBQUksaUJBQWlCLEdBQUcsRUFBYSxDQUFDO1FBQ3RDLGlCQUFpQixDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdJLGlCQUFpQixDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzFLLGlCQUFpQixDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQy9KLGlCQUFpQixDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25KLGlCQUFpQixDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDL0IsaUJBQWlCLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNoQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkMsV0FBVyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7UUFFNUMsSUFBSSxlQUFlLEdBQUcsRUFBdUIsQ0FBQztRQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQy9CLFFBQVEsQ0FBQyxFQUFFO1lBQ1AsSUFBSSxrQkFBa0IsR0FBRyxFQUFxQixDQUFDO1lBQy9DLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekUsa0JBQWtCLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRixlQUFlLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDN0MsQ0FBQyxDQUNKLENBQUM7UUFDRixXQUFXLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUU5QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7UUFDNUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDbkYsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxjQUF1QjtRQUNsQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1FBRWpHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxHQUFHLGNBQWMsSUFBSSxLQUFLLENBQUM7UUFFOUQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztRQUMvRixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsMEJBQTBCO1FBQ3RCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLDRCQUE0QixFQUFFLCtDQUErQyxDQUFDLENBQUM7UUFDekgsSUFBSSwwQkFBMEIsR0FBRyxFQUFrQyxDQUFDO1FBQ3BFLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQy9CLFFBQVEsQ0FBQyxFQUFFO2dCQUNQLElBQUksNkJBQTZCLEdBQUcsRUFBZ0MsQ0FBQztnQkFDckUsSUFBSSxlQUFlLEdBQUcsRUFBcUIsQ0FBQztnQkFDNUMsNkJBQTZCLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0Ryw2QkFBNkIsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQztnQkFDbEUsZUFBZSxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN4SCxlQUFlLENBQUMsa0JBQWtCLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0Riw2QkFBNkIsQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDO2dCQUN4RCwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNuRSxDQUFDLENBQ0osQ0FBQztTQUNMO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQywwQkFBMEIsR0FBRywwQkFBMEIsQ0FBQztRQUM3RSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSw0QkFBNEIsRUFBRSw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ3ZILE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7UUFDZCxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBRXRGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYTthQUMzQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDcEIsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUM7WUFFM0MsT0FBTztnQkFDSCxVQUFVLEVBQUUsS0FBSyxHQUFHLENBQUM7Z0JBQ3JCLEdBQUc7Z0JBQ0gsT0FBTzthQUNWLENBQUM7UUFDTixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFYixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBRztZQUMxQyxRQUFRO1NBQ1gsQ0FBQztRQUVGLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLG9CQUFvQixFQUFFLFVBQVUsUUFBUSxDQUFDLE1BQU0sYUFBYSxDQUFDLENBQUM7UUFDeEcsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUVwRixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsYUFBYTtRQUNULGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsRUFBRSxrQ0FBa0MsQ0FBQyxDQUFDO1FBQy9GLElBQUksYUFBYSxHQUFHLEVBQW1CLENBQUM7UUFDeEMsSUFBSSxxQkFBcUIsR0FBRyxFQUEwQixDQUFDO1FBQ3ZELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlMLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsWUFBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLEdBQUcsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFOLGFBQWEsQ0FBQyxhQUFhLEdBQUcsa0JBQWtCLEdBQUcseUJBQXlCLENBQUM7UUFDN0UsYUFBYSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2RixhQUFhLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzVGLGFBQWEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsYUFBYSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0SixhQUFhLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RHLGFBQWEsQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRyxxQkFBcUIsQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUcscUJBQXFCLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkgsYUFBYSxDQUFDLFFBQVEsR0FBRyxxQkFBcUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkQsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsZUFBZSxFQUFFLGdDQUFnQyxDQUFDLENBQUM7UUFDN0YsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFFBQVEsQ0FBQyxRQUFRO1FBQ2IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBVTtRQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFPO1FBQ1gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLENBQUMsT0FBTztRQUNYLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsV0FBVyxDQUFDLFdBQW1CO1FBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUMvQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsa0JBQTBCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFJO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxLQUFLO1FBQ0QsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDdEUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBSTtRQUNmLElBQUksSUFBSSxFQUFFO1lBQ04sT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUN2QztJQUNMLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBVztRQUN2QixJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBRXJCLElBQUksTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sRUFBRTtZQUNqQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QyxJQUFJLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxHQUFHLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNoRyxXQUFXLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxFQUFFO1lBQ2xCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2hELElBQUksU0FBUyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLFlBQVksSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLFdBQVcsR0FBRyxZQUFZLENBQUM7SUFDdEMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VycmVuY3lQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQWRkcmVzcywgQmFza2V0U3VtbWFyeSwgQmFza2V0U3VtbWFyeURldGFpbHMsIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHMsIEN1c3RvbWVyLCBERUxJVkVSWV9NRVRIT0RTLCBQUk9NT1RJT05fTEVWRUwsIFBST01PVElPTl9UWVBFLCBJTklUSUFUSU5HX01PRFVMRSwgTGluZVByb21vdGlvbnMsIE9yZGVyRGV0YWlscywgUFJPVklERVJTLCBTaGlwbWVudERldGFpbHMsIFRSQU5TQUNUSU9OX1RZUEUsIFRyYW5zYWN0aW9uRG9jdW1lbnQsIFRyYW5zYWN0aW9uSW5mbywgVHJhbnNhY3Rpb25Qcm9tb3Rpb24sIFRyaWdnZXIsIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzLCBUUHJvZHVjdCwgUmVmdW5kUHJvZHVjdENoYW5nZSwgUHJvZHVjdCB9IGZyb20gXCIuL21hcHBlci1saWJyYXJ5Lm1vZGVsXCI7XG5pbXBvcnQgeyBOdW1iZXJVdGlsU2VydmljZSB9IGZyb20gXCIuL251bWJlci11dGlsLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFwcExvZ2dlclNlcnZpY2UgfSBmcm9tICdAcG1jcmV0YWlsL2NvbW1vbi1zZXJ2aWNlcy9jb21tb24vYXBwLWxvZ2dlci5zZXJ2aWNlJztcblxuZXhwb3J0IGNsYXNzIFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3Mge1xuXG4gICAgY2xhc3NOYW1lID0gXCJXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzXCI7XG4gICAgcHJpdmF0ZSBvcmRlckRldGFpbHM6IE9yZGVyRGV0YWlscztcbiAgICBwcml2YXRlIHdlYlJldHVybk9iamVjdDogVHJhbnNhY3Rpb25Eb2N1bWVudCA9IHtcbiAgICAgICAgaWQ6ICcnLFxuICAgICAgICBvcmdDb2RlOiBcIlwiLFxuICAgICAgICBzdG9yZUlkOiBcIlwiLFxuICAgICAgICBzdG9yZU5vZGVJZDogXCJcIixcbiAgICAgICAgc3RvcmVOb2RlU3RydWN0dXJlOiBcIlwiLFxuICAgICAgICBkZXZpY2VJZDogXCJcIixcbiAgICAgICAgdGVybWluYWxJZDogXCJcIixcbiAgICAgICAgaW5pdGlhdGluZ01vZHVsZTogXCJcIixcbiAgICAgICAgZXhwb3J0OiBmYWxzZSxcbiAgICAgICAgaXNJblN0b3JlT3JkZXI6IGZhbHNlLFxuICAgICAgICBiYXNrZXQ6IHt9LFxuICAgICAgICBiYXNrZXRTdW1tYXJ5OiB7fSxcbiAgICAgICAgYmFzZUN1cnJlbmN5OiBcIlwiLFxuICAgICAgICBjdXN0b21lcjoge1xuICAgICAgICAgICAgaWQ6ICcnLFxuICAgICAgICAgICAgZW1haWw6ICcnLFxuICAgICAgICAgICAgZmlyc3ROYW1lOiAnJyxcbiAgICAgICAgICAgIGxhc3ROYW1lOiAnJyxcbiAgICAgICAgICAgIGJpbGxpbmdBZGRyZXNzOiBbXSxcbiAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzczogW10sXG4gICAgICAgICAgICBzaGlwbWVudERldGFpbHM6IFtdLFxuICAgICAgICAgICAgdGVsZXBob25lOiAnJyxcbiAgICAgICAgICAgIHBvc3RDb2RlOiAnJyxcbiAgICAgICAgICAgIG5vQ3VzdG9tZXJTZWxlY3RlZDogZmFsc2VcbiAgICAgICAgfSxcbiAgICAgICAgY3VycmVudFRyYW5zYWN0aW9uRGV0YWlsczoge30gYXMgQ3VycmVudFRyYW5zYWN0aW9uRGV0YWlsc1xuICAgIH1cbiAgICBudW1iZXJVdGlsU2VydmljZTogYW55O1xuICAgIHB1YmxpYyBTVE9SRV9QUkVGSVggPSAnc3RvcmVAJztcbiAgICBjb25zdHJ1Y3RvcihvcmRlckRldGFpbHM6IE9yZGVyRGV0YWlscyxcbiAgICAgICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU/OiBDdXJyZW5jeVBpcGVcbiAgICApIHtcbiAgICAgICAgaWYgKG9yZGVyRGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5vcmRlckRldGFpbHMgPSBvcmRlckRldGFpbHM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5udW1iZXJVdGlsU2VydmljZSA9IG5ldyBOdW1iZXJVdGlsU2VydmljZShjdXJyZW5jeVBpcGUpO1xuICAgIH1cblxuICAgIHdlYlJldHVybkNvbW1vbk1hcHBlcigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ3ZWJSZXR1cm5Db21tb25NYXBwZXJcIiwgXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogd2ViUmV0dXJuQ29tbW9uTWFwcGVyIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Wyd0eXBlJ10gPSBUUkFOU0FDVElPTl9UWVBFLldFQl9SRVRVUk5TO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdFsnZGF0ZXRpbWUnXSA9IHRoaXMuZ2V0VVRDRGF0ZVRpbWUodGhpcy5vcmRlckRldGFpbHMubGFzdF9tb2RpZmllZCk7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2VDdXJyZW5jeSA9IHRoaXMub3JkZXJEZXRhaWxzLmN1cnJlbmN5O1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5zdWJzaWRpYXJ5SWQgPSAnMSc7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IHRydWU7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmluaXRpYXRpbmdNb2R1bGUgPSBJTklUSUFUSU5HX01PRFVMRS5FQkFTS0VUO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5jcmVhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmNyZWF0aW9uX2RhdGUpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51cGRhdGVkQXQgPSB0aGlzLmdldFVUQ0RhdGVUaW1lKHRoaXMub3JkZXJEZXRhaWxzLmxhc3RfbW9kaWZpZWQpO1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50cmFuc0NvbXBsZXRlZEF0ID0gdGhpcy5nZXRVVENEYXRlVGltZSh0aGlzLm9yZGVyRGV0YWlscy5sYXN0X21vZGlmaWVkKTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3RbJ2V4dGVybmFsVHJhbnNhY3Rpb25JZCddID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfbm87XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwid2ViUmV0dXJuQ29tbW9uTWFwcGVyXCIsIFwid2ViUmV0dXJuQ29tbW9uTWFwcGVyIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBleHBvcnQoc3RhdHVzLCBkZXRhaWxzKSB7XG4gICAgLy8gICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IGV4cG9ydCBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgLy8gICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiTWFwcGVyIGxpYnJhcnk6IFdlYlJldHVyblNhbGVzZm9yY2VNYXBwZXJCdWlsZGVyQ2xhc3M6IHN0YXR1czpcIiwgc3RhdHVzKTtcbiAgICAvLyAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJNYXBwZXIgbGlicmFyeTogV2ViUmV0dXJuU2FsZXNmb3JjZU1hcHBlckJ1aWxkZXJDbGFzczogZGV0YWlsczpcIiwgSlNPTi5zdHJpbmdpZnkoZGV0YWlscykpO1xuICAgIC8vICAgICBpZiAoc3RhdHVzICYmIGRldGFpbHMgJiYgZGV0YWlscy5wcm92aWRlcnMgJiYgZGV0YWlscy5wcm92aWRlcnMubGVuZ3RoID4gMCkge1xuICAgIC8vICAgICAgICAgZGV0YWlscy5wcm92aWRlcnMuZm9yRWFjaChcbiAgICAvLyAgICAgICAgICAgICBwcm92aWRlck9iaiA9PiB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGlmIChwcm92aWRlck9iai5wcm92aWRlciAmJiBwcm92aWRlck9iai5wcm92aWRlciA9PT0gUFJPVklERVJTLlNBTEVTRk9SQ0UpIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmV4cG9ydCA9IHRydWU7XG4gICAgLy8gICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSBmYWxzZTtcbiAgICAvLyAgICAgICAgICAgICAgICAgfVxuICAgIC8vICAgICAgICAgICAgIH1cbiAgICAvLyAgICAgICAgICk7XG4gICAgLy8gICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5leHBvcnQgPSBmYWxzZTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcIk1hcHBlciBsaWJyYXJ5OiBXZWJSZXR1cm5TYWxlc2ZvcmNlTWFwcGVyQnVpbGRlckNsYXNzOiBleHBvcnQgbWFwcGluZyBlbmQuLi5cIilcbiAgICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gICAgLy8gfVxuXG4gICAgZ2V0RGVsaXZlcnlNZXRob2QoKSB7XG4gICAgICAgIGlmICh0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMgJiYgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IHNoaXBUb1N0b3JlU2hpcG1lbnQgPSB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMuZmluZChzaGlwbWVudCA9PiBzaGlwbWVudC5jX2Zyb21TdG9yZUlkKTtcbiAgICAgICAgICAgIGlmIChzaGlwVG9TdG9yZVNoaXBtZW50KSByZXR1cm4gREVMSVZFUllfTUVUSE9EUy5TSElQX1RPX1NUT1JFO1xuICAgICAgICAgICAgZWxzZSByZXR1cm4gREVMSVZFUllfTUVUSE9EUy5ERUxJVkVSWTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb2R1Y3Qoc3VicHJvdmlkZXIpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJwcm9kdWN0XCIsIFwicHJvZHVjdCBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFsncHJvZHVjdHMnXSA9IFtdO1xuICAgICAgICBpZiAodGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAocHJvZHVjdCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb2R1Y3RPYmo6IGFueSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBwcm9kdWN0Lml0ZW1fdGV4dCA/IHByb2R1Y3QuaXRlbV90ZXh0IDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBTS1U6IHByb2R1Y3QucHJvZHVjdF9pZCA/IHByb2R1Y3QucHJvZHVjdF9pZCA6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcXVhbnRpdHk6IHByb2R1Y3QucXVhbnRpdHkgPyBwcm9kdWN0LnF1YW50aXR5IDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnVuZGVkUXVhbnRpdHk6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmljZTogcHJvZHVjdC5iYXNlX3ByaWNlID8gcHJvZHVjdC5iYXNlX3ByaWNlIDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IChpbmRleCArIDEpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxpdmVyeU1ldGhvZDogdGhpcy5nZXREZWxpdmVyeU1ldGhvZCgpLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0b3RhbExpbmVQcmljZTogcHJvZHVjdC5wcmljZSA/IHByb2R1Y3QucHJpY2UgOiAwXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN1YnByb3ZpZGVyPy50b0xvY2FsZVVwcGVyQ2FzZSgpID09PSBQUk9WSURFUlMuU0FMRVNGT1JDRV9PU1UudG9Mb2NhbGVVcHBlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlUXR5ID0gcHJvZHVjdD8uY19vc3VPYmplY3REYXRhID8gdGhpcy5nZXRBdmFpbGFibGVRdHkoSlNPTi5wYXJzZShwcm9kdWN0Py5jX29zdU9iamVjdERhdGEpKSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0T2JqLmF2YWlsYWJsZVF1YW50aXR5ID0gYXZhaWxhYmxlUXR5ID4gMCA/IGF2YWlsYWJsZVF0eSA6IDA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb2R1Y3QgJiYgcHJvZHVjdC5wcmljZSAhPSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXRbJ3Byb2R1Y3RzJ10ucHVzaChwcm9kdWN0T2JqKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJwcm9kdWN0XCIsIFwicHJvZHVjdCBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBsaW5lUHJvbW90aW9uKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImxpbmVQcm9tb3Rpb25cIiwgXCJsaW5lUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LmxpbmVQcm9tb3Rpb24gPSBbXSBhcyBMaW5lUHJvbW90aW9uc1tdO1xuICAgICAgICBsZXQgbGluZVByb21vdGlvbkFycmF5ID0gW10gYXMgTGluZVByb21vdGlvbnNbXTtcbiAgICAgICAgaWYgKHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLmZvckVhY2goXG4gICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbV9pZCA9IChpbmRleCArIDEpLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzICYmIHByb2R1Y3QucHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9tb3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5lUHJvbW90aW9uT2JqID0ge30gYXMgTGluZVByb21vdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlciA9IHt9IGFzIFRyaWdnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLml0ZW1MaW5lSWQgPSBwcm9kdWN0Lml0ZW1faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyLnF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai50cmlnZ2VyID0gW10gYXMgVHJpZ2dlcltdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai50cmlnZ2VyLnB1c2godHJpZ2dlcik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmouaXRlbUxpbmVJZCA9IGluZGV4ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uSWQgPSBwcm9tb3Rpb24ucHJvbW90aW9uX2lkID8gcHJvbW90aW9uLnByb21vdGlvbl9pZCA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudCAmJiBwcm9tb3Rpb24uYXBwbGllZF9kaXNjb3VudC50eXBlID8gcHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbk9iai5wcm9tb3Rpb25BbW91bnQgPSBwcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyhwcm9tb3Rpb24ucHJpY2UpIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoubmFtZSA9IHByb21vdGlvbi5jb3Vwb25fY29kZSA/IHByb21vdGlvbi5jb3Vwb25fY29kZSA6IChwcm9tb3Rpb24uaXRlbV90ZXh0ID8gcHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVQcm9tb3Rpb25PYmoucHJvbW90aW9uSW5mbyA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lUHJvbW90aW9uT2JqLnByb21vdGlvbkxpbmVQcmljZSA9IHByb2R1Y3QucHJpY2UgLSBNYXRoLmFicyhwcm9tb3Rpb24ucHJpY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVByb21vdGlvbkFycmF5LnB1c2gobGluZVByb21vdGlvbk9iaik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbiA9IGxpbmVQcm9tb3Rpb25BcnJheTtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJsaW5lUHJvbW90aW9uXCIsIFwibGluZVByb21vdGlvbiBtYXBwaW5nIGVuZGVkLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cmFuc2FjdGlvblByb21vdGlvbigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ0cmFuc2FjdGlvblByb21vdGlvblwiLCBcInRyYW5zYWN0aW9uUHJvbW90aW9uIG1hcHBpbmcgc3RhcnRlZC4uLlwiKTtcblxuICAgICAgICBsZXQgdHJhbnNhY3Rpb25Qcm9tb3Rpb25BcnJheSA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zKHRoaXMub3JkZXJEZXRhaWxzKTtcblxuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInRyYW5zYWN0aW9uUHJvbW90aW9uXCIsIFwidHJhbnNhY3Rpb25Qcm9tb3Rpb24gbWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZ2V0VHJhbnNhY3Rpb25Qcm9tb3Rpb25zKGJhc2tldCk6IFRyYW5zYWN0aW9uUHJvbW90aW9uW10ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uQXJyYXkgPSBbXSBhcyBUcmFuc2FjdGlvblByb21vdGlvbltdO1xuICAgICAgICAgICAgaWYgKGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cyAmJiBiYXNrZXQub3JkZXJfcHJpY2VfYWRqdXN0bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGJhc2tldC5vcmRlcl9wcmljZV9hZGp1c3RtZW50cy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgICAgICAodHJhbnNhY3Rpb25Qcm9tb3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvblByb21vdGlvbk9iaiA9IHt9IGFzIFRyYW5zYWN0aW9uUHJvbW90aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5kaXNwbGF5VGV4dCA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLml0ZW1fdGV4dCA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoubmFtZSA9IHRyYW5zYWN0aW9uUHJvbW90aW9uLmNvdXBvbl9jb2RlID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUgOiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbV90ZXh0ID8gdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbV90ZXh0IDogJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uQW1vdW50ID0gdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJpY2UgPyBNYXRoLmFicyh0cmFuc2FjdGlvblByb21vdGlvbi5wcmljZSkgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmoucHJvbW90aW9uSWQgPSB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25faWQgPyB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25faWQgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvbkluZm8gPSB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgPyB0cmFuc2FjdGlvblByb21vdGlvbi5pdGVtX3RleHQgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLnByb21vdGlvblR5cGUgPSB0cmFuc2FjdGlvblByb21vdGlvbi5hcHBsaWVkX2Rpc2NvdW50ICYmIHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA/IHRyYW5zYWN0aW9uUHJvbW90aW9uLmFwcGxpZWRfZGlzY291bnQudHlwZSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmouaXRlbUxpbmVJZHMgPSB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zLm1hcCgocHJvZHVjdCwgaW5kZXgpID0+IGluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai50eXBlID0gUFJPTU9USU9OX1RZUEUuQ09VUE9OO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uT2JqLmNvdXBvbkNvZGUgPSB0cmFuc2FjdGlvblByb21vdGlvbi5jb3Vwb25fY29kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbk9iai5zdWJMZXZlbFR5cGUgPSBQUk9NT1RJT05fTEVWRUwuVFJBTlNBQ1RJT047XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5LnB1c2godHJhbnNhY3Rpb25Qcm9tb3Rpb25PYmopO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImdldFRyYW5zYWN0aW9uUHJvbW90aW9uc1wiLCBcImdldFRyYW5zYWN0aW9uUHJvbW90aW9ucyA6IFwiLCB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5KTtcbiAgICAgICAgICAgIHJldHVybiB0cmFuc2FjdGlvblByb21vdGlvbkFycmF5O1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dFcnJvcih0aGlzLmNsYXNzTmFtZSwgXCJnZXRUcmFuc2FjdGlvblByb21vdGlvbnNcIiwgXCJmYWlsZWQ6XCIsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVMaW5lUHJvbW90aW9uV2l0aENvdXBvbigpIHtcbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uUHJvbW90aW9uID0ge30gYXMgVHJhbnNhY3Rpb25Qcm9tb3Rpb247XG4gICAgICAgICAgICBsZXQgdHJpZ2dlclByb21vdGlvbiA9IFtdIGFzIFRyaWdnZXJbXTtcbiAgICAgICAgICAgIGlmICh0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zICYmIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZm9yRWFjaChcbiAgICAgICAgICAgICAgICAgICAgKHByb2R1Y3QsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1faWQgPSAoaW5kZXggKyAxKS50b1N0cmluZygpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJvZHVjdC5wcmljZV9hZGp1c3RtZW50cyAmJiBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0LnByaWNlX2FkanVzdG1lbnRzLmZvckVhY2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwcm9tb3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9tb3Rpb24uY291cG9uX2NvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHJpZ2dlciA9IHt9IGFzIFRyaWdnZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5pdGVtTGluZUlkID0gcHJvZHVjdC5pdGVtX2lkO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucXVhbnRpdHkgPSBwcm9kdWN0LnF1YW50aXR5ID8gcHJvZHVjdC5xdWFudGl0eSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci50b3RhbFF1YW50aXR5ID0gcHJvZHVjdC5xdWFudGl0eSA/IHByb2R1Y3QucXVhbnRpdHkgOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucHJvbW90aW9uQW1vdW50ID0gcHJvbW90aW9uLnByaWNlID8gTWF0aC5hYnMocHJvbW90aW9uLnByaWNlKSA6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5yZWZ1bmRlZFJlYXNvbiA9IHByb21vdGlvbi5jb3Vwb25fY29kZSA/IHByb21vdGlvbi5jb3Vwb25fY29kZSA6ICcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIucmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbiA9IHByb21vdGlvbi5pdGVtX3RleHQgPyBwcm9tb3Rpb24uaXRlbV90ZXh0IDogJyc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlci5wcm9tb3Rpb25JZCA9IHByb21vdGlvbi5wcm9tb3Rpb25faWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlclByb21vdGlvbi5wdXNoKHRyaWdnZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0cmlnZ2VyUHJvbW90aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5kaXNwbGF5VGV4dCA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5uYW1lID0gdHJpZ2dlclByb21vdGlvblswXS5yZWZ1bmRlZFJlYXNvbjtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi5wcm9tb3Rpb25BbW91bnQgPSAtKHRyaWdnZXJQcm9tb3Rpb24ucmVkdWNlKChuLCB7IHByb21vdGlvbkFtb3VudCB9KSA9PiBuICsgcHJvbW90aW9uQW1vdW50LCAwKSk7XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24ucHJvbW90aW9uSWQgPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnByb21vdGlvbklkO1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbkluZm8gPSB0cmlnZ2VyUHJvbW90aW9uWzBdLnJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb247XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uY291cG9uQ29kZSA9IHRyaWdnZXJQcm9tb3Rpb25bMF0ucmVmdW5kZWRSZWFzb247XG4gICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24uaXRlbUxpbmVJZHMgPSBbXTtcbiAgICAgICAgICAgICAgICB0cmFuc2FjdGlvblByb21vdGlvbi50eXBlID0gUFJPTU9USU9OX1RZUEUuQ09VUE9OO1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnN1YkxldmVsVHlwZSA9IFBST01PVElPTl9MRVZFTC5MSU5FO1xuICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uUHJvbW90aW9uLnRyaWdnZXIgPSB0cmlnZ2VyUHJvbW90aW9uO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ1cGRhdGVMaW5lUHJvbW90aW9uV2l0aENvdXBvblwiLCBcInRyYW5zYWN0aW9uUHJvbW90aW9uXCIsIHRyYW5zYWN0aW9uUHJvbW90aW9uKTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRyYW5zYWN0aW9uUHJvbW90aW9uICYmIHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbklkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLnB1c2godHJhbnNhY3Rpb25Qcm9tb3Rpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRXJyb3IodGhpcy5jbGFzc05hbWUsIFwidXBkYXRlTGluZVByb21vdGlvbldpdGhDb3Vwb25cIiwgXCJsaW5lUHJvbW90aW9uIG1hcHBpbmc9PiBmYWlsZWQ6XCIsIGVycm9yKTtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVUcmFuc2FjdGlvblByb21vdGlvblBydGlvbkNhbGMoKSB7XG4gICAgICAgIGlmICh0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24gJiYgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmxlbmd0aCA+IDApIHtcblxuICAgICAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuYmFza2V0LnRyYW5zYWN0aW9uUHJvbW90aW9uLmZvckVhY2godHIgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNhY3Rpb25Qcm9tb3Rpb25Qcm9kdWN0UG9ydGlvbkNhbGModGhpcy53ZWJSZXR1cm5PYmplY3QsIHRyKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICB0cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsYyhcbiAgICAgICAgdHhEb2M6IFRyYW5zYWN0aW9uRG9jdW1lbnQsXG4gICAgICAgIHByb21vdGlvbjogVHJhbnNhY3Rpb25Qcm9tb3Rpb25cbiAgICApIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ0cmFuc2FjdGlvblByb21vdGlvblByb2R1Y3RQb3J0aW9uQ2FsY1wiLFxuICAgICAgICAgICAgYHRybnNhY3Rpb25Qcm9tb3Rpb246ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgICAgICAgcHJvbW90aW9uXG4gICAgICAgICAgICApfWBcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHByb21vdGlvbi50eXBlID09PSBQUk9NT1RJT05fVFlQRS5DT1VQT04gJiYgcHJvbW90aW9uLnN1YkxldmVsVHlwZSA9PT0gUFJPTU9USU9OX0xFVkVMLkxJTkUpIHtcbiAgICAgICAgICAgIHR4RG9jLmJhc2tldC5wcm9kdWN0cy5mb3JFYWNoKChwcm9kdWN0KSA9PiB7XG4gICAgICAgICAgICAgICAgcHJvZHVjdCA9IHRoaXMudmFsaWRhdGVQcm9kdWN0SXRlbURpc2NvdW50KHByb2R1Y3QpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi50cmlnZ2VyICYmIHByb21vdGlvbi50cmlnZ2VyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvbW90aW9uLnRyaWdnZXIuZm9yRWFjaCgodCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQuaXRlbUxpbmVJZCA9PT0gcHJvZHVjdC5pdGVtTGluZUlkLnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0Lml0ZW1EaXNjb3VudHMudHJuUHJvbW90aW9uc1BvcnRpb24gKz0gdC5wcm9tb3Rpb25BbW91bnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdHhEb2MuYmFza2V0LnByb2R1Y3RzLmZvckVhY2goKHByb2R1Y3QpID0+IHtcbiAgICAgICAgICAgICAgICBwcm9kdWN0ID0gdGhpcy52YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdCk7XG4gICAgICAgICAgICAgICAgaWYgKHByb21vdGlvbi5pdGVtTGluZUlkcy5pbmNsdWRlcygrcHJvZHVjdC5pdGVtTGluZUlkKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcm9kdWN0SXRlbSA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMuZmluZChwcm9kdWN0SXRlbSA9PiBwcm9kdWN0SXRlbS5wcm9kdWN0X2lkID09PSBwcm9kdWN0LlNLVSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uUHJvbW90aW9uUG9ydGlvbiA9IChwcm9kdWN0SXRlbSAmJiBwcm9kdWN0SXRlbS5wcmljZV9hZnRlcl9pdGVtX2Rpc2NvdW50ICYmIHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX29yZGVyX2Rpc2NvdW50KSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAocHJvZHVjdEl0ZW0ucHJpY2VfYWZ0ZXJfaXRlbV9kaXNjb3VudCAtIHByb2R1Y3RJdGVtLnByaWNlX2FmdGVyX29yZGVyX2Rpc2NvdW50KSA6IDA7XG4gICAgICAgICAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cy50cm5Qcm9tb3Rpb25zUG9ydGlvbiArPSB0aGlzLm51bWJlclV0aWxTZXJ2aWNlLnRyaW1UbzJEZWNpbWFsMih0cmFuc2FjdGlvblByb21vdGlvblBvcnRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERvYztcbiAgICB9XG5cblxuICAgIHB1YmxpYyB2YWxpZGF0ZVByb2R1Y3RJdGVtRGlzY291bnQocHJvZHVjdDogVFByb2R1Y3QpIHtcbiAgICAgICAgaWYgKCFwcm9kdWN0Lml0ZW1EaXNjb3VudHMpIHtcbiAgICAgICAgICAgIHByb2R1Y3QuaXRlbURpc2NvdW50cyA9IHtcbiAgICAgICAgICAgICAgICB0cm5EaXNjb3VudHNQb3J0aW9uOiAwLFxuICAgICAgICAgICAgICAgIHRyblByb21vdGlvbnNQb3J0aW9uOiAwLFxuICAgICAgICAgICAgICAgIHJlZnVuZFBvcnRpb246IDAsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcm9kdWN0O1xuICAgIH1cblxuXG4gICAgY3VzdG9tZXIoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiY3VzdG9tZXJcIiwgXCJjdXN0b21lciBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIGxldCBjdXN0b21lck9iaiA9IHt9IGFzIEN1c3RvbWVyO1xuICAgICAgICBjdXN0b21lck9iai5lbWFpbCA9IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8gJiYgdGhpcy5vcmRlckRldGFpbHMuY3VzdG9tZXJfaW5mby5lbWFpbCA/IHRoaXMub3JkZXJEZXRhaWxzLmN1c3RvbWVyX2luZm8uZW1haWwgOiAnJztcbiAgICAgICAgY3VzdG9tZXJPYmouZmlyc3ROYW1lID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5maXJzdF9uYW1lID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmZpcnN0X25hbWUgOiAnJztcbiAgICAgICAgY3VzdG9tZXJPYmoubGFzdE5hbWUgPSB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MgJiYgdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmxhc3RfbmFtZSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5sYXN0X25hbWUgOiAnJztcblxuICAgICAgICBsZXQgc2hpcHBpbmdBZGRyZXNzID0gW10gYXMgQWRkcmVzc1tdO1xuICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMuZm9yRWFjaChcbiAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc2hpcHBpbmdBZGRyZXNzT2JqID0ge30gYXMgQWRkcmVzcztcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouaWQgPSBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzICYmIHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuaWQgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmlkIDogJyc7XG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmNvdW50cnlDb2RlID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlIDogJyc7XG4gICAgICAgICAgICAgICAgc2hpcHBpbmdBZGRyZXNzT2JqLmFkZHJlc3MxID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmFkZHJlc3MxID8gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5hZGRyZXNzMSA6ICcnO1xuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5jaXR5ID0gc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcyAmJiBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNpdHkgPyBzaGlwbWVudC5zaGlwcGluZ19hZGRyZXNzLmNpdHkgOiAnJztcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3NPYmouY291bnRyeSA9ICcnO1xuICAgICAgICAgICAgICAgIHNoaXBwaW5nQWRkcmVzc09iai5wb3N0Q29kZSA9IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MgJiYgc2hpcG1lbnQuc2hpcHBpbmdfYWRkcmVzcy5wb3N0YWxfY29kZSA/IHNoaXBtZW50LnNoaXBwaW5nX2FkZHJlc3MucG9zdGFsX2NvZGUgOiAnJztcbiAgICAgICAgICAgICAgICBzaGlwcGluZ0FkZHJlc3MucHVzaChzaGlwcGluZ0FkZHJlc3NPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgICAgIGN1c3RvbWVyT2JqLnNoaXBwaW5nQWRkcmVzcyA9IHNoaXBwaW5nQWRkcmVzcztcblxuICAgICAgICBsZXQgYmlsbGluZ0FkZHJlc3MgPSBbXSBhcyBBZGRyZXNzW107XG4gICAgICAgIGxldCBiaWxsaW5nQWRkcmVzc09iaiA9IHt9IGFzIEFkZHJlc3M7XG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmlkID0gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzICYmIHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5pZCA6ICcnO1xuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5jb3VudHJ5Q29kZSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY291bnRyeV9jb2RlID8gdGhpcy5vcmRlckRldGFpbHMuYmlsbGluZ19hZGRyZXNzLmNvdW50cnlfY29kZSA6ICcnO1xuICAgICAgICBiaWxsaW5nQWRkcmVzc09iai5hZGRyZXNzMSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuYWRkcmVzczEgPyB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuYWRkcmVzczEgOiAnJztcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmouY2l0eSA9IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcyAmJiB0aGlzLm9yZGVyRGV0YWlscy5iaWxsaW5nX2FkZHJlc3MuY2l0eSA/IHRoaXMub3JkZXJEZXRhaWxzLmJpbGxpbmdfYWRkcmVzcy5jaXR5IDogJyc7XG4gICAgICAgIGJpbGxpbmdBZGRyZXNzT2JqLmNvdW50cnkgPSAnJztcbiAgICAgICAgYmlsbGluZ0FkZHJlc3NPYmoucG9zdENvZGUgPSAnJztcbiAgICAgICAgYmlsbGluZ0FkZHJlc3MucHVzaChiaWxsaW5nQWRkcmVzc09iaik7XG4gICAgICAgIGN1c3RvbWVyT2JqLmJpbGxpbmdBZGRyZXNzID0gYmlsbGluZ0FkZHJlc3M7XG5cbiAgICAgICAgbGV0IHNoaXBtZW50RGV0YWlscyA9IFtdIGFzIFNoaXBtZW50RGV0YWlsc1tdO1xuICAgICAgICB0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMuZm9yRWFjaChcbiAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgc2hpcG1lbnREZXRhaWxzT2JqID0ge30gYXMgU2hpcG1lbnREZXRhaWxzO1xuICAgICAgICAgICAgICAgIHNoaXBtZW50RGV0YWlsc09iai5pZCA9IHNoaXBtZW50LnNoaXBtZW50X2lkID8gc2hpcG1lbnQuc2hpcG1lbnRfaWQgOiAnJztcbiAgICAgICAgICAgICAgICBzaGlwbWVudERldGFpbHNPYmouZGVsaXZlcnlHcm91cCA9IHNoaXBtZW50LnNoaXBtZW50X2lkID8gc2hpcG1lbnQuc2hpcG1lbnRfaWQgOiAnJztcbiAgICAgICAgICAgICAgICBzaGlwbWVudERldGFpbHMucHVzaChzaGlwbWVudERldGFpbHNPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgICBjdXN0b21lck9iai5zaGlwbWVudERldGFpbHMgPSBzaGlwbWVudERldGFpbHM7XG5cbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuY3VzdG9tZXIgPSBjdXN0b21lck9iajtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJjdXN0b21lclwiLCBcImN1c3RvbWVyIG1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGlzSW5TdG9yZU9yZGVyKGlzSW5TdG9yZU9yZGVyOiBib29sZWFuKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiaXNJblN0b3JlT3JkZXJcIiwgXCJpc0luU3RvcmVPcmRlciBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG5cbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaXNJblN0b3JlT3JkZXIgPSBpc0luU3RvcmVPcmRlciB8fCBmYWxzZTtcblxuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImlzSW5TdG9yZU9yZGVyXCIsIFwiaXNJblN0b3JlT3JkZXIgbWFwcGluZyBlbmRlZC4uLlwiKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMoKSB7XG4gICAgICAgIEFwcExvZ2dlclNlcnZpY2UubG9nRGVidWcodGhpcy5jbGFzc05hbWUsIFwiZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNcIiwgXCJleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIGxldCBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscyA9IFtdIGFzIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzW107XG4gICAgICAgIGlmICh0aGlzLm9yZGVyRGV0YWlscy5zaGlwbWVudHMgJiYgdGhpcy5vcmRlckRldGFpbHMuc2hpcG1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3JkZXJEZXRhaWxzLnNoaXBtZW50cy5mb3JFYWNoKFxuICAgICAgICAgICAgICAgIHNoaXBtZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqID0ge30gYXMgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHM7XG4gICAgICAgICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvbkluZm8gPSB7fSBhcyBUcmFuc2FjdGlvbkluZm87XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLnVuaXF1ZUlkID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfbm8gPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl9ubyA6ICcnO1xuICAgICAgICAgICAgICAgICAgICBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc09iai5wcm92aWRlclR5cGUgPSBQUk9WSURFUlMuU0FMRVNGT1JDRTtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb25JbmZvLnNoaXBwaW5nSWQgPSBzaGlwbWVudC5zaGlwcGluZ19tZXRob2QgJiYgc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kLmlkID8gc2hpcG1lbnQuc2hpcHBpbmdfbWV0aG9kLmlkIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uSW5mby5leHRlcm5hbFNoaXBwaW5nSWQgPSBzaGlwbWVudC5zaGlwbWVudF9pZCA/IHNoaXBtZW50LnNoaXBtZW50X2lkIDogJyc7XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzT2JqLmRldGFpbHMgPSB0cmFuc2FjdGlvbkluZm87XG4gICAgICAgICAgICAgICAgICAgIGV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzLnB1c2goZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHNPYmopO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMgPSBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlscztcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1wiLCBcImV4dGVybmFsVHJhbnNhY3Rpb25EZXRhaWxzIG1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHVwZGF0ZVRheEJyZWFrZG93bigpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ1cGRhdGVUYXhCcmVha2Rvd25cIiwgXCJNYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG5cbiAgICAgICAgY29uc3QgdGF4TGluZXMgPSB0aGlzLm9yZGVyRGV0YWlscy5wcm9kdWN0X2l0ZW1zXG4gICAgICAgICAgICAubWFwKChwcm9kdWN0LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IFZBVCA9IHByb2R1Y3QudGF4X3JhdGUgPyAocHJvZHVjdC50YXhfcmF0ZSAqIDEwMCkgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IFZBVENvZGUgPSBwcm9kdWN0LnRheF9jbGFzc19pZCB8fCAnJztcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1MaW5lSWQ6IGluZGV4ICsgMSxcbiAgICAgICAgICAgICAgICAgICAgVkFULFxuICAgICAgICAgICAgICAgICAgICBWQVRDb2RlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pIHx8IFtdO1xuXG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFtcInRheEJyZWFrZG93blwiXSA9IHtcbiAgICAgICAgICAgIHRheExpbmVzXG4gICAgICAgIH07XG5cbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJ1cGRhdGVUYXhCcmVha2Rvd25cIiwgYE1hcHBlZCAke3RheExpbmVzLmxlbmd0aH0gdGF4IGxpbmVzLmApO1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcInVwZGF0ZVRheEJyZWFrZG93blwiLCBcIk1hcHBpbmcgZW5kZWQuLi5cIik7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgYmFza2V0U3VtbWFyeSgpIHtcbiAgICAgICAgQXBwTG9nZ2VyU2VydmljZS5sb2dEZWJ1Zyh0aGlzLmNsYXNzTmFtZSwgXCJiYXNrZXRTdW1tYXJ5XCIsIFwiYmFza2V0U3VtbWFyeSBtYXBwaW5nIHN0YXJ0ZWQuLi5cIik7XG4gICAgICAgIGxldCBiYXNrZXRTdW1tYXJ5ID0ge30gYXMgQmFza2V0U3VtbWFyeTtcbiAgICAgICAgbGV0IGJhc2tldFN1bW1hcnlXZWJPcmRlciA9IHt9IGFzIEJhc2tldFN1bW1hcnlEZXRhaWxzO1xuICAgICAgICBjb25zdCBsaW5lUHJvbW90aW9uVG90YWwgPSB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQubGluZVByb21vdGlvbi5tYXAobGluZVByb21vdGlvbiA9PiBsaW5lUHJvbW90aW9uLnByb21vdGlvbkFtb3VudCkucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiBhY2N1bXVsYXRvciArIGN1cnJlbnRWYWx1ZSwgMCk7XG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uUHJvbW90aW9uVG90YWwgPSB0aGlzLndlYlJldHVybk9iamVjdC5iYXNrZXQudHJhbnNhY3Rpb25Qcm9tb3Rpb24ubWFwKHRyYW5zYWN0aW9uUHJvbW90aW9uID0+IHRyYW5zYWN0aW9uUHJvbW90aW9uLnByb21vdGlvbkFtb3VudCkucmVkdWNlKChhY2N1bXVsYXRvciwgY3VycmVudFZhbHVlKSA9PiBhY2N1bXVsYXRvciArIGN1cnJlbnRWYWx1ZSwgMCk7XG4gICAgICAgIGJhc2tldFN1bW1hcnkuZGlzY291bnRUb3RhbCA9IGxpbmVQcm9tb3Rpb25Ub3RhbCArIHRyYW5zYWN0aW9uUHJvbW90aW9uVG90YWw7XG4gICAgICAgIGJhc2tldFN1bW1hcnkuVkFUVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy50YXhfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy50YXhfdG90YWwgOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LnNhbGVUb3RhbCA9IHRoaXMub3JkZXJEZXRhaWxzLm9yZGVyX3RvdGFsID8gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LmJhc2tldFRvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XG4gICAgICAgIGJhc2tldFN1bW1hcnkudG90YWxJdGVtcyA9IHRoaXMub3JkZXJEZXRhaWxzLnByb2R1Y3RfaXRlbXMgJiYgdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggPiAwID8gdGhpcy5vcmRlckRldGFpbHMucHJvZHVjdF9pdGVtcy5sZW5ndGggOiAwO1xuICAgICAgICBiYXNrZXRTdW1tYXJ5LnNoaXBwaW5nVG90YWwgPSB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA/IHRoaXMub3JkZXJEZXRhaWxzLnNoaXBwaW5nX3RvdGFsIDogMDtcbiAgICAgICAgYmFza2V0U3VtbWFyeS5iYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XG4gICAgICAgIGJhc2tldFN1bW1hcnlXZWJPcmRlci5zaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMuc2hpcHBpbmdfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5zaGlwcGluZ190b3RhbCA6IDA7XG4gICAgICAgIGJhc2tldFN1bW1hcnlXZWJPcmRlci5iYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsID0gdGhpcy5vcmRlckRldGFpbHMub3JkZXJfdG90YWwgPyB0aGlzLm9yZGVyRGV0YWlscy5vcmRlcl90b3RhbCA6IDA7XG4gICAgICAgIGJhc2tldFN1bW1hcnkud2ViT3JkZXIgPSBiYXNrZXRTdW1tYXJ5V2ViT3JkZXI7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmJhc2tldFN1bW1hcnkgPSBiYXNrZXRTdW1tYXJ5O1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImJhc2tldFN1bW1hcnlcIiwgXCJiYXNrZXRTdW1tYXJ5IG1hcHBpbmcgZW5kZWQuLi5cIik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGRldmljZUlkKGRldmljZUlkKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LmRldmljZUlkID0gZGV2aWNlSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHRlcm1pbmFsSWQodGVybWluYWxJZCkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC50ZXJtaW5hbElkID0gdGVybWluYWxJZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgb3JnQ29kZShvcmdDb2RlKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0Lm9yZ0NvZGUgPSBvcmdDb2RlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBzdG9yZUlkKHN0b3JlSWQpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVJZCA9IHN0b3JlSWQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHN0b3JlTm9kZUlkKHN0b3JlTm9kZUlkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3Quc3RvcmVOb2RlSWQgPSBzdG9yZU5vZGVJZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc3RvcmVOb2RlU3RydWN0dXJlKHN0b3JlTm9kZVN0cnVjdHVyZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnN0b3JlTm9kZVN0cnVjdHVyZSA9IHN0b3JlTm9kZVN0cnVjdHVyZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZG9jSWQoZG9jSWQpIHtcbiAgICAgICAgdGhpcy53ZWJSZXR1cm5PYmplY3QuaWQgPSBkb2NJZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdXBkYXRlVXNlcklEKHVzZXJJRDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMud2ViUmV0dXJuT2JqZWN0LnVzZXJJZCA9IHVzZXJJRDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgdXBkYXRlVXNlck5hbWUobmFtZSkge1xuICAgICAgICB0aGlzLndlYlJldHVybk9iamVjdC51c2VyTmFtZSA9IG5hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGJ1aWxkKCkge1xuICAgICAgICBBcHBMb2dnZXJTZXJ2aWNlLmxvZ0RlYnVnKHRoaXMuY2xhc3NOYW1lLCBcImJ1aWxkXCIsIFwibWFwcGluZyBkb25lLi4uXCIpO1xuICAgICAgICByZXR1cm4gdGhpcy53ZWJSZXR1cm5PYmplY3Q7XG4gICAgfVxuXG4gICAgZ2V0VVRDRGF0ZVRpbWUoZGF0ZSkge1xuICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRBdmFpbGFibGVRdHkoc3RhdHVzOiBhbnkpOiBudW1iZXIge1xuICAgICAgICBsZXQgc2hpcHBlZFF0eXMgPSAwO1xuICAgICAgICBsZXQgcmV0dXJuZWRRdHlzID0gMDtcblxuICAgICAgICBpZiAoc3RhdHVzPy5TSElQUEVEKSB7XG4gICAgICAgICAgICBjb25zdCBzaGlwcGVkID0gT2JqZWN0LnZhbHVlcyhzdGF0dXMuU0hJUFBFRCk7XG4gICAgICAgICAgICBsZXQgc2hpcHBlZFF0eSA9IHNoaXBwZWQucmVkdWNlKChuLCB7IHF0eSB9KSA9PiBuICsgKCh0eXBlb2YgcXR5ID09ICdzdHJpbmcnKSA/ICtxdHkgOiBxdHkpLCAwKTtcbiAgICAgICAgICAgIHNoaXBwZWRRdHlzICs9IE51bWJlcihzaGlwcGVkUXR5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdGF0dXM/LlJFVFVSTkVEKSB7XG4gICAgICAgICAgICBjb25zdCByZXR1cm5lZCA9IE9iamVjdC52YWx1ZXMoc3RhdHVzLlJFVFVSTkVEKTtcbiAgICAgICAgICAgIGxldCByZWZ1bmRRdHkgPSByZXR1cm5lZC5yZWR1Y2UoKG4sIHsgcXR5IH0pID0+IG4gKyAoKHR5cGVvZiBxdHkgPT0gJ3N0cmluZycpID8gK3F0eSA6IHF0eSksIDApO1xuICAgICAgICAgICAgcmV0dXJuZWRRdHlzICs9IE51bWJlcihyZWZ1bmRRdHkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHNoaXBwZWRRdHlzIC0gcmV0dXJuZWRRdHlzO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -29,6 +29,7 @@ export var PROVIDERS;
|
|
|
29
29
|
PROVIDERS["MAGENTO"] = "Magento";
|
|
30
30
|
PROVIDERS["MAGENTO2"] = "Magento2";
|
|
31
31
|
PROVIDERS["SALESFORCE_OSU"] = "SalesforceOSU";
|
|
32
|
+
PROVIDERS["SALESFORCE_XML"] = "SalesforceXML";
|
|
32
33
|
})(PROVIDERS || (PROVIDERS = {}));
|
|
33
34
|
export var PROMOTION_LEVEL;
|
|
34
35
|
(function (PROMOTION_LEVEL) {
|
|
@@ -39,4 +40,4 @@ export var PROMOTION_TYPE;
|
|
|
39
40
|
(function (PROMOTION_TYPE) {
|
|
40
41
|
PROMOTION_TYPE["COUPON"] = "COUPON";
|
|
41
42
|
})(PROMOTION_TYPE || (PROMOTION_TYPE = {}));
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL21hcHBlci1saWJyYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLHFDQUFpQixDQUFBO0lBQ2pCLCtDQUEyQixDQUFBO0lBQzNCLG1EQUErQixDQUFBO0lBQy9CLGlDQUFhLENBQUE7SUFDYiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBUFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU8zQjtBQVNELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0RBQVksQ0FBQTtJQUNaLGlFQUFhLENBQUE7SUFDYixtRkFBc0IsQ0FBQTtJQUN0Qix5RUFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQWdqQkQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFvQkQsTUFBTSxDQUFOLElBQVksaUJBRVg7QUFGRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBRlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUU1QjtBQWdMRCxNQUFNLENBQU4sSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLHNDQUF5QixDQUFBO0lBQ3pCLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLDZDQUFnQyxDQUFBO0FBQ2xDLENBQUMsRUFMVyxTQUFTLEtBQVQsU0FBUyxRQUtwQjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFFekIsZ0NBQVcsQ0FBQTtJQUNYLDhDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFFeEIsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IGVudW0gVFJBTlNBQ1RJT05fVFlQRSB7XG4gIFNBTEUgPSBcIlNBTEVcIixcbiAgUkVGVU5EID0gXCJSRUZVTkRcIixcbiAgU0FMRV9SRUZVTkQgPSBcIlNBTEVfUkVGVU5EXCIsXG4gIFNBTEVfRVhDSEFOR0UgPSBcIlNBTEVfRVhDSEFOR0VcIixcbiAgVk9JRCA9IFwiVk9JRFwiLFxuICBXRUJfUkVUVVJOUyA9IFwiV0VCX1JFVFVSTlNcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EaXNjb3VudCB7XG4gIHRybkRpc2NvdW50c1BvcnRpb246IG51bWJlcjtcbiAgdHJuUHJvbW90aW9uc1BvcnRpb246IG51bWJlcjtcbiAgcmVmdW5kUG9ydGlvbjogbnVtYmVyO1xuICBjdXJyZW50UmVmdW5kUG9ydGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gREVMSVZFUllfTUVUSE9EUyB7XG4gIERFTElWRVJZID0gMSxcbiAgRFJPUF9TSElQID0gMixcbiAgQ09MTEVDVF9GUk9NX1NUT1JFID0gMyxcbiAgU0hJUF9UT19TVE9SRSA9IDRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0Q2hhbmdlIHtcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcbiAgU0tVOiBzdHJpbmc7XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIHNlbGVjdGVkUHJpY2U/OiBudW1iZXI7XG4gIGxpbmVEaXNjb3VudD86IExpbmVEaXNjb3VudDtcbiAgbGluZVByb21vdGlvbnM/OiBMaW5lUHJvbW90aW9ucztcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZTtcbiAgcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjsgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250YWlucyBxdWFudGl0eSBvZiBib3RoIGZ1bGwgcHJpY2VkIGFuZCBwcm9tb3Rpb25hbCBxdWFudGl0aWVzXG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcbiAgcmVmdW5kZWQ/OiBib29sZWFuO1xuICByZWZ1bmRlZFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaXNDaGVja2VkPzogYm9vbGVhbjtcbiAgc2VhbGVkPzogYm9vbGVhbjtcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9kdWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFByb2R1Y3RDaGFuZ2Uge1xuICBpdGVtTGluZUlkPzogbnVtYmVyO1xuICBzdGF0dXM6IG51bWJlcjtcbiAgc3ViR3JvdXA6IG51bWJlcjtcbiAgYnJhbmQ6IHN0cmluZztcbiAgY3VycmVuY3k6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgY291bnRyeW9mT3JpZ2luOiBzdHJpbmc7XG4gIHByb2R1Y3RJZDogc3RyaW5nO1xuICBwcm9kdWN0VHlwZTogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBpbWFnZVVybHM6IFtzdHJpbmddO1xuICBpc0ltYWdlRmFpbFRvTG9hZD86IGJvb2xlYW47XG4gIHNpemU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzZWFzb246IG51bWJlcjtcbiAgcHJvZHVjdEdyb3VwOiBudW1iZXI7XG4gIHN0eWxlQ29kZTogc3RyaW5nO1xuICBub2RlU3RydWN0dXJlOiBOb2RlU3RydWN0dXJlW107XG4gIGJhcmNvZGU6IHN0cmluZztcbiAgcHJpY2U6IFByaWNlW107XG4gIGNvbG91cjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBhZGRlZEluQmFza2V0PzogYm9vbGVhbjtcbiAgc2VsZWN0ZWRWQVQ/OiBudW1iZXI7XG4gIHNlbGVjdGVkVkFUQ29kZT86IHN0cmluZztcbiAgc2VsZWN0ZWRSUlBQcmljZT86IG51bWJlcjtcbiAgbGluZURpc2NvdW50PzogTGluZURpc2NvdW50O1xuICBleGNoYW5nZT86IEV4Y2hhbmdlO1xuICAvLyByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xuICAvLyByZWZ1bmRlZD86IGJvb2xlYW47XG4gIC8vIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XG4gIC8vIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OnN0cmluZztcbiAgLy8gaXNDaGVja2VkPzpib29sZWFuO1xuICByZWZ1bmRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyOyAgICAgICAgICAgICAgIC8vIHByb21vdGlvbmFsIHF1YW50aXR5XG4gIGV4Y2hhbmdlUmVhc29uPzogc3RyaW5nO1xuICBleGNoYW5nZVF1YW50aXR5PzogbnVtYmVyO1xuICBpdGVtRGlzY291bnRzOiBJdGVtRGlzY291bnQ7XG5cbiAgZ2lmdENhcmROdW1iZXJJc3N1ZWQ/OiBzdHJpbmc7XG4gIGdpZnRDYXJkQW1vdW50PzogbnVtYmVyO1xuICBnaWZ0Q2FyZFJlY2lwaWVudEVtYWlsPzogc3RyaW5nO1xuICBnaWZ0Q2FyZEV4cGlyeURhdGU/OiBzdHJpbmc7XG4gIGdpZnRDYXJkUmVjaXBpZW50TmFtZT86IHN0cmluZztcbiAgZ2lmdENhcmQ/OiBib29sZWFuO1xuXG4gIGRpc2NvdW50YWJsZTogYm9vbGVhbjtcbiAgLy8gc2VhbGVkPzpib29sZWFuO1xuICBleGNsdWRlUHJvbW90aW9uOiBib29sZWFuO1xuICBjYXRlZ29yaWVzOiBDYXRlZ29yaWVzW107XG4gIGRlc2NyaXB0aW9uczogRGVzY3JpcHRpb25zW107XG4gIGJhcmNvZGVzOiBzdHJpbmdbXTtcblxuICAvL05ldyBGZWlsZHNcbiAgZXh0ZXJuYWxJZDogc3RyaW5nO1xuICBjcmVhdGVkRGF0ZTogc3RyaW5nO1xuICB1cGRhdGVkRGF0ZTogc3RyaW5nO1xuICBjcmVhdGVkQnk6IHN0cmluZztcbiAgdXBkYXRlZEJ5OiBzdHJpbmc7XG4gIGF0dHJpYnV0ZXM6IENvcmVBdHRyaWJ1dGVbXTtcbiAgaWQ6IHN0cmluZztcbiAgbG9uZ19kZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8vIE1peGVkIFNhbGVzIGZpZWxkc1xuICBpc1dlYk9yZGVyPzogYm9vbGVhbixcbiAgZnVsbGZpbG1lbnRJZDogc3RyaW5nLFxuICBmdWxsZmlsbWVudExvY2F0aW9uTmFtZT86IHN0cmluZyxcbiAgZGVsaXZlcnlNZXRob2Q/OiBzdHJpbmcsXG4gIGRlbGl2ZXJ5R3JvdXA/OiBzdHJpbmcsXG4gIHNlbGVjdGVkSW52ZW50b3J5PzogSW52ZW50b3J5SW5mbztcbiAgbGVhZFRpbWU/OiBsZWFkVGltZTtcblxuICAvL25ldyBvbmUgZm9yIG9zdSBwcm92aWRlclxuICBhdmFpbGFibGVRdWFudGl0eT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgbGVhZFRpbWUge1xuICB0eXBlOiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNoYW5nZSB7XG4gIGV4Y2hhbmdlSWQ6IG51bWJlcixcbiAgbGluZUl0ZW1JZDogbnVtYmVyLFxuICByZWFzb246IHN0cmluZyxcbiAgcXVhbnRpdHk6IG51bWJlcixcbiAgbmV3SXRlbXM6IFByb2R1Y3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yaWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgcGFyZW50SWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBzdHJpbmc7XG4gIHN0YXR1czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29yZUF0dHJpYnV0ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNrZXRcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldCB7XG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcbiAgcHJvZHVjdHM6IFByb2R1Y3RbXTtcbiAgdHJhbnNhY3Rpb25EaXNjb3VudDogYW55W107XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG4gIHNhbGVUb3RhbDogbnVtYmVyO1xuICBkaXNjb3VudFRvdGFsPzogbnVtYmVyO1xuICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICBvZmZsaW5lVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XG4gIGJhc2tldFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRUb3RhbD86IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24/OiBUcmFuc2FjdGlvblByb21vdGlvbltdO1xuICBjdXN0b21lcj86IGFueTtcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZVtdO1xuICBpblN0b3JlRmxhZz86IGJvb2xlYW5cbn1cblxuXG5cbi8qKlxuICogUHJpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XG4gIFZBVDogbnVtYmVyO1xuICBWQVRDb2RlOiBzdHJpbmc7XG4gIHNhbGVzUHJpY2U6IG51bWJlcjtcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gIFJSUFByaWNlOiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9kZSBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIE5vZGVTdHJ1Y3R1cmUge1xuICBzdGF0dXM6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgbm9kZVR5cGU6IHN0cmluZztcbiAgaXNPdmVycmlkZTogYm9vbGVhbjtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIHBhcmVudElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGluZSBEaXNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmVEaXNjb3VudCB7XG4gIGl0ZW1MaW5lSWQ6IHN0cmluZyxcbiAgZGlzY291bnRBbW91bnQ6IG51bWJlcixcbiAgZGlzY291bnRUeXBlOiBzdHJpbmcsXG4gIC8vIHJlYXNvbkNvZGU6IHN0cmluZyxcbiAgbmFtZT86IHN0cmluZyxcbiAgdW5pdFByaWNlOiBudW1iZXIsXG4gIGRpc2NvdW50ZWRMaW5lUHJpY2U/OiBudW1iZXIsXG4gIHByaWNlTWFuYWdlck92ZXJyaWRlPzogVXNlck92ZXJyaWRlLFxuICBwcmljZU92ZXJyaWRlUmVhc29uQ29kZT86IHN0cmluZyxcbiAgcHJpY2VPdmVycmlkZVJlYXNvbk5hbWU/OiBzdHJpbmcsXG4gIHByaWNlT3ZlcnJpZGVBbW91bnQ/OiBudW1iZXIsXG4gIHBlcmNlbnRhZ2VEaXNjb3VudE1hbmFnZXJPdmVycmlkZT86IFVzZXJPdmVycmlkZSxcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uQ29kZT86IHN0cmluZyxcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uTmFtZT86IHN0cmluZyxcbiAgcGVyY2VudGFnZURpc2NvdW50VmFsdWU/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBVc2VyIE92ZXJyaWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlck92ZXJyaWRlIHtcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGF1dG9tYXRpY0FwcHJvdmU6IHN0cmluZyxcbiAgb3JpZ2luYWxVc2VySWQ6IHN0cmluZ1xufVxuXG4vKipcbiogbGluZSBQcm9tb3Rpb25zXG4qL1xuZXhwb3J0IGludGVyZmFjZSBMaW5lUHJvbW90aW9ucyB7XG5cbiAgdHJpZ2dlcjogVHJpZ2dlcltdLFxuICBpdGVtTGluZUlkOiBudW1iZXIsXG4gIHByb21vdGlvbklkOiBzdHJpbmcsXG4gIGRpc3BsYXlUZXh0OiBzdHJpbmcsXG4gIHByb21vdGlvblR5cGU6IHN0cmluZyxcbiAgcHJvbW90aW9uQW1vdW50OiBudW1iZXIsXG4gIG5hbWU6IHN0cmluZyxcbiAgcHJvbW90aW9uSW5mbzogc3RyaW5nLFxuICBwcm9tb3Rpb25MaW5lUHJpY2U6IG51bWJlclxuICByZWZ1bmRlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuKiB0cmlnZ2VyXG4qL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyIHtcbiAgaXRlbUxpbmVJZDogc3RyaW5nO1xuICBxdWFudGl0eT86IG51bWJlcjtcbiAgdG90YWxRdWFudGl0eT86IG51bWJlcjtcbiAgbGluZVByb21vdGlvbkFtb3VudD86bnVtYmVyOyAgIC8vIHByb21vdGlvbiBhbW91bnQgYXBwbGllZCBhY2Nyb3NzIHRoZSBsaW5lXG4gIHByb21vdGlvbkFtb3VudD86bnVtYmVyOyAgIC8vIHByb21vdGlvbiBhbW91bnQgYXBwbGllZCBvbiAxIHVuaXRcbiAgcmVmdW5kZWRSZWFzb24/OiBzdHJpbmc7XG4gIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OnN0cmluZztcbiAgcHJvbW90aW9uSWQ/OnN0cmluZztcbn1cblxuLyoqXG4qIFRyYW5zYWN0aW9uIFByb21vdGlvblxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Qcm9tb3Rpb24ge1xuICBkaXNwbGF5VGV4dDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb21vdGlvbkFtb3VudDogbnVtYmVyO1xuICBwcm9tb3Rpb25JZDogc3RyaW5nO1xuICBwcm9tb3Rpb25JbmZvOiBzdHJpbmc7XG4gIHByb21vdGlvblR5cGU6IHN0cmluZztcbiAgaXRlbUxpbmVJZHM6IG51bWJlcltdO1xuICB0eXBlPzpzdHJpbmc7XG4gIHN1YkxldmVsVHlwZT86UFJPTU9USU9OX0xFVkVMXG4gIHRyaWdnZXI/OlRyaWdnZXJbXTtcbiAgY291cG9uQ29kZT86c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZnVuZFByb2R1Y3RDaGFuZ2Uge1xuICBpdGVtTGluZUlkPzogbnVtYmVyO1xuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xuICByZWZ1bmRlZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7XG4gIHJlZnVuZFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVmdW5kV2l0aFByb21vdGlvbjogYm9vbGVhbjtcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZlbnRvcnlJbmZvIHtcbiAgc3RvcmVOYW1lOiBzdHJpbmcsXG4gIHN0b3JlSWQ6IHN0cmluZyxcbiAgcXVhbnRpdHlBdmFpbGFibGU6IG51bWJlcixcbiAgcXVhbnRpdHlSZXF1aXJlZDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52ZW50b3J5UmVxdWVzdEluZm8gZXh0ZW5kcyBJbnZlbnRvcnlJbmZvIHtcbiAgcmVxdWVzdGVkUXVhbnRpdHk6IG51bWJlcixcbiAgcmVxdWVzdGVkQWN0aW9uOiBERUxJVkVSWV9NRVRIT0RTXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlJbmZvIHtcbiAgZ3JvdXBzOiBEZWxpdmVyeUdyb3VwSW5mb1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlHcm91cEluZm8ge1xuICBncm91cE51bWJlcjogbnVtYmVyO1xuICBpdGVtczogUHJvZHVjdFtdO1xuICBlc3RpbWF0ZT86IEVzdGltYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVzdGltYXRlIHtcbiAgdHlwZTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Eb2N1bWVudCB7XG4gIHRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcbiAgb2ZmbGluZVRyYW5zYWN0aW9uSWQ/OnN0cmluZztcbiAgdHJhbnNhY3Rpb25SZWY/OiBzdHJpbmc7XG4gIGRhdGVUaW1lPzogc3RyaW5nO1xuICBvcmdDb2RlOiBzdHJpbmc7XG4gIHN0b3JlSWQ6IHN0cmluZztcbiAgc3RvcmVOb2RlSWQ6c3RyaW5nO1xuICBzdG9yZU5vZGVTdHJ1Y3R1cmU6c3RyaW5nO1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICB0ZXJtaW5hbElkOnN0cmluZztcbiAgaW5pdGlhdGluZ01vZHVsZSA6c3RyaW5nO1xuICBleHBvcnQ6Ym9vbGVhbjtcbiAgdXNlcklkPzogc3RyaW5nO1xuICB1c2VyTmFtZT86c3RyaW5nO1xuICBjdXN0b21lcj86IEN1c3RvbWVyO1xuICBiYXNrZXQ6IGFueTtcbiAgYmFza2V0U3VtbWFyeTogQmFza2V0U3VtbWFyeTtcbiAgLy8gbGluZURpc2NvdW50OiBMaW5lRGlzY291bnRbXTtcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XG4gIHNwbGl0UGF5bWVudD86Ym9vbGVhbjtcbiAgaXNQYXltZW50Q29tcGxldGVkPzpib29sZWFuO1xuICBwYXltZW50RGV0YWlscz86IGFueTtcbiAgdHlwZT86IHN0cmluZztcbiAgb3BlcmF0aW9uU3RhdHVzPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbiAgdHJhbnNDb21wbGV0ZWRBdD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNhbGVUb3RhbD86IG51bWJlcjtcbiAgcmVhc29uQ29kZT86IHN0cmluZztcbiAgcmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG92ZXJyaWRlPzogVXNlck92ZXJyaWRlO1xuICBvcmlnaW5hbFRyYW5zSWQ/OnN0cmluZztcbiAgb3JpZ2luYWxFeHRlcm5hbElkPzogc3RyaW5nO1xuICBhcGlSZXNwb25zZT86IEFQSVJlc3BvbnNlOyAgICAvLyBUT0RPIGFkZCBoYW5kbGVyIGFzIHBlciBleHBvcnQgcHJvdmlkZXJcbiAgdW5yZWZlcmVuY2VkUmVmdW5kPzpib29sZWFuO1xuICBnaWZ0ZWRSZWNlaXB0Pzpib29sZWFuO1xuICBjdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzPzphbnk7XG4gIGlzQ2hlY2tlZD86Ym9vbGVhbjtcbiAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHM/OiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1tdO1xuICByZWZ1bmRSZXF1ZXN0PzogYW55W107XG4gIGlzSW5TdG9yZU9yZGVyPzogYm9vbGVhbjsgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJUmVzcG9uc2VcbntcbiAgaW50ZXJuYWxJZD86bnVtYmVyO1xuICB0cmFuaWQ/OnN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHN7XG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIGxpbmVEaXNjb3VudD86TGluZURpc2NvdW50W107XG4gIGxpbmVQcm9tb3Rpb24/OkxpbmVQcm9tb3Rpb25zW107XG4gIHRyYW5zYWN0aW9uUHJvbW90aW9uPzpUcmFuc2FjdGlvblByb21vdGlvbltdO1xuICB0cmFuc2FjdGlvbkRpc2NvdW50PzpUcmFuc2FjdGlvbkRpc2NvdW50W107XG4gIGJhc2tldFN1bW1hcnk/OkJhc2tldFN1bW1hcnk7ICBcbiAgdGF4QnJlYWtkb3duPzpUYXhCcmVha2Rvd247ICBcbiAgdG90YWxUYXhTdW1tYXJ5PzpUb3RhbFRheFN1bW1hcnlbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQmFza2V0U3VtbWFyeSB7XG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XG4gIHNhbGVUb3RhbD86IG51bWJlcjtcbiAgVkFUVG90YWw/OiBudW1iZXI7XG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XG4gIGJhc2tldFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRUb3RhbD86bnVtYmVyO1xuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xuICBiYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xuICBpblN0b3JlPzogQmFza2V0U3VtbWFyeURldGFpbHM7XG4gIHdlYk9yZGVyPzogQmFza2V0U3VtbWFyeURldGFpbHM7XG4gIGNuYz86IEJhc2tldFN1bW1hcnlEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldFN1bW1hcnlEZXRhaWxzIHtcbiAgdG90YWxJdGVtcz86IG51bWJlcjtcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xuICBWQVRUb3RhbD86IG51bWJlcjtcbiAgZGlzY291bnRUb3RhbD86IG51bWJlcjtcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XG4gIHJlZnVuZFRvdGFsPzpudW1iZXI7XG4gIHNoaXBwaW5nVG90YWw/OiBudW1iZXI7XG4gIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25EaXNjb3VudHtcbiAgZGlzY291bnRBbW91bnQ6bnVtYmVyO1xuICBkaXNjb3VudFR5cGU6U3RyaW5nO1xuICByZWFzb25Db2RlOnN0cmluZztcbiAgb3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGU7XG4gIGl0ZW1MaW5lSWRzPzpudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUQmFza2V0IHtcbiAgcHJvZHVjdHM6IFRQcm9kdWN0W107XG4gIGxpbmVEaXNjb3VudDpMaW5lRGlzY291bnRbXTtcbiAgZXhjaGFuZ2U6RXhjaGFuZ2VbXTtcbiAgbGluZVByb21vdGlvbjpMaW5lUHJvbW90aW9uc1tdO1xuICB0cmFuc2FjdGlvblByb21vdGlvbj86VHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcbiAgdHJhbnNhY3Rpb25EaXNjb3VudD86VHJhbnNhY3Rpb25EaXNjb3VudFtdO1xuICB0YXhCcmVha2Rvd24/OlRheEJyZWFrZG93bjtcbiAgdG90YWxUYXhTdW1tYXJ5PzpUb3RhbFRheFN1bW1hcnlbXTtcblxuICBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBURXhjaGFuZ2V7XG4gIGV4Y2hhbmdlSWQ/Om51bWJlcixcbiAgbGluZUl0ZW1JZD86IG51bWJlcixcbiAgcmVhc29uPzogc3RyaW5nLFxuICBxdWFudGl0eT86IG51bWJlcixcbiAgbmV3SXRlbXM/OlROZXdJdGVtc1tdO1xuICB9XG4gIFxuICBleHBvcnQgaW50ZXJmYWNlIFROZXdJdGVtc3tcbiAgbGluZUl0ZW1JZDpudW1iZXIsXG4gICBRdWFudGl0eTpudW1iZXJcbiAgfVxuXG5leHBvcnQgaW50ZXJmYWNlIFRQcm9kdWN0IHtcbiAgaXRlbUxpbmVJZDogc3RyaW5nO1xuICBTS1U6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaW1hZ2VVcmxzOiBbc3RyaW5nXTtcbiAgcHJpY2U6IG51bWJlcjtcbiAgdGF4Q29kZT86IHN0cmluZztcbiAgdGF4UGVyY2VudD86IHN0cmluZztcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjtcbiAgcmVmdW5kZWRQcm9tb3Rpb25hbFF1YW50aXR5PzpudW1iZXI7XG4gIHJlZnVuZGVkPzogYm9vbGVhbjtcbiAgcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcbiAgcmVmdW5kZWRSZWFzb24/OnN0cmluZztcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xuICBzZWxlY3RlZFJSUFByaWNlPzogbnVtYmVyO1xuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xuICBiYXJDb2RlPzogc3RyaW5nO1xuICBiYXJjb2Rlcz86IHN0cmluZ1tdO1xuICBmbGFnZ2VkPzogYm9vbGVhbjtcbiAgZXhjaGFuZ2U/OkV4Y2hhbmdlO1xuICBleGNsdWRlUHJvbW90aW9uOmJvb2xlYW47XG4gIGRpc2NvdW50YWJsZT86Ym9vbGVhbjtcblxuICBpdGVtRGlzY291bnRzPzpJdGVtRGlzY291bnRzO1xuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xuXG4gIC8vIE1peGVkIFNhbGVzIGZpZWxkc1xuICBmdWxsZmlsbWVudElkOnN0cmluZyxcbiAgZnVsbGZpbG1lbnRMb2NhdGlvbk5hbWU6c3RyaW5nLFxuICBkZWxpdmVyeU1ldGhvZD86c3RyaW5nLFxuICBkZWxpdmVyeUdyb3VwPzpzdHJpbmcsXG4gIGdpZnRDYXJkTnVtYmVySXNzdWVkPzogc3RyaW5nLFxuICBnaWZ0Q2FyZEFtb3VudD86IG51bWJlcixcbiAgZ2lmdENhcmRSZWNpcGllbnRFbWFpbD86IHN0cmluZyxcbiAgZ2lmdENhcmRFeHBpcnlEYXRlPzogc3RyaW5nICxcbiAgZ2lmdENhcmRSZWNpcGllbnROYW1lPzogc3RyaW5nLFxuICBnaWZ0Q2FyZD86Ym9vbGVhbixcbiAgY3VycmVuY3k/OnN0cmluZyxcbiAgaXNXZWJPcmRlcj86Ym9vbGVhbixcbiAgbGVhZFRpbWU/OiBsZWFkVGltZVxuICBcbiAgLy8gY3VycmVudHRyYW5zYWN0aW9uIGRvYyBjaGFuZ2VzXG4gIGxpbmVEaXNjb3VudD86YW55XG5cbiAgYXR0cmlidXRlcz86Q29yZUF0dHJpYnV0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EaXNjb3VudHN7XG4gIHRybkRpc2NvdW50c1BvcnRpb246bnVtYmVyO1xuICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjpudW1iZXI7XG4gIHJlZnVuZFBvcnRpb246bnVtYmVyO1xufVxuXG5cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lciB7XG4gIGlkOiBzdHJpbmc7XG4gIGN1c3RvbWVySWQ/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcG9zdENvZGU6IHN0cmluZztcbiAgdGVsZXBob25lPzogc3RyaW5nO1xuICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW10gfCBhbnk7XG4gIHNoaXBwaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW10gfCBhbnk7XG4gIHNoaXBtZW50RGV0YWlscz86IFNoaXBtZW50RGV0YWlsc1tdO1xuICBhZGRyZXNzRGV0YWlsPzogc3RyaW5nO1xuICBub0N1c3RvbWVyU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBleHRlcm5hbElkPzogc3RyaW5nOyBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzIFxue1xuICBpZD86IHN0cmluZztcbiAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gIGFkZHJlc3MxPzogc3RyaW5nO1xuICBhZGRyZXNzMj86IHN0cmluZztcbiAgYWRkcmVzczM/OiBzdHJpbmc7XG4gIGNpdHk/OiBzdHJpbmc7XG4gIGNvdW50eT86IHN0cmluZztcbiAgcG9zdENvZGU/OiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gfVxuXG4gZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudERldGFpbHMge1xuICBpZD86IHN0cmluZyxcbiAgZGVsaXZlcnlHcm91cD86IHN0cmluZyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGV0YWlscyB7XG4gIGNhcmROdW1iZXI/OiBhbnk7XG4gIHNxTm8/Om51bWJlcjtcbiAgcmVzdWx0Pzogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgYXV0aGNvZGU/OiBzdHJpbmc7XG4gIHBhbj86IHN0cmluZztcbiAgY2FyZFR5cGU/OiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uRGF0ZT86IHN0cmluZztcbiAgbWlkPzogc3RyaW5nO1xuICB0aWQ/OiBzdHJpbmc7XG4gIGN2bT86IHN0cmluZztcbiAgaG9zdFJlZmVyZW5jZUlkPzogc3RyaW5nO1xuICBhaWQ/OiBzdHJpbmc7XG4gIHJlY2VpcHRObz86IHN0cmluZztcbiAgZXhwaXJ5ZGF0ZT86IHN0cmluZztcbiAgdHJhbnNhY3Rpb25SZWZlcmVuY2U6IHN0cmluZztcbiAgYXBwbGljYXRpb25WZXJzaW9uPzogc3RyaW5nO1xuICBlbnRyeU1ldGhvZD86c3RyaW5nO1xuICB0cmFuc2FjdGlvblR5cGU6c3RyaW5nO1xuICB0b3RhbGFtb3VudDpzdHJpbmc7XG4gIHBheW1lbnRUeXBlPzpzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGF4QnJlYWtkb3duXG57XG4gIHRheExpbmVzIDogVGF4TGluZVtdLFxuICB0b3RhbFRheGFibGVBbW91bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb3RhbFRheFN1bW1hcnl7XG4gIFZBVENvZGU6c3RyaW5nLFxuICBWQVQgOiBudW1iZXI7XG4gIFByZVRheFN1bTogIG51bWJlclxuICBUYXhTdW06ICBudW1iZXJcbiAgVFhyYXRlU3VtOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXhMaW5lXG57XG4gICAgaXRlbUxpbmVJZDogbnVtYmVyLFxuICAgIHRheGFibGVBbW91bnQ6IG51bWJlcixcbiAgICB0YXhMaW5lVG90YWw6IG51bWJlcixcbiAgICBWQVQ6IG51bWJlcixcbiAgICBWQVRDb2RlIDogc3RyaW5nLFxuICAgIFByZVRheDogbnVtYmVyXG59XG5cbmV4cG9ydCBlbnVtIERJU0NPVU5UVFlQRSB7XG4gIFBFUkNFTlQgPSAnUGVyY2VudCcsXG4gIEFNT1VOVCA9ICdBTU9VTlQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25JbmZvIHtcbiAgc2hpcHBpbmdJZD86IHN0cmluZyxcbiAgZXh0ZXJuYWxTaGlwcGluZ0lkPzogc3RyaW5nLFxuICBpbnZvaWNlSWQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3Vwb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMge1xuICB1bmlxdWVJZD86IHN0cmluZyxcbiAgcHJvdmlkZXJUeXBlPzogc3RyaW5nLFxuICBkZXRhaWxzPzogVHJhbnNhY3Rpb25JbmZvLFxuICBjb3Vwb25zPzogQ291cG9uc1tdXG59XG5cbmV4cG9ydCBlbnVtIElOSVRJQVRJTkdfTU9EVUxFIHtcbiAgRUJBU0tFVCA9IFwiZUJhc2tldFwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgcGVuZGluZ01ldGhvZCB7XG4gIF90eXBlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBkZXRhaWxzPzogU2hpcG1lbnRJZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudElkIHtcbiAgc2hpcG1lbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckFkZHJlc3Mge1xuICBfdHlwZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGFkZHJlc3MxPzogc3RyaW5nO1xuICBjaXR5Pzogc3RyaW5nO1xuICBjb3VudHJ5X2NvZGU/OiBzdHJpbmc7XG4gIGZpcnN0X25hbWU/OiBzdHJpbmc7XG4gIGZ1bGxfbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGxhc3RfbmFtZT86IHN0cmluZztcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIHNhbHV0YXRpb24/OiBzdHJpbmc7XG4gIGNfYXJlYT86IHN0cmluZztcbiAgY19lbWFpbD86IHN0cmluZztcbiAgY19waG9uZVdoYXRzQXBwPzogc3RyaW5nO1xuICBjX3N0clZhbHVlPzogc3RyaW5nO1xuICBwb3N0YWxfY29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckluZm8ge1xuICBfdHlwZT86IHN0cmluZztcbiAgY3VzdG9tZXJfaWQ/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwZWRUYXhJdGVtIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIHRheF9yYXRlPzogbnVtYmVyO1xuICB0YXhfdmFsdWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgYWRkaXRpb25hbE5vdGVzIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEl0ZW0ge1xuICBfdHlwZT86IHN0cmluZztcbiAgYWRqdXN0ZWRfdGF4PzogbnVtYmVyO1xuICBiYXNlX3ByaWNlPzogbnVtYmVyO1xuICBib251c19wcm9kdWN0X2xpbmVfaXRlbT86IGJvb2xlYW47XG4gIGdpZnQ/OiBib29sZWFuO1xuICBpdGVtX2lkPzogc3RyaW5nO1xuICBpdGVtX3RleHQ/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBwcmljZV9hZGp1c3RtZW50cz86IFByaWNlQWRqdXN0bWVudFtdO1xuICBwcmljZV9hZnRlcl9pdGVtX2Rpc2NvdW50PzogbnVtYmVyO1xuICBwcmljZV9hZnRlcl9vcmRlcl9kaXNjb3VudD86IG51bWJlcjtcbiAgcHJvZHVjdF9pZD86IHN0cmluZztcbiAgcHJvZHVjdF9uYW1lPzogc3RyaW5nO1xuICBxdWFudGl0eT86IG51bWJlcjtcbiAgc2hpcG1lbnRfaWQ/OiBzdHJpbmc7XG4gIHRheD86IG51bWJlcjtcbiAgdGF4X2Jhc2lzPzogbnVtYmVyO1xuICB0YXhfY2xhc3NfaWQ/OiBzdHJpbmc7XG4gIHRheF9yYXRlPzogbnVtYmVyO1xuICBjX29zdU9iamVjdERhdGE/OnN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ01ldGhvZCB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBjX2FwcHJvYWNoaW5nVGhyZXNob2xkTWVzc2FnZT86IHN0cmluZztcbiAgY19lc3RpbWF0ZWRBcnJpdmFsVGltZT86IHN0cmluZztcbiAgY19pc0VtYWlsPzogYm9vbGVhbjtcbiAgY19zdG9yZVBpY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xuICBjX3RocmVzaG9sZFZhbHVlPzogbnVtYmVyO1xufSBcblxuZXhwb3J0IGludGVyZmFjZSBzaGlwbWVudCB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XG4gIGFkanVzdGVkX3NoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcbiAgZ2lmdD86IGJvb2xlYW47XG4gIG1lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcbiAgcHJvZHVjdF9zdWJfdG90YWw/OiBudW1iZXI7XG4gIHByb2R1Y3RfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xuICBzaGlwbWVudF90b3RhbD86IG51bWJlcjtcbiAgc2hpcHBpbmdfYWRkcmVzcz86IEN1c3RvbWVyQWRkcmVzcztcbiAgc2hpcHBpbmdfbWV0aG9kPzogU2hpcHBpbmdNZXRob2Q7XG4gIHNoaXBwaW5nX3N0YXR1cz86IHN0cmluZztcbiAgc2hpcHBpbmdfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcbiAgdGF4X3RvdGFsPzogbnVtYmVyO1xuICBjX2Zyb21TdG9yZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBwaW5nSXRlbSB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBhZGp1c3RlZF90YXg/OiBudW1iZXI7XG4gIGJhc2VfcHJpY2U/OiBudW1iZXI7XG4gIGl0ZW1faWQ/OiBzdHJpbmc7XG4gIGl0ZW1fdGV4dD86IHN0cmluZztcbiAgcHJpY2U/OiBudW1iZXI7XG4gIHByaWNlX2FmdGVyX2l0ZW1fZGlzY291bnQ/OiBudW1iZXI7XG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xuICB0YXg/OiBudW1iZXI7XG4gIHRheF9iYXNpcz86IG51bWJlcjtcbiAgdGF4X2NsYXNzX2lkPzogc3RyaW5nO1xuICB0YXhfcmF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWVkRGlzY291bnQge1xuICBfdHlwZT86IHN0cmluZyxcbiAgYW1vdW50PzogbnVtYmVyLFxuICBwZXJjZW50YWdlPzogbnVtYmVyLFxuICB0eXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VBZGp1c3RtZW50IHtcbiAgX3R5cGU/OiBzdHJpbmcsXG4gIGFwcGxpZWRfZGlzY291bnQ/OiBBcHBsaWVkRGlzY291bnQsXG4gIGNvdXBvbl9jb2RlPzogc3RyaW5nLFxuICBjcmVhdGlvbl9kYXRlPzogc3RyaW5nLFxuICBjdXN0b20/OiBib29sZWFuLFxuICBpdGVtX3RleHQ/OiBzdHJpbmcsXG4gIGxhc3RfbW9kaWZpZWQ/OiBzdHJpbmcsXG4gIG1hbnVhbD86IGJvb2xlYW4sXG4gIHByaWNlPzogbnVtYmVyXG4gIHByaWNlX2FkanVzdG1lbnRfaWQ/OiBzdHJpbmcsXG4gIHByb21vdGlvbl9pZD86IHN0cmluZyxcbiAgcHJvbW90aW9uX2xpbms/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmRlckRldGFpbHMge1xuICBfdj86IHN0cmluZztcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIF9yZXNvdXJjZV9zdGF0ZT86IHN0cmluZztcbiAgX2ZsYXNoPzogcGVuZGluZ01ldGhvZFtdO1xuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XG4gIGFkanVzdGVkX3NoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcbiAgYWdlbnRfYmFza2V0PzogYm9vbGVhbjtcbiAgYmFza2V0X2lkPzogc3RyaW5nO1xuICBiaWxsaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XG4gIGNoYW5uZWxfdHlwZT86IHN0cmluZztcbiAgY3JlYXRpb25fZGF0ZT86IHN0cmluZztcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIGN1c3RvbWVyX2luZm8/OiBDdXN0b21lckluZm87XG4gIGdyb3VwZWRfdGF4X2l0ZW1zPzogR3JvdXBlZFRheEl0ZW1bXTtcbiAgbGFzdF9tb2RpZmllZD86IHN0cmluZztcbiAgbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xuICBub3Rlcz86IGFkZGl0aW9uYWxOb3RlcztcbiAgb3JkZXJfcHJpY2VfYWRqdXN0bWVudHM/OiBQcmljZUFkanVzdG1lbnRbXSxcbiAgb3JkZXJfbm8/OiBzdHJpbmc7XG4gIG9yZGVyX3RvdGFsPzogbnVtYmVyO1xuICBwcm9kdWN0X2l0ZW1zPzogUHJvZHVjdEl0ZW1bXTtcbiAgcHJvZHVjdF9zdWJfdG90YWw/OiBudW1iZXI7XG4gIHByb2R1Y3RfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBtZW50cz86IHNoaXBtZW50W107XG4gIHNoaXBwaW5nX2l0ZW1zPzogU2hpcHBpbmdJdGVtW107XG4gIHNoaXBwaW5nX3RvdGFsPzogbnVtYmVyO1xuICBzaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XG4gIHRheGF0aW9uPzogc3RyaW5nO1xuICB0YXhfcm91bmRlZF9hdF9ncm91cD86IGJvb2xlYW47XG4gIHRheF90b3RhbD86IG51bWJlcjtcbiAgY19pc0luU3RvcmVPcmRlcj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBlbnVtIFBST1ZJREVSUyB7XG4gIFNBTEVTRk9SQ0UgPSBcIlNhbGVzZm9yY2VcIixcbiAgTUFHRU5UTyA9IFwiTWFnZW50b1wiLFxuICBNQUdFTlRPMiA9IFwiTWFnZW50bzJcIiAsIC8vIEl0cyBtYWdlbnRvIDIgLCAyIGlzIHRoZSByb290IHZlcnNpb24gKG1lYW5zIHNlY29uZCB2ZXJzaW9uIG9mIG1hZ2VudG8pLFxuICBTQUxFU0ZPUkNFX09TVSA9IFwiU2FsZXNmb3JjZU9TVVwiXG59XG5cbmV4cG9ydCBlbnVtIFBST01PVElPTl9MRVZFTFxue1xuICBMSU5FPVwiTElORVwiLFxuICBUUkFOU0FDVElPTj1cIlRSQU5TQUNUSU9OXCJcbn1cblxuZXhwb3J0IGVudW0gUFJPTU9USU9OX1RZUEVcbntcbiAgQ09VUE9OPVwiQ09VUE9OXCJcbn1cblxuIl19
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwcGVyLWxpYnJhcnkubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXBwZXItbGlicmFyeS9zcmMvbGliL21hcHBlci1saWJyYXJ5Lm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLGdCQU9YO0FBUEQsV0FBWSxnQkFBZ0I7SUFDMUIsaUNBQWEsQ0FBQTtJQUNiLHFDQUFpQixDQUFBO0lBQ2pCLCtDQUEyQixDQUFBO0lBQzNCLG1EQUErQixDQUFBO0lBQy9CLGlDQUFhLENBQUE7SUFDYiwrQ0FBMkIsQ0FBQTtBQUM3QixDQUFDLEVBUFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQU8zQjtBQVNELE1BQU0sQ0FBTixJQUFZLGdCQUtYO0FBTEQsV0FBWSxnQkFBZ0I7SUFDMUIsK0RBQVksQ0FBQTtJQUNaLGlFQUFhLENBQUE7SUFDYixtRkFBc0IsQ0FBQTtJQUN0Qix5RUFBaUIsQ0FBQTtBQUNuQixDQUFDLEVBTFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUszQjtBQWdqQkQsTUFBTSxDQUFOLElBQVksWUFHWDtBQUhELFdBQVksWUFBWTtJQUN0QixtQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBSFcsWUFBWSxLQUFaLFlBQVksUUFHdkI7QUFvQkQsTUFBTSxDQUFOLElBQVksaUJBRVg7QUFGRCxXQUFZLGlCQUFpQjtJQUMzQix3Q0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBRlcsaUJBQWlCLEtBQWpCLGlCQUFpQixRQUU1QjtBQWlMRCxNQUFNLENBQU4sSUFBWSxTQU1YO0FBTkQsV0FBWSxTQUFTO0lBQ25CLHNDQUF5QixDQUFBO0lBQ3pCLGdDQUFtQixDQUFBO0lBQ25CLGtDQUFxQixDQUFBO0lBQ3JCLDZDQUFnQyxDQUFBO0lBQ2hDLDZDQUFnQyxDQUFBO0FBQ2xDLENBQUMsRUFOVyxTQUFTLEtBQVQsU0FBUyxRQU1wQjtBQUVELE1BQU0sQ0FBTixJQUFZLGVBSVg7QUFKRCxXQUFZLGVBQWU7SUFFekIsZ0NBQVcsQ0FBQTtJQUNYLDhDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFKVyxlQUFlLEtBQWYsZUFBZSxRQUkxQjtBQUVELE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFFeEIsbUNBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuZXhwb3J0IGVudW0gVFJBTlNBQ1RJT05fVFlQRSB7XG4gIFNBTEUgPSBcIlNBTEVcIixcbiAgUkVGVU5EID0gXCJSRUZVTkRcIixcbiAgU0FMRV9SRUZVTkQgPSBcIlNBTEVfUkVGVU5EXCIsXG4gIFNBTEVfRVhDSEFOR0UgPSBcIlNBTEVfRVhDSEFOR0VcIixcbiAgVk9JRCA9IFwiVk9JRFwiLFxuICBXRUJfUkVUVVJOUyA9IFwiV0VCX1JFVFVSTlNcIlxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EaXNjb3VudCB7XG4gIHRybkRpc2NvdW50c1BvcnRpb246IG51bWJlcjtcbiAgdHJuUHJvbW90aW9uc1BvcnRpb246IG51bWJlcjtcbiAgcmVmdW5kUG9ydGlvbjogbnVtYmVyO1xuICBjdXJyZW50UmVmdW5kUG9ydGlvbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGVudW0gREVMSVZFUllfTUVUSE9EUyB7XG4gIERFTElWRVJZID0gMSxcbiAgRFJPUF9TSElQID0gMixcbiAgQ09MTEVDVF9GUk9NX1NUT1JFID0gMyxcbiAgU0hJUF9UT19TVE9SRSA9IDRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcm9kdWN0Q2hhbmdlIHtcbiAgaXRlbUxpbmVJZD86IG51bWJlcjtcbiAgU0tVOiBzdHJpbmc7XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIHNlbGVjdGVkUHJpY2U/OiBudW1iZXI7XG4gIGxpbmVEaXNjb3VudD86IExpbmVEaXNjb3VudDtcbiAgbGluZVByb21vdGlvbnM/OiBMaW5lUHJvbW90aW9ucztcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZTtcbiAgcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjsgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb250YWlucyBxdWFudGl0eSBvZiBib3RoIGZ1bGwgcHJpY2VkIGFuZCBwcm9tb3Rpb25hbCBxdWFudGl0aWVzXG4gIHJlZnVuZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7ICAgICAgICAgICAgICAgLy8gcHJvbW90aW9uYWwgcXVhbnRpdHlcbiAgcmVmdW5kZWQ/OiBib29sZWFuO1xuICByZWZ1bmRlZFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaXNDaGVja2VkPzogYm9vbGVhbjtcbiAgc2VhbGVkPzogYm9vbGVhbjtcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9kdWN0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdCBleHRlbmRzIFByb2R1Y3RDaGFuZ2Uge1xuICBpdGVtTGluZUlkPzogbnVtYmVyO1xuICBzdGF0dXM6IG51bWJlcjtcbiAgc3ViR3JvdXA6IG51bWJlcjtcbiAgYnJhbmQ6IHN0cmluZztcbiAgY3VycmVuY3k6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgY291bnRyeW9mT3JpZ2luOiBzdHJpbmc7XG4gIHByb2R1Y3RJZDogc3RyaW5nO1xuICBwcm9kdWN0VHlwZTogbnVtYmVyO1xuICBuYW1lPzogc3RyaW5nO1xuICBpbWFnZVVybHM6IFtzdHJpbmddO1xuICBpc0ltYWdlRmFpbFRvTG9hZD86IGJvb2xlYW47XG4gIHNpemU6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBzZWFzb246IG51bWJlcjtcbiAgcHJvZHVjdEdyb3VwOiBudW1iZXI7XG4gIHN0eWxlQ29kZTogc3RyaW5nO1xuICBub2RlU3RydWN0dXJlOiBOb2RlU3RydWN0dXJlW107XG4gIGJhcmNvZGU6IHN0cmluZztcbiAgcHJpY2U6IFByaWNlW107XG4gIGNvbG91cjogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBhZGRlZEluQmFza2V0PzogYm9vbGVhbjtcbiAgc2VsZWN0ZWRWQVQ/OiBudW1iZXI7XG4gIHNlbGVjdGVkVkFUQ29kZT86IHN0cmluZztcbiAgc2VsZWN0ZWRSUlBQcmljZT86IG51bWJlcjtcbiAgbGluZURpc2NvdW50PzogTGluZURpc2NvdW50O1xuICBleGNoYW5nZT86IEV4Y2hhbmdlO1xuICAvLyByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xuICAvLyByZWZ1bmRlZD86IGJvb2xlYW47XG4gIC8vIHJlZnVuZGVkVG90YWw/OiBudW1iZXI7XG4gIC8vIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OnN0cmluZztcbiAgLy8gaXNDaGVja2VkPzpib29sZWFuO1xuICByZWZ1bmRQcm9tb3Rpb25hbFF1YW50aXR5PzogbnVtYmVyOyAgICAgICAgICAgICAgIC8vIHByb21vdGlvbmFsIHF1YW50aXR5XG4gIGV4Y2hhbmdlUmVhc29uPzogc3RyaW5nO1xuICBleGNoYW5nZVF1YW50aXR5PzogbnVtYmVyO1xuICBpdGVtRGlzY291bnRzOiBJdGVtRGlzY291bnQ7XG5cbiAgZ2lmdENhcmROdW1iZXJJc3N1ZWQ/OiBzdHJpbmc7XG4gIGdpZnRDYXJkQW1vdW50PzogbnVtYmVyO1xuICBnaWZ0Q2FyZFJlY2lwaWVudEVtYWlsPzogc3RyaW5nO1xuICBnaWZ0Q2FyZEV4cGlyeURhdGU/OiBzdHJpbmc7XG4gIGdpZnRDYXJkUmVjaXBpZW50TmFtZT86IHN0cmluZztcbiAgZ2lmdENhcmQ/OiBib29sZWFuO1xuXG4gIGRpc2NvdW50YWJsZTogYm9vbGVhbjtcbiAgLy8gc2VhbGVkPzpib29sZWFuO1xuICBleGNsdWRlUHJvbW90aW9uOiBib29sZWFuO1xuICBjYXRlZ29yaWVzOiBDYXRlZ29yaWVzW107XG4gIGRlc2NyaXB0aW9uczogRGVzY3JpcHRpb25zW107XG4gIGJhcmNvZGVzOiBzdHJpbmdbXTtcblxuICAvL05ldyBGZWlsZHNcbiAgZXh0ZXJuYWxJZDogc3RyaW5nO1xuICBjcmVhdGVkRGF0ZTogc3RyaW5nO1xuICB1cGRhdGVkRGF0ZTogc3RyaW5nO1xuICBjcmVhdGVkQnk6IHN0cmluZztcbiAgdXBkYXRlZEJ5OiBzdHJpbmc7XG4gIGF0dHJpYnV0ZXM6IENvcmVBdHRyaWJ1dGVbXTtcbiAgaWQ6IHN0cmluZztcbiAgbG9uZ19kZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIC8vIE1peGVkIFNhbGVzIGZpZWxkc1xuICBpc1dlYk9yZGVyPzogYm9vbGVhbixcbiAgZnVsbGZpbG1lbnRJZDogc3RyaW5nLFxuICBmdWxsZmlsbWVudExvY2F0aW9uTmFtZT86IHN0cmluZyxcbiAgZGVsaXZlcnlNZXRob2Q/OiBzdHJpbmcsXG4gIGRlbGl2ZXJ5R3JvdXA/OiBzdHJpbmcsXG4gIHNlbGVjdGVkSW52ZW50b3J5PzogSW52ZW50b3J5SW5mbztcbiAgbGVhZFRpbWU/OiBsZWFkVGltZTtcblxuICAvL25ldyBvbmUgZm9yIG9zdSBwcm92aWRlclxuICBhdmFpbGFibGVRdWFudGl0eT86IG51bWJlcjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgbGVhZFRpbWUge1xuICB0eXBlOiBzdHJpbmcsXG4gIHZhbHVlOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFeGNoYW5nZSB7XG4gIGV4Y2hhbmdlSWQ6IG51bWJlcixcbiAgbGluZUl0ZW1JZDogbnVtYmVyLFxuICByZWFzb246IHN0cmluZyxcbiAgcXVhbnRpdHk6IG51bWJlcixcbiAgbmV3SXRlbXM6IFByb2R1Y3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYXRlZ29yaWVzIHtcbiAgaWQ6IHN0cmluZztcbiAgcGFyZW50SWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBjYXRlZ29yeUlkOiBzdHJpbmc7XG4gIHN0YXR1czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXNjcmlwdGlvbnMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNvdW50cnlDb2RlOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29yZUF0dHJpYnV0ZSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgc2VhcmNoYWJsZTogYm9vbGVhbjtcbiAgY291bnRyeUNvZGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBCYXNrZXRcbiAqL1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldCB7XG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcbiAgcHJvZHVjdHM6IFByb2R1Y3RbXTtcbiAgdHJhbnNhY3Rpb25EaXNjb3VudDogYW55W107XG4gIHF1YW50aXR5OiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG4gIHNhbGVUb3RhbDogbnVtYmVyO1xuICBkaXNjb3VudFRvdGFsPzogbnVtYmVyO1xuICB0cmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICBvZmZsaW5lVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XG4gIGJhc2tldFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRUb3RhbD86IG51bWJlcjtcbiAgdHJhbnNhY3Rpb25Qcm9tb3Rpb24/OiBUcmFuc2FjdGlvblByb21vdGlvbltdO1xuICBjdXN0b21lcj86IGFueTtcbiAgZXhjaGFuZ2U/OiBFeGNoYW5nZVtdO1xuICBpblN0b3JlRmxhZz86IGJvb2xlYW5cbn1cblxuXG5cbi8qKlxuICogUHJpY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmljZSB7XG4gIFZBVDogbnVtYmVyO1xuICBWQVRDb2RlOiBzdHJpbmc7XG4gIHNhbGVzUHJpY2U6IG51bWJlcjtcbiAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG4gIFJSUFByaWNlOiBudW1iZXI7XG59XG5cbi8qKlxuICogTm9kZSBzdHJ1Y3R1cmVcbiAqL1xuaW50ZXJmYWNlIE5vZGVTdHJ1Y3R1cmUge1xuICBzdGF0dXM6IGJvb2xlYW47XG4gIG5hbWU6IHN0cmluZztcbiAgbm9kZVR5cGU6IHN0cmluZztcbiAgaXNPdmVycmlkZTogYm9vbGVhbjtcbiAgbm9kZUlkOiBzdHJpbmc7XG4gIHBhcmVudElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGluZSBEaXNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIExpbmVEaXNjb3VudCB7XG4gIGl0ZW1MaW5lSWQ6IHN0cmluZyxcbiAgZGlzY291bnRBbW91bnQ6IG51bWJlcixcbiAgZGlzY291bnRUeXBlOiBzdHJpbmcsXG4gIC8vIHJlYXNvbkNvZGU6IHN0cmluZyxcbiAgbmFtZT86IHN0cmluZyxcbiAgdW5pdFByaWNlOiBudW1iZXIsXG4gIGRpc2NvdW50ZWRMaW5lUHJpY2U/OiBudW1iZXIsXG4gIHByaWNlTWFuYWdlck92ZXJyaWRlPzogVXNlck92ZXJyaWRlLFxuICBwcmljZU92ZXJyaWRlUmVhc29uQ29kZT86IHN0cmluZyxcbiAgcHJpY2VPdmVycmlkZVJlYXNvbk5hbWU/OiBzdHJpbmcsXG4gIHByaWNlT3ZlcnJpZGVBbW91bnQ/OiBudW1iZXIsXG4gIHBlcmNlbnRhZ2VEaXNjb3VudE1hbmFnZXJPdmVycmlkZT86IFVzZXJPdmVycmlkZSxcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uQ29kZT86IHN0cmluZyxcbiAgcGVyY2VudGFnZURpc2NvdW50UmVhc29uTmFtZT86IHN0cmluZyxcbiAgcGVyY2VudGFnZURpc2NvdW50VmFsdWU/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBVc2VyIE92ZXJyaWRlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXNlck92ZXJyaWRlIHtcbiAgdXNlcklkOiBzdHJpbmcsXG4gIGF1dG9tYXRpY0FwcHJvdmU6IHN0cmluZyxcbiAgb3JpZ2luYWxVc2VySWQ6IHN0cmluZ1xufVxuXG4vKipcbiogbGluZSBQcm9tb3Rpb25zXG4qL1xuZXhwb3J0IGludGVyZmFjZSBMaW5lUHJvbW90aW9ucyB7XG5cbiAgdHJpZ2dlcjogVHJpZ2dlcltdLFxuICBpdGVtTGluZUlkOiBudW1iZXIsXG4gIHByb21vdGlvbklkOiBzdHJpbmcsXG4gIGRpc3BsYXlUZXh0OiBzdHJpbmcsXG4gIHByb21vdGlvblR5cGU6IHN0cmluZyxcbiAgcHJvbW90aW9uQW1vdW50OiBudW1iZXIsXG4gIG5hbWU6IHN0cmluZyxcbiAgcHJvbW90aW9uSW5mbzogc3RyaW5nLFxuICBwcm9tb3Rpb25MaW5lUHJpY2U6IG51bWJlclxuICByZWZ1bmRlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuKiB0cmlnZ2VyXG4qL1xuZXhwb3J0IGludGVyZmFjZSBUcmlnZ2VyIHtcbiAgaXRlbUxpbmVJZDogc3RyaW5nO1xuICBxdWFudGl0eT86IG51bWJlcjtcbiAgdG90YWxRdWFudGl0eT86IG51bWJlcjtcbiAgbGluZVByb21vdGlvbkFtb3VudD86bnVtYmVyOyAgIC8vIHByb21vdGlvbiBhbW91bnQgYXBwbGllZCBhY2Nyb3NzIHRoZSBsaW5lXG4gIHByb21vdGlvbkFtb3VudD86bnVtYmVyOyAgIC8vIHByb21vdGlvbiBhbW91bnQgYXBwbGllZCBvbiAxIHVuaXRcbiAgcmVmdW5kZWRSZWFzb24/OiBzdHJpbmc7XG4gIHJlZnVuZGVkUmVhc29uRGVzY3JpcHRpb24/OnN0cmluZztcbiAgcHJvbW90aW9uSWQ/OnN0cmluZztcbn1cblxuLyoqXG4qIFRyYW5zYWN0aW9uIFByb21vdGlvblxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Qcm9tb3Rpb24ge1xuICBkaXNwbGF5VGV4dDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHByb21vdGlvbkFtb3VudDogbnVtYmVyO1xuICBwcm9tb3Rpb25JZDogc3RyaW5nO1xuICBwcm9tb3Rpb25JbmZvOiBzdHJpbmc7XG4gIHByb21vdGlvblR5cGU6IHN0cmluZztcbiAgaXRlbUxpbmVJZHM6IG51bWJlcltdO1xuICB0eXBlPzpzdHJpbmc7XG4gIHN1YkxldmVsVHlwZT86UFJPTU9USU9OX0xFVkVMXG4gIHRyaWdnZXI/OlRyaWdnZXJbXTtcbiAgY291cG9uQ29kZT86c3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZnVuZFByb2R1Y3RDaGFuZ2Uge1xuICBpdGVtTGluZUlkPzogbnVtYmVyO1xuICByZWZ1bmRlZFF1YW50aXR5PzogbnVtYmVyO1xuICByZWZ1bmRlZFByb21vdGlvbmFsUXVhbnRpdHk/OiBudW1iZXI7XG4gIHJlZnVuZFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRlZFJlYXNvbj86IHN0cmluZztcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcmVmdW5kV2l0aFByb21vdGlvbjogYm9vbGVhbjtcbiAgaXNMYXN0RXhjaGFuZ2VkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnZlbnRvcnlJbmZvIHtcbiAgc3RvcmVOYW1lOiBzdHJpbmcsXG4gIHN0b3JlSWQ6IHN0cmluZyxcbiAgcXVhbnRpdHlBdmFpbGFibGU6IG51bWJlcixcbiAgcXVhbnRpdHlSZXF1aXJlZDogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW52ZW50b3J5UmVxdWVzdEluZm8gZXh0ZW5kcyBJbnZlbnRvcnlJbmZvIHtcbiAgcmVxdWVzdGVkUXVhbnRpdHk6IG51bWJlcixcbiAgcmVxdWVzdGVkQWN0aW9uOiBERUxJVkVSWV9NRVRIT0RTXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlJbmZvIHtcbiAgZ3JvdXBzOiBEZWxpdmVyeUdyb3VwSW5mb1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsaXZlcnlHcm91cEluZm8ge1xuICBncm91cE51bWJlcjogbnVtYmVyO1xuICBpdGVtczogUHJvZHVjdFtdO1xuICBlc3RpbWF0ZT86IEVzdGltYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVzdGltYXRlIHtcbiAgdHlwZTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25Eb2N1bWVudCB7XG4gIHRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHN1YnNpZGlhcnlJZD86IHN0cmluZztcbiAgb2ZmbGluZVRyYW5zYWN0aW9uSWQ/OnN0cmluZztcbiAgdHJhbnNhY3Rpb25SZWY/OiBzdHJpbmc7XG4gIGRhdGVUaW1lPzogc3RyaW5nO1xuICBvcmdDb2RlOiBzdHJpbmc7XG4gIHN0b3JlSWQ6IHN0cmluZztcbiAgc3RvcmVOb2RlSWQ6c3RyaW5nO1xuICBzdG9yZU5vZGVTdHJ1Y3R1cmU6c3RyaW5nO1xuICBkZXZpY2VJZDogc3RyaW5nO1xuICB0ZXJtaW5hbElkOnN0cmluZztcbiAgaW5pdGlhdGluZ01vZHVsZSA6c3RyaW5nO1xuICBleHBvcnQ6Ym9vbGVhbjtcbiAgdXNlcklkPzogc3RyaW5nO1xuICB1c2VyTmFtZT86c3RyaW5nO1xuICBjdXN0b21lcj86IEN1c3RvbWVyO1xuICBiYXNrZXQ6IGFueTtcbiAgYmFza2V0U3VtbWFyeTogQmFza2V0U3VtbWFyeTtcbiAgLy8gbGluZURpc2NvdW50OiBMaW5lRGlzY291bnRbXTtcbiAgYmFzZUN1cnJlbmN5OiBzdHJpbmc7XG4gIHNwbGl0UGF5bWVudD86Ym9vbGVhbjtcbiAgaXNQYXltZW50Q29tcGxldGVkPzpib29sZWFuO1xuICBwYXltZW50RGV0YWlscz86IGFueTtcbiAgdHlwZT86IHN0cmluZztcbiAgb3BlcmF0aW9uU3RhdHVzPzogc3RyaW5nO1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG4gIHVwZGF0ZWRBdD86IHN0cmluZztcbiAgdHJhbnNDb21wbGV0ZWRBdD86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIHNhbGVUb3RhbD86IG51bWJlcjtcbiAgcmVhc29uQ29kZT86IHN0cmluZztcbiAgcmVhc29uRGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIG92ZXJyaWRlPzogVXNlck92ZXJyaWRlO1xuICBvcmlnaW5hbFRyYW5zSWQ/OnN0cmluZztcbiAgb3JpZ2luYWxFeHRlcm5hbElkPzogc3RyaW5nO1xuICBhcGlSZXNwb25zZT86IEFQSVJlc3BvbnNlOyAgICAvLyBUT0RPIGFkZCBoYW5kbGVyIGFzIHBlciBleHBvcnQgcHJvdmlkZXJcbiAgdW5yZWZlcmVuY2VkUmVmdW5kPzpib29sZWFuO1xuICBnaWZ0ZWRSZWNlaXB0Pzpib29sZWFuO1xuICBjdXJyZW50VHJhbnNhY3Rpb25EZXRhaWxzPzphbnk7XG4gIGlzQ2hlY2tlZD86Ym9vbGVhbjtcbiAgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHM/OiBleHRlcm5hbFRyYW5zYWN0aW9uRGV0YWlsc1tdO1xuICByZWZ1bmRSZXF1ZXN0PzogYW55W107XG4gIGlzSW5TdG9yZU9yZGVyPzogYm9vbGVhbjsgXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJUmVzcG9uc2VcbntcbiAgaW50ZXJuYWxJZD86bnVtYmVyO1xuICB0cmFuaWQ/OnN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1cnJlbnRUcmFuc2FjdGlvbkRldGFpbHN7XG4gIHByb2R1Y3RzOiBQcm9kdWN0W107XG4gIGxpbmVEaXNjb3VudD86TGluZURpc2NvdW50W107XG4gIGxpbmVQcm9tb3Rpb24/OkxpbmVQcm9tb3Rpb25zW107XG4gIHRyYW5zYWN0aW9uUHJvbW90aW9uPzpUcmFuc2FjdGlvblByb21vdGlvbltdO1xuICB0cmFuc2FjdGlvbkRpc2NvdW50PzpUcmFuc2FjdGlvbkRpc2NvdW50W107XG4gIGJhc2tldFN1bW1hcnk/OkJhc2tldFN1bW1hcnk7ICBcbiAgdGF4QnJlYWtkb3duPzpUYXhCcmVha2Rvd247ICBcbiAgdG90YWxUYXhTdW1tYXJ5PzpUb3RhbFRheFN1bW1hcnlbXTtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQmFza2V0U3VtbWFyeSB7XG4gIHRvdGFsSXRlbXM/OiBudW1iZXI7XG4gIHNhbGVUb3RhbD86IG51bWJlcjtcbiAgVkFUVG90YWw/OiBudW1iZXI7XG4gIGRpc2NvdW50VG90YWw/OiBudW1iZXI7XG4gIGJhc2tldFRvdGFsPzogbnVtYmVyO1xuICByZWZ1bmRUb3RhbD86bnVtYmVyO1xuICBzaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xuICBiYXNrZXRUb3RhbFdpdGhTaGlwcGluZ1RvdGFsPzogbnVtYmVyO1xuICBpblN0b3JlPzogQmFza2V0U3VtbWFyeURldGFpbHM7XG4gIHdlYk9yZGVyPzogQmFza2V0U3VtbWFyeURldGFpbHM7XG4gIGNuYz86IEJhc2tldFN1bW1hcnlEZXRhaWxzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2tldFN1bW1hcnlEZXRhaWxzIHtcbiAgdG90YWxJdGVtcz86IG51bWJlcjtcbiAgc2FsZVRvdGFsPzogbnVtYmVyO1xuICBWQVRUb3RhbD86IG51bWJlcjtcbiAgZGlzY291bnRUb3RhbD86IG51bWJlcjtcbiAgYmFza2V0VG90YWw/OiBudW1iZXI7XG4gIHJlZnVuZFRvdGFsPzpudW1iZXI7XG4gIHNoaXBwaW5nVG90YWw/OiBudW1iZXI7XG4gIGJhc2tldFRvdGFsV2l0aFNoaXBwaW5nVG90YWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25EaXNjb3VudHtcbiAgZGlzY291bnRBbW91bnQ6bnVtYmVyO1xuICBkaXNjb3VudFR5cGU6U3RyaW5nO1xuICByZWFzb25Db2RlOnN0cmluZztcbiAgb3ZlcnJpZGU/OiBVc2VyT3ZlcnJpZGU7XG4gIGl0ZW1MaW5lSWRzPzpudW1iZXJbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUQmFza2V0IHtcbiAgcHJvZHVjdHM6IFRQcm9kdWN0W107XG4gIGxpbmVEaXNjb3VudDpMaW5lRGlzY291bnRbXTtcbiAgZXhjaGFuZ2U6RXhjaGFuZ2VbXTtcbiAgbGluZVByb21vdGlvbjpMaW5lUHJvbW90aW9uc1tdO1xuICB0cmFuc2FjdGlvblByb21vdGlvbj86VHJhbnNhY3Rpb25Qcm9tb3Rpb25bXTtcbiAgdHJhbnNhY3Rpb25EaXNjb3VudD86VHJhbnNhY3Rpb25EaXNjb3VudFtdO1xuICB0YXhCcmVha2Rvd24/OlRheEJyZWFrZG93bjtcbiAgdG90YWxUYXhTdW1tYXJ5PzpUb3RhbFRheFN1bW1hcnlbXTtcblxuICBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBURXhjaGFuZ2V7XG4gIGV4Y2hhbmdlSWQ/Om51bWJlcixcbiAgbGluZUl0ZW1JZD86IG51bWJlcixcbiAgcmVhc29uPzogc3RyaW5nLFxuICBxdWFudGl0eT86IG51bWJlcixcbiAgbmV3SXRlbXM/OlROZXdJdGVtc1tdO1xuICB9XG4gIFxuICBleHBvcnQgaW50ZXJmYWNlIFROZXdJdGVtc3tcbiAgbGluZUl0ZW1JZDpudW1iZXIsXG4gICBRdWFudGl0eTpudW1iZXJcbiAgfVxuXG5leHBvcnQgaW50ZXJmYWNlIFRQcm9kdWN0IHtcbiAgaXRlbUxpbmVJZDogc3RyaW5nO1xuICBTS1U6IHN0cmluZztcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgaW1hZ2VVcmxzOiBbc3RyaW5nXTtcbiAgcHJpY2U6IG51bWJlcjtcbiAgdGF4Q29kZT86IHN0cmluZztcbiAgdGF4UGVyY2VudD86IHN0cmluZztcbiAgcXVhbnRpdHk6IG51bWJlcjtcbiAgcmVmdW5kZWRRdWFudGl0eT86IG51bWJlcjtcbiAgcmVmdW5kZWRQcm9tb3Rpb25hbFF1YW50aXR5PzpudW1iZXI7XG4gIHJlZnVuZGVkPzogYm9vbGVhbjtcbiAgcmVmdW5kZWRUb3RhbD86IG51bWJlcjtcbiAgcmVmdW5kZWRSZWFzb24/OnN0cmluZztcbiAgcmVmdW5kZWRSZWFzb25EZXNjcmlwdGlvbj86c3RyaW5nO1xuICBzZWxlY3RlZFJSUFByaWNlPzogbnVtYmVyO1xuICB0b3RhbExpbmVQcmljZTogbnVtYmVyO1xuICBiYXJDb2RlPzogc3RyaW5nO1xuICBiYXJjb2Rlcz86IHN0cmluZ1tdO1xuICBmbGFnZ2VkPzogYm9vbGVhbjtcbiAgZXhjaGFuZ2U/OkV4Y2hhbmdlO1xuICBleGNsdWRlUHJvbW90aW9uOmJvb2xlYW47XG4gIGRpc2NvdW50YWJsZT86Ym9vbGVhbjtcblxuICBpdGVtRGlzY291bnRzPzpJdGVtRGlzY291bnRzO1xuICBpc0xhc3RFeGNoYW5nZWQ/OiBib29sZWFuO1xuXG4gIC8vIE1peGVkIFNhbGVzIGZpZWxkc1xuICBmdWxsZmlsbWVudElkOnN0cmluZyxcbiAgZnVsbGZpbG1lbnRMb2NhdGlvbk5hbWU6c3RyaW5nLFxuICBkZWxpdmVyeU1ldGhvZD86c3RyaW5nLFxuICBkZWxpdmVyeUdyb3VwPzpzdHJpbmcsXG4gIGdpZnRDYXJkTnVtYmVySXNzdWVkPzogc3RyaW5nLFxuICBnaWZ0Q2FyZEFtb3VudD86IG51bWJlcixcbiAgZ2lmdENhcmRSZWNpcGllbnRFbWFpbD86IHN0cmluZyxcbiAgZ2lmdENhcmRFeHBpcnlEYXRlPzogc3RyaW5nICxcbiAgZ2lmdENhcmRSZWNpcGllbnROYW1lPzogc3RyaW5nLFxuICBnaWZ0Q2FyZD86Ym9vbGVhbixcbiAgY3VycmVuY3k/OnN0cmluZyxcbiAgaXNXZWJPcmRlcj86Ym9vbGVhbixcbiAgbGVhZFRpbWU/OiBsZWFkVGltZVxuICBcbiAgLy8gY3VycmVudHRyYW5zYWN0aW9uIGRvYyBjaGFuZ2VzXG4gIGxpbmVEaXNjb3VudD86YW55XG5cbiAgYXR0cmlidXRlcz86Q29yZUF0dHJpYnV0ZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEl0ZW1EaXNjb3VudHN7XG4gIHRybkRpc2NvdW50c1BvcnRpb246bnVtYmVyO1xuICB0cm5Qcm9tb3Rpb25zUG9ydGlvbjpudW1iZXI7XG4gIHJlZnVuZFBvcnRpb246bnVtYmVyO1xufVxuXG5cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lciB7XG4gIGlkOiBzdHJpbmc7XG4gIGN1c3RvbWVySWQ/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICBmaXJzdE5hbWU6IHN0cmluZztcbiAgbGFzdE5hbWU6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgcG9zdENvZGU6IHN0cmluZztcbiAgdGVsZXBob25lPzogc3RyaW5nO1xuICBiaWxsaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW10gfCBhbnk7XG4gIHNoaXBwaW5nQWRkcmVzcz86IEFkZHJlc3MgfCBBZGRyZXNzW10gfCBhbnk7XG4gIHNoaXBtZW50RGV0YWlscz86IFNoaXBtZW50RGV0YWlsc1tdO1xuICBhZGRyZXNzRGV0YWlsPzogc3RyaW5nO1xuICBub0N1c3RvbWVyU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBleHRlcm5hbElkPzogc3RyaW5nOyBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZGRyZXNzIFxue1xuICBpZD86IHN0cmluZztcbiAgY291bnRyeUNvZGU/OiBzdHJpbmc7XG4gIGFkZHJlc3MxPzogc3RyaW5nO1xuICBhZGRyZXNzMj86IHN0cmluZztcbiAgYWRkcmVzczM/OiBzdHJpbmc7XG4gIGNpdHk/OiBzdHJpbmc7XG4gIGNvdW50eT86IHN0cmluZztcbiAgcG9zdENvZGU/OiBzdHJpbmc7XG4gIGNvdW50cnk/OiBzdHJpbmc7XG4gfVxuXG4gZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudERldGFpbHMge1xuICBpZD86IHN0cmluZyxcbiAgZGVsaXZlcnlHcm91cD86IHN0cmluZyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50RGV0YWlscyB7XG4gIGNhcmROdW1iZXI/OiBhbnk7XG4gIHNxTm8/Om51bWJlcjtcbiAgcmVzdWx0Pzogc3RyaW5nO1xuICBjdXJyZW5jeTogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZztcbiAgYXV0aGNvZGU/OiBzdHJpbmc7XG4gIHBhbj86IHN0cmluZztcbiAgY2FyZFR5cGU/OiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uRGF0ZT86IHN0cmluZztcbiAgbWlkPzogc3RyaW5nO1xuICB0aWQ/OiBzdHJpbmc7XG4gIGN2bT86IHN0cmluZztcbiAgaG9zdFJlZmVyZW5jZUlkPzogc3RyaW5nO1xuICBhaWQ/OiBzdHJpbmc7XG4gIHJlY2VpcHRObz86IHN0cmluZztcbiAgZXhwaXJ5ZGF0ZT86IHN0cmluZztcbiAgdHJhbnNhY3Rpb25SZWZlcmVuY2U6IHN0cmluZztcbiAgYXBwbGljYXRpb25WZXJzaW9uPzogc3RyaW5nO1xuICBlbnRyeU1ldGhvZD86c3RyaW5nO1xuICB0cmFuc2FjdGlvblR5cGU6c3RyaW5nO1xuICB0b3RhbGFtb3VudDpzdHJpbmc7XG4gIHBheW1lbnRUeXBlPzpzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGF4QnJlYWtkb3duXG57XG4gIHRheExpbmVzIDogVGF4TGluZVtdLFxuICB0b3RhbFRheGFibGVBbW91bnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUb3RhbFRheFN1bW1hcnl7XG4gIFZBVENvZGU6c3RyaW5nLFxuICBWQVQgOiBudW1iZXI7XG4gIFByZVRheFN1bTogIG51bWJlclxuICBUYXhTdW06ICBudW1iZXJcbiAgVFhyYXRlU3VtOiBudW1iZXJcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYXhMaW5lXG57XG4gICAgaXRlbUxpbmVJZDogbnVtYmVyLFxuICAgIHRheGFibGVBbW91bnQ6IG51bWJlcixcbiAgICB0YXhMaW5lVG90YWw6IG51bWJlcixcbiAgICBWQVQ6IG51bWJlcixcbiAgICBWQVRDb2RlIDogc3RyaW5nLFxuICAgIFByZVRheDogbnVtYmVyXG59XG5cbmV4cG9ydCBlbnVtIERJU0NPVU5UVFlQRSB7XG4gIFBFUkNFTlQgPSAnUGVyY2VudCcsXG4gIEFNT1VOVCA9ICdBTU9VTlQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25JbmZvIHtcbiAgc2hpcHBpbmdJZD86IHN0cmluZyxcbiAgZXh0ZXJuYWxTaGlwcGluZ0lkPzogc3RyaW5nLFxuICBpbnZvaWNlSWQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb3Vwb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgZXh0ZXJuYWxUcmFuc2FjdGlvbkRldGFpbHMge1xuICB1bmlxdWVJZD86IHN0cmluZyxcbiAgcHJvdmlkZXJUeXBlPzogc3RyaW5nLFxuICBkZXRhaWxzPzogVHJhbnNhY3Rpb25JbmZvLFxuICBjb3Vwb25zPzogQ291cG9uc1tdXG59XG5cbmV4cG9ydCBlbnVtIElOSVRJQVRJTkdfTU9EVUxFIHtcbiAgRUJBU0tFVCA9IFwiZUJhc2tldFwiXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgcGVuZGluZ01ldGhvZCB7XG4gIF90eXBlPzogc3RyaW5nO1xuICB0eXBlPzogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBkZXRhaWxzPzogU2hpcG1lbnRJZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGlwbWVudElkIHtcbiAgc2hpcG1lbnRJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckFkZHJlc3Mge1xuICBfdHlwZT86IHN0cmluZztcbiAgZW1haWw/OiBzdHJpbmc7XG4gIGFkZHJlc3MxPzogc3RyaW5nO1xuICBjaXR5Pzogc3RyaW5nO1xuICBjb3VudHJ5X2NvZGU/OiBzdHJpbmc7XG4gIGZpcnN0X25hbWU/OiBzdHJpbmc7XG4gIGZ1bGxfbmFtZT86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIGxhc3RfbmFtZT86IHN0cmluZztcbiAgcGhvbmU/OiBzdHJpbmc7XG4gIHNhbHV0YXRpb24/OiBzdHJpbmc7XG4gIGNfYXJlYT86IHN0cmluZztcbiAgY19lbWFpbD86IHN0cmluZztcbiAgY19waG9uZVdoYXRzQXBwPzogc3RyaW5nO1xuICBjX3N0clZhbHVlPzogc3RyaW5nO1xuICBwb3N0YWxfY29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lckluZm8ge1xuICBfdHlwZT86IHN0cmluZztcbiAgY3VzdG9tZXJfaWQ/OiBzdHJpbmc7XG4gIGVtYWlsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdyb3VwZWRUYXhJdGVtIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIHRheF9yYXRlPzogbnVtYmVyO1xuICB0YXhfdmFsdWU/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgYWRkaXRpb25hbE5vdGVzIHtcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIGxpbms/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZHVjdEl0ZW0ge1xuICBfdHlwZT86IHN0cmluZztcbiAgYWRqdXN0ZWRfdGF4PzogbnVtYmVyO1xuICBiYXNlX3ByaWNlPzogbnVtYmVyO1xuICBib251c19wcm9kdWN0X2xpbmVfaXRlbT86IGJvb2xlYW47XG4gIGdpZnQ/OiBib29sZWFuO1xuICBpdGVtX2lkPzogc3RyaW5nO1xuICBpdGVtX3RleHQ/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBwcmljZV9hZGp1c3RtZW50cz86IFByaWNlQWRqdXN0bWVudFtdO1xuICBwcmljZV9hZnRlcl9pdGVtX2Rpc2NvdW50PzogbnVtYmVyO1xuICBwcmljZV9hZnRlcl9vcmRlcl9kaXNjb3VudD86IG51bWJlcjtcbiAgcHJvZHVjdF9pZD86IHN0cmluZztcbiAgcHJvZHVjdF9uYW1lPzogc3RyaW5nO1xuICBxdWFudGl0eT86IG51bWJlcjtcbiAgc2hpcG1lbnRfaWQ/OiBzdHJpbmc7XG4gIHRheD86IG51bWJlcjtcbiAgdGF4X2Jhc2lzPzogbnVtYmVyO1xuICB0YXhfY2xhc3NfaWQ/OiBzdHJpbmc7XG4gIHRheF9yYXRlPzogbnVtYmVyO1xuICBjX29zdU9iamVjdERhdGE/OnN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaGlwcGluZ01ldGhvZCB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHByaWNlPzogbnVtYmVyO1xuICBjX2FwcHJvYWNoaW5nVGhyZXNob2xkTWVzc2FnZT86IHN0cmluZztcbiAgY19lc3RpbWF0ZWRBcnJpdmFsVGltZT86IHN0cmluZztcbiAgY19pc0VtYWlsPzogYm9vbGVhbjtcbiAgY19zdG9yZVBpY2t1cEVuYWJsZWQ/OiBib29sZWFuO1xuICBjX3RocmVzaG9sZFZhbHVlPzogbnVtYmVyO1xufSBcblxuZXhwb3J0IGludGVyZmFjZSBzaGlwbWVudCB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XG4gIGFkanVzdGVkX3NoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcbiAgZ2lmdD86IGJvb2xlYW47XG4gIG1lcmNoYW5kaXplX3RvdGFsX3RheD86IG51bWJlcjtcbiAgcHJvZHVjdF9zdWJfdG90YWw/OiBudW1iZXI7XG4gIHByb2R1Y3RfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xuICBzaGlwbWVudF90b3RhbD86IG51bWJlcjtcbiAgc2hpcHBpbmdfYWRkcmVzcz86IEN1c3RvbWVyQWRkcmVzcztcbiAgc2hpcHBpbmdfbWV0aG9kPzogU2hpcHBpbmdNZXRob2Q7XG4gIHNoaXBwaW5nX3N0YXR1cz86IHN0cmluZztcbiAgc2hpcHBpbmdfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcbiAgdGF4X3RvdGFsPzogbnVtYmVyO1xuICBjX2Zyb21TdG9yZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBwaW5nSXRlbSB7XG4gIF90eXBlPzogc3RyaW5nO1xuICBhZGp1c3RlZF90YXg/OiBudW1iZXI7XG4gIGJhc2VfcHJpY2U/OiBudW1iZXI7XG4gIGl0ZW1faWQ/OiBzdHJpbmc7XG4gIGl0ZW1fdGV4dD86IHN0cmluZztcbiAgcHJpY2U/OiBudW1iZXI7XG4gIHByaWNlX2FmdGVyX2l0ZW1fZGlzY291bnQ/OiBudW1iZXI7XG4gIHNoaXBtZW50X2lkPzogc3RyaW5nO1xuICB0YXg/OiBudW1iZXI7XG4gIHRheF9iYXNpcz86IG51bWJlcjtcbiAgdGF4X2NsYXNzX2lkPzogc3RyaW5nO1xuICB0YXhfcmF0ZT86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBcHBsaWVkRGlzY291bnQge1xuICBfdHlwZT86IHN0cmluZyxcbiAgYW1vdW50PzogbnVtYmVyLFxuICBwZXJjZW50YWdlPzogbnVtYmVyLFxuICB0eXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VBZGp1c3RtZW50IHtcbiAgX3R5cGU/OiBzdHJpbmcsXG4gIGFwcGxpZWRfZGlzY291bnQ/OiBBcHBsaWVkRGlzY291bnQsXG4gIGNvdXBvbl9jb2RlPzogc3RyaW5nLFxuICBjcmVhdGlvbl9kYXRlPzogc3RyaW5nLFxuICBjdXN0b20/OiBib29sZWFuLFxuICBpdGVtX3RleHQ/OiBzdHJpbmcsXG4gIGxhc3RfbW9kaWZpZWQ/OiBzdHJpbmcsXG4gIG1hbnVhbD86IGJvb2xlYW4sXG4gIHByaWNlPzogbnVtYmVyXG4gIHByaWNlX2FkanVzdG1lbnRfaWQ/OiBzdHJpbmcsXG4gIHByb21vdGlvbl9pZD86IHN0cmluZyxcbiAgcHJvbW90aW9uX2xpbms/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBPcmRlckRldGFpbHMge1xuICBfdj86IHN0cmluZztcbiAgX3R5cGU/OiBzdHJpbmc7XG4gIF9yZXNvdXJjZV9zdGF0ZT86IHN0cmluZztcbiAgX2ZsYXNoPzogcGVuZGluZ01ldGhvZFtdO1xuICBhZGp1c3RlZF9tZXJjaGFuZGl6ZV90b3RhbF90YXg/OiBudW1iZXI7XG4gIGFkanVzdGVkX3NoaXBwaW5nX3RvdGFsX3RheD86IG51bWJlcjtcbiAgYWdlbnRfYmFza2V0PzogYm9vbGVhbjtcbiAgYmFza2V0X2lkPzogc3RyaW5nO1xuICBiaWxsaW5nX2FkZHJlc3M/OiBDdXN0b21lckFkZHJlc3M7XG4gIGNoYW5uZWxfdHlwZT86IHN0cmluZztcbiAgY3JlYXRpb25fZGF0ZT86IHN0cmluZztcbiAgY3VycmVuY3k/OiBzdHJpbmc7XG4gIGN1c3RvbWVyX2luZm8/OiBDdXN0b21lckluZm87XG4gIGdyb3VwZWRfdGF4X2l0ZW1zPzogR3JvdXBlZFRheEl0ZW1bXTtcbiAgbGFzdF9tb2RpZmllZD86IHN0cmluZztcbiAgbWVyY2hhbmRpemVfdG90YWxfdGF4PzogbnVtYmVyO1xuICBub3Rlcz86IGFkZGl0aW9uYWxOb3RlcztcbiAgb3JkZXJfcHJpY2VfYWRqdXN0bWVudHM/OiBQcmljZUFkanVzdG1lbnRbXSxcbiAgb3JkZXJfbm8/OiBzdHJpbmc7XG4gIG9yZGVyX3RvdGFsPzogbnVtYmVyO1xuICBwcm9kdWN0X2l0ZW1zPzogUHJvZHVjdEl0ZW1bXTtcbiAgcHJvZHVjdF9zdWJfdG90YWw/OiBudW1iZXI7XG4gIHByb2R1Y3RfdG90YWw/OiBudW1iZXI7XG4gIHNoaXBtZW50cz86IHNoaXBtZW50W107XG4gIHNoaXBwaW5nX2l0ZW1zPzogU2hpcHBpbmdJdGVtW107XG4gIHNoaXBwaW5nX3RvdGFsPzogbnVtYmVyO1xuICBzaGlwcGluZ190b3RhbF90YXg/OiBudW1iZXI7XG4gIHRheGF0aW9uPzogc3RyaW5nO1xuICB0YXhfcm91bmRlZF9hdF9ncm91cD86IGJvb2xlYW47XG4gIHRheF90b3RhbD86IG51bWJlcjtcbiAgY19pc0luU3RvcmVPcmRlcj86IGJvb2xlYW47XG4gIGNyZWF0ZWRfYnk/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGVudW0gUFJPVklERVJTIHtcbiAgU0FMRVNGT1JDRSA9IFwiU2FsZXNmb3JjZVwiLFxuICBNQUdFTlRPID0gXCJNYWdlbnRvXCIsXG4gIE1BR0VOVE8yID0gXCJNYWdlbnRvMlwiICwgLy8gSXRzIG1hZ2VudG8gMiAsIDIgaXMgdGhlIHJvb3QgdmVyc2lvbiAobWVhbnMgc2Vjb25kIHZlcnNpb24gb2YgbWFnZW50byksXG4gIFNBTEVTRk9SQ0VfT1NVID0gXCJTYWxlc2ZvcmNlT1NVXCIsXG4gIFNBTEVTRk9SQ0VfWE1MID0gXCJTYWxlc2ZvcmNlWE1MXCJcbn1cblxuZXhwb3J0IGVudW0gUFJPTU9USU9OX0xFVkVMXG57XG4gIExJTkU9XCJMSU5FXCIsXG4gIFRSQU5TQUNUSU9OPVwiVFJBTlNBQ1RJT05cIlxufVxuXG5leHBvcnQgZW51bSBQUk9NT1RJT05fVFlQRVxue1xuICBDT1VQT049XCJDT1VQT05cIlxufVxuXG4iXX0=
|
|
@@ -77,6 +77,7 @@ var PROVIDERS;
|
|
|
77
77
|
PROVIDERS["MAGENTO"] = "Magento";
|
|
78
78
|
PROVIDERS["MAGENTO2"] = "Magento2";
|
|
79
79
|
PROVIDERS["SALESFORCE_OSU"] = "SalesforceOSU";
|
|
80
|
+
PROVIDERS["SALESFORCE_XML"] = "SalesforceXML";
|
|
80
81
|
})(PROVIDERS || (PROVIDERS = {}));
|
|
81
82
|
var PROMOTION_LEVEL;
|
|
82
83
|
(function (PROMOTION_LEVEL) {
|
|
@@ -3118,6 +3119,7 @@ class WebReturnSalesforceMapperBuilderClass {
|
|
|
3118
3119
|
},
|
|
3119
3120
|
currentTransactionDetails: {}
|
|
3120
3121
|
};
|
|
3122
|
+
this.STORE_PREFIX = 'store@';
|
|
3121
3123
|
if (orderDetails) {
|
|
3122
3124
|
this.orderDetails = orderDetails;
|
|
3123
3125
|
}
|
|
@@ -3402,11 +3404,9 @@ class WebReturnSalesforceMapperBuilderClass {
|
|
|
3402
3404
|
AppLoggerService.logDebug(this.className, "customer", "customer mapping ended...");
|
|
3403
3405
|
return this;
|
|
3404
3406
|
}
|
|
3405
|
-
isInStoreOrder() {
|
|
3407
|
+
isInStoreOrder(isInStoreOrder) {
|
|
3406
3408
|
AppLoggerService.logDebug(this.className, "isInStoreOrder", "isInStoreOrder mapping started...");
|
|
3407
|
-
|
|
3408
|
-
this.webReturnObject.isInStoreOrder = true;
|
|
3409
|
-
}
|
|
3409
|
+
this.webReturnObject.isInStoreOrder = isInStoreOrder || false;
|
|
3410
3410
|
AppLoggerService.logDebug(this.className, "isInStoreOrder", "isInStoreOrder mapping ended...");
|
|
3411
3411
|
return this;
|
|
3412
3412
|
}
|