fabrikantencore 2.3.20 → 2.4.3
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/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-actionmenu/fab-actionmenu.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.mjs +3 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.mjs +1 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filter-colour/fab-filter-colour-dialog/fab-filter-colour-dialog.component.mjs +5 -5
- package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +1 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.mjs +3 -4
- package/esm2020/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.mjs +1 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +2 -3
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +1 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.mjs +2 -2
- package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +1 -2
- package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +69 -26
- package/esm2020/src/app/modules/fabrikantencore/services/navigate.service.mjs +15 -13
- package/esm2020/src/app/modules/fabrikantencore/services/photo.service.mjs +2 -2
- package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +5 -2
- package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +567 -21
- package/fesm2015/fabrikantencore.mjs +668 -79
- package/fesm2015/fabrikantencore.mjs.map +1 -1
- package/fesm2020/fabrikantencore.mjs +666 -80
- package/fesm2020/fabrikantencore.mjs.map +1 -1
- package/package.json +1 -1
- package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +7 -3
- package/src/app/modules/fabrikantencore/services/translate.service.d.ts +3 -2
- package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +150 -20
|
@@ -11,18 +11,20 @@ export class NavigateService {
|
|
|
11
11
|
}
|
|
12
12
|
RefreshPage() {
|
|
13
13
|
if (this.FabrikantenService != null && this.TranslateService != null) {
|
|
14
|
-
if (this.
|
|
15
|
-
if (this.FabrikantenService.
|
|
16
|
-
this.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
if (this.FabrikantenService.FabrikantenSettingsViewModel?.customRedirect == null || this.FabrikantenService.FabrikantenSettingsViewModel?.customRedirect == "") {
|
|
15
|
+
if (this.TranslateService.ActiveLanguage != null && this.FabrikantenService.FabrikantenViewModel != null) {
|
|
16
|
+
if (this.FabrikantenService.ShowCategories()) {
|
|
17
|
+
this.Router.navigate(['/', this.TranslateService.ActiveLanguage.countryCode, 'categories']);
|
|
18
|
+
this.StatisticsService.PageView("categories");
|
|
19
|
+
}
|
|
20
|
+
else if (this.FabrikantenService.FabrikantenViewModel.selectedProduct != null) {
|
|
21
|
+
this.Router.navigate(['/', this.TranslateService.ActiveLanguage.countryCode, 'product', this.FabrikantenService.FabrikantenViewModel.selectedProduct.urlName]);
|
|
22
|
+
this.StatisticsService.PageView("product");
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
this.Router.navigate(['/', this.TranslateService.ActiveLanguage.countryCode, 'products']);
|
|
26
|
+
this.StatisticsService.PageView("products");
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
}
|
|
@@ -34,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
34
36
|
type: Injectable,
|
|
35
37
|
args: [{ providedIn: 'root' }]
|
|
36
38
|
}], ctorParameters: function () { return [{ type: i1.Router }, { type: i2.StatisticsService }]; } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvbmF2aWdhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVE5RCxNQUFNLE9BQU8sZUFBZTtJQUsxQixZQUFvQixNQUFjLEVBQ3hCLGlCQUFvQztRQUQxQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ3hCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFKdkMsdUJBQWtCLEdBQThCLElBQUksQ0FBQztRQUNyRCxxQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO0lBS3hELENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFO1lBQ3BFLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLGNBQWMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLDRCQUE0QixFQUFFLGNBQWMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2hLLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixJQUFJLElBQUksRUFBRTtvQkFDeEcsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxFQUFFLEVBQUU7d0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7d0JBQzVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7cUJBQy9DO3lCQUNJLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLGVBQWUsSUFBSSxJQUFJLEVBQzdFO3dCQUNFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7d0JBQy9KLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQzVDO3lCQUNJO3dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7d0JBQzFGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7cUJBQzdDO2lCQUNGO2FBQ0E7U0FDRjtJQUNILENBQUM7OzRHQTlCVSxlQUFlO2dIQUFmLGVBQWUsY0FERixNQUFNOzJGQUNuQixlQUFlO2tCQUQzQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBGYWJyaWthbnRlblNlcnZpY2UgfSBmcm9tICcuL2ZhYnJpa2FudGVuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0YXRpc3RpY3NTZXJ2aWNlIH0gZnJvbSAnLi9zdGF0aXN0aWNzLnNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE5hdmlnYXRlU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSB8IG51bGwgPSBudWxsO1xyXG4gIHB1YmxpYyBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgUm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIFN0YXRpc3RpY3NTZXJ2aWNlOiBTdGF0aXN0aWNzU2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZWZyZXNoUGFnZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsICYmIHRoaXMuVHJhbnNsYXRlU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblNldHRpbmdzVmlld01vZGVsPy5jdXN0b21SZWRpcmVjdCA9PSBudWxsIHx8IHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWw/LmN1c3RvbVJlZGlyZWN0ID09IFwiXCIpIHtcclxuICAgICAgaWYgKHRoaXMuVHJhbnNsYXRlU2VydmljZS5BY3RpdmVMYW5ndWFnZSAhPSBudWxsICYmIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgICBpZiAodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2hvd0NhdGVnb3JpZXMoKSkge1xyXG4gICAgICAgICAgdGhpcy5Sb3V0ZXIubmF2aWdhdGUoWycvJywgdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkFjdGl2ZUxhbmd1YWdlLmNvdW50cnlDb2RlLCAnY2F0ZWdvcmllcyddKTtcclxuICAgICAgICAgIHRoaXMuU3RhdGlzdGljc1NlcnZpY2UuUGFnZVZpZXcoXCJjYXRlZ29yaWVzXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmICh0aGlzLkZhYnJpa2FudGVuU2VydmljZS5GYWJyaWthbnRlblZpZXdNb2RlbC5zZWxlY3RlZFByb2R1Y3QgIT0gbnVsbClcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aGlzLlJvdXRlci5uYXZpZ2F0ZShbJy8nLCB0aGlzLlRyYW5zbGF0ZVNlcnZpY2UuQWN0aXZlTGFuZ3VhZ2UuY291bnRyeUNvZGUsICdwcm9kdWN0JywgdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0LnVybE5hbWVdKTtcclxuICAgICAgICAgIHRoaXMuU3RhdGlzdGljc1NlcnZpY2UuUGFnZVZpZXcoXCJwcm9kdWN0XCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuUm91dGVyLm5hdmlnYXRlKFsnLycsIHRoaXMuVHJhbnNsYXRlU2VydmljZS5BY3RpdmVMYW5ndWFnZS5jb3VudHJ5Q29kZSwgJ3Byb2R1Y3RzJ10pO1xyXG4gICAgICAgICAgdGhpcy5TdGF0aXN0aWNzU2VydmljZS5QYWdlVmlldyhcInByb2R1Y3RzXCIpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -19,7 +19,7 @@ export class PhotoService {
|
|
|
19
19
|
return "";
|
|
20
20
|
}
|
|
21
21
|
else {
|
|
22
|
-
return this.FabrikantenService.
|
|
22
|
+
return this.FabrikantenService.FabrikantenSettingsViewModel?.bcbWebserviceURLBase + array[this.FabrikantenService.SelectedPhoto].url;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
GetSelectedDescription() {
|
|
@@ -95,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
95
95
|
type: Injectable,
|
|
96
96
|
args: [{ providedIn: 'root' }]
|
|
97
97
|
}], ctorParameters: function () { return [{ type: i1.FabrikantenService }, { type: i2.TranslateService }]; } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvdG8uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvcGhvdG8uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTTNDLE1BQU0sT0FBTyxZQUFZO0lBR3ZCLFlBQ1Usa0JBQXNDLEVBQ3RDLGdCQUFrQztRQURsQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVNLElBQUk7UUFDVCxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFakMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUNyQixPQUFPLEVBQUUsQ0FBQztTQUNYO2FBQ0k7WUFDSCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyw0QkFBNEIsRUFBRSxvQkFBOEIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQztTQUNoSjtJQUNILENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWpDLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7WUFDckIsT0FBTyxFQUFFLENBQUM7U0FDWDthQUNJO1lBQ0gsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMs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QUMsRUFBRSxFQUFFO2dCQUNqQixPQUFPLENBQUMsQ0FBQzthQUNWO1lBRUQsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pCLE9BQU8sQ0FBQyxDQUFDLENBQUM7YUFDWDtZQUVELE9BQU8sQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOzt5R0FqSFUsWUFBWTs2R0FBWixZQUFZLGNBREMsTUFBTTsyRkFDbkIsWUFBWTtrQkFEeEIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuQkNCUHJvZHVjdEFmYmVlbGRpbmdWaWV3TW9kZWwsIEZhYnJpa2FudGVuUHJvZHVjdFZpZXdNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4vZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBQaG90b1NlcnZpY2Uge1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIEZhYnJpa2FudGVuU2VydmljZTogRmFicmlrYW50ZW5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBUcmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgTGVmdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNlbGVjdGVkUGhvdG8tLTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSaWdodCgpOiB2b2lkIHtcclxuICAgIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNlbGVjdGVkUGhvdG8rKztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRTZWxlY3RlZFBob3RvKCk6IHN0cmluZyB7XHJcbiAgICB2YXIgYXJyYXkgPSB0aGlzLkdldFBob3RvQXJyYXkoKTtcclxuXHJcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLkZhYnJpa2FudGVuU2V0dGluZ3NWaWV3TW9kZWw/LmJjYldlYnNlcnZpY2VVUkxCYXNlIGFzIHN0cmluZyArIGFycmF5W3RoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNlbGVjdGVkUGhvdG9dLnVybDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRTZWxlY3RlZERlc2NyaXB0aW9uKCk6IHN0cmluZyB7XHJcbiAgICB2YXIgYXJyYXkgPSB0aGlzLkdldFBob3RvQXJyYXkoKTtcclxuXHJcbiAgICBpZiAoYXJyYXkubGVuZ3RoID09IDApIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuVHJhbnNsYXRlU2VydmljZS5HZXRBY3RpdmVWYWx1ZUFmYmVlbGRpbmcoYXJyYXlbdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2VsZWN0ZWRQaG90b10uaWQpICsgXCIgKFwiICsgKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNlbGVjdGVkUGhvdG8gKyAxKSArIFwiL1wiICsgYXJyYXkubGVuZ3RoICsgXCIpXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdWxkRGlzcGxheUxlZnQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5GYWJyaWthbnRlblNlcnZpY2UuU2VsZWN0ZWRQaG90byAhPSAwO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3VsZERpc3BsYXlSaWdodCgpOiBib29sZWFuIHtcclxuICAgIHZhciBhcnJheSA9IHRoaXMuR2V0UGhvdG9BcnJheSgpO1xyXG5cclxuICAgIHJldHVybiBhcnJheS5sZW5ndGggIT0gKHRoaXMuRmFicmlrYW50ZW5TZXJ2aWNlLlNlbGVjdGVkUGhvdG8gKyAxKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRQaG90b0NvdW50KCk6IG51bWJlciB7XHJcbiAgICB2YXIgYXJyYXkgPSB0aGlzLkdldFBob3RvQXJyYXkoKTtcclxuXHJcbiAgICByZXR1cm4gYXJyYXkubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFBob3RvQXJyYXkoKTogQXJyYXk8RmFicmlrYW50ZW5CQ0JQcm9kdWN0QWZiZWVsZGluZ1ZpZXdNb2RlbD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuR2V0UGhvdG9BcnJheVByb2R1Y3QodGhpcy5GYWJyaWthbnRlblNlcnZpY2UuRmFicmlrYW50ZW5WaWV3TW9kZWw/LnNlbGVjdGVkUHJvZHVjdCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0UGhvdG9BcnJheVByb2R1Y3QocHJvZHVjdDogRmFicmlrYW50ZW5Qcm9kdWN0Vmlld01vZGVsIHwgdW5kZWZpbmVkKTogQXJyYXk8RmFicmlrYW50ZW5CQ0JQcm9kdWN0QWZiZWVsZGluZ1ZpZXdNb2RlbD4ge1xyXG4gICAgdmFyIGFycmF5ID0gbmV3IEFycmF5PEZhYnJpa2FudGVuQkNCUHJvZHVjdEFmYmVlbGRpbmdWaWV3TW9kZWw+KCk7XHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSBwcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgIGlmIChiY2Jwcm9kdWN0cyAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmNicHJvZHVjdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICB2YXIgYWZiZWVsZGluZ2VuID0gYmNicHJvZHVjdHNbaV0uYmNiUHJvZHVjdEFmYmVlbGRpbmdlbjtcclxuXHJcbiAgICAgICAgaWYgKGFmYmVlbGRpbmdlbiAhPSBudWxsKVxyXG4gICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBhZmJlZWxkaW5nZW4ubGVuZ3RoOyBqKyspIHtcclxuXHJcbiAgICAgICAgICAgIGlmIChhZmJlZWxkaW5nZW5bal0udXJsICE9IG51bGwpIHtcclxuICAgICAgICAgICAgICB2YXIgdXJsID0gYWZiZWVsZGluZ2VuW2pdLnVybCBhcyBzdHJpbmc7XHJcblxyXG4gICAgICAgICAgICAgIHZhciBjb250YWlucyA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICBmb3IgKHZhciBwID0gMDsgcCA8IGFycmF5Lmxlbmd0aDsgcCsrKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoYXJyYXlbcF0udXJsID09IHVybCkge1xyXG4gICAgICAgICAgICAgICAgICBjb250YWlucyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgaWYgKCFjb250YWlucykge1xyXG4gICAgICAgICAgICAgICAgaWYgKGJjYnByb2R1Y3RzLmxlbmd0aCA9PSAxIHx8ICFhZmJlZWxkaW5nZW5bal0uaGlkZGVuT25NaXgpIHtcclxuICAgICAgICAgICAgICAgICAgYXJyYXkucHVzaChhZmJlZWxkaW5nZW5bal0pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdmFyIHNvcnRlZEFycmF5OiBGYWJyaWthbnRlbkJDQlByb2R1Y3RBZmJlZWxkaW5nVmlld01vZGVsW10gPSBhcnJheS5zb3J0KChuMSwgbjIpID0+IHtcclxuICAgICAgaWYgKG4xLnBvc2l0aW9uID4gbjIucG9zaXRpb24pIHtcclxuICAgICAgICByZXR1cm4gMTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG4xLnBvc2l0aW9uIDwgbjIucG9zaXRpb24pIHtcclxuICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChuMS5pZCA+IG4yLmlkKSB7XHJcbiAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChuMS5pZCA8IG4yLmlkKSB7XHJcbiAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gMDtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzb3J0ZWRBcnJheTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -24,7 +24,7 @@ export class TranslateService {
|
|
|
24
24
|
this.ProcessDesiredCountryCode();
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
|
-
LoadTranslations(ChangeDetectorRef) {
|
|
27
|
+
LoadTranslations(ChangeDetectorRef, FabrikantenService, ActivatedRoute) {
|
|
28
28
|
if (!this.Init) {
|
|
29
29
|
this.Init = true;
|
|
30
30
|
this.Loading = true;
|
|
@@ -45,6 +45,9 @@ export class TranslateService {
|
|
|
45
45
|
this.ProcessDesiredCountryCode();
|
|
46
46
|
this.NavigateService.RefreshPage();
|
|
47
47
|
ChangeDetectorRef.detectChanges();
|
|
48
|
+
if (FabrikantenService != null) {
|
|
49
|
+
FabrikantenService.LoadFabrikantenViewModel(ChangeDetectorRef, ActivatedRoute);
|
|
50
|
+
}
|
|
48
51
|
}, (error) => {
|
|
49
52
|
if (error.status == 400)
|
|
50
53
|
alert(error.json());
|
|
@@ -316,4 +319,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
|
|
|
316
319
|
type: Injectable,
|
|
317
320
|
args: [{ providedIn: 'root' }]
|
|
318
321
|
}], ctorParameters: function () { return [{ type: i1.TranslateApiClient }, { type: i2.NavigateService }]; } });
|
|
319
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzlELE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsWUFBb0Isa0JBQXNDLEVBQVMsZUFBZ0M7UUFBL0UsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVozRixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRXZCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFJdkIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBR2pDLHFCQUFnQixHQUFXLFFBQVEsQ0FBQztRQUl6QyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQTJCLEVBQUUsaUJBQW9DO1FBQ3JGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBOEI7UUFDckQsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5FLElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztZQUN0QyxJQUFJ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RS9CLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEM7SUFDSCxDQUFDOzs2R0FqWVUsZ0JBQWdCO2lIQUFoQixnQkFBZ0IsY0FESCxNQUFNOzJGQUNuQixnQkFBZ0I7a0JBRDVCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VzVmlld01vZGVsLCBMYW5ndWFnZVZpZXdNb2RlbCwgVHJhbnNsYXRlQXBpQ2xpZW50LCBUcmFuc2xhdGVLZXlDYXRlZ29yeVZpZXdNb2RlbCwgVHJhbnNsYXRlS2V5Vmlld01vZGVsIH0gZnJvbSAnLi4vc3dhZ2dlci9Td2FnZ2VyQ2xpZW50JztcclxuaW1wb3J0IHsgTmF2aWdhdGVTZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0ZS5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlIHtcclxuXHJcbiAgcHJpdmF0ZSBJbml0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIExhbmd1YWdlc1ZpZXdNb2RlbDogTGFuZ3VhZ2VzVmlld01vZGVsO1xyXG5cclxuICBwcml2YXRlIERlc2lyZWRDb3VudHJ5Q29kZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgQWN0aXZlTGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRDYXRlZ29yeTogc3RyaW5nID0gXCJDb21tb25cIjtcclxuICBwdWJsaWMgQ2F0ZWdvcmllczogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBUcmFuc2xhdGVBcGlDbGllbnQ6IFRyYW5zbGF0ZUFwaUNsaWVudCwgcHVibGljIE5hdmlnYXRlU2VydmljZTogTmF2aWdhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLk5hdmlnYXRlU2VydmljZS5UcmFuc2xhdGVTZXJ2aWNlID0gdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPSBsYW5ndWFnZS5jb3VudHJ5Q29kZSArIFwiXCI7XHJcbiAgICB0aGlzLlByb2Nlc3NEZXNpcmVkQ291bnRyeUNvZGUoKTtcclxuXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUHJvY2Vzc1BhcmFtZXRlcnMoQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XHJcbiAgICB2YXIgY291bnRyeWNvZGUgPSBBY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoXCJsYW5ndWFnZVwiKTtcclxuXHJcbiAgICBpZiAoY291bnRyeWNvZGUgIT0gbnVsbCAmJiBjb3VudHJ5Y29kZSAhPSBcIlwiICYmIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlICE9IGNvdW50cnljb2RlKSB7XHJcbiAgICAgIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlID0gY291bnRyeWNvZGU7XHJcbiAgICAgIHRoaXMuUHJvY2Vzc0Rlc2lyZWRDb3VudHJ5Q29kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRUcmFuc2xhdGlvbnMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuSW5pdCkge1xyXG4gICAgICB0aGlzLkluaXQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICB0aGlzLlRyYW5zbGF0ZUFwaUNsaWVudC5nZXRMYW5ndWFnZXNWaWV3TW9kZWwoKS5zdWJzY3JpYmUoKG1vZGVsOiBMYW5ndWFnZXNWaWV3TW9kZWwpID0+IHtcclxuICAgICAgICB0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbCA9IG1vZGVsO1xyXG5cclxuICAgICAgICB2YXIgY2F0cyA9IHRoaXMuR2V0Q2F0ZWdvcmllcygpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XHJcblxyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGhpcy5DYXRlZ29yaWVzLnB1c2goY2F0c1tpXS5uYW1lIGFzIHN0cmluZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChcIkNhdGVnb3JpZXNcIik7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzLnB1c2goXCJQcm9kdWN0c1wiKTtcclxuICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChcIkRlc2NyaXB0aW9uXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiQWZiZWVsZGluZ1wiKTtcclxuICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChcIkZpbHRlclwiKTtcclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuUHJvY2Vzc0Rlc2lyZWRDb3VudHJ5Q29kZSgpO1xyXG5cclxuICAgICAgICB0aGlzLk5hdmlnYXRlU2VydmljZS5SZWZyZXNoUGFnZSgpO1xyXG5cclxuICAgICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICAgIGFsZXJ0KGVycm9yLmpzb24oKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBhbGVydCgnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICBhbGVydChlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3dTcGVjaWZpY2F0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5BY3RpdmVMYW5ndWFnZS5zaG93U3BlY2lmaWNhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvdygpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkxvYWRpbmcpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbD8ubGFuZ3VhZ2VzICE9IG51bGwpIHtcclxuICAgICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGggPCAyKSB7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWUoY2F0ZWdvcnk6IHN0cmluZywga2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZSh0aGlzLkFjdGl2ZUxhbmd1YWdlLCBjYXRlZ29yeSwga2V5KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGNhdGVnb3J5OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHZhciBjYXRhcnJheSA9IGxhbmd1YWdlLmNhdGVnb3JpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLm5hbWU/LnRvTG93ZXJDYXNlKCkgPT0gY2F0ZWdvcnkudG9Mb3dlckNhc2UoKSkge1xyXG5cclxuICAgICAgICAgIHZhciBrZXlzYXJyYXkgPSBjYXRhcnJheVtpXS5rZXlzXHJcbiAgICAgICAgICBpZiAoa2V5c2FycmF5ICE9IG51bGwpIHtcclxuICAgICAgICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCBrZXlzYXJyYXkubGVuZ3RoOyBqKyspIHtcclxuICAgICAgICAgICAgICBpZiAoa2V5c2FycmF5W2pdLm5hbWU/LnRvTG93ZXJDYXNlKCkgPT0ga2V5LnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgICAgIHZhciBlbnRyaWVzYXJyYXkgPSBrZXlzYXJyYXlbal0uZW50cmllcztcclxuXHJcbiAgICAgICAgICAgICAgICBpZiAoZW50cmllc2FycmF5ICE9IG51bGwgJiYgZW50cmllc2FycmF5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJpZXNhcnJheVswXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNhdGVnb3J5ICsgXCItXCIgKyBrZXk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVDYXRlZ29yeShjYXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVDYXRlZ29yeSh0aGlzLkFjdGl2ZUxhbmd1YWdlLCBjYXRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKGNhdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUNhdGVnb3J5RGVzY3JpcHRpb24odGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlQ2F0ZWdvcnkobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBjYXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBjYXRhcnJheSA9IGxhbmd1YWdlLmNhdGVnb3J5RW50cmllcztcclxuICAgIGlmIChjYXRhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0YXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoY2F0YXJyYXlbaV0uY2F0ZWdvcnlJZCA9PSBjYXRJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNhdGFycmF5W2ldLnZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUNhdGVnb3J5RGVzY3JpcHRpb24obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBjYXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBjYXRhcnJheSA9IGxhbmd1YWdlLmNhdGVnb3J5RW50cmllcztcclxuICAgIGlmIChjYXRhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0YXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoY2F0YXJyYXlbaV0uY2F0ZWdvcnlJZCA9PSBjYXRJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGNhdGFycmF5W2ldLmRlc2NyaXB0aW9uIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVWYWx1ZUJDQkVpZ2Vuc2NoYXBUb2ViZWhvcmVuKGJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQkNCRWlnZW5zY2hhcFRvZWJlaG9yZW4odGhpcy5BY3RpdmVMYW5ndWFnZSwgYmNiRWlnZW5zY2hhcFRvZWJlaG9yZW5JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVCQ0JFaWdlbnNjaGFwVG9lYmVob3JlbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgYmNiZWlnZW5zY2hhcGFycmF5ID0gbGFuZ3VhZ2UuYmNiRWlnZW5zY2hhcFRvZWJlaG9yZW5FbnRyaWVzO1xyXG4gICAgaWYgKGJjYmVpZ2Vuc2NoYXBhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYmNiZWlnZW5zY2hhcGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGJjYmVpZ2Vuc2NoYXBhcnJheVtpXS5iY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkID09IGJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuSWQpIHtcclxuICAgICAgICAgIHJldHVybiBiY2JlaWdlbnNjaGFwYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlUHJvZHVjdChwcm9kdWN0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlUHJvZHVjdCh0aGlzLkFjdGl2ZUxhbmd1YWdlLCBwcm9kdWN0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlUHJvZHVjdChsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBwcm9kYXJyYXkgPSBsYW5ndWFnZS5wcm9kdWN0RW50cmllcztcclxuICAgIGlmIChwcm9kYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2RhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kYXJyYXlbaV0ucHJvZHVjdElkID09IHByb2R1Y3RJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHByb2RhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVQcm9kdWN0RGVzY3JpcHRpb24ocHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZVByb2R1Y3REZXNjcmlwdGlvbih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBwcm9kdWN0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlUHJvZHVjdERlc2NyaXB0aW9uKGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgcHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIHByb2RhcnJheSA9IGxhbmd1YWdlLnByb2R1Y3RFbnRyaWVzO1xyXG4gICAgaWYgKHByb2RhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcHJvZGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHByb2RhcnJheVtpXS5wcm9kdWN0SWQgPT0gcHJvZHVjdElkKSB7XHJcbiAgICAgICAgICByZXR1cm4gcHJvZGFycmF5W2ldLmRlc2NyaXB0aW9uIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVWYWx1ZVJhbmdlSW5wdXQocmFuZ2VJbnB1dElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZVJhbmdlSW5wdXQodGhpcy5BY3RpdmVMYW5ndWFnZSwgcmFuZ2VJbnB1dElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVJhbmdlSW5wdXQobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCByYW5nZUlucHV0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgcmFuZ2VhcnJheSA9IGxhbmd1YWdlLnJhbmdlSW5wdXRFbnRyaWVzO1xyXG4gICAgaWYgKHJhbmdlYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhbmdlYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAocmFuZ2VhcnJheVtpXS5yYW5nZUlucHV0SWQgPT0gcmFuZ2VJbnB1dElkKSB7XHJcbiAgICAgICAgICByZXR1cm4gcmFuZ2VhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVGaWx0ZXIoZmlsdGVySWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlRmlsdGVyKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGZpbHRlcklkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUZpbHRlcihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGZpbHRlcklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGZpbHRlcmFycmF5ID0gbGFuZ3VhZ2UuZmlsdGVyRW50cmllcztcclxuICAgIGlmIChmaWx0ZXJhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsdGVyYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZmlsdGVyYXJyYXlbaV0uZmlsdGVySWQgPT0gZmlsdGVySWQpIHtcclxuICAgICAgICAgIHJldHVybiBmaWx0ZXJhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVGaWx0ZXJPcHRpb24oZmlsdGVyT3B0aW9uSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlRmlsdGVyT3B0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGZpbHRlck9wdGlvbklkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUZpbHRlck9wdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGZpbHRlck9wdGlvbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGZpbHRlcmFycmF5ID0gbGFuZ3VhZ2UuZmlsdGVyT3B0aW9uRW50cmllcztcclxuICAgIGlmIChmaWx0ZXJhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsdGVyYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZmlsdGVyYXJyYXlbaV0uZmlsdGVyT3B0aW9uSWQgPT0gZmlsdGVyT3B0aW9uSWQpIHtcclxuICAgICAgICAgIHJldHVybiBmaWx0ZXJhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVEZXNjcmlwdGlvbihiY2JQcm9kdWN0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlRGVzY3JpcHRpb24odGhpcy5BY3RpdmVMYW5ndWFnZSwgYmNiUHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZURlc2NyaXB0aW9uKGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgYmNiUHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGRlc2NyaXB0aW9uYXJyYXkgPSBsYW5ndWFnZS5kZXNjcmlwdGlvbkVudHJpZXM7XHJcbiAgICBpZiAoZGVzY3JpcHRpb25hcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGVzY3JpcHRpb25hcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChkZXNjcmlwdGlvbmFycmF5W2ldLmJjYlByb2R1Y3RJZCA9PSBiY2JQcm9kdWN0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBkZXNjcmlwdGlvbmFycmF5W2ldLnZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVWYWx1ZUFmYmVlbGRpbmcoYmNiUHJvZHVjdEFmYmVlbGRpbmdJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVBZmJlZWxkaW5nKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlQWZiZWVsZGluZyhsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgYWZiZWVsZGluZ2FycmF5ID0gbGFuZ3VhZ2UuYWZiZWVsZGluZ0VudHJpZXM7XHJcbiAgICBpZiAoYWZiZWVsZGluZ2FycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhZmJlZWxkaW5nYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoYWZiZWVsZGluZ2FycmF5W2ldLmJjYlByb2R1Y3RBZmJlZWxkaW5nSWQgPT0gYmNiUHJvZHVjdEFmYmVlbGRpbmdJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIGFmYmVlbGRpbmdhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0Q2F0ZWdvcmllcygpOiBBcnJheTxUcmFuc2xhdGVLZXlDYXRlZ29yeVZpZXdNb2RlbD4ge1xyXG5cclxuICAgIGlmICh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbD8ubGFuZ3VhZ2VzICE9IG51bGwgJiYgdGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdLmNhdGVnb3JpZXMgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdLmNhdGVnb3JpZXM7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIG5ldyBBcnJheTxUcmFuc2xhdGVLZXlDYXRlZ29yeVZpZXdNb2RlbD4oKTs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlQ2F0ZWdvcmllKCk6IFRyYW5zbGF0ZUtleUNhdGVnb3J5Vmlld01vZGVsIHwgbnVsbCB7XHJcbiAgICB2YXIgY2F0cyA9IHRoaXMuR2V0Q2F0ZWdvcmllcygpO1xyXG5cclxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2F0cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoY2F0c1tpXS5uYW1lID09IHRoaXMuU2VsZWN0ZWRDYXRlZ29yeSkge1xyXG4gICAgICAgIHJldHVybiBjYXRzW2ldO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFByb2Nlc3NEZXNpcmVkQ291bnRyeUNvZGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkRlc2lyZWRDb3VudHJ5Q29kZSA9PSBcIlwiKSB7XHJcbiAgICAgICAgdGhpcy5TZXRBY3RpdmVMYW5ndWFnZSh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzW2ldLmNvdW50cnlDb2RlPy50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgPT0gdGhpcy5EZXNpcmVkQ291bnRyeUNvZGUudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICAgICAgICB0aGlzLlNldEFjdGl2ZUxhbmd1YWdlKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1tpXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIFNldEFjdGl2ZUxhbmd1YWdlKGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbGFuZ3VhZ2UpIHtcclxuICAgICAgdGhpcy5BY3RpdmVMYW5ndWFnZSA9IGxhbmd1YWdlO1xyXG5cclxuICAgICAgdGhpcy5OYXZpZ2F0ZVNlcnZpY2UuUmVmcmVzaFBhZ2UoKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvZmFicmlrYW50ZW5jb3JlL3NlcnZpY2VzL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUTlELE1BQU0sT0FBTyxnQkFBZ0I7SUFjM0IsWUFBb0Isa0JBQXNDLEVBQVMsZUFBZ0M7UUFBL0UsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQVo1RixTQUFJLEdBQVksS0FBSyxDQUFDO1FBRXRCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFJdkIsdUJBQWtCLEdBQVcsRUFBRSxDQUFDO1FBR2pDLHFCQUFnQixHQUFXLFFBQVEsQ0FBQztRQUl6QyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUMvQyxDQUFDO0lBRU0sY0FBYyxDQUFDLFFBQTJCLEVBQUUsaUJBQW9DO1FBQ3JGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxRQUFRLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNwRCxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUVqQyxpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0saUJBQWlCLENBQUMsY0FBOEI7UUFDckQsSUFBSSxXQUFXLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5FLElBQUksV0FBVyxJQUFJLElBQUksSUFBSSxXQUFXLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxXQUFXLEVBQUU7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFdBQVcsQ0FBQztZQUN0QyxJQUFJ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QUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBMkI7UUFDbkQsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLFFBQVEsRUFBRTtZQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQztZQUUvQixJQUFJLENBQUMsZUFBZSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQzs7NkdBcllVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTsyRkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IExhbmd1YWdlc1ZpZXdNb2RlbCwgTGFuZ3VhZ2VWaWV3TW9kZWwsIFRyYW5zbGF0ZUFwaUNsaWVudCwgVHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWwsIFRyYW5zbGF0ZUtleVZpZXdNb2RlbCB9IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEZhYnJpa2FudGVuU2VydmljZSB9IGZyb20gJy4vZmFicmlrYW50ZW4uc2VydmljZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRlU2VydmljZSB9IGZyb20gJy4vbmF2aWdhdGUuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XHJcblxyXG4gIHB1YmxpYyBJbml0OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgcHVibGljIExhbmd1YWdlc1ZpZXdNb2RlbDogTGFuZ3VhZ2VzVmlld01vZGVsO1xyXG5cclxuICBwcml2YXRlIERlc2lyZWRDb3VudHJ5Q29kZTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgQWN0aXZlTGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRDYXRlZ29yeTogc3RyaW5nID0gXCJDb21tb25cIjtcclxuICBwdWJsaWMgQ2F0ZWdvcmllczogQXJyYXk8c3RyaW5nPjtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBUcmFuc2xhdGVBcGlDbGllbnQ6IFRyYW5zbGF0ZUFwaUNsaWVudCwgcHVibGljIE5hdmlnYXRlU2VydmljZTogTmF2aWdhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLk5hdmlnYXRlU2VydmljZS5UcmFuc2xhdGVTZXJ2aWNlID0gdGhpcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPSBsYW5ndWFnZS5jb3VudHJ5Q29kZSArIFwiXCI7XHJcbiAgICB0aGlzLlByb2Nlc3NEZXNpcmVkQ291bnRyeUNvZGUoKTtcclxuXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUHJvY2Vzc1BhcmFtZXRlcnMoQWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlKTogdm9pZCB7XHJcbiAgICB2YXIgY291bnRyeWNvZGUgPSBBY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoXCJsYW5ndWFnZVwiKTtcclxuXHJcbiAgICBpZiAoY291bnRyeWNvZGUgIT0gbnVsbCAmJiBjb3VudHJ5Y29kZSAhPSBcIlwiICYmIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlICE9IGNvdW50cnljb2RlKSB7XHJcbiAgICAgIHRoaXMuRGVzaXJlZENvdW50cnlDb2RlID0gY291bnRyeWNvZGU7XHJcbiAgICAgIHRoaXMuUHJvY2Vzc0Rlc2lyZWRDb3VudHJ5Q29kZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIExvYWRUcmFuc2xhdGlvbnMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLCBGYWJyaWthbnRlblNlcnZpY2U6IEZhYnJpa2FudGVuU2VydmljZSB8IG51bGwsIEFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5Jbml0KSB7XHJcbiAgICAgIHRoaXMuSW5pdCA9IHRydWU7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgIHRoaXMuVHJhbnNsYXRlQXBpQ2xpZW50LmdldExhbmd1YWdlc1ZpZXdNb2RlbCgpLnN1YnNjcmliZSgobW9kZWw6IExhbmd1YWdlc1ZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsID0gbW9kZWw7XHJcblxyXG4gICAgICAgIHZhciBjYXRzID0gdGhpcy5HZXRDYXRlZ29yaWVzKCk7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcclxuXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChjYXRzW2ldLm5hbWUgYXMgc3RyaW5nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiQ2F0ZWdvcmllc1wiKTtcclxuICAgICAgICB0aGlzLkNhdGVnb3JpZXMucHVzaChcIlByb2R1Y3RzXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiRGVzY3JpcHRpb25cIik7XHJcbiAgICAgICAgdGhpcy5DYXRlZ29yaWVzLnB1c2goXCJBZmJlZWxkaW5nXCIpO1xyXG4gICAgICAgIHRoaXMuQ2F0ZWdvcmllcy5wdXNoKFwiRmlsdGVyXCIpO1xyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy5Qcm9jZXNzRGVzaXJlZENvdW50cnlDb2RlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuTmF2aWdhdGVTZXJ2aWNlLlJlZnJlc2hQYWdlKCk7XHJcblxyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICAgICAgaWYgKEZhYnJpa2FudGVuU2VydmljZSAhPSBudWxsKSB7XHJcbiAgICAgICAgICBGYWJyaWthbnRlblNlcnZpY2UuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKENoYW5nZURldGVjdG9yUmVmLCBBY3RpdmF0ZWRSb3V0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgICBhbGVydChlcnJvci5qc29uKCkpO1xyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgYWxlcnQoJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgICAgYWxlcnQoZXJyb3IpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93U3BlY2lmaWNhdGlvbigpOiBib29sZWFuIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuQWN0aXZlTGFuZ3VhZ2Uuc2hvd1NwZWNpZmljYXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNob3coKTogYm9vbGVhbiB7XHJcbiAgICBpZiAodGhpcy5Mb2FkaW5nKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsKSB7XHJcbiAgICAgIGlmICh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXMubGVuZ3RoIDwgMikge1xyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlKGNhdGVnb3J5OiBzdHJpbmcsIGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWUodGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0ZWdvcnksIGtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWUobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBjYXRlZ29yeTogc3RyaW5nLCBrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yaWVzO1xyXG4gICAgaWYgKGNhdGFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYXRhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChjYXRhcnJheVtpXS5uYW1lPy50b0xvd2VyQ2FzZSgpID09IGNhdGVnb3J5LnRvTG93ZXJDYXNlKCkpIHtcclxuXHJcbiAgICAgICAgICB2YXIga2V5c2FycmF5ID0gY2F0YXJyYXlbaV0ua2V5c1xyXG4gICAgICAgICAgaWYgKGtleXNhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwga2V5c2FycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgaWYgKGtleXNhcnJheVtqXS5uYW1lPy50b0xvd2VyQ2FzZSgpID09IGtleS50b0xvd2VyQ2FzZSgpKSB7XHJcbiAgICAgICAgICAgICAgICB2YXIgZW50cmllc2FycmF5ID0ga2V5c2FycmF5W2pdLmVudHJpZXM7XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGVudHJpZXNhcnJheSAhPSBudWxsICYmIGVudHJpZXNhcnJheS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiBlbnRyaWVzYXJyYXlbMF0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjYXRlZ29yeSArIFwiLVwiICsga2V5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnkoY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQ2F0ZWdvcnkodGhpcy5BY3RpdmVMYW5ndWFnZSwgY2F0SWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlQ2F0ZWdvcnlEZXNjcmlwdGlvbihjYXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGNhdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUNhdGVnb3J5KGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yeUVudHJpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLmNhdGVnb3J5SWQgPT0gY2F0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBjYXRhcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVDYXRlZ29yeURlc2NyaXB0aW9uKGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgY2F0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgY2F0YXJyYXkgPSBsYW5ndWFnZS5jYXRlZ29yeUVudHJpZXM7XHJcbiAgICBpZiAoY2F0YXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGNhdGFycmF5W2ldLmNhdGVnb3J5SWQgPT0gY2F0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBjYXRhcnJheVtpXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVCQ0JFaWdlbnNjaGFwVG9lYmVob3JlbihiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUJDQkVpZ2Vuc2NoYXBUb2ViZWhvcmVuKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuSWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldFZhbHVlQkNCRWlnZW5zY2hhcFRvZWJlaG9yZW4obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGJjYmVpZ2Vuc2NoYXBhcnJheSA9IGxhbmd1YWdlLmJjYkVpZ2Vuc2NoYXBUb2ViZWhvcmVuRW50cmllcztcclxuICAgIGlmIChiY2JlaWdlbnNjaGFwYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGJjYmVpZ2Vuc2NoYXBhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChiY2JlaWdlbnNjaGFwYXJyYXlbaV0uYmNiRWlnZW5zY2hhcFRvZWJlaG9yZW5JZCA9PSBiY2JFaWdlbnNjaGFwVG9lYmVob3JlbklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gYmNiZWlnZW5zY2hhcGFycmF5W2ldLnZhbHVlIGFzIHN0cmluZztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRBY3RpdmVWYWx1ZVByb2R1Y3QocHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZVByb2R1Y3QodGhpcy5BY3RpdmVMYW5ndWFnZSwgcHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVByb2R1Y3QobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBwcm9kdWN0SWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICB2YXIgcHJvZGFycmF5ID0gbGFuZ3VhZ2UucHJvZHVjdEVudHJpZXM7XHJcbiAgICBpZiAocHJvZGFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9kYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAocHJvZGFycmF5W2ldLnByb2R1Y3RJZCA9PSBwcm9kdWN0SWQpIHtcclxuICAgICAgICAgIHJldHVybiBwcm9kYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlUHJvZHVjdERlc2NyaXB0aW9uKHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVQcm9kdWN0RGVzY3JpcHRpb24odGhpcy5BY3RpdmVMYW5ndWFnZSwgcHJvZHVjdElkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZVByb2R1Y3REZXNjcmlwdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIHByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBwcm9kYXJyYXkgPSBsYW5ndWFnZS5wcm9kdWN0RW50cmllcztcclxuICAgIGlmIChwcm9kYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb2RhcnJheS5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChwcm9kYXJyYXlbaV0ucHJvZHVjdElkID09IHByb2R1Y3RJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHByb2RhcnJheVtpXS5kZXNjcmlwdGlvbiBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVSYW5nZUlucHV0KHJhbmdlSW5wdXRJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuR2V0VmFsdWVSYW5nZUlucHV0KHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIHJhbmdlSW5wdXRJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVSYW5nZUlucHV0KGxhbmd1YWdlOiBMYW5ndWFnZVZpZXdNb2RlbCwgcmFuZ2VJbnB1dElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIHJhbmdlYXJyYXkgPSBsYW5ndWFnZS5yYW5nZUlucHV0RW50cmllcztcclxuICAgIGlmIChyYW5nZWFycmF5ICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByYW5nZWFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKHJhbmdlYXJyYXlbaV0ucmFuZ2VJbnB1dElkID09IHJhbmdlSW5wdXRJZCkge1xyXG4gICAgICAgICAgcmV0dXJuIHJhbmdlYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRmlsdGVyKGZpbHRlcklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUZpbHRlcih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBmaWx0ZXJJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVGaWx0ZXIobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBmaWx0ZXJJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBmaWx0ZXJhcnJheSA9IGxhbmd1YWdlLmZpbHRlckVudHJpZXM7XHJcbiAgICBpZiAoZmlsdGVyYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcmFycmF5W2ldLmZpbHRlcklkID09IGZpbHRlcklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRmlsdGVyT3B0aW9uKGZpbHRlck9wdGlvbklkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZUZpbHRlck9wdGlvbih0aGlzLkFjdGl2ZUxhbmd1YWdlLCBmaWx0ZXJPcHRpb25JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVGaWx0ZXJPcHRpb24obGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBmaWx0ZXJPcHRpb25JZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBmaWx0ZXJhcnJheSA9IGxhbmd1YWdlLmZpbHRlck9wdGlvbkVudHJpZXM7XHJcbiAgICBpZiAoZmlsdGVyYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbHRlcmFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGZpbHRlcmFycmF5W2ldLmZpbHRlck9wdGlvbklkID09IGZpbHRlck9wdGlvbklkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmlsdGVyYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZVZhbHVlRGVzY3JpcHRpb24oYmNiUHJvZHVjdElkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuQWN0aXZlTGFuZ3VhZ2UgIT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5HZXRWYWx1ZURlc2NyaXB0aW9uKHRoaXMuQWN0aXZlTGFuZ3VhZ2UsIGJjYlByb2R1Y3RJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0VmFsdWVEZXNjcmlwdGlvbihsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwsIGJjYlByb2R1Y3RJZDogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIHZhciBkZXNjcmlwdGlvbmFycmF5ID0gbGFuZ3VhZ2UuZGVzY3JpcHRpb25FbnRyaWVzO1xyXG4gICAgaWYgKGRlc2NyaXB0aW9uYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRlc2NyaXB0aW9uYXJyYXkubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoZGVzY3JpcHRpb25hcnJheVtpXS5iY2JQcm9kdWN0SWQgPT0gYmNiUHJvZHVjdElkKSB7XHJcbiAgICAgICAgICByZXR1cm4gZGVzY3JpcHRpb25hcnJheVtpXS52YWx1ZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgR2V0QWN0aXZlVmFsdWVBZmJlZWxkaW5nKGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5BY3RpdmVMYW5ndWFnZSAhPSBudWxsKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLkdldFZhbHVlQWZiZWVsZGluZyh0aGlzLkFjdGl2ZUxhbmd1YWdlLCBiY2JQcm9kdWN0QWZiZWVsZGluZ0lkKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRWYWx1ZUFmYmVlbGRpbmcobGFuZ3VhZ2U6IExhbmd1YWdlVmlld01vZGVsLCBiY2JQcm9kdWN0QWZiZWVsZGluZ0lkOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgdmFyIGFmYmVlbGRpbmdhcnJheSA9IGxhbmd1YWdlLmFmYmVlbGRpbmdFbnRyaWVzO1xyXG4gICAgaWYgKGFmYmVlbGRpbmdhcnJheSAhPSBudWxsKSB7XHJcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWZiZWVsZGluZ2FycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFmYmVlbGRpbmdhcnJheVtpXS5iY2JQcm9kdWN0QWZiZWVsZGluZ0lkID09IGJjYlByb2R1Y3RBZmJlZWxkaW5nSWQpIHtcclxuICAgICAgICAgIHJldHVybiBhZmJlZWxkaW5nYXJyYXlbaV0udmFsdWUgYXMgc3RyaW5nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBcIlwiO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldENhdGVnb3JpZXMoKTogQXJyYXk8VHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWw+IHtcclxuXHJcbiAgICBpZiAodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWw/Lmxhbmd1YWdlcyAhPSBudWxsICYmIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGggPiAwICYmIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5jYXRlZ29yaWVzICE9IG51bGwpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1swXS5jYXRlZ29yaWVzO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBuZXcgQXJyYXk8VHJhbnNsYXRlS2V5Q2F0ZWdvcnlWaWV3TW9kZWw+KCk7O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIEdldEFjdGl2ZUNhdGVnb3JpZSgpOiBUcmFuc2xhdGVLZXlDYXRlZ29yeVZpZXdNb2RlbCB8IG51bGwge1xyXG4gICAgdmFyIGNhdHMgPSB0aGlzLkdldENhdGVnb3JpZXMoKTtcclxuXHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhdHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGNhdHNbaV0ubmFtZSA9PSB0aGlzLlNlbGVjdGVkQ2F0ZWdvcnkpIHtcclxuICAgICAgICByZXR1cm4gY2F0c1tpXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBQcm9jZXNzRGVzaXJlZENvdW50cnlDb2RlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsPy5sYW5ndWFnZXMgIT0gbnVsbCkge1xyXG4gICAgICBpZiAodGhpcy5EZXNpcmVkQ291bnRyeUNvZGUgPT0gXCJcIikge1xyXG4gICAgICAgIHRoaXMuU2V0QWN0aXZlTGFuZ3VhZ2UodGhpcy5MYW5ndWFnZXNWaWV3TW9kZWwubGFuZ3VhZ2VzWzBdKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKHRoaXMuTGFuZ3VhZ2VzVmlld01vZGVsLmxhbmd1YWdlc1tpXS5jb3VudHJ5Q29kZT8udG9TdHJpbmcoKS50b0xvd2VyQ2FzZSgpID09IHRoaXMuRGVzaXJlZENvdW50cnlDb2RlLnRvTG93ZXJDYXNlKCkpIHtcclxuICAgICAgICAgICAgdGhpcy5TZXRBY3RpdmVMYW5ndWFnZSh0aGlzLkxhbmd1YWdlc1ZpZXdNb2RlbC5sYW5ndWFnZXNbaV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBTZXRBY3RpdmVMYW5ndWFnZShsYW5ndWFnZTogTGFuZ3VhZ2VWaWV3TW9kZWwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkFjdGl2ZUxhbmd1YWdlICE9IGxhbmd1YWdlKSB7XHJcbiAgICAgIHRoaXMuQWN0aXZlTGFuZ3VhZ2UgPSBsYW5ndWFnZTtcclxuXHJcbiAgICAgIHRoaXMuTmF2aWdhdGVTZXJ2aWNlLlJlZnJlc2hQYWdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|