fantasy-ngzorro 1.2.9 → 1.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/fantasy-ngzorro.umd.js +70 -26
- package/bundles/fantasy-ngzorro.umd.js.map +1 -1
- package/bundles/fantasy-ngzorro.umd.min.js +2 -2
- package/bundles/fantasy-ngzorro.umd.min.js.map +1 -1
- package/esm2015/hd-form/hd-form.component.js +18 -6
- package/esm2015/hd-form/hd-form.service.js +3 -1
- package/esm2015/hd-form-lines/hd-form-lines.component.js +48 -18
- package/esm2015/hd-form-lines/hd-form-lines.service.js +3 -1
- package/esm5/hd-form/hd-form.component.js +18 -6
- package/esm5/hd-form/hd-form.service.js +3 -1
- package/esm5/hd-form-lines/hd-form-lines.component.js +48 -18
- package/esm5/hd-form-lines/hd-form-lines.service.js +3 -1
- package/fantasy-ngzorro.metadata.json +1 -1
- package/fesm2015/fantasy-ngzorro.js +67 -23
- package/fesm2015/fantasy-ngzorro.js.map +1 -1
- package/fesm5/fantasy-ngzorro.js +67 -23
- package/fesm5/fantasy-ngzorro.js.map +1 -1
- package/hd-form/hd-form.service.d.ts +1 -0
- package/hd-form-lines/hd-form-lines.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import * as tslib_1 from "tslib";
|
|
6
6
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
7
7
|
import { FormBuilder, Validators } from '@angular/forms';
|
|
8
|
+
import { debounceTime } from 'rxjs/operators';
|
|
8
9
|
// import * as moment from 'moment';
|
|
9
10
|
var HdFormComponent = /** @class */ (function () {
|
|
10
11
|
function HdFormComponent(fb) {
|
|
@@ -145,11 +146,22 @@ var HdFormComponent = /** @class */ (function () {
|
|
|
145
146
|
function (item) {
|
|
146
147
|
if (item.onChangeEvent) {
|
|
147
148
|
if (item.onChangeEvent) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
149
|
+
if (item.onChangeEventDebounceTime) {
|
|
150
|
+
_this.validateHdForm.get(item.name).valueChanges
|
|
151
|
+
.pipe(debounceTime(item.onChangeEventDebounceTime))
|
|
152
|
+
.subscribe((/**
|
|
153
|
+
* @param {?} value
|
|
154
|
+
* @return {?}
|
|
155
|
+
*/
|
|
156
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
_this.validateHdForm.get(item.name).valueChanges.subscribe((/**
|
|
160
|
+
* @param {?} value
|
|
161
|
+
* @return {?}
|
|
162
|
+
*/
|
|
163
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value); }));
|
|
164
|
+
}
|
|
153
165
|
}
|
|
154
166
|
}
|
|
155
167
|
}));
|
|
@@ -346,4 +358,4 @@ if (false) {
|
|
|
346
358
|
*/
|
|
347
359
|
HdFormComponent.prototype.fb;
|
|
348
360
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHcEU7SUFXRSx5QkFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7UUFIekIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBR0osQ0FBQzs7OztJQUV4QyxrQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDaEQsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2QsQ0FBQzs7Ozs7SUFFRCxxQ0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNoRCxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDYjtJQUNILENBQUM7Ozs7OztJQUVELHNDQUFZOzs7OztJQUFaLFVBQWEsRUFBTyxFQUFFLEtBQVU7UUFD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Q25DLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7Ozs7SUFFTSxtQ0FBUzs7O0lBQWhCO1FBQ0UsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTzs7OztRQUFDLFVBQUEsT0FBTztZQUN6RCxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkMsQ0FBQyxFQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0QsQ0FBQzs7Ozs7SUFFTSxvQ0FBVTs7OztJQUFqQixVQUFrQixNQUFnQjs7WUFDMUIsV0FBVyxHQUFHLEVBQUU7UUFDdEIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUMsQ0FBQzs7Z0JBMUxGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsNmppQkFBdUM7O2lCQUV4Qzs7OztnQkFQUSxXQUFXOzs7MkJBVWpCLEtBQUs7OEJBQ0wsTUFBTTs7SUFtTFQsc0JBQUM7Q0FBQSxBQTNMRCxJQTJMQztTQXRMWSxlQUFlOzs7SUFFMUIsbUNBQW1DOztJQUNuQyxzQ0FBMkM7O0lBQzNDLHlDQUEwQjs7SUFDMUIscUNBQW1COzs7OztJQUNQLDZCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtSXRlbSB9IGZyb20gJy4vaGQtZm9ybS5zZXJ2aWNlJztcbi8vIGltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaGQtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oZC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGQtZm9ybS5jb21wb25lbnQubGVzcyddXG59KVxuZXhwb3J0IGNsYXNzIEhkRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgZm9ybUxpc3Q6IEFycmF5PEZvcm1JdGVtPjtcbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICB2YWxpZGF0ZUhkRm9ybTogRm9ybUdyb3VwO1xuICBpbnB1dFZhbHVlOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuZm9ybUxpc3QgfHwgdGhpcy5mb3JtTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgaWYgKGNoYW5nZXNbJ2Zvcm1MaXN0J10gJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1snZm9ybUxpc3QnXS5jdXJyZW50VmFsdWUpICE9PSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydmb3JtTGlzdCddLnByZXZpb3VzVmFsdWUpKSB7XG4gICAgICBpZiAoIXRoaXMuZm9ybUxpc3QgfHwgdGhpcy5mb3JtTGlzdC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICB9XG5cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZm4pIHtcbiAgICAgIGZuKGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGluaXQoKTogdm9pZCB7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaXN0KSkge1xuICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIMnO1xuICAgIH1cbiAgICAvLyDlr7nooajljZXmlbDmja7lgZrliJ3lp4vljJbvvIznlKhyb3fpmpTnprvmr4/ooYzmlbDmja5pdGVtXG4gICAgdGhpcy5kZWFsUm93KCk7XG4gICAgLy8g6aaW5YWI5qC55o2u5a6a5LmJ55qE57uE5Lu25pWw57uEICDljrvliJ3lp4vljJbooajljZVcbiAgICBsZXQgZm9ybUdyb3VwTGlzdCA9IHt9O1xuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgIC8vIOaXpeacn+ebuOWFs+eahOaOp+S7tuWBmueJueauiuWkhOeQhlxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gMiAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0udmFsdWUudG9TdHJpbmcoKS5zcGxpdCgnLScpLm1hcChzdHIgPT4gcGFyc2VJbnQoc3RyKSk7XG4gICAgICAgIGNvbnN0IG5ld0RhdGVTdHIgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCAtIDEsIGRheSlcbiAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogbmV3IERhdGUobmV3RGF0ZVN0ciksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gMyAmJiBpdGVtLnZhbHVlKSB7XG4gICAgICAgIGxldCBmb3JtSXRlbURhdGUgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGl0ZW0udmFsdWUpKTtcbiAgICAgICAgaWYgKGZvcm1JdGVtRGF0ZSAmJiBmb3JtSXRlbURhdGUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGZvcm1JdGVtRGF0ZSA9IGZvcm1JdGVtRGF0ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGl0ZW0uc3BsaXQoJy0nKS5tYXAoc3RyID0+IHBhcnNlSW50KHN0cikpO1xuICAgICAgICAgICAgY29uc3QgbmV3RGF0ZVN0ciA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxuICAgICAgICAgICAgICAudG9Mb2NhbGVEYXRlU3RyaW5nKCd6aC1IYW5zLUNOJywgeyB5ZWFyOiAnbnVtZXJpYycsIG1vbnRoOiAnMi1kaWdpdCcsIGRheTogJzItZGlnaXQnIH0pXG4gICAgICAgICAgICAgIC5yZXBsYWNlKC9cXC8vZywgJy0nKTtcbiAgICAgICAgICAgIGl0ZW0gPSBuZXcgRGF0ZShuZXdEYXRlU3RyKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtSXRlbURhdGUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWQsIGl0ZW0udmFsaWRhdG9yXSA6IFtdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93ICdmb3Jt57uE5Lu25LitRGF0ZVJhbmdl5o6n5Lu2dmFsdWXlgLzmoLzlvI/kuI3op4TojIPvvIzmraPnoa7npLrkvotbXFwnMjAyMC0wMS0yMlxcJywgXFwnMjAyMC0wMS0yM1xcJ10nO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoaXRlbS52YWxpZGF0b3IpIHtcbiAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogaXRlbS52YWx1ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybSA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwTGlzdCk7XG5cbiAgICB0aGlzLmZvcm1MaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICAgIHRoaXMudmFsaWRhdGVIZEZvcm0uZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLm9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGEpKTtcbiAgICB0aGlzLm9uSGRGb3JtVmFsdWVDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlYWxSb3coKSB7XG4gICAgLy8g5LiA6Zi25q61IOmBjeWOhuaVsOaNruiuoeeul+ebuOWFs+aVsOaNrlxuICAgIGNvbnN0IGZvcm1MaXN0TGVuZ3RoID0gdGhpcy5mb3JtTGlzdC5sZW5ndGg7XG4gICAgbGV0IHN0ZXAgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUxpc3RMZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0W2ldLmhpZGUpIHtcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLnRvdGFsV2lkdGggPSB0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDE7XG4gICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g5Y675om+5Yiw5YmN5LiA5Liq6Z2eaGlkZeeahOaOp+S7tlxuICAgICAgICAgIGZvciAobGV0IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS50b3RhbFdpZHRoID0gdGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoICsgKHRoaXMuZm9ybUxpc3RbaV0ud2lkdGggfHwgMSk7XG4gICAgICAgICAgICAgIGlmICgodGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoICsgdGhpcy5mb3JtTGlzdFtpXS53aWR0aCkgPiBzdGVwICYmIHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCA8PSBzdGVwKSB7XG4gICAgICAgICAgICAgICAgc3RlcCA9IHN0ZXAgKyA0O1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0uaXNSb3dGaXJzdCA9IDE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8g5LqM6Zi25q61IGlzUm93Rmlyc3TnmoTmlbDnu4Tpobnlop7liqDlrZDoioLngrlcbiAgICBmb3IgKGxldCBtID0gMDsgbSA8IGZvcm1MaXN0TGVuZ3RoOyBtKyspIHtcbiAgICAgIGlmICh0aGlzLmZvcm1MaXN0W21dLmlzUm93Rmlyc3QgPT09IDEpIHtcbiAgICAgICAgdGhpcy5mb3JtTGlzdFttXS5jb2x1bW5JdGVtcyA9IFtdO1xuICAgICAgICBsZXQgc3BhY2UgPSAwO1xuICAgICAgICBmb3IgKGxldCBuID0gMTsgbiA8IGZvcm1MaXN0TGVuZ3RoIC0gbTsgbisrKSB7XG4gICAgICAgICAgaWYgKHNwYWNlID09PSA0IHx8IHRoaXMuZm9ybUxpc3RbbSArIG5dLmlzUm93Rmlyc3QgPT09IDEpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuZm9ybUxpc3RbbSArIG5dLmhpZGUgJiYgdGhpcy5mb3JtTGlzdFttICsgbl0gJiYgdGhpcy5mb3JtTGlzdFttICsgbl0uaXNSb3dGaXJzdCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFttXS5jb2x1bW5JdGVtcy5wdXNoKHRoaXMuZm9ybUxpc3RbbSArIG5dKTtcbiAgICAgICAgICAgIHNwYWNlKys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkhkRm9ybVZhbHVlQ2hhbmdlZChkYXRhPzogYW55KSB7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0xpc3QobGlzdDogQXJyYXk8Rm9ybUl0ZW0+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFsaXN0IHx8IChsaXN0ICYmIGxpc3QubGVuZ3RoID09PSAwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgbmFtZUxpc3QgPSBbXTtcbiAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vIOagoemqjOWNlemhuemAieaLqeWZqFxuICAgICAgLy8gaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLlNlbGVjdCAmJiAoIWl0ZW0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QgfHwgKGl0ZW0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QgJiYgaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdC5sZW5ndGggPT09IDApKSkge1xuICAgICAgLy8gICB0aHJvdyAnZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOWNlemhuemAieaLqeWZqOayoeacieS8oOWFpemAiemhuSEnXG4gICAgICAvLyB9XG4gICAgICBuYW1lTGlzdC5wdXNoKGl0ZW0ubmFtZSk7XG4gICAgfSk7XG4gICAgLy8g5qCh6aqMbmFtZeaYr+WQpumHjeWkjVxuICAgIGlmIChbLi4ubmV3IFNldChuYW1lTGlzdCldLmxlbmd0aCAhPT0gbGlzdC5sZW5ndGgpIHtcbiAgICAgIHRocm93ICdmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo6YeN5aSNbmFtZeWAvCEnO1xuICAgIH1cbiAgICAvLyAuLi5tb3JlIGNoZWNrXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0Rm9ybSgpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmFsaWRhdGVIZEZvcm0uY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybS5yZXNldCgpO1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52YWxpZGF0ZUhkRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGlucHV0Q2xlYW4oZmlsdGVyOiBGb3JtSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHBhdGNoT2JqZWN0ID0ge307XG4gICAgcGF0Y2hPYmplY3RbZmlsdGVyLm5hbWVdID0gbnVsbDtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnBhdGNoVmFsdWUocGF0Y2hPYmplY3QpO1xuICB9XG59XG4iXX0=
|
|
361
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtL2hkLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBRzlDO0lBV0UseUJBQW9CLEVBQWU7UUFBZixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBSHpCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUdKLENBQUM7Ozs7SUFFeEMsa0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2hELE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7Ozs7O0lBRUQscUNBQVc7Ozs7SUFBWCxVQUFZLE9BQXNCO1FBQ2hDLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ2pJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDaEQsT0FBTzthQUNSO1lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzs7Ozs7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LENBQUMsQ0FBQztJQUM5QyxDQUFDOztnQkFsTUYsU0FBUyxTQUFDO29CQUNULFFBQVEsRUFBRSxTQUFTO29CQUNuQiw2amlCQUF1Qzs7aUJBRXhDOzs7O2dCQVJRLFdBQVc7OzsyQkFXakIsS0FBSzs4QkFDTCxNQUFNOztJQTJMVCxzQkFBQztDQUFBLEFBbk1ELElBbU1DO1NBOUxZLGVBQWU7OztJQUUxQixtQ0FBbUM7O0lBQ25DLHNDQUEyQzs7SUFDM0MseUNBQTBCOztJQUMxQixxQ0FBbUI7Ozs7O0lBQ1AsNkJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1JdGVtIH0gZnJvbSAnLi9oZC1mb3JtLnNlcnZpY2UnO1xuLy8gaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZC1mb3JtLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSBmb3JtTGlzdDogQXJyYXk8Rm9ybUl0ZW0+O1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHZhbGlkYXRlSGRGb3JtOiBGb3JtR3JvdXA7XG4gIGlucHV0VmFsdWU6IHN0cmluZztcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmluaXQoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBpZiAoY2hhbmdlc1snZm9ybUxpc3QnXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydmb3JtTGlzdCddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaXN0J10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIGlmICghdGhpcy5mb3JtTGlzdCB8fCB0aGlzLmZvcm1MaXN0Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICB0cmlnZ2VyRXZlbnQoZm46IGFueSwgZXZlbnQ6IGFueSkge1xuICAgIGlmIChmbikge1xuICAgICAgZm4oZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdCgpOiB2b2lkIHtcbiAgICAvLyDlvILluLjmjZXojrdcbiAgICBpZiAoIXRoaXMuY2hlY2tMaXN0KHRoaXMuZm9ybUxpc3QpKSB7XG4gICAgICB0aHJvdyAnZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMgyc7XG4gICAgfVxuICAgIC8vIOWvueihqOWNleaVsOaNruWBmuWIneWni+WMlu+8jOeUqHJvd+malOemu+avj+ihjOaVsOaNrml0ZW1cbiAgICB0aGlzLmRlYWxSb3coKTtcbiAgICAvLyDpppblhYjmoLnmja7lrprkuYnnmoTnu4Tku7bmlbDnu4QgIOWOu+WIneWni+WMluihqOWNlVxuICAgIGxldCBmb3JtR3JvdXBMaXN0ID0ge307XG4gICAgdGhpcy5mb3JtTGlzdC5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgLy8g5pel5pyf55u45YWz55qE5o6n5Lu25YGa54m55q6K5aSE55CGXG4gICAgICBpZiAoaXRlbS50eXBlID09PSAyICYmIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gaXRlbS52YWx1ZS50b1N0cmluZygpLnNwbGl0KCctJykubWFwKHN0ciA9PiBwYXJzZUludChzdHIpKTtcbiAgICAgICAgY29uc3QgbmV3RGF0ZVN0ciA9IG5ldyBEYXRlKHllYXIsIG1vbnRoIC0gMSwgZGF5KVxuICAgICAgICAgIC50b0xvY2FsZURhdGVTdHJpbmcoJ3poLUhhbnMtQ04nLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICcyLWRpZ2l0JywgZGF5OiAnMi1kaWdpdCcgfSlcbiAgICAgICAgICAucmVwbGFjZSgvXFwvL2csICctJyk7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBuZXcgRGF0ZShuZXdEYXRlU3RyKSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBuZXcgRGF0ZShuZXdEYXRlU3RyKSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAzICYmIGl0ZW0udmFsdWUpIHtcbiAgICAgICAgbGV0IGZvcm1JdGVtRGF0ZSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoaXRlbS52YWx1ZSkpO1xuICAgICAgICBpZiAoZm9ybUl0ZW1EYXRlICYmIGZvcm1JdGVtRGF0ZSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICAgICAgZm9ybUl0ZW1EYXRlID0gZm9ybUl0ZW1EYXRlLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gaXRlbS5zcGxpdCgnLScpLm1hcChzdHIgPT4gcGFyc2VJbnQoc3RyKSk7XG4gICAgICAgICAgICBjb25zdCBuZXdEYXRlU3RyID0gbmV3IERhdGUoeWVhciwgbW9udGggLSAxLCBkYXkpXG4gICAgICAgICAgICAgIC50b0xvY2FsZURhdGVTdHJpbmcoJ3poLUhhbnMtQ04nLCB7IHllYXI6ICdudW1lcmljJywgbW9udGg6ICcyLWRpZ2l0JywgZGF5OiAnMi1kaWdpdCcgfSlcbiAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcLy9nLCAnLScpO1xuICAgICAgICAgICAgaXRlbSA9IG5ldyBEYXRlKG5ld0RhdGVTdHIpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1JdGVtRGF0ZSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlICYmICFpdGVtLmhpZGUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgaXRlbS52YWxpZGF0b3JdIDogW10pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtR3JvdXBMaXN0W2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogZm9ybUl0ZW1EYXRlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgJ2Zvcm3nu4Tku7bkuK1EYXRlUmFuZ2Xmjqfku7Z2YWx1ZeWAvOagvOW8j+S4jeinhOiMg++8jOato+ehruekuuS+i1tcXCcyMDIwLTAxLTIyXFwnLCBcXCcyMDIwLTAxLTIzXFwnXSc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChpdGVtLnZhbGlkYXRvcikge1xuICAgICAgICAgIGZvcm1Hcm91cExpc3RbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgJiYgIWl0ZW0uaGlkZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBpdGVtLnZhbGlkYXRvcl0gOiBbXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZm9ybUdyb3VwTGlzdFtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGl0ZW0udmFsdWUsIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtID0gdGhpcy5mYi5ncm91cChmb3JtR3JvdXBMaXN0KTtcblxuICAgIHRoaXMuZm9ybUxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudERlYm91bmNlVGltZSkge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQoaXRlbS5uYW1lKS52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKGl0ZW0ub25DaGFuZ2VFdmVudERlYm91bmNlVGltZSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMudHJpZ2dlckV2ZW50KGl0ZW0ub25DaGFuZ2VFdmVudCwgdmFsdWUpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZUhkRm9ybS5nZXQoaXRlbS5uYW1lKS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMudHJpZ2dlckV2ZW50KGl0ZW0ub25DaGFuZ2VFdmVudCwgdmFsdWUpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZGF0YSA9PiB0aGlzLm9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGEpKTtcbiAgICB0aGlzLm9uSGRGb3JtVmFsdWVDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIGRlYWxSb3coKSB7XG4gICAgLy8g5LiA6Zi25q61IOmBjeWOhuaVsOaNruiuoeeul+ebuOWFs+aVsOaNrlxuICAgIGNvbnN0IGZvcm1MaXN0TGVuZ3RoID0gdGhpcy5mb3JtTGlzdC5sZW5ndGg7XG4gICAgbGV0IHN0ZXAgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybUxpc3RMZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCF0aGlzLmZvcm1MaXN0W2ldLmhpZGUpIHtcbiAgICAgICAgaWYgKGkgPT09IDApIHtcbiAgICAgICAgICB0aGlzLmZvcm1MaXN0W2ldLnRvdGFsV2lkdGggPSB0aGlzLmZvcm1MaXN0W2ldLndpZHRoIHx8IDE7XG4gICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMTtcbiAgICAgICAgICBzdGVwID0gc3RlcCArIDQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g5Y675om+5Yiw5YmN5LiA5Liq6Z2eaGlkZeeahOaOp+S7tlxuICAgICAgICAgIGZvciAobGV0IGogPSBpIC0gMTsgaiA+PSAwOyBqLS0pIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm1MaXN0W2pdLnRvdGFsV2lkdGgpIHtcbiAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS50b3RhbFdpZHRoID0gdGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoICsgKHRoaXMuZm9ybUxpc3RbaV0ud2lkdGggfHwgMSk7XG4gICAgICAgICAgICAgIGlmICgodGhpcy5mb3JtTGlzdFtqXS50b3RhbFdpZHRoICsgdGhpcy5mb3JtTGlzdFtpXS53aWR0aCkgPiBzdGVwICYmIHRoaXMuZm9ybUxpc3Rbal0udG90YWxXaWR0aCA8PSBzdGVwKSB7XG4gICAgICAgICAgICAgICAgc3RlcCA9IHN0ZXAgKyA0O1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUxpc3RbaV0uaXNSb3dGaXJzdCA9IDE7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFtpXS5pc1Jvd0ZpcnN0ID0gMDtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8g5LqM6Zi25q61IGlzUm93Rmlyc3TnmoTmlbDnu4Tpobnlop7liqDlrZDoioLngrlcbiAgICBmb3IgKGxldCBtID0gMDsgbSA8IGZvcm1MaXN0TGVuZ3RoOyBtKyspIHtcbiAgICAgIGlmICh0aGlzLmZvcm1MaXN0W21dLmlzUm93Rmlyc3QgPT09IDEpIHtcbiAgICAgICAgdGhpcy5mb3JtTGlzdFttXS5jb2x1bW5JdGVtcyA9IFtdO1xuICAgICAgICBsZXQgc3BhY2UgPSAwO1xuICAgICAgICBmb3IgKGxldCBuID0gMTsgbiA8IGZvcm1MaXN0TGVuZ3RoIC0gbTsgbisrKSB7XG4gICAgICAgICAgaWYgKHNwYWNlID09PSA0IHx8IHRoaXMuZm9ybUxpc3RbbSArIG5dLmlzUm93Rmlyc3QgPT09IDEpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMuZm9ybUxpc3RbbSArIG5dLmhpZGUgJiYgdGhpcy5mb3JtTGlzdFttICsgbl0gJiYgdGhpcy5mb3JtTGlzdFttICsgbl0uaXNSb3dGaXJzdCA9PT0gMCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtTGlzdFttXS5jb2x1bW5JdGVtcy5wdXNoKHRoaXMuZm9ybUxpc3RbbSArIG5dKTtcbiAgICAgICAgICAgIHNwYWNlKys7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvbkhkRm9ybVZhbHVlQ2hhbmdlZChkYXRhPzogYW55KSB7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0xpc3QobGlzdDogQXJyYXk8Rm9ybUl0ZW0+KTogYm9vbGVhbiB7XG4gICAgaWYgKCFsaXN0IHx8IChsaXN0ICYmIGxpc3QubGVuZ3RoID09PSAwKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBsZXQgbmFtZUxpc3QgPSBbXTtcbiAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vIOagoemqjOWNlemhuemAieaLqeWZqFxuICAgICAgLy8gaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpc3RUeXBlLlNlbGVjdCAmJiAoIWl0ZW0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QgfHwgKGl0ZW0uc2VsZWN0T3B0aW9uLnNlbGVjdExpc3QgJiYgaXRlbS5zZWxlY3RPcHRpb24uc2VsZWN0TGlzdC5sZW5ndGggPT09IDApKSkge1xuICAgICAgLy8gICB0aHJvdyAnZm9ybee7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOWNlemhuemAieaLqeWZqOayoeacieS8oOWFpemAiemhuSEnXG4gICAgICAvLyB9XG4gICAgICBuYW1lTGlzdC5wdXNoKGl0ZW0ubmFtZSk7XG4gICAgfSk7XG4gICAgLy8g5qCh6aqMbmFtZeaYr+WQpumHjeWkjVxuICAgIGlmIChbLi4ubmV3IFNldChuYW1lTGlzdCldLmxlbmd0aCAhPT0gbGlzdC5sZW5ndGgpIHtcbiAgICAgIHRocm93ICdmb3Jt57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo6YeN5aSNbmFtZeWAvCEnO1xuICAgIH1cbiAgICAvLyAuLi5tb3JlIGNoZWNrXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0Rm9ybSgpOiB2b2lkIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMudmFsaWRhdGVIZEZvcm0uY29udHJvbHMpLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBjb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9KTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZUhkRm9ybS5yZXNldCgpO1xuICAgIE9iamVjdC52YWx1ZXModGhpcy52YWxpZGF0ZUhkRm9ybS5jb250cm9scykuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIGlucHV0Q2xlYW4oZmlsdGVyOiBGb3JtSXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IHBhdGNoT2JqZWN0ID0ge307XG4gICAgcGF0Y2hPYmplY3RbZmlsdGVyLm5hbWVdID0gbnVsbDtcbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtLnBhdGNoVmFsdWUocGF0Y2hPYmplY3QpO1xuICB9XG59XG4iXX0=
|
|
@@ -83,6 +83,8 @@ if (false) {
|
|
|
83
83
|
FormItem.prototype.validatorKeys;
|
|
84
84
|
/** @type {?} */
|
|
85
85
|
FormItem.prototype.validator;
|
|
86
|
+
/** @type {?} */
|
|
87
|
+
FormItem.prototype.onChangeEventDebounceTime;
|
|
86
88
|
}
|
|
87
89
|
var ValidatorKey = /** @class */ (function () {
|
|
88
90
|
function ValidatorKey() {
|
|
@@ -135,4 +137,4 @@ var HdFormService = /** @class */ (function () {
|
|
|
135
137
|
return HdFormService;
|
|
136
138
|
}());
|
|
137
139
|
export { HdFormService };
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS9oZC1mb3JtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRWpFOzs7SUFBQTs7UUFJRSxZQUFPLEdBQWEsS0FBSyxDQUFDLENBQUMsT0FBTzs7UUFFbEMsVUFBSyxHQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVk7O1FBQ2hDLFNBQUksR0FBYSxLQUFLLENBQUMsQ0FBQyw2QkFBNkI7O1FBQ3JELGVBQVUsR0FBWSxDQUFDLENBQUM7UUFDeEIsZUFBVSxHQUFZLENBQUMsQ0FBQyxDQUFDLGNBQWM7O1FBRXZDLFVBQUssR0FBb0UsSUFBSSxDQUFDLENBQUUsY0FBYzs7UUFNOUYsZ0JBQVcsR0FBaUIsSUFBSSxXQUFXLEVBQUUsQ0FBQyxDQUFDLHdCQUF3Qjs7UUFPdkUsYUFBUSxHQUFhLEtBQUssQ0FBQyxDQUFDLGNBQWM7SUFLNUMsQ0FBQztJQUFELGVBQUM7QUFBRCxDQUFDLEFBN0JELElBNkJDOzs7OztJQTVCQyx3QkFBbUI7O0lBQ25CLHlCQUFjOztJQUNkLHdCQUFhOztJQUNiLDJCQUEwQjs7SUFDMUIsK0JBQXFCOztJQUNyQix5QkFBbUI7O0lBQ25CLHdCQUF1Qjs7SUFDdkIsOEJBQXdCOztJQUN4Qiw4QkFBd0I7O0lBQ3hCLCtCQUF5Qjs7SUFDekIseUJBQThFOztJQUM5RSw0QkFBbUI7O0lBQ25CLHlCQUFlOztJQUVmLDZCQUFtQjs7SUFDbkIsZ0NBQTRCOztJQUM1QiwrQkFBOEM7O0lBQzlDLGlDQUF5Qjs7SUFDekIsaUNBQXlCOztJQUN6QixnQ0FBc0M7O0lBQ3RDLGtDQUEwQjs7SUFDMUIsMkJBQWlCOztJQUNqQixnQ0FBc0I7O0lBQ3RCLDRCQUEyQjs7SUFDM0IsOEJBQW9COztJQUNwQixpQ0FBb0M7O0lBQ3BDLDZCQUF3Qjs7SUFDeEIsNkNBQW1DOztBQUdyQztJQUFBO0lBR0EsQ0FBQztJQUFELG1CQUFDO0FBQUQsQ0FBQyxBQUhELElBR0M7Ozs7SUFGQywyQkFBWTs7SUFDWiw2QkFBYzs7OztJQUtkLFFBQUs7SUFDTCxTQUFNO0lBQ04sT0FBSTtJQUNKLFlBQVM7SUFDVCxXQUFRO0lBQ1IsY0FBVztJQUNYLGlCQUFjO0lBQ2QsVUFBTztJQUNQLFNBQU07SUFDTixPQUFJLENBQUMsUUFBUTs7Ozs7Ozs7Ozs7Ozs7QUFHZjtJQUlFO0lBQWdCLENBQUM7O2dCQUpsQixVQUFVLFNBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzs7Ozt3QkF4REQ7Q0EyREMsQUFMRCxJQUtDO1NBRlksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgSW5wdXROdW1iZXIsIFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL21vZGVsL2NvbW1vbi10eXBlJztcbi8vIOaOp+S7tuWIl+ihqFxuZXhwb3J0IGNsYXNzIEZvcm1JdGVtIHtcbiAgdHlwZTogRm9ybUxpc3RUeXBlO1xuICBsYWJlbDogc3RyaW5nOyAgLy8g5paH5pysXG4gIG5hbWU6IHN0cmluZzsgIC8vIOWtl+auteWQjeensFxuICByZXF1aXJlPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDmmK/lkKblv4XloatcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7IC8vIOi+k+WFpeahhuaPkOekuuaWh+ahiFxuICB3aWR0aD86IG51bWJlciA9IDE7IC8vIOWNoOaNrueahOWIl+aVsOOAgum7mOiupDFcbiAgaGlkZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5Li66ZqQ6JeP5a2X5q6177yM5LuF55So5LqO5aGr5YWF6KGo5Y2V55qE5a2X5q6177yM5LiN5pi+56S65Zyo6aG16Z2i5LiKXG4gIHRvdGFsV2lkdGg/OiBudW1iZXIgPSAwO1xuICBpc1Jvd0ZpcnN0PzogbnVtYmVyID0gMDsgLy8g5piv5ZCm5piv5LiA6KGM55qE56ys5LiA5Liq5YWD57SgXG4gIGNvbHVtbkl0ZW1zPzogQXJyYXk8YW55PjsgLy8g5b2T5YmN6KGM55qE5omA5pyJ5YiX55qEaXRlbXNcbiAgdmFsdWU/OiBzdHJpbmcgfCBib29sZWFuIHwgbnVtYmVyIHwgRGF0ZSB8IEFycmF5PHN0cmluZyB8IERhdGU+IHwgbnVsbCA9IG51bGw7ICAvLyDlgLwg5LiN5Lyg6buY6K6k5Li6bnVsbFxuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGNvbG9yPzogc3RyaW5nO1xuICAvLyDnu4Tku7blhoXpg6jmiJDlkZhcbiAgbWF4TGVuZ3RoPzogbnVtYmVyOyAvLyBpbnB1dOaOp+S7tueahOi+k+WFpemVv+W6plxuICBzZWxlY3RPcHRpb24/OiBTZWxlY3RPcHRpb247ICAvLyDmjqfku7bkuLpTZWxlY3Tml7bvvIzpgInpobnliJfooahcbiAgaW5wdXROdW1iZXI/OiBJbnB1dE51bWJlciA9IG5ldyBJbnB1dE51bWJlcigpOyAvLyBudW1iZXLnu4Tku7bnmoRtaW7jgIFtYXjjgIFzdGVwXG4gIG9uQ2hhbmdlRXZlbnQ/OiBGdW5jdGlvbjsgICAvLyDmjqfku7bnmoTlgLzmlLnlj5jkuovku7Yg5Y+v55So5LqO5o6n5Lu26Ze06IGU5YqoXG4gIG9uU2VhcmNoRXZlbnQ/OiBGdW5jdGlvbjsgIC8vIHNlbGVjdOmAieaLqeWZqOaQnOe0ouS6i+S7tiDlj6/nlKjkuo7mm7TmlrDlpIfpgInpm4blkIhcbiAgZGVmYXVsdExhYmVsPzogc3RyaW5nIHwgQXJyYXk8c3RyaW5nPjsgICAvLyBzZWxlY3TpgInmi6nlmajkuI3liJ3lp4vljJbnmoTml7blgJnlj6/ku6Xkvb/nlKhkZWZhdWx0TGFiZWzmkK3phY12YWx1Ze+8jOiuvue9rum7mOiupOWAvFxuICBoZERpc2FibGVkRGF0ZT86IEZ1bmN0aW9uOyAvLyBkYXRlLXBpY2tlcue7hOS7tuS4jeWPr+mAieaLqeeahOaXpeacn1xuICBleHBsYWluPzogc3RyaW5nOyAvLyBsYWJlbOW6lemDqOeahOS7i+e7jVxuICB0ZXh0QXJlYVJvd3M/OiBudW1iZXI7IC8vIHRleHRBcmVh55qE6KGM5pWwXG4gIHNob3dUaW1lPzogYm9vbGVhbiA9IGZhbHNlOyAvLyDml6XmnJ/pgInmi6nlmajmmK/lkKbljIXlkKvml7bpl7RcbiAgbGFiZWxDb2xvcj86IHN0cmluZzsgLy8gbGFiZWznmoTmloflrZfnmoTpopzoibJcbiAgdmFsaWRhdG9yS2V5cz86IEFycmF5PFZhbGlkYXRvcktleT47XG4gIHZhbGlkYXRvcj86IFZhbGlkYXRvckZuO1xuICBvbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lPzogbnVtYmVyOyAvLyBjaGFuZ2Xkuovku7boioLmtYHpmIjlgLxcbn1cblxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvcktleSB7XG4gIGtleTogc3RyaW5nO1xuICBsYWJlbDogc3RyaW5nO1xufVxuXG4vLyDmjqfku7bnsbvlnotcbmV4cG9ydCBlbnVtIEZvcm1MaXN0VHlwZSB7XG4gIElucHV0LCAgLy8g6L6T5YWl5qGGXG4gIFNlbGVjdCwgIC8vIOWNlemhuemAieaLqeWZqFxuICBEYXRlLCAgLy8g5Y2V5Liq5pel5pyf6YCJ5oupXG4gIERhdGVSYW5nZSwgIC8vIOaXpeacn+iMg+WbtOmAieaLqVxuICBUZXh0QXJlYSwgLy8g5Z2X57qn6L6T5YWl5qGGXG4gIElucHV0TnVtYmVyLCAvLyDmlbDlrZfovpPlhaVcbiAgTXVsdGlwbGVTZWxlY3QsIC8vIOWkmumAiVxuICBWaWV3RG9tLCAvLyDljZXnuq/nmoTmmL7npLrmjqfku7ZcbiAgU3dpdGNoLCAvLyDlvIDlhbNcbiAgVGltZSAvLyDml7bpl7TpgInmi6nlmahcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKCkgeyB9XG59XG4iXX0=
|
|
@@ -7,6 +7,7 @@ import { Component, EventEmitter, Input, NgZone, Output } from '@angular/core';
|
|
|
7
7
|
import { FormBuilder, Validators } from '@angular/forms';
|
|
8
8
|
import { round } from 'lodash';
|
|
9
9
|
import { InputBoolean } from 'ng-zorro-antd';
|
|
10
|
+
import { debounceTime } from 'rxjs/operators';
|
|
10
11
|
var HdFormLinesComponent = /** @class */ (function () {
|
|
11
12
|
function HdFormLinesComponent(fb, ngZone) {
|
|
12
13
|
this.fb = fb;
|
|
@@ -119,11 +120,20 @@ var HdFormLinesComponent = /** @class */ (function () {
|
|
|
119
120
|
*/
|
|
120
121
|
function (item) {
|
|
121
122
|
if (item.onChangeEvent) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
123
|
+
if (item.onChangeEventDebounceTime) {
|
|
124
|
+
formGroupTmp.get(item.name).valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime)).subscribe((/**
|
|
125
|
+
* @param {?} value
|
|
126
|
+
* @return {?}
|
|
127
|
+
*/
|
|
128
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupTmp); }));
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
formGroupTmp.get(item.name).valueChanges.subscribe((/**
|
|
132
|
+
* @param {?} value
|
|
133
|
+
* @return {?}
|
|
134
|
+
*/
|
|
135
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupTmp); }));
|
|
136
|
+
}
|
|
127
137
|
}
|
|
128
138
|
}));
|
|
129
139
|
((/** @type {?} */ (tmpValidateHdFormLines.get('lines')))).insert(((/** @type {?} */ (tmpValidateHdFormLines.get('lines')))).controls.length, formGroupTmp);
|
|
@@ -400,11 +410,20 @@ var HdFormLinesComponent = /** @class */ (function () {
|
|
|
400
410
|
function (item) {
|
|
401
411
|
if (item.onChangeEvent) {
|
|
402
412
|
if (item.onChangeEvent) {
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
413
|
+
if (item.onChangeEventDebounceTime) {
|
|
414
|
+
formGroupSubmit.get(item.name).valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime)).subscribe((/**
|
|
415
|
+
* @param {?} value
|
|
416
|
+
* @return {?}
|
|
417
|
+
*/
|
|
418
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit); }));
|
|
419
|
+
}
|
|
420
|
+
else {
|
|
421
|
+
formGroupSubmit.get(item.name).valueChanges.subscribe((/**
|
|
422
|
+
* @param {?} value
|
|
423
|
+
* @return {?}
|
|
424
|
+
*/
|
|
425
|
+
function (value) { return _this.triggerEvent(item.onChangeEvent, value, formGroupSubmit); }));
|
|
426
|
+
}
|
|
408
427
|
}
|
|
409
428
|
}
|
|
410
429
|
}));
|
|
@@ -468,13 +487,24 @@ var HdFormLinesComponent = /** @class */ (function () {
|
|
|
468
487
|
*/
|
|
469
488
|
function (item) {
|
|
470
489
|
if (item.onChangeEvent) {
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
490
|
+
if (item.onChangeEventDebounceTime) {
|
|
491
|
+
formGroupTmp.get(item.name).valueChanges.pipe(debounceTime(item.onChangeEventDebounceTime)).subscribe((/**
|
|
492
|
+
* @param {?} value
|
|
493
|
+
* @return {?}
|
|
494
|
+
*/
|
|
495
|
+
function (value) {
|
|
496
|
+
_this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
|
|
497
|
+
}));
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
formGroupTmp.get(item.name).valueChanges.subscribe((/**
|
|
501
|
+
* @param {?} value
|
|
502
|
+
* @return {?}
|
|
503
|
+
*/
|
|
504
|
+
function (value) {
|
|
505
|
+
_this.triggerEvent(item.onChangeEvent, value, formGroupTmp);
|
|
506
|
+
}));
|
|
507
|
+
}
|
|
478
508
|
}
|
|
479
509
|
}));
|
|
480
510
|
_this.linesFormArray.insert(_this.linesFormArray.controls.length, formGroupTmp);
|
|
@@ -948,4 +978,4 @@ if (false) {
|
|
|
948
978
|
*/
|
|
949
979
|
HdFormLinesComponent.prototype.ngZone;
|
|
950
980
|
}
|
|
951
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS1saW5lcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtLWxpbmVzL2hkLWZvcm0tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBYSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDO0lBbUNFLDhCQUFvQixFQUFlLEVBQ3pCLE1BQWM7UUFESixPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUE5QkMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUk1QyxtQkFBYyxHQUFrQixDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNsRCxXQUFNLEdBQStCLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2pELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQixzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDNUQsd0JBQW1CLEdBQVcsQ0FBQyxDQUFDO1FBQ2hDLHVCQUFrQixHQUFXLEVBQUUsQ0FBQzs7UUFNUCxjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNDLGdCQUFXLEdBQXVCLEVBQUUsQ0FBQztRQUNyQyxrQkFBYSxHQUFvQixDQUFDLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFFckIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQix1QkFBa0IsR0FBUSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUMxQyw2QkFBd0IsR0FBUSxFQUFFLENBQUMsQ0FBQyxZQUFZOztRQUNoRCxxQkFBZ0IsR0FBa0IsRUFBRSxDQUFDLENBQUMsbUJBQW1COztRQUN6RCxpQkFBWSxHQUFZLEtBQUssQ0FBQyxDQUFDLGNBQWM7O1FBQzdDLGNBQVMsR0FBWSxLQUFLLENBQUMsQ0FBQyxVQUFVO1FBbWE5QixtQkFBYyxHQUErQixFQUFFLENBQUM7SUFoYTVCLENBQUM7Ozs7SUFFN0IsdUNBQVE7OztJQUFSO1FBQ0UsYUFBYTtRQUNiLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzdDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRCxzQkFBSSxnREFBYzs7OztRQUFsQjtZQUNFLE9BQU8sbUJBQUEsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBYSxDQUFDO1FBQzVELENBQUM7OztPQUFBO0lBRUQsc0JBQUksNkNBQVc7Ozs7UUFBZjtZQUNFLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQzs7O09BQUE7SUFFRCx5QkFBeUI7Ozs7O0lBQ2xCLHVDQUFROzs7OztJQUFmO1FBQ0UsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7Ozs7SUFFRCw0Q0FBYTs7O0lBQWI7UUFBQSxpQkF1QkM7O1lBdEJLLHNCQUFzQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3pDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7U0FDM0IsQ0FBQztRQUNGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQyxpQkFBaUI7O2dCQUM1QyxZQUFZLEdBQVEsRUFBRTtZQUMxQixLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7WUFBQyxVQUFDLElBQUk7Z0JBQzFCLGlCQUFpQjtnQkFDakIsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3hOLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTtvQkFDaEQsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7aUJBQ2pIO1lBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDSCxZQUFZLENBQUMsU0FBUyxHQUFHLEtBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsbUJBQUEsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDOztnQkFDN0csWUFBWSxHQUFHLEtBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM5QyxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7WUFBQyxVQUFDLElBQUk7Z0JBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDdEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVM7Ozs7b0JBQUMsVUFBQSxLQUFLLElBQUksT0FBQSxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxFQUExRCxDQUEwRCxFQUFDLENBQUM7aUJBQ3pIO1lBQ0gsQ0FBQyxFQUFDLENBQUM7WUFDSCxDQUFDLG1CQUFBLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBYSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsbUJBQUEsc0JBQXNCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFhLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlJLENBQUMsRUFBQyxDQUFDO1FBQ0gsT0FBTyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7SUFDdEMsQ0FBQztJQUVELGlCQUFpQjs7Ozs7SUFDVix1Q0FBUTs7Ozs7SUFBZjtRQUFBLGlCQVlDOztZQVhLLFFBQVEsR0FBRyxFQUFFO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQyxpQkFBaUI7O2dCQUM1QyxZQUFZLEdBQVEsRUFBRTtZQUMxQixLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7WUFBQyxVQUFDLElBQUk7Z0JBQzFCLGlCQUFpQjtnQkFDakIsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekQsQ0FBQyxFQUFDLENBQUM7WUFDSCxZQUFZLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLFNBQVMsQ0FBQztZQUNyRCxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzlCLENBQUMsRUFBQyxDQUFDO1FBQ0gsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVELHVCQUF1Qjs7Ozs7SUFDdkIsMENBQVc7Ozs7O0lBQVg7UUFBQSxpQkFpQ0M7UUFoQ0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN0QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7WUFDMUIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE9BQU87U0FDUjs7WUFDSyxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUU7UUFDdkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQzs7O1lBR3JCLFlBQVksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTs7Ozs7UUFBQyxVQUFDLElBQVMsRUFBRSxLQUFhOzs7Z0JBQzNFLEtBQW1CLElBQUEsS0FBQSxpQkFBQSxLQUFJLENBQUMsU0FBUyxDQUFBLGdCQUFBLDRCQUFFO29CQUE5QixJQUFNLElBQUksV0FBQTtvQkFDYixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLENBQUMsRUFBRTs7NEJBQ25FLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUM3RSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7NEJBQy9CLEtBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7NEJBQ2xDLE9BQU8sSUFBSSxDQUFDO3lCQUNiO3FCQUNGO2lCQUNGOzs7Ozs7Ozs7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsRUFBQztRQUNGLGVBQWU7UUFDZixJQUFJLENBQUMsd0JBQXdCLEdBQUcsWUFBWSxDQUFDO1FBQzdDLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLFlBQVksQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Ozs7SUFFRCwyQ0FBWTs7O0lBQVo7UUFDRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7Ozs7Ozs7SUFFRCx1Q0FBUTs7Ozs7O0lBQVIsVUFBUyxJQUFlLEVBQUUsUUFBYSxFQUFFLEtBQWE7O1lBQ2hELFFBQVEsR0FBRztZQUNiLFdBQVcsRUFBRSxLQUFLO1NBQ25CO1FBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ2xCLFFBQVEsd0JBQVEsUUFBUSxFQUFLLFFBQVEsQ0FBQyxLQUFLLENBQUUsQ0FBQztTQUMvQztRQUNELElBQUksUUFBUSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ2xHLFFBQVEsd0JBQVEsUUFBUSxFQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBRSxDQUFDO1NBQ3ZGO1FBQ0QsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7Ozs7SUFFRCwwQ0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDaEosSUFBSSxJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO2FBQzlDO1lBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2I7UUFDRCxJQUFJLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUMxSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDOzs7O0lBRUQsNkNBQWM7OztJQUFkO1FBQUEsaUJBY0M7UUFiQyxXQUFXO1FBQ1gsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDMUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQSxJQUFJO2dCQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0JBQ3BFLEtBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRzt3QkFDM0MsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXO3dCQUN2QixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNO3dCQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLO3FCQUN2QyxDQUFDO2lCQUNIO1lBQ0gsQ0FBQyxFQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Ozs7OztJQUVPLG1DQUFJOzs7OztJQUFaLFVBQWEsTUFBdUI7UUFBcEMsaUJBbUJDO1FBbkJZLHVCQUFBLEVBQUEsY0FBdUI7UUFDbEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztRQUM3QixPQUFPO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvRixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMxQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7U0FDdEI7YUFBTTtZQUNMLE9BQU87WUFDUCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztTQUM1QjtRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsS0FBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxFQUEvQixDQUErQixFQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUdEOztPQUVHOzs7Ozs7SUFDSyx5Q0FBVTs7Ozs7SUFBbEI7UUFDRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdkMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUMzQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O01BRUU7Ozs7OztJQUNNLDBDQUFXOzs7OztJQUFuQjtRQUFBLGlCQWtCQzs7WUFqQkssWUFBWSxHQUFRLEVBQUU7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQyxJQUFJO1lBQzFCLGlCQUFpQjtZQUNqQixZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3SixDQUFDLEVBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLG1CQUFtQjtRQUNuQixZQUFZLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQzs7WUFDeEUsZUFBZSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztRQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7UUFBQyxVQUFDLElBQUk7WUFDMUIsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO2dCQUN0QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ3RCLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxTQUFTOzs7O29CQUFDLFVBQUEsS0FBSyxJQUFJLE9BQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsRUFBN0QsQ0FBNkQsRUFBQyxDQUFDO2lCQUMvSDthQUNGO1FBQ0gsQ0FBQyxFQUFDLENBQUM7UUFDSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOzs7OztJQUVPLGtEQUFtQjs7OztJQUEzQjtRQUNFLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU87Ozs7O1FBQUMsVUFBQyxJQUFJLEVBQUUsS0FBSztZQUMvQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxFQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7Ozs7O0lBQ0gsa0RBQW1COzs7O0lBQW5CO1FBQUEsaUJBd0JDO1FBdkJDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTzs7OztRQUFDLFVBQUMsaUJBQWlCOztnQkFDdkMsWUFBWSxHQUFRLEVBQUU7WUFDMUIsS0FBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQyxJQUFJO2dCQUMxQixpQkFBaUI7Z0JBQ2pCLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4TixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUU7b0JBQ2hELFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2lCQUNqSDtZQUNILENBQUMsRUFBQyxDQUFDO1lBQ0gsWUFBWSxDQUFDLFNBQVMsR0FBRyxLQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDOztnQkFDbEYsWUFBWSxHQUFHLEtBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUM5QyxLQUFJLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7WUFBQyxVQUFDLElBQUk7Z0JBQzFCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtvQkFDdEIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVM7Ozs7b0JBQUMsVUFBQSxLQUFLO3dCQUN0RCxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUM3RCxDQUFDLEVBQ0EsQ0FBQztpQkFDSDtZQUNILENBQUMsRUFBQyxDQUFDO1lBQ0gsS0FBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2hGLENBQUMsRUFBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFFRCwwQ0FBVzs7OztJQUFYLFVBQVksS0FBVztRQUNyQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQzdGLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRUQsNkNBQWM7Ozs7SUFBZCxVQUFlLEtBQVU7UUFDdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDbkcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxnQkFBZ0I7WUFDaEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO2dCQUMxSCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM1QjtZQUNELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHOzs7Ozs7OztJQUNILDJDQUFZOzs7Ozs7O0lBQVosVUFBYSxFQUFPLEVBQUUsS0FBVSxFQUFFLElBQVM7UUFDekMsSUFBSSxFQUFFLEVBQUU7WUFDTixFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2pCO0lBQ0gsQ0FBQzs7Ozs7SUFFTSw4Q0FBZTs7OztJQUF0QixVQUF1QixLQUFhO1FBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7Ozs7SUFFTSw2Q0FBYzs7OztJQUFyQixVQUFzQixLQUFhO1FBQ2pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQzs7Ozs7O0lBRU8sbURBQW9COzs7OztJQUE1QixVQUE2QixJQUFVO1FBQXZDLGlCQXdGQztRQXZGQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTs7b0JBQ3RELE9BQUssR0FBRyxJQUFJLENBQUMsS0FBSztnQkFDeEIsSUFBSSxPQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPOzs7OztvQkFBQyxVQUFDLElBQUksRUFBRSxLQUFLO3dCQUN4QyxLQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLHdCQUFRLEtBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsRUFBSyxPQUFLLENBQUMsS0FBSyxDQUFDLENBQUUsQ0FBQztvQkFDL0YsQ0FBQyxFQUFDLENBQUM7aUJBQ0o7cUJBQU0sSUFBSSxPQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7Ozs7d0JBR2hELFdBQVcsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSzs7d0JBQzVELFFBQVEsR0FBRyxDQUFDLENBQUM7b0JBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO3dCQUMzQyxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRTs0QkFDeEMsUUFBUSxHQUFHLENBQUMsQ0FBQzs0QkFDYixNQUFNO3lCQUNQO3FCQUNGO29CQUNELElBQUksUUFBUSxLQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztxQkFDbkc7b0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2lCQUNyRTtxQkFBTTs7Ozt3QkFHRCxjQUFZLEdBQUcsQ0FBQyxDQUFDOzt3QkFDakIsS0FBSyxHQUFHLENBQUM7b0JBQ2IsSUFBSSxPQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDdEIsY0FBWSxHQUFHLENBQUMsQ0FBQztxQkFDbEI7eUJBQU07d0JBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7NEJBQ3JDLElBQUksT0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxFQUFFO2dDQUNsQyxjQUFZLEdBQUcsQ0FBQyxDQUFDO2dDQUNqQixNQUFNOzZCQUNQOzRCQUNELEtBQUssRUFBRSxDQUFDO3lCQUNUO3FCQUNGO29CQUNELElBQUksY0FBWSxLQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUN2QixvRUFBb0U7d0JBQ3BFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTTs7Ozs7d0JBQUMsVUFBQyxJQUFJLEVBQUUsS0FBSzs0QkFDbkUsT0FBTyxLQUFLLEtBQUssS0FBSSxDQUFDLGdCQUFnQixDQUFDLGNBQVksQ0FBQyxDQUFDO3dCQUN2RCxDQUFDLEVBQUMsQ0FBQzt3QkFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLGNBQVksRUFBRSxDQUFDLENBQUMsQ0FBQzt3QkFDOUMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7NEJBQ3JELElBQUksQ0FBQyxJQUFJLGNBQVksRUFBRTtnQ0FDckIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7NkJBQzVCO3lCQUNGO3FCQUNGO3lCQUFNOzs7NEJBRUMsYUFBVyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzt3QkFDM0UsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNOzs7Ozt3QkFBQyxVQUFDLElBQUksRUFBRSxLQUFLOzRCQUNuRSxPQUFPLEtBQUssS0FBSyxhQUFXLENBQUM7d0JBQy9CLENBQUMsRUFBQyxDQUFDO3dCQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsQ0FBQztxQkFDN0I7aUJBQ0Y7YUFDRjtpQkFBTTtnQkFDTCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztpQkFDdEM7YUFDRjtTQUNGO2FBQU07WUFDTCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUN0QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUN0QztTQUNGO1FBRUQsTUFBTTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQztTQUNqRDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixpQ0FBaUM7Z0JBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQzthQUNqRDtpQkFBTTtnQkFDTCxrREFBa0Q7Z0JBQ2xELElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRTtvQkFDbEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3ZDO3FCQUFNO29CQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQztpQkFDakQ7YUFDRjtTQUNGO1FBQ0QsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Ozs7OztJQUVPLHdDQUFTOzs7OztJQUFqQixVQUFrQixJQUFxQjtRQUNyQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUU7WUFDeEMsT0FBTyxLQUFLLENBQUM7U0FDZDs7WUFDRyxRQUFRLEdBQUcsRUFBRTs7WUFDYixxQkFBcUIsR0FBRyxFQUFFO1FBQzlCLElBQUksQ0FBQyxPQUFPOzs7O1FBQUMsVUFBQyxJQUFJO1lBQ2hCLFVBQVU7WUFDVixzSEFBc0g7WUFDdEgsOENBQThDO1lBQzlDLElBQUk7WUFDSixRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUV6QiwyREFBMkQ7WUFDM0QsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQzNDLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLE9BQU87Ozs7Z0JBQUMsVUFBQSxTQUFTO29CQUNwQixJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRTt3QkFDNUYscUJBQXFCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDNUM7Z0JBQ0gsQ0FBQyxFQUFDLENBQUM7Z0JBQ0gsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUNwQyxNQUFNLHNGQUF3QixJQUFJLENBQUMsSUFBSSxvSUFBaUQsQ0FBQztpQkFDMUY7YUFDRjtRQUNILENBQUMsRUFBQyxDQUFDO1FBQ0gsYUFBYTtRQUNiLElBQUksaUJBQUksSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDakQsTUFBTSwrQkFBK0IsQ0FBQztTQUN2QztRQUNELGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Ozs7SUFFTSx5Q0FBVTs7O0lBQWpCO1FBQ0UsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7OztJQUVNLHdDQUFTOzs7SUFBaEI7UUFDRSxLQUFLO1FBQ0wsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3hCO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDOzs7Ozs7SUFFTSx5Q0FBVTs7Ozs7SUFBakIsVUFBa0IsUUFBYSxFQUFFLElBQVM7UUFDeEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Ozs7O0lBRU0sMENBQVc7Ozs7SUFBbEIsVUFBbUIsRUFBVTs7WUFDckIsUUFBUSxHQUFRLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQ2hELFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQixDQUFDOzs7Ozs7SUFHRCw2Q0FBYzs7Ozs7SUFBZCxVQUFlLElBQVksRUFBRSxRQUFnQjs7WUFDckMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQzdDLElBQUksV0FBVyxLQUFLLFNBQVMsRUFBRTtZQUM3QixPQUFPLFdBQVcsR0FBRyxFQUFFLElBQUksUUFBUSxDQUFDO1NBQ3JDOztZQUVLLElBQUksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLENBQUMsc0JBQXNCO1FBQzNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDOztZQUMxQixVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLElBQUksUUFBUTtRQUNwRCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQzVCLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBRUQsNENBQWE7Ozs7SUFBYixVQUFjLEdBQVE7UUFDcEIsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsRUFBRTtZQUNwQixPQUFPLEdBQUcsQ0FBQztTQUNaO2FBQU07WUFDTCxPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7Z0JBaGVGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsMHd1QkFBNkM7O2lCQUU5Qzs7OztnQkFUbUIsV0FBVztnQkFEVSxNQUFNOzs7K0JBWTVDLEtBQUs7NkJBQ0wsS0FBSzs0QkFDTCxLQUFLO2dDQUVMLEtBQUs7aUNBQ0wsS0FBSzt5QkFDTCxLQUFLOzhCQUNMLE1BQU07b0NBQ04sS0FBSzs0QkFRTCxLQUFLOzhCQUNMLEtBQUs7Z0NBQ0wsS0FBSzs7SUFsQm1CO1FBQWYsWUFBWSxFQUFFOzs4REFBK0I7SUFDOUI7UUFBZixZQUFZLEVBQUU7OzREQUE2QjtJQU81QjtRQUFmLFlBQVksRUFBRTs7bUVBQW9DO0lBUW5DO1FBQWYsWUFBWSxFQUFFOzsyREFBNEI7SUEyY3RELDJCQUFDO0NBQUEsQUFqZUQsSUFpZUM7U0E1ZFksb0JBQW9COzs7SUFDL0IsNENBQXVEOztJQUN2RCwwQ0FBcUQ7O0lBQ3JELHlDQUFvQzs7SUFFcEMsNkNBQTRCOztJQUM1Qiw4Q0FBMkQ7O0lBQzNELHNDQUEyRDs7SUFDM0QsMkNBQTJDOztJQUMzQyxpREFBNEQ7O0lBQzVELG1EQUFnQzs7SUFDaEMsa0RBQWdDOztJQUNoQyxtREFBK0I7O0lBQy9CLHVDQUFhOztJQUNiLDBDQUFtQjs7SUFHbkIseUNBQW9EOztJQUNwRCwyQ0FBOEM7O0lBQzlDLDZDQUE0Qzs7SUFDNUMsK0NBQXFCOztJQUVyQix3Q0FBMEI7O0lBQzFCLHlDQUFrQjs7SUFDbEIsa0RBQTZCOztJQUM3Qix3REFBbUM7O0lBQ25DLGdEQUFxQzs7SUFDckMsNENBQThCOztJQUM5Qix5Q0FBMkI7Ozs7O0lBbWEzQiw4Q0FBd0Q7Ozs7O0lBamE1QyxrQ0FBdUI7Ozs7O0lBQ2pDLHNDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgTmdab25lLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUFycmF5LCBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgcm91bmQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSW5wdXRCb29sZWFuIH0gZnJvbSAnbmctem9ycm8tYW50ZCc7XG5pbXBvcnQgeyBUb3RhbE9wdGlvbiB9IGZyb20gJy4uL2hkLWRldGFpbC1saW5lcy9oZC1kZXRhaWwtbGluZXMuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JtTGluZSB9IGZyb20gJy4vaGQtZm9ybS1saW5lcy5zZXJ2aWNlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hkLWZvcm0tbGluZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vaGQtZm9ybS1saW5lcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2hkLWZvcm0tbGluZXMuY29tcG9uZW50Lmxlc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBIZEZvcm1MaW5lc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSB0YWJsZUxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dTZWFyY2g6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZm9ybUxpbmVzOiBBcnJheTxGb3JtTGluZT47XG4gIC8vIOmSiOWvuWZvcm1MaW5lc+mHjOmdouaJgOacieeahG5hbWXvvIxcbiAgQElucHV0KCkgZm9ybUxpbmVzRGF0YTogYW55O1xuICBASW5wdXQoKSBvcGVyYXRlQnV0dG9uczogQXJyYXk8c3RyaW5nPiA9IFsnYWRkJywgJ2RlbGV0ZSddO1xuICBASW5wdXQoKSBzY3JvbGw6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nOyB9ID0geyB4OiAnMXB4JyB9O1xuICBAT3V0cHV0KCkgY2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93RGVsZXRlQ29uZmlybTogYm9vbGVhbiA9IGZhbHNlO1xuICBwYWdpbmF0aW9uUGFnZUluZGV4OiBudW1iZXIgPSAxO1xuICBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlciA9IDEwO1xuICB2YWxpZGF0ZUhkRm9ybUxpbmVzOiBGb3JtR3JvdXA7XG4gIG5ld0xpbmU6IGFueTtcbiAgaW5wdXRWYWx1ZTogc3RyaW5nO1xuXG4gIC8vIOWQiOiuoeWMuuWfn1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd1RvdGFsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRvdGFsT3B0aW9uOiBBcnJheTxUb3RhbE9wdGlvbj4gPSBbXTtcbiAgQElucHV0KCkgY29sdW1uc051bWJlcjogbnVtYmVyIHwgc3RyaW5nID0gMDtcbiAgdG90YWxPcHRpb25MaXN0ID0gW107XG5cbiAgc2hvd0Zvcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmlsdGVyU3RyOiBzdHJpbmc7XG4gIHN0b3JlRm9ybUxpbmVzRGF0YTogYW55ID0gW107IC8vIOe8k+WtmOeahOaAu+eahOihqOWNleaVsOaNrlxuICBmaWx0ZXJTdG9yZUZvcm1MaW5lc0RhdGE6IGFueSA9IFtdOyAvLyDnrZvpgInlh7rmnaXnmoTmlbDmja7liJfooahcbiAgZmlsdGVySW5kZXhTdG9yZTogQXJyYXk8bnVtYmVyPiA9IFtdOyAvLyDnrZvpgInlh7rmnaXnmoTmlbDmja7lnKjljp/lp4vliJfooajkuK3nmoTkuIvmoIdcbiAgaXNGaWx0ZXJEYXRhOiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuaYr+W3sue7j+etm+mAiei/h+eahOaVsOaNrlxuICBmb3JtVmFsaWQ6IGJvb2xlYW4gPSBmYWxzZTsgLy8g6KGo5Y2V5b2T5YmN55qE54q25oCBXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkgeyB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8g57yT5a2Y5LiA5LiL5oC755qE6KGo5Y2V5pWw5o2uXG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSB0aGlzLmZvcm1MaW5lc0RhdGE7XG4gICAgdGhpcy5pbml0KCk7XG4gIH1cblxuICBnZXQgbGluZXNGb3JtQXJyYXkoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWxpZGF0ZUhkRm9ybUxpbmVzLmdldCgnbGluZXMnKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBnZXQgTG9kYXNoUm91bmQoKSB7XG4gICAgcmV0dXJuIHJvdW5kO1xuICB9XG5cbiAgLy8g5pq06Zyy55qE5pa55rOV77yM55So5LqO6I635Y+W5omA5pyJ5pWw5o2u55qEdmFsaWTnirbmgIFcbiAgcHVibGljIGdldFZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm1WYWxpZDtcbiAgfVxuXG4gIGlubmVyR2V0VmFsaWQoKSB7XG4gICAgbGV0IHRtcFZhbGlkYXRlSGRGb3JtTGluZXMgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICdsaW5lcyc6IHRoaXMuZmIuYXJyYXkoW10pXG4gICAgfSk7XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZm9yRWFjaCgoZm9ybUxpbmVzRGF0YUl0ZW0pID0+IHtcbiAgICAgIGxldCBmb3JtR3JvdXBPYmo6IGFueSA9IHt9O1xuICAgICAgdGhpcy5mb3JtTGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAvLyDmlrDlop7ooYwg5Yid5aeL5pWw5o2u6YO95Li6bnVsbFxuICAgICAgICBmb3JtR3JvdXBPYmpbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtTGluZXNEYXRhSXRlbVtpdGVtLm5hbWVdID09PSAwID8gMCA6IChmb3JtTGluZXNEYXRhSXRlbVtpdGVtLm5hbWVdIHx8IGl0ZW0udmFsdWUgfHwgbnVsbCksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgaWYgKGl0ZW0uc2VsZWN0T3B0aW9uICYmIGl0ZW0uc2VsZWN0T3B0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgZm9ybUdyb3VwT2JqW2l0ZW0uc2VsZWN0T3B0aW9uLmxhYmVsXSA9IHRoaXMuZmIuY29udHJvbChmb3JtTGluZXNEYXRhSXRlbVtpdGVtLnNlbGVjdE9wdGlvbi5sYWJlbF0gfHwgbnVsbCwgW10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGZvcm1Hcm91cE9iai5saW5lSW5kZXggPSB0aGlzLmZiLmNvbnRyb2woKHRtcFZhbGlkYXRlSGRGb3JtTGluZXMuZ2V0KCdsaW5lcycpIGFzIEZvcm1BcnJheSkuY29udHJvbHMubGVuZ3RoLCBbXSk7XG4gICAgICBsZXQgZm9ybUdyb3VwVG1wID0gdGhpcy5mYi5ncm91cChmb3JtR3JvdXBPYmopO1xuICAgICAgdGhpcy5mb3JtTGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgZm9ybUdyb3VwVG1wLmdldChpdGVtLm5hbWUpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSwgZm9ybUdyb3VwVG1wKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgKHRtcFZhbGlkYXRlSGRGb3JtTGluZXMuZ2V0KCdsaW5lcycpIGFzIEZvcm1BcnJheSkuaW5zZXJ0KCh0bXBWYWxpZGF0ZUhkRm9ybUxpbmVzLmdldCgnbGluZXMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLmxlbmd0aCwgZm9ybUdyb3VwVG1wKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdG1wVmFsaWRhdGVIZEZvcm1MaW5lcy52YWxpZDtcbiAgfVxuXG4gIC8vIOaatOmcsueahOaWueazle+8jOeUqOS6juiOt+WPluaJgOacieaVsOaNrlxuICBwdWJsaWMgZ2V0TGluZXMoKSB7XG4gICAgbGV0IGFsbExpbmVzID0gW107XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZm9yRWFjaCgoZm9ybUxpbmVzRGF0YUl0ZW0pID0+IHtcbiAgICAgIGxldCBmb3JtR3JvdXBPYmo6IGFueSA9IHt9O1xuICAgICAgdGhpcy5mb3JtTGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAvLyDmlrDlop7ooYwg5Yid5aeL5pWw5o2u6YO95Li6bnVsbFxuICAgICAgICBmb3JtR3JvdXBPYmpbaXRlbS5uYW1lXSA9IGZvcm1MaW5lc0RhdGFJdGVtW2l0ZW0ubmFtZV07XG4gICAgICB9KTtcbiAgICAgIGZvcm1Hcm91cE9iai5saW5lSW5kZXggPSBmb3JtTGluZXNEYXRhSXRlbS5saW5lSW5kZXg7XG4gICAgICBhbGxMaW5lcy5wdXNoKGZvcm1Hcm91cE9iaik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFsbExpbmVzO1xuICB9XG5cbiAgLy8g5YWo5bGA5oCn55qE5pCc57Si77yI5ra155uW6aG16Z2i5LiK5omA5pyJ55qE5Y+v6KeG5paH5a2X77yJXG4gIHNlYXJjaExpbmVzKCkge1xuICAgIGlmICh0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICAvLyDlpoLmnpzmsqHmnInovpPlhaXmkJzntKLlrZfnrKbkuLLvvIzliJnmmL7npLrnvJPlrZjlhoXnmoTmiYDmnInmlbDmja5cbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RyKSB7XG4gICAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRTdG9yZURhdGEoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmZpbHRlclN0ci50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJJbmRleFN0b3JlID0gW107XG5cbiAgICAvLyDmoLnmja7mkJzntKLlrZfnrKbkuLLov4fmu6TmlbDmja5cbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5maWx0ZXIoKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZm9ybUxpbmVzKSB7XG4gICAgICAgIGlmICgoaXRlbS5oaWRlICYmIGl0ZW0uY2FuU2VhcmNoKSB8fCAoIWl0ZW0uaGlkZSAmJiBpdGVtLm5hbWUgIT09ICd1dWlkJykpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFbaXRlbS5uYW1lXSA/IGRhdGFbaXRlbS5uYW1lXS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmUucHVzaChpbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICAvLyDnvJPlrZjkuIDkuIvnrZvpgInlkI7nmoTooajljZXmlbDmja5cbiAgICB0aGlzLmZpbHRlclN0b3JlRm9ybUxpbmVzRGF0YSA9IGZpbHRlcmVkRGF0YTtcbiAgICAvLyDlpITnkIbnrZvpgInlpb3nmoTmlbDmja4g54S25ZCO6YeN5paw5riy5p+TXG4gICAgdGhpcy5mb3JtTGluZXNEYXRhID0gZmlsdGVyZWREYXRhO1xuICAgIHRoaXMuaW5pdCh0cnVlKTtcbiAgfVxuXG4gIHNldFN0b3JlRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1MaW5lc0RhdGEgPSB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YTtcbiAgICB0aGlzLmluaXQodHJ1ZSk7XG4gIH1cblxuICBnZXRTdHlsZShsaW5lOiBGb3JtR3JvdXAsIGZvcm1JdGVtOiBhbnksIHdpZHRoOiBzdHJpbmcpIHtcbiAgICBsZXQgc3R5bGVPYmogPSB7XG4gICAgICAnbWluLXdpZHRoJzogd2lkdGhcbiAgICB9O1xuICAgIGlmIChmb3JtSXRlbS5zdHlsZSkge1xuICAgICAgc3R5bGVPYmogPSB7IC4uLnN0eWxlT2JqLCAuLi5mb3JtSXRlbS5zdHlsZSB9O1xuICAgIH1cbiAgICBpZiAoZm9ybUl0ZW0uY29sb3JPcHRpb24gJiYgZm9ybUl0ZW0uY29sb3JPcHRpb24ubmFtZSAmJiBsaW5lLmdldChmb3JtSXRlbS5jb2xvck9wdGlvbi5uYW1lKS52YWx1ZSkge1xuICAgICAgc3R5bGVPYmogPSB7IC4uLnN0eWxlT2JqLCAuLi57ICdjb2xvcic6IGxpbmUuZ2V0KGZvcm1JdGVtLmNvbG9yT3B0aW9uLm5hbWUpLnZhbHVlIH0gfTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlT2JqO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydmb3JtTGluZXNEYXRhJ10gJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1snZm9ybUxpbmVzRGF0YSddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaW5lc0RhdGEnXS5wcmV2aW91c1ZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhICYmIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IHRoaXMuZm9ybUxpbmVzRGF0YTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndG90YWxPcHRpb24nXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWyd0b3RhbE9wdGlvbiddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3RvdGFsT3B0aW9uJ10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVUb3RhbCgpIHtcbiAgICAvLyDov5nph4zlpITnkIblkIjorqHmlbDmja5cbiAgICBpZiAodGhpcy5zaG93VG90YWwpIHtcbiAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0ID0gbmV3IEFycmF5KE51bWJlcih0aGlzLmNvbHVtbnNOdW1iZXIpIC0gMSkuZmlsbCgnJyk7XG4gICAgICB0aGlzLnRvdGFsT3B0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmluc2VydEluZGV4ICYmIChpdGVtLmluc2VydFZhbHVlIHx8IGl0ZW0uaW5zZXJ0VmFsdWUgPT09IDApKSB7XG4gICAgICAgICAgdGhpcy50b3RhbE9wdGlvbkxpc3RbaXRlbS5pbnNlcnRJbmRleCAtIDFdID0ge1xuICAgICAgICAgICAgdmFsdWU6IGl0ZW0uaW5zZXJ0VmFsdWUsXG4gICAgICAgICAgICBhbGlnbjogaXRlbS5hbGlnbiB8fCAnbGVmdCcsXG4gICAgICAgICAgICBzaG93RGVjaW1hbDogaXRlbS5zaG93RGVjaW1hbCB8fCBmYWxzZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdChpc0VkaXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VJbmRleCA9IDE7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaW5lcykpIHtcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIC8vIOWmguaenOayoeaciWZvcm1MaW5lc0RhdGHvvIzliJnorqTkuLrmmK/mlrDlop5cbiAgICBpZiAoIWlzRWRpdCAmJiAoIXRoaXMuZm9ybUxpbmVzRGF0YSB8fCAodGhpcy5mb3JtTGluZXNEYXRhICYmIHRoaXMuZm9ybUxpbmVzRGF0YS5sZW5ndGggPT09IDApKSkge1xuICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWRkRm9ybUxpbmUoKTtcbiAgICAgIHRoaXMuc2hvd0Zvcm0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyDnvJbovpHpgLvovpFcbiAgICAgIHRoaXMuYWRkRm9ybUxpbmVXaXRoRGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtTGluZXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShkYXRhID0+IHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YSkpO1xuICAgIHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIOWIm+W7uuihqOWNlVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcyA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgJ2xpbmVzJzogdGhpcy5mYi5hcnJheShbXSlcbiAgICB9KTtcbiAgICB0aGlzLm5ld0xpbmUgPSB0aGlzLm5ld0xpbmVJdGVtKCk7XG4gIH1cblxuICAvKipcbiAgKiDlrprkuYnnqbrnmoRuZXdMaW5lSXRlbSDnu5PmnoRcbiAgKi9cbiAgcHJpdmF0ZSBuZXdMaW5lSXRlbSgpOiBGb3JtR3JvdXAge1xuICAgIGxldCBmb3JtR3JvdXBPYmo6IGFueSA9IHt9O1xuICAgIHRoaXMuZm9ybUxpbmVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vIOaWsOWinuihjCDliJ3lp4vmlbDmja7pg73kuLpudWxsXG4gICAgICBmb3JtR3JvdXBPYmpbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9IHx8IG51bGwsIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgIH0pO1xuICAgIGZvcm1Hcm91cE9iai5saW5lSW5kZXggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5saW5lc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGgsIFtdKTtcbiAgICAvLyDnlKjmnaXmoIfor4bmmK/lkKbmmK/mkJzntKLnirbmgIHkuIvmlrDlop7nmoTooYxcbiAgICBmb3JtR3JvdXBPYmouaXNIZEZvcm1MaW5lU2VhcmNoQWRkID0gdGhpcy5mYi5jb250cm9sKHRoaXMuaXNGaWx0ZXJEYXRhLCBbXSk7XG4gICAgbGV0IGZvcm1Hcm91cFN1Ym1pdCA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwT2JqKTtcbiAgICB0aGlzLmZvcm1MaW5lcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBmb3JtR3JvdXBTdWJtaXQuZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlLCBmb3JtR3JvdXBTdWJtaXQpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBmb3JtR3JvdXBTdWJtaXQ7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUxpbmVOdW1iZXIoKSB7XG4gICAgdGhpcy5saW5lc0Zvcm1BcnJheS5jb250cm9scy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgaXRlbS5nZXQoJ2xpbmVJbmRleCcpLnNldFZhbHVlKGluZGV4ICsgMSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOe8lui+keeahOaXtuWAmeaVsOaNruWkhOeQhlxuICAgKi9cbiAgYWRkRm9ybUxpbmVXaXRoRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1MaW5lc0RhdGEuZm9yRWFjaCgoZm9ybUxpbmVzRGF0YUl0ZW0pID0+IHtcbiAgICAgIGxldCBmb3JtR3JvdXBPYmo6IGFueSA9IHt9O1xuICAgICAgdGhpcy5mb3JtTGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAvLyDmlrDlop7ooYwg5Yid5aeL5pWw5o2u6YO95Li6bnVsbFxuICAgICAgICBmb3JtR3JvdXBPYmpbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBmb3JtTGluZXNEYXRhSXRlbVtpdGVtLm5hbWVdID09PSAwID8gMCA6IChmb3JtTGluZXNEYXRhSXRlbVtpdGVtLm5hbWVdIHx8IGl0ZW0udmFsdWUgfHwgbnVsbCksIGRpc2FibGVkOiBpdGVtLmRpc2FibGVkIH0sIGl0ZW0ucmVxdWlyZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdKTtcbiAgICAgICAgaWYgKGl0ZW0uc2VsZWN0T3B0aW9uICYmIGl0ZW0uc2VsZWN0T3B0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgZm9ybUdyb3VwT2JqW2l0ZW0uc2VsZWN0T3B0aW9uLmxhYmVsXSA9IHRoaXMuZmIuY29udHJvbChmb3JtTGluZXNEYXRhSXRlbVtpdGVtLnNlbGVjdE9wdGlvbi5sYWJlbF0gfHwgbnVsbCwgW10pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGZvcm1Hcm91cE9iai5saW5lSW5kZXggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5saW5lc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggKyAxLCBbXSk7XG4gICAgICBsZXQgZm9ybUdyb3VwVG1wID0gdGhpcy5mYi5ncm91cChmb3JtR3JvdXBPYmopO1xuICAgICAgdGhpcy5mb3JtTGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgICAgZm9ybUdyb3VwVG1wLmdldChpdGVtLm5hbWUpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSwgZm9ybUdyb3VwVG1wKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmxpbmVzRm9ybUFycmF5Lmluc2VydCh0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCwgZm9ybUdyb3VwVG1wKTtcbiAgICB9KTtcbiAgICB0aGlzLnRhYmxlTG9hZGluZyA9IGZhbHNlO1xuICAgIHRoaXMuc2hvd0Zvcm0gPSB0cnVlO1xuICB9XG5cbiAgYWRkRm9ybUxpbmUoaW5kZXg/OiBhbnkpIHtcbiAgICB0aGlzLmxpbmVzRm9ybUFycmF5Lmluc2VydChpbmRleCB8fCB0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCwgdGhpcy5uZXdMaW5lSXRlbSgpKTtcbiAgICB0aGlzLmNhbGN1bGF0ZUxpbmVOdW1iZXIoKTtcbiAgfVxuXG4gIGRlbGV0ZUZvcm1MaW5lKGluZGV4OiBhbnkpIHtcbiAgICB0aGlzLmxpbmVzRm9ybUFycmF5LnJlbW92ZUF0KGluZGV4IC0gMSk7XG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSAmJiB0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzICYmIHRoaXMubGluZXNGb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFkZEZvcm1MaW5lKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIOWIoOmZpOWwvumhteeahOacgOWQjuS4gOS4quWFg+e0oOWKqOS9nFxuICAgICAgaWYgKHRoaXMucGFnaW5hdGlvblBhZ2VJbmRleCAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID09PSAodGhpcy5saW5lc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggKyB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSkpIHtcbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uUGFnZUluZGV4LS07XG4gICAgICB9XG4gICAgICB0aGlzLmNhbGN1bGF0ZUxpbmVOdW1iZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIGZuIOeItue7hOS7tuWHveaVsFxuICAgKiBAcGFyYW0gZXZlbnQg5LqL5Lu25YC8XG4gICAqIEBwYXJhbSBsaW5lIOinpuWPkeeahOihjFxuICAgKi9cbiAgdHJpZ2dlckV2ZW50KGZuOiBhbnksIGV2ZW50OiBhbnksIGxpbmU6IGFueSkge1xuICAgIGlmIChmbikge1xuICAgICAgZm4oZXZlbnQsIGxpbmUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwYWdlSW5kZXhDaGFuZ2UoZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VJbmRleCA9IGV2ZW50O1xuICB9XG5cbiAgcHVibGljIHBhZ2VTaXplQ2hhbmdlKGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IGV2ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBvbkhkRm9ybVZhbHVlQ2hhbmdlZChkYXRhPzogYW55KSB7XG4gICAgaWYgKHRoaXMuaXNGaWx0ZXJEYXRhKSB7XG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLmxpbmVzICYmIHRoaXMuZmlsdGVySW5kZXhTdG9yZS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgY29uc3QgbGluZXMgPSBkYXRhLmxpbmVzO1xuICAgICAgICBpZiAobGluZXMubGVuZ3RoID09PSB0aGlzLmZpbHRlckluZGV4U3RvcmUubGVuZ3RoKSB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJJbmRleFN0b3JlLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YVtpdGVtXSA9IHsgLi4udGhpcy5maWx0ZXJTdG9yZUZvcm1MaW5lc0RhdGFbaW5kZXhdLCAuLi5saW5lc1tpbmRleF0gfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmIChsaW5lcy5sZW5ndGggPiB0aGlzLmZpbHRlckluZGV4U3RvcmUubGVuZ3RoKSB7XG4gICAgICAgICAgLy8g5pyJ5paw5aKe5pWw5o2u55qE5oOF5Ya1XG4gICAgICAgICAgLy8gc3RlcCAxOiDlhYjmib7mlrDlop7nmoRpbmRleOS4i+agh1xuICAgICAgICAgIGNvbnN0IGdldE5vd0xpbmVzID0gdGhpcy52YWxpZGF0ZUhkRm9ybUxpbmVzLmdldFJhd1ZhbHVlKCkubGluZXM7XG4gICAgICAgICAgbGV0IGFkZEluZGV4ID0gLTE7XG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBnZXROb3dMaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGdldE5vd0xpbmVzW2ldLmlzSGRGb3JtTGluZVNlYXJjaEFkZCkge1xuICAgICAgICAgICAgICBhZGRJbmRleCA9IGk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoYWRkSW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5zcGxpY2UodGhpcy5maWx0ZXJJbmRleFN0b3JlW2FkZEluZGV4IC0gMV0gKyAxLCAwLCBnZXROb3dMaW5lc1thZGRJbmRleF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmUucHVzaCh0aGlzLmZpbHRlckluZGV4U3RvcmVbYWRkSW5kZXggLSAxXSArIDEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIOacieWIoOmZpOaVsOaNrueahOaDheWGtVxuICAgICAgICAgIC8vIHN0ZXAgMTrlhYjmib7liLDliKDpmaTnmoRpbmRleOS4i+agh1xuICAgICAgICAgIGxldCBkZWxldGVkSW5kZXggPSAtMTtcbiAgICAgICAgICBsZXQgY291bnQgPSAwO1xuICAgICAgICAgIGlmIChsaW5lcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGRlbGV0ZWRJbmRleCA9IDA7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgaWYgKGxpbmVzW2ldLmxpbmVJbmRleCAtIGNvdW50ID4gMSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZWRJbmRleCA9IGk7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRlbGV0ZWRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIC8vIHN0ZXAgMjog5Yig6Zmk5oC75pWw5o2u5Lit55qE5a+55bqU5pWw5o2uLCDmiorkuIvmoIfmlbDnu4TlkoxsaW5lc+mVv+W6puWvuem9kO+8jOWQjOaXtuaKiuS4i+agh+aVsOe7hOWcqGRlbGV0ZWRJbmRleOWQjumdoueahOWAvOWFqOmDvS0xXG4gICAgICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgcmV0dXJuIGluZGV4ICE9PSB0aGlzLmZpbHRlckluZGV4U3RvcmVbZGVsZXRlZEluZGV4XTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJJbmRleFN0b3JlLnNwbGljZShkZWxldGVkSW5kZXgsIDEpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmZpbHRlckluZGV4U3RvcmUubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgaWYgKGkgPj0gZGVsZXRlZEluZGV4KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJJbmRleFN0b3JlW2ldLS07XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc3RlcCAyOiDmsqHmnInmib7liLBkZWxldGVkSW5kZXjor7TmmI7liKDpmaTmk43kvZzlnKjmnIDlkI7kuIDooYxcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlckluZGV4ID0gdGhpcy5maWx0ZXJJbmRleFN0b3JlW3RoaXMuZmlsdGVySW5kZXhTdG9yZS5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IGZpbHRlckluZGV4O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmUucG9wKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGF0YSAmJiBkYXRhLmxpbmVzKSB7XG4gICAgICAgICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBkYXRhLmxpbmVzO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEubGluZXMpIHtcbiAgICAgICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSBkYXRhLmxpbmVzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIOaAu+ihqOWNlVxuICAgIGlmICghdGhpcy5pc0ZpbHRlckRhdGEpIHtcbiAgICAgIHRoaXMuZm9ybVZhbGlkID0gdGhpcy52YWxpZGF0ZUhkRm9ybUxpbmVzLnZhbGlkO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5mb3JtVmFsaWQpIHtcbiAgICAgICAgLy8g5aaC5p6c5pW05L2T6KGo5Y2V5pivdHJ1Ze+8jOS4jeeuoeWtkOihqOWNleaYr+S7gOS5iO+8jOmDveWPmOaIkOWtkOihqOWNleeahOeKtuaAgVxuICAgICAgICB0aGlzLmZvcm1WYWxpZCA9IHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcy52YWxpZDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIOWmguaenOaVtOS9k+ihqOWNleaYr2ZhbHNl77yaMeOAgeWtkOihqOWNleS4unRydWXvvIzpnIDopoHph43nrpfvvJsy44CB5a2Q6KGo5Y2V5Li6ZmFsc2XvvIznlKjlrZDooajljZXnirbmgIFcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcy52YWxpZCkge1xuICAgICAgICAgIHRoaXMuZm9ybVZhbGlkID0gdGhpcy5pbm5lckdldFZhbGlkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsaWQgPSB0aGlzLnZhbGlkYXRlSGRGb3JtTGluZXMudmFsaWQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gdGhpcy5jYWxjdWxhdGVMaW5lTnVtYmVyKCk7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcyk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTGlzdChsaXN0OiBBcnJheTxGb3JtTGluZT4pOiBib29sZWFuIHtcbiAgICBpZiAoIWxpc3QgfHwgKGxpc3QgJiYgbGlzdC5sZW5ndGggPT09IDApKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGxldCBuYW1lTGlzdCA9IFtdO1xuICAgIGxldCBzZWxlY3RPcHRpb25DaGVja0xpc3QgPSBbXTtcbiAgICBsaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vIOagoemqjOWNlemhuemAieaLqeWZqFxuICAgICAgLy8gaWYgKGl0ZW0udHlwZSA9PT0gRm9ybUxpbmVUeXBlLlNlbGVjdCAmJiAoIWl0ZW0uc2VsZWN0TGlzdCB8fCAoaXRlbS5zZWxlY3RMaXN0ICYmIGl0ZW0uc2VsZWN0TGlzdC5sZW5ndGggPT09IDApKSkge1xuICAgICAgLy8gICB0aHJvdyAnZm9ybUxpbmVz57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2Y5Zyo5Y2V6aG56YCJ5oup5Zmo5rKh5pyJ5Lyg5YWl6YCJ6aG5ISdcbiAgICAgIC8vIH1cbiAgICAgIG5hbWVMaXN0LnB1c2goaXRlbS5uYW1lKTtcblxuICAgICAgLy8g5qCh6aqM5pyJb25TZWFyY2jnmoTlrZfmrrXnmoRzZWxlY3RPcHRpb27nmoR2YWx1ZeOAgWxhYmVs5piv5ZCm5ZyoZm9ybUxpbmXph4zpnaLpg73lrprkuYnkuoZcbiAgICAgIGlmIChpdGVtLm9uU2VhcmNoRXZlbnQgJiYgaXRlbS5zZWxlY3RPcHRpb24pIHtcbiAgICAgICAgc2VsZWN0T3B0aW9uQ2hlY2tMaXN0ID0gW107XG4gICAgICAgIGxpc3QuZm9yRWFjaChpbm5lckl0ZW0gPT4ge1xuICAgICAgICAgIGlmIChpbm5lckl0ZW0ubmFtZSA9PT0gaXRlbS5zZWxlY3RPcHRpb24udmFsdWUgfHwgaW5uZXJJdGVtLm5hbWUgPT09IGl0ZW0uc2VsZWN0T3B0aW9uLmxhYmVsKSB7XG4gICAgICAgICAgICBzZWxlY3RPcHRpb25DaGVja0xpc3QucHVzaChpbm5lckl0ZW0ubmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNlbGVjdE9wdGlvbkNoZWNrTGlzdC5sZW5ndGggPCAyKSB7XG4gICAgICAgICAgdGhyb3cgYGZvcm1MaW5lc+e7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtl+autSR7aXRlbS5uYW1lfeeahHNlbGVjdE9wdGlvbueahHZhbHVl44CBbGFiZWzlrZfmrrXmnKrog73lnKhmb3JtTGluZXPkuK3mib7liLDlr7nlupTlrZfmrrXvvIFgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgLy8g5qCh6aqMbmFtZeaYr+WQpumHjeWkjVxuICAgIGlmIChbLi4ubmV3IFNldChuYW1lTGlzdCldLmxlbmd0aCAhPT0gbGlzdC5sZW5ndGgpIHtcbiAgICAgIHRocm93ICdmb3JtTGluZXPnu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIPvvIzlrZjlnKjph43lpI1uYW1l5YC8ISc7XG4gICAgfVxuICAgIC8vIC4uLm1vcmUgY2hlY2tcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlRXZlbnQuZW1pdCh0aGlzLnZhbGlkYXRlSGRGb3JtTGluZXMuZ2V0UmF3VmFsdWUoKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRGb3JtKCk6IHZvaWQge1xuICAgIC8vIOWIoOmZpFxuICAgIGZvciAobGV0IGkgPSB0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aDsgaSA+PSAwOyBpLS0pIHtcbiAgICAgIHRoaXMuZGVsZXRlRm9ybUxpbmUoaSk7XG4gICAgfVxuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VJbmRleCA9IDE7XG4gIH1cblxuICBwdWJsaWMgaW5wdXRDbGVhbihmb3JtSXRlbTogYW55LCBsaW5lOiBhbnkpOiB2b2lkIHtcbiAgICBsaW5lLmdldChmb3JtSXRlbS5uYW1lKS5zZXRWYWx1ZShudWxsKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RWYWx1ZShpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXREb206IGFueSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoaWQpO1xuICAgIGlucHV0RG9tLnNlbGVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0ZXh0V2lkdGhDYWNoZTogeyBba2V5OiBzdHJpbmddOiBudW1iZXI7IH0gPSB7fTtcbiAgaXNUZXh0T3ZlcmZsb3codGV4dDogc3RyaW5nLCBtYXhXaWR0aDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY2FjaGVkV2lkdGggPSB0aGlzLnRleHRXaWR0aENhY2hlW3RleHRdO1xuICAgIGlmIChjYWNoZWRXaWR0aCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gY2FjaGVkV2lkdGggKyAxNSA+PSBtYXhXaWR0aDtcbiAgICB9XG5cbiAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgIHNwYW4uc3R5bGUudmlzaWJpbGl0eSA9ICdoaWRkZW4nO1xuICAgIHNwYW4uc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHNwYW4uc3R5bGUud2hpdGVTcGFjZSA9ICdub3dyYXAnO1xuICAgIHNwYW4uc3R5bGUuZm9udFNpemUgPSAnMTJweCc7XG4gICAgc3Bhbi5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZS1ibG9jayc7IC8vIOWwhuagt+W8j+S/ruaUueS4uiBpbmxpbmUtYmxvY2tcbiAgICBzcGFuLmlubmVyVGV4dCA9IHRleHQ7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzcGFuKTtcbiAgICBjb25zdCBpc092ZXJmbG93ID0gc3Bhbi5vZmZzZXRXaWR0aCArIDE1ID49IG1heFdpZHRoO1xuICAgIHRoaXMudGV4dFdpZHRoQ2FjaGVbdGV4dF0gPSBzcGFuLm9mZnNldFdpZHRoO1xuICAgIHNwYW4uc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHNwYW4pO1xuICAgIHJldHVybiBpc092ZXJmbG93O1xuICB9XG5cbiAganVkZ2VDb2xFbXB0eShzdHI6IGFueSkge1xuICAgIGlmIChzdHIgfHwgc3RyID09PSAwKSB7XG4gICAgICByZXR1cm4gc3RyO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJzznqbo+JztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
981
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS1saW5lcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9mYW50YXN5LW5nem9ycm8vIiwic291cmNlcyI6WyJoZC1mb3JtLWxpbmVzL2hkLWZvcm0tbGluZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBYSxXQUFXLEVBQWEsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0UsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5QztJQW1DRSw4QkFBb0IsRUFBZSxFQUN6QixNQUFjO1FBREosT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUN6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBOUJDLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBQzlCLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFJNUMsbUJBQWMsR0FBa0IsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEQsV0FBTSxHQUErQixFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNqRCxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBQzVELHdCQUFtQixHQUFXLENBQUMsQ0FBQztRQUNoQyx1QkFBa0IsR0FBVyxFQUFFLENBQUM7O1FBTVAsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQyxnQkFBVyxHQUF1QixFQUFFLENBQUM7UUFDckMsa0JBQWEsR0FBb0IsQ0FBQyxDQUFDO1FBQzVDLG9CQUFlLEdBQUcsRUFBRSxDQUFDO1FBRXJCLGFB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SUFFckIsd0NBQTBCOztJQUMxQix5Q0FBa0I7O0lBQ2xCLGtEQUE2Qjs7SUFDN0Isd0RBQW1DOztJQUNuQyxnREFBcUM7O0lBQ3JDLDRDQUE4Qjs7SUFDOUIseUNBQTJCOzs7OztJQXNiM0IsOENBQXdEOzs7OztJQXBiNUMsa0NBQXVCOzs7OztJQUNqQyxzQ0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE5nWm9uZSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHJvdW5kIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElucHV0Qm9vbGVhbiB9IGZyb20gJ25nLXpvcnJvLWFudGQnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVG90YWxPcHRpb24gfSBmcm9tICcuLi9oZC1kZXRhaWwtbGluZXMvaGQtZGV0YWlsLWxpbmVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUxpbmUgfSBmcm9tICcuL2hkLWZvcm0tbGluZXMuc2VydmljZSc7XG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdoZC1mb3JtLWxpbmVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2hkLWZvcm0tbGluZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9oZC1mb3JtLWxpbmVzLmNvbXBvbmVudC5sZXNzJ11cbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtTGluZXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgdGFibGVMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBzaG93U2VhcmNoOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGZvcm1MaW5lczogQXJyYXk8Rm9ybUxpbmU+O1xuICAvLyDpkojlr7lmb3JtTGluZXPph4zpnaLmiYDmnInnmoRuYW1l77yMXG4gIEBJbnB1dCgpIGZvcm1MaW5lc0RhdGE6IGFueTtcbiAgQElucHV0KCkgb3BlcmF0ZUJ1dHRvbnM6IEFycmF5PHN0cmluZz4gPSBbJ2FkZCcsICdkZWxldGUnXTtcbiAgQElucHV0KCkgc2Nyb2xsOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZzsgfSA9IHsgeDogJzFweCcgfTtcbiAgQE91dHB1dCgpIGNoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgc2hvd0RlbGV0ZUNvbmZpcm06IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGFnaW5hdGlvblBhZ2VJbmRleDogbnVtYmVyID0gMTtcbiAgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXIgPSAxMDtcbiAgdmFsaWRhdGVIZEZvcm1MaW5lczogRm9ybUdyb3VwO1xuICBuZXdMaW5lOiBhbnk7XG4gIGlucHV0VmFsdWU6IHN0cmluZztcblxuICAvLyDlkIjorqHljLrln59cbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIHNob3dUb3RhbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSB0b3RhbE9wdGlvbjogQXJyYXk8VG90YWxPcHRpb24+ID0gW107XG4gIEBJbnB1dCgpIGNvbHVtbnNOdW1iZXI6IG51bWJlciB8IHN0cmluZyA9IDA7XG4gIHRvdGFsT3B0aW9uTGlzdCA9IFtdO1xuXG4gIHNob3dGb3JtOiBib29sZWFuID0gZmFsc2U7XG4gIGZpbHRlclN0cjogc3RyaW5nO1xuICBzdG9yZUZvcm1MaW5lc0RhdGE6IGFueSA9IFtdOyAvLyDnvJPlrZjnmoTmgLvnmoTooajljZXmlbDmja5cbiAgZmlsdGVyU3RvcmVGb3JtTGluZXNEYXRhOiBhbnkgPSBbXTsgLy8g562b6YCJ5Ye65p2l55qE5pWw5o2u5YiX6KGoXG4gIGZpbHRlckluZGV4U3RvcmU6IEFycmF5PG51bWJlcj4gPSBbXTsgLy8g562b6YCJ5Ye65p2l55qE5pWw5o2u5Zyo5Y6f5aeL5YiX6KGo5Lit55qE5LiL5qCHXG4gIGlzRmlsdGVyRGF0YTogYm9vbGVhbiA9IGZhbHNlOyAvLyDmmK/lkKbmmK/lt7Lnu4/nrZvpgInov4fnmoTmlbDmja5cbiAgZm9ybVZhbGlkOiBib29sZWFuID0gZmFsc2U7IC8vIOihqOWNleW9k+WJjeeahOeKtuaAgVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIC8vIOe8k+WtmOS4gOS4i+aAu+eahOihqOWNleaVsOaNrlxuICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gdGhpcy5mb3JtTGluZXNEYXRhO1xuICAgIHRoaXMuaW5pdCgpO1xuICB9XG5cbiAgZ2V0IGxpbmVzRm9ybUFycmF5KCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcy5nZXQoJ2xpbmVzJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgZ2V0IExvZGFzaFJvdW5kKCkge1xuICAgIHJldHVybiByb3VuZDtcbiAgfVxuXG4gIC8vIOaatOmcsueahOaWueazle+8jOeUqOS6juiOt+WPluaJgOacieaVsOaNrueahHZhbGlk54q25oCBXG4gIHB1YmxpYyBnZXRWYWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtVmFsaWQ7XG4gIH1cblxuICBpbm5lckdldFZhbGlkKCkge1xuICAgIGxldCB0bXBWYWxpZGF0ZUhkRm9ybUxpbmVzID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAnbGluZXMnOiB0aGlzLmZiLmFycmF5KFtdKVxuICAgIH0pO1xuICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmZvckVhY2goKGZvcm1MaW5lc0RhdGFJdGVtKSA9PiB7XG4gICAgICBsZXQgZm9ybUdyb3VwT2JqOiBhbnkgPSB7fTtcbiAgICAgIHRoaXMuZm9ybUxpbmVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgLy8g5paw5aKe6KGMIOWIneWni+aVsOaNrumDveS4um51bGxcbiAgICAgICAgZm9ybUdyb3VwT2JqW2l0ZW0ubmFtZV0gPSB0aGlzLmZiLmNvbnRyb2woeyB2YWx1ZTogZm9ybUxpbmVzRGF0YUl0ZW1baXRlbS5uYW1lXSA9PT0gMCA/IDAgOiAoZm9ybUxpbmVzRGF0YUl0ZW1baXRlbS5uYW1lXSB8fCBpdGVtLnZhbHVlIHx8IG51bGwpLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9LCBpdGVtLnJlcXVpcmUgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXSk7XG4gICAgICAgIGlmIChpdGVtLnNlbGVjdE9wdGlvbiAmJiBpdGVtLnNlbGVjdE9wdGlvbi5sYWJlbCkge1xuICAgICAgICAgIGZvcm1Hcm91cE9ialtpdGVtLnNlbGVjdE9wdGlvbi5sYWJlbF0gPSB0aGlzLmZiLmNvbnRyb2woZm9ybUxpbmVzRGF0YUl0ZW1baXRlbS5zZWxlY3RPcHRpb24ubGFiZWxdIHx8IG51bGwsIFtdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBmb3JtR3JvdXBPYmoubGluZUluZGV4ID0gdGhpcy5mYi5jb250cm9sKCh0bXBWYWxpZGF0ZUhkRm9ybUxpbmVzLmdldCgnbGluZXMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLmxlbmd0aCwgW10pO1xuICAgICAgbGV0IGZvcm1Hcm91cFRtcCA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwT2JqKTtcbiAgICAgIHRoaXMuZm9ybUxpbmVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0ub25DaGFuZ2VFdmVudCkge1xuICAgICAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpIHtcbiAgICAgICAgICAgIGZvcm1Hcm91cFRtcC5nZXQoaXRlbS5uYW1lKS52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKGl0ZW0ub25DaGFuZ2VFdmVudERlYm91bmNlVGltZSlcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHRoaXMudHJpZ2dlckV2ZW50KGl0ZW0ub25DaGFuZ2VFdmVudCwgdmFsdWUsIGZvcm1Hcm91cFRtcCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBmb3JtR3JvdXBUbXAuZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlLCBmb3JtR3JvdXBUbXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgKHRtcFZhbGlkYXRlSGRGb3JtTGluZXMuZ2V0KCdsaW5lcycpIGFzIEZvcm1BcnJheSkuaW5zZXJ0KCh0bXBWYWxpZGF0ZUhkRm9ybUxpbmVzLmdldCgnbGluZXMnKSBhcyBGb3JtQXJyYXkpLmNvbnRyb2xzLmxlbmd0aCwgZm9ybUdyb3VwVG1wKTtcbiAgICB9KTtcbiAgICByZXR1cm4gdG1wVmFsaWRhdGVIZEZvcm1MaW5lcy52YWxpZDtcbiAgfVxuXG4gIC8vIOaatOmcsueahOaWueazle+8jOeUqOS6juiOt+WPluaJgOacieaVsOaNrlxuICBwdWJsaWMgZ2V0TGluZXMoKSB7XG4gICAgbGV0IGFsbExpbmVzID0gW107XG4gICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZm9yRWFjaCgoZm9ybUxpbmVzRGF0YUl0ZW0pID0+IHtcbiAgICAgIGxldCBmb3JtR3JvdXBPYmo6IGFueSA9IHt9O1xuICAgICAgdGhpcy5mb3JtTGluZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAvLyDmlrDlop7ooYwg5Yid5aeL5pWw5o2u6YO95Li6bnVsbFxuICAgICAgICBmb3JtR3JvdXBPYmpbaXRlbS5uYW1lXSA9IGZvcm1MaW5lc0RhdGFJdGVtW2l0ZW0ubmFtZV07XG4gICAgICB9KTtcbiAgICAgIGZvcm1Hcm91cE9iai5saW5lSW5kZXggPSBmb3JtTGluZXNEYXRhSXRlbS5saW5lSW5kZXg7XG4gICAgICBhbGxMaW5lcy5wdXNoKGZvcm1Hcm91cE9iaik7XG4gICAgfSk7XG4gICAgcmV0dXJuIGFsbExpbmVzO1xuICB9XG5cbiAgLy8g5YWo5bGA5oCn55qE5pCc57Si77yI5ra155uW6aG16Z2i5LiK5omA5pyJ55qE5Y+v6KeG5paH5a2X77yJXG4gIHNlYXJjaExpbmVzKCkge1xuICAgIGlmICh0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMudGFibGVMb2FkaW5nID0gdHJ1ZTtcbiAgICAvLyDlpoLmnpzmsqHmnInovpPlhaXmkJzntKLlrZfnrKbkuLLvvIzliJnmmL7npLrnvJPlrZjlhoXnmoTmiYDmnInmlbDmja5cbiAgICBpZiAoIXRoaXMuZmlsdGVyU3RyKSB7XG4gICAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRTdG9yZURhdGEoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmZpbHRlclN0ci50cmltKCkudG9Mb3dlckNhc2UoKTtcbiAgICB0aGlzLmlzRmlsdGVyRGF0YSA9IHRydWU7XG4gICAgdGhpcy5maWx0ZXJJbmRleFN0b3JlID0gW107XG5cbiAgICAvLyDmoLnmja7mkJzntKLlrZfnrKbkuLLov4fmu6TmlbDmja5cbiAgICBjb25zdCBmaWx0ZXJlZERhdGEgPSB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5maWx0ZXIoKGRhdGE6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuZm9ybUxpbmVzKSB7XG4gICAgICAgIGlmICgoaXRlbS5oaWRlICYmIGl0ZW0uY2FuU2VhcmNoKSB8fCAoIWl0ZW0uaGlkZSAmJiBpdGVtLm5hbWUgIT09ICd1dWlkJykpIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGRhdGFbaXRlbS5uYW1lXSA/IGRhdGFbaXRlbS5uYW1lXS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCkgOiAnJztcbiAgICAgICAgICBpZiAodmFsdWUuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmUucHVzaChpbmRleCk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgICAvLyDnvJPlrZjkuIDkuIvnrZvpgInlkI7nmoTooajljZXmlbDmja5cbiAgICB0aGlzLmZpbHRlclN0b3JlRm9ybUxpbmVzRGF0YSA9IGZpbHRlcmVkRGF0YTtcbiAgICAvLyDlpITnkIbnrZvpgInlpb3nmoTmlbDmja4g54S25ZCO6YeN5paw5riy5p+TXG4gICAgdGhpcy5mb3JtTGluZXNEYXRhID0gZmlsdGVyZWREYXRhO1xuICAgIHRoaXMuaW5pdCh0cnVlKTtcbiAgfVxuXG4gIHNldFN0b3JlRGF0YSgpIHtcbiAgICB0aGlzLmZvcm1MaW5lc0RhdGEgPSB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YTtcbiAgICB0aGlzLmluaXQodHJ1ZSk7XG4gIH1cblxuICBnZXRTdHlsZShsaW5lOiBGb3JtR3JvdXAsIGZvcm1JdGVtOiBhbnksIHdpZHRoOiBzdHJpbmcpIHtcbiAgICBsZXQgc3R5bGVPYmogPSB7XG4gICAgICAnbWluLXdpZHRoJzogd2lkdGhcbiAgICB9O1xuICAgIGlmIChmb3JtSXRlbS5zdHlsZSkge1xuICAgICAgc3R5bGVPYmogPSB7IC4uLnN0eWxlT2JqLCAuLi5mb3JtSXRlbS5zdHlsZSB9O1xuICAgIH1cbiAgICBpZiAoZm9ybUl0ZW0uY29sb3JPcHRpb24gJiYgZm9ybUl0ZW0uY29sb3JPcHRpb24ubmFtZSAmJiBsaW5lLmdldChmb3JtSXRlbS5jb2xvck9wdGlvbi5uYW1lKS52YWx1ZSkge1xuICAgICAgc3R5bGVPYmogPSB7IC4uLnN0eWxlT2JqLCAuLi57ICdjb2xvcic6IGxpbmUuZ2V0KGZvcm1JdGVtLmNvbG9yT3B0aW9uLm5hbWUpLnZhbHVlIH0gfTtcbiAgICB9XG4gICAgcmV0dXJuIHN0eWxlT2JqO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydmb3JtTGluZXNEYXRhJ10gJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1snZm9ybUxpbmVzRGF0YSddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ2Zvcm1MaW5lc0RhdGEnXS5wcmV2aW91c1ZhbHVlKSkge1xuICAgICAgaWYgKHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhICYmIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IHRoaXMuZm9ybUxpbmVzRGF0YTtcbiAgICAgIH1cbiAgICAgIHRoaXMuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sndG90YWxPcHRpb24nXSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWyd0b3RhbE9wdGlvbiddLmN1cnJlbnRWYWx1ZSkgIT09IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3RvdGFsT3B0aW9uJ10ucHJldmlvdXNWYWx1ZSkpIHtcbiAgICAgIHRoaXMuY2FsY3VsYXRlVG90YWwoKTtcbiAgICB9XG4gIH1cblxuICBjYWxjdWxhdGVUb3RhbCgpIHtcbiAgICAvLyDov5nph4zlpITnkIblkIjorqHmlbDmja5cbiAgICBpZiAodGhpcy5zaG93VG90YWwpIHtcbiAgICAgIHRoaXMudG90YWxPcHRpb25MaXN0ID0gbmV3IEFycmF5KE51bWJlcih0aGlzLmNvbHVtbnNOdW1iZXIpIC0gMSkuZmlsbCgnJyk7XG4gICAgICB0aGlzLnRvdGFsT3B0aW9uLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGlmIChpdGVtLmluc2VydEluZGV4ICYmIChpdGVtLmluc2VydFZhbHVlIHx8IGl0ZW0uaW5zZXJ0VmFsdWUgPT09IDApKSB7XG4gICAgICAgICAgdGhpcy50b3RhbE9wdGlvbkxpc3RbaXRlbS5pbnNlcnRJbmRleCAtIDFdID0ge1xuICAgICAgICAgICAgdmFsdWU6IGl0ZW0uaW5zZXJ0VmFsdWUsXG4gICAgICAgICAgICBhbGlnbjogaXRlbS5hbGlnbiB8fCAnbGVmdCcsXG4gICAgICAgICAgICBzaG93RGVjaW1hbDogaXRlbS5zaG93RGVjaW1hbCB8fCBmYWxzZVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdChpc0VkaXQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VJbmRleCA9IDE7XG4gICAgLy8g5byC5bi45o2V6I63XG4gICAgaWYgKCF0aGlzLmNoZWNrTGlzdCh0aGlzLmZvcm1MaW5lcykpIHtcbiAgICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3JlYXRlRm9ybSgpO1xuICAgIC8vIOWmguaenOayoeaciWZvcm1MaW5lc0RhdGHvvIzliJnorqTkuLrmmK/mlrDlop5cbiAgICBpZiAoIWlzRWRpdCAmJiAoIXRoaXMuZm9ybUxpbmVzRGF0YSB8fCAodGhpcy5mb3JtTGluZXNEYXRhICYmIHRoaXMuZm9ybUxpbmVzRGF0YS5sZW5ndGggPT09IDApKSkge1xuICAgICAgdGhpcy50YWJsZUxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuYWRkRm9ybUxpbmUoKTtcbiAgICAgIHRoaXMuc2hvd0Zvcm0gPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyDnvJbovpHpgLvovpFcbiAgICAgIHRoaXMuYWRkRm9ybUxpbmVXaXRoRGF0YSgpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlSGRGb3JtTGluZXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShkYXRhID0+IHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoZGF0YSkpO1xuICAgIHRoaXMub25IZEZvcm1WYWx1ZUNoYW5nZWQoKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIOWIm+W7uuihqOWNlVxuICAgKi9cbiAgcHJpdmF0ZSBjcmVhdGVGb3JtKCkge1xuICAgIHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcyA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgJ2xpbmVzJzogdGhpcy5mYi5hcnJheShbXSlcbiAgICB9KTtcbiAgICB0aGlzLm5ld0xpbmUgPSB0aGlzLm5ld0xpbmVJdGVtKCk7XG4gIH1cblxuICAvKipcbiAgKiDlrprkuYnnqbrnmoRuZXdMaW5lSXRlbSDnu5PmnoRcbiAgKi9cbiAgcHJpdmF0ZSBuZXdMaW5lSXRlbSgpOiBGb3JtR3JvdXAge1xuICAgIGxldCBmb3JtR3JvdXBPYmo6IGFueSA9IHt9O1xuICAgIHRoaXMuZm9ybUxpbmVzLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIC8vIOaWsOWinuihjCDliJ3lp4vmlbDmja7pg73kuLpudWxsXG4gICAgICBmb3JtR3JvdXBPYmpbaXRlbS5uYW1lXSA9IHRoaXMuZmIuY29udHJvbCh7IHZhbHVlOiBpdGVtLnZhbHVlLCBkaXNhYmxlZDogaXRlbS5kaXNhYmxlZCB9IHx8IG51bGwsIGl0ZW0ucmVxdWlyZSAmJiAhaXRlbS5oaWRlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgIH0pO1xuICAgIGZvcm1Hcm91cE9iai5saW5lSW5kZXggPSB0aGlzLmZiLmNvbnRyb2wodGhpcy5saW5lc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGgsIFtdKTtcbiAgICAvLyDnlKjmnaXmoIfor4bmmK/lkKbmmK/mkJzntKLnirbmgIHkuIvmlrDlop7nmoTooYxcbiAgICBmb3JtR3JvdXBPYmouaXNIZEZvcm1MaW5lU2VhcmNoQWRkID0gdGhpcy5mYi5jb250cm9sKHRoaXMuaXNGaWx0ZXJEYXRhLCBbXSk7XG4gICAgbGV0IGZvcm1Hcm91cFN1Ym1pdCA9IHRoaXMuZmIuZ3JvdXAoZm9ybUdyb3VwT2JqKTtcbiAgICB0aGlzLmZvcm1MaW5lcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50KSB7XG4gICAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lKSB7XG4gICAgICAgICAgICBmb3JtR3JvdXBTdWJtaXQuZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgIGRlYm91bmNlVGltZShpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpXG4gICAgICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlLCBmb3JtR3JvdXBTdWJtaXQpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwU3VibWl0LmdldChpdGVtLm5hbWUpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy50cmlnZ2VyRXZlbnQoaXRlbS5vbkNoYW5nZUV2ZW50LCB2YWx1ZSwgZm9ybUdyb3VwU3VibWl0KSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm1Hcm91cFN1Ym1pdDtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlTGluZU51bWJlcigpIHtcbiAgICB0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBpdGVtLmdldCgnbGluZUluZGV4Jykuc2V0VmFsdWUoaW5kZXggKyAxLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog57yW6L6R55qE5pe25YCZ5pWw5o2u5aSE55CGXG4gICAqL1xuICBhZGRGb3JtTGluZVdpdGhEYXRhKCkge1xuICAgIHRoaXMuZm9ybUxpbmVzRGF0YS5mb3JFYWNoKChmb3JtTGluZXNEYXRhSXRlbSkgPT4ge1xuICAgICAgbGV0IGZvcm1Hcm91cE9iajogYW55ID0ge307XG4gICAgICB0aGlzLmZvcm1MaW5lcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIC8vIOaWsOWinuihjCDliJ3lp4vmlbDmja7pg73kuLpudWxsXG4gICAgICAgIGZvcm1Hcm91cE9ialtpdGVtLm5hbWVdID0gdGhpcy5mYi5jb250cm9sKHsgdmFsdWU6IGZvcm1MaW5lc0RhdGFJdGVtW2l0ZW0ubmFtZV0gPT09IDAgPyAwIDogKGZvcm1MaW5lc0RhdGFJdGVtW2l0ZW0ubmFtZV0gfHwgaXRlbS52YWx1ZSB8fCBudWxsKSwgZGlzYWJsZWQ6IGl0ZW0uZGlzYWJsZWQgfSwgaXRlbS5yZXF1aXJlID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10pO1xuICAgICAgICBpZiAoaXRlbS5zZWxlY3RPcHRpb24gJiYgaXRlbS5zZWxlY3RPcHRpb24ubGFiZWwpIHtcbiAgICAgICAgICBmb3JtR3JvdXBPYmpbaXRlbS5zZWxlY3RPcHRpb24ubGFiZWxdID0gdGhpcy5mYi5jb250cm9sKGZvcm1MaW5lc0RhdGFJdGVtW2l0ZW0uc2VsZWN0T3B0aW9uLmxhYmVsXSB8fCBudWxsLCBbXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgZm9ybUdyb3VwT2JqLmxpbmVJbmRleCA9IHRoaXMuZmIuY29udHJvbCh0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCArIDEsIFtdKTtcbiAgICAgIGxldCBmb3JtR3JvdXBUbXAgPSB0aGlzLmZiLmdyb3VwKGZvcm1Hcm91cE9iaik7XG4gICAgICB0aGlzLmZvcm1MaW5lcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgIGlmIChpdGVtLm9uQ2hhbmdlRXZlbnQpIHtcbiAgICAgICAgICBpZiAoaXRlbS5vbkNoYW5nZUV2ZW50RGVib3VuY2VUaW1lKSB7XG4gICAgICAgICAgICBmb3JtR3JvdXBUbXAuZ2V0KGl0ZW0ubmFtZSkudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgIGRlYm91bmNlVGltZShpdGVtLm9uQ2hhbmdlRXZlbnREZWJvdW5jZVRpbWUpXG4gICAgICAgICAgICApLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudHJpZ2dlckV2ZW50KGl0ZW0ub25DaGFuZ2VFdmVudCwgdmFsdWUsIGZvcm1Hcm91cFRtcCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybUdyb3VwVG1wLmdldChpdGVtLm5hbWUpLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRyaWdnZXJFdmVudChpdGVtLm9uQ2hhbmdlRXZlbnQsIHZhbHVlLCBmb3JtR3JvdXBUbXApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHRoaXMubGluZXNGb3JtQXJyYXkuaW5zZXJ0KHRoaXMubGluZXNGb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoLCBmb3JtR3JvdXBUbXApO1xuICAgIH0pO1xuICAgIHRoaXMudGFibGVMb2FkaW5nID0gZmFsc2U7XG4gICAgdGhpcy5zaG93Rm9ybSA9IHRydWU7XG4gIH1cblxuICBhZGRGb3JtTGluZShpbmRleD86IGFueSkge1xuICAgIHRoaXMubGluZXNGb3JtQXJyYXkuaW5zZXJ0KGluZGV4IHx8IHRoaXMubGluZXNGb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoLCB0aGlzLm5ld0xpbmVJdGVtKCkpO1xuICAgIHRoaXMuY2FsY3VsYXRlTGluZU51bWJlcigpO1xuICB9XG5cbiAgZGVsZXRlRm9ybUxpbmUoaW5kZXg6IGFueSkge1xuICAgIHRoaXMubGluZXNGb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXggLSAxKTtcbiAgICBpZiAoIXRoaXMuaXNGaWx0ZXJEYXRhICYmIHRoaXMubGluZXNGb3JtQXJyYXkuY29udHJvbHMgJiYgdGhpcy5saW5lc0Zvcm1BcnJheS5jb250cm9scy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkRm9ybUxpbmUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8g5Yig6Zmk5bC+6aG155qE5pyA5ZCO5LiA5Liq5YWD57Sg5Yqo5L2cXG4gICAgICBpZiAodGhpcy5wYWdpbmF0aW9uUGFnZUluZGV4ICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUgPT09ICh0aGlzLmxpbmVzRm9ybUFycmF5LmNvbnRyb2xzLmxlbmd0aCArIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSkge1xuICAgICAgICB0aGlzLnBhZ2luYXRpb25QYWdlSW5kZXgtLTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2FsY3VsYXRlTGluZU51bWJlcigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gZm4g54i257uE5Lu25Ye95pWwXG4gICAqIEBwYXJhbSBldmVudCDkuovku7blgLxcbiAgICogQHBhcmFtIGxpbmUg6Kem5Y+R55qE6KGMXG4gICAqL1xuICB0cmlnZ2VyRXZlbnQoZm46IGFueSwgZXZlbnQ6IGFueSwgbGluZTogYW55KSB7XG4gICAgaWYgKGZuKSB7XG4gICAgICBmbihldmVudCwgbGluZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHBhZ2VJbmRleENoYW5nZShldmVudDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5wYWdpbmF0aW9uUGFnZUluZGV4ID0gZXZlbnQ7XG4gIH1cblxuICBwdWJsaWMgcGFnZVNpemVDaGFuZ2UoZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID0gZXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIG9uSGRGb3JtVmFsdWVDaGFuZ2VkKGRhdGE/OiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0ZpbHRlckRhdGEpIHtcbiAgICAgIGlmIChkYXRhICYmIGRhdGEubGluZXMgJiYgdGhpcy5maWx0ZXJJbmRleFN0b3JlLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICBjb25zdCBsaW5lcyA9IGRhdGEubGluZXM7XG4gICAgICAgIGlmIChsaW5lcy5sZW5ndGggPT09IHRoaXMuZmlsdGVySW5kZXhTdG9yZS5sZW5ndGgpIHtcbiAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmUuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhW2l0ZW1dID0geyAuLi50aGlzLmZpbHRlclN0b3JlRm9ybUxpbmVzRGF0YVtpbmRleF0sIC4uLmxpbmVzW2luZGV4XSB9O1xuICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGxpbmVzLmxlbmd0aCA+IHRoaXMuZmlsdGVySW5kZXhTdG9yZS5sZW5ndGgpIHtcbiAgICAgICAgICAvLyDmnInmlrDlop7mlbDmja7nmoTmg4XlhrVcbiAgICAgICAgICAvLyBzdGVwIDE6IOWFiOaJvuaWsOWinueahGluZGV45LiL5qCHXG4gICAgICAgICAgY29uc3QgZ2V0Tm93TGluZXMgPSB0aGlzLnZhbGlkYXRlSGRGb3JtTGluZXMuZ2V0UmF3VmFsdWUoKS5saW5lcztcbiAgICAgICAgICBsZXQgYWRkSW5kZXggPSAtMTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdldE5vd0xpbmVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZ2V0Tm93TGluZXNbaV0uaXNIZEZvcm1MaW5lU2VhcmNoQWRkKSB7XG4gICAgICAgICAgICAgIGFkZEluZGV4ID0gaTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChhZGRJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhLnNwbGljZSh0aGlzLmZpbHRlckluZGV4U3RvcmVbYWRkSW5kZXggLSAxXSArIDEsIDAsIGdldE5vd0xpbmVzW2FkZEluZGV4XSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZmlsdGVySW5kZXhTdG9yZS5wdXNoKHRoaXMuZmlsdGVySW5kZXhTdG9yZVthZGRJbmRleCAtIDFdICsgMSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8g5pyJ5Yig6Zmk5pWw5o2u55qE5oOF5Ya1XG4gICAgICAgICAgLy8gc3RlcCAxOuWFiOaJvuWIsOWIoOmZpOeahGluZGV45LiL5qCHXG4gICAgICAgICAgbGV0IGRlbGV0ZWRJbmRleCA9IC0xO1xuICAgICAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgZGVsZXRlZEluZGV4ID0gMDtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBpZiAobGluZXNbaV0ubGluZUluZGV4IC0gY291bnQgPiAxKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlZEluZGV4ID0gaTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGVsZXRlZEluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgLy8gc3RlcCAyOiDliKDpmaTmgLvmlbDmja7kuK3nmoTlr7nlupTmlbDmja4sIOaKiuS4i+agh+aVsOe7hOWSjGxpbmVz6ZW/5bqm5a+56b2Q77yM5ZCM5pe25oqK5LiL5qCH5pWw57uE5ZyoZGVsZXRlZEluZGV45ZCO6Z2i55qE5YC85YWo6YO9LTFcbiAgICAgICAgICAgIHRoaXMuc3RvcmVGb3JtTGluZXNEYXRhID0gdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gaW5kZXggIT09IHRoaXMuZmlsdGVySW5kZXhTdG9yZVtkZWxldGVkSW5kZXhdO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmUuc3BsaWNlKGRlbGV0ZWRJbmRleCwgMSk7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmlsdGVySW5kZXhTdG9yZS5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBpZiAoaSA+PSBkZWxldGVkSW5kZXgpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZpbHRlckluZGV4U3RvcmVbaV0tLTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBzdGVwIDI6IOayoeacieaJvuWIsGRlbGV0ZWRJbmRleOivtOaYjuWIoOmZpOaTjeS9nOWcqOacgOWQjuS4gOihjFxuICAgICAgICAgICAgY29uc3QgZmlsdGVySW5kZXggPSB0aGlzLmZpbHRlckluZGV4U3RvcmVbdGhpcy5maWx0ZXJJbmRleFN0b3JlLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgdGhpcy5zdG9yZUZvcm1MaW5lc0RhdGEgPSB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YS5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBpbmRleCAhPT0gZmlsdGVySW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVySW5kZXhTdG9yZS5wb3AoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChkYXRhICYmIGRhdGEubGluZXMpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IGRhdGEubGluZXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5saW5lcykge1xuICAgICAgICB0aGlzLnN0b3JlRm9ybUxpbmVzRGF0YSA9IGRhdGEubGluZXM7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8g5oC76KGo5Y2VXG4gICAgaWYgKCF0aGlzLmlzRmlsdGVyRGF0YSkge1xuICAgICAgdGhpcy5mb3JtVmFsaWQgPSB0aGlzLnZhbGlkYXRlSGRGb3JtTGluZXMudmFsaWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmZvcm1WYWxpZCkge1xuICAgICAgICAvLyDlpoLmnpzmlbTkvZPooajljZXmmK90cnVl77yM5LiN566h5a2Q6KGo5Y2V5piv5LuA5LmI77yM6YO95Y+Y5oiQ5a2Q6KGo5Y2V55qE54q25oCBXG4gICAgICAgIHRoaXMuZm9ybVZhbGlkID0gdGhpcy52YWxpZGF0ZUhkRm9ybUxpbmVzLnZhbGlkO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8g5aaC5p6c5pW05L2T6KGo5Y2V5pivZmFsc2XvvJox44CB5a2Q6KGo5Y2V5Li6dHJ1Ze+8jOmcgOimgemHjeeul++8mzLjgIHlrZDooajljZXkuLpmYWxzZe+8jOeUqOWtkOihqOWNleeKtuaAgVxuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZUhkRm9ybUxpbmVzLnZhbGlkKSB7XG4gICAgICAgICAgdGhpcy5mb3JtVmFsaWQgPSB0aGlzLmlubmVyR2V0VmFsaWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmZvcm1WYWxpZCA9IHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcy52YWxpZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAvLyB0aGlzLmNhbGN1bGF0ZUxpbmVOdW1iZXIoKTtcbiAgICB0aGlzLmNoYW5nZUV2ZW50LmVtaXQodGhpcy52YWxpZGF0ZUhkRm9ybUxpbmVzKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tMaXN0KGxpc3Q6IEFycmF5PEZvcm1MaW5lPik6IGJvb2xlYW4ge1xuICAgIGlmICghbGlzdCB8fCAobGlzdCAmJiBsaXN0Lmxlbmd0aCA9PT0gMCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgbGV0IG5hbWVMaXN0ID0gW107XG4gICAgbGV0IHNlbGVjdE9wdGlvbkNoZWNrTGlzdCA9IFtdO1xuICAgIGxpc3QuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgLy8g5qCh6aqM5Y2V6aG56YCJ5oup5ZmoXG4gICAgICAvLyBpZiAoaXRlbS50eXBlID09PSBGb3JtTGluZVR5cGUuU2VsZWN0ICYmICghaXRlbS5zZWxlY3RMaXN0IHx8IChpdGVtLnNlbGVjdExpc3QgJiYgaXRlbS5zZWxlY3RMaXN0Lmxlbmd0aCA9PT0gMCkpKSB7XG4gICAgICAvLyAgIHRocm93ICdmb3JtTGluZXPnu4Tku7bmlbDmja7moLzlvI/kuI3op4TojIPvvIzlrZjlnKjljZXpobnpgInmi6nlmajmsqHmnInkvKDlhaXpgInpobkhJ1xuICAgICAgLy8gfVxuICAgICAgbmFtZUxpc3QucHVzaChpdGVtLm5hbWUpO1xuXG4gICAgICAvLyDmoKHpqozmnIlvblNlYXJjaOeahOWtl+auteeahHNlbGVjdE9wdGlvbueahHZhbHVl44CBbGFiZWzmmK/lkKblnKhmb3JtTGluZemHjOmdoumDveWumuS5ieS6hlxuICAgICAgaWYgKGl0ZW0ub25TZWFyY2hFdmVudCAmJiBpdGVtLnNlbGVjdE9wdGlvbikge1xuICAgICAgICBzZWxlY3RPcHRpb25DaGVja0xpc3QgPSBbXTtcbiAgICAgICAgbGlzdC5mb3JFYWNoKGlubmVySXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGlubmVySXRlbS5uYW1lID09PSBpdGVtLnNlbGVjdE9wdGlvbi52YWx1ZSB8fCBpbm5lckl0ZW0ubmFtZSA9PT0gaXRlbS5zZWxlY3RPcHRpb24ubGFiZWwpIHtcbiAgICAgICAgICAgIHNlbGVjdE9wdGlvbkNoZWNrTGlzdC5wdXNoKGlubmVySXRlbS5uYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoc2VsZWN0T3B0aW9uQ2hlY2tMaXN0Lmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICB0aHJvdyBgZm9ybUxpbmVz57uE5Lu25pWw5o2u5qC85byP5LiN6KeE6IyD77yM5a2X5q61JHtpdGVtLm5hbWV955qEc2VsZWN0T3B0aW9u55qEdmFsdWXjgIFsYWJlbOWtl+auteacquiDveWcqGZvcm1MaW5lc+S4reaJvuWIsOWvueW6lOWtl+aute+8gWA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgICAvLyDmoKHpqoxuYW1l5piv5ZCm6YeN5aSNXG4gICAgaWYgKFsuLi5uZXcgU2V0KG5hbWVMaXN0KV0ubGVuZ3RoICE9PSBsaXN0Lmxlbmd0aCkge1xuICAgICAgdGhyb3cgJ2Zvcm1MaW5lc+e7hOS7tuaVsOaNruagvOW8j+S4jeinhOiMg++8jOWtmOWcqOmHjeWkjW5hbWXlgLwhJztcbiAgICB9XG4gICAgLy8gLi4ubW9yZSBjaGVja1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIHN1Ym1pdEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VFdmVudC5lbWl0KHRoaXMudmFsaWRhdGVIZEZvcm1MaW5lcy5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldEZvcm0oKTogdm9pZCB7XG4gICAgLy8g5Yig6ZmkXG4gICAgZm9yIChsZXQgaSA9IHRoaXMubGluZXNGb3JtQXJyYXkuY29udHJvbHMubGVuZ3RoOyBpID49IDA7IGktLSkge1xuICAgICAgdGhpcy5kZWxldGVGb3JtTGluZShpKTtcbiAgICB9XG4gICAgdGhpcy5wYWdpbmF0aW9uUGFnZUluZGV4ID0gMTtcbiAgfVxuXG4gIHB1YmxpYyBpbnB1dENsZWFuKGZvcm1JdGVtOiBhbnksIGxpbmU6IGFueSk6IHZvaWQge1xuICAgIGxpbmUuZ2V0KGZvcm1JdGVtLm5hbWUpLnNldFZhbHVlKG51bGwpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdFZhbHVlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dERvbTogYW55ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihpZCk7XG4gICAgaW5wdXREb20uc2VsZWN0KCk7XG4gIH1cblxuICBwcml2YXRlIHRleHRXaWR0aENhY2hlOiB7IFtrZXk6IHN0cmluZ106IG51bWJlcjsgfSA9IHt9O1xuICBpc1RleHRPdmVyZmxvdyh0ZXh0OiBzdHJpbmcsIG1heFdpZHRoOiBudW1iZXIpOiBib29sZWFuIHtcbiAgICBjb25zdCBjYWNoZWRXaWR0aCA9IHRoaXMudGV4dFdpZHRoQ2FjaGVbdGV4dF07XG4gICAgaWYgKGNhY2hlZFdpZHRoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBjYWNoZWRXaWR0aCArIDE1ID49IG1heFdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0IHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG4gICAgc3Bhbi5zdHlsZS52aXNpYmlsaXR5ID0gJ2hpZGRlbic7XG4gICAgc3Bhbi5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgc3Bhbi5zdHlsZS53aGl0ZVNwYWNlID0gJ25vd3JhcCc7XG4gICAgc3Bhbi5zdHlsZS5mb250U2l6ZSA9ICcxMnB4JztcbiAgICBzcGFuLnN0eWxlLmRpc3BsYXkgPSAnaW5saW5lLWJsb2NrJzsgLy8g5bCG5qC35byP5L+u5pS55Li6IGlubGluZS1ibG9ja1xuICAgIHNwYW4uaW5uZXJUZXh0ID0gdGV4dDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNwYW4pO1xuICAgIGNvbnN0IGlzT3ZlcmZsb3cgPSBzcGFuLm9mZnNldFdpZHRoICsgMTUgPj0gbWF4V2lkdGg7XG4gICAgdGhpcy50ZXh0V2lkdGhDYWNoZVt0ZXh0XSA9IHNwYW4ub2Zmc2V0V2lkdGg7XG4gICAgc3Bhbi5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc3Bhbik7XG4gICAgcmV0dXJuIGlzT3ZlcmZsb3c7XG4gIH1cblxuICBqdWRnZUNvbEVtcHR5KHN0cjogYW55KSB7XG4gICAgaWYgKHN0ciB8fCBzdHIgPT09IDApIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnPOepuj4nO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -75,6 +75,8 @@ if (false) {
|
|
|
75
75
|
FormLine.prototype.style;
|
|
76
76
|
/** @type {?} */
|
|
77
77
|
FormLine.prototype.canSearch;
|
|
78
|
+
/** @type {?} */
|
|
79
|
+
FormLine.prototype.onChangeEventDebounceTime;
|
|
78
80
|
}
|
|
79
81
|
var ColorOption = /** @class */ (function () {
|
|
80
82
|
function ColorOption() {
|
|
@@ -141,4 +143,4 @@ var HdFormLinesService = /** @class */ (function () {
|
|
|
141
143
|
return HdFormLinesService;
|
|
142
144
|
}());
|
|
143
145
|
export { HdFormLinesService };
|
|
144
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGQtZm9ybS1saW5lcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vZmFudGFzeS1uZ3pvcnJvLyIsInNvdXJjZXMiOlsiaGQtZm9ybS1saW5lcy9oZC1mb3JtLWxpbmVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFdBQVcsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQzs7O0FBRWpFOzs7SUFBQTs7UUFLRSxZQUFPLEdBQWEsS0FBSyxDQUFDLENBQUMsT0FBTzs7UUFDbEMsU0FBSSxHQUFhLEtBQUssQ0FBQyxDQUFDLDZCQUE2Qjs7UUFFckQsVUFBSyxHQUFvRSxJQUFJLENBQUMsQ0FBRSxjQUFjOztRQVM5RixnQkFBVyxHQUFpQixJQUFJLFdBQVcsRUFBRSxDQUFDLENBQUMsd0JBQXdCOztRQU12RSxhQUFRLEdBQWEsS0FBSyxDQUFDLENBQUMsY0FBYztRQUUxQyxjQUFTLEdBQWEsS0FBSyxDQUFDLENBQUMsK0JBQStCO0lBRTlELENBQUM7SUFBRCxlQUFDO0FBQUQsQ0FBQyxBQTNCRCxJQTJCQzs7Ozs7SUExQkMsd0JBQW1COztJQUNuQix5QkFBYzs7SUFDZCx3QkFBYTs7SUFDYiwrQkFBcUI7O0lBQ3JCLDJCQUEwQjs7SUFDMUIsd0JBQXVCOztJQUN2Qix5QkFBb0M7O0lBQ3BDLHlCQUE4RTs7SUFDOUUsNEJBQW1COztJQUNuQixnQ0FBNEI7O0lBQzVCLHNDQUFtQzs7SUFDbkMsaUNBQThCOztJQUM5QiwrQkFBMEI7O0lBRTFCLDZCQUFtQjs7SUFDbkIsa0NBQXdCOztJQUN4QiwrQkFBOEM7O0lBQzlDLGlDQUF5Qjs7SUFDekIsaUNBQXlCOztJQUN6QixnQ0FBbUI7O0lBQ25CLGtDQUEwQjs7SUFDMUIsNEJBQW1COztJQUNuQiw0QkFBMkI7O0lBQzNCLHlCQUFlOztJQUNmLDZCQUE0Qjs7SUFDNUIsNkNBQW1DOztBQUdyQztJQUFBO0lBR0EsQ0FBQztJQUFELGtCQUFDO0FBQUQsQ0FBQyxBQUhELElBR0M7Ozs7SUFGQywyQkFBYTs7SUFDYiw0QkFBZTs7QUFHakI7SUFBQTtJQUlBLENBQUM7SUFBRCxvQkFBQztBQUFELENBQUMsQUFKRCxJQUlDOzs7O0lBSEMsNkJBQWM7O0lBQ2QsNkJBQWE7O0lBQ2IsOEJBQWU7Ozs7SUFNZixRQUFLO0lBQ0wsU0FBTTtJQUNOLE9BQUk7SUFDSixZQUFTO0lBQ1QsV0FBUTtJQUNSLGNBQVc7SUFDWCxpQkFBYztJQUNkLFVBQU87SUFDUCxTQUFNO0lBQ04sT0FBSSxDQUFDLFFBQVE7Ozs7Ozs7Ozs7Ozs7O0FBR2Y7SUFJRTtJQUFnQixDQUFDOztnQkFKbEIsVUFBVSxTQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7Ozs7NkJBNUREO0NBK0RDLEFBTEQsSUFLQztTQUZZLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElucHV0TnVtYmVyLCBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9tb2RlbC9jb21tb24tdHlwZSc7XG4vLyDmjqfku7bliJfooahcbmV4cG9ydCBjbGFzcyBGb3JtTGluZSB7XG4gIHR5cGU6IEZvcm1MaW5lVHlwZTsgLy8g5o6n5Lu257G75Z6LXG4gIGxhYmVsOiBzdHJpbmc7ICAvLyDmlofmnKxcbiAgbmFtZTogc3RyaW5nOyAgLy8g5a2X5q615ZCN56ewXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nOyAvLyDovpPlhaXmoYbnmoTmj5DnpLrmlofku7ZcbiAgcmVxdWlyZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5piv5ZCm5b+F5aGrXG4gIGhpZGU/OiBib29sZWFuID0gZmFsc2U7IC8vIOaYr+WQpuS4uumakOiXj+Wtl+aute+8jOS7heeUqOS6juWhq+WFheihqOWNleeahOWtl+aute+8jOS4jeaYvuekuuWcqOmhtemdouS4ilxuICBhbGlnbj86ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJzsgLy8g5YiX5a+56b2Q5pa55byPXG4gIHZhbHVlPzogc3RyaW5nIHwgYm9vbGVhbiB8IG51bWJlciB8IERhdGUgfCBBcnJheTxzdHJpbmcgfCBEYXRlPiB8IG51bGwgPSBudWxsOyAgLy8g5YC8IOS4jeS8oOm7mOiupOS4um51bGxcbiAgaXNTZWxlY3Q/OiBib29sZWFuOyAgLy8g6L6T5YWl5qGG562J5piv5ZCm5YWB6K6454K55Ye75LmL5ZCO5YWo6YCJ5YaF5a65XG4gIHNlbGVjdE9wdGlvbj86IFNlbGVjdE9wdGlvbjsgIC8vIOaOp+S7tuS4ulNlbGVjdOaXtu+8jOmAiemhueWIl+ihqFxuICBleHBsYWluT3B0aW9uUmlnaHQ/OiBFeHBsYWluT3B0aW9uOyAvLyDmmI7nu4blrZfmrrXnmoTor7TmmI4o5Y+z5L6nKVxuICBleHBsYWluT3B0aW9uPzogRXhwbGFpbk9wdGlvbjsgLy8g5piO57uG5a2X5q6155qE6K+05piOXG4gIGNvbG9yT3B0aW9uPzogQ29sb3JPcHRpb247IC8vIOminOiJsuWtl+auteeahOivtOaYjlxuICAvLyDnu4Tku7blhoXpg6jmiJDlkZhcbiAgbWF4TGVuZ3RoPzogbnVtYmVyOyAvLyBpbnB1dOaOp+S7tueahOi+k+WFpemVv+W6plxuICBwcmVzZXJ2ZU51bWJlcj86IG51bWJlcjsgLy8g6ZyA6KaB5L+d55WZ5bCP5pWw55qE5YiX55qE5L2N5pWwXG4gIGlucHV0TnVtYmVyPzogSW5wdXROdW1iZXIgPSBuZXcgSW5wdXROdW1iZXIoKTsgLy8gbnVtYmVy57uE5Lu255qEbWlu44CBbWF444CBc3RlcFxuICBvbkNoYW5nZUV2ZW50PzogRnVuY3Rpb247ICAgLy8g5o6n5Lu255qE5YC85pS55Y+Y5LqL5Lu2IOWPr+eUqOS6juaOp+S7tumXtOiBlOWKqFxuICBvblNlYXJjaEV2ZW50PzogRnVuY3Rpb247ICAvLyBzZWxlY3TpgInmi6nlmajmkJzntKLkuovku7Yg5Y+v55So5LqO5pu05paw5aSH6YCJ6ZuG5ZCIXG4gIGRlZmF1bHRMYWJlbD86IGFueTsgICAvLyBzZWxlY3TpgInmi6nlmajkuI3liJ3lp4vljJbnmoTml7blgJnlj6/ku6Xkvb/nlKhkZWZhdWx0TGFiZWzmkK3phY12YWx1Ze+8jOiuvue9rum7mOiupOWAvFxuICBoZERpc2FibGVkRGF0ZT86IEZ1bmN0aW9uOyAvLyBkYXRlLXBpY2tlcue7hOS7tuS4jeWPr+mAieaLqeeahOaXpeacn1xuICBkaXNhYmxlZD86IGJvb2xlYW47IC8vIOS4jeWPr+i+k+WFpeeKtuaAgVxuICBzaG93VGltZT86IGJvb2xlYW4gPSBmYWxzZTsgLy8g5pel5pyf6YCJ5oup5Zmo5piv5ZCm5YyF5ZCr5pe26Ze0XG4gIHN0eWxlPzogb2JqZWN0O1xuICBjYW5TZWFyY2g/OiBib29sZWFuID0gZmFsc2U7IC8vIOaMh+aYjmhpZGUg5oOF5Ya15LiL55qE5o6n5Lu25piv5ZCm5Y+v5Lul6KKr5pCc57Si77yM6buY6K6kZmFsc2VcbiAgb25DaGFuZ2VFdmVudERlYm91bmNlVGltZT86IG51bWJlcjsgLy8gY2hhbmdl5LqL5Lu26IqC5rWB6ZiI5YC8XG59XG5cbmV4cG9ydCBjbGFzcyBDb2xvck9wdGlvbiB7XG4gIG5hbWU6IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBFeHBsYWluT3B0aW9uIHtcbiAgc2hvdzogYm9vbGVhbjtcbiAgbmFtZTogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbn1cblxuXG4vLyDmjqfku7bnsbvlnotcbmV4cG9ydCBlbnVtIEZvcm1MaW5lVHlwZSB7XG4gIElucHV0LCAgLy8g6L6T5YWl5qGGXG4gIFNlbGVjdCwgIC8vIOWNlemhuemAieaLqeWZqFxuICBEYXRlLCAgLy8g5Y2V5Liq5pel5pyf6YCJ5oupXG4gIERhdGVSYW5nZSwgIC8vIOaXpeacn+iMg+WbtOmAieaLqVxuICBUZXh0QXJlYSwgLy8g5Z2X57qn6L6T5YWl5qGGXG4gIElucHV0TnVtYmVyLCAvLyDmlbDlrZfovpPlhaVcbiAgTXVsdGlwbGVTZWxlY3QsIC8vIOWkmumAiVxuICBWaWV3RG9tLCAvLyDljZXnuq/nmoTmmL7npLrmjqfku7ZcbiAgU3dpdGNoLCAvLyDlvIDlhbNcbiAgVGltZSAvLyDml7bpl7TpgInmi6nlmahcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgSGRGb3JtTGluZXNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
|