@infrab4a/connect-angular 2.0.6-beta.8 → 2.0.6-beta.9
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/infrab4a-connect-angular.umd.js +7 -2
- package/bundles/infrab4a-connect-angular.umd.js.map +1 -1
- package/esm2015/services/checkout.service.js +2 -2
- package/esm2015/services/coupon.service.js +2 -2
- package/fesm2015/infrab4a-connect-angular.js +2 -2
- package/fesm2015/infrab4a-connect-angular.js.map +1 -1
- package/package.json +1 -1
- package/services/checkout.service.d.ts +1 -1
- package/services/coupon.service.d.ts +1 -1
|
@@ -37,7 +37,7 @@ export class CheckoutService {
|
|
|
37
37
|
return of();
|
|
38
38
|
}
|
|
39
39
|
calcDiscount(coupon) {
|
|
40
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.couponService.calcDiscountShopping(coupon, checkout)));
|
|
40
|
+
return this.getCheckout().pipe(concatMap((checkout) => __awaiter(this, void 0, void 0, function* () { return yield this.couponService.calcDiscountShopping(coupon, checkout); })));
|
|
41
41
|
}
|
|
42
42
|
checkCoupon(nickname, checkoutType) {
|
|
43
43
|
return this.getCheckout().pipe(concatMap((checkout) => {
|
|
@@ -72,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
|
72
72
|
type: Inject,
|
|
73
73
|
args: [DEFAULT_SHOP]
|
|
74
74
|
}] }]; } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3QtYW5ndWxhci9zcmMvc2VydmljZXMvY2hlY2tvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDbEQsT0FBTyxFQUNMLFFBQVEsRUFFUixhQUFhLEVBRWIsS0FBSyxFQUNMLGFBQWEsRUFFYixJQUFJLEVBQ0osS0FBSyxFQUdOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxNQUFNLE1BQU0sV0FBVyxDQUFBO0FBQzlCLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUN2RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7Ozs7QUFJaEQsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDbUIsYUFBNEIsRUFDRSxrQkFBc0MsRUFDekMsZUFBZ0MsRUFDakMsY0FBOEIsRUFDbEMsV0FBa0I7UUFKeEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDRSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3pDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQU87SUFDeEQsQ0FBQztJQUVKLFdBQVcsQ0FBQyxZQUFtQztRQUM3QyxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFBO1FBRTNDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQUUsT0FBTyxJQUFJLENB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QixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUN0RSxJQUFJLEVBQUUsQ0FBQSxZQUFZLGFBQVosWUFBWSx1QkFBWixZQUFZLENBQUUsSUFBSSxLQUFJLElBQUksQ0FBQyxXQUFXLElBQzVDLENBQUE7WUFFRixNQUFNLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUE7WUFFckMsT0FBTyxRQUFRLENBQUE7UUFDakIsQ0FBQztLQUFBOzs2R0F6RVUsZUFBZSwrQ0FHaEIsb0JBQW9CLGFBQ3BCLGlCQUFpQixhQUNqQixnQkFBZ0IsYUFDaEIsWUFBWTtpSEFOWCxlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVU7OzBCQUlOLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUN4QixNQUFNOzJCQUFDLGdCQUFnQjs7MEJBQ3ZCLE1BQU07MkJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXHJcbmltcG9ydCB7XHJcbiAgQ2hlY2tvdXQsXHJcbiAgQ2hlY2tvdXRSZXBvc2l0b3J5LFxyXG4gIENoZWNrb3V0VHlwZXMsXHJcbiAgQ291cG9uLFxyXG4gIGlzTmlsLFxyXG4gIE5vdEZvdW5kRXJyb3IsXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIHBpY2ssXHJcbiAgU2hvcHMsXHJcbiAgVXNlcixcclxuICBVc2VyUmVwb3NpdG9yeVxyXG59IGZyb20gJ0BpbmZyYWI0YS9jb25uZWN0J1xyXG5pbXBvcnQgY29va2llIGZyb20gJ2pzLWNvb2tpZSdcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJ1xyXG5pbXBvcnQgeyBjb25jYXRNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uL2NvbnN0cydcclxuXHJcbmltcG9ydCB7IENvdXBvblNlcnZpY2UgfSBmcm9tICcuL2NvdXBvbi5zZXJ2aWNlJ1xyXG5pbXBvcnQgeyBSZXF1aXJlZENoZWNrb3V0RGF0YSB9IGZyb20gJy4vdHlwZXMnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDaGVja291dFNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3Vwb25TZXJ2aWNlOiBDb3Vwb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnQ2hlY2tvdXRSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjaGVja291dFJlcG9zaXRvcnk6IENoZWNrb3V0UmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoJ09yZGVyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgb3JkZXJSZXBvc2l0b3J5OiBPcmRlclJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdVc2VyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgdXNlclJlcG9zaXRvcnk6IFVzZXJSZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdChERUZBVUxUX1NIT1ApIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdFNob3A6IFNob3BzLFxyXG4gICkge31cclxuXHJcbiAgZ2V0Q2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICBjb25zdCBjaGVja291dElkID0gY29va2llLmdldCgnY2hlY2tvdXRJZCcpXHJcblxyXG4gICAgaWYgKCFpc05pbChjaGVja291dElkKSkgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNoZWNrb3V0SWQgfSkpXHJcblxyXG4gICAgcmV0dXJuIGZyb20odGhpcy5jcmVhdGVDaGVja291dChjaGVja291dERhdGEpKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckJ5Q2hlY2tvdXQoY2hlY2tvdXRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVc2VyPiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXRJZCB9KSkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjaGVja291dCkgPT5cclxuICAgICAgICBjaGVja291dD8udXNlcj8uaWQgPyBvZihjaGVja291dC51c2VyKSA6IGZyb20odGhpcy51c2VyUmVwb3NpdG9yeS5nZXQoeyBpZDogY2hlY2tvdXQudXNlci5pZCB9KSksXHJcbiAgICAgICksXHJcbiAgICAgIGNvbmNhdE1hcCgodXNlcikgPT4gb2YodXNlcikgfHwgdGhyb3dFcnJvcigoKSA9PiBuZXcgTm90Rm91bmRFcnJvcignVXNlciBpcyBub3QgZm91bmQnKSkpLFxyXG4gICAgKVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ2hlY2tvdXRMaW5lSXRlbXMoY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogT2JzZXJ2YWJsZTxDaGVja291dD4ge1xyXG4gICAgcmV0dXJuIGZyb20odGhpcy5jaGVja291dFJlcG9zaXRvcnkudXBkYXRlKENoZWNrb3V0LnRvSW5zdGFuY2UoeyBpZDogY2hlY2tvdXQuaWQsIGxpbmVJdGVtczogY2hlY2tvdXQubGluZUl0ZW1zIH0pKSlcclxuICB9XHJcblxyXG4gIHVwZGF0ZUNoZWNrb3V0VXNlcihjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBPYnNlcnZhYmxlPENoZWNrb3V0PiB7XHJcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNoZWNrb3V0UmVwb3NpdG9yeS51cGRhdGUoQ2hlY2tvdXQudG9JbnN0YW5jZSh7IGlkOiBjaGVja291dC5pZCwgdXNlcjogY2hlY2tvdXQudXNlciB9KSkpXHJcbiAgfVxyXG5cclxuICBjbGVhckNoZWNrb3V0RnJvbVNlc3Npb24oKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICBjb29raWUucmVtb3ZlKCdjaGVja291dElkJylcclxuXHJcbiAgICByZXR1cm4gb2YoKVxyXG4gIH1cclxuXHJcbiAgY2FsY0Rpc2NvdW50KGNvdXBvbjogQ291cG9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRDaGVja291dCgpLnBpcGUoXHJcbiAgICAgIGNvbmNhdE1hcChhc3luYyAoY2hlY2tvdXQpID0+IGF3YWl0IHRoaXMuY291cG9uU2VydmljZS5jYWxjRGlzY291bnRTaG9wcGluZyhjb3Vwb24sIGNoZWNrb3V0KSksXHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBjaGVja0NvdXBvbihuaWNrbmFtZTogc3RyaW5nLCBjaGVja291dFR5cGU6IENoZWNrb3V0VHlwZXMpOiBPYnNlcnZhYmxlPENvdXBvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Q2hlY2tvdXQoKS5waXBlKFxyXG4gICAgICBjb25jYXRNYXAoKGNoZWNrb3V0KSA9PlxyXG4gICAgICAgIHRoaXMuY291cG9uU2VydmljZVxyXG4gICAgICAgICAgLmNoZWNrQ291cG9uKFxyXG4gICAgICAgICAgICBuaWNrbmFtZSxcclxuICAgICAgICAgICAgY2hlY2tvdXQudXNlcj8uZW1haWwsXHJcbiAgICAgICAgICAgIENoZWNrb3V0VHlwZXMuRUNPTU1FUkNFLFxyXG4gICAgICAgICAgICBjaGVja291dC51c2VyLnN1YnNjcmlwdGlvblBsYW4sXHJcbiAgICAgICAgICAgIGNoZWNrb3V0LFxyXG4gICAgICAgICAgICBmYWxzZVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICAgLnBpcGUoKSxcclxuICAgICAgKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlQ2hlY2tvdXQoY2hlY2tvdXREYXRhPzogUmVxdWlyZWRDaGVja291dERhdGEpOiBQcm9taXNlPENoZWNrb3V0PiB7XHJcbiAgICBjb25zdCBjaGVja291dCA9IGF3YWl0IHRoaXMuY2hlY2tvdXRSZXBvc2l0b3J5LmNyZWF0ZSh7XHJcbiAgICAgIGNyZWF0ZWRBdDogbmV3IERhdGUoKSxcclxuICAgICAgLi4uQ2hlY2tvdXQudG9JbnN0YW5jZShwaWNrKGNoZWNrb3V0RGF0YSwgWyd1c2VyJywgJ3Nob3AnXSkpLnRvUGxhaW4oKSxcclxuICAgICAgc2hvcDogY2hlY2tvdXREYXRhPy5zaG9wIHx8IHRoaXMuZGVmYXVsdFNob3AsXHJcbiAgICB9KVxyXG5cclxuICAgIGNvb2tpZS5zZXQoJ2NoZWNrb3V0SWQnLCBjaGVja291dC5pZClcclxuXHJcbiAgICByZXR1cm4gY2hlY2tvdXRcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -134,7 +134,7 @@ export class CouponService {
|
|
|
134
134
|
break;
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
|
-
return
|
|
137
|
+
return discount;
|
|
138
138
|
});
|
|
139
139
|
}
|
|
140
140
|
calcShoppingPercentageDiscount(coupon, checkout) {
|
|
@@ -284,4 +284,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.12", ngImpo
|
|
|
284
284
|
type: Inject,
|
|
285
285
|
args: ['CategoryRepository']
|
|
286
286
|
}] }]; } });
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NvdXBvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBS0wsYUFBYSxFQUNiLE1BQU0sRUFFTixXQUFXLEVBQ1gsYUFBYSxFQUdiLEtBQUssRUFDTCxNQUFNLEVBRU4sS0FBSyxFQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUE7OztBQUs3QyxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUMrQyxnQkFBa0MsRUFDeEMsV0FBa0IsRUFDYixlQUFnQyxFQUN6QixzQkFBOEMsRUFDbEQsa0JBQXNDO1FBSnhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDeEMsZ0JBQVcsR0FBWCxXQUFXLENBQU87UUFDYixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDekIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUNsRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBMEIvRSw0QkFBdUIsR0FBRyxDQUFDLFNBQWlCLEVBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUEsQ0FBQTtRQXNSNUYseUJBQW9CLEdBQUcsQ0FDN0Is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YSxrQkFFZCxrQkFBa0IsYUFDbEIsWUFBWSxhQUNaLGlCQUFpQixhQUNqQix3QkFBd0IsYUFDeEIsb0JBQW9COytHQU5uQixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsd0JBQXdCOzswQkFDL0IsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhdGVnb3J5LFxyXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICBDaGVja291dCxcclxuICBDaGVja291dFN1YnNjcmlwdGlvbixcclxuICBDaGVja291dFR5cGVzLFxyXG4gIENvdXBvbixcclxuICBDb3Vwb25SZXBvc2l0b3J5LFxyXG4gIENvdXBvblR5cGVzLFxyXG4gIEV4Y2x1c2l2aXRpZXMsXHJcbiAgTGluZUl0ZW0sXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIFNob3BzLFxyXG4gIFN0YXR1cyxcclxuICBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gIFdoZXJlXHJcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uL2NvbnN0cydcclxuXHJcbmltcG9ydCB7IEludmFsaWRDb3Vwb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvdXBvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnQ291cG9uUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY291cG9uUmVwb3NpdG9yeTogQ291cG9uUmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcclxuICAgIEBJbmplY3QoJ09yZGVyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgb3JkZXJSZXBvc2l0b3J5OiBPcmRlclJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdTdWJzY3JpcHRpb25SZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICApIHt9XHJcblxyXG4gIGNoZWNrQ291cG9uKFxyXG4gICAgbmlja25hbWU6IHN0cmluZyxcclxuICAgIHVzZXJFbWFpbDogc3RyaW5nLFxyXG4gICAgY2hlY2tvdXRUeXBlOiBDaGVja291dFR5cGVzLFxyXG4gICAgcGxhbj86IHN0cmluZyxcclxuICAgIGNoZWNrb3V0PzogUGFydGlhbDxDaGVja291dD4sXHJcbiAgICBpc1N1YnNjcmlwdGlvbj86IGJvb2xlYW4sXHJcbiAgKTogT2JzZXJ2YWJsZTxDb3Vwb24+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLmNvdXBvblJlcG9zaXRvcnkuZmluZCh7XHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgbmlja25hbWU6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IG5pY2tuYW1lIH0sXHJcbiAgICAgICAgICBhY3RpdmU6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KSxcclxuICAgICkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjb3Vwb25zKSA9PiB0aGlzLmNoZWNrQ291cG9uUnVsZXMoY291cG9ucywgY2hlY2tvdXRUeXBlLCBwbGFuLCBjaGVja291dCwgaXNTdWJzY3JpcHRpb24pKSxcclxuICAgICAgY29uY2F0TWFwKChjb3Vwb246IENvdXBvbikgPT4gdGhpcy5jaGVja0NvdXBvblVzZUFuZExpbWl0KGNvdXBvbiwgdXNlckVtYWlsLCBjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNvdXBvbjogQ291cG9uKSA9PiB0aGlzLmlzVmFsaWRDb3Vwb24oY291cG9uLCB1c2VyRW1haWwpKSxcclxuICAgICAgbWFwKChjb3Vwb246IENvdXBvbikgPT4gY291cG9uKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1haWxJc0Zyb21Db2xsYWJvcmF0b3IgPSAodXNlckVtYWlsOiBzdHJpbmcpOiBib29sZWFuID0+ICEhdXNlckVtYWlsPy5tYXRjaCgvQGI0YS5jb20uYnIvZylcclxuXHJcbiAgcHJpdmF0ZSBjaGVja0NvdXBvblJ1bGVzKFxyXG4gICAgY291cG9ucyxcclxuICAgIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyxcclxuICAgIHBsYW4/OiBzdHJpbmcsXHJcbiAgICBjaGVja291dD86IFBhcnRpYWw8Q2hlY2tvdXQ+LFxyXG4gICAgaXNTdWJzY3JpcHRpb24/OiBib29sZWFuLFxyXG4gICkge1xyXG4gICAgLy8gQ2FzbyBuw6NvIGFjaGUgbmVuaHVtIGN1cG9tLCByZXRvcm5hIGVycm9cclxuICAgIGlmIChjb3Vwb25zLmNvdW50IDwgMSkge1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcignQ3Vwb20gaW52w6FsaWRvLicpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gR2V0IFByaW1laXJvIEN1cG9tIChvIGZpbmQgZG8gcmVwb3NpdG9yeSByZXRvcm5hIHVtIGFycmF5KVxyXG4gICAgY29uc3QgY291cG9uOiBDb3Vwb24gPSBjb3Vwb25zLmRhdGEuc2hpZnQoKVxyXG4gICAgLy8gVmVyaWZpY2Egc2UgbyBjdXBvbSDDqSBhcGxpY2F2ZWwgbmEgbG9qYVxyXG4gICAgY29uc3QgaXNJblNob3AgPSBjb3Vwb24uc2hvcEF2YWlsYWJpbGl0eSA9PT0gU2hvcHMuQUxMIHx8IGNvdXBvbi5zaG9wQXZhaWxhYmlsaXR5ID09PSB0aGlzLmRlZmF1bHRTaG9wXHJcblxyXG4gICAgLy8gQ3Vwb24gbsOjbyBhcGxpY2F2ZWwgYSBsb2phIHJldG9ybmEgZXJyb1xyXG4gICAgaWYgKCFpc0luU2hvcCkgcmV0dXJuIHRocm93RXJyb3IoJ0N1cG9tIGludsOhbGlkbyBwYXJhIGxvamEuJylcclxuXHJcbiAgICAvLyBWZXJpZmljYSBzZSBvIGNvdXBvbiDDqSBhcGxpY2FkbyBubyBjaGVja291dCBxdWUgZXN0w6Egc2VuZG8gcmVhbGl6YWRvXHJcbiAgICBjb25zdCBpc0NoZWNrb3V0VHlwZSA9IGNvdXBvbi5jaGVja291dFR5cGUgPT09IENoZWNrb3V0VHlwZXMuQUxMIHx8IGNvdXBvbi5jaGVja291dFR5cGUgPT09IGNoZWNrb3V0VHlwZVxyXG5cclxuICAgIC8vIEN1cG9uIG7Do28gYXBsaWNhdmVsIGFvIGNoZWNrb3V0IHJldG9ybmEgZXJyb1xyXG4gICAgaWYgKCFpc0NoZWNrb3V0VHlwZSkgcmV0dXJuIHRocm93RXJyb3IoJ0N1cG9tIGludsOhbGlkby4gRXJybyBkZSBjaGVja291dC4nKVxyXG5cclxuICAgIC8vIFZlcmlmaWNhIHNlIG8gY3Vwb20gw6kgb3UgcG9kZSBzZXIgYXBsaWNhZG8gcGFyYSBzdWJzY3JpcHRpb25cclxuICAgIGlmIChjaGVja291dFR5cGUgPT09IENoZWNrb3V0VHlwZXMuQUxMIHx8IGNoZWNrb3V0VHlwZSA9PT0gQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04pIHtcclxuICAgICAgLy8gU2UgbyBjdXBvbSB0aXZlciB1bSBwbGFubyBhc3NvY2lhZG8sIHZlcmlmaWNhIHNlIMOpIG8gbWVzbW8gcGxhbm8gZG8gY2hlY2tvdXQgZGEgYXNzaW5hdHVyYVxyXG4gICAgICBpZiAoY291cG9uLnBsYW4gJiYgY291cG9uLnBsYW4udG9VcHBlckNhc2UoKSAhPT0gcGxhbi50b1VwcGVyQ2FzZSgpKVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdDdXBvbSBpbnbDoWxpZG8gcGFyYSBzdWEgYXNzaW5hdHVyYS4nKVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc1N1YnNjcmlwdGlvbikgcmV0dXJuIG9mKGNvdXBvbilcclxuXHJcbiAgICAvLyBWZXJpZmljYSBzZSBwb3NzdWkgbyB2YWxvciBtaW5pbW8gZGUgY29tcHJhIHBhcmEgdXRpbGl6YcOnw6NvIGRvIGN1cG9tXHJcbiAgICBjb25zdCBoYXNNaW5TdWJUb3RhbCA9IHRoaXMuaGFzTWluU3ViVG90YWwoY291cG9uLCBjaGVja291dClcclxuXHJcbiAgICAvLyBTZSBuw6NvIHRlbSB2YWxvciBtw61uaW1vIGF0aW5naWRvLCByZXRvcm5hIGVycm9cclxuICAgIGlmICghaGFzTWluU3ViVG90YWwpIHJldHVybiB0aHJvd0Vycm9yKCdWYWxvciBtw61uaW1vIG7Do28gYXRpbmdpZG8nKVxyXG5cclxuICAgIHJldHVybiBvZihjb3Vwb24pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmFsaWRDb3Vwb24oY291cG9uOiBDb3Vwb24sIHVzZXJFbWFpbDogc3RyaW5nKTogQ291cG9uIHtcclxuICAgIC8vIFZlcmlmaWNhIGEgZGF0YSBkZSBpbmljaW8gZGUgdmFsaWRhZGUgZG8gY3Vwb21cclxuICAgIGlmIChjb3Vwb24/LmJlZ2luQXQgPiBuZXcgRGF0ZSgpKSB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdDdXBvbSBhaW5kYSBuw6NvIGxpYmVyYWRvLicpXHJcblxyXG4gICAgLy8gVmVyaWZpY2EgYSBkYXRhIGRlIHZhbGlkYWRlIGRvIGN1cG9tXHJcbiAgICBpZiAoY291cG9uPy5leHBpcmVzSW4gPCBuZXcgRGF0ZSgpKSB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdDdXBvbSBleHBpcmFkby4nKVxyXG5cclxuICAgIHJldHVybiBjb3Vwb25cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tDb3Vwb25Vc2VBbmRMaW1pdChjb3Vwb246IENvdXBvbiwgdXNlckVtYWlsOiBzdHJpbmcsIGNoZWNrb3V0KSB7XHJcbiAgICAvLyBCdXNjYSBvcmRlcnMgcXVlIHBvc3N1ZW0gbyBjdXBvbSBlIHF1ZSBlc3TDo28gcGFnYXNcclxuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IHRoaXMub3JkZXJSZXBvc2l0b3J5LmZpbmQoe1xyXG4gICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgY291cG9uOiB7IGlkOiBjb3Vwb24uaWQgfSxcclxuICAgICAgICBwYXltZW50OiB7IHN0YXR1czogJ3BhaWQnIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIC8vIG9yZGVycyBxdWUgdXN1YXJpbyBqYSBmZXogY29tIG8gY3Vwb21cclxuICAgIGNvbnN0IG9yZGVyc1VzZXJDb3Vwb24gPSBvcmRlcnMuZGF0YS5maWx0ZXIoKG8pID0+IG8udXNlci5lbWFpbCA9PSB1c2VyRW1haWwpXHJcblxyXG4gICAgLy8gVmVyaWZpY2EgbyBsaW1pdGUgZGUgdXNvIGRlIGN1cG9tIHBvciB1c3VhcmlvXHJcbiAgICBpZiAoY291cG9uLnVzZUxpbWl0UGVyVXNlciAmJiBvcmRlcnNVc2VyQ291cG9uLmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignTGltaXRlIGRlIHVzbyBwb3IgdXN1w6FyaW8gYXRpbmdpZG8uJylcclxuXHJcbiAgICAvLyBWZXJpZmljYSBvIGxpbWl0ZSBkZSB1c28gZ2VyYWwgcG9yIHVzdWFyaW9cclxuICAgIGlmIChjb3Vwb24udXNlTGltaXQgJiYgb3JkZXJzLmRhdGEubGVuZ3RoID49IGNvdXBvbi51c2VMaW1pdClcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignTGltaXRlIGRlIHVzbyBhdGluZ2lkby4nKVxyXG5cclxuICAgIGNvbnN0IHZhbGlkVXNlciA9IGF3YWl0IHRoaXMudXNlclZhbGlkYXRpb25BbmRTdWJzY3JpcHRpb25TdGF0dXMoY291cG9uLCB1c2VyRW1haWwpXHJcbiAgICBpZiAoIXZhbGlkVXNlcikgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignVXN1w6FyaW8gbsOjbyBlbGVnw612ZWwuJylcclxuXHJcbiAgICAgLy8gVmVyaWZpY2Egc2UgYSBjb21wcmEgcG9zc3VpIHByb2R1dG9zIGVsZWfDrXZlaXMgcGFyYSBkZXNjb250b1xyXG4gICAgY29uc3QgaGFzUHJvZHVjdENhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmhhc1Byb2R1Y3RDYXRlZ29yaWVzKGNvdXBvbiwgY2hlY2tvdXQpXHJcbiAgICBjb25zb2xlLmxvZygnaGFzUHJvZHVjdENhdGVnb3JpZXMnLCBoYXNQcm9kdWN0Q2F0ZWdvcmllcylcclxuICAgIC8vIFNlIG7Do28gdGVtIHByb2R1dG9zIGVsZWfDrXZlaXMsIHJldG9ybmEgZXJyb1xyXG4gICAgaWYgKCFoYXNQcm9kdWN0Q2F0ZWdvcmllcykgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignU2V1IGNhcnJpbmhvIG7Do28gcG9zc3VpIHByb2R1dG9zIGVsZWfDrXZlaXMgcGFyYSBkZXNjb250by4nKVxyXG4gICAgXHJcbiAgICByZXR1cm4gY291cG9uXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uLCBjaGVja291dDogUGFydGlhbDxDaGVja291dFN1YnNjcmlwdGlvbj4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgLy9cclxuICAgIGxldCBkaXNjb3VudCA9IDBcclxuXHJcbiAgICBpZiAoY291cG9uLnR5cGUgPT09IENvdXBvblR5cGVzLkFCU09MVVRFKSBkaXNjb3VudCA9IGNvdXBvbi5kaXNjb3VudFxyXG4gICAgZWxzZSBpZiAoY291cG9uLnR5cGUgPT09IENvdXBvblR5cGVzLlBFUkNFTlRBR0UpXHJcbiAgICAgIGRpc2NvdW50ID0gY2hlY2tvdXQuc3Vic2NyaXB0aW9uUGxhbi5yZWN1cnJlbmNlUHJpY2UgKiAoY291cG9uLmRpc2NvdW50IC8gMTAwKVxyXG5cclxuICAgIHJldHVybiBvZihkaXNjb3VudClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjYWxjRGlzY291bnRTaG9wcGluZyhjb3Vwb246IENvdXBvbiwgY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogUHJvbWlzZTxPYnNlcnZhYmxlPG51bWJlcj4+IHtcclxuICAgIGxldCBkaXNjb3VudCA9IDBcclxuXHJcbiAgICBzd2l0Y2ggKGNvdXBvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgQ291cG9uVHlwZXMuQUJTT0xVVEU6IHtcclxuICAgICAgICBkaXNjb3VudCA9IGNvdXBvbi5kaXNjb3VudFxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5QRVJDRU5UQUdFOiB7XHJcbiAgICAgICAgZGlzY291bnQgPSBhd2FpdCB0aGlzLmNhbGNTaG9wcGluZ1BlcmNlbnRhZ2VEaXNjb3VudChjb3Vwb24sIGNoZWNrb3V0KVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gb2YoZGlzY291bnQpXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGNhbGNTaG9wcGluZ1BlcmNlbnRhZ2VEaXNjb3VudChjb3Vwb246IENvdXBvbiwgY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGxldCBkaXNjb3VudCA9IDBcclxuICAgIGNvbnN0IHNob3AgPSBjaGVja291dC5zaG9wXHJcbiAgICBsZXQgbGluZUl0ZW5zRGlzY291bnQgPSBbXVxyXG4gICAgY29uc3QgY291cG9uQ2F0ZWdvcmllcyA9IGF3YWl0IHRoaXMuZ2V0Q291cG9uQ2F0ZWdvcmllc0lkKGNvdXBvbilcclxuXHJcbiAgICBpZiAoY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcyAmJiBjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmxlbmd0aCkge1xyXG4gICAgICBsaW5lSXRlbnNEaXNjb3VudCA9IGNoZWNrb3V0LmxpbmVJdGVtcz8uZmlsdGVyKChpKSA9PiB7XHJcbiAgICAgICAgaWYgKGkuY2F0ZWdvcmllcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICByZXR1cm4gaS5jYXRlZ29yaWVzLnNvbWUoKGMpID0+IGNvdXBvbkNhdGVnb3JpZXMuc29tZShjYXQgPT4gKGNhdC5pZCA9PSBjIHx8IGNhdC5maXJlc3RvcmVJZCA9PSBjKSkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICAgIH0pXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsaW5lSXRlbnNEaXNjb3VudCA9IGNoZWNrb3V0LmxpbmVJdGVtc1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHN1YlRvdGFsID1cclxuICAgICAgbGluZUl0ZW5zRGlzY291bnQucmVkdWNlKFxyXG4gICAgICAgIChhY2MsIGN1cnI6IExpbmVJdGVtKSA9PlxyXG4gICAgICAgICAgY2hlY2tvdXQudXNlcj8uaXNTdWJzY3JpYmVyICYmIGN1cnIucHJpY2Vbc2hvcF0/LnN1YnNjcmliZXJQcmljZVxyXG4gICAgICAgICAgICA/IGFjYyArIGN1cnIucHJpY2Vbc2hvcF0/LnN1YnNjcmliZXJQcmljZSAqIGN1cnIucXVhbnRpdHlcclxuICAgICAgICAgICAgOiBhY2MgKyBjdXJyLnByaWNlUGFpZCAqIGN1cnIucXVhbnRpdHksXHJcbiAgICAgICAgMCxcclxuICAgICAgKSB8fCAwXHJcblxyXG4gICAgZGlzY291bnQgPSBzdWJUb3RhbCAqIChjb3Vwb24uZGlzY291bnQgLyAxMDApXHJcblxyXG4gICAgcmV0dXJuIGRpc2NvdW50XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhc01pblN1YlRvdGFsKGNvdXBvbjogQ291cG9uLCBjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBib29sZWFuIHtcclxuICAgIGlmICghY291cG9uLm1pblN1YlRvdGFsVmFsdWUpIHJldHVybiB0cnVlXHJcblxyXG4gICAgY29uc3Qgc2hvcCA9IGNoZWNrb3V0LnNob3BcclxuXHJcbiAgICBsZXQgc3ViVG90YWwgPVxyXG4gICAgICBjaGVja291dC5saW5lSXRlbXM/LnJlZHVjZShcclxuICAgICAgICAoYWNjLCBjdXJyKSA9PlxyXG4gICAgICAgICAgY2hlY2tvdXQudXNlcj8uaXNTdWJzY3JpYmVyICYmIGN1cnIucHJpY2Vbc2hvcF0/LnN1YnNjcmliZXJQcmljZVxyXG4gICAgICAgICAgICA/IGFjYyArIGN1cnIucHJpY2Vbc2hvcF0/LnN1YnNjcmliZXJQcmljZSAqIGN1cnIucXVhbnRpdHlcclxuICAgICAgICAgICAgOiBhY2MgKyBjdXJyLnByaWNlUGFpZCAqIGN1cnIucXVhbnRpdHksXHJcbiAgICAgICAgMCxcclxuICAgICAgKSB8fCAwXHJcblxyXG4gICAgaWYgKGNvdXBvbi5taW5TdWJUb3RhbFZhbHVlIDw9IHN1YlRvdGFsKSByZXR1cm4gdHJ1ZVxyXG4gICAgcmV0dXJuIGZhbHNlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGhhc1Byb2R1Y3RDYXRlZ29yaWVzKGNvdXBvbjogQ291cG9uLCBjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuXHJcbiAgICBpZiAoIWNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMgJiYgIWNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMubGVuZ3RoKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKCduw6NvIHBvc3N1aSBjYXRlZ29yaWVzJylcclxuICAgICAgcmV0dXJuIHRydWVcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb3Vwb25DYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5nZXRDb3Vwb25DYXRlZ29yaWVzSWQoY291cG9uKVxyXG4gICAgXHJcbiAgICBjb25zb2xlLmxvZygnY291cG9uQ2F0ZWdvcmllcycsIGNvdXBvbkNhdGVnb3JpZXMubGVuZ3RoLCBjb3Vwb25DYXRlZ29yaWVzKVxyXG5cclxuICAgIGNvbnN0IGhhc0NhdGVnb3JpZXMgPSBjaGVja291dC5saW5lSXRlbXM/LmZpbHRlcihpID0+IHtcclxuICAgICAgY29uc29sZS5sb2coJ2VudHJvdSBubyBmaWx0ZXInKVxyXG4gICAgICBpZiAoIWkuY2F0ZWdvcmllcyB8fCAhaS5jYXRlZ29yaWVzPy5sZW5ndGgpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygncHJvZHV0byBuw6NvIHRlbSBjYXRlZ29yaWFzJylcclxuICAgICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaS5jYXRlZ29yaWVzLnNvbWUoKGMpID0+IHtcclxuICAgICAgICAgY29uc29sZS5sb2coJ2VudHJvdSBubyBzb21lIDEnLCBjKVxyXG4gICAgICAgIHJldHVybiBjb3Vwb25DYXRlZ29yaWVzLnNvbWUoY2F0ID0+IChjYXQuaWQgPT0gYyB8fCBjYXQuZmlyZXN0b3JlSWQgPT0gYykpXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICAvLyByZXR1cm4gaS5jYXRlZ29yaWVzLnNvbWUoYXN5bmMgKGMpID0+IHtcclxuICAgICAgLy8gICBjb25zb2xlLmxvZygnc29tZSBjYXRlZ29yeSBjJywgYylcclxuICAgICAgLy8gICBjb25zdCBjYXRlZ29yaWE6IENhdGVnb3J5ICYgeyBmaXJlc3RvcmVJZD86IHN0cmluZyB9ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnkuZ2V0KHtpZDogY30pICAgICAgICAgIFxyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGNhdGVnb3JpYSlcclxuICAgICAgLy8gICBjb25zb2xlLmxvZyhjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5pZCksIGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmZpcmVzdG9yZUlkKSwgaS5pc0dpZnQpXHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coJ3ZhbGlkYXRpb24nLCAoY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuaWQpIHx8IGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmZpcmVzdG9yZUlkKSkgJiYgIWkuaXNHaWZ0KVxyXG4gICAgICAvLyAgIHJldHVybiAoY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuaWQpIHx8IGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmZpcmVzdG9yZUlkKSkgJiYgIWkuaXNHaWZ0XHJcbiAgICAgIFxyXG4gICAgICAvLyB9KVxyXG4gICAgfSlcclxuXHJcblxyXG4gICAgY29uc29sZS5sb2coJ2ZpbmFsIHJldHVybicsIGhhc0NhdGVnb3JpZXMsIGhhc0NhdGVnb3JpZXMubGVuZ3RoKVxyXG4gICAgcmV0dXJuIGhhc0NhdGVnb3JpZXMubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlXHJcblxyXG5cclxuICAgIC8vIGlmIChjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzICYmIGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMubGVuZ3RoKSB7XHJcbiAgICAvLyAgIGNvbnN0IGhhc0NhdGVnb3JpZXMgPSBjaGVja291dC5saW5lSXRlbXM/LmZpbHRlcigoaSkgPT4ge1xyXG4gICAgLy8gICAgIGlmIChpLmNhdGVnb3JpZXM/Lmxlbmd0aCkge1xyXG4gXHJcbiAgICAvLyAgICAgICByZXR1cm4gaS5jYXRlZ29yaWVzLnNvbWUoYXN5bmMgKGMpID0+IHtcclxuICAgIC8vICAgICAgICAgY29uc3QgY2F0ZWdvcmlhOiBDYXRlZ29yeSAmIHsgZmlyZXN0b3JlSWQ/OiBzdHJpbmcgfSA9IGF3YWl0IHRoaXMuY2F0ZWdvcnlSZXBvc2l0b3J5LmdldCh7aWQ6IGN9KSAgICAgICAgICBcclxuICAgIC8vICAgICAgICAgY29uc29sZS5sb2coY2F0ZWdvcmlhKVxyXG4gICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5pZCksIGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmZpcmVzdG9yZUlkKSwgaS5pc0dpZnQpXHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKCd2YWxpZGF0aW9uJywgKGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmlkKSB8fCBjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5maXJlc3RvcmVJZCkpICYmICFpLmlzR2lmdClcclxuICAgIC8vICAgICAgICAgcmV0dXJuIChjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5pZCkgfHwgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuZmlyZXN0b3JlSWQpKSAmJiAhaS5pc0dpZnRcclxuICAgIC8vICAgICAgIH0pXHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gICAgIHJldHVybiB0cnVlXHJcbiAgICAvLyAgIH0pXHJcbiAgICAvLyAgIHJldHVybiBoYXNDYXRlZ29yaWVzLmxlbmd0aCA/IHRydWUgOiBmYWxzZVxyXG4gICAgLy8gfSBlbHNlIHtcclxuICAgIC8vICAgcmV0dXJuIHRydWVcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgdXNlclZhbGlkYXRpb25BbmRTdWJzY3JpcHRpb25TdGF0dXMoY291cG9uOiBDb3Vwb24sIHVzZXJFbWFpbDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICAvLyBWZXJpZmljYSBzZSBvIGVtYWlsIGRvIHVzdcOhcmlvIMOpIGNvb3Jwb3JhdGl2b1xyXG4gICAgaWYgKCF0aGlzLmVtYWlsSXNGcm9tQ29sbGFib3JhdG9yKHVzZXJFbWFpbCkgJiYgY291cG9uLmV4Y2x1c2l2aXR5VHlwZSA9PT0gRXhjbHVzaXZpdGllcy5DT0xMQUJPUkFUT1JTKVxyXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdWb2PDqiBuw6NvIMOpIGNvbGFib3JhZG9yLicpXHJcblxyXG4gICAgLy8gVmVyaWZpY2Egc2UgbyBlbWFpbCBkbyB1c3XDoXJpbyDDqSBhc3NvY2lhZG8gYW8gY3Vwb20gZGUgdXNvIHBvciB1c3VhcmlvXHJcbiAgICBpZiAoY291cG9uLmV4Y2x1c2l2aXR5VHlwZSA9PT0gRXhjbHVzaXZpdGllcy5TUEVDSUZJQ19VU0VSICYmIGNvdXBvbi51c2VyRXhjbHVzaXZlRW1haWwgIT09IHVzZXJFbWFpbClcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignQ3Vwb20gbsOjbyDDqSB2w6FsaWRvIHBhcmEgZXN0ZSB1c3XDoXJpby4nKVxyXG5cclxuICAgIGNvbnN0IGNvdXBvblJ1bGVTdWJzY3JpcHRpb24gPVxyXG4gICAgICBjb3Vwb24uZXhjbHVzaXZpdHlUeXBlID09PSBFeGNsdXNpdml0aWVzLkFDVElWRV9TVUJTQ1JJQkVSIHx8XHJcbiAgICAgIGNvdXBvbi5leGNsdXNpdml0eVR5cGUgPT09IEV4Y2x1c2l2aXRpZXMuSU5BQ1RJVkVfU1VCU0NSSUJFUiB8fFxyXG4gICAgICBjb3Vwb24uZXhjbHVzaXZpdHlUeXBlID09PSBFeGNsdXNpdml0aWVzLk5PTl9TVUJTQ1JJQkVSXHJcblxyXG4gICAgaWYgKGNvdXBvblJ1bGVTdWJzY3JpcHRpb24gJiYgdXNlckVtYWlsKSB7XHJcbiAgICAgIGNvbnN0IHN1YiA9IGF3YWl0IHRoaXMuc3Vic2NyaXB0aW9uUmVwb3NpdG9yeVxyXG4gICAgICAgIC5maW5kKHtcclxuICAgICAgICAgIGZpbHRlcnM6IHtcclxuICAgICAgICAgICAgdXNlcjoge1xyXG4gICAgICAgICAgICAgIGVtYWlsOiB7IG9wZXJhdG9yOiBXaGVyZS5FUVVBTFMsIHZhbHVlOiB1c2VyRW1haWwgfSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgICAgICAudGhlbigoc3ViKSA9PiBzdWIuZGF0YSlcclxuXHJcbiAgICAgIGNvbnN0IGFjdGl2ZVN1YnMgPSBzdWI/LmZpbHRlcigocykgPT4gcy5zdGF0dXMgPT09IFN0YXR1cy5BQ1RJVkUpXHJcblxyXG4gICAgICBzd2l0Y2ggKGNvdXBvbi5leGNsdXNpdml0eVR5cGUpIHtcclxuICAgICAgICBjYXNlIEV4Y2x1c2l2aXRpZXMuQUNUSVZFX1NVQlNDUklCRVI6XHJcbiAgICAgICAgICByZXR1cm4gYWN0aXZlU3Vicy5sZW5ndGggPiAwXHJcbiAgICAgICAgY2FzZSBFeGNsdXNpdml0aWVzLklOQUNUSVZFX1NVQlNDUklCRVI6XHJcbiAgICAgICAgICByZXR1cm4gYWN0aXZlU3Vicy5sZW5ndGggPT09IDBcclxuICAgICAgICBjYXNlIEV4Y2x1c2l2aXRpZXMuTk9OX1NVQlNDUklCRVI6XHJcbiAgICAgICAgICByZXR1cm4gc3ViLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2VcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGdldENvdXBvbkNhdGVnb3JpZXNJZChjb3Vwb24pIHtcclxuXHJcbiAgICAgbGV0IGNvdXBvbkNhdGVnb3JpZXM6IHsgaWQ6IHN0cmluZywgZmlyZXN0b3JlSWQ6IHN0cmluZyB9W10gPSBbXVxyXG5cclxuICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgbGV0IGM6IENhdGVnb3J5ICYgeyBmaXJlc3RvcmVJZD86IHN0cmluZyB9ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnkuZ2V0KHsgaWQ6IGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXNbaW5kZXhdIH0pICAgIFxyXG4gICAgICAgIGNvdXBvbkNhdGVnb3JpZXMucHVzaCh7IGlkOiBjLmlkLCBmaXJlc3RvcmVJZDogYy5maXJlc3RvcmVJZH0pXHJcbiAgICAgIH1cclxuICAgIFxyXG4gICAgICByZXR1cm4gY291cG9uQ2F0ZWdvcmllc1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXBhcmF0ZVZhbGlkQ291cG9ucyA9IChcclxuICAgIGNvdXBvbnM6IENvdXBvbltdLFxyXG4gICAgdXNlckVtYWlsOiBzdHJpbmcsXHJcbiAgKTogeyB2YWxpZHM6IENvdXBvbltdOyBpbnZhbGlkczogSW52YWxpZENvdXBvbkVycm9yW10gfSA9PlxyXG4gICAgY291cG9uc1xyXG4gICAgICAubWFwKChjb3Vwb24pID0+IHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgaWYgKCEoY291cG9uIGluc3RhbmNlb2YgQ291cG9uKSkgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignQ3Vwb20gaW52w6FsaWRvLicpXHJcbiAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkQ291cG9uKGNvdXBvbiwgdXNlckVtYWlsKSkgcmV0dXJuIGNvdXBvblxyXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICByZXR1cm4gZXJyb3IgYXMgSW52YWxpZENvdXBvbkVycm9yXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAucmVkdWNlKFxyXG4gICAgICAgIChjdXJyZW50LCBjb3Vwb24pID0+ICh7XHJcbiAgICAgICAgICAuLi5jdXJyZW50LFxyXG4gICAgICAgICAgLi4uKGNvdXBvbiBpbnN0YW5jZW9mIENvdXBvblxyXG4gICAgICAgICAgICA/IHsgdmFsaWRzOiBbLi4uY3VycmVudC52YWxpZHMsIGNvdXBvbl0gfVxyXG4gICAgICAgICAgICA6IHsgaW52YWxpZHM6IFsuLi5jdXJyZW50LmludmFsaWRzLCBjb3Vwb25dIH0pLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHZhbGlkczogW10gYXMgQ291cG9uW10sXHJcbiAgICAgICAgICBpbnZhbGlkczogW10gYXMgSW52YWxpZENvdXBvbkVycm9yW10sXHJcbiAgICAgICAgfSxcclxuICAgICAgKVxyXG59XHJcbiJdfQ==
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291cG9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0LWFuZ3VsYXIvc3JjL3NlcnZpY2VzL2NvdXBvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUNsRCxPQUFPLEVBS0wsYUFBYSxFQUNiLE1BQU0sRUFFTixXQUFXLEVBQ1gsYUFBYSxFQUdiLEtBQUssRUFDTCxNQUFNLEVBRU4sS0FBSyxFQUNOLE1BQU0sbUJBQW1CLENBQUE7QUFDMUIsT0FBTyxFQUFFLElBQUksRUFBYyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQ3ZELE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV4QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxVQUFVLENBQUE7OztBQUs3QyxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUMrQyxnQkFBa0MsRUFDeEMsV0FBa0IsRUFDYixlQUFnQyxFQUN6QixzQkFBOEMsRUFDbEQsa0JBQXNDO1FBSnhDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDeEMsZ0JBQVcsR0FBWCxXQUFXLENBQU87UUFDYixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDekIsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUNsRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBMEIvRSw0QkFBdUIsR0FBRyxDQUFDLFNBQWlCLEVBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBLFNBQVMsYUFBVCxTQUFTLHVCQUFULFNBQVMsQ0FBRSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUEsQ0FBQTtRQXNSNUYseUJBQW9CLEdBQUcsQ0FDN0Is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YUFDbEIsWUFBWSxhQUNaLGlCQUFpQixhQUNqQix3QkFBd0IsYUFDeEIsb0JBQW9COytHQU5uQixhQUFhLGNBRlosTUFBTTs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBR0ksTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLFlBQVk7OzBCQUNuQixNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3hCLE1BQU07MkJBQUMsd0JBQXdCOzswQkFDL0IsTUFBTTsyQkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xyXG5pbXBvcnQge1xyXG4gIENhdGVnb3J5LFxyXG4gIENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICBDaGVja291dCxcclxuICBDaGVja291dFN1YnNjcmlwdGlvbixcclxuICBDaGVja291dFR5cGVzLFxyXG4gIENvdXBvbixcclxuICBDb3Vwb25SZXBvc2l0b3J5LFxyXG4gIENvdXBvblR5cGVzLFxyXG4gIEV4Y2x1c2l2aXRpZXMsXHJcbiAgTGluZUl0ZW0sXHJcbiAgT3JkZXJSZXBvc2l0b3J5LFxyXG4gIFNob3BzLFxyXG4gIFN0YXR1cyxcclxuICBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gIFdoZXJlXHJcbn0gZnJvbSAnQGluZnJhYjRhL2Nvbm5lY3QnXHJcbmltcG9ydCB7IGZyb20sIE9ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcydcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcclxuXHJcbmltcG9ydCB7IERFRkFVTFRfU0hPUCB9IGZyb20gJy4uL2NvbnN0cydcclxuXHJcbmltcG9ydCB7IEludmFsaWRDb3Vwb25FcnJvciB9IGZyb20gJy4vZXJyb3JzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvdXBvblNlcnZpY2Uge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEluamVjdCgnQ291cG9uUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgY291cG9uUmVwb3NpdG9yeTogQ291cG9uUmVwb3NpdG9yeSxcclxuICAgIEBJbmplY3QoREVGQVVMVF9TSE9QKSBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRTaG9wOiBTaG9wcyxcclxuICAgIEBJbmplY3QoJ09yZGVyUmVwb3NpdG9yeScpIHByaXZhdGUgcmVhZG9ubHkgb3JkZXJSZXBvc2l0b3J5OiBPcmRlclJlcG9zaXRvcnksXHJcbiAgICBASW5qZWN0KCdTdWJzY3JpcHRpb25SZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBzdWJzY3JpcHRpb25SZXBvc2l0b3J5OiBTdWJzY3JpcHRpb25SZXBvc2l0b3J5LFxyXG4gICAgQEluamVjdCgnQ2F0ZWdvcnlSZXBvc2l0b3J5JykgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVJlcG9zaXRvcnk6IENhdGVnb3J5UmVwb3NpdG9yeSxcclxuICApIHt9XHJcblxyXG4gIGNoZWNrQ291cG9uKFxyXG4gICAgbmlja25hbWU6IHN0cmluZyxcclxuICAgIHVzZXJFbWFpbDogc3RyaW5nLFxyXG4gICAgY2hlY2tvdXRUeXBlOiBDaGVja291dFR5cGVzLFxyXG4gICAgcGxhbj86IHN0cmluZyxcclxuICAgIGNoZWNrb3V0PzogUGFydGlhbDxDaGVja291dD4sXHJcbiAgICBpc1N1YnNjcmlwdGlvbj86IGJvb2xlYW4sXHJcbiAgKTogT2JzZXJ2YWJsZTxDb3Vwb24+IHtcclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICB0aGlzLmNvdXBvblJlcG9zaXRvcnkuZmluZCh7XHJcbiAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgbmlja25hbWU6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IG5pY2tuYW1lIH0sXHJcbiAgICAgICAgICBhY3RpdmU6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHRydWUgfSxcclxuICAgICAgICB9LFxyXG4gICAgICB9KSxcclxuICAgICkucGlwZShcclxuICAgICAgY29uY2F0TWFwKChjb3Vwb25zKSA9PiB0aGlzLmNoZWNrQ291cG9uUnVsZXMoY291cG9ucywgY2hlY2tvdXRUeXBlLCBwbGFuLCBjaGVja291dCwgaXNTdWJzY3JpcHRpb24pKSxcclxuICAgICAgY29uY2F0TWFwKChjb3Vwb246IENvdXBvbikgPT4gdGhpcy5jaGVja0NvdXBvblVzZUFuZExpbWl0KGNvdXBvbiwgdXNlckVtYWlsLCBjaGVja291dCkpLFxyXG4gICAgICBtYXAoKGNvdXBvbjogQ291cG9uKSA9PiB0aGlzLmlzVmFsaWRDb3Vwb24oY291cG9uLCB1c2VyRW1haWwpKSxcclxuICAgICAgbWFwKChjb3Vwb246IENvdXBvbikgPT4gY291cG9uKSxcclxuICAgIClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1haWxJc0Zyb21Db2xsYWJvcmF0b3IgPSAodXNlckVtYWlsOiBzdHJpbmcpOiBib29sZWFuID0+ICEhdXNlckVtYWlsPy5tYXRjaCgvQGI0YS5jb20uYnIvZylcclxuXHJcbiAgcHJpdmF0ZSBjaGVja0NvdXBvblJ1bGVzKFxyXG4gICAgY291cG9ucyxcclxuICAgIGNoZWNrb3V0VHlwZTogQ2hlY2tvdXRUeXBlcyxcclxuICAgIHBsYW4/OiBzdHJpbmcsXHJcbiAgICBjaGVja291dD86IFBhcnRpYWw8Q2hlY2tvdXQ+LFxyXG4gICAgaXNTdWJzY3JpcHRpb24/OiBib29sZWFuLFxyXG4gICkge1xyXG4gICAgLy8gQ2FzbyBuw6NvIGFjaGUgbmVuaHVtIGN1cG9tLCByZXRvcm5hIGVycm9cclxuICAgIGlmIChjb3Vwb25zLmNvdW50IDwgMSkge1xyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcignQ3Vwb20gaW52w6FsaWRvLicpXHJcbiAgICB9XHJcblxyXG4gICAgLy8gR2V0IFByaW1laXJvIEN1cG9tIChvIGZpbmQgZG8gcmVwb3NpdG9yeSByZXRvcm5hIHVtIGFycmF5KVxyXG4gICAgY29uc3QgY291cG9uOiBDb3Vwb24gPSBjb3Vwb25zLmRhdGEuc2hpZnQoKVxyXG4gICAgLy8gVmVyaWZpY2Egc2UgbyBjdXBvbSDDqSBhcGxpY2F2ZWwgbmEgbG9qYVxyXG4gICAgY29uc3QgaXNJblNob3AgPSBjb3Vwb24uc2hvcEF2YWlsYWJpbGl0eSA9PT0gU2hvcHMuQUxMIHx8IGNvdXBvbi5zaG9wQXZhaWxhYmlsaXR5ID09PSB0aGlzLmRlZmF1bHRTaG9wXHJcblxyXG4gICAgLy8gQ3Vwb24gbsOjbyBhcGxpY2F2ZWwgYSBsb2phIHJldG9ybmEgZXJyb1xyXG4gICAgaWYgKCFpc0luU2hvcCkgcmV0dXJuIHRocm93RXJyb3IoJ0N1cG9tIGludsOhbGlkbyBwYXJhIGxvamEuJylcclxuXHJcbiAgICAvLyBWZXJpZmljYSBzZSBvIGNvdXBvbiDDqSBhcGxpY2FkbyBubyBjaGVja291dCBxdWUgZXN0w6Egc2VuZG8gcmVhbGl6YWRvXHJcbiAgICBjb25zdCBpc0NoZWNrb3V0VHlwZSA9IGNvdXBvbi5jaGVja291dFR5cGUgPT09IENoZWNrb3V0VHlwZXMuQUxMIHx8IGNvdXBvbi5jaGVja291dFR5cGUgPT09IGNoZWNrb3V0VHlwZVxyXG5cclxuICAgIC8vIEN1cG9uIG7Do28gYXBsaWNhdmVsIGFvIGNoZWNrb3V0IHJldG9ybmEgZXJyb1xyXG4gICAgaWYgKCFpc0NoZWNrb3V0VHlwZSkgcmV0dXJuIHRocm93RXJyb3IoJ0N1cG9tIGludsOhbGlkby4gRXJybyBkZSBjaGVja291dC4nKVxyXG5cclxuICAgIC8vIFZlcmlmaWNhIHNlIG8gY3Vwb20gw6kgb3UgcG9kZSBzZXIgYXBsaWNhZG8gcGFyYSBzdWJzY3JpcHRpb25cclxuICAgIGlmIChjaGVja291dFR5cGUgPT09IENoZWNrb3V0VHlwZXMuQUxMIHx8IGNoZWNrb3V0VHlwZSA9PT0gQ2hlY2tvdXRUeXBlcy5TVUJTQ1JJUFRJT04pIHtcclxuICAgICAgLy8gU2UgbyBjdXBvbSB0aXZlciB1bSBwbGFubyBhc3NvY2lhZG8sIHZlcmlmaWNhIHNlIMOpIG8gbWVzbW8gcGxhbm8gZG8gY2hlY2tvdXQgZGEgYXNzaW5hdHVyYVxyXG4gICAgICBpZiAoY291cG9uLnBsYW4gJiYgY291cG9uLnBsYW4udG9VcHBlckNhc2UoKSAhPT0gcGxhbi50b1VwcGVyQ2FzZSgpKVxyXG4gICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCdDdXBvbSBpbnbDoWxpZG8gcGFyYSBzdWEgYXNzaW5hdHVyYS4nKVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChpc1N1YnNjcmlwdGlvbikgcmV0dXJuIG9mKGNvdXBvbilcclxuXHJcbiAgICAvLyBWZXJpZmljYSBzZSBwb3NzdWkgbyB2YWxvciBtaW5pbW8gZGUgY29tcHJhIHBhcmEgdXRpbGl6YcOnw6NvIGRvIGN1cG9tXHJcbiAgICBjb25zdCBoYXNNaW5TdWJUb3RhbCA9IHRoaXMuaGFzTWluU3ViVG90YWwoY291cG9uLCBjaGVja291dClcclxuXHJcbiAgICAvLyBTZSBuw6NvIHRlbSB2YWxvciBtw61uaW1vIGF0aW5naWRvLCByZXRvcm5hIGVycm9cclxuICAgIGlmICghaGFzTWluU3ViVG90YWwpIHJldHVybiB0aHJvd0Vycm9yKCdWYWxvciBtw61uaW1vIG7Do28gYXRpbmdpZG8nKVxyXG5cclxuICAgIHJldHVybiBvZihjb3Vwb24pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVmFsaWRDb3Vwb24oY291cG9uOiBDb3Vwb24sIHVzZXJFbWFpbDogc3RyaW5nKTogQ291cG9uIHtcclxuICAgIC8vIFZlcmlmaWNhIGEgZGF0YSBkZSBpbmljaW8gZGUgdmFsaWRhZGUgZG8gY3Vwb21cclxuICAgIGlmIChjb3Vwb24/LmJlZ2luQXQgPiBuZXcgRGF0ZSgpKSB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdDdXBvbSBhaW5kYSBuw6NvIGxpYmVyYWRvLicpXHJcblxyXG4gICAgLy8gVmVyaWZpY2EgYSBkYXRhIGRlIHZhbGlkYWRlIGRvIGN1cG9tXHJcbiAgICBpZiAoY291cG9uPy5leHBpcmVzSW4gPCBuZXcgRGF0ZSgpKSB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdDdXBvbSBleHBpcmFkby4nKVxyXG5cclxuICAgIHJldHVybiBjb3Vwb25cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tDb3Vwb25Vc2VBbmRMaW1pdChjb3Vwb246IENvdXBvbiwgdXNlckVtYWlsOiBzdHJpbmcsIGNoZWNrb3V0KSB7XHJcbiAgICAvLyBCdXNjYSBvcmRlcnMgcXVlIHBvc3N1ZW0gbyBjdXBvbSBlIHF1ZSBlc3TDo28gcGFnYXNcclxuICAgIGNvbnN0IG9yZGVycyA9IGF3YWl0IHRoaXMub3JkZXJSZXBvc2l0b3J5LmZpbmQoe1xyXG4gICAgICBmaWx0ZXJzOiB7XHJcbiAgICAgICAgY291cG9uOiB7IGlkOiBjb3Vwb24uaWQgfSxcclxuICAgICAgICBwYXltZW50OiB7IHN0YXR1czogJ3BhaWQnIH0sXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG5cclxuICAgIC8vIG9yZGVycyBxdWUgdXN1YXJpbyBqYSBmZXogY29tIG8gY3Vwb21cclxuICAgIGNvbnN0IG9yZGVyc1VzZXJDb3Vwb24gPSBvcmRlcnMuZGF0YS5maWx0ZXIoKG8pID0+IG8udXNlci5lbWFpbCA9PSB1c2VyRW1haWwpXHJcblxyXG4gICAgLy8gVmVyaWZpY2EgbyBsaW1pdGUgZGUgdXNvIGRlIGN1cG9tIHBvciB1c3VhcmlvXHJcbiAgICBpZiAoY291cG9uLnVzZUxpbWl0UGVyVXNlciAmJiBvcmRlcnNVc2VyQ291cG9uLmxlbmd0aClcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignTGltaXRlIGRlIHVzbyBwb3IgdXN1w6FyaW8gYXRpbmdpZG8uJylcclxuXHJcbiAgICAvLyBWZXJpZmljYSBvIGxpbWl0ZSBkZSB1c28gZ2VyYWwgcG9yIHVzdWFyaW9cclxuICAgIGlmIChjb3Vwb24udXNlTGltaXQgJiYgb3JkZXJzLmRhdGEubGVuZ3RoID49IGNvdXBvbi51c2VMaW1pdClcclxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignTGltaXRlIGRlIHVzbyBhdGluZ2lkby4nKVxyXG5cclxuICAgIGNvbnN0IHZhbGlkVXNlciA9IGF3YWl0IHRoaXMudXNlclZhbGlkYXRpb25BbmRTdWJzY3JpcHRpb25TdGF0dXMoY291cG9uLCB1c2VyRW1haWwpXHJcbiAgICBpZiAoIXZhbGlkVXNlcikgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignVXN1w6FyaW8gbsOjbyBlbGVnw612ZWwuJylcclxuXHJcbiAgICAgLy8gVmVyaWZpY2Egc2UgYSBjb21wcmEgcG9zc3VpIHByb2R1dG9zIGVsZWfDrXZlaXMgcGFyYSBkZXNjb250b1xyXG4gICAgY29uc3QgaGFzUHJvZHVjdENhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmhhc1Byb2R1Y3RDYXRlZ29yaWVzKGNvdXBvbiwgY2hlY2tvdXQpXHJcbiAgICBjb25zb2xlLmxvZygnaGFzUHJvZHVjdENhdGVnb3JpZXMnLCBoYXNQcm9kdWN0Q2F0ZWdvcmllcylcclxuICAgIC8vIFNlIG7Do28gdGVtIHByb2R1dG9zIGVsZWfDrXZlaXMsIHJldG9ybmEgZXJyb1xyXG4gICAgaWYgKCFoYXNQcm9kdWN0Q2F0ZWdvcmllcykgdGhyb3cgbmV3IEludmFsaWRDb3Vwb25FcnJvcignU2V1IGNhcnJpbmhvIG7Do28gcG9zc3VpIHByb2R1dG9zIGVsZWfDrXZlaXMgcGFyYSBkZXNjb250by4nKVxyXG4gICAgXHJcbiAgICByZXR1cm4gY291cG9uXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2FsY0Rpc2NvdW50U3Vic2NyaXB0aW9uKGNvdXBvbjogQ291cG9uLCBjaGVja291dDogUGFydGlhbDxDaGVja291dFN1YnNjcmlwdGlvbj4pOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG4gICAgLy9cclxuICAgIGxldCBkaXNjb3VudCA9IDBcclxuXHJcbiAgICBpZiAoY291cG9uLnR5cGUgPT09IENvdXBvblR5cGVzLkFCU09MVVRFKSBkaXNjb3VudCA9IGNvdXBvbi5kaXNjb3VudFxyXG4gICAgZWxzZSBpZiAoY291cG9uLnR5cGUgPT09IENvdXBvblR5cGVzLlBFUkNFTlRBR0UpXHJcbiAgICAgIGRpc2NvdW50ID0gY2hlY2tvdXQuc3Vic2NyaXB0aW9uUGxhbi5yZWN1cnJlbmNlUHJpY2UgKiAoY291cG9uLmRpc2NvdW50IC8gMTAwKVxyXG5cclxuICAgIHJldHVybiBvZihkaXNjb3VudClcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjYWxjRGlzY291bnRTaG9wcGluZyhjb3Vwb246IENvdXBvbiwgY2hlY2tvdXQ6IFBhcnRpYWw8Q2hlY2tvdXQ+KTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGxldCBkaXNjb3VudCA9IDBcclxuXHJcbiAgICBzd2l0Y2ggKGNvdXBvbi50eXBlKSB7XHJcbiAgICAgIGNhc2UgQ291cG9uVHlwZXMuQUJTT0xVVEU6IHtcclxuICAgICAgICBkaXNjb3VudCA9IGNvdXBvbi5kaXNjb3VudFxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgICAgY2FzZSBDb3Vwb25UeXBlcy5QRVJDRU5UQUdFOiB7XHJcbiAgICAgICAgZGlzY291bnQgPSBhd2FpdCB0aGlzLmNhbGNTaG9wcGluZ1BlcmNlbnRhZ2VEaXNjb3VudChjb3Vwb24sIGNoZWNrb3V0KVxyXG4gICAgICAgIGJyZWFrXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZGlzY291bnRcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgY2FsY1Nob3BwaW5nUGVyY2VudGFnZURpc2NvdW50KGNvdXBvbjogQ291cG9uLCBjaGVja291dDogUGFydGlhbDxDaGVja291dD4pOiBQcm9taXNlPG51bWJlcj4ge1xyXG4gICAgbGV0IGRpc2NvdW50ID0gMFxyXG4gICAgY29uc3Qgc2hvcCA9IGNoZWNrb3V0LnNob3BcclxuICAgIGxldCBsaW5lSXRlbnNEaXNjb3VudCA9IFtdXHJcbiAgICBjb25zdCBjb3Vwb25DYXRlZ29yaWVzID0gYXdhaXQgdGhpcy5nZXRDb3Vwb25DYXRlZ29yaWVzSWQoY291cG9uKVxyXG5cclxuICAgIGlmIChjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzICYmIGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMubGVuZ3RoKSB7XHJcbiAgICAgIGxpbmVJdGVuc0Rpc2NvdW50ID0gY2hlY2tvdXQubGluZUl0ZW1zPy5maWx0ZXIoKGkpID0+IHtcclxuICAgICAgICBpZiAoaS5jYXRlZ29yaWVzPy5sZW5ndGgpIHtcclxuICAgICAgICAgIHJldHVybiBpLmNhdGVnb3JpZXMuc29tZSgoYykgPT4gY291cG9uQ2F0ZWdvcmllcy5zb21lKGNhdCA9PiAoY2F0LmlkID09IGMgfHwgY2F0LmZpcmVzdG9yZUlkID09IGMpKSlcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWVcclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxpbmVJdGVuc0Rpc2NvdW50ID0gY2hlY2tvdXQubGluZUl0ZW1zXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3Qgc3ViVG90YWwgPVxyXG4gICAgICBsaW5lSXRlbnNEaXNjb3VudC5yZWR1Y2UoXHJcbiAgICAgICAgKGFjYywgY3VycjogTGluZUl0ZW0pID0+XHJcbiAgICAgICAgICBjaGVja291dC51c2VyPy5pc1N1YnNjcmliZXIgJiYgY3Vyci5wcmljZVtzaG9wXT8uc3Vic2NyaWJlclByaWNlXHJcbiAgICAgICAgICAgID8gYWNjICsgY3Vyci5wcmljZVtzaG9wXT8uc3Vic2NyaWJlclByaWNlICogY3Vyci5xdWFudGl0eVxyXG4gICAgICAgICAgICA6IGFjYyArIGN1cnIucHJpY2VQYWlkICogY3Vyci5xdWFudGl0eSxcclxuICAgICAgICAwLFxyXG4gICAgICApIHx8IDBcclxuXHJcbiAgICBkaXNjb3VudCA9IHN1YlRvdGFsICogKGNvdXBvbi5kaXNjb3VudCAvIDEwMClcclxuXHJcbiAgICByZXR1cm4gZGlzY291bnRcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFzTWluU3ViVG90YWwoY291cG9uOiBDb3Vwb24sIGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCFjb3Vwb24ubWluU3ViVG90YWxWYWx1ZSkgcmV0dXJuIHRydWVcclxuXHJcbiAgICBjb25zdCBzaG9wID0gY2hlY2tvdXQuc2hvcFxyXG5cclxuICAgIGxldCBzdWJUb3RhbCA9XHJcbiAgICAgIGNoZWNrb3V0LmxpbmVJdGVtcz8ucmVkdWNlKFxyXG4gICAgICAgIChhY2MsIGN1cnIpID0+XHJcbiAgICAgICAgICBjaGVja291dC51c2VyPy5pc1N1YnNjcmliZXIgJiYgY3Vyci5wcmljZVtzaG9wXT8uc3Vic2NyaWJlclByaWNlXHJcbiAgICAgICAgICAgID8gYWNjICsgY3Vyci5wcmljZVtzaG9wXT8uc3Vic2NyaWJlclByaWNlICogY3Vyci5xdWFudGl0eVxyXG4gICAgICAgICAgICA6IGFjYyArIGN1cnIucHJpY2VQYWlkICogY3Vyci5xdWFudGl0eSxcclxuICAgICAgICAwLFxyXG4gICAgICApIHx8IDBcclxuXHJcbiAgICBpZiAoY291cG9uLm1pblN1YlRvdGFsVmFsdWUgPD0gc3ViVG90YWwpIHJldHVybiB0cnVlXHJcbiAgICByZXR1cm4gZmFsc2VcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgaGFzUHJvZHVjdENhdGVnb3JpZXMoY291cG9uOiBDb3Vwb24sIGNoZWNrb3V0OiBQYXJ0aWFsPENoZWNrb3V0Pik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG5cclxuICAgIGlmICghY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcyAmJiAhY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGgpIHtcclxuICAgICAgY29uc29sZS5sb2coJ27Do28gcG9zc3VpIGNhdGVnb3JpZXMnKVxyXG4gICAgICByZXR1cm4gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvdXBvbkNhdGVnb3JpZXMgPSBhd2FpdCB0aGlzLmdldENvdXBvbkNhdGVnb3JpZXNJZChjb3Vwb24pXHJcbiAgICBcclxuICAgIGNvbnNvbGUubG9nKCdjb3Vwb25DYXRlZ29yaWVzJywgY291cG9uQ2F0ZWdvcmllcy5sZW5ndGgsIGNvdXBvbkNhdGVnb3JpZXMpXHJcblxyXG4gICAgY29uc3QgaGFzQ2F0ZWdvcmllcyA9IGNoZWNrb3V0LmxpbmVJdGVtcz8uZmlsdGVyKGkgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZygnZW50cm91IG5vIGZpbHRlcicpXHJcbiAgICAgIGlmICghaS5jYXRlZ29yaWVzIHx8ICFpLmNhdGVnb3JpZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdwcm9kdXRvIG7Do28gdGVtIGNhdGVnb3JpYXMnKVxyXG4gICAgICAgIHJldHVybiB0cnVlXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBpLmNhdGVnb3JpZXMuc29tZSgoYykgPT4ge1xyXG4gICAgICAgICBjb25zb2xlLmxvZygnZW50cm91IG5vIHNvbWUgMScsIGMpXHJcbiAgICAgICAgcmV0dXJuIGNvdXBvbkNhdGVnb3JpZXMuc29tZShjYXQgPT4gKGNhdC5pZCA9PSBjIHx8IGNhdC5maXJlc3RvcmVJZCA9PSBjKSlcclxuICAgICAgfSlcclxuXHJcbiAgICAgIC8vIHJldHVybiBpLmNhdGVnb3JpZXMuc29tZShhc3luYyAoYykgPT4ge1xyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKCdzb21lIGNhdGVnb3J5IGMnLCBjKVxyXG4gICAgICAvLyAgIGNvbnN0IGNhdGVnb3JpYTogQ2F0ZWdvcnkgJiB7IGZpcmVzdG9yZUlkPzogc3RyaW5nIH0gPSBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXQoe2lkOiBjfSkgICAgICAgICAgXHJcbiAgICAgIC8vICAgY29uc29sZS5sb2coY2F0ZWdvcmlhKVxyXG4gICAgICAvLyAgIGNvbnNvbGUubG9nKGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmlkKSwgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuZmlyZXN0b3JlSWQpLCBpLmlzR2lmdClcclxuICAgICAgLy8gICBjb25zb2xlLmxvZygndmFsaWRhdGlvbicsIChjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5pZCkgfHwgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuZmlyZXN0b3JlSWQpKSAmJiAhaS5pc0dpZnQpXHJcbiAgICAgIC8vICAgcmV0dXJuIChjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5pZCkgfHwgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuZmlyZXN0b3JlSWQpKSAmJiAhaS5pc0dpZnRcclxuICAgICAgXHJcbiAgICAgIC8vIH0pXHJcbiAgICB9KVxyXG5cclxuXHJcbiAgICBjb25zb2xlLmxvZygnZmluYWwgcmV0dXJuJywgaGFzQ2F0ZWdvcmllcywgaGFzQ2F0ZWdvcmllcy5sZW5ndGgpXHJcbiAgICByZXR1cm4gaGFzQ2F0ZWdvcmllcy5sZW5ndGggPyB0cnVlIDogZmFsc2VcclxuXHJcblxyXG4gICAgLy8gaWYgKGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMgJiYgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGgpIHtcclxuICAgIC8vICAgY29uc3QgaGFzQ2F0ZWdvcmllcyA9IGNoZWNrb3V0LmxpbmVJdGVtcz8uZmlsdGVyKChpKSA9PiB7XHJcbiAgICAvLyAgICAgaWYgKGkuY2F0ZWdvcmllcz8ubGVuZ3RoKSB7XHJcbiBcclxuICAgIC8vICAgICAgIHJldHVybiBpLmNhdGVnb3JpZXMuc29tZShhc3luYyAoYykgPT4ge1xyXG4gICAgLy8gICAgICAgICBjb25zdCBjYXRlZ29yaWE6IENhdGVnb3J5ICYgeyBmaXJlc3RvcmVJZD86IHN0cmluZyB9ID0gYXdhaXQgdGhpcy5jYXRlZ29yeVJlcG9zaXRvcnkuZ2V0KHtpZDogY30pICAgICAgICAgIFxyXG4gICAgLy8gICAgICAgICBjb25zb2xlLmxvZyhjYXRlZ29yaWEpXHJcbiAgICAvLyAgICAgICAgIGNvbnNvbGUubG9nKGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmlkKSwgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuZmlyZXN0b3JlSWQpLCBpLmlzR2lmdClcclxuICAgIC8vICAgICAgICAgY29uc29sZS5sb2coJ3ZhbGlkYXRpb24nLCAoY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5pbmNsdWRlcyhjYXRlZ29yaWEuaWQpIHx8IGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmZpcmVzdG9yZUlkKSkgJiYgIWkuaXNHaWZ0KVxyXG4gICAgLy8gICAgICAgICByZXR1cm4gKGNvdXBvbi5wcm9kdWN0c0NhdGVnb3JpZXMuaW5jbHVkZXMoY2F0ZWdvcmlhLmlkKSB8fCBjb3Vwb24ucHJvZHVjdHNDYXRlZ29yaWVzLmluY2x1ZGVzKGNhdGVnb3JpYS5maXJlc3RvcmVJZCkpICYmICFpLmlzR2lmdFxyXG4gICAgLy8gICAgICAgfSlcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyAgICAgcmV0dXJuIHRydWVcclxuICAgIC8vICAgfSlcclxuICAgIC8vICAgcmV0dXJuIGhhc0NhdGVnb3JpZXMubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICByZXR1cm4gdHJ1ZVxyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyB1c2VyVmFsaWRhdGlvbkFuZFN1YnNjcmlwdGlvblN0YXR1cyhjb3Vwb246IENvdXBvbiwgdXNlckVtYWlsOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIC8vIFZlcmlmaWNhIHNlIG8gZW1haWwgZG8gdXN1w6FyaW8gw6kgY29vcnBvcmF0aXZvXHJcbiAgICBpZiAoIXRoaXMuZW1haWxJc0Zyb21Db2xsYWJvcmF0b3IodXNlckVtYWlsKSAmJiBjb3Vwb24uZXhjbHVzaXZpdHlUeXBlID09PSBFeGNsdXNpdml0aWVzLkNPTExBQk9SQVRPUlMpXHJcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkQ291cG9uRXJyb3IoJ1ZvY8OqIG7Do28gw6kgY29sYWJvcmFkb3IuJylcclxuXHJcbiAgICAvLyBWZXJpZmljYSBzZSBvIGVtYWlsIGRvIHVzdcOhcmlvIMOpIGFzc29jaWFkbyBhbyBjdXBvbSBkZSB1c28gcG9yIHVzdWFyaW9cclxuICAgIGlmIChjb3Vwb24uZXhjbHVzaXZpdHlUeXBlID09PSBFeGNsdXNpdml0aWVzLlNQRUNJRklDX1VTRVIgJiYgY291cG9uLnVzZXJFeGNsdXNpdmVFbWFpbCAhPT0gdXNlckVtYWlsKVxyXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdDdXBvbSBuw6NvIMOpIHbDoWxpZG8gcGFyYSBlc3RlIHVzdcOhcmlvLicpXHJcblxyXG4gICAgY29uc3QgY291cG9uUnVsZVN1YnNjcmlwdGlvbiA9XHJcbiAgICAgIGNvdXBvbi5leGNsdXNpdml0eVR5cGUgPT09IEV4Y2x1c2l2aXRpZXMuQUNUSVZFX1NVQlNDUklCRVIgfHxcclxuICAgICAgY291cG9uLmV4Y2x1c2l2aXR5VHlwZSA9PT0gRXhjbHVzaXZpdGllcy5JTkFDVElWRV9TVUJTQ1JJQkVSIHx8XHJcbiAgICAgIGNvdXBvbi5leGNsdXNpdml0eVR5cGUgPT09IEV4Y2x1c2l2aXRpZXMuTk9OX1NVQlNDUklCRVJcclxuXHJcbiAgICBpZiAoY291cG9uUnVsZVN1YnNjcmlwdGlvbiAmJiB1c2VyRW1haWwpIHtcclxuICAgICAgY29uc3Qgc3ViID0gYXdhaXQgdGhpcy5zdWJzY3JpcHRpb25SZXBvc2l0b3J5XHJcbiAgICAgICAgLmZpbmQoe1xyXG4gICAgICAgICAgZmlsdGVyczoge1xyXG4gICAgICAgICAgICB1c2VyOiB7XHJcbiAgICAgICAgICAgICAgZW1haWw6IHsgb3BlcmF0b3I6IFdoZXJlLkVRVUFMUywgdmFsdWU6IHVzZXJFbWFpbCB9LFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC50aGVuKChzdWIpID0+IHN1Yi5kYXRhKVxyXG5cclxuICAgICAgY29uc3QgYWN0aXZlU3VicyA9IHN1Yj8uZmlsdGVyKChzKSA9PiBzLnN0YXR1cyA9PT0gU3RhdHVzLkFDVElWRSlcclxuXHJcbiAgICAgIHN3aXRjaCAoY291cG9uLmV4Y2x1c2l2aXR5VHlwZSkge1xyXG4gICAgICAgIGNhc2UgRXhjbHVzaXZpdGllcy5BQ1RJVkVfU1VCU0NSSUJFUjpcclxuICAgICAgICAgIHJldHVybiBhY3RpdmVTdWJzLmxlbmd0aCA+IDBcclxuICAgICAgICBjYXNlIEV4Y2x1c2l2aXRpZXMuSU5BQ1RJVkVfU1VCU0NSSUJFUjpcclxuICAgICAgICAgIHJldHVybiBhY3RpdmVTdWJzLmxlbmd0aCA9PT0gMFxyXG4gICAgICAgIGNhc2UgRXhjbHVzaXZpdGllcy5OT05fU1VCU0NSSUJFUjpcclxuICAgICAgICAgIHJldHVybiBzdWIubGVuZ3RoID09PSAwXHJcbiAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWVcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZ2V0Q291cG9uQ2F0ZWdvcmllc0lkKGNvdXBvbikge1xyXG5cclxuICAgICBsZXQgY291cG9uQ2F0ZWdvcmllczogeyBpZDogc3RyaW5nLCBmaXJlc3RvcmVJZDogc3RyaW5nIH1bXSA9IFtdXHJcblxyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllcy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICBsZXQgYzogQ2F0ZWdvcnkgJiB7IGZpcmVzdG9yZUlkPzogc3RyaW5nIH0gPSBhd2FpdCB0aGlzLmNhdGVnb3J5UmVwb3NpdG9yeS5nZXQoeyBpZDogY291cG9uLnByb2R1Y3RzQ2F0ZWdvcmllc1tpbmRleF0gfSkgICAgXHJcbiAgICAgICAgY291cG9uQ2F0ZWdvcmllcy5wdXNoKHsgaWQ6IGMuaWQsIGZpcmVzdG9yZUlkOiBjLmZpcmVzdG9yZUlkfSlcclxuICAgICAgfVxyXG4gICAgXHJcbiAgICAgIHJldHVybiBjb3Vwb25DYXRlZ29yaWVzXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlcGFyYXRlVmFsaWRDb3Vwb25zID0gKFxyXG4gICAgY291cG9uczogQ291cG9uW10sXHJcbiAgICB1c2VyRW1haWw6IHN0cmluZyxcclxuICApOiB7IHZhbGlkczogQ291cG9uW107IGludmFsaWRzOiBJbnZhbGlkQ291cG9uRXJyb3JbXSB9ID0+XHJcbiAgICBjb3Vwb25zXHJcbiAgICAgIC5tYXAoKGNvdXBvbikgPT4ge1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICBpZiAoIShjb3Vwb24gaW5zdGFuY2VvZiBDb3Vwb24pKSB0aHJvdyBuZXcgSW52YWxpZENvdXBvbkVycm9yKCdDdXBvbSBpbnbDoWxpZG8uJylcclxuICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRDb3Vwb24oY291cG9uLCB1c2VyRW1haWwpKSByZXR1cm4gY291cG9uXHJcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgICAgIHJldHVybiBlcnJvciBhcyBJbnZhbGlkQ291cG9uRXJyb3JcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIC5yZWR1Y2UoXHJcbiAgICAgICAgKGN1cnJlbnQsIGNvdXBvbikgPT4gKHtcclxuICAgICAgICAgIC4uLmN1cnJlbnQsXHJcbiAgICAgICAgICAuLi4oY291cG9uIGluc3RhbmNlb2YgQ291cG9uXHJcbiAgICAgICAgICAgID8geyB2YWxpZHM6IFsuLi5jdXJyZW50LnZhbGlkcywgY291cG9uXSB9XHJcbiAgICAgICAgICAgIDogeyBpbnZhbGlkczogWy4uLmN1cnJlbnQuaW52YWxpZHMsIGNvdXBvbl0gfSksXHJcbiAgICAgICAgfSksXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdmFsaWRzOiBbXSBhcyBDb3Vwb25bXSxcclxuICAgICAgICAgIGludmFsaWRzOiBbXSBhcyBJbnZhbGlkQ291cG9uRXJyb3JbXSxcclxuICAgICAgICB9LFxyXG4gICAgICApXHJcbn1cclxuIl19
|
|
@@ -196,7 +196,7 @@ class CouponService {
|
|
|
196
196
|
break;
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
-
return
|
|
199
|
+
return discount;
|
|
200
200
|
});
|
|
201
201
|
}
|
|
202
202
|
calcShoppingPercentageDiscount(coupon, checkout) {
|
|
@@ -375,7 +375,7 @@ class CheckoutService {
|
|
|
375
375
|
return of();
|
|
376
376
|
}
|
|
377
377
|
calcDiscount(coupon) {
|
|
378
|
-
return this.getCheckout().pipe(concatMap((checkout) => this.couponService.calcDiscountShopping(coupon, checkout)));
|
|
378
|
+
return this.getCheckout().pipe(concatMap((checkout) => __awaiter(this, void 0, void 0, function* () { return yield this.couponService.calcDiscountShopping(coupon, checkout); })));
|
|
379
379
|
}
|
|
380
380
|
checkCoupon(nickname, checkoutType) {
|
|
381
381
|
return this.getCheckout().pipe(concatMap((checkout) => {
|