@lenne.tech/ng-base 14.13.2 → 14.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/base-components/components/toast/toast.component.d.ts +1 -1
- package/esm2020/base-components/components/breadcrumb/breadcrumb.component.mjs +2 -2
- package/esm2020/base-components/components/model-form/model-form.component.mjs +10 -2
- package/esm2020/base-components/components/model-form-sub/model-form-sub.component.mjs +3 -3
- package/esm2020/base-components/components/refence-input/refence-input.component.mjs +2 -2
- package/esm2020/base-components/components/select/select.component.mjs +4 -4
- package/esm2020/base-components/components/tags/tags.component.mjs +7 -1
- package/esm2020/base-components/components/toast/toast.component.mjs +5 -5
- package/esm2020/shared/services/graphql.service.mjs +6 -1
- package/fesm2015/lenne.tech-ng-base-base-components.mjs +27 -13
- package/fesm2015/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2015/lenne.tech-ng-base-shared.mjs +5 -0
- package/fesm2015/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-base-components.mjs +27 -13
- package/fesm2020/lenne.tech-ng-base-base-components.mjs.map +1 -1
- package/fesm2020/lenne.tech-ng-base-shared.mjs +5 -0
- package/fesm2020/lenne.tech-ng-base-shared.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -75,7 +75,7 @@ export class RefenceInputComponent {
|
|
|
75
75
|
this.control.setErrors(null);
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
-
const foundElement = this.objects.find((e) => e[this.
|
|
78
|
+
const foundElement = this.objects.find((e) => e[this.nameField] === this.currentValue);
|
|
79
79
|
if (!foundElement) {
|
|
80
80
|
this.control.setValue(null);
|
|
81
81
|
this.control.markAsTouched();
|
|
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
225
225
|
}], nameField: [{
|
|
226
226
|
type: Input
|
|
227
227
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZW5jZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFrQixNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU9wQyxNQUFNLE9BQU8scUJBQXFCO0lBcUJoQyxZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFqQnpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFJMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLFdBQU0sR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDNUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVwQix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRW1CLENBQUM7SUFFdEQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsYUFBYSxFQUFF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TztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlLCBHcmFwaFFMU2VydmljZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXJlZmVuY2UtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZmVuY2UtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVmZW5jZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xpc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YWJJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgY29udHJvbDogYW55O1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXRob2QgPSAnZmluZCc7XG4gIEBJbnB1dCgpIGZpZWxkcyA9IFsnaWQnLCAnbmFtZSddO1xuICBASW5wdXQoKSB2YWx1ZUZpZWxkID0gJ2lkJztcbiAgQElucHV0KCkgbmFtZUZpZWxkID0gJ25hbWUnO1xuICBvYmplY3RzOiBhbnlbXSA9IFtdO1xuICBjdXJyZW50VmFsdWU6IGFueTtcbiAgb3B0aW9uc0ZvclRhZ0lucHV0ID0gW107XG4gIHNlbGVjdGVkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyYXBoUUxTZXJ2aWNlOiBHcmFwaFFMU2VydmljZSkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFJlZmVyZW5jZXMoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBnZXRzIHRoZSByZWZlcmVuY2VzIGZyb20gdGhlIEdyYXBoUUwgc2VydmVyIGFuZCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0XG4gICAqL1xuICBnZXRSZWZlcmVuY2VzKCkge1xuICAgIGNvbnN0IGZpZWxkcyA9IFsuLi50aGlzLmZpZWxkc107XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgaWYgKCFmaWVsZHMuaW5jbHVkZXMoZmllbGQpKSB7XG4gICAgICAgICAgZmllbGRzLnB1c2goZmllbGQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZmllbGRzLmluY2x1ZGVzKHRoaXMubmFtZUZpZWxkKSkge1xuICAgICAgICBmaWVsZHMucHVzaCh0aGlzLm5hbWVGaWVsZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ncmFwaFFMU2VydmljZVxuICAgICAgLmdyYXBoUWwodGhpcy5tZXRob2QsIHtcbiAgICAgICAgZmllbGRzLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLm9iamVjdHMgPSByZXN1bHQ7XG4gICAgICAgICAgdGhpcy5zZXRPYmplY3RzQXNPcHRpb25zKCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgY3VycmVudCB2YWx1ZSBpcyBub3QgdmFsaWQsIHNldCB0aGUgY29udHJvbCB0byBhbiBpbnZhbGlkIHN0YXRlXG4gICAqL1xuICBjaGVja1ZhbGlkUmVmZXJlbmNlKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kRWxlbWVudCA9IHRoaXMub2JqZWN0cy5maW5kKChlKSA9PiBlW3RoaXMudmFsdWVGaWVsZF0gPT09IHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICBpZiAoIWZvdW5kRWxlbWVudCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh7IGludmFsaWRSZWZlcmVuY2U6IHRydWUgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSB1c2VyIHByZXNzZXMgdGhlIGVudGVyIGtleSwgbWFyayB0aGUgY29udHJvbCBhcyB0b3VjaGVkXG4gICAqL1xuICBlbnRlcktleShldmVudCkge1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGNvbnRyb2wgaGFzIGEgdmFsdWUgYW5kIHRoZSBvYmplY3RzIGFycmF5IGlzIG5vdCBlbXB0eSwgdGhlbiBmaW5kIHRoZSBvYmplY3QgaW4gdGhlIGFycmF5IHRoYXQgaGFzIHRoZSBzYW1lXG4gICAqIHZhbHVlIGFzIHRoZSBjb250cm9sJ3MgdmFsdWUgYW5kIHNldCB0aGUgY3VycmVudFZhbHVlIHRvIHRoZSB0ZXh0RmllbGQgb2YgdGhhdCBvYmplY3QuIElmIHRoZSBjb250cm9sIGhhcyBhIHZhbHVlIGJ1dFxuICAgKiB0aGUgb2JqZWN0cyBhcnJheSBpcyBlbXB0eSwgdGhlbiBzZXQgdGhlIGN1cnJlbnRWYWx1ZSB0byB0aGUgY29udHJvbCdzIHZhbHVlXG4gICAqL1xuICBzZXRWYWx1ZSgpIHtcbiAgICBpZiAodGhpcy5jb250cm9sPy52YWx1ZSAmJiB0aGlzLm9iamVjdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlPy5pZCkge1xuICAgICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUodGhpcy5jb250cm9sLnZhbHVlLmlkKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZm91bmRFbGVtZW50ID0gdGhpcy5vYmplY3RzLmZpbmQoKGUpID0+IGVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gdGhpcy5jb250cm9sLnZhbHVlKTtcbiAgICAgIGlmIChmb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5jdXJyZW50VmFsdWUgPSB0aGlzLnByZXBhcmVOYW1lRmllbGQoZm91bmRFbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSXQgc2V0cyB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgdG8gdGhlIGlkIG9mIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgICovXG4gIHNldChpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoaWQpO1xuICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogRmlsdGVyIG9wdGlvbnMgZm9yIGRyb3AgZG93blxuICAgKi9cbiAgZmlsdGVyT3B0aW9ucygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMub2JqZWN0c1xuICAgICAgPyB0aGlzLm9iamVjdHMuZmlsdGVyKFxuICAgICAgICAgIChlKSA9PiAoIXRoaXMuY3VycmVudFZhbHVlIHx8IHRoaXMuY2hlY2tGb3JOYW1lRmllbGRzKGUpKSAmJiAhdGhpcy5jb250cm9sPy52YWx1ZT8uaW5jbHVkZXMoZT8udmFsdWUpXG4gICAgICAgIClcbiAgICAgIDogW107XG4gIH1cblxuICAvKipcbiAgICogSXQgdGFrZXMgYW4gYXJyYXkgb2Ygb2JqZWN0cyBhbmQgcmV0dXJucyBhbiBhcnJheSBvZiBvYmplY3RzIHdpdGggdGhlIHRleHQgYW5kIHZhbHVlIGZpZWxkcyBzcGVjaWZpZWRcbiAgICovXG4gIHNldE9iamVjdHNBc09wdGlvbnMoKSB7XG4gICAgdGhpcy5vcHRpb25zRm9yVGFnSW5wdXQgPSB0aGlzLm9iamVjdHMubWFwKChlKSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICB0ZXh0OiB0aGlzLnByZXBhcmVOYW1lRmllbGQoZSksXG4gICAgICAgIHZhbHVlOiBlW3RoaXMudmFsdWVGaWVsZF0sXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgZHJvcGRvd24gZm9jdXNcbiAgICovXG4gIG9uRm9jdXMoZXZlbnQ/KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IGV2ZW50LnRhcmdldDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jaGVja1ZhbGlkUmVmZXJlbmNlKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBudWxsO1xuICAgICAgfSwgMjUwKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBzdHJpbmcgZnVuY3Rpb24gaWYgbmFtZSBmaWVsZHMgaXMgYW4gYXJyYXlcbiAgICovXG4gIHByZXBhcmVOYW1lRmllbGQob2JqZWN0OiBhbnkpIHtcbiAgICBsZXQgcmVzdWx0O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5uYW1lRmllbGQpKSB7XG4gICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIHRoaXMubmFtZUZpZWxkKSB7XG4gICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gb2JqZWN0W2ZpZWxkXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgKyAnICcgKyBvYmplY3RbZmllbGRdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IG9iamVjdFt0aGlzLm5hbWVGaWVsZF07XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBmdW5jdGlvbiBpZiBuYW1lIGZpZWxkcyBpcyBhbiBhcnJheVxuICAgKi9cbiAgY2hlY2tGb3JOYW1lRmllbGRzKG9iamVjdDogYW55KSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5uYW1lRmllbGQpKSB7XG4gICAgICBsZXQgcmVzdWx0ID0gZmFsc2U7XG5cbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgY29uc3QgY2hlY2sgPSBvYmplY3RbZmllbGRdLmluY2x1ZGVzKHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICAgICAgaWYgKGNoZWNrKSB7XG4gICAgICAgICAgcmVzdWx0ID0gY2hlY2s7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9iamVjdFt0aGlzLm5hbWVGaWVsZF0/LmluY2x1ZGVzKHRoaXMuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMaXN0XCI+XG4gIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTNcIj5cbiAgICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtuZ0NsYXNzXT1cInsgcmVxdWlyZWQ6IHJlcXVpcmVkIH1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuXG4gICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCIgKm5nSWY9XCJzZWFyY2hcIj5cbiAgICAgIDxpbnB1dCBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIGhpZGRlbiAvPlxuICAgICAgPGlucHV0XG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudFZhbHVlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IGNvbnRyb2w/LmludmFsaWQgJiYgY29udHJvbD8udG91Y2hlZCB9XCJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uRm9jdXMoKVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlID8/IG51bGxcIlxuICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXggPz8gbnVsbFwiXG4gICAgICAgIChrZXl1cCk9XCJlbnRlcktleSgkZXZlbnQpXCJcbiAgICAgIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiICpuZ0lmPVwib2JqZWN0cyAmJiBzZWxlY3RlZEVsZW1lbnRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbi1pdGVtXCIgKm5nRm9yPVwibGV0IG9iamVjdCBvZiBmaWx0ZXJPcHRpb25zKClcIiAoY2xpY2spPVwic2V0KG9iamVjdFt2YWx1ZUZpZWxkXSlcIj5cbiAgICAgICAgICB7eyBwcmVwYXJlTmFtZUZpZWxkKG9iamVjdCkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCIhc2VhcmNoXCI+XG4gICAgICA8c2VsZWN0XG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICBjbGFzcz1cImZvcm0tc2VsZWN0XCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclwiXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4ID8/IG51bGxcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogY29udHJvbD8uaW52YWxpZCAmJiBjb250cm9sPy50b3VjaGVkIH1cIlxuICAgICAgPlxuICAgICAgICA8b3B0aW9uIFtuZ1ZhbHVlXT1cIm51bGxcIiBzZWxlY3RlZD57eyBwbGFjZWhvbGRlciB9fTwvb3B0aW9uPlxuICAgICAgICA8b3B0aW9uICpuZ0Zvcj1cImxldCBvYmplY3Qgb2Ygb2JqZWN0c1wiIFtuZ1ZhbHVlXT1cIm9iamVjdFt2YWx1ZUZpZWxkXVwiPlxuICAgICAgICAgIHt7IHByZXBhcmVOYW1lRmllbGQob2JqZWN0KSB9fVxuICAgICAgICA8L29wdGlvbj5cbiAgICAgIDwvc2VsZWN0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkLWJsb2NrIGludmFsaWQtZmVlZGJhY2sgbS0yXCJcbiAgICAgICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZCkgJiYgIXNlbGVjdGVkRWxlbWVudFwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydyZXF1aXJlZCddXCI+RGllc2VzIEZlbGQgaXN0IGVpbiBQZmxpY2h0ZmVsZC48L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnaW52YWxpZFJlZmVyZW5jZSddICYmIGN1cnJlbnRWYWx1ZVwiPlxuICAgICAgICB7eyBjdXJyZW50VmFsdWUgfX0gaXN0IGtlaW4gZ8O8bHRpZ2VyIFdlcnQgZsO8ciB7eyBsYWJlbCB9fS5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtaW5sZW5ndGgnXVwiPlxuICAgICAgICBEaWUgTWluZGVzdGzDpG5nZSBmw7xyIGRpZXNlcyBGZWxkIGJldHLDpGd0XG4gICAgICAgIHt7Y29udHJvbC5lcnJvcnM/LlsnbWlubGVuZ3RoJ10/LnJlcXVpcmVkTGVuZ3RofX0gWmVpY2hlbi5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXVwiPlxuICAgICAgICBEaWUgbWF4aW1hbGUgTMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgICAge3tjb250cm9sLmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSBaZWljaGVuLlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ2VtYWlsJ11cIj5CaXR0ZSBlaW5lIGfDvGx0aWdlIEUtTWFpbCBBZHJlc3NlIGFuZ2ViZW4uPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ21hdGNoaW5nJ11cIj5EaWUgUGFzc3fDtnJ0ZXIgbcO8c3NlbiDDvGJlcmVpbiBzdGltbWVuLjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNMaXN0XCI+XG4gIDxiYXNlLXRhZ3NcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW2NvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtjdXN0b21dPVwiZmFsc2VcIlxuICAgIFtvcHRpb25zXT1cIm9wdGlvbnNGb3JUYWdJbnB1dFwiXG4gID48L2Jhc2UtdGFncz5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZW5jZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3JlZmVuY2UtaW5wdXQvcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFrQixNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU9wQyxNQUFNLE9BQU8scUJBQXFCO0lBcUJoQyxZQUFvQixjQUE4QjtRQUE5QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFqQnpDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixXQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ2QsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFJMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLFdBQU0sR0FBRyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN4QixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDNUIsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVwQix1QkFBa0IsR0FBRyxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRW1CLENBQUM7SUFFdEQsS0FBSyxDQUFDLFFBQVE7UUFDWixJQUFJLENBQUMsYUFBYSxFQUFF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TztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhRTFJlcXVlc3RUeXBlLCBHcmFwaFFMU2VydmljZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXJlZmVuY2UtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vcmVmZW5jZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZmVuY2UtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUmVmZW5jZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSBpc0xpc3QgPSBmYWxzZTtcbiAgQElucHV0KCkgc2VhcmNoID0gdHJ1ZTtcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0YWJJbmRleD86IG51bWJlcjtcbiAgQElucHV0KCkgY29udHJvbDogYW55O1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXRob2QgPSAnZmluZCc7XG4gIEBJbnB1dCgpIGZpZWxkcyA9IFsnaWQnLCAnbmFtZSddO1xuICBASW5wdXQoKSB2YWx1ZUZpZWxkID0gJ2lkJztcbiAgQElucHV0KCkgbmFtZUZpZWxkID0gJ25hbWUnO1xuICBvYmplY3RzOiBhbnlbXSA9IFtdO1xuICBjdXJyZW50VmFsdWU6IGFueTtcbiAgb3B0aW9uc0ZvclRhZ0lucHV0ID0gW107XG4gIHNlbGVjdGVkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIHN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGdyYXBoUUxTZXJ2aWNlOiBHcmFwaFFMU2VydmljZSkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFJlZmVyZW5jZXMoKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsdWUoKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBnZXRzIHRoZSByZWZlcmVuY2VzIGZyb20gdGhlIEdyYXBoUUwgc2VydmVyIGFuZCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0XG4gICAqL1xuICBnZXRSZWZlcmVuY2VzKCkge1xuICAgIGNvbnN0IGZpZWxkcyA9IFsuLi50aGlzLmZpZWxkc107XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgaWYgKCFmaWVsZHMuaW5jbHVkZXMoZmllbGQpKSB7XG4gICAgICAgICAgZmllbGRzLnB1c2goZmllbGQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghZmllbGRzLmluY2x1ZGVzKHRoaXMubmFtZUZpZWxkKSkge1xuICAgICAgICBmaWVsZHMucHVzaCh0aGlzLm5hbWVGaWVsZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ncmFwaFFMU2VydmljZVxuICAgICAgLmdyYXBoUWwodGhpcy5tZXRob2QsIHtcbiAgICAgICAgZmllbGRzLFxuICAgICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZShhc3luYyAocmVzdWx0KSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLm9iamVjdHMgPSByZXN1bHQ7XG4gICAgICAgICAgdGhpcy5zZXRPYmplY3RzQXNPcHRpb25zKCk7XG5cbiAgICAgICAgICBpZiAoIXRoaXMuY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFZhbHVlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgY3VycmVudCB2YWx1ZSBpcyBub3QgdmFsaWQsIHNldCB0aGUgY29udHJvbCB0byBhbiBpbnZhbGlkIHN0YXRlXG4gICAqL1xuICBjaGVja1ZhbGlkUmVmZXJlbmNlKCkge1xuICAgIGlmICghdGhpcy5jdXJyZW50VmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kRWxlbWVudCA9IHRoaXMub2JqZWN0cy5maW5kKChlKSA9PiBlW3RoaXMubmFtZUZpZWxkXSA9PT0gdGhpcy5jdXJyZW50VmFsdWUpO1xuICAgIGlmICghZm91bmRFbGVtZW50KSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgaW52YWxpZFJlZmVyZW5jZTogdHJ1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIHVzZXIgcHJlc3NlcyB0aGUgZW50ZXIga2V5LCBtYXJrIHRoZSBjb250cm9sIGFzIHRvdWNoZWRcbiAgICovXG4gIGVudGVyS2V5KGV2ZW50KSB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgY29udHJvbCBoYXMgYSB2YWx1ZSBhbmQgdGhlIG9iamVjdHMgYXJyYXkgaXMgbm90IGVtcHR5LCB0aGVuIGZpbmQgdGhlIG9iamVjdCBpbiB0aGUgYXJyYXkgdGhhdCBoYXMgdGhlIHNhbWVcbiAgICogdmFsdWUgYXMgdGhlIGNvbnRyb2wncyB2YWx1ZSBhbmQgc2V0IHRoZSBjdXJyZW50VmFsdWUgdG8gdGhlIHRleHRGaWVsZCBvZiB0aGF0IG9iamVjdC4gSWYgdGhlIGNvbnRyb2wgaGFzIGEgdmFsdWUgYnV0XG4gICAqIHRoZSBvYmplY3RzIGFycmF5IGlzIGVtcHR5LCB0aGVuIHNldCB0aGUgY3VycmVudFZhbHVlIHRvIHRoZSBjb250cm9sJ3MgdmFsdWVcbiAgICovXG4gIHNldFZhbHVlKCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlICYmIHRoaXMub2JqZWN0cz8ubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuY29udHJvbD8udmFsdWU/LmlkKSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUuaWQpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBmb3VuZEVsZW1lbnQgPSB0aGlzLm9iamVjdHMuZmluZCgoZSkgPT4gZVt0aGlzLnZhbHVlRmllbGRdID09PSB0aGlzLmNvbnRyb2wudmFsdWUpO1xuICAgICAgaWYgKGZvdW5kRWxlbWVudCkge1xuICAgICAgICB0aGlzLmN1cnJlbnRWYWx1ZSA9IHRoaXMucHJlcGFyZU5hbWVGaWVsZChmb3VuZEVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBzZXRzIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbCB0byB0aGUgaWQgb2YgdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgKi9cbiAgc2V0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuY29udHJvbC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShpZCk7XG4gICAgdGhpcy5zZXRWYWx1ZSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3B0aW9ucyBmb3IgZHJvcCBkb3duXG4gICAqL1xuICBmaWx0ZXJPcHRpb25zKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5vYmplY3RzXG4gICAgICA/IHRoaXMub2JqZWN0cy5maWx0ZXIoXG4gICAgICAgICAgKGUpID0+ICghdGhpcy5jdXJyZW50VmFsdWUgfHwgdGhpcy5jaGVja0Zvck5hbWVGaWVsZHMoZSkpICYmICF0aGlzLmNvbnRyb2w/LnZhbHVlPy5pbmNsdWRlcyhlPy52YWx1ZSlcbiAgICAgICAgKVxuICAgICAgOiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCB0YWtlcyBhbiBhcnJheSBvZiBvYmplY3RzIGFuZCByZXR1cm5zIGFuIGFycmF5IG9mIG9iamVjdHMgd2l0aCB0aGUgdGV4dCBhbmQgdmFsdWUgZmllbGRzIHNwZWNpZmllZFxuICAgKi9cbiAgc2V0T2JqZWN0c0FzT3B0aW9ucygpIHtcbiAgICB0aGlzLm9wdGlvbnNGb3JUYWdJbnB1dCA9IHRoaXMub2JqZWN0cy5tYXAoKGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRleHQ6IHRoaXMucHJlcGFyZU5hbWVGaWVsZChlKSxcbiAgICAgICAgdmFsdWU6IGVbdGhpcy52YWx1ZUZpZWxkXSxcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2hvdyBkcm9wZG93biBmb2N1c1xuICAgKi9cbiAgb25Gb2N1cyhldmVudD8pIHtcbiAgICBpZiAoZXZlbnQpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNoZWNrVmFsaWRSZWZlcmVuY2UoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG4gICAgICB9LCAyNTApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIHN0cmluZyBmdW5jdGlvbiBpZiBuYW1lIGZpZWxkcyBpcyBhbiBhcnJheVxuICAgKi9cbiAgcHJlcGFyZU5hbWVGaWVsZChvYmplY3Q6IGFueSkge1xuICAgIGxldCByZXN1bHQ7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgdGhpcy5uYW1lRmllbGQpIHtcbiAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICByZXN1bHQgPSBvYmplY3RbZmllbGRdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCArICcgJyArIG9iamVjdFtmaWVsZF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gb2JqZWN0W3RoaXMubmFtZUZpZWxkXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGZ1bmN0aW9uIGlmIG5hbWUgZmllbGRzIGlzIGFuIGFycmF5XG4gICAqL1xuICBjaGVja0Zvck5hbWVGaWVsZHMob2JqZWN0OiBhbnkpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm5hbWVGaWVsZCkpIHtcbiAgICAgIGxldCByZXN1bHQgPSBmYWxzZTtcblxuICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiB0aGlzLm5hbWVGaWVsZCkge1xuICAgICAgICBjb25zdCBjaGVjayA9IG9iamVjdFtmaWVsZF0uaW5jbHVkZXModGhpcy5jdXJyZW50VmFsdWUpO1xuICAgICAgICBpZiAoY2hlY2spIHtcbiAgICAgICAgICByZXN1bHQgPSBjaGVjaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2JqZWN0W3RoaXMubmFtZUZpZWxkXT8uaW5jbHVkZXModGhpcy5jdXJyZW50VmFsdWUpO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xpc3RcIj5cbiAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgbWItM1wiPlxuICAgIDxsYWJlbCBbZm9yXT1cImlkXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCIgW25nQ2xhc3NdPVwieyByZXF1aXJlZDogcmVxdWlyZWQgfVwiICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG5cbiAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIiAqbmdJZj1cInNlYXJjaFwiPlxuICAgICAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgaGlkZGVuIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJjdXJyZW50VmFsdWVcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogY29udHJvbD8uaW52YWxpZCAmJiBjb250cm9sPy50b3VjaGVkIH1cIlxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25Gb2N1cygpXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPz8gbnVsbFwiXG4gICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCA/PyBudWxsXCJcbiAgICAgICAgKGtleXVwKT1cImVudGVyS2V5KCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb25zXCIgKm5nSWY9XCJvYmplY3RzICYmIHNlbGVjdGVkRWxlbWVudFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLWl0ZW1cIiAqbmdGb3I9XCJsZXQgb2JqZWN0IG9mIGZpbHRlck9wdGlvbnMoKVwiIChjbGljayk9XCJzZXQob2JqZWN0W3ZhbHVlRmllbGRdKVwiPlxuICAgICAgICAgIHt7IHByZXBhcmVOYW1lRmllbGQob2JqZWN0KSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIiFzZWFyY2hcIj5cbiAgICAgIDxzZWxlY3RcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW25hbWVdPVwibmFtZVwiXG4gICAgICAgIGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXggPz8gbnVsbFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LnRvdWNoZWQgfVwiXG4gICAgICA+XG4gICAgICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiIHNlbGVjdGVkPnt7IHBsYWNlaG9sZGVyIH19PC9vcHRpb24+XG4gICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IG9iamVjdCBvZiBvYmplY3RzXCIgW25nVmFsdWVdPVwib2JqZWN0W3ZhbHVlRmllbGRdXCI+XG4gICAgICAgICAge3sgcHJlcGFyZU5hbWVGaWVsZChvYmplY3QpIH19XG4gICAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImQtYmxvY2sgaW52YWxpZC1mZWVkYmFjayBtLTJcIlxuICAgICAgKm5nSWY9XCJjb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sPy5kaXJ0eSB8fCBjb250cm9sPy50b3VjaGVkKSAmJiAhc2VsZWN0ZWRFbGVtZW50XCJcbiAgICA+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIj5EaWVzZXMgRmVsZCBpc3QgZWluIFBmbGljaHRmZWxkLjwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydpbnZhbGlkUmVmZXJlbmNlJ10gJiYgY3VycmVudFZhbHVlXCI+XG4gICAgICAgIHt7IGN1cnJlbnRWYWx1ZSB9fSBpc3Qga2VpbiBnw7xsdGlnZXIgV2VydCBmw7xyIHt7IGxhYmVsIH19LlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddXCI+XG4gICAgICAgIERpZSBNaW5kZXN0bMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgICAge3tjb250cm9sLmVycm9ycz8uWydtaW5sZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSBaZWljaGVuLlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ21heGxlbmd0aCddXCI+XG4gICAgICAgIERpZSBtYXhpbWFsZSBMw6RuZ2UgZsO8ciBkaWVzZXMgRmVsZCBiZXRyw6RndFxuICAgICAgICB7e2NvbnRyb2wuZXJyb3JzPy5bJ21heGxlbmd0aCddPy5yZXF1aXJlZExlbmd0aH19IFplaWNoZW4uXG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnZW1haWwnXVwiPkJpdHRlIGVpbmUgZ8O8bHRpZ2UgRS1NYWlsIEFkcmVzc2UgYW5nZWJlbi48L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWF0Y2hpbmcnXVwiPkRpZSBQYXNzd8O2cnRlciBtw7xzc2VuIMO8YmVyZWluIHN0aW1tZW4uPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xpc3RcIj5cbiAgPGJhc2UtdGFnc1xuICAgIFtpZF09XCJpZFwiXG4gICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbY29udHJvbF09XCJjb250cm9sXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW2N1c3RvbV09XCJmYWxzZVwiXG4gICAgW29wdGlvbnNdPVwib3B0aW9uc0ZvclRhZ0lucHV0XCJcbiAgPjwvYmFzZS10YWdzPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, Input, ViewChild } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input, ViewChild } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/forms";
|
|
4
4
|
import * as i2 from "@angular/common";
|
|
@@ -17,10 +17,10 @@ export class SelectComponent {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: SelectComponent, selector: "base-select", inputs: { id: "id", name: "name", label: "label", placeholder: "placeholder", control: "control", tabIndex: "tabIndex", required: "required", multiple: "multiple", search: "search", options: "options" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<div class=\"form-group mb-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <select\n #select\n [id]=\"id\"\n [name]=\"name\"\n class=\"form-select\"\n [attr.aria-label]=\"placeholder\"\n [attr.data-live-search]=\"search\"\n [formControl]=\"control\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex ?? null\"\n [ngClass]=\"{ 'is-invalid': control?.invalid && control?.touched }\"\n >\n <option [ngValue]=\"null\" disabled selected>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\n {{ option.text }}\n </option>\n </select>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [".required:after{content:\" *\"}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
20
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: SelectComponent, selector: "base-select", inputs: { id: "id", name: "name", label: "label", placeholder: "placeholder", control: "control", tabIndex: "tabIndex", required: "required", multiple: "multiple", search: "search", options: "options" }, viewQueries: [{ propertyName: "select", first: true, predicate: ["select"], descendants: true }], ngImport: i0, template: "<div class=\"form-group mb-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <select\n #select\n [id]=\"id\"\n [name]=\"name\"\n class=\"form-select\"\n [attr.aria-label]=\"placeholder\"\n [attr.data-live-search]=\"search\"\n [formControl]=\"control\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex ?? null\"\n [ngClass]=\"{ 'is-invalid': control?.invalid && control?.touched }\"\n >\n <option [ngValue]=\"null\" disabled selected>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\n {{ option.text }}\n </option>\n </select>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [".required:after{content:\" *\"}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
21
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
22
22
|
type: Component,
|
|
23
|
-
args: [{ selector: 'base-select', template: "<div class=\"form-group mb-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <select\n #select\n [id]=\"id\"\n [name]=\"name\"\n class=\"form-select\"\n [attr.aria-label]=\"placeholder\"\n [attr.data-live-search]=\"search\"\n [formControl]=\"control\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex ?? null\"\n [ngClass]=\"{ 'is-invalid': control?.invalid && control?.touched }\"\n >\n <option [ngValue]=\"null\" disabled selected>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\n {{ option.text }}\n </option>\n </select>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [".required:after{content:\" *\"}\n"] }]
|
|
23
|
+
args: [{ selector: 'base-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"form-group mb-3\">\n <label [for]=\"id\" class=\"form-label\" [ngClass]=\"{ required: required }\" *ngIf=\"label\">{{ label }}</label>\n <select\n #select\n [id]=\"id\"\n [name]=\"name\"\n class=\"form-select\"\n [attr.aria-label]=\"placeholder\"\n [attr.data-live-search]=\"search\"\n [formControl]=\"control\"\n [required]=\"required\"\n [tabIndex]=\"tabIndex ?? null\"\n [ngClass]=\"{ 'is-invalid': control?.invalid && control?.touched }\"\n >\n <option [ngValue]=\"null\" disabled selected>{{ placeholder }}</option>\n <option *ngFor=\"let option of options\" [ngValue]=\"option.value\">\n {{ option.text }}\n </option>\n </select>\n\n <div class=\"invalid-feedback m-2\" *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <div *ngIf=\"control?.errors?.['required']\">Dieses Feld ist ein Pflichtfeld.</div>\n <div *ngIf=\"control?.errors?.['minlength']\">\n Die Mindestl\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['minlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['maxlength']\">\n Die maximale L\u00E4nge f\u00FCr dieses Feld betr\u00E4gt\n {{control?.errors?.['maxlength']?.requiredLength}} Zeichen.\n </div>\n <div *ngIf=\"control?.errors?.['email']\">Bitte eine g\u00FCltige E-Mail Adresse angeben.</div>\n </div>\n</div>\n", styles: [".required:after{content:\" *\"}\n"] }]
|
|
24
24
|
}], propDecorators: { select: [{
|
|
25
25
|
type: ViewChild,
|
|
26
26
|
args: ['select']
|
|
@@ -45,4 +45,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
45
45
|
}], options: [{
|
|
46
46
|
type: Input
|
|
47
47
|
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWJhc2UvYmFzZS1jb21wb25lbnRzL2NvbXBvbmVudHMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBYXpHLE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBWVcsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFHMUIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQWEsRUFBRSxDQUFDO0tBT2pDO0lBTEMsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQzFEO0lBQ0gsQ0FBQzs7NEdBbEJVLGVBQWU7Z0dBQWYsZUFBZSxpV0NiNUIsKzNDQWlDQTsyRkRwQmEsZUFBZTtrQkFOM0IsU0FBUzsrQkFDRSxhQUFhLG1CQUNOLHVCQUF1QixDQUFDLE1BQU07OEJBSzFCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUTtnQkFFVixFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmludGVyZmFjZSBPcHRpb24ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Jhc2Utc2VsZWN0JyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQFZpZXdDaGlsZCgnc2VsZWN0Jykgc2VsZWN0OiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNvbnRyb2w6IGFueTtcbiAgQElucHV0KCkgdGFiSW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNlYXJjaCA9IGZhbHNlO1xuICBASW5wdXQoKSBvcHRpb25zOiBPcHRpb25bXSA9IFtdO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLnNlbGVjdC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnbXVsdGlwbGUnLCB0cnVlKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIG1iLTNcIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdDbGFzc109XCJ7IHJlcXVpcmVkOiByZXF1aXJlZCB9XCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cbiAgPHNlbGVjdFxuICAgICNzZWxlY3RcbiAgICBbaWRdPVwiaWRcIlxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIGNsYXNzPVwiZm9ybS1zZWxlY3RcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicGxhY2Vob2xkZXJcIlxuICAgIFthdHRyLmRhdGEtbGl2ZS1zZWFyY2hdPVwic2VhcmNoXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXggPz8gbnVsbFwiXG4gICAgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IGNvbnRyb2w/LmludmFsaWQgJiYgY29udHJvbD8udG91Y2hlZCB9XCJcbiAgPlxuICAgIDxvcHRpb24gW25nVmFsdWVdPVwibnVsbFwiIGRpc2FibGVkIHNlbGVjdGVkPnt7IHBsYWNlaG9sZGVyIH19PC9vcHRpb24+XG4gICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbbmdWYWx1ZV09XCJvcHRpb24udmFsdWVcIj5cbiAgICAgIHt7IG9wdGlvbi50ZXh0IH19XG4gICAgPC9vcHRpb24+XG4gIDwvc2VsZWN0PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIG0tMlwiICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIj5EaWVzZXMgRmVsZCBpc3QgZWluIFBmbGljaHRmZWxkLjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnbWlubGVuZ3RoJ11cIj5cbiAgICAgIERpZSBNaW5kZXN0bMOkbmdlIGbDvHIgZGllc2VzIEZlbGQgYmV0csOkZ3RcbiAgICAgIHt7Y29udHJvbD8uZXJyb3JzPy5bJ21pbmxlbmd0aCddPy5yZXF1aXJlZExlbmd0aH19IFplaWNoZW4uXG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXVwiPlxuICAgICAgRGllIG1heGltYWxlIEzDpG5nZSBmw7xyIGRpZXNlcyBGZWxkIGJldHLDpGd0XG4gICAgICB7e2NvbnRyb2w/LmVycm9ycz8uWydtYXhsZW5ndGgnXT8ucmVxdWlyZWRMZW5ndGh9fSBaZWljaGVuLlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnZW1haWwnXVwiPkJpdHRlIGVpbmUgZ8O8bHRpZ2UgRS1NYWlsIEFkcmVzc2UgYW5nZWJlbi48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -81,6 +81,9 @@ export class TagsComponent {
|
|
|
81
81
|
this.inputValue = '';
|
|
82
82
|
this.control.setErrors(null);
|
|
83
83
|
}
|
|
84
|
+
if (this.control.value.some((item) => item === foundOption.value)) {
|
|
85
|
+
this.inputValue = '';
|
|
86
|
+
}
|
|
84
87
|
}
|
|
85
88
|
/**
|
|
86
89
|
* Remove tag
|
|
@@ -123,6 +126,9 @@ export class TagsComponent {
|
|
|
123
126
|
this.selectedElement = event.target;
|
|
124
127
|
}
|
|
125
128
|
else {
|
|
129
|
+
if (this.inputValue) {
|
|
130
|
+
this.addTag(this.inputValue);
|
|
131
|
+
}
|
|
126
132
|
this.control.markAsTouched();
|
|
127
133
|
setTimeout(() => {
|
|
128
134
|
if (this.options && this.inputValue) {
|
|
@@ -170,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
170
176
|
}], required: [{
|
|
171
177
|
type: Input
|
|
172
178
|
}] } });
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8sYUFBYTtJQUwxQjtRQVFXLFVBQUssR0FBWSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFLMUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFHLEVBQUUsQ0FBQztLQW1KakI7SUFoSkM7O09BRUc7SUFDSCxjQUFjLENBQUMsR0FBVztRQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFL0QsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxPQUFPLEdBQUcsQ0FBQzthQUNaO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxl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O2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS10YWdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWdzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhZ3NDb21wb25lbnQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgQElucHV0KCkgdGFiSW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbnRyb2w6IGFueTtcbiAgQElucHV0KCkgb3B0aW9ucz86IHsgdGV4dDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgQElucHV0KCkgY3VzdG9tID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVtb3ZlQnlLZXkgPSB0cnVlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBpbnB1dFZhbHVlID0gJyc7XG4gIHNlbGVjdGVkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgaWQgaW50byB0ZXh0IGZpZWxkXG4gICAqL1xuICBnZXRSZWFkYWJsZVRhZyh0YWc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlICYmIHRoaXMub3B0aW9ucykge1xuICAgICAgY29uc3QgZm91bmRFbGVtZW50ID0gdGhpcy5vcHRpb25zLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHRhZyk7XG5cbiAgICAgIGlmIChmb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kRWxlbWVudC50ZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRhZztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhZztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIGVudGVyIGtleXNcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBlbnRlcktleShldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG5cbiAgICBpZiAodGhpcy5yZW1vdmVCeUtleSAmJiBldmVudC5jb2RlID09PSAnQmFja3NwYWNlJyAmJiAhdGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICB0aGlzLnJlbW92ZVRhZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0NvbW1hJyB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnIHx8IGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyB0YWdcbiAgICpcbiAgICogQHBhcmFtIHRhZ1xuICAgKi9cbiAgYWRkVGFnKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRhZy5lbmRzV2l0aCgnLCcpIHx8IHRhZy5lbmRzV2l0aCgnICcpKSB7XG4gICAgICB0YWcgPSB0YWcuc2xpY2UoMCwgLTEpO1xuICAgIH1cblxuICAgIGxldCBmb3VuZE9wdGlvbjtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgZm91bmRPcHRpb24gPSB7IHZhbHVlOiB0YWcsIHRleHQ6IHRhZyB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3VuZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKChlKSA9PiBlLnRleHQgPT09IHRhZyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmN1c3RvbSAmJiAhZm91bmRPcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG5cbiAgICBpZiAoIXRoaXMuY29udHJvbC52YWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShbZm91bmRPcHRpb24udmFsdWVdKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0YWcubGVuZ3RoID4gMCAmJlxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlICYmXG4gICAgICAhdGhpcy5jb250cm9sLnZhbHVlLnNvbWUoKGl0ZW06IHN0cmluZykgPT4gaXRlbSA9PT0gZm91bmRPcHRpb24udmFsdWUpXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoWy4uLnRoaXMuY29udHJvbC52YWx1ZSwgZm91bmRPcHRpb24udmFsdWVdKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRhZ1xuICAgKlxuICAgKiBAcGFyYW0gdGFnXG4gICAqL1xuICByZW1vdmVUYWcodGFnPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGZvdW5kT3B0aW9uO1xuICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICBmb3VuZE9wdGlvbiA9IHsgdmFsdWU6IHRhZywgdGV4dDogdGFnIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvdW5kT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHRhZyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZiAoZm91bmRPcHRpb24pIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0gIT09IGZvdW5kT3B0aW9uLnZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZS5zcGxpY2UoLTEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWU/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3B0aW9ucyBmb3IgZHJvcCBkb3duXG4gICAqL1xuICBmaWx0ZXJPcHRpb25zKCk6IHsgdGV4dDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1xuICAgICAgPyB0aGlzLm9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIChlKSA9PiAoIXRoaXMuaW5wdXRWYWx1ZSB8fCBlPy50ZXh0Py5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUpKSAmJiAhdGhpcy5jb250cm9sLnZhbHVlPy5pbmNsdWRlcyhlLnZhbHVlKVxuICAgICAgICApXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgZHJvcGRvd24gZm9jdXNcbiAgICovXG4gIG9uRm9jdXMoZXZlbnQ/KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMuaW5wdXRWYWx1ZSkge1xuICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmluZCgoZSkgPT4gZS50ZXh0ID09PSB0aGlzLmlucHV0VmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmFkZFRhZyh0aGlzLmlucHV0VmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5pbnB1dFZhbHVlID0gJyc7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsdWUgfHwgdGhpcy5jb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHsgcmVxdWlyZWQ6IHRydWUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG4gICAgICB9LCAyNTApO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAgcG9zaXRpb24tcmVsYXRpdmVcIiAqbmdJZj1cImNvbnRyb2xcIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImZvcm0tbGFiZWxcIiBbbmdDbGFzc109XCJ7IHJlcXVpcmVkOiByZXF1aXJlZCB9XCIgKm5nSWY9XCJsYWJlbFwiPnt7IGxhYmVsIH19PC9sYWJlbD5cblxuICA8ZGl2IGNsYXNzPVwidGFnLXdyYXBwZXJcIiAqbmdJZj1cImNvbnRyb2w/LnZhbHVlXCI+XG4gICAgPGRpdiBjbGFzcz1cInRhZ1wiICpuZ0Zvcj1cImxldCB0YWcgb2YgY29udHJvbD8udmFsdWVcIj5cbiAgICAgIHt7IGdldFJlYWRhYmxlVGFnKHRhZykgfX1cbiAgICAgIDxzcGFuIChjbGljayk9XCJyZW1vdmVUYWcodGFnKVwiPjxpIGNsYXNzPVwiYmkgYmkteC1jaXJjbGVcIj48L2k+PC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGlucHV0IFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgaGlkZGVuIC8+XG4gIDxpbnB1dFxuICAgIFtpZF09XCJpZFwiXG4gICAgW25hbWVdPVwibmFtZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogY29udHJvbD8uaW52YWxpZCAmJiBjb250cm9sPy50b3VjaGVkIH1cIlxuICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgW2F1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUgPz8gbnVsbFwiXG4gICAgW3RhYkluZGV4XT1cInRhYkluZGV4ID8/IG51bGxcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxuICAgIChibHVyKT1cIm9uRm9jdXMoKVwiXG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAoa2V5dXApPVwiZW50ZXJLZXkoJGV2ZW50KVwiXG4gIC8+XG5cbiAgPGRpdiBjbGFzcz1cInRhZy1vcHRpb25zXCIgKm5nSWY9XCJvcHRpb25zICYmIHNlbGVjdGVkRWxlbWVudFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0YWctb3B0aW9uLWl0ZW1cIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlck9wdGlvbnMoKVwiIChjbGljayk9XCJhZGRUYWcob3B0aW9uPy50ZXh0KVwiPlxuICAgICAge3sgb3B0aW9uPy50ZXh0IH19XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrIG0tMlwiICpuZ0lmPVwiY29udHJvbD8uaW52YWxpZCAmJiAoY29udHJvbD8uZGlydHkgfHwgY29udHJvbD8udG91Y2hlZClcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29udHJvbD8uZXJyb3JzPy5bJ3JlcXVpcmVkJ11cIj5EaWVzZXMgRmVsZCBpc3QgZWluIFBmbGljaHRmZWxkLjwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsnaW52YWxpZFJlZmVyZW5jZSddICYmIGlucHV0VmFsdWVcIj5cbiAgICAgIHt7IGlucHV0VmFsdWUgfX0gaXN0IGtlaW4gZ8O8bHRpZ2VyIFdlcnQgZsO8ciB7eyBsYWJlbCB9fS5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RhZ3MvdGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU9qRCxNQUFNLE9BQU8sYUFBYTtJQUwxQjtRQVFXLFVBQUssR0FBWSxFQUFFLENBQUM7UUFDcEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFLMUIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDMUIsZUFBVSxHQUFHLEVBQUUsQ0FBQztLQTJKakI7SUF4SkM7O09BRUc7SUFDSCxjQUFjLENBQUMsR0FBVztRQUN4QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkMsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7WUFFL0QsSUFBSSxZQUFZLEVBQUU7Z0JBQ2hCLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQzthQUMxQjtpQkFBTTtnQkFDTCxPQUFPLEdBQUcsQ0FBQzthQUNaO1NBQ0Y7YUFBTTtZQUNMLE9BQU8sR0FBRyxDQUFDO1NBQ1o7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxl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RSxDQUFDLENBQUM7aUJBQzVDO2dCQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1lBQzlCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQzs7MEdBdEtVLGFBQWE7OEZBQWIsYUFBYSxpU0NQMUIsaStDQXNDQTsyRkQvQmEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxXQUFXOzhCQUtaLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYmFzZS10YWdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWdzLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFRhZ3NDb21wb25lbnQge1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyPzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZT86IHN0cmluZztcbiAgQElucHV0KCkgdGFiSW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIGNvbnRyb2w6IGFueTtcbiAgQElucHV0KCkgb3B0aW9ucz86IHsgdGV4dDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXTtcbiAgQElucHV0KCkgY3VzdG9tID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVtb3ZlQnlLZXkgPSB0cnVlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBpbnB1dFZhbHVlID0gJyc7XG4gIHNlbGVjdGVkRWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgaWQgaW50byB0ZXh0IGZpZWxkXG4gICAqL1xuICBnZXRSZWFkYWJsZVRhZyh0YWc6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlICYmIHRoaXMub3B0aW9ucykge1xuICAgICAgY29uc3QgZm91bmRFbGVtZW50ID0gdGhpcy5vcHRpb25zLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHRhZyk7XG5cbiAgICAgIGlmIChmb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGZvdW5kRWxlbWVudC50ZXh0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRhZztcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRhZztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIHRvIGVudGVyIGtleXNcbiAgICpcbiAgICogQHBhcmFtIGV2ZW50XG4gICAqL1xuICBlbnRlcktleShldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG5cbiAgICBpZiAodGhpcy5yZW1vdmVCeUtleSAmJiBldmVudC5jb2RlID09PSAnQmFja3NwYWNlJyAmJiAhdGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICB0aGlzLnJlbW92ZVRhZygpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoZXZlbnQuY29kZSA9PT0gJ0NvbW1hJyB8fCBldmVudC5jb2RlID09PSAnU3BhY2UnIHx8IGV2ZW50LmNvZGUgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQWRkIG5ldyB0YWdcbiAgICpcbiAgICogQHBhcmFtIHRhZ1xuICAgKi9cbiAgYWRkVGFnKHRhZzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRhZy5lbmRzV2l0aCgnLCcpIHx8IHRhZy5lbmRzV2l0aCgnICcpKSB7XG4gICAgICB0YWcgPSB0YWcuc2xpY2UoMCwgLTEpO1xuICAgIH1cblxuICAgIGxldCBmb3VuZE9wdGlvbjtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykge1xuICAgICAgZm91bmRPcHRpb24gPSB7IHZhbHVlOiB0YWcsIHRleHQ6IHRhZyB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3VuZE9wdGlvbiA9IHRoaXMub3B0aW9ucy5maW5kKChlKSA9PiBlLnRleHQgPT09IHRhZyk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmN1c3RvbSAmJiAhZm91bmRPcHRpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudCA9IG51bGw7XG5cbiAgICBpZiAoIXRoaXMuY29udHJvbC52YWx1ZSkge1xuICAgICAgdGhpcy5jb250cm9sLnNldFZhbHVlKFtdKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlPy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZShbZm91bmRPcHRpb24udmFsdWVdKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0YWcubGVuZ3RoID4gMCAmJlxuICAgICAgdGhpcy5jb250cm9sLnZhbHVlICYmXG4gICAgICAhdGhpcy5jb250cm9sLnZhbHVlLnNvbWUoKGl0ZW06IHN0cmluZykgPT4gaXRlbSA9PT0gZm91bmRPcHRpb24udmFsdWUpXG4gICAgKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0VmFsdWUoWy4uLnRoaXMuY29udHJvbC52YWx1ZSwgZm91bmRPcHRpb24udmFsdWVdKTtcbiAgICAgIHRoaXMuaW5wdXRWYWx1ZSA9ICcnO1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyhudWxsKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb250cm9sLnZhbHVlLnNvbWUoKGl0ZW06IHN0cmluZykgPT4gaXRlbSA9PT0gZm91bmRPcHRpb24udmFsdWUpKSB7XG4gICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIHRhZ1xuICAgKlxuICAgKiBAcGFyYW0gdGFnXG4gICAqL1xuICByZW1vdmVUYWcodGFnPzogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IGZvdW5kT3B0aW9uO1xuICAgIGlmICghdGhpcy5vcHRpb25zKSB7XG4gICAgICBmb3VuZE9wdGlvbiA9IHsgdmFsdWU6IHRhZywgdGV4dDogdGFnIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvdW5kT3B0aW9uID0gdGhpcy5vcHRpb25zLmZpbmQoKGUpID0+IGUudmFsdWUgPT09IHRhZyk7XG4gICAgfVxuXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICBpZiAoZm91bmRPcHRpb24pIHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh0aGlzLmNvbnRyb2wudmFsdWUuZmlsdGVyKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0gIT09IGZvdW5kT3B0aW9uLnZhbHVlKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRyb2wudmFsdWUpIHtcbiAgICAgIHRoaXMuY29udHJvbC52YWx1ZS5zcGxpY2UoLTEpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWU/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5jb250cm9sLnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3B0aW9ucyBmb3IgZHJvcCBkb3duXG4gICAqL1xuICBmaWx0ZXJPcHRpb25zKCk6IHsgdGV4dDogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1xuICAgICAgPyB0aGlzLm9wdGlvbnMuZmlsdGVyKFxuICAgICAgICAgIChlKSA9PiAoIXRoaXMuaW5wdXRWYWx1ZSB8fCBlPy50ZXh0Py5pbmNsdWRlcyh0aGlzLmlucHV0VmFsdWUpKSAmJiAhdGhpcy5jb250cm9sLnZhbHVlPy5pbmNsdWRlcyhlLnZhbHVlKVxuICAgICAgICApXG4gICAgICA6IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgZHJvcGRvd24gZm9jdXNcbiAgICovXG4gIG9uRm9jdXMoZXZlbnQ/KSB7XG4gICAgaWYgKGV2ZW50KSB7XG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgdGhpcy5zZWxlY3RlZEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmlucHV0VmFsdWUpIHtcbiAgICAgICAgdGhpcy5hZGRUYWcodGhpcy5pbnB1dFZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgdGhpcy5pbnB1dFZhbHVlKSB7XG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5maW5kKChlKSA9PiBlLnRleHQgPT09IHRoaXMuaW5wdXRWYWx1ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuYWRkVGFnKHRoaXMuaW5wdXRWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuY29udHJvbC52YWx1ZSB8fCB0aGlzLmNvbnRyb2wudmFsdWU/Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRFcnJvcnMoeyByZXF1aXJlZDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50ID0gbnVsbDtcbiAgICAgIH0sIDI1MCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBwb3NpdGlvbi1yZWxhdGl2ZVwiICpuZ0lmPVwiY29udHJvbFwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiIFtuZ0NsYXNzXT1cInsgcmVxdWlyZWQ6IHJlcXVpcmVkIH1cIiAqbmdJZj1cImxhYmVsXCI+e3sgbGFiZWwgfX08L2xhYmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJ0YWctd3JhcHBlclwiICpuZ0lmPVwiY29udHJvbD8udmFsdWVcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGFnXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBjb250cm9sPy52YWx1ZVwiPlxuICAgICAge3sgZ2V0UmVhZGFibGVUYWcodGFnKSB9fVxuICAgICAgPHNwYW4gKGNsaWNrKT1cInJlbW92ZVRhZyh0YWcpXCI+PGkgY2xhc3M9XCJiaSBiaS14LWNpcmNsZVwiPjwvaT48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8aW5wdXQgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBoaWRkZW4gLz5cbiAgPGlucHV0XG4gICAgW2lkXT1cImlkXCJcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBjb250cm9sPy5pbnZhbGlkICYmIGNvbnRyb2w/LnRvdWNoZWQgfVwiXG4gICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICBbYXV0b2NvbXBsZXRlXT1cImF1dG9jb21wbGV0ZSA/PyBudWxsXCJcbiAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXggPz8gbnVsbFwiXG4gICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXG4gICAgKGJsdXIpPVwib25Gb2N1cygpXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgIChrZXl1cCk9XCJlbnRlcktleSgkZXZlbnQpXCJcbiAgLz5cblxuICA8ZGl2IGNsYXNzPVwidGFnLW9wdGlvbnNcIiAqbmdJZj1cIm9wdGlvbnMgJiYgc2VsZWN0ZWRFbGVtZW50XCI+XG4gICAgPGRpdiBjbGFzcz1cInRhZy1vcHRpb24taXRlbVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyT3B0aW9ucygpXCIgKGNsaWNrKT1cImFkZFRhZyhvcHRpb24/LnRleHQpXCI+XG4gICAgICB7eyBvcHRpb24/LnRleHQgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImludmFsaWQtZmVlZGJhY2sgbS0yXCIgKm5nSWY9XCJjb250cm9sPy5pbnZhbGlkICYmIChjb250cm9sPy5kaXJ0eSB8fCBjb250cm9sPy50b3VjaGVkKVwiPlxuICAgIDxkaXYgKm5nSWY9XCJjb250cm9sPy5lcnJvcnM/LlsncmVxdWlyZWQnXVwiPkRpZXNlcyBGZWxkIGlzdCBlaW4gUGZsaWNodGZlbGQuPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cImNvbnRyb2w/LmVycm9ycz8uWydpbnZhbGlkUmVmZXJlbmNlJ10gJiYgaW5wdXRWYWx1ZVwiPlxuICAgICAge3sgaW5wdXRWYWx1ZSB9fSBpc3Qga2VpbiBnw7xsdGlnZXIgV2VydCBmw7xyIHt7IGxhYmVsIH19LlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -7,8 +7,8 @@ import * as i1 from "@lenne.tech/ng-base/shared";
|
|
|
7
7
|
import * as i2 from "@angular/common";
|
|
8
8
|
const toastAnimation = trigger('toastAnimation', [
|
|
9
9
|
transition('* <=> *', [
|
|
10
|
-
query(':enter', [style({ transform: 'translateX(
|
|
11
|
-
query(':leave', animate('200ms ease-in', style({ transform: 'translateX(
|
|
10
|
+
query(':enter', [style({ transform: 'translateX({{ x }})' }), animate('200ms ease-in', style({ transform: 'translateX(0%)' }))], { optional: true }),
|
|
11
|
+
query(':leave', animate('200ms ease-in', style({ transform: 'translateX({{ x }})' })), { optional: true }),
|
|
12
12
|
]),
|
|
13
13
|
]);
|
|
14
14
|
export class ToastComponent {
|
|
@@ -58,11 +58,11 @@ export class ToastComponent {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ToastComponent, selector: "base-toast", inputs: { position: "position" }, ngImport: i0, template: "<div
|
|
61
|
+
ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.0", type: ToastComponent, selector: "base-toast", inputs: { position: "position" }, ngImport: i0, template: "<div\n class=\"toast-container position-fixed\"\n [ngClass]=\"position\"\n [@toastAnimation]=\"{ value: toasts.length, params: { x: position.includes('left') ? '-100%' : '100%' } }\"\n>\n <div\n class=\"toast show\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n *ngFor=\"let toast of toasts\"\n [ngClass]=\"toast.type\"\n >\n <div class=\"toast-header\">\n <strong class=\"me-auto\">{{ toast?.title ?? getDefaultTitle(toast) }}</strong>\n <button type=\"button\" class=\"btn-close btn-close-white\" data-bs-dismiss=\"toast\" aria-label=\"Close\"></button>\n </div>\n <div class=\"toast-body\">\n {{ toast?.description ?? getDefaultDescription(toast) }}\n\n <div class=\"mt-2\" *ngIf=\"toast?.errorCode\">\n <code>ERROR: {{ toast.errorCode }}</code>\n </div>\n\n <div class=\"mt-2\" *ngIf=\"toast.type === ToastType.ERROR\">\n <a class=\"color-secondary\" href=\"#\" (click)=\"reload()\">Seite neu laden</a>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{--base-toast-z-index: 999}.toast-container{padding:10px;z-index:var(--base-toast-z-index)}.bottom-right{bottom:0;right:0}.top-right{top:0;right:0}.bottom-left{bottom:0;left:0}.top-left{top:0;left:0}.toast{border-radius:0;border:0}.toast a{text-decoration:none;font-weight:600}.toast .toast-header{border-radius:0}.error .toast-header{background-color:var(--bs-danger);color:var(--bs-white)}.warning .toast-header{background-color:var(--bs-warning);color:var(--bs-white)}.info .toast-header{background-color:var(--bs-info);color:var(--bs-white)}.success .toast-header{background-color:var(--bs-success);color:var(--bs-white)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [toastAnimation] });
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImport: i0, type: ToastComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
|
-
args: [{ selector: 'base-toast', animations: [toastAnimation], template: "<div
|
|
64
|
+
args: [{ selector: 'base-toast', animations: [toastAnimation], template: "<div\n class=\"toast-container position-fixed\"\n [ngClass]=\"position\"\n [@toastAnimation]=\"{ value: toasts.length, params: { x: position.includes('left') ? '-100%' : '100%' } }\"\n>\n <div\n class=\"toast show\"\n role=\"alert\"\n aria-live=\"assertive\"\n aria-atomic=\"true\"\n *ngFor=\"let toast of toasts\"\n [ngClass]=\"toast.type\"\n >\n <div class=\"toast-header\">\n <strong class=\"me-auto\">{{ toast?.title ?? getDefaultTitle(toast) }}</strong>\n <button type=\"button\" class=\"btn-close btn-close-white\" data-bs-dismiss=\"toast\" aria-label=\"Close\"></button>\n </div>\n <div class=\"toast-body\">\n {{ toast?.description ?? getDefaultDescription(toast) }}\n\n <div class=\"mt-2\" *ngIf=\"toast?.errorCode\">\n <code>ERROR: {{ toast.errorCode }}</code>\n </div>\n\n <div class=\"mt-2\" *ngIf=\"toast.type === ToastType.ERROR\">\n <a class=\"color-secondary\" href=\"#\" (click)=\"reload()\">Seite neu laden</a>\n </div>\n </div>\n </div>\n</div>\n", styles: [":host{--base-toast-z-index: 999}.toast-container{padding:10px;z-index:var(--base-toast-z-index)}.bottom-right{bottom:0;right:0}.top-right{top:0;right:0}.bottom-left{bottom:0;left:0}.top-left{top:0;left:0}.toast{border-radius:0;border:0}.toast a{text-decoration:none;font-weight:600}.toast .toast-header{border-radius:0}.error .toast-header{background-color:var(--bs-danger);color:var(--bs-white)}.warning .toast-header{background-color:var(--bs-warning);color:var(--bs-white)}.info .toast-header{background-color:var(--bs-info);color:var(--bs-white)}.success .toast-header{background-color:var(--bs-success);color:var(--bs-white)}\n"] }]
|
|
65
65
|
}], ctorParameters: function () { return [{ type: i1.ToastService }]; }, propDecorators: { position: [{
|
|
66
66
|
type: Input
|
|
67
67
|
}] } });
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9iYXNlLWNvbXBvbmVudHMvY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1iYXNlL2Jhc2UtY29tcG9uZW50cy9jb21wb25lbnRzL3RvYXN0L3RvYXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUF1QixTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQUU1RSxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7SUFDL0MsVUFBVSxDQUFDLFNBQVMsRUFBRTtRQUNwQixLQUFLLENBQ0gsUUFBUSxFQUNSLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUMvRyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FDbkI7UUFDRCxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQzNHLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFRSCxNQUFNLE9BQU8sY0FBYztJQU16QixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUw5QyxXQUFNLEdBQVksRUFBRSxDQUFDO1FBQ3JCLGNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBOEQsY0FBYyxDQUFDO0lBRTdDLENBQUM7SUFFbEQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztZQUM3QyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDZCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRTtZQUNsQixLQUFLLFNBQVMsQ0FBQyxLQUFLO2dCQUNsQixPQUFPLGdDQUFnQyxDQUFDO1lBQzFDLEtBQUssU0FBUyxDQUFDLElBQUk7Z0JBQ2pCLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLE9BQU8sU0FBUyxDQUFDO1lBQ25CLEtBQUssU0FBUyxDQUFDLE9BQU87Z0JBQ3BCLE9BQU8sYUFBYSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQVk7UUFDaEMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ2xCLEtBQUssU0FBUyxDQUFDLEtBQUs7Z0JBQ2xCLE9BQU8sMEVBQTBFLEdBQUcseUJBQXlCLENBQUM7WUFDaEgsS0FBSyxTQUFTLENBQUMsSUFBSTtnQkFDakIsT0FBTyxNQUFNLENBQUM7WUFDaEIsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxTQUFTLENBQUMsT0FBTztnQkFDcEIsT0FBTyxnREFBZ0QsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxNQUFNO1FBQ0osUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BCLENBQUM7OzJHQWxEVSxjQUFjOytGQUFkLGNBQWMsb0ZDdEIzQiw0aENBOEJBLG0rQkRWYyxDQUFDLGNBQWMsQ0FBQzsyRkFFakIsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxZQUFZLGNBR1YsQ0FBQyxjQUFjLENBQUM7bUdBTW5CLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYW5pbWF0ZSwgcXVlcnksIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0LCBUb2FzdFNlcnZpY2UsIFRvYXN0VHlwZSB9IGZyb20gJ0BsZW5uZS50ZWNoL25nLWJhc2Uvc2hhcmVkJztcblxuY29uc3QgdG9hc3RBbmltYXRpb24gPSB0cmlnZ2VyKCd0b2FzdEFuaW1hdGlvbicsIFtcbiAgdHJhbnNpdGlvbignKiA8PT4gKicsIFtcbiAgICBxdWVyeShcbiAgICAgICc6ZW50ZXInLFxuICAgICAgW3N0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7eyB4IH19KScgfSksIGFuaW1hdGUoJzIwMG1zIGVhc2UtaW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoMCUpJyB9KSldLFxuICAgICAgeyBvcHRpb25hbDogdHJ1ZSB9XG4gICAgKSxcbiAgICBxdWVyeSgnOmxlYXZlJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1pbicsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCh7eyB4IH19KScgfSkpLCB7IG9wdGlvbmFsOiB0cnVlIH0pLFxuICBdKSxcbl0pO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdiYXNlLXRvYXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RvYXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgYW5pbWF0aW9uczogW3RvYXN0QW5pbWF0aW9uXSxcbn0pXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHRvYXN0czogVG9hc3RbXSA9IFtdO1xuICBUb2FzdFR5cGUgPSBUb2FzdFR5cGU7XG4gIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIEBJbnB1dCgpIHBvc2l0aW9uOiAndG9wLXJpZ2h0JyB8ICdib3R0b20tcmlnaHQnIHwgJ2JvdHRvbS1sZWZ0JyB8ICd0b3AtbGVmdCcgPSAnYm90dG9tLXJpZ2h0JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS50b2FzdHNBc09ic2VydmFibGUuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgdGhpcy50b2FzdHMgPSB2YWx1ZTtcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0RGVmYXVsdFRpdGxlKHRvYXN0OiBUb2FzdCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0b2FzdC50eXBlKSB7XG4gICAgICBjYXNlIFRvYXN0VHlwZS5FUlJPUjpcbiAgICAgICAgcmV0dXJuICdJcmdlbmRldHdhcyBpc3Qgc2NoaWVmZ2VsYXVmZW4nO1xuICAgICAgY2FzZSBUb2FzdFR5cGUuSU5GTzpcbiAgICAgICAgcmV0dXJuICdJbmZvJztcbiAgICAgIGNhc2UgVG9hc3RUeXBlLldBUk5JTkc6XG4gICAgICAgIHJldHVybiAnQWNodHVuZyc7XG4gICAgICBjYXNlIFRvYXN0VHlwZS5TVUNDRVNTOlxuICAgICAgICByZXR1cm4gJ0VyZm9sZ3JlaWNoJztcbiAgICB9XG4gIH1cblxuICBnZXREZWZhdWx0RGVzY3JpcHRpb24odG9hc3Q6IFRvYXN0KTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHRvYXN0LnR5cGUpIHtcbiAgICAgIGNhc2UgVG9hc3RUeXBlLkVSUk9SOlxuICAgICAgICByZXR1cm4gJ1NvbGx0ZSBkYXMgUHJvYmxlbSBsw6RuZ2VyIGJlc3RlaGVuIGJsZWliZW4sIGRhbm4gd2VuZGVuIFNpZSBzaWNoIGJpdHRlXFxuJyArICcgICAgICAgIGFuIGRlbiBTdXBwb3J0Lic7XG4gICAgICBjYXNlIFRvYXN0VHlwZS5JTkZPOlxuICAgICAgICByZXR1cm4gJ0luZm8nO1xuICAgICAgY2FzZSBUb2FzdFR5cGUuV0FSTklORzpcbiAgICAgICAgcmV0dXJuICdXYXJuaW5nJztcbiAgICAgIGNhc2UgVG9hc3RUeXBlLlNVQ0NFU1M6XG4gICAgICAgIHJldHVybiAnRGllIMOEbmRlcnVuZ2VuIHd1cmRlbiBlcmZvbGdyZWljaCBnZXNwZWljaGVydC4nO1xuICAgIH1cbiAgfVxuXG4gIHJlbG9hZCgpIHtcbiAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInRvYXN0LWNvbnRhaW5lciBwb3NpdGlvbi1maXhlZFwiXG4gIFtuZ0NsYXNzXT1cInBvc2l0aW9uXCJcbiAgW0B0b2FzdEFuaW1hdGlvbl09XCJ7IHZhbHVlOiB0b2FzdHMubGVuZ3RoLCBwYXJhbXM6IHsgeDogcG9zaXRpb24uaW5jbHVkZXMoJ2xlZnQnKSA/ICctMTAwJScgOiAnMTAwJScgfSB9XCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwidG9hc3Qgc2hvd1wiXG4gICAgcm9sZT1cImFsZXJ0XCJcbiAgICBhcmlhLWxpdmU9XCJhc3NlcnRpdmVcIlxuICAgIGFyaWEtYXRvbWljPVwidHJ1ZVwiXG4gICAgKm5nRm9yPVwibGV0IHRvYXN0IG9mIHRvYXN0c1wiXG4gICAgW25nQ2xhc3NdPVwidG9hc3QudHlwZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwidG9hc3QtaGVhZGVyXCI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwibWUtYXV0b1wiPnt7IHRvYXN0Py50aXRsZSA/PyBnZXREZWZhdWx0VGl0bGUodG9hc3QpIH19PC9zdHJvbmc+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0bi1jbG9zZSBidG4tY2xvc2Utd2hpdGVcIiBkYXRhLWJzLWRpc21pc3M9XCJ0b2FzdFwiIGFyaWEtbGFiZWw9XCJDbG9zZVwiPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJ0b2FzdC1ib2R5XCI+XG4gICAgICB7eyB0b2FzdD8uZGVzY3JpcHRpb24gPz8gZ2V0RGVmYXVsdERlc2NyaXB0aW9uKHRvYXN0KSB9fVxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0lmPVwidG9hc3Q/LmVycm9yQ29kZVwiPlxuICAgICAgICA8Y29kZT5FUlJPUjoge3sgdG9hc3QuZXJyb3JDb2RlIH19PC9jb2RlPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nSWY9XCJ0b2FzdC50eXBlID09PSBUb2FzdFR5cGUuRVJST1JcIj5cbiAgICAgICAgPGEgY2xhc3M9XCJjb2xvci1zZWNvbmRhcnlcIiBocmVmPVwiI1wiIChjbGljayk9XCJyZWxvYWQoKVwiPlNlaXRlIG5ldSBsYWRlbjwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -245,6 +245,11 @@ export class GraphQLService {
|
|
|
245
245
|
if (allowed && !allowed.fields[key]) {
|
|
246
246
|
continue;
|
|
247
247
|
}
|
|
248
|
+
// Handling to set a float to null because empty string is invalid
|
|
249
|
+
if (allowed.fields[key].type === 'Float' && value === null) {
|
|
250
|
+
result.push(key + ':' + null);
|
|
251
|
+
continue;
|
|
252
|
+
}
|
|
248
253
|
// Skip value if not exists
|
|
249
254
|
if (value === undefined || value === null) {
|
|
250
255
|
continue;
|
|
@@ -432,4 +437,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.0", ngImpor
|
|
|
432
437
|
providedIn: 'root',
|
|
433
438
|
}]
|
|
434
439
|
}], ctorParameters: function () { return [{ type: i1.Apollo }, { type: i2.GraphQLMetaService }]; } });
|
|
435
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRW5DOztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFDekI7O09BRUc7SUFDSCxZQUFzQixNQUFjLEVBQVksa0JBQXNDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUUxRjs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBMkIsRUFBRTtRQUMzRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsa0JBQWtCLENBQUMsS0FBSztZQUM5QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsd0NBQXdDO1FBQ3hDLElBQUksT0FBTyxNQUFNLENBQUMsU0FB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QUFDO2dCQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUN2RCxZQUFZLEdBQUcsWUFBWSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQzNFO3FCQUFNO29CQUNMLFlBQVk7d0JBQ1YsWUFBWTs0QkFDWixJQUFJOzRCQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzs0QkFDOUIsR0FBRzs0QkFDSCxHQUFHOzRCQUNILEdBQUc7NEJBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUU7Z0NBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztnQ0FDNUIsTUFBTSxFQUFFLFdBQVcsR0FBRyxHQUFHO2dDQUN6QixNQUFNO2dDQUNOLFlBQVk7Z0NBQ1osR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO2dDQUNaLFVBQVU7NkJBQ1gsQ0FBQyxDQUFDLFlBQVk7NEJBQ2YsSUFBSTs0QkFDSixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzlCLEdBQUcsQ0FBQztpQkFDUDthQUNGO1NBQ0Y7UUFFRCxnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7MkdBamZVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcG9sbG8sIGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmFwaFFMT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3JhcGhxbC1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBoUUxNZXRhU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTEVudW0gfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtZW51bS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaFFMVHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC10eXBlLmNsYXNzJztcbmltcG9ydCB7IHNoYTI1NiB9IGZyb20gJ2pzLXNoYTI1Nic7XG5cbi8qKlxuICogR3JhcGhRTCBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFwaFFMU2VydmljZSB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHNlcnZpY2VzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sIHByb3RlY3RlZCBncmFwaFFMTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSkge31cblxuICAvKipcbiAgICogR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwdWJsaWMgZ3JhcGhRbChncmFwaHFsOiBzdHJpbmcsIG9wdGlvbnM6IElHcmFwaFFMT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBDaGVjayBhcmd1bWVudHNcbiAgICBpZiAoIWdyYXBocWwpIHtcbiAgICAgIHRocm93RXJyb3IoJ01pc3NpbmcgZ3JhcGhxbCBhcmd1bWVudCcpO1xuICAgIH1cblxuICAgIC8vIEdldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcmd1bWVudHM6IG51bGwsXG4gICAgICBmaWVsZHM6IG51bGwsXG4gICAgICBsb2c6IGZhbHNlLFxuICAgICAgbW9kZWw6IG51bGwsXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgYXJndW1lbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuYXJndW1lbnRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuYXJndW1lbnRzID0gbmV3IGNvbmZpZy5hcmd1bWVudHMoKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgZmllbGRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmllbGRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuZmllbGRzID0gbmV3IGNvbmZpZy5maWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLyBMb2dcbiAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfVxuXG4gICAgLy8gU2VuZCByZXF1ZXN0XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAvLyBHZXQgbWV0YVxuICAgICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSh7IGxvZzogY29uZmlnLmxvZyB9KS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgLy8gUHJlcGFyZSBmaWVsZHNcbiAgICAgICAgbGV0IGZpZWxkcztcbiAgICAgICAgbGV0IGFsbG93ZWRGaWVsZHM7XG5cbiAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IG1ldGEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmZpZWxkcykge1xuICAgICAgICAgIGFsbG93ZWRGaWVsZHMgPSBtZXRhLmdldEZpZWxkcyhncmFwaHFsLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkRmllbGRzIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpZWxkc0RhdGEgPSB0aGlzLnByZXBhcmVGaWVsZHMoY29uZmlnLmZpZWxkcywge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGZpZWxkcyA9IGZpZWxkc0RhdGEuZmllbGRzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkcyAmJiAhZmllbGRzLnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICAgIGZpZWxkcyA9ICd7JyArIGZpZWxkcyArICdcXG59JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZyBmaWVsZHNcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGZpZWxkcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGxvd2VkIGFyZ3NcbiAgICAgICAgY29uc3QgYWxsb3dlZEFyZ3MgPSBtZXRhLmdldEFyZ3MoZ3JhcGhxbCwgeyB0eXBlOiBjb25maWcudHlwZSB9KTtcblxuICAgICAgICAvLyBMb2cgYWxsb3dlZCBhcmdzXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkQXJncyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3NEYXRhID0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKGNvbmZpZy5hcmd1bWVudHMsIHtcbiAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkQXJncyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTG9nIGFyZ3MgZGF0YVxuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGFyZ3NEYXRhLnVzZWRBcmdzLnNvcnQoKTtcbiAgICAgICAgICBhcmdzRGF0YS5zY2hlbWFBcmdzLnNvcnQoKTtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IGFyZ3NEYXRhLnNjaGVtYUFyZ3MuZmlsdGVyKChmaWVsZCkgPT4gIWFyZ3NEYXRhLnVzZWRBcmdzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgY29uc3QgdW51c2VkID0gdGhpcy5ncmFwaFFMVHlwZVRvU3RyaW5nQXJyYXkoYWxsb3dlZEFyZ3MpXG4gICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAuZmlsdGVyKChmaWVsZCkgPT4gIWFyZ3NEYXRhLnVzZWRBcmdzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBhcmdzRGF0YSwgZmlsdGVyZWQsIHVudXNlZCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhcmdzID0gYXJnc0RhdGE/LmFyZ3NTdHJpbmcgfHwgJyc7XG4gICAgICAgIGlmIChhcmdzID09PSAne30nKSB7XG4gICAgICAgICAgYXJncyA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBncmFwaFFMOiBncmFwaHFsLCBhcmdzLCBmaWVsZHMsIHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGZpZWxkc1xuICAgICAgICAgID8gZ3FsKGNvbmZpZy50eXBlICsgJ3tcXG4nICsgZ3JhcGhxbCArIGFyZ3MgKyBmaWVsZHMgKyAnXFxufScpXG4gICAgICAgICAgOiBncWwoY29uZmlnLnR5cGUgKyAne1xcbicgKyBncmFwaHFsICsgYXJncyArICdcXG59Jyk7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBkb2N1bWVudE5vZGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0OiBhbnkgPSB7fTtcbiAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyByZXF1ZXN0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZ1bmM7XG4gICAgICAgIGlmIChjb25maWcudHlwZSA9PT0gR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OKSB7XG4gICAgICAgICAgZnVuYyA9ICdtdXRhdGUnO1xuICAgICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy50eXBlID09PSBHcmFwaFFMUmVxdWVzdFR5cGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgZnVuYyA9ICdzdWJzY3JpYmUnO1xuICAgICAgICAgIHJlcXVlc3QucXVlcnkgPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZnVuYyA9IGNvbmZpZy50eXBlO1xuICAgICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgKHRoaXMuYXBvbGxvIGFzIGFueSlbZnVuY10ocmVxdWVzdCkuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdD8uZGF0YT8uW2dyYXBocWxdICE9PSB1bmRlZmluZWQgPyByZXN1bHQuZGF0YVtncmFwaHFsXSA6IHJlc3VsdDtcblxuICAgICAgICAgICAgLy8gRGlyZWN0IGRhdGFcbiAgICAgICAgICAgIGlmICghY29uZmlnLm1vZGVsKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWFwIGRhdGEgYXMgYXJyYXlcbiAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KFxuICAgICAgICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLm1vZGVsLm1hcChpdGVtKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNYXAgZGF0YVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb25maWcubW9kZWwubWFwKGRhdGEpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbmZpZy50eXBlICE9PSBHcmFwaFFMUmVxdWVzdFR5cGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgICAgIC8vIERvbmVcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZHMgLyBhcmdzIGZyb20gSUdyYXBoUUxUeXBlQ29sbGVjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShncmFwaFFMVHlwZTogR3JhcGhRTFR5cGUsIGN1cnJlbnQgPSAnJywgcmVzdWx0ID0gW10sIGNhY2hlTm9kZSA9IFtdKSB7XG4gICAgaWYgKCFncmFwaFFMVHlwZSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnQ/LmluY2x1ZGVzKCcuJykpIHtcbiAgICAgIGNhY2hlTm9kZS5wdXNoKGN1cnJlbnQuc3BsaXQoJy4nKVsxXSk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50KSB7XG4gICAgICBjYWNoZU5vZGUucHVzaChjdXJyZW50KTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JhcGhRTFR5cGUuZmllbGRzKSkge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IGtleSB8fCBjYWNoZU5vZGUuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ3JhcGhRTFR5cGVUb1N0cmluZ0FycmF5KGdyYXBoUUxUeXBlLmZpZWxkc1trZXldLCBjdXJyZW50ID8gY3VycmVudCArICcuJyArIGtleSA6IGtleSwgcmVzdWx0LCBjYWNoZU5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYXJndW1lbnRzIGZvciBHcmFwaFFMIHJlcXVlc3RcbiAgICovXG4gIHByb3RlY3RlZCBwcmVwYXJlQXJndW1lbnRzKFxuICAgIGFyZ3M6IGFueSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBhbGxvd2VkPzogR3JhcGhRTFR5cGU7XG4gICAgICBsZXZlbD86IG51bWJlcjtcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNjaGVtYUFyZ3M/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRBcmdzPzogc3RyaW5nW107XG4gICAgfSA9IHt9XG4gICk6IHsgYXJnc1N0cmluZzogc3RyaW5nOyBzY2hlbWFBcmdzOiBzdHJpbmdbXTsgdXNlZEFyZ3M6IHN0cmluZ1tdIH0ge1xuICAgIC8vIEluaXQgY29uZmlnIHZhcmlhYmxlc1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgbGV2ZWwsIHBhcmVudCwgc2NoZW1hQXJncywgdXNlZEFyZ3MgfSA9IHtcbiAgICAgIGFsbG93ZWQ6IG51bGwsXG4gICAgICBsZXZlbDogMSxcbiAgICAgIHBhcmVudDogJycsXG4gICAgICBzY2hlbWFBcmdzOiBbXSxcbiAgICAgIHVzZWRBcmdzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGFyZ3NcbiAgICBpZiAoYXJncyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcnLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgIH1cblxuICAgIC8vIEluaXQgYXJnc1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IGFsbG93ZWQgPyBPYmplY3Qua2V5cyhhbGxvd2VkLmZpZWxkcykgOiBudWxsO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFyZ3MpIHtcbiAgICAgICAgbGV0IGtleSA9IG51bGw7XG4gICAgICAgIGlmIChhbGxvd2VkKSB7XG4gICAgICAgICAgaWYgKCFhbGxvd2VkS2V5cyB8fCBhbGxvd2VkS2V5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAga2V5ID0gYWxsb3dlZEtleXMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgdmFsdWVcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgIGFsbG93ZWQ6IGtleSA/IGFsbG93ZWQuZmllbGRzW2tleV0gOiBudWxsLFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50ICsga2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgYXJyYXkgcmVzdWx0XG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAvLyBDb21wbGV0ZSByZXN1bHQsIGVuY2Fwc3VsYXRlZCB2aWEgcm91bmQgYnJhY2tldHNcbiAgICAgICAgaWYgKGxldmVsID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJygnICsgcmVzdWx0LmpvaW4oJywgJykgKyAnKScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWVwZXIgcmVzdWx0IHBhcnQsIGVuY2Fwc3VsYXRlZCB2aWEgc3F1YXJlIGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICdbJyArIHJlc3VsdC5qb2luKCcsICcpICsgJ10nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RcbiAgICBlbHNlIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIENoZWNrIG9iamVjdCBpcyBlbXB0eVxuICAgICAgaWYgKGFyZ3MgJiYgT2JqZWN0LmtleXMoYXJncykubGVuZ3RoID09PSAwICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihhcmdzKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAne30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgfVxuICAgICAgLy8gUHJvY2VzcyBhbGwgb2JqZWN0IGVudHJpZXNcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3MpKSB7XG4gICAgICAgIC8vIEluaXQgZGF0YSBmb3IgY3VycmVudCBlbnRyeVxuICAgICAgICBjb25zdCBjdXJyZW50S2V5ID0gcGFyZW50ICsga2V5O1xuICAgICAgICBzY2hlbWFBcmdzLnB1c2goY3VycmVudEtleSk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGFsbG93ZWQga2V5IGhhbmRsaW5nIGlzIGVuYWJsZWQgYW5kIHRoZSBjdXJyZW50IGtleSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBrZXlzLFxuICAgICAgICAvLyB0aGUgY3VycmVudCBrZXkgd2lsbCBiZSBza2lwcGVkXG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1trZXldKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTa2lwIHZhbHVlIGlmIG5vdCBleGlzdHNcbiAgICAgICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBjdXJyZW50IGtleSB0byBtZXRhZGF0YVxuICAgICAgICB1c2VkQXJncy5wdXNoKGN1cnJlbnRLZXkpO1xuXG4gICAgICAgIC8vIFByb2Nlc3MgR3JhcGhRTEVudW1cbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgR3JhcGhRTEVudW0pIHtcbiAgICAgICAgICByZXN1bHQucHVzaChrZXkgKyAnOicgKyB2YWx1ZS52YWx1ZSk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoa2V5ID09PSAncGFzc3dvcmQnKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgYFwiJHtzaGEyNTYodmFsdWUgYXMgc3RyaW5nKX1cImApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJvY2VzcyBhcnJheVxuICAgICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKFxuICAgICAgICAgICAga2V5ICtcbiAgICAgICAgICAgICAgJzogWycgK1xuICAgICAgICAgICAgICB2YWx1ZS5tYXAoXG4gICAgICAgICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVBcmd1bWVudHMoaXRlbSwge1xuICAgICAgICAgICAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkLmZpZWxkc1trZXldLFxuICAgICAgICAgICAgICAgICAgICBsZXZlbDogbGV2ZWwgKyAxLFxuICAgICAgICAgICAgICAgICAgICBwYXJlbnQ6IGN1cnJlbnRLZXkgKyAnLicsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYUFyZ3MsXG4gICAgICAgICAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgICAgICAgICAgfSkuYXJnc1N0cmluZ1xuICAgICAgICAgICAgICApICtcbiAgICAgICAgICAgICAgJ10nXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByZXBhcmUgYWRkaXRpb25hbCByZXN1bHQgc3RyaW5nXG4gICAgICAgIGxldCBhZGRpdGlvbmFsUmVzdWx0ID0ga2V5ICsgJzogJztcblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIGRhdGUgb2JqZWN0XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh2YWx1ZSkgPT09ICdbb2JqZWN0IERhdGVdJykge1xuICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiXCJcIiR7KHZhbHVlIGFzIERhdGUpLnRvU3RyaW5nKCl9XCJcIlwiYDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFZhbHVlIGlzIGEgc3RyaW5nXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAvLyBFbnVtIChkb2Vzbid0IG5lZWQgcXVvdGF0aW9uIG1hcmtzKVxuICAgICAgICAgIGlmIChhbGxvd2VkLmZpZWxkc1trZXldLmlzRW51bSkge1xuICAgICAgICAgICAgYWRkaXRpb25hbFJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBTdHJpbmdcbiAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gYFwiJHt2YWx1ZS5yZXBsYWNlKC9cIi9nLCAnXFxcXFwiJykucmVwbGFjZSgvXFxuL2csICdcXFxcbicpfVwiYDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIHNpbXBsZSBib29sZWFuIG9yIGEgbnVtYmVyXG4gICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT3RoZXJzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKHZhbHVlLCB7XG4gICAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkLmZpZWxkc1trZXldLFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogY3VycmVudEtleSArICcuJyxcbiAgICAgICAgICAgIHNjaGVtYUFyZ3MsXG4gICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICB9KS5hcmdzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHVzaCBkZWVwZXIgcGFydCBpbnRvIHJlc3VsdCBhcnJheVxuICAgICAgICByZXN1bHQucHVzaChhZGRpdGlvbmFsUmVzdWx0KTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgb2JqZWN0IHJlc3VsdFxuICAgICAgaWYgKHJlc3VsdC5sZW5ndGgpIHtcbiAgICAgICAgLy8gQ29tcGxldGUgcmVzdWx0LCBlbmNhcHN1bGF0ZWQgdmlhIHJvdW5kIGJyYWNrZXRzXG4gICAgICAgIGlmIChsZXZlbCA9PT0gMSkge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcoJyArIHJlc3VsdC5qb2luKCcsICcpICsgJyknLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVlcGVyIHJlc3VsdCBwYXJ0LCBlbmNhcHN1bGF0ZWQgdmlhIGN1cmx5IGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICd7JyArIHJlc3VsdC5qb2luKCcsICcpICsgJ30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJlcGFyZSBhbmQgcHJvY2VzcyBvdGhlciAvIHVua25vd24gdmFsdWVzIGFzIEpTT05cbiAgICBlbHNlIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6IEpTT04uc3RyaW5naWZ5KGFyZ3MpLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcmVwYXJlIGZpZWxkcyBmb3IgR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwcm90ZWN0ZWQgcHJlcGFyZUZpZWxkcyhcbiAgICBmaWVsZHM6IGFueSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBhbGxvd2VkPzogR3JhcGhRTFR5cGU7XG4gICAgICBzY2hlbWFGaWVsZHM/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRGaWVsZHM/OiBzdHJpbmdbXTtcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNwYWNlcz86IG51bWJlcjtcbiAgICAgIHRhYj86IG51bWJlcjtcbiAgICB9ID0ge31cbiAgKTogeyBzY2hlbWFGaWVsZHM6IHN0cmluZ1tdOyBmaWVsZHNTdHJpbmc6IHN0cmluZzsgdXNlZEZpZWxkczogc3RyaW5nW10gfSB7XG4gICAgLy8gQ29uZmlnXG4gICAgY29uc3QgeyBhbGxvd2VkLCBwYXJlbnQsIHNjaGVtYUZpZWxkcywgc3BhY2VzLCB0YWIsIHVzZWRGaWVsZHMgfSA9IHtcbiAgICAgIGFsbG93ZWQ6IG51bGwsXG4gICAgICBwYXJlbnQ6ICcnLFxuICAgICAgc2NoZW1hRmllbGRzOiBbXSxcbiAgICAgIHNwYWNlczogMixcbiAgICAgIHRhYjogMSxcbiAgICAgIHVzZWRGaWVsZHM6IFtdLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9O1xuXG4gICAgLy8gSW5pdCBmaWVsZHMgc3RyaW5nXG4gICAgbGV0IGZpZWxkc1N0cmluZyA9ICcnO1xuXG4gICAgLy8gQ2hlY2sgZmllbGRzXG4gICAgaWYgKCFmaWVsZHMpIHtcbiAgICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBzdHJpbmdcbiAgICBpZiAodHlwZW9mIGZpZWxkcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1tmaWVsZHNdKSB7XG4gICAgICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgICB9XG4gICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmc6ICdcXG4nICsgJyAnLnJlcGVhdChzcGFjZXMpLnJlcGVhdCh0YWIpICsgZmllbGRzLCBzY2hlbWFGaWVsZHMsIHVzZWRGaWVsZHMgfTtcbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIGFycmF5XG4gICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheShmaWVsZHMpKSB7XG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZmllbGRzKSB7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPVxuICAgICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZUZpZWxkcyhpdGVtLCB7XG4gICAgICAgICAgICAgIGFsbG93ZWQsIC8vIGl0ZW0gaXMgb2JqZWN0IG9yIGFycmF5XG4gICAgICAgICAgICAgIHBhcmVudCxcbiAgICAgICAgICAgICAgc3BhY2VzLFxuICAgICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgICAgdXNlZEZpZWxkcyxcbiAgICAgICAgICAgIH0pLmZpZWxkc1N0cmluZztcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhcmVudCArIGl0ZW07XG4gICAgICAgIHNjaGVtYUZpZWxkcy5wdXNoKGN1cnJlbnRQYXRoKTtcbiAgICAgICAgaWYgKGFsbG93ZWQgJiYgIWFsbG93ZWQuZmllbGRzW2l0ZW1dKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdXNlZEZpZWxkcy5wdXNoKGN1cnJlbnRQYXRoKTtcbiAgICAgICAgZmllbGRzU3RyaW5nID1cbiAgICAgICAgICBmaWVsZHNTdHJpbmcgK1xuICAgICAgICAgIHRoaXMucHJlcGFyZUZpZWxkcyhpdGVtLCB7XG4gICAgICAgICAgICBhbGxvd2VkOiBudWxsLCAvLyBpdGVtIGlzIHN0cmluZ1xuICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGF0aCArICcuJyxcbiAgICAgICAgICAgIHNwYWNlcyxcbiAgICAgICAgICAgIHNjaGVtYUZpZWxkcyxcbiAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgIHVzZWRGaWVsZHMsXG4gICAgICAgICAgfSkuZmllbGRzU3RyaW5nO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgb2JqZWN0XG4gICAgZWxzZSBpZiAodHlwZW9mIGZpZWxkcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsXSBvZiBPYmplY3QuZW50cmllcyhmaWVsZHMpKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXRoID0gcGFyZW50ICsga2V5O1xuICAgICAgICBzY2hlbWFGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1trZXldKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgdXNlZEZpZWxkcy5wdXNoKGN1cnJlbnRQYXRoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgIT09ICdvYmplY3QnIHx8ICFPYmplY3Qua2V5cyh2YWwpLmxlbmd0aCkge1xuICAgICAgICAgIGZpZWxkc1N0cmluZyA9IGZpZWxkc1N0cmluZyArICdcXG4nICsgJyAnLnJlcGVhdChzcGFjZXMpLnJlcGVhdCh0YWIpICsga2V5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpZWxkc1N0cmluZyA9XG4gICAgICAgICAgICBmaWVsZHNTdHJpbmcgK1xuICAgICAgICAgICAgJ1xcbicgK1xuICAgICAgICAgICAgJyAnLnJlcGVhdChzcGFjZXMpLnJlcGVhdCh0YWIpICtcbiAgICAgICAgICAgIGtleSArXG4gICAgICAgICAgICAnICcgK1xuICAgICAgICAgICAgJ3snICtcbiAgICAgICAgICAgIHRoaXMucHJlcGFyZUZpZWxkcyh2YWwsIHtcbiAgICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSwgLy8gdmFsIGlzIG9iamVjdCBvciBhcnJheVxuICAgICAgICAgICAgICBwYXJlbnQ6IGN1cnJlbnRQYXRoICsgJy4nLFxuICAgICAgICAgICAgICBzcGFjZXMsXG4gICAgICAgICAgICAgIHNjaGVtYUZpZWxkcyxcbiAgICAgICAgICAgICAgdGFiOiB0YWIgKyAxLFxuICAgICAgICAgICAgICB1c2VkRmllbGRzLFxuICAgICAgICAgICAgfSkuZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArXG4gICAgICAgICAgICAnfSc7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gcmVzdWx0XG4gICAgcmV0dXJuIHsgZmllbGRzU3RyaW5nLCBzY2hlbWFGaWVsZHMsIHVzZWRGaWVsZHMgfTtcbiAgfVxufVxuIl19
|
|
440
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctYmFzZS9zaGFyZWQvc2VydmljZXMvZ3JhcGhxbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7O0FBRW5DOztHQUVHO0FBSUgsTUFBTSxPQUFPLGNBQWM7SUFDekI7O09BRUc7SUFDSCxZQUFzQixNQUFjLEVBQVksa0JBQXNDO1FBQWhFLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBWSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO0lBQUcsQ0FBQztJQUUxRjs7T0FFRztJQUNJLE9BQU8sQ0FBQyxPQUFlLEVBQUUsVUFBMkIsRUFBRTtRQUMzRCxrQkFBa0I7UUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHO1lBQ2IsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsSUFBSTtZQUNaLEdBQUcsRUFBRSxLQUFLO1lBQ1YsS0FBSyxFQUFFLElBQUk7WUFDWCxJQUFJLEVBQUUsa0JBQWtCLENBQUMsS0FBSztZQUM5QixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsd0NBQXdDO1FBQ3hDLElBQUksT0FBTyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsRUFBRTtZQUMxQyxNQUFNLENBQUMsU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1NBQzNDO1FBRUQscUNBQXFDO1FBQ3JDLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRTtZQUN2QyxNQUFNLENBQUMsTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3JDO1FBRUQsTUFBTTtRQUNOLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3pCO1FBRUQsZUFBZTtRQUNmLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNuQyxXQUFXO1lBQ1gsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDdEUsaUJBQWlCO2dCQUNqQixJQUFJLE1BQU0sQ0FBQztnQkFDWCxJQUFJLGFBQWEsQ0FBQztnQkFFbEIsV0FBVztnQkFDWCxJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUVELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDakIsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUUvRCxXQUFXO29CQUNYLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztxQkFDaEM7b0JBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO3dCQUNuRCxPQUFPLEVBQUUsYUFBYTtxQkFDdkIsQ0FBQyxDQUFDO29CQUVILE1BQU0sR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO2lCQUNsQztnQkFFRCxJQUFJLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBQ3JDLE1BQU0sR0FBRyxHQUFHLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDL0I7Z0JBRUQsYUFBYTtnQkFDYixJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7aUJBQ3pCO2dCQUVELG1CQUFtQjtnQkFDbkIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBRWpFLG1CQUFtQjtnQkFDbkIsSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO2lCQUM5QjtnQkFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTtvQkFDdkQsT0FBTyxFQUFFLFdBQVc7aUJBQ3JCLENBQUMsQ0FBQztnQkFFSCxnQkFBZ0I7Z0JBQ2hCLElBQUksTUFBTSxDQUFDLEdBQUcsRUFBRTtvQkFDZCxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN6QixRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUMzQixNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUMzRixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsV0FBVyxDQUFDO3lCQUN0RCxJQUFJLEVBQUU7eUJBQ04sTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7b0JBQ3pELE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7aUJBQzdDO2dCQUVELElBQUksSUFBSSxHQUFHLFFBQVEsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO2dCQUN0QyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUU7b0JBQ2pCLElBQUksR0FBRyxFQUFFLENBQUM7aUJBQ1g7Z0JBRUQsTUFBTTtnQkFDTixJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3BFO2dCQUVELGtCQUFrQjtnQkFDbEIsTUFBTSxZQUFZLEdBQUcsTUFBTTtvQkFDekIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLEtBQUssR0FBRyxPQUFPLEdBQUcsSUFBSSxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7b0JBQzVELENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxLQUFLLEdBQUcsT0FBTyxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQztnQkFFdEQsTUFBTTtnQkFDTixJQUFJLE1BQU0sQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7aUJBQy9CO2dCQUVELE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxZQUFZLENBQUM7Z0JBRXBDLE1BQU07Z0JBQ04sSUFBSSxNQUFNLENBQUMsR0FBRyxFQUFFO29CQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO2lCQUMxQjtnQkFFRCxJQUFJLElBQUksQ0FBQztnQkFDVCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsUUFBUSxFQUFFO29CQUMvQyxJQUFJLEdBQUcsUUFBUSxDQUFDO29CQUNoQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQztpQkFDckM7cUJBQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFlBQVksRUFBRTtvQkFDMUQsSUFBSSxHQUFHLFdBQVcsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7aUJBQzlCO3FCQUFNO29CQUNMLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNuQixPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQztpQkFDckM7Z0JBRUEsSUFBSSxDQUFDLE1BQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQzNDLENBQUMsTUFBVyxFQUFFLEVBQUU7b0JBQ2QsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO29CQUVuRixjQUFjO29CQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFO3dCQUNqQixVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUN2QjtvQkFFRCxvQkFBb0I7eUJBQ2YsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO3dCQUM1QixVQUFVLENBQUMsSUFBSSxDQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTs0QkFDaEIsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDaEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztxQkFDSDtvQkFFRCxXQUFXO3lCQUNOO3dCQUNILFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztxQkFDekM7b0JBRUQsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLGtCQUFrQixDQUFDLFlBQVksRUFBRTt3QkFDbkQsT0FBTzt3QkFDUCxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7cUJBQ3ZCO2dCQUNILENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO29CQUNiLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3hCLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQyxDQUNGLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ08sd0JBQXdCLENBQUMsV0FBd0IsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsU0FBUyxHQUFHLEVBQUU7UUFDcEcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixPQUFPLE1BQU0sQ0FBQztTQUNmO1FBQ0QsSUFBSSxPQUFPLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzFCLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZDO2FBQU0sSUFBSSxPQUFPLEVBQUU7WUFDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QjtRQUNELEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDakQsSUFBSSxPQUFPLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlDLFNBQVM7YUFDVjtZQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDaEg7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7O09BRUc7SUFDTyxnQkFBZ0IsQ0FDeEIsSUFBUyxFQUNULFVBTUksRUFBRTtRQUVOLHdCQUF3QjtRQUN4QixNQUFNLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHO1lBQ3ZELE9BQU8sRUFBRSxJQUFJO1lBQ2IsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsRUFBRTtZQUNWLFVBQVUsRUFBRSxFQUFFO1lBQ2QsUUFBUSxFQUFFLEVBQUU7WUFDWixHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYsYUFBYTtRQUNiLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQztTQUNqRDtRQUVELFlBQVk7UUFDWixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFFbEIsZ0JBQWdCO1FBQ2hCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN2QixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDakUsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLEVBQUU7Z0JBQ3ZCLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQztnQkFDZixJQUFJLE9BQU8sRUFBRTtvQkFDWCxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUMxQyxNQUFNO3FCQUNQO29CQUNELEdBQUcsR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7aUJBQzNCO2dCQUVELGdCQUFnQjtnQkFDaEIsTUFBTSxDQUFDLElBQUksQ0FDVCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO29CQUMxQixPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO29CQUN6QyxLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUM7b0JBQ2hCLE1BQU0sRUFBRSxNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUc7b0JBQzFCLFVBQVU7b0JBQ1YsUUFBUTtpQkFDVCxDQUFDLENBQUMsVUFBVSxDQUNkLENBQUM7YUFDSDtZQUVELG9DQUFvQztZQUNwQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pCLG1EQUFtRDtnQkFDbkQsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFO29CQUNmLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQztpQkFDNUU7Z0JBRUQsdURBQXVEO3FCQUNsRDtvQkFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7aUJBQzVFO2FBQ0Y7U0FDRjtRQUVELGlCQUFpQjthQUNaLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ2pDLHdCQUF3QjtZQUN4QixJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFO2dCQUM5RixPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7YUFDbkQ7WUFDRCw2QkFBNkI7WUFDN0IsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9DLDhCQUE4QjtnQkFDOUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQztnQkFDaEMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFNUIsMEdBQTBHO2dCQUMxRyxrQ0FBa0M7Z0JBQ2xDLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbkMsU0FBUztpQkFDVjtnQkFFRCxrRUFBa0U7Z0JBQ2xFLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUU7b0JBQzFELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztvQkFDOUIsU0FBUztpQkFDVjtnQkFFRCwyQkFBMkI7Z0JBQzNCLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFO29CQUN6QyxTQUFTO2lCQUNWO2dCQUVELDhCQUE4QjtnQkFDOUIsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFFMUIsc0JBQXNCO2dCQUN0QixJQUFJLEtBQUssWUFBWSxXQUFXLEVBQUU7b0JBQ2hDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLFNBQVM7aUJBQ1Y7Z0JBRUQsSUFBSSxHQUFHLEtBQUssVUFBVSxFQUFFO29CQUN0QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUN4RCxTQUFTO2lCQUNWO2dCQUVELGdCQUFnQjtxQkFDWCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQ1QsR0FBRzt3QkFDRCxLQUFLO3dCQUNMLEtBQUssQ0FBQyxHQUFHLENBQ1AsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUU7NEJBQzFCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzs0QkFDNUIsS0FBSyxFQUFFLEtBQUssR0FBRyxDQUFDOzRCQUNoQixNQUFNLEVBQUUsVUFBVSxHQUFHLEdBQUc7NEJBQ3hCLFVBQVU7NEJBQ1YsUUFBUTt5QkFDVCxDQUFDLENBQUMsVUFBVSxDQUNoQjt3QkFDRCxHQUFHLENBQ04sQ0FBQztvQkFDRixTQUFTO2lCQUNWO2dCQUVELG1DQUFtQztnQkFDbkMsSUFBSSxnQkFBZ0IsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO2dCQUVsQyx5QkFBeUI7Z0JBQ3pCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxlQUFlLEVBQUU7b0JBQzFGLGdCQUFnQixJQUFJLE1BQU8sS0FBYyxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUM7aUJBQzNEO2dCQUVELG9CQUFvQjtxQkFDZixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtvQkFDbEMsc0NBQXNDO29CQUN0QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFO3dCQUM5QixnQkFBZ0IsSUFBSSxLQUFLLENBQUM7cUJBQzNCO29CQUVELFNBQVM7eUJBQ0o7d0JBQ0gsZ0JBQWdCLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQzdFO2lCQUNGO2dCQUVELHdDQUF3QztxQkFDbkMsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO29CQUNoRSxnQkFBZ0IsSUFBSSxLQUFLLENBQUM7aUJBQzNCO2dCQUVELFNBQVM7cUJBQ0o7b0JBQ0gsZ0JBQWdCLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRTt3QkFDL0MsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO3dCQUM1QixLQUFLLEVBQUUsS0FBSyxHQUFHLENBQUM7d0JBQ2hCLE1BQU0sRUFBRSxVQUFVLEdBQUcsR0FBRzt3QkFDeEIsVUFBVTt3QkFDVixRQUFRO3FCQUNULENBQUMsQ0FBQyxVQUFVLENBQUM7aUJBQ2Y7Z0JBRUQscUNBQXFDO2dCQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7YUFDL0I7WUFFRCxxQ0FBcUM7WUFDckMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO2dCQUNqQixtREFBbUQ7Z0JBQ25ELElBQUksS0FBSyxLQUFLLENBQUMsRUFBRTtvQkFDZixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7aUJBQzVFO2dCQUVELHNEQUFzRDtxQkFDakQ7b0JBQ0gsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDO2lCQUM1RTthQUNGO1NBQ0Y7UUFFRCxxREFBcUQ7YUFDaEQ7WUFDSCxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ08sYUFBYSxDQUNyQixNQUFXLEVBQ1gsVUFPSSxFQUFFO1FBRU4sU0FBUztRQUNULE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHO1lBQ2pFLE9BQU8sRUFBRSxJQUFJO1lBQ2IsTUFBTSxFQUFFLEVBQUU7WUFDVixZQUFZLEVBQUUsRUFBRTtZQUNoQixNQUFNLEVBQUUsQ0FBQztZQUNULEdBQUcsRUFBRSxDQUFDO1lBQ04sVUFBVSxFQUFFLEVBQUU7WUFDZCxHQUFHLE9BQU87U0FDWCxDQUFDO1FBRUYscUJBQXFCO1FBQ3JCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUV0QixlQUFlO1FBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNYLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQ25EO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQzlCLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDbkQ7WUFDRCxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDO1NBQ25HO1FBRUQsZ0JBQWdCO2FBQ1gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzlCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxFQUFFO2dCQUN6QixJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRTtvQkFDNUIsWUFBWTt3QkFDVixZQUFZOzRCQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO2dDQUN2QixPQUFPO2dDQUNQLE1BQU07Z0NBQ04sTUFBTTtnQ0FDTixZQUFZO2dDQUNaLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQztnQ0FDWixVQUFVOzZCQUNYLENBQUMsQ0FBQyxZQUFZLENBQUM7b0JBQ2xCLFNBQVM7aUJBQ1Y7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbEMsWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDL0IsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNwQyxTQUFTO2lCQUNWO2dCQUNELFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzdCLFlBQVk7b0JBQ1YsWUFBWTt3QkFDWixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTs0QkFDdkIsT0FBTyxFQUFFLElBQUk7NEJBQ2IsTUFBTSxFQUFFLFdBQVcsR0FBRyxHQUFHOzRCQUN6QixNQUFNOzRCQUNOLFlBQVk7NEJBQ1osR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDOzRCQUNaLFVBQVU7eUJBQ1gsQ0FBQyxDQUFDLFlBQVksQ0FBQzthQUNuQjtTQUNGO1FBRUQsaUJBQWlCO2FBQ1osSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDbkMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQy9DLE1BQU0sV0FBVyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUM7Z0JBQ2pDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQy9CLElBQUksT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbkMsU0FBUztpQkFDVjtnQkFDRCxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFO29CQUN2RCxZQUFZLEdBQUcsWUFBWSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUM7aUJBQzNFO3FCQUFNO29CQUNMLFlBQVk7d0JBQ1YsWUFBWTs0QkFDWixJQUFJOzRCQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQzs0QkFDOUIsR0FBRzs0QkFDSCxHQUFHOzRCQUNILEdBQUc7NEJBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUU7Z0NBQ3RCLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztnQ0FDNUIsTUFBTSxFQUFFLFdBQVcsR0FBRyxHQUFHO2dDQUN6QixNQUFNO2dDQUNOLFlBQVk7Z0NBQ1osR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDO2dDQUNaLFVBQVU7NkJBQ1gsQ0FBQyxDQUFDLFlBQVk7NEJBQ2YsSUFBSTs0QkFDSixHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7NEJBQzlCLEdBQUcsQ0FBQztpQkFDUDthQUNGO1NBQ0Y7UUFFRCxnQkFBZ0I7UUFDaEIsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDcEQsQ0FBQzs7MkdBdmZVLGNBQWM7K0dBQWQsY0FBYyxjQUZiLE1BQU07MkZBRVAsY0FBYztrQkFIMUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcG9sbG8sIGdxbCB9IGZyb20gJ2Fwb2xsby1hbmd1bGFyJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElHcmFwaFFMT3B0aW9ucyB9IGZyb20gJy4uL2ludGVyZmFjZXMvZ3JhcGhxbC1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBHcmFwaFFMUmVxdWVzdFR5cGUgfSBmcm9tICcuLi9lbnVtcy9ncmFwaHFsLXJlcXVlc3QtdHlwZS5lbnVtJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBoUUxNZXRhU2VydmljZSB9IGZyb20gJy4vZ3JhcGhxbC1tZXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JhcGhRTEVudW0gfSBmcm9tICcuLi9jbGFzc2VzL2dyYXBocWwtZW51bS5jbGFzcyc7XG5pbXBvcnQgeyBHcmFwaFFMVHlwZSB9IGZyb20gJy4uL2NsYXNzZXMvZ3JhcGhxbC10eXBlLmNsYXNzJztcbmltcG9ydCB7IHNoYTI1NiB9IGZyb20gJ2pzLXNoYTI1Nic7XG5cbi8qKlxuICogR3JhcGhRTCBzZXJ2aWNlXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHcmFwaFFMU2VydmljZSB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIHNlcnZpY2VzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgYXBvbGxvOiBBcG9sbG8sIHByb3RlY3RlZCBncmFwaFFMTWV0YVNlcnZpY2U6IEdyYXBoUUxNZXRhU2VydmljZSkge31cblxuICAvKipcbiAgICogR3JhcGhRTCByZXF1ZXN0XG4gICAqL1xuICBwdWJsaWMgZ3JhcGhRbChncmFwaHFsOiBzdHJpbmcsIG9wdGlvbnM6IElHcmFwaFFMT3B0aW9ucyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyBDaGVjayBhcmd1bWVudHNcbiAgICBpZiAoIWdyYXBocWwpIHtcbiAgICAgIHRocm93RXJyb3IoJ01pc3NpbmcgZ3JhcGhxbCBhcmd1bWVudCcpO1xuICAgIH1cblxuICAgIC8vIEdldCBjb25maWdcbiAgICBjb25zdCBjb25maWcgPSB7XG4gICAgICBhcmd1bWVudHM6IG51bGwsXG4gICAgICBmaWVsZHM6IG51bGwsXG4gICAgICBsb2c6IGZhbHNlLFxuICAgICAgbW9kZWw6IG51bGwsXG4gICAgICB0eXBlOiBHcmFwaFFMUmVxdWVzdFR5cGUuUVVFUlksXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH07XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgYXJndW1lbnRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuYXJndW1lbnRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuYXJndW1lbnRzID0gbmV3IGNvbmZpZy5hcmd1bWVudHMoKTtcbiAgICB9XG5cbiAgICAvLyBDb252ZXJ0IGNsYXNzIHRvIE9iamVjdCBmb3IgZmllbGRzXG4gICAgaWYgKHR5cGVvZiBjb25maWcuZmllbGRzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25maWcuZmllbGRzID0gbmV3IGNvbmZpZy5maWVsZHMoKTtcbiAgICB9XG5cbiAgICAvLyBMb2dcbiAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgY29uc29sZS5sb2coeyBjb25maWcgfSk7XG4gICAgfVxuXG4gICAgLy8gU2VuZCByZXF1ZXN0XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICAvLyBHZXQgbWV0YVxuICAgICAgdGhpcy5ncmFwaFFMTWV0YVNlcnZpY2UuZ2V0TWV0YSh7IGxvZzogY29uZmlnLmxvZyB9KS5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgLy8gUHJlcGFyZSBmaWVsZHNcbiAgICAgICAgbGV0IGZpZWxkcztcbiAgICAgICAgbGV0IGFsbG93ZWRGaWVsZHM7XG5cbiAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IG1ldGEgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLmZpZWxkcykge1xuICAgICAgICAgIGFsbG93ZWRGaWVsZHMgPSBtZXRhLmdldEZpZWxkcyhncmFwaHFsLCB7IHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuXG4gICAgICAgICAgLy8gTG9nIG1ldGFcbiAgICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkRmllbGRzIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpZWxkc0RhdGEgPSB0aGlzLnByZXBhcmVGaWVsZHMoY29uZmlnLmZpZWxkcywge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGZpZWxkcyA9IGZpZWxkc0RhdGEuZmllbGRzU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpZWxkcyAmJiAhZmllbGRzLnN0YXJ0c1dpdGgoJ3snKSkge1xuICAgICAgICAgIGZpZWxkcyA9ICd7JyArIGZpZWxkcyArICdcXG59JztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvZyBmaWVsZHNcbiAgICAgICAgaWYgKGNvbmZpZy5sb2cpIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyh7IGZpZWxkcyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCBhbGxvd2VkIGFyZ3NcbiAgICAgICAgY29uc3QgYWxsb3dlZEFyZ3MgPSBtZXRhLmdldEFyZ3MoZ3JhcGhxbCwgeyB0eXBlOiBjb25maWcudHlwZSB9KTtcblxuICAgICAgICAvLyBMb2cgYWxsb3dlZCBhcmdzXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBhbGxvd2VkQXJncyB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFyZ3NEYXRhID0gdGhpcy5wcmVwYXJlQXJndW1lbnRzKGNvbmZpZy5hcmd1bWVudHMsIHtcbiAgICAgICAgICBhbGxvd2VkOiBhbGxvd2VkQXJncyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gTG9nIGFyZ3MgZGF0YVxuICAgICAgICBpZiAoY29uZmlnLmxvZykge1xuICAgICAgICAgIGFyZ3NEYXRhLnVzZWRBcmdzLnNvcnQoKTtcbiAgICAgICAgICBhcmdzRGF0YS5zY2hlbWFBcmdzLnNvcnQoKTtcbiAgICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IGFyZ3NEYXRhLnNjaGVtYUFyZ3MuZmlsdGVyKChmaWVsZCkgPT4gIWFyZ3NEYXRhLnVzZWRBcmdzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgY29uc3QgdW51c2VkID0gdGhpcy5ncmFwaFFMVHlwZVRvU3RyaW5nQXJyYXkoYWxsb3dlZEFyZ3MpXG4gICAgICAgICAgICAuc29ydCgpXG4gICAgICAgICAgICAuZmlsdGVyKChmaWVsZCkgPT4gIWFyZ3NEYXRhLnVzZWRBcmdzLmluY2x1ZGVzKGZpZWxkKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBhcmdzRGF0YSwgZmlsdGVyZWQsIHVudXNlZCB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhcmdzID0gYXJnc0RhdGE/LmFyZ3NTdHJpbmcgfHwgJyc7XG4gICAgICAgIGlmIChhcmdzID09PSAne30nKSB7XG4gICAgICAgICAgYXJncyA9ICcnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBncmFwaFFMOiBncmFwaHFsLCBhcmdzLCBmaWVsZHMsIHR5cGU6IGNvbmZpZy50eXBlIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUHJlcGFyZSByZXF1ZXN0XG4gICAgICAgIGNvbnN0IGRvY3VtZW50Tm9kZSA9IGZpZWxkc1xuICAgICAgICAgID8gZ3FsKGNvbmZpZy50eXBlICsgJ3tcXG4nICsgZ3JhcGhxbCArIGFyZ3MgKyBmaWVsZHMgKyAnXFxufScpXG4gICAgICAgICAgOiBncWwoY29uZmlnLnR5cGUgKyAne1xcbicgKyBncmFwaHFsICsgYXJncyArICdcXG59Jyk7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyBkb2N1bWVudE5vZGUgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXF1ZXN0OiBhbnkgPSB7fTtcbiAgICAgICAgcmVxdWVzdFtjb25maWcudHlwZV0gPSBkb2N1bWVudE5vZGU7XG5cbiAgICAgICAgLy8gTG9nXG4gICAgICAgIGlmIChjb25maWcubG9nKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coeyByZXF1ZXN0IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGZ1bmM7XG4gICAgICAgIGlmIChjb25maWcudHlwZSA9PT0gR3JhcGhRTFJlcXVlc3RUeXBlLk1VVEFUSU9OKSB7XG4gICAgICAgICAgZnVuYyA9ICdtdXRhdGUnO1xuICAgICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy50eXBlID09PSBHcmFwaFFMUmVxdWVzdFR5cGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgZnVuYyA9ICdzdWJzY3JpYmUnO1xuICAgICAgICAgIHJlcXVlc3QucXVlcnkgPSBkb2N1bWVudE5vZGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZnVuYyA9IGNvbmZpZy50eXBlO1xuICAgICAgICAgIHJlcXVlc3RbY29uZmlnLnR5cGVdID0gZG9jdW1lbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgKHRoaXMuYXBvbGxvIGFzIGFueSlbZnVuY10ocmVxdWVzdCkuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3VsdD8uZGF0YT8uW2dyYXBocWxdICE9PSB1bmRlZmluZWQgPyByZXN1bHQuZGF0YVtncmFwaHFsXSA6IHJlc3VsdDtcblxuICAgICAgICAgICAgLy8gRGlyZWN0IGRhdGFcbiAgICAgICAgICAgIGlmICghY29uZmlnLm1vZGVsKSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChkYXRhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTWFwIGRhdGEgYXMgYXJyYXlcbiAgICAgICAgICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5uZXh0KFxuICAgICAgICAgICAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLm1vZGVsLm1hcChpdGVtKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBNYXAgZGF0YVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgIHN1YnNjcmliZXIubmV4dChjb25maWcubW9kZWwubWFwKGRhdGEpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGNvbmZpZy50eXBlICE9PSBHcmFwaFFMUmVxdWVzdFR5cGUuU1VCU0NSSVBUSU9OKSB7XG4gICAgICAgICAgICAgIC8vIERvbmVcbiAgICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgc3Vic2NyaWJlci5jb21wbGV0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBmaWVsZHMgLyBhcmdzIGZyb20gSUdyYXBoUUxUeXBlQ29sbGVjdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIGdyYXBoUUxUeXBlVG9TdHJpbmdBcnJheShncmFwaFFMVHlwZTogR3JhcGhRTFR5cGUsIGN1cnJlbnQgPSAnJywgcmVzdWx0ID0gW10sIGNhY2hlTm9kZSA9IFtdKSB7XG4gICAgaWYgKCFncmFwaFFMVHlwZSkge1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKGN1cnJlbnQ/LmluY2x1ZGVzKCcuJykpIHtcbiAgICAgIGNhY2hlTm9kZS5wdXNoKGN1cnJlbnQuc3BsaXQoJy4nKVsxXSk7XG4gICAgfSBlbHNlIGlmIChjdXJyZW50KSB7XG4gICAgICBjYWNoZU5vZGUucHVzaChjdXJyZW50KTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZ3JhcGhRTFR5cGUuZmllbGRzKSkge1xuICAgICAgaWYgKGN1cnJlbnQgPT09IGtleSB8fCBjYWNoZU5vZGUuaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZ3JhcGhRTFR5cGVUb1N0cmluZ0FycmF5KGdyYXBoUUxUeXBlLmZpZWxkc1trZXldLCBjdXJyZW50ID8gY3VycmVudCArICcuJyArIGtleSA6IGtleSwgcmVzdWx0LCBjYWNoZU5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmUgYXJndW1lbnRzIGZvciBHcmFwaFFMIHJlcXVlc3RcbiAgICovXG4gIHByb3RlY3RlZCBwcmVwYXJlQXJndW1lbnRzKFxuICAgIGFyZ3M6IGFueSxcbiAgICBvcHRpb25zOiB7XG4gICAgICBhbGxvd2VkPzogR3JhcGhRTFR5cGU7XG4gICAgICBsZXZlbD86IG51bWJlcjtcbiAgICAgIHBhcmVudD86IHN0cmluZztcbiAgICAgIHNjaGVtYUFyZ3M/OiBzdHJpbmdbXTtcbiAgICAgIHVzZWRBcmdzPzogc3RyaW5nW107XG4gICAgfSA9IHt9XG4gICk6IHsgYXJnc1N0cmluZzogc3RyaW5nOyBzY2hlbWFBcmdzOiBzdHJpbmdbXTsgdXNlZEFyZ3M6IHN0cmluZ1tdIH0ge1xuICAgIC8vIEluaXQgY29uZmlnIHZhcmlhYmxlc1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgbGV2ZWwsIHBhcmVudCwgc2NoZW1hQXJncywgdXNlZEFyZ3MgfSA9IHtcbiAgICAgIGFsbG93ZWQ6IG51bGwsXG4gICAgICBsZXZlbDogMSxcbiAgICAgIHBhcmVudDogJycsXG4gICAgICBzY2hlbWFBcmdzOiBbXSxcbiAgICAgIHVzZWRBcmdzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIENoZWNrIGFyZ3NcbiAgICBpZiAoYXJncyA9PT0gdW5kZWZpbmVkIHx8IGFyZ3MgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICcnLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgIH1cblxuICAgIC8vIEluaXQgYXJnc1xuICAgIGNvbnN0IHJlc3VsdCA9IFtdO1xuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGlmIChBcnJheS5pc0FycmF5KGFyZ3MpKSB7XG4gICAgICBjb25zdCBhbGxvd2VkS2V5cyA9IGFsbG93ZWQgPyBPYmplY3Qua2V5cyhhbGxvd2VkLmZpZWxkcykgOiBudWxsO1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGFyZ3MpIHtcbiAgICAgICAgbGV0IGtleSA9IG51bGw7XG4gICAgICAgIGlmIChhbGxvd2VkKSB7XG4gICAgICAgICAgaWYgKCFhbGxvd2VkS2V5cyB8fCBhbGxvd2VkS2V5cy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAga2V5ID0gYWxsb3dlZEtleXMuc2hpZnQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgdmFsdWVcbiAgICAgICAgcmVzdWx0LnB1c2goXG4gICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgIGFsbG93ZWQ6IGtleSA/IGFsbG93ZWQuZmllbGRzW2tleV0gOiBudWxsLFxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgIHBhcmVudDogcGFyZW50ICsga2V5ICsgJy4nLFxuICAgICAgICAgICAgc2NoZW1hQXJncyxcbiAgICAgICAgICAgIHVzZWRBcmdzLFxuICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gRW5jYXBzdWxhdGlvbiBvZiB0aGUgYXJyYXkgcmVzdWx0XG4gICAgICBpZiAocmVzdWx0Lmxlbmd0aCkge1xuICAgICAgICAvLyBDb21wbGV0ZSByZXN1bHQsIGVuY2Fwc3VsYXRlZCB2aWEgcm91bmQgYnJhY2tldHNcbiAgICAgICAgaWYgKGxldmVsID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIHsgYXJnc1N0cmluZzogJygnICsgcmVzdWx0LmpvaW4oJywgJykgKyAnKScsIHNjaGVtYUFyZ3MsIHVzZWRBcmdzIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBEZWVwZXIgcmVzdWx0IHBhcnQsIGVuY2Fwc3VsYXRlZCB2aWEgc3F1YXJlIGJyYWNrZXRzXG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgIHJldHVybiB7IGFyZ3NTdHJpbmc6ICdbJyArIHJlc3VsdC5qb2luKCcsICcpICsgJ10nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBvYmplY3RcbiAgICBlbHNlIGlmICh0eXBlb2YgYXJncyA9PT0gJ29iamVjdCcpIHtcbiAgICAgIC8vIENoZWNrIG9iamVjdCBpcyBlbXB0eVxuICAgICAgaWYgKGFyZ3MgJiYgT2JqZWN0LmtleXMoYXJncykubGVuZ3RoID09PSAwICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihhcmdzKSA9PT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAne30nLCBzY2hlbWFBcmdzLCB1c2VkQXJncyB9O1xuICAgICAgfVxuICAgICAgLy8gUHJvY2VzcyBhbGwgb2JqZWN0IGVudHJpZXNcbiAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGFyZ3MpKSB7XG4gICAgICAgIC8vIEluaXQgZGF0YSBmb3IgY3VycmVudCBlbnRyeVxuICAgICAgICBjb25zdCBjdXJyZW50S2V5ID0gcGFyZW50ICsga2V5O1xuICAgICAgICBzY2hlbWFBcmdzLnB1c2goY3VycmVudEtleSk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGFsbG93ZWQga2V5IGhhbmRsaW5nIGlzIGVuYWJsZWQgYW5kIHRoZSBjdXJyZW50IGtleSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBrZXlzLFxuICAgICAgICAvLyB0aGUgY3VycmVudCBrZXkgd2lsbCBiZSBza2lwcGVkXG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1trZXldKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIYW5kbGluZyB0byBzZXQgYSBmbG9hdCB0byBudWxsIGJlY2F1c2UgZW1wdHkgc3RyaW5nIGlzIGludmFsaWRcbiAgICAgICAgaWYgKGFsbG93ZWQuZmllbGRzW2tleV0udHlwZSA9PT0gJ0Zsb2F0JyAmJiB2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSArICc6JyArIG51bGwpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2tpcCB2YWx1ZSBpZiBub3QgZXhpc3RzXG4gICAgICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY3VycmVudCBrZXkgdG8gbWV0YWRhdGFcbiAgICAgICAgdXNlZEFyZ3MucHVzaChjdXJyZW50S2V5KTtcblxuICAgICAgICAvLyBQcm9jZXNzIEdyYXBoUUxFbnVtXG4gICAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEdyYXBoUUxFbnVtKSB7XG4gICAgICAgICAgcmVzdWx0LnB1c2goa2V5ICsgJzonICsgdmFsdWUudmFsdWUpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3Bhc3N3b3JkJykge1xuICAgICAgICAgIHJlc3VsdC5wdXNoKGtleSArICc6JyArIGBcIiR7c2hhMjU2KHZhbHVlIGFzIHN0cmluZyl9XCJgKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFByb2Nlc3MgYXJyYXlcbiAgICAgICAgZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICByZXN1bHQucHVzaChcbiAgICAgICAgICAgIGtleSArXG4gICAgICAgICAgICAgICc6IFsnICtcbiAgICAgICAgICAgICAgdmFsdWUubWFwKFxuICAgICAgICAgICAgICAgIChpdGVtKSA9PlxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQXJndW1lbnRzKGl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw6IGxldmVsICsgMSxcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50S2V5ICsgJy4nLFxuICAgICAgICAgICAgICAgICAgICBzY2hlbWFBcmdzLFxuICAgICAgICAgICAgICAgICAgICB1c2VkQXJncyxcbiAgICAgICAgICAgICAgICAgIH0pLmFyZ3NTdHJpbmdcbiAgICAgICAgICAgICAgKSArXG4gICAgICAgICAgICAgICddJ1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQcmVwYXJlIGFkZGl0aW9uYWwgcmVzdWx0IHN0cmluZ1xuICAgICAgICBsZXQgYWRkaXRpb25hbFJlc3VsdCA9IGtleSArICc6ICc7XG5cbiAgICAgICAgLy8gVmFsdWUgaXMgYSBkYXRlIG9iamVjdFxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodmFsdWUpID09PSAnW29iamVjdCBEYXRlXScpIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IGBcIlwiXCIkeyh2YWx1ZSBhcyBEYXRlKS50b1N0cmluZygpfVwiXCJcImA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBWYWx1ZSBpcyBhIHN0cmluZ1xuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgLy8gRW51bSAoZG9lc24ndCBuZWVkIHF1b3RhdGlvbiBtYXJrcylcbiAgICAgICAgICBpZiAoYWxsb3dlZC5maWVsZHNba2V5XS5pc0VudW0pIHtcbiAgICAgICAgICAgIGFkZGl0aW9uYWxSZXN1bHQgKz0gdmFsdWU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gU3RyaW5nXG4gICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IGBcIiR7dmFsdWUucmVwbGFjZSgvXCIvZywgJ1xcXFxcIicpLnJlcGxhY2UoL1xcbi9nLCAnXFxcXG4nKX1cImA7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gVmFsdWUgaXMgYSBzaW1wbGUgYm9vbGVhbiBvciBhIG51bWJlclxuICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJyB8fCB0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgYWRkaXRpb25hbFJlc3VsdCArPSB2YWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE90aGVyc1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICBhZGRpdGlvbmFsUmVzdWx0ICs9IHRoaXMucHJlcGFyZUFyZ3VtZW50cyh2YWx1ZSwge1xuICAgICAgICAgICAgYWxsb3dlZDogYWxsb3dlZC5maWVsZHNba2V5XSxcbiAgICAgICAgICAgIGxldmVsOiBsZXZlbCArIDEsXG4gICAgICAgICAgICBwYXJlbnQ6IGN1cnJlbnRLZXkgKyAnLicsXG4gICAgICAgICAgICBzY2hlbWFBcmdzLFxuICAgICAgICAgICAgdXNlZEFyZ3MsXG4gICAgICAgICAgfSkuYXJnc1N0cmluZztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFB1c2ggZGVlcGVyIHBhcnQgaW50byByZXN1bHQgYXJyYXlcbiAgICAgICAgcmVzdWx0LnB1c2goYWRkaXRpb25hbFJlc3VsdCk7XG4gICAgICB9XG5cbiAgICAgIC8vIEVuY2Fwc3VsYXRpb24gb2YgdGhlIG9iamVjdCByZXN1bHRcbiAgICAgIGlmIChyZXN1bHQubGVuZ3RoKSB7XG4gICAgICAgIC8vIENvbXBsZXRlIHJlc3VsdCwgZW5jYXBzdWxhdGVkIHZpYSByb3VuZCBicmFja2V0c1xuICAgICAgICBpZiAobGV2ZWwgPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAnKCcgKyByZXN1bHQuam9pbignLCAnKSArICcpJywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIERlZXBlciByZXN1bHQgcGFydCwgZW5jYXBzdWxhdGVkIHZpYSBjdXJseSBicmFja2V0c1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiAneycgKyByZXN1bHQuam9pbignLCAnKSArICd9Jywgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFByZXBhcmUgYW5kIHByb2Nlc3Mgb3RoZXIgLyB1bmtub3duIHZhbHVlcyBhcyBKU09OXG4gICAgZWxzZSB7XG4gICAgICByZXR1cm4geyBhcmdzU3RyaW5nOiBKU09OLnN0cmluZ2lmeShhcmdzKSwgc2NoZW1hQXJncywgdXNlZEFyZ3MgfTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJlcGFyZSBmaWVsZHMgZm9yIEdyYXBoUUwgcmVxdWVzdFxuICAgKi9cbiAgcHJvdGVjdGVkIHByZXBhcmVGaWVsZHMoXG4gICAgZmllbGRzOiBhbnksXG4gICAgb3B0aW9uczoge1xuICAgICAgYWxsb3dlZD86IEdyYXBoUUxUeXBlO1xuICAgICAgc2NoZW1hRmllbGRzPzogc3RyaW5nW107XG4gICAgICB1c2VkRmllbGRzPzogc3RyaW5nW107XG4gICAgICBwYXJlbnQ/OiBzdHJpbmc7XG4gICAgICBzcGFjZXM/OiBudW1iZXI7XG4gICAgICB0YWI/OiBudW1iZXI7XG4gICAgfSA9IHt9XG4gICk6IHsgc2NoZW1hRmllbGRzOiBzdHJpbmdbXTsgZmllbGRzU3RyaW5nOiBzdHJpbmc7IHVzZWRGaWVsZHM6IHN0cmluZ1tdIH0ge1xuICAgIC8vIENvbmZpZ1xuICAgIGNvbnN0IHsgYWxsb3dlZCwgcGFyZW50LCBzY2hlbWFGaWVsZHMsIHNwYWNlcywgdGFiLCB1c2VkRmllbGRzIH0gPSB7XG4gICAgICBhbGxvd2VkOiBudWxsLFxuICAgICAgcGFyZW50OiAnJyxcbiAgICAgIHNjaGVtYUZpZWxkczogW10sXG4gICAgICBzcGFjZXM6IDIsXG4gICAgICB0YWI6IDEsXG4gICAgICB1c2VkRmllbGRzOiBbXSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIC8vIEluaXQgZmllbGRzIHN0cmluZ1xuICAgIGxldCBmaWVsZHNTdHJpbmcgPSAnJztcblxuICAgIC8vIENoZWNrIGZpZWxkc1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgIH1cblxuICAgIC8vIFByb2Nlc3Mgc3RyaW5nXG4gICAgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNbZmllbGRzXSkge1xuICAgICAgICByZXR1cm4geyBmaWVsZHNTdHJpbmcsIHNjaGVtYUZpZWxkcywgdXNlZEZpZWxkcyB9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHsgZmllbGRzU3RyaW5nOiAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGZpZWxkcywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gICAgfVxuXG4gICAgLy8gUHJvY2VzcyBhcnJheVxuICAgIGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoZmllbGRzKSkge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGZpZWxkcykge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgZmllbGRzU3RyaW5nID1cbiAgICAgICAgICAgIGZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgICBhbGxvd2VkLCAvLyBpdGVtIGlzIG9iamVjdCBvciBhcnJheVxuICAgICAgICAgICAgICBwYXJlbnQsXG4gICAgICAgICAgICAgIHNwYWNlcyxcbiAgICAgICAgICAgICAgc2NoZW1hRmllbGRzLFxuICAgICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICAgIHVzZWRGaWVsZHMsXG4gICAgICAgICAgICB9KS5maWVsZHNTdHJpbmc7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudFBhdGggPSBwYXJlbnQgKyBpdGVtO1xuICAgICAgICBzY2hlbWFGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmIChhbGxvd2VkICYmICFhbGxvd2VkLmZpZWxkc1tpdGVtXSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGZpZWxkc1N0cmluZyA9XG4gICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHMoaXRlbSwge1xuICAgICAgICAgICAgYWxsb3dlZDogbnVsbCwgLy8gaXRlbSBpcyBzdHJpbmdcbiAgICAgICAgICAgIHBhcmVudDogY3VycmVudFBhdGggKyAnLicsXG4gICAgICAgICAgICBzcGFjZXMsXG4gICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICB0YWI6IHRhYiArIDEsXG4gICAgICAgICAgICB1c2VkRmllbGRzLFxuICAgICAgICAgIH0pLmZpZWxkc1N0cmluZztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQcm9jZXNzIG9iamVjdFxuICAgIGVsc2UgaWYgKHR5cGVvZiBmaWVsZHMgPT09ICdvYmplY3QnKSB7XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbF0gb2YgT2JqZWN0LmVudHJpZXMoZmllbGRzKSkge1xuICAgICAgICBjb25zdCBjdXJyZW50UGF0aCA9IHBhcmVudCArIGtleTtcbiAgICAgICAgc2NoZW1hRmllbGRzLnB1c2goY3VycmVudFBhdGgpO1xuICAgICAgICBpZiAoYWxsb3dlZCAmJiAhYWxsb3dlZC5maWVsZHNba2V5XSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIHVzZWRGaWVsZHMucHVzaChjdXJyZW50UGF0aCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXModmFsKS5sZW5ndGgpIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPSBmaWVsZHNTdHJpbmcgKyAnXFxuJyArICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArIGtleTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmaWVsZHNTdHJpbmcgPVxuICAgICAgICAgICAgZmllbGRzU3RyaW5nICtcbiAgICAgICAgICAgICdcXG4nICtcbiAgICAgICAgICAgICcgJy5yZXBlYXQoc3BhY2VzKS5yZXBlYXQodGFiKSArXG4gICAgICAgICAgICBrZXkgK1xuICAgICAgICAgICAgJyAnICtcbiAgICAgICAgICAgICd7JyArXG4gICAgICAgICAgICB0aGlzLnByZXBhcmVGaWVsZHModmFsLCB7XG4gICAgICAgICAgICAgIGFsbG93ZWQ6IGFsbG93ZWQuZmllbGRzW2tleV0sIC8vIHZhbCBpcyBvYmplY3Qgb3IgYXJyYXlcbiAgICAgICAgICAgICAgcGFyZW50OiBjdXJyZW50UGF0aCArICcuJyxcbiAgICAgICAgICAgICAgc3BhY2VzLFxuICAgICAgICAgICAgICBzY2hlbWFGaWVsZHMsXG4gICAgICAgICAgICAgIHRhYjogdGFiICsgMSxcbiAgICAgICAgICAgICAgdXNlZEZpZWxkcyxcbiAgICAgICAgICAgIH0pLmZpZWxkc1N0cmluZyArXG4gICAgICAgICAgICAnXFxuJyArXG4gICAgICAgICAgICAnICcucmVwZWF0KHNwYWNlcykucmVwZWF0KHRhYikgK1xuICAgICAgICAgICAgJ30nO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gUmV0dXJuIHJlc3VsdFxuICAgIHJldHVybiB7IGZpZWxkc1N0cmluZywgc2NoZW1hRmllbGRzLCB1c2VkRmllbGRzIH07XG4gIH1cbn1cbiJdfQ==
|