@ng-nest/ui 13.1.3 → 13.1.4

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.
Files changed (41) hide show
  1. package/core/config/config.d.ts +4 -0
  2. package/dialog/dialog-portal.component.d.ts +33 -5
  3. package/dialog/dialog-portal.directives.d.ts +17 -0
  4. package/dialog/dialog-ref.d.ts +11 -1
  5. package/dialog/dialog.module.d.ts +1 -1
  6. package/dialog/dialog.property.d.ts +28 -0
  7. package/dialog/dialog.service.d.ts +1 -0
  8. package/esm2020/core/config/config.mjs +1 -1
  9. package/esm2020/dialog/dialog-portal.component.mjs +49 -12
  10. package/esm2020/dialog/dialog-portal.directives.mjs +47 -1
  11. package/esm2020/dialog/dialog-ref.mjs +81 -2
  12. package/esm2020/dialog/dialog.module.mjs +10 -2
  13. package/esm2020/dialog/dialog.property.mjs +1 -1
  14. package/esm2020/dialog/dialog.service.mjs +53 -8
  15. package/esm2020/list/list-option.component.mjs +21 -8
  16. package/esm2020/list/list.component.mjs +3 -3
  17. package/esm2020/list/list.property.mjs +13 -3
  18. package/esm2020/resizable/resizable.directive.mjs +10 -4
  19. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  20. package/fesm2015/ng-nest-ui-dialog.mjs +244 -25
  21. package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
  22. package/fesm2015/ng-nest-ui-list.mjs +36 -15
  23. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  24. package/fesm2015/ng-nest-ui-resizable.mjs +9 -3
  25. package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
  26. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  27. package/fesm2020/ng-nest-ui-dialog.mjs +237 -25
  28. package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
  29. package/fesm2020/ng-nest-ui-list.mjs +36 -15
  30. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  31. package/fesm2020/ng-nest-ui-resizable.mjs +9 -3
  32. package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
  33. package/list/examples/en_US/default/size/README.md +6 -0
  34. package/list/examples/zh_CN/default/size/README.md +6 -0
  35. package/list/list-option.component.d.ts +8 -2
  36. package/list/list.property.d.ts +13 -3
  37. package/package.json +1 -1
  38. package/rate/examples/en_US/default/color/README.md +6 -0
  39. package/rate/examples/zh_CN/default/color/README.md +6 -0
  40. package/resizable/resizable.directive.d.ts +3 -1
  41. package/tag/examples/zh_CN/default/bordered/README.md +1 -1
@@ -59,7 +59,7 @@ export class XListProperty extends XControlValueAccessor {
59
59
  }
60
60
  }
61
61
  /** @nocollapse */ /** @nocollapse */ XListProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XListProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
62
- /** @nocollapse */ /** @nocollapse */ XListProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XListProperty, selector: "ng-component", inputs: { data: "data", multiple: "multiple", selectAll: "selectAll", selectAllText: "selectAllText", checked: "checked", drag: "drag", objectArray: "objectArray", nodeTpl: "nodeTpl", header: "header", footer: "footer", scrollElement: "scrollElement" }, outputs: { onSelectAll: "onSelectAll", nodeMouseenter: "nodeMouseenter", nodeMouseleave: "nodeMouseleave", nodeClick: "nodeClick", keyManagerTabOut: "keyManagerTabOut", keyManagerChange: "keyManagerChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
62
+ /** @nocollapse */ /** @nocollapse */ XListProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XListProperty, selector: "ng-component", inputs: { data: "data", multiple: "multiple", selectAll: "selectAll", selectAllText: "selectAllText", checked: "checked", drag: "drag", objectArray: "objectArray", nodeTpl: "nodeTpl", header: "header", footer: "footer", scrollElement: "scrollElement", size: "size" }, outputs: { onSelectAll: "onSelectAll", nodeMouseenter: "nodeMouseenter", nodeMouseleave: "nodeMouseleave", nodeClick: "nodeClick", keyManagerTabOut: "keyManagerTabOut", keyManagerChange: "keyManagerChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
63
63
  __decorate([
64
64
  XDataConvert()
65
65
  ], XListProperty.prototype, "data", void 0);
@@ -81,6 +81,9 @@ __decorate([
81
81
  __decorate([
82
82
  XInputBoolean()
83
83
  ], XListProperty.prototype, "objectArray", void 0);
84
+ __decorate([
85
+ XWithConfig(X_CONFIG_NAME, 'medium')
86
+ ], XListProperty.prototype, "size", void 0);
84
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XListProperty, decorators: [{
85
88
  type: Component,
86
89
  args: [{ template: '' }]
@@ -106,6 +109,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
106
109
  type: Input
107
110
  }], scrollElement: [{
108
111
  type: Input
112
+ }], size: [{
113
+ type: Input
109
114
  }], onSelectAll: [{
110
115
  type: Output
111
116
  }], nodeMouseenter: [{
@@ -138,7 +143,7 @@ export class XListOptionProperty {
138
143
  }
139
144
  }
140
145
  /** @nocollapse */ /** @nocollapse */ XListOptionProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XListOptionProperty, deps: [], target: i0.ɵɵFactoryTarget.Component });
141
- /** @nocollapse */ /** @nocollapse */ XListOptionProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XListOptionProperty, selector: "ng-component", inputs: { node: "node", checked: "checked", nodeTpl: "nodeTpl", selected: "selected", disabled: "disabled", active: "active", icon: "icon", divided: "divided", label: "label", leaf: "leaf" }, outputs: { activeChange: "activeChange" }, ngImport: i0, template: '', isInline: true });
146
+ /** @nocollapse */ /** @nocollapse */ XListOptionProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XListOptionProperty, selector: "ng-component", inputs: { node: "node", checked: "checked", nodeTpl: "nodeTpl", selected: "selected", disabled: "disabled", active: "active", icon: "icon", divided: "divided", label: "label", leaf: "leaf", size: "size" }, outputs: { activeChange: "activeChange" }, ngImport: i0, template: '', isInline: true });
142
147
  __decorate([
143
148
  XInputBoolean()
144
149
  ], XListOptionProperty.prototype, "checked", void 0);
@@ -154,6 +159,9 @@ __decorate([
154
159
  __decorate([
155
160
  XInputBoolean()
156
161
  ], XListOptionProperty.prototype, "leaf", void 0);
162
+ __decorate([
163
+ XWithConfig(X_CONFIG_NAME, 'medium')
164
+ ], XListOptionProperty.prototype, "size", void 0);
157
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XListOptionProperty, decorators: [{
158
166
  type: Component,
159
167
  args: [{ template: '' }]
@@ -177,7 +185,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
177
185
  type: Input
178
186
  }], leaf: [{
179
187
  type: Input
188
+ }], size: [{
189
+ type: Input
180
190
  }], activeChange: [{
181
191
  type: Output
182
192
  }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2xpc3QvbGlzdC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUliLFdBQVcsRUFDWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBQ3BDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUU3Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFjLFNBQVEscUJBQTBCO0lBRDdEOztRQUVFOzs7V0FHRztRQUNzQixTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUNyRDs7O1dBR0c7UUFDc0IsYUFBUSxHQUFZLENBQUMsQ0FBQztRQThDL0M7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3BEOzs7V0FHRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUN6RDs7O1dBR0c7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDekQ7OztXQUdHO1FBQ08sY0FBUyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDcEQ7OztXQUdHO1FBQ08scUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RDs7O1dBR0c7UUFDTyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ3pEOztnSkF0RlksYUFBYTtvSUFBYixhQUFhLDBoQkFESCxFQUFFO0FBTUU7SUFBZixZQUFZLEVBQUU7MkNBQTZCO0FBSzVCO0lBQWYsWUFBWSxFQUFFOytDQUF1QjtBQUtyQjtJQUFoQixhQUFhLEVBQUU7Z0RBQXNCO0FBS0Y7SUFBbkMsV0FBVyxDQUFTLGFBQWEsQ0FBQztvREFBd0I7QUFLMUM7SUFBaEIsYUFBYSxFQUFFOzhDQUFvQjtBQUtuQjtJQUFoQixhQUFhLEVBQUU7MkNBQWlCO0FBS2hCO0lBQWhCLGFBQWEsRUFBRTtrREFBd0I7MkZBbkN0QyxhQUFhO2tCQUR6QixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNQSxJQUFJO3NCQUE1QixLQUFLO2dCQUttQixRQUFRO3NCQUFoQyxLQUFLO2dCQUtvQixTQUFTO3NCQUFsQyxLQUFLO2dCQUt1QyxhQUFhO3NCQUF6RCxLQUFLO2dCQUtvQixPQUFPO3NCQUFoQyxLQUFLO2dCQUtvQixJQUFJO3NCQUE3QixLQUFLO2dCQUtvQixXQUFXO3NCQUFwQyxLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxNQUFNO3NCQUFkLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNO2dCQUtHLGNBQWM7c0JBQXZCLE1BQU07Z0JBS0csU0FBUztzQkFBbEIsTUFBTTtnQkFLRyxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBS0csZ0JBQWdCO3NCQUF6QixNQUFNOztBQW1DVDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsZUFBZSxDQUFDO0FBRWpEOztHQUVHO0FBRUgsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQW9ERTs7O1dBR0c7UUFDTyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0FDdEQ7O3NKQXhEWSxtQkFBbUI7MElBQW5CLG1CQUFtQiwrUkFEVCxFQUFFO0FBV0c7SUFBaEIsYUFBYSxFQUFFO29EQUFvQjtBQVVuQjtJQUFoQixhQUFhLEVBQUU7cURBQW9CO0FBS25CO0lBQWhCLGFBQWEsRUFBRTtxREFBb0I7QUFLbkI7SUFBaEIsYUFBYSxFQUFFO21EQUFrQjtBQW9CakI7SUFBaEIsYUFBYSxFQUFFO2lEQUFnQjsyRkFsRDlCLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLb0IsT0FBTztzQkFBaEMsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS29CLFFBQVE7c0JBQWpDLEtBQUs7Z0JBS29CLFFBQVE7c0JBQWpDLEtBQUs7Z0JBS29CLE1BQU07c0JBQS9CLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS29CLElBQUk7c0JBQTdCLEtBQUs7Z0JBS0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWERhdGEsXHJcbiAgWFBhcmVudElkZW50aXR5UHJvcGVydHksXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhJbnB1dE51bWJlcixcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhOdW1iZXIsXHJcbiAgWEJvb2xlYW4sXHJcbiAgWFRlbXBsYXRlLFxyXG4gIFhXaXRoQ29uZmlnXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuLyoqXHJcbiAqIExpc3RcclxuICogQHNlbGVjdG9yIHgtbGlzdFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhMaXN0UHJlZml4ID0gJ3gtbGlzdCc7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAnbGlzdCc7XHJcblxyXG4vKipcclxuICogTGlzdCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWExpc3RQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6KGo5pWw5o2uXHJcbiAgICogQGVuX1VTIExpc3QgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBkYXRhOiBYRGF0YTxYTGlzdE5vZGU+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWkmumAieS4quaVsO+8jOiuvue9ruS4ujDvvIzkuI3pmZDliLbpgInmi6nkuKrmlbBcclxuICAgKiBAZW5fVVMgTXVsdGlwbGUgY2hvaWNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIG11bHRpcGxlOiBYTnVtYmVyID0gMTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa6YCJ5re75Yqg5YWo6YCJ5Yqf6IO977yM6YCC55So5LqOIG11bHRpcGxlPTBcclxuICAgKiBAZW5fVVMgTXVsdGkgY2hvaWNlIHRvIGFkZCBmdWxsIHNlbGVjdGlvbiBmdW5jdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2VsZWN0QWxsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFqOmAieeahOaWh+Wtl1xyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBhbGwgdGV4dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUpIHNlbGVjdEFsbFRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4rVxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgY2hlY2tlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqhcclxuICAgKiBAZW5fVVMgRHJhZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgZHJhZz86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPlvIDlkK/lpJrpgInnmoTml7blgJnvvIxuZ01vZGVsIOeahOWAvOS4uuWvueixoeaVsOe7hFxyXG4gICAqIEBlbl9VUyBXaGVuIG11bHRpcGxlIHNlbGVjdGlvbiBpcyBlbmFibGVkLCB0aGUgdmFsdWUgb2Ygbmdtb2RlbCBpcyBhbiBhcnJheSBvZiBvYmplY3RzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBvYmplY3RBcnJheT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmqKHmnb9cclxuICAgKiBAZW5fVVMgTm9kZSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGVUcGw/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfooajlpLTpg6hcclxuICAgKiBAZW5fVVMgTGlzdCBoZWFkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+ihqOW6lemDqFxyXG4gICAqIEBlbl9VUyBMaXN0IGZvb3RlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f5YWD57SgXHJcbiAgICogQGVuX1VTIFJvbGxpbmcgYXJlYSBlbGVtZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsRWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBGdWxsIGV2ZW50XHJcbiAgICogQGVuX1VTIOWFqOmAieS6i+S7tlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdEFsbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K5IG1vdXNlZW50ZXIg5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgbW91c2VlbnRlciBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlTW91c2VlbnRlciA9IG5ldyBFdmVudEVtaXR0ZXI8WExpc3ROb2RlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrkgbW91c2VsZWF2ZSDkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBtb3VzZWxlYXZlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVNb3VzZWxlYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxYTGlzdE5vZGU+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueeCueWHu+S6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIGNsaWNrIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIG5vZGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8WExpc3ROb2RlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBUYWIgb3V0IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBUYWIgT3V0IGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGtleU1hbmFnZXJUYWJPdXQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIFRhYiBvdXQg5LqL5Lu2XHJcbiAgICogQGVuX1VTIFRhYiBPdXQgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkga2V5TWFuYWdlckNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG59XHJcblxyXG4vKipcclxuICogQHpoX0NOIExpc3Qg5pWw5o2u5a+56LGhXHJcbiAqIEBlbl9VUyBMaXN0IGRhdGEgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhMaXN0Tm9kZSBleHRlbmRzIFhQYXJlbnRJZGVudGl0eVByb3BlcnR5PGFueT4ge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlm77moIdcclxuICAgKiBAZW5fVVMgSWljb25cclxuICAgKi9cclxuICBpY29uPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIblibLnur9cclxuICAgKiBAZW5fVVMgU3BsaXQgbGluZVxyXG4gICAqL1xyXG4gIGRpdmlkZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDkuovku7ZcclxuICAgKiBAZW5fVVMgRXZlbnRcclxuICAgKi9cclxuICBldmVudD86IEV2ZW50O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmgqzlgZxcclxuICAgKiBAZW5fVVMgSG92ZXJcclxuICAgKi9cclxuICBob3Zlcj86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa/gOa0u1xyXG4gICAqIEBlbl9VUyBBY3RpdmVcclxuICAgKi9cclxuICBhY3RpdmU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogTGlzdCBPcHRpb25cclxuICogQHNlbGVjdG9yIHgtbGlzdC1vcHRpb25cclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYTGlzdE9wdGlvblByZWZpeCA9ICd4LWxpc3Qtb3B0aW9uJztcclxuXHJcbi8qKlxyXG4gKiBMaXN0IE9wdGlvbiBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWExpc3RPcHRpb25Qcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueWPguaVsFxyXG4gICAqIEBlbl9VUyBOb2RlIHBhcmFtXHJcbiAgICovXHJcbiAgQElucHV0KCkgbm9kZT86IFhMaXN0Tm9kZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6YCJ5LitXHJcbiAgICogQGVuX1VTIFNlbGVjdGVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBjaGVja2VkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueaooeadv1xyXG4gICAqIEBlbl9VUyBOb2RlIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbm9kZVRwbD86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4rVxyXG4gICAqIEBlbl9VUyBzZWxlY3RlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2VsZWN0ZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKhcclxuICAgKiBAZW5fVVMgZGlzYWJsZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5r+A5rS7XHJcbiAgICogQGVuX1VTIGFjdGl2ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgYWN0aXZlPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCHXHJcbiAgICogQGVuX1VTIGljb25cclxuICAgKi9cclxuICBASW5wdXQoKSBpY29uPzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliIblibLnur9cclxuICAgKiBAZW5fVVMgU3BsaXQgbGluZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRpdmlkZWQ/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfnrb5cclxuICAgKiBAZW5fVVMgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5pyJ5a2Q6IqC54K5XHJcbiAgICogQGVuX1VTIGxlYWZcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGxlYWY/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmnInlrZDoioLngrlcclxuICAgKiBAZW5fVVMgbGVhZlxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBhY3RpdmVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbn1cclxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wcm9wZXJ0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2xpc3QvbGlzdC5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFlBQVksRUFDWixZQUFZLEVBQ1osYUFBYSxFQUliLFdBQVcsRUFFWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBRTlEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBQ3BDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUU3Qjs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFjLFNBQVEscUJBQTBCO0lBRDdEOztRQUVFOzs7V0FHRztRQUNzQixTQUFJLEdBQXFCLEVBQUUsQ0FBQztRQUNyRDs7O1dBR0c7UUFDc0IsYUFBUSxHQUFZLENBQUMsQ0FBQztRQW1EL0M7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBQ3BEOzs7V0FHRztRQUNPLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUN6RDs7O1dBR0c7UUFDTyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDekQ7OztXQUdHO1FBQ08sY0FBUyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFDcEQ7OztXQUdHO1FBQ08scUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RDs7O1dBR0c7UUFDTyxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQ3pEOztnSkEzRlksYUFBYTtvSUFBYixhQUFhLHdpQkFESCxFQUFFO0FBTUU7SUFBZixZQUFZLEVBQUU7MkNBQTZCO0FBSzVCO0lBQWYsWUFBWSxFQUFFOytDQUF1QjtBQUtyQjtJQUFoQixhQUFhLEVBQUU7Z0RBQXNCO0FBS0Y7SUFBbkMsV0FBVyxDQUFTLGFBQWEsQ0FBQztvREFBd0I7QUFLMUM7SUFBaEIsYUFBYSxFQUFFOzhDQUFvQjtBQUtuQjtJQUFoQixhQUFhLEVBQUU7MkNBQWlCO0FBS2hCO0lBQWhCLGFBQWEsRUFBRTtrREFBd0I7QUF5Qks7SUFBNUMsV0FBVyxDQUFRLGFBQWEsRUFBRSxRQUFRLENBQUM7MkNBQXVCOzJGQTVEakUsYUFBYTtrQkFEekIsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTUEsSUFBSTtzQkFBNUIsS0FBSztnQkFLbUIsUUFBUTtzQkFBaEMsS0FBSztnQkFLb0IsU0FBUztzQkFBbEMsS0FBSztnQkFLdUMsYUFBYTtzQkFBekQsS0FBSztnQkFLb0IsT0FBTztzQkFBaEMsS0FBSztnQkFLb0IsSUFBSTtzQkFBN0IsS0FBSztnQkFLb0IsV0FBVztzQkFBcEMsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUt5RCxJQUFJO3NCQUFsRSxLQUFLO2dCQUtJLFdBQVc7c0JBQXBCLE1BQU07Z0JBS0csY0FBYztzQkFBdkIsTUFBTTtnQkFLRyxjQUFjO3NCQUF2QixNQUFNO2dCQUtHLFNBQVM7c0JBQWxCLE1BQU07Z0JBS0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUtHLGdCQUFnQjtzQkFBekIsTUFBTTs7QUFtQ1Q7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLGVBQWUsQ0FBQztBQUVqRDs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUF5REU7OztXQUdHO1FBQ08saUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBQ3REOztzSkE3RFksbUJBQW1COzBJQUFuQixtQkFBbUIsNlNBRFQsRUFBRTtBQVdHO0lBQWhCLGFBQWEsRUFBRTtvREFBb0I7QUFVbkI7SUFBaEIsYUFBYSxFQUFFO3FEQUFvQjtBQUtuQjtJQUFoQixhQUFhLEVBQUU7cURBQW9CO0FBS25CO0lBQWhCLGFBQWEsRUFBRTttREFBa0I7QUFvQmpCO0lBQWhCLGFBQWEsRUFBRTtpREFBZ0I7QUFLYTtJQUE1QyxXQUFXLENBQVEsYUFBYSxFQUFFLFFBQVEsQ0FBQztpREFBYzsyRkF2RHhELG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7OEJBTWhCLElBQUk7c0JBQVosS0FBSztnQkFLb0IsT0FBTztzQkFBaEMsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS29CLFFBQVE7c0JBQWpDLEtBQUs7Z0JBS29CLFFBQVE7c0JBQWpDLEtBQUs7Z0JBS29CLE1BQU07c0JBQS9CLEtBQUs7Z0JBS0csSUFBSTtzQkFBWixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxLQUFLO3NCQUFiLEtBQUs7Z0JBS29CLElBQUk7c0JBQTdCLEtBQUs7Z0JBS2dELElBQUk7c0JBQXpELEtBQUs7Z0JBS0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgWERhdGEsXHJcbiAgWFBhcmVudElkZW50aXR5UHJvcGVydHksXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhJbnB1dE51bWJlcixcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhOdW1iZXIsXHJcbiAgWEJvb2xlYW4sXHJcbiAgWFRlbXBsYXRlLFxyXG4gIFhXaXRoQ29uZmlnLFxyXG4gIFhTaXplXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5cclxuLyoqXHJcbiAqIExpc3RcclxuICogQHNlbGVjdG9yIHgtbGlzdFxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhMaXN0UHJlZml4ID0gJ3gtbGlzdCc7XHJcbmNvbnN0IFhfQ09ORklHX05BTUUgPSAnbGlzdCc7XHJcblxyXG4vKipcclxuICogTGlzdCBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWExpc3RQcm9wZXJ0eSBleHRlbmRzIFhDb250cm9sVmFsdWVBY2Nlc3Nvcjxhbnk+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiX6KGo5pWw5o2uXHJcbiAgICogQGVuX1VTIExpc3QgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBkYXRhOiBYRGF0YTxYTGlzdE5vZGU+ID0gW107XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWkmumAieS4quaVsO+8jOiuvue9ruS4ujDvvIzkuI3pmZDliLbpgInmi6nkuKrmlbBcclxuICAgKiBAZW5fVVMgTXVsdGlwbGUgY2hvaWNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIG11bHRpcGxlOiBYTnVtYmVyID0gMTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5aSa6YCJ5re75Yqg5YWo6YCJ5Yqf6IO977yM6YCC55So5LqOIG11bHRpcGxlPTBcclxuICAgKiBAZW5fVVMgTXVsdGkgY2hvaWNlIHRvIGFkZCBmdWxsIHNlbGVjdGlvbiBmdW5jdGlvblxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgc2VsZWN0QWxsPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWFqOmAieeahOaWh+Wtl1xyXG4gICAqIEBlbl9VUyBTZWxlY3RlZCBhbGwgdGV4dFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxzdHJpbmc+KFhfQ09ORklHX05BTUUpIHNlbGVjdEFsbFRleHQ/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4rVxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgY2hlY2tlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmi5bliqhcclxuICAgKiBAZW5fVVMgRHJhZ1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgZHJhZz86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlvZPlvIDlkK/lpJrpgInnmoTml7blgJnvvIxuZ01vZGVsIOeahOWAvOS4uuWvueixoeaVsOe7hFxyXG4gICAqIEBlbl9VUyBXaGVuIG11bHRpcGxlIHNlbGVjdGlvbiBpcyBlbmFibGVkLCB0aGUgdmFsdWUgb2Ygbmdtb2RlbCBpcyBhbiBhcnJheSBvZiBvYmplY3RzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBvYmplY3RBcnJheT86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmqKHmnb9cclxuICAgKiBAZW5fVVMgTm9kZSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGVUcGw/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDliJfooajlpLTpg6hcclxuICAgKiBAZW5fVVMgTGlzdCBoZWFkZXJcclxuICAgKi9cclxuICBASW5wdXQoKSBoZWFkZXI/OiBYVGVtcGxhdGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWIl+ihqOW6lemDqFxyXG4gICAqIEBlbl9VUyBMaXN0IGZvb3RlclxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5rua5Yqo5Yy65Z+f5YWD57SgXHJcbiAgICogQGVuX1VTIFJvbGxpbmcgYXJlYSBlbGVtZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgc2Nyb2xsRWxlbWVudD86IEhUTUxFbGVtZW50O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfTkFNRSwgJ21lZGl1bScpIG92ZXJyaWRlIHNpemUhOiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04gRnVsbCBldmVudFxyXG4gICAqIEBlbl9VUyDlhajpgInkuovku7ZcclxuICAgKi9cclxuICBAT3V0cHV0KCkgb25TZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCuSBtb3VzZWVudGVyIOS6i+S7tlxyXG4gICAqIEBlbl9VUyBOb2RlIG1vdXNlZW50ZXIgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZU1vdXNlZW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFhMaXN0Tm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K5IG1vdXNlbGVhdmUg5LqL5Lu2XHJcbiAgICogQGVuX1VTIE5vZGUgbW91c2VsZWF2ZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlTW91c2VsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXI8WExpc3ROb2RlPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnngrnlh7vkuovku7ZcclxuICAgKiBAZW5fVVMgTm9kZSBjbGljayBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPFhMaXN0Tm9kZT4oKTtcclxuICAvKipcclxuICAgKiBAemhfQ04gVGFiIG91dCDkuovku7ZcclxuICAgKiBAZW5fVVMgVGFiIE91dCBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBrZXlNYW5hZ2VyVGFiT3V0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiBUYWIgb3V0IOS6i+S7tlxyXG4gICAqIEBlbl9VUyBUYWIgT3V0IGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGtleU1hbmFnZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiBMaXN0IOaVsOaNruWvueixoVxyXG4gKiBAZW5fVVMgTGlzdCBkYXRhIG9iamVjdFxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBYTGlzdE5vZGUgZXh0ZW5kcyBYUGFyZW50SWRlbnRpdHlQcm9wZXJ0eTxhbnk+IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g5Zu+5qCHXHJcbiAgICogQGVuX1VTIElpY29uXHJcbiAgICovXHJcbiAgaWNvbj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG5Ymy57q/XHJcbiAgICogQGVuX1VTIFNwbGl0IGxpbmVcclxuICAgKi9cclxuICBkaXZpZGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5LqL5Lu2XHJcbiAgICogQGVuX1VTIEV2ZW50XHJcbiAgICovXHJcbiAgZXZlbnQ/OiBFdmVudDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5oKs5YGcXHJcbiAgICogQGVuX1VTIEhvdmVyXHJcbiAgICovXHJcbiAgaG92ZXI/OiBib29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmv4DmtLtcclxuICAgKiBAZW5fVVMgQWN0aXZlXHJcbiAgICovXHJcbiAgYWN0aXZlPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIExpc3QgT3B0aW9uXHJcbiAqIEBzZWxlY3RvciB4LWxpc3Qtb3B0aW9uXHJcbiAqIEBkZWNvcmF0b3IgY29tcG9uZW50XHJcbiAqL1xyXG5leHBvcnQgY29uc3QgWExpc3RPcHRpb25QcmVmaXggPSAneC1saXN0LW9wdGlvbic7XHJcblxyXG4vKipcclxuICogTGlzdCBPcHRpb24gUHJvcGVydHlcclxuICovXHJcbkBDb21wb25lbnQoeyB0ZW1wbGF0ZTogJycgfSlcclxuZXhwb3J0IGNsYXNzIFhMaXN0T3B0aW9uUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnlj4LmlbBcclxuICAgKiBAZW5fVVMgTm9kZSBwYXJhbVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGU/OiBYTGlzdE5vZGU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOmAieS4rVxyXG4gICAqIEBlbl9VUyBTZWxlY3RlZFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYSW5wdXRCb29sZWFuKCkgY2hlY2tlZD86IFhCb29sZWFuO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmqKHmnb9cclxuICAgKiBAZW5fVVMgTm9kZSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGVUcGw/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDpgInkuK1cclxuICAgKiBAZW5fVVMgc2VsZWN0ZWRcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIHNlbGVjdGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55SoXHJcbiAgICogQGVuX1VTIGRpc2FibGVkXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa/gOa0u1xyXG4gICAqIEBlbl9VUyBhY3RpdmVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0Qm9vbGVhbigpIGFjdGl2ZT86IGJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWbvuagh1xyXG4gICAqIEBlbl9VUyBpY29uXHJcbiAgICovXHJcbiAgQElucHV0KCkgaWNvbj86IHN0cmluZztcclxuICAvKipcclxuICAgKiBAemhfQ04g5YiG5Ymy57q/XHJcbiAgICogQGVuX1VTIFNwbGl0IGxpbmVcclxuICAgKi9cclxuICBASW5wdXQoKSBkaXZpZGVkPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5qCH562+XHJcbiAgICogQGVuX1VTIGxhYmVsXHJcbiAgICovXHJcbiAgQElucHV0KCkgbGFiZWw/OiBzdHJpbmc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacieWtkOiKgueCuVxyXG4gICAqIEBlbl9VUyBsZWFmXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dEJvb2xlYW4oKSBsZWFmPzogYm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bC65a+4XHJcbiAgICogQGVuX1VTIFNpemVcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WFNpemU+KFhfQ09ORklHX05BTUUsICdtZWRpdW0nKSBzaXplITogWFNpemU7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOacieWtkOiKgueCuVxyXG4gICAqIEBlbl9VUyBsZWFmXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGFjdGl2ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxufVxyXG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { DOCUMENT } from '@angular/common';
2
2
  import { Directive, HostListener, Inject } from '@angular/core';
3
- import { XIsArray, XIsString } from '@ng-nest/ui/core';
3
+ import { XIsArray, XIsChange, XIsString } from '@ng-nest/ui/core';
4
4
  import { fromEvent, takeUntil } from 'rxjs';
5
5
  import { XResizablePrefix, XResizableProperty } from './resizable.property';
6
6
  import * as i0 from "@angular/core";
@@ -15,6 +15,7 @@ export class XResizableDirective extends XResizableProperty {
15
15
  this.newBox = { clientWidth: 0, clientHeight: 0, offsetLeft: 0, offsetTop: 0 };
16
16
  this.positionNodes = {};
17
17
  this.activatingNodes = [];
18
+ this.firstLoaded = true;
18
19
  this.document = doc;
19
20
  this.ele = this.elementRef.nativeElement;
20
21
  }
@@ -27,6 +28,10 @@ export class XResizableDirective extends XResizableProperty {
27
28
  ngOnDestroy() {
28
29
  this.destroySubscription();
29
30
  }
31
+ ngOnChanges(changes) {
32
+ const { xResizable } = changes;
33
+ XIsChange(xResizable) && this.setPosition();
34
+ }
30
35
  mousedown(event) {
31
36
  if (!this.xResizable)
32
37
  return;
@@ -61,7 +66,7 @@ export class XResizableDirective extends XResizableProperty {
61
66
  this.renderer.addClass(this.ele, XResizablePrefix);
62
67
  }
63
68
  setPosition() {
64
- if (!this.xResizable)
69
+ if (!this.xResizable && !this.firstLoaded)
65
70
  return;
66
71
  let positions = [];
67
72
  if (XIsString(this.position)) {
@@ -83,6 +88,7 @@ export class XResizableDirective extends XResizableProperty {
83
88
  this.maxWidth = parseFloat(computedStyle.maxWidth);
84
89
  this.minHeight = parseFloat(computedStyle.minHeight);
85
90
  this.maxHeight = parseFloat(computedStyle.maxHeight);
91
+ this.firstLoaded = false;
86
92
  });
87
93
  }
88
94
  setActivatingNodes(direction) {
@@ -241,7 +247,7 @@ export class XResizableDirective extends XResizableProperty {
241
247
  }
242
248
  }
243
249
  /** @nocollapse */ /** @nocollapse */ XResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XResizableDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
244
- /** @nocollapse */ /** @nocollapse */ XResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: XResizableDirective, selector: "[xResizable]", host: { listeners: { "mousedown": "mousedown($event)", "touchstart": "mousedown($event)" } }, usesInheritance: true, ngImport: i0 });
250
+ /** @nocollapse */ /** @nocollapse */ XResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.2", type: XResizableDirective, selector: "[xResizable]", host: { listeners: { "mousedown": "mousedown($event)", "touchstart": "mousedown($event)" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0 });
245
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XResizableDirective, decorators: [{
246
252
  type: Directive,
247
253
  args: [{ selector: '[xResizable]' }]
@@ -255,4 +261,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
255
261
  type: HostListener,
256
262
  args: ['touchstart', ['$event']]
257
263
  }] } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3Jlc2l6YWJsZS9yZXNpemFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQWdDLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBc0IsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHaEcsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQWtCekQsWUFBb0IsUUFBbUIsRUFBVSxVQUFzQixFQUFvQixHQUFRO1FBQ2pHLEtBQUssRUFBRSxDQUFDO1FBRFUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGVBQVUsR0FBVixVQUFVLENBQVk7UUFmdkUsb0JBQWUsR0FBeUIsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvRixpQkFBWSxHQUF5QixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqRyxjQUFTLEdBQXlCLEVBQUUsQ0FBQztRQUVyQyxXQUFNLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFRMUUsa0JBQWEsR0FBbUMsRUFBRSxDQUFDO1FB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VUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7c0pBdFFVLG1CQUFtQixxRUFrQm1ELFFBQVE7MElBbEI5RSxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7OzBCQW1CcUMsTUFBTTsyQkFBQyxRQUFROzRDQW9CekYsU0FBUztzQkFGUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhJc0FycmF5LCBYSXNTdHJpbmcgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYUmVzaXphYmxlUG9zaXRpb24sIFhSZXNpemFibGVQcmVmaXgsIFhSZXNpemFibGVQcm9wZXJ0eSB9IGZyb20gJy4vcmVzaXphYmxlLnByb3BlcnR5JztcclxuXHJcbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1t4UmVzaXphYmxlXScgfSlcclxuZXhwb3J0IGNsYXNzIFhSZXNpemFibGVEaXJlY3RpdmUgZXh0ZW5kcyBYUmVzaXphYmxlUHJvcGVydHkgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZG9jdW1lbnQhOiBEb2N1bWVudDtcclxuICBlbGUhOiBIVE1MRWxlbWVudDtcclxuICBjb3JuZXJQb3NpdGlvbnM6IFhSZXNpemFibGVQb3NpdGlvbltdID0gWyd0b3Atc3RhcnQnLCAndG9wLWVuZCcsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCddO1xyXG4gIGFsbFBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbJ2xlZnQnLCAncmlnaHQnLCAndG9wJywgJ2JvdHRvbScsIC4uLnRoaXMuY29ybmVyUG9zaXRpb25zXTtcclxuICBwb3NpdGlvbnM6IFhSZXNpemFibGVQb3NpdGlvbltdID0gW107XHJcbiAgZGlyZWN0aW9uPzogWFJlc2l6YWJsZVBvc2l0aW9uIHwgbnVsbDtcclxuICBuZXdCb3ggPSB7IGNsaWVudFdpZHRoOiAwLCBjbGllbnRIZWlnaHQ6IDAsIG9mZnNldExlZnQ6IDAsIG9mZnNldFRvcDogMCB9O1xyXG4gIG1vdXNlVXBTdWI/OiBTdWJzY3JpcHRpb247XHJcblxyXG4gIG1pbldpZHRoPzogbnVtYmVyO1xyXG4gIG1heFdpZHRoPzogbnVtYmVyO1xyXG4gIG1pbkhlaWdodD86IG51bWJlcjtcclxuICBtYXhIZWlnaHQ/OiBudW1iZXI7XHJcblxyXG4gIHBvc2l0aW9uTm9kZXM6IHsgW2tleTogc3RyaW5nXTogSFRNTEVsZW1lbnQgfSA9IHt9O1xyXG4gIGFjdGl2YXRpbmdOb2RlczogSFRNTEVsZW1lbnRbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgQEluamVjdChET0NVTUVOVCkgZG9jOiBhbnkpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jO1xyXG4gICAgdGhpcy5lbGUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRNYXBDbGFzcygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5zZXRQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXHJcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXHJcbiAgbW91c2Vkb3duKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLnhSZXNpemFibGUpIHJldHVybjtcclxuICAgIGNvbnN0IGNsYXNzTGlzdCA9IChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdDtcclxuICAgIGxldCBkaXJlY3Rpb246IFhSZXNpemFibGVQb3NpdGlvbiB8IG51bGwgPSBudWxsO1xyXG4gICAgZm9yIChsZXQgcG9zIG9mIHRoaXMuYWxsUG9zaXRpb25zKSB7XHJcbiAgICAgIGlmIChjbGFzc0xpc3QuY29udGFpbnMoYHgtcmVzaXphYmxlLSR7cG9zfWApKSB7XHJcbiAgICAgICAgZGlyZWN0aW9uID0gcG9zO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIWRpcmVjdGlvbikgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AgfSA9IHRoaXMuZWxlO1xyXG4gICAgY29uc3QgeyBzY3JlZW5YLCBzY3JlZW5ZIH0gPSBldnQ7XHJcbiAgICBjb25zdCBpc1RvdWNoRXZlbnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJyk7XHJcbiAgICBjb25zdCBtb3ZlRXZlbnQgPSBpc1RvdWNoRXZlbnQgPyAndG91Y2htb3ZlJyA6ICdtb3VzZW1vdmUnO1xyXG4gICAgY29uc3QgdXBFdmVudCA9IGlzVG91Y2hFdmVudCA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCc7XHJcblxyXG4gICAgdGhpcy5zZXRBY3RpdmF0aW5nTm9kZXMoZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuaW5pdFJlc2l6ZShldmVudCwgZGlyZWN0aW9uKTtcclxuXHJcbiAgICBjb25zdCBtb3VzZXVwID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQsIHVwRXZlbnQpO1xyXG4gICAgdGhpcy5tb3VzZVVwU3ViID0gbW91c2V1cC5zdWJzY3JpYmUoKGV2KSA9PiB7XHJcbiAgICAgIHRoaXMubW91c2V1cChldiBhcyBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG1vdXNlTW92ZVN1YiA9IGZyb21FdmVudChkb2N1bWVudCwgbW92ZUV2ZW50KVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwobW91c2V1cCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2KSA9PiB0aGlzLm1vdmUoZXYgYXMgTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIG9mZnNldFRvcCwgb2Zmc2V0TGVmdCwgc2NyZWVuWCwgc2NyZWVuWSkpO1xyXG5cclxuICAgIHRoaXMubW91c2VVcFN1Yi5hZGQobW91c2VNb3ZlU3ViKTtcclxuICB9XHJcblxyXG4gIHNldE1hcENsYXNzKCkge1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZSwgWFJlc2l6YWJsZVByZWZpeCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbigpIHtcclxuICAgIGlmICghdGhpcy54UmVzaXphYmxlKSByZXR1cm47XHJcbiAgICBsZXQgcG9zaXRpb25zOiBYUmVzaXphYmxlUG9zaXRpb25bXSA9IFtdO1xyXG4gICAgaWYgKFhJc1N0cmluZyh0aGlzLnBvc2l0aW9uKSkge1xyXG4gICAgICBwb3NpdGlvbnMucHVzaCh0aGlzLnBvc2l0aW9uIGFzIFhSZXNpemFibGVQb3NpdGlvbik7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0FycmF5KHRoaXMucG9zaXRpb24pKSB7XHJcbiAgICAgIHBvc2l0aW9ucyA9IHRoaXMucG9zaXRpb24gYXMgWFJlc2l6YWJsZVBvc2l0aW9uW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHBvc2l0aW9ucy5pbmNsdWRlcygnYWxsJykpIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbnMgPSB0aGlzLmFsbFBvc2l0aW9ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucG9zaXRpb25zID0gcG9zaXRpb25zO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jcmVhdGVOb2RlKC4uLnRoaXMucG9zaXRpb25zKTtcclxuXHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5lbGUpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubWluV2lkdGggPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWluV2lkdGgpO1xyXG4gICAgICB0aGlzLm1heFdpZHRoID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1heFdpZHRoKTtcclxuICAgICAgdGhpcy5taW5IZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWluSGVpZ2h0KTtcclxuICAgICAgdGhpcy5tYXhIZWlnaHQgPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWF4SGVpZ2h0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZhdGluZ05vZGVzKGRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uKSB7XHJcbiAgICBpZiAoIXRoaXMucG9zaXRpb25zLmluY2x1ZGVzKGRpcmVjdGlvbikpIHJldHVybjtcclxuICAgIGNvbnN0IGFkZEFjdGl2YXRpbmdOb2RlID0gKC4uLmRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uW10pID0+IHtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiBkaXJlY3Rpb24pIHtcclxuICAgICAgICBjb25zdCBuZCA9IHRoaXMucG9zaXRpb25Ob2Rlc1tpdGVtXTtcclxuICAgICAgICBjb25zdCBpc05kID0gdGhpcy5hY3RpdmF0aW5nTm9kZXMuaW5jbHVkZXMobmQpO1xyXG4gICAgICAgIGlmICghbmQgfHwgaXNOZCkgY29udGludWU7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhuZCwgJ3gtcmVzaXphYmxlLWFjdGl2YXRpbmcnKTtcclxuICAgICAgICB0aGlzLmFjdGl2YXRpbmdOb2Rlcy5wdXNoKG5kKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICAgIGlmICh0aGlzLmNvcm5lclBvc2l0aW9ucy5pbmNsdWRlcyhkaXJlY3Rpb24pKSB7XHJcbiAgICAgIHN3aXRjaCAoZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgnYm90dG9tJywgJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICAgIGFkZEFjdGl2YXRpbmdOb2RlKCd0b3AnLCAncmlnaHQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgnYm90dG9tJywgJ2xlZnQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgndG9wJywgJ2xlZnQnKTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhZGRBY3RpdmF0aW5nTm9kZShkaXJlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTm9kZSguLi5jbGFzc2VzOiBYUmVzaXphYmxlUG9zaXRpb25bXSkge1xyXG4gICAgZm9yIChsZXQgY2xhIG9mIGNsYXNzZXMpIHtcclxuICAgICAgY29uc3QgcG9zID0gdGhpcy5yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhwb3MsIGB4LXJlc2l6YWJsZS0ke2NsYX1gKTtcclxuICAgICAgdGhpcy5yZW5kZXJlci5hcHBlbmRDaGlsZCh0aGlzLmVsZSwgcG9zKTtcclxuICAgICAgdGhpcy5wb3NpdGlvbk5vZGVzW2NsYV0gPSBwb3M7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0UmVzaXplKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgZGlyZWN0aW9uOiBYUmVzaXphYmxlUG9zaXRpb24pIHtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZSwgYHgtcmVzaXphYmxlLXJlc2l6aW5nYCk7XHJcbiAgICBsZXQgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AgfSA9IHRoaXMuZWxlO1xyXG4gICAgdGhpcy5uZXdCb3ggPSB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIG9mZnNldExlZnQsIG9mZnNldFRvcCB9O1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnJlc2l6ZUJlZ2luLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG1vdXNldXAoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XHJcbiAgICB0aGlzLmVuZFJlc2l6ZShldmVudCk7XHJcbiAgICB0aGlzLmRlc3Ryb3lTdWJzY3JpcHRpb24oKTtcclxuICB9XHJcblxyXG4gIGVuZFJlc2l6ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpIHtcclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgdGhpcy5kaXJlY3Rpb24gPSBudWxsO1xyXG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZSwgYHgtcmVzaXphYmxlLXJlc2l6aW5nYCk7XHJcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5hY3RpdmF0aW5nTm9kZXMpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhub2RlLCAneC1yZXNpemFibGUtYWN0aXZhdGluZycpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5hY3RpdmF0aW5nTm9kZXMgPSBbXTtcclxuICAgIHRoaXMucmVzaXplRW5kLmVtaXQoeyBldmVudDogZXZ0LCAuLi50aGlzLm5ld0JveCB9KTtcclxuICB9XHJcblxyXG4gIG1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50LCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlciwgdG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciwgc2NyZWVuWDogbnVtYmVyLCBzY3JlZW5ZOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGV2dCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKSA/IChldmVudCBhcyBUb3VjaEV2ZW50KS50YXJnZXRUb3VjaGVzWzBdIDogKGV2ZW50IGFzIE1vdXNlRXZlbnQpO1xyXG4gICAgY29uc3QgbW92ZW1lbnRYID0gZXZ0LnNjcmVlblggLSBzY3JlZW5YO1xyXG4gICAgY29uc3QgbW92ZW1lbnRZID0gZXZ0LnNjcmVlblkgLSBzY3JlZW5ZO1xyXG5cclxuICAgIHRoaXMubmV3Qm94ID0ge1xyXG4gICAgICBjbGllbnRXaWR0aDogd2lkdGggLSAoWydib3R0b20tc3RhcnQnLCAnbGVmdCcsICd0b3Atc3RhcnQnXS5pbmNsdWRlcyh0aGlzLmRpcmVjdGlvbiBhcyBzdHJpbmcpID8gbW92ZW1lbnRYIDogLW1vdmVtZW50WCksXHJcbiAgICAgIGNsaWVudEhlaWdodDogaGVpZ2h0IC0gKFsndG9wLXN0YXJ0JywgJ3RvcCcsICd0b3AtZW5kJ10uaW5jbHVkZXModGhpcy5kaXJlY3Rpb24gYXMgc3RyaW5nKSA/IG1vdmVtZW50WSA6IC1tb3ZlbWVudFkpLFxyXG4gICAgICBvZmZzZXRMZWZ0OiBsZWZ0ICsgbW92ZW1lbnRYLFxyXG4gICAgICBvZmZzZXRUb3A6IHRvcCArIG1vdmVtZW50WVxyXG4gICAgfTtcclxuXHJcbiAgICBjb25zdCBib3ggPSB7XHJcbiAgICAgIC4uLnRoaXMubmV3Qm94LFxyXG4gICAgICBvZmZzZXRMZWZ0OiB0aGlzLm5ld0JveC5vZmZzZXRMZWZ0IC0gTnVtYmVyKHRoaXMub2Zmc2V0TGVmdCksXHJcbiAgICAgIG9mZnNldFRvcDogdGhpcy5uZXdCb3gub2Zmc2V0VG9wIC0gTnVtYmVyKHRoaXMub2Zmc2V0VG9wKVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLnJlc2l6ZUJveChib3gpO1xyXG5cclxuICAgIHRoaXMucmVzaXppbmcuZW1pdCh7IC4uLnRoaXMubmV3Qm94LCBldmVudDogZXZ0LCBkaXJlY3Rpb246IHRoaXMuZGlyZWN0aW9uIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzaXplQm94KGJveDogeyBjbGllbnRXaWR0aDogbnVtYmVyOyBjbGllbnRIZWlnaHQ6IG51bWJlcjsgb2Zmc2V0TGVmdDogbnVtYmVyOyBvZmZzZXRUb3A6IG51bWJlciB9KSB7XHJcbiAgICBpZiAodGhpcy5naG9zdCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb3Zlck1pbldpZHRoID0gIXRoaXMubWluV2lkdGggfHwgYm94LmNsaWVudFdpZHRoID49IHRoaXMubWluV2lkdGg7XHJcbiAgICBjb25zdCB1bmRlck1heFdpZHRoID0gIXRoaXMubWF4V2lkdGggfHwgYm94LmNsaWVudFdpZHRoIDw9IHRoaXMubWF4V2lkdGg7XHJcbiAgICBjb25zdCBvdmVyTWluSGVpZ2h0ID0gIXRoaXMubWluSGVpZ2h0IHx8IGJveC5jbGllbnRIZWlnaHQgPj0gdGhpcy5taW5IZWlnaHQ7XHJcbiAgICBjb25zdCB1bmRlck1heEhlaWdodCA9ICF0aGlzLm1heEhlaWdodCB8fCBib3guY2xpZW50SGVpZ2h0IDw9IHRoaXMubWF4SGVpZ2h0O1xyXG5cclxuICAgIHN3aXRjaCAodGhpcy5kaXJlY3Rpb24pIHtcclxuICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ3RvcCcsIGAke2JveC5vZmZzZXRUb3B9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnbGVmdCcsIGAke2JveC5vZmZzZXRMZWZ0fXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICBjb25zb2xlLmxvZyh0aGlzLm1pbldpZHRoKTtcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdsZWZ0JywgYCR7Ym94Lm9mZnNldExlZnR9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdsZWZ0JywgYCR7Ym94Lm9mZnNldExlZnR9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ3RvcCcsIGAke2JveC5vZmZzZXRUb3B9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAndG9wJywgYCR7Ym94Lm9mZnNldFRvcH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ2hlaWdodCcsIGAke2JveC5jbGllbnRIZWlnaHR9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBkZXN0cm95U3Vic2NyaXB0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMubW91c2VVcFN1Yikge1xyXG4gICAgICB0aGlzLm1vdXNlVXBTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tb3VzZVVwU3ViID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3Jlc2l6YWJsZS9yZXNpemFibGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBQ3pILE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxRCxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR2hHLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFvQnpELFlBQW9CLFFBQW1CLEVBQVUsVUFBc0IsRUFBb0IsR0FBUTtRQUNqRyxLQUFLLEVBQUUsQ0FBQztRQURVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBakJ2RSxvQkFBZSxHQUF5QixDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQy9GLGlCQUFZLEdBQXlCLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pHLGNBQVMsR0FBeUIsRUFBRSxDQUFDO1FBRXJDLFdBQU0sR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQVExRSxrQkFBYSxHQUFtQyxF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QVE7Z0JBQ1gsSUFBSSxhQUFhLElBQUksY0FBYyxFQUFFO29CQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxHQUFHLEdBQUcsQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDO2lCQUNyRTtnQkFDRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7c0pBOVFVLG1CQUFtQixxRUFvQm1ELFFBQVE7MElBcEI5RSxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEL0IsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUU7OzBCQXFCcUMsTUFBTTsyQkFBQyxRQUFROzRDQXlCekYsU0FBUztzQkFGUixZQUFZO3VCQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7c0JBQ3BDLFlBQVk7dUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhJc0FycmF5LCBYSXNDaGFuZ2UsIFhJc1N0cmluZyB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFhSZXNpemFibGVQb3NpdGlvbiwgWFJlc2l6YWJsZVByZWZpeCwgWFJlc2l6YWJsZVByb3BlcnR5IH0gZnJvbSAnLi9yZXNpemFibGUucHJvcGVydHknO1xyXG5cclxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW3hSZXNpemFibGVdJyB9KVxyXG5leHBvcnQgY2xhc3MgWFJlc2l6YWJsZURpcmVjdGl2ZSBleHRlbmRzIFhSZXNpemFibGVQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkb2N1bWVudCE6IERvY3VtZW50O1xyXG4gIGVsZSE6IEhUTUxFbGVtZW50O1xyXG4gIGNvcm5lclBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbJ3RvcC1zdGFydCcsICd0b3AtZW5kJywgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJ107XHJcbiAgYWxsUG9zaXRpb25zOiBYUmVzaXphYmxlUG9zaXRpb25bXSA9IFsnbGVmdCcsICdyaWdodCcsICd0b3AnLCAnYm90dG9tJywgLi4udGhpcy5jb3JuZXJQb3NpdGlvbnNdO1xyXG4gIHBvc2l0aW9uczogWFJlc2l6YWJsZVBvc2l0aW9uW10gPSBbXTtcclxuICBkaXJlY3Rpb24/OiBYUmVzaXphYmxlUG9zaXRpb24gfCBudWxsO1xyXG4gIG5ld0JveCA9IHsgY2xpZW50V2lkdGg6IDAsIGNsaWVudEhlaWdodDogMCwgb2Zmc2V0TGVmdDogMCwgb2Zmc2V0VG9wOiAwIH07XHJcbiAgbW91c2VVcFN1Yj86IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgbWluV2lkdGg/OiBudW1iZXI7XHJcbiAgbWF4V2lkdGg/OiBudW1iZXI7XHJcbiAgbWluSGVpZ2h0PzogbnVtYmVyO1xyXG4gIG1heEhlaWdodD86IG51bWJlcjtcclxuXHJcbiAgcG9zaXRpb25Ob2RlczogeyBba2V5OiBzdHJpbmddOiBIVE1MRWxlbWVudCB9ID0ge307XHJcbiAgYWN0aXZhdGluZ05vZGVzOiBIVE1MRWxlbWVudFtdID0gW107XHJcblxyXG4gIGZpcnN0TG9hZGVkID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIEBJbmplY3QoRE9DVU1FTlQpIGRvYzogYW55KSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5kb2N1bWVudCA9IGRvYztcclxuICAgIHRoaXMuZWxlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0TWFwQ2xhc3MoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IHhSZXNpemFibGUgfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoeFJlc2l6YWJsZSkgJiYgdGhpcy5zZXRQb3NpdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vkb3duJywgWyckZXZlbnQnXSlcclxuICBASG9zdExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgWyckZXZlbnQnXSlcclxuICBtb3VzZWRvd24oZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMueFJlc2l6YWJsZSkgcmV0dXJuO1xyXG4gICAgY29uc3QgY2xhc3NMaXN0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xhc3NMaXN0O1xyXG4gICAgbGV0IGRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uIHwgbnVsbCA9IG51bGw7XHJcbiAgICBmb3IgKGxldCBwb3Mgb2YgdGhpcy5hbGxQb3NpdGlvbnMpIHtcclxuICAgICAgaWYgKGNsYXNzTGlzdC5jb250YWlucyhgeC1yZXNpemFibGUtJHtwb3N9YCkpIHtcclxuICAgICAgICBkaXJlY3Rpb24gPSBwb3M7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghZGlyZWN0aW9uKSByZXR1cm47XHJcblxyXG4gICAgY29uc3QgZXZ0ID0gZXZlbnQudHlwZS5zdGFydHNXaXRoKCd0b3VjaCcpID8gKGV2ZW50IGFzIFRvdWNoRXZlbnQpLnRhcmdldFRvdWNoZXNbMF0gOiAoZXZlbnQgYXMgTW91c2VFdmVudCk7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQsIG9mZnNldExlZnQsIG9mZnNldFRvcCB9ID0gdGhpcy5lbGU7XHJcbiAgICBjb25zdCB7IHNjcmVlblgsIHNjcmVlblkgfSA9IGV2dDtcclxuICAgIGNvbnN0IGlzVG91Y2hFdmVudCA9IGV2ZW50LnR5cGUuc3RhcnRzV2l0aCgndG91Y2gnKTtcclxuICAgIGNvbnN0IG1vdmVFdmVudCA9IGlzVG91Y2hFdmVudCA/ICd0b3VjaG1vdmUnIDogJ21vdXNlbW92ZSc7XHJcbiAgICBjb25zdCB1cEV2ZW50ID0gaXNUb3VjaEV2ZW50ID8gJ3RvdWNoZW5kJyA6ICdtb3VzZXVwJztcclxuXHJcbiAgICB0aGlzLnNldEFjdGl2YXRpbmdOb2RlcyhkaXJlY3Rpb24pO1xyXG4gICAgdGhpcy5pbml0UmVzaXplKGV2ZW50LCBkaXJlY3Rpb24pO1xyXG5cclxuICAgIGNvbnN0IG1vdXNldXAgPSBmcm9tRXZlbnQodGhpcy5kb2N1bWVudCwgdXBFdmVudCk7XHJcbiAgICB0aGlzLm1vdXNlVXBTdWIgPSBtb3VzZXVwLnN1YnNjcmliZSgoZXYpID0+IHtcclxuICAgICAgdGhpcy5tb3VzZXVwKGV2IGFzIE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgbW91c2VNb3ZlU3ViID0gZnJvbUV2ZW50KGRvY3VtZW50LCBtb3ZlRXZlbnQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbChtb3VzZXVwKSlcclxuICAgICAgLnN1YnNjcmliZSgoZXYpID0+IHRoaXMubW92ZShldiBhcyBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCwgb2Zmc2V0VG9wLCBvZmZzZXRMZWZ0LCBzY3JlZW5YLCBzY3JlZW5ZKSk7XHJcblxyXG4gICAgdGhpcy5tb3VzZVVwU3ViLmFkZChtb3VzZU1vdmVTdWIpO1xyXG4gIH1cclxuXHJcbiAgc2V0TWFwQ2xhc3MoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlLCBYUmVzaXphYmxlUHJlZml4KTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKCkge1xyXG4gICAgaWYgKCF0aGlzLnhSZXNpemFibGUgJiYgIXRoaXMuZmlyc3RMb2FkZWQpIHJldHVybjtcclxuICAgIGxldCBwb3NpdGlvbnM6IFhSZXNpemFibGVQb3NpdGlvbltdID0gW107XHJcbiAgICBpZiAoWElzU3RyaW5nKHRoaXMucG9zaXRpb24pKSB7XHJcbiAgICAgIHBvc2l0aW9ucy5wdXNoKHRoaXMucG9zaXRpb24gYXMgWFJlc2l6YWJsZVBvc2l0aW9uKTtcclxuICAgIH0gZWxzZSBpZiAoWElzQXJyYXkodGhpcy5wb3NpdGlvbikpIHtcclxuICAgICAgcG9zaXRpb25zID0gdGhpcy5wb3NpdGlvbiBhcyBYUmVzaXphYmxlUG9zaXRpb25bXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAocG9zaXRpb25zLmluY2x1ZGVzKCdhbGwnKSkge1xyXG4gICAgICB0aGlzLnBvc2l0aW9ucyA9IHRoaXMuYWxsUG9zaXRpb25zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5wb3NpdGlvbnMgPSBwb3NpdGlvbnM7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNyZWF0ZU5vZGUoLi4udGhpcy5wb3NpdGlvbnMpO1xyXG5cclxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLmVsZSk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5taW5XaWR0aCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5taW5XaWR0aCk7XHJcbiAgICAgIHRoaXMubWF4V2lkdGggPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWF4V2lkdGgpO1xyXG4gICAgICB0aGlzLm1pbkhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5taW5IZWlnaHQpO1xyXG4gICAgICB0aGlzLm1heEhlaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXhIZWlnaHQpO1xyXG4gICAgICB0aGlzLmZpcnN0TG9hZGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRpbmdOb2RlcyhkaXJlY3Rpb246IFhSZXNpemFibGVQb3NpdGlvbikge1xyXG4gICAgaWYgKCF0aGlzLnBvc2l0aW9ucy5pbmNsdWRlcyhkaXJlY3Rpb24pKSByZXR1cm47XHJcbiAgICBjb25zdCBhZGRBY3RpdmF0aW5nTm9kZSA9ICguLi5kaXJlY3Rpb246IFhSZXNpemFibGVQb3NpdGlvbltdKSA9PiB7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgZGlyZWN0aW9uKSB7XHJcbiAgICAgICAgY29uc3QgbmQgPSB0aGlzLnBvc2l0aW9uTm9kZXNbaXRlbV07XHJcbiAgICAgICAgY29uc3QgaXNOZCA9IHRoaXMuYWN0aXZhdGluZ05vZGVzLmluY2x1ZGVzKG5kKTtcclxuICAgICAgICBpZiAoIW5kIHx8IGlzTmQpIGNvbnRpbnVlO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MobmQsICd4LXJlc2l6YWJsZS1hY3RpdmF0aW5nJyk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmF0aW5nTm9kZXMucHVzaChuZCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5jb3JuZXJQb3NpdGlvbnMuaW5jbHVkZXMoZGlyZWN0aW9uKSkge1xyXG4gICAgICBzd2l0Y2ggKGRpcmVjdGlvbikge1xyXG4gICAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgICAgYWRkQWN0aXZhdGluZ05vZGUoJ2JvdHRvbScsICdyaWdodCcpO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgICBhZGRBY3RpdmF0aW5nTm9kZSgndG9wJywgJ3JpZ2h0Jyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgICAgYWRkQWN0aXZhdGluZ05vZGUoJ2JvdHRvbScsICdsZWZ0Jyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0b3Atc3RhcnQnOlxyXG4gICAgICAgICAgYWRkQWN0aXZhdGluZ05vZGUoJ3RvcCcsICdsZWZ0Jyk7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWRkQWN0aXZhdGluZ05vZGUoZGlyZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU5vZGUoLi4uY2xhc3NlczogWFJlc2l6YWJsZVBvc2l0aW9uW10pIHtcclxuICAgIGZvciAobGV0IGNsYSBvZiBjbGFzc2VzKSB7XHJcbiAgICAgIGNvbnN0IHBvcyA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MocG9zLCBgeC1yZXNpemFibGUtJHtjbGF9YCk7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5lbGUsIHBvcyk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25Ob2Rlc1tjbGFdID0gcG9zO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW5pdFJlc2l6ZShldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQsIGRpcmVjdGlvbjogWFJlc2l6YWJsZVBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9IGRpcmVjdGlvbjtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGUsIGB4LXJlc2l6YWJsZS1yZXNpemluZ2ApO1xyXG4gICAgbGV0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCwgb2Zmc2V0TGVmdCwgb2Zmc2V0VG9wIH0gPSB0aGlzLmVsZTtcclxuICAgIHRoaXMubmV3Qm94ID0geyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0LCBvZmZzZXRMZWZ0LCBvZmZzZXRUb3AgfTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5yZXNpemVCZWdpbi5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBtb3VzZXVwKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCkge1xyXG4gICAgdGhpcy5lbmRSZXNpemUoZXZlbnQpO1xyXG4gICAgdGhpcy5kZXN0cm95U3Vic2NyaXB0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBlbmRSZXNpemUoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KSB7XHJcbiAgICBjb25zdCBldnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJykgPyAoZXZlbnQgYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXSA6IChldmVudCBhcyBNb3VzZUV2ZW50KTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gbnVsbDtcclxuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGUsIGB4LXJlc2l6YWJsZS1yZXNpemluZ2ApO1xyXG4gICAgZm9yIChjb25zdCBub2RlIG9mIHRoaXMuYWN0aXZhdGluZ05vZGVzKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3Mobm9kZSwgJ3gtcmVzaXphYmxlLWFjdGl2YXRpbmcnKTtcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aXZhdGluZ05vZGVzID0gW107XHJcbiAgICB0aGlzLnJlc2l6ZUVuZC5lbWl0KHsgZXZlbnQ6IGV2dCwgLi4udGhpcy5uZXdCb3ggfSk7XHJcbiAgfVxyXG5cclxuICBtb3ZlKGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCwgd2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIsIHNjcmVlblg6IG51bWJlciwgc2NyZWVuWTogbnVtYmVyKSB7XHJcbiAgICBjb25zdCBldnQgPSBldmVudC50eXBlLnN0YXJ0c1dpdGgoJ3RvdWNoJykgPyAoZXZlbnQgYXMgVG91Y2hFdmVudCkudGFyZ2V0VG91Y2hlc1swXSA6IChldmVudCBhcyBNb3VzZUV2ZW50KTtcclxuICAgIGNvbnN0IG1vdmVtZW50WCA9IGV2dC5zY3JlZW5YIC0gc2NyZWVuWDtcclxuICAgIGNvbnN0IG1vdmVtZW50WSA9IGV2dC5zY3JlZW5ZIC0gc2NyZWVuWTtcclxuXHJcbiAgICB0aGlzLm5ld0JveCA9IHtcclxuICAgICAgY2xpZW50V2lkdGg6IHdpZHRoIC0gKFsnYm90dG9tLXN0YXJ0JywgJ2xlZnQnLCAndG9wLXN0YXJ0J10uaW5jbHVkZXModGhpcy5kaXJlY3Rpb24gYXMgc3RyaW5nKSA/IG1vdmVtZW50WCA6IC1tb3ZlbWVudFgpLFxyXG4gICAgICBjbGllbnRIZWlnaHQ6IGhlaWdodCAtIChbJ3RvcC1zdGFydCcsICd0b3AnLCAndG9wLWVuZCddLmluY2x1ZGVzKHRoaXMuZGlyZWN0aW9uIGFzIHN0cmluZykgPyBtb3ZlbWVudFkgOiAtbW92ZW1lbnRZKSxcclxuICAgICAgb2Zmc2V0TGVmdDogbGVmdCArIG1vdmVtZW50WCxcclxuICAgICAgb2Zmc2V0VG9wOiB0b3AgKyBtb3ZlbWVudFlcclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgYm94ID0ge1xyXG4gICAgICAuLi50aGlzLm5ld0JveCxcclxuICAgICAgb2Zmc2V0TGVmdDogdGhpcy5uZXdCb3gub2Zmc2V0TGVmdCAtIE51bWJlcih0aGlzLm9mZnNldExlZnQpLFxyXG4gICAgICBvZmZzZXRUb3A6IHRoaXMubmV3Qm94Lm9mZnNldFRvcCAtIE51bWJlcih0aGlzLm9mZnNldFRvcClcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5yZXNpemVCb3goYm94KTtcclxuXHJcbiAgICB0aGlzLnJlc2l6aW5nLmVtaXQoeyAuLi50aGlzLm5ld0JveCwgZXZlbnQ6IGV2dCwgZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbiB9KTtcclxuICB9XHJcblxyXG4gIHJlc2l6ZUJveChib3g6IHsgY2xpZW50V2lkdGg6IG51bWJlcjsgY2xpZW50SGVpZ2h0OiBudW1iZXI7IG9mZnNldExlZnQ6IG51bWJlcjsgb2Zmc2V0VG9wOiBudW1iZXIgfSkge1xyXG4gICAgaWYgKHRoaXMuZ2hvc3QpIHJldHVybjtcclxuICAgIGNvbnN0IG92ZXJNaW5XaWR0aCA9ICF0aGlzLm1pbldpZHRoIHx8IGJveC5jbGllbnRXaWR0aCA+PSB0aGlzLm1pbldpZHRoO1xyXG4gICAgY29uc3QgdW5kZXJNYXhXaWR0aCA9ICF0aGlzLm1heFdpZHRoIHx8IGJveC5jbGllbnRXaWR0aCA8PSB0aGlzLm1heFdpZHRoO1xyXG4gICAgY29uc3Qgb3Zlck1pbkhlaWdodCA9ICF0aGlzLm1pbkhlaWdodCB8fCBib3guY2xpZW50SGVpZ2h0ID49IHRoaXMubWluSGVpZ2h0O1xyXG4gICAgY29uc3QgdW5kZXJNYXhIZWlnaHQgPSAhdGhpcy5tYXhIZWlnaHQgfHwgYm94LmNsaWVudEhlaWdodCA8PSB0aGlzLm1heEhlaWdodDtcclxuXHJcbiAgICBzd2l0Y2ggKHRoaXMuZGlyZWN0aW9uKSB7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICBpZiAob3Zlck1pbldpZHRoICYmIHVuZGVyTWF4V2lkdGgpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd3aWR0aCcsIGAke2JveC5jbGllbnRXaWR0aH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd0b3AnLCBgJHtib3gub2Zmc2V0VG9wfXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnaGVpZ2h0JywgYCR7Ym94LmNsaWVudEhlaWdodH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIGlmIChvdmVyTWluV2lkdGggJiYgdW5kZXJNYXhXaWR0aCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ2xlZnQnLCBgJHtib3gub2Zmc2V0TGVmdH1weGApO1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ3dpZHRoJywgYCR7Ym94LmNsaWVudFdpZHRofXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnaGVpZ2h0JywgYCR7Ym94LmNsaWVudEhlaWdodH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgY29uc29sZS5sb2codGhpcy5taW5XaWR0aCk7XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnbGVmdCcsIGAke2JveC5vZmZzZXRMZWZ0fXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgaWYgKG92ZXJNaW5XaWR0aCAmJiB1bmRlck1heFdpZHRoKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnbGVmdCcsIGAke2JveC5vZmZzZXRMZWZ0fXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnd2lkdGgnLCBgJHtib3guY2xpZW50V2lkdGh9cHhgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKG92ZXJNaW5IZWlnaHQgJiYgdW5kZXJNYXhIZWlnaHQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICd0b3AnLCBgJHtib3gub2Zmc2V0VG9wfXB4YCk7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnaGVpZ2h0JywgYCR7Ym94LmNsaWVudEhlaWdodH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICBpZiAob3Zlck1pbkhlaWdodCAmJiB1bmRlck1heEhlaWdodCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZSwgJ3RvcCcsIGAke2JveC5vZmZzZXRUb3B9cHhgKTtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGUsICdoZWlnaHQnLCBgJHtib3guY2xpZW50SGVpZ2h0fXB4YCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIGlmIChvdmVyTWluSGVpZ2h0ICYmIHVuZGVyTWF4SGVpZ2h0KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlLCAnaGVpZ2h0JywgYCR7Ym94LmNsaWVudEhlaWdodH1weGApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveVN1YnNjcmlwdGlvbigpIHtcclxuICAgIGlmICh0aGlzLm1vdXNlVXBTdWIpIHtcclxuICAgICAgdGhpcy5tb3VzZVVwU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgIHRoaXMubW91c2VVcFN1YiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19