ng-zorro-antd-extension 17.3.0 → 18.0.0

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 (129) hide show
  1. package/.npmignore +2 -0
  2. package/README.md +1 -0
  3. package/acl/package.json +3 -0
  4. package/blank-field/package.json +3 -0
  5. package/checkbox/package.json +3 -0
  6. package/configurable-query/package.json +3 -0
  7. package/core/config/package.json +3 -0
  8. package/editable/package.json +3 -0
  9. package/esm2022/acl/nzx-acl.directive.mjs +4 -4
  10. package/esm2022/acl/nzx-acl.module.mjs +4 -4
  11. package/esm2022/acl/nzx-acl.service.mjs +4 -4
  12. package/esm2022/blank-field/blank-field.component.mjs +3 -3
  13. package/esm2022/blank-field/blank-field.module.mjs +4 -4
  14. package/esm2022/checkbox/checkbox-group.component.mjs +4 -4
  15. package/esm2022/checkbox/checkbox.module.mjs +4 -4
  16. package/esm2022/configurable-query/configurable-query-item/configurable-query-item.component.mjs +4 -4
  17. package/esm2022/configurable-query/configurable-query.component.mjs +4 -4
  18. package/esm2022/configurable-query/configurable-query.module.mjs +10 -10
  19. package/esm2022/configurable-query/control.directive.mjs +3 -3
  20. package/esm2022/configurable-query/controls/abstract.control.mjs +3 -3
  21. package/esm2022/configurable-query/controls/date-picker.control.mjs +4 -4
  22. package/esm2022/configurable-query/controls/input.control.mjs +3 -3
  23. package/esm2022/configurable-query/controls/range-picker.control.mjs +4 -4
  24. package/esm2022/configurable-query/controls/select.control.mjs +3 -3
  25. package/esm2022/configurable-query/controls/template.control.mjs +3 -3
  26. package/esm2022/configurable-query/query-config.service.mjs +4 -4
  27. package/esm2022/core/config/config.service.mjs +4 -4
  28. package/esm2022/editable/editable.component.mjs +4 -4
  29. package/esm2022/editable/editable.module.mjs +4 -4
  30. package/esm2022/jigsaw/jigsaw.component.mjs +4 -4
  31. package/esm2022/jigsaw/jigsaw.module.mjs +4 -4
  32. package/esm2022/pipes/map.pipe.mjs +4 -4
  33. package/esm2022/pipes/pipes.module.mjs +4 -4
  34. package/esm2022/pipes/safe-html.pipe.mjs +3 -3
  35. package/esm2022/pipes/safe-null.pipe.mjs +4 -4
  36. package/esm2022/pipes/safe-resource-url.pipe.mjs +3 -3
  37. package/esm2022/pipes/safe-script.pipe.mjs +3 -3
  38. package/esm2022/pipes/safe-style.pipe.mjs +3 -3
  39. package/esm2022/pipes/safe-url.pipe.mjs +4 -4
  40. package/esm2022/print/nzx-print-content.directive.mjs +3 -3
  41. package/esm2022/print/nzx-print-v.component.mjs +4 -4
  42. package/esm2022/print/nzx-print.component.mjs +4 -4
  43. package/esm2022/print/nzx-print.directive.mjs +4 -4
  44. package/esm2022/print/nzx-print.module.mjs +4 -4
  45. package/esm2022/simple-table/directive/expand.directive.mjs +3 -3
  46. package/esm2022/simple-table/directive/td.directive.mjs +3 -3
  47. package/esm2022/simple-table/directive/th.directive.mjs +3 -3
  48. package/esm2022/simple-table/simple-table.component.mjs +5 -5
  49. package/esm2022/simple-table/simple-table.module.mjs +4 -4
  50. package/esm2022/table-adaptor/page-table-basic.mjs +3 -3
  51. package/esm2022/table-adaptor/table-adaptor.directive.mjs +4 -4
  52. package/esm2022/table-adaptor/table-adaptor.module.mjs +4 -4
  53. package/esm2022/table-form/directive/table-expand.directive.mjs +3 -3
  54. package/esm2022/table-form/directive/table-td.directive.mjs +3 -3
  55. package/esm2022/table-form/directive/table-th.directive.mjs +3 -3
  56. package/esm2022/table-form/table-form.component.mjs +5 -5
  57. package/esm2022/table-form/table-form.module.mjs +4 -4
  58. package/esm2022/table-select/abstract-table-select.mjs +4 -4
  59. package/esm2022/table-select/key.directive.mjs +3 -3
  60. package/esm2022/table-select/nzx-table-select.module.mjs +4 -4
  61. package/esm2022/table-select/page-table-select/page-table-select.component.mjs +5 -5
  62. package/esm2022/table-select/table-select/table-select.component.mjs +5 -5
  63. package/esm2022/timer-button/timer-button.directive.mjs +4 -4
  64. package/esm2022/timer-button/timer-button.module.mjs +4 -4
  65. package/esm2022/trim/trim.directive.mjs +4 -4
  66. package/esm2022/trim/trim.module.mjs +4 -4
  67. package/esm2022/util/lib/cloneDeep.mjs +1 -1
  68. package/esm2022/util/lib/fileUtil.mjs +1 -1
  69. package/esm2022/util/lib/getElementByTag.mjs +1 -1
  70. package/esm2022/util/lib/isArray.mjs +1 -1
  71. package/esm2022/util/lib/isEmpty.mjs +1 -1
  72. package/esm2022/util/lib/isNumber.mjs +1 -1
  73. package/esm2022/util/lib/isObject.mjs +1 -1
  74. package/esm2022/util/lib/isString.mjs +1 -1
  75. package/esm2022/util/lib/toNumber.mjs +1 -1
  76. package/esm2022/util/lib/toString.mjs +1 -1
  77. package/esm2022/util/lib/trimObject.mjs +1 -1
  78. package/esm2022/util/lib/updateControlStatus.mjs +1 -1
  79. package/esm2022/wang-editor/wang-editor.component.mjs +4 -4
  80. package/esm2022/wang-editor/wang-editor.module.mjs +4 -4
  81. package/esm2022/wang-editor/wang-toolbar.component.mjs +4 -4
  82. package/fesm2022/ng-zorro-antd-extension-acl.mjs +10 -10
  83. package/fesm2022/ng-zorro-antd-extension-acl.mjs.map +1 -1
  84. package/fesm2022/ng-zorro-antd-extension-blank-field.mjs +7 -7
  85. package/fesm2022/ng-zorro-antd-extension-checkbox.mjs +7 -7
  86. package/fesm2022/ng-zorro-antd-extension-checkbox.mjs.map +1 -1
  87. package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs +36 -36
  88. package/fesm2022/ng-zorro-antd-extension-configurable-query.mjs.map +1 -1
  89. package/fesm2022/ng-zorro-antd-extension-core-config.mjs +3 -3
  90. package/fesm2022/ng-zorro-antd-extension-core-config.mjs.map +1 -1
  91. package/fesm2022/ng-zorro-antd-extension-editable.mjs +7 -7
  92. package/fesm2022/ng-zorro-antd-extension-editable.mjs.map +1 -1
  93. package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs +7 -7
  94. package/fesm2022/ng-zorro-antd-extension-jigsaw.mjs.map +1 -1
  95. package/fesm2022/ng-zorro-antd-extension-pipes.mjs +25 -25
  96. package/fesm2022/ng-zorro-antd-extension-pipes.mjs.map +1 -1
  97. package/fesm2022/ng-zorro-antd-extension-print.mjs +17 -17
  98. package/fesm2022/ng-zorro-antd-extension-print.mjs.map +1 -1
  99. package/fesm2022/ng-zorro-antd-extension-simple-table.mjs +17 -17
  100. package/fesm2022/ng-zorro-antd-extension-simple-table.mjs.map +1 -1
  101. package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs +10 -10
  102. package/fesm2022/ng-zorro-antd-extension-table-adaptor.mjs.map +1 -1
  103. package/fesm2022/ng-zorro-antd-extension-table-form.mjs +17 -17
  104. package/fesm2022/ng-zorro-antd-extension-table-form.mjs.map +1 -1
  105. package/fesm2022/ng-zorro-antd-extension-table-select.mjs +19 -19
  106. package/fesm2022/ng-zorro-antd-extension-table-select.mjs.map +1 -1
  107. package/fesm2022/ng-zorro-antd-extension-timer-button.mjs +8 -8
  108. package/fesm2022/ng-zorro-antd-extension-timer-button.mjs.map +1 -1
  109. package/fesm2022/ng-zorro-antd-extension-trim.mjs +9 -9
  110. package/fesm2022/ng-zorro-antd-extension-trim.mjs.map +1 -1
  111. package/fesm2022/ng-zorro-antd-extension-util.mjs +1 -1
  112. package/fesm2022/ng-zorro-antd-extension-util.mjs.map +1 -1
  113. package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs +10 -10
  114. package/fesm2022/ng-zorro-antd-extension-wang-editor.mjs.map +1 -1
  115. package/i18n/package.json +3 -0
  116. package/jigsaw/package.json +3 -0
  117. package/package.json +10 -10
  118. package/pipes/package.json +3 -0
  119. package/print/package.json +3 -0
  120. package/simple-table/package.json +3 -0
  121. package/table-adaptor/package.json +3 -0
  122. package/table-form/package.json +3 -0
  123. package/table-select/abstract-table-select.d.ts +1 -1
  124. package/table-select/package.json +3 -0
  125. package/timer-button/package.json +3 -0
  126. package/trim/package.json +3 -0
  127. package/types/package.json +3 -0
  128. package/util/package.json +3 -0
  129. package/wang-editor/package.json +3 -0
@@ -7,17 +7,17 @@ import { NzxThDirective } from './directive/th.directive';
7
7
  import { NzxSimpleTableComponent } from './simple-table.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export class NzxSimpleTableModule {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxSimpleTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NzxSimpleTableModule, declarations: [NzxSimpleTableComponent,
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxSimpleTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: NzxSimpleTableModule, declarations: [NzxSimpleTableComponent,
12
12
  NzxThDirective,
13
13
  NzxTdDirective,
14
14
  NzxExpandDirective], imports: [CommonModule, NzTableModule], exports: [NzxThDirective,
15
15
  NzxTdDirective,
16
16
  NzxExpandDirective,
17
17
  NzxSimpleTableComponent] }); }
18
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxSimpleTableModule, imports: [CommonModule, NzTableModule] }); }
18
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxSimpleTableModule, imports: [CommonModule, NzTableModule] }); }
19
19
  }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxSimpleTableModule, decorators: [{
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxSimpleTableModule, decorators: [{
21
21
  type: NgModule,
22
22
  args: [{
23
23
  declarations: [
@@ -10,10 +10,10 @@ export class NzxPageTableBase {
10
10
  /** 分页总条数 */
11
11
  this.nzTotal = 0;
12
12
  }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPageTableBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxPageTableBase, viewQueries: [{ propertyName: "nzxTableAdaptorRef", first: true, predicate: NzxTableAdaptor, descendants: true }], ngImport: i0 }); }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxPageTableBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
14
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NzxPageTableBase, viewQueries: [{ propertyName: "nzxTableAdaptorRef", first: true, predicate: NzxTableAdaptor, descendants: true }], ngImport: i0 }); }
15
15
  }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxPageTableBase, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxPageTableBase, decorators: [{
17
17
  type: Directive
18
18
  }], propDecorators: { nzxTableAdaptorRef: [{
19
19
  type: ViewChild,
@@ -139,8 +139,8 @@ export class NzxTableAdaptor {
139
139
  }
140
140
  this.nzxQueryParams.emit(this.customFormateOutFn(params));
141
141
  }
142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableAdaptor, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
143
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxTableAdaptor, selector: "nz-table[nzxTableAdaptor]", inputs: { queryParams: "queryParams", enableCache: "enableCache", dateFormat: "dateFormat", customFormateOutFn: "customFormateOutFn" }, outputs: { nzxQueryParams: "nzxQueryParams", nzxQueryCacheQueryParams: "nzxQueryCacheQueryParams" }, exportAs: ["NzxTableAdaptor"], ngImport: i0 }); }
142
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableAdaptor, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
143
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NzxTableAdaptor, selector: "nz-table[nzxTableAdaptor]", inputs: { queryParams: "queryParams", enableCache: "enableCache", dateFormat: "dateFormat", customFormateOutFn: "customFormateOutFn" }, outputs: { nzxQueryParams: "nzxQueryParams", nzxQueryCacheQueryParams: "nzxQueryCacheQueryParams" }, exportAs: ["NzxTableAdaptor"], ngImport: i0 }); }
144
144
  }
145
145
  __decorate([
146
146
  ExtensionWithConfig()
@@ -151,7 +151,7 @@ __decorate([
151
151
  __decorate([
152
152
  ExtensionWithConfig()
153
153
  ], NzxTableAdaptor.prototype, "customFormateOutFn", void 0);
154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableAdaptor, decorators: [{
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableAdaptor, decorators: [{
155
155
  type: Directive,
156
156
  args: [{
157
157
  selector: 'nz-table[nzxTableAdaptor]',
@@ -170,4 +170,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
170
170
  }], nzxQueryCacheQueryParams: [{
171
171
  type: Output
172
172
  }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWRhcHRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RhYmxlLWFkYXB0b3IvdGFibGUtYWRhcHRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJEQUEyRDtBQUMzRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDOzs7QUFFN0MsTUFBTSxxQkFBcUIsR0FBaUIsaUJBQWlCLENBQUM7QUFNOUQsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFNdEMsTUFBTSxPQUFPLGVBQWU7SUFHMUIsSUFBYSxXQUFXLENBQUMsS0FBVTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUEyQ0QsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFsRHpCLGtCQUFhLEdBQWlCLHFCQUFxQixDQUFDO1FBUzdCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxZQUFZLENBQUM7UUFFMUIsdUJBQWtCLEdBQXlCLENBQ3pFLE1BQVcs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MkVBSWMsV0FBVztzQkFBdkIsS0FBSztnQkFPMEIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFzQm5CLGNBQWM7c0JBQXZCLE1BQU07Z0JBRUcsd0JBQXdCO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1jbGFzcy1zdWZmaXggKi9cclxuaW1wb3J0IHtcclxuICBEaXJlY3RpdmUsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIGluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmb3JtYXQsIGlzRGF0ZSB9IGZyb20gJ2RhdGUtZm5zJztcclxuaW1wb3J0IHtcclxuICBOelRhYmxlQ29tcG9uZW50LFxyXG4gIE56VGFibGVEYXRhU2VydmljZSxcclxuICBOelRhYmxlUXVlcnlQYXJhbXMsXHJcbn0gZnJvbSAnbmctem9ycm8tYW50ZC90YWJsZSc7XHJcblxyXG5pbXBvcnQgeyB0cmltT2JqZWN0IH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vdXRpbCc7XHJcbmltcG9ydCB7XHJcbiAgRXh0ZW5zaW9uV2l0aENvbmZpZyxcclxuICBOenhDb25maWdLZXksXHJcbiAgTnp4Q29uZmlnU2VydmljZSxcclxufSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi9jb3JlL2NvbmZpZyc7XHJcblxyXG5jb25zdCBOWl9DT05GSUdfTU9EVUxFX05BTUU6IE56eENvbmZpZ0tleSA9ICduenhUYWJsZUFkYXB0b3InO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOenhUYWJsZVF1ZXJ5UGFyYW1zIGV4dGVuZHMgTnpUYWJsZVF1ZXJ5UGFyYW1zIHtcclxuICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbn1cclxuXHJcbmNvbnN0IENBQ0hFX0tFWSA9ICdOWlhfVEFCTEVfQURBUFRPUic7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ256LXRhYmxlW256eFRhYmxlQWRhcHRvcl0nLFxyXG4gIGV4cG9ydEFzOiAnTnp4VGFibGVBZGFwdG9yJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIE56eFRhYmxlQWRhcHRvciBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICByZWFkb25seSBfbnpNb2R1bGVOYW1lOiBOenhDb25maWdLZXkgPSBOWl9DT05GSUdfTU9EVUxFX05BTUU7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBxdWVyeVBhcmFtcyh2YWx1ZTogYW55KSB7XHJcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyA9IHZhbHVlO1xyXG4gIH1cclxuICBnZXQgcXVlcnlQYXJhbXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fcXVlcnlQYXJhbXM7XHJcbiAgfVxyXG5cclxuICBARXh0ZW5zaW9uV2l0aENvbmZpZygpIEBJbnB1dCgpIGVuYWJsZUNhY2hlID0gZmFsc2U7XHJcbiAgQEV4dGVuc2lvbldpdGhDb25maWcoKSBASW5wdXQoKSBkYXRlRm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG5cclxuICBARXh0ZW5zaW9uV2l0aENvbmZpZygpIEBJbnB1dCgpIGN1c3RvbUZvcm1hdGVPdXRGbjogKHBhcmFtczogYW55KSA9PiBhbnkgPSAoXHJcbiAgICBwYXJhbXM6IGFueVxyXG4gICkgPT4ge1xyXG4gICAgZm9yIChjb25zdCBrZXkgaW4gcGFyYW1zKSB7XHJcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGFyYW1zLCBrZXkpKSB7XHJcbiAgICAgICAgaWYgKGlzRGF0ZShwYXJhbXNba2V5XSkpIHtcclxuICAgICAgICAgIHBhcmFtc1trZXldID0gZm9ybWF0KHBhcmFtc1trZXldLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwYXJhbXNba2V5XSkpIHtcclxuICAgICAgICAgIHBhcmFtc1trZXldID0gcGFyYW1zW2tleV0ubWFwKChlbDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpc0RhdGUoZWwpKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdChlbCwgdGhpcy5kYXRlRm9ybWF0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gZWw7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdHJpbU9iamVjdChwYXJhbXMpO1xyXG4gIH07XHJcblxyXG4gIEBPdXRwdXQoKSBuenhRdWVyeVBhcmFtczogRXZlbnRFbWl0dGVyPE56eFRhYmxlUXVlcnlQYXJhbXM+ID1cclxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbnp4UXVlcnlDYWNoZVF1ZXJ5UGFyYW1zOiBFdmVudEVtaXR0ZXI8Tnp4VGFibGVRdWVyeVBhcmFtcz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBwcml2YXRlIF9xdWVyeVBhcmFtczogUGFydGlhbDxOenhUYWJsZVF1ZXJ5UGFyYW1zPiA9IHt9O1xyXG5cclxuICBwcml2YXRlIG56VGFibGVRdWVyeVBhcmFtcyE6IE56VGFibGVRdWVyeVBhcmFtcztcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIG56eENvbmZpZ1NlcnZpY2U6IE56eENvbmZpZ1NlcnZpY2UgPSBpbmplY3QoTnp4Q29uZmlnU2VydmljZSk7XHJcblxyXG4gIHByaXZhdGUgbnpUYWJsZTogTnpUYWJsZUNvbXBvbmVudDxhbnk+ID0gaW5qZWN0KE56VGFibGVDb21wb25lbnQpO1xyXG5cclxuICBwcml2YXRlIG56VGFibGVEYXRhU2VydmljZTogTnpUYWJsZURhdGFTZXJ2aWNlPGFueT4gPVxyXG4gICAgaW5qZWN0KE56VGFibGVEYXRhU2VydmljZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHtcclxuICAgIC8vIOacjeWKoeerr+WIhumhtVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMubnpUYWJsZS5uelNob3dTaXplQ2hhbmdlciA9IHRydWU7XHJcbiAgICAgIHRoaXMubnpUYWJsZS5uekZyb250UGFnaW5hdGlvbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm56VGFibGVEYXRhU2VydmljZS51cGRhdGVGcm9udFBhZ2luYXRpb24oZmFsc2UpO1xyXG4gICAgfSwgMCk7XHJcblxyXG4gICAgLy8g55So5p2l6Kej5YazbnpUYWJsZeWIhumhteS4jeiDveWPiuaXtuabtOaWsOeVjOmdoumXrumimFxyXG4gICAgdGhpcy5uelRhYmxlLm56UXVlcnlQYXJhbXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChwYXJhbXM6IE56VGFibGVRdWVyeVBhcmFtcykgPT4ge1xyXG4gICAgICAgIHRoaXMubnpUYWJsZVF1ZXJ5UGFyYW1zID0gcGFyYW1zO1xyXG4gICAgICAgIHRoaXMuZW1pdCgpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLm56VGFibGUubnpDdXJyZW50UGFnZURhdGFDaGFuZ2VcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMubnpUYWJsZS5uekRhdGEubGVuZ3RoID09PSAwICYmIHRoaXMubnpUYWJsZS5uelRvdGFsID4gMCkge1xyXG4gICAgICAgICAgY29uc3QgaW5kZXg6IG51bWJlciA9IHRoaXMubnpUYWJsZS5uelBhZ2VJbmRleCAtIDE7XHJcbiAgICAgICAgICB0aGlzLm56VGFibGUub25QYWdlSW5kZXhDaGFuZ2UoaW5kZXgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMubnpUYWJsZURhdGFTZXJ2aWNlLnVwZGF0ZVBhZ2VJbmRleCgxKTtcclxuICAgIHRoaXMubnpUYWJsZURhdGFTZXJ2aWNlLnVwZGF0ZVBhZ2VTaXplKDEwKTtcclxuXHJcbiAgICBpZiAodGhpcy5lbmFibGVDYWNoZSkge1xyXG4gICAgICBjb25zdCBzdHIgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKENBQ0hFX0tFWSArIHRoaXMucm91dGVyLnVybCk7XHJcbiAgICAgIGlmIChzdHIpIHtcclxuICAgICAgICBjb25zdCBwYWdlID0gSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgICAgIHRoaXMubnpUYWJsZURhdGFTZXJ2aWNlLnVwZGF0ZVBhZ2VJbmRleChwYWdlLnBhZ2VJbmRleCk7XHJcbiAgICAgICAgdGhpcy5uelRhYmxlRGF0YVNlcnZpY2UudXBkYXRlUGFnZVNpemUocGFnZS5wYWdlU2l6ZSk7XHJcbiAgICAgICAgdGhpcy5uenhRdWVyeUNhY2hlUXVlcnlQYXJhbXMuZW1pdChwYWdlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGN1cnJlbnRQYWdlXHJcbiAgICogLSB0cnVlIOafpeivouW9k+WJjemhtVxyXG4gICAqIC0gZmFsc2Ug6Lez6L2s56ys5LiA6aG1XHJcbiAgICpcclxuICAgKiDpu5jorqTot7PovaznrKzkuIDpobVcclxuICAgKi9cclxuICByZWZyZXNoKGN1cnJlbnRQYWdlPzogYm9vbGVhbikge1xyXG4gICAgaWYgKGN1cnJlbnRQYWdlKSB7XHJcbiAgICAgIHRoaXMuZW1pdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubnpUYWJsZS5uelBhZ2VJbmRleCA9PT0gMSkge1xyXG4gICAgICAgIC8vIOW9k+WJjemhteagh+S4jeWPmOS4u+WKqOafpeivouS4gOasoVxyXG4gICAgICAgIHRoaXMuZW1pdCgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubnpUYWJsZURhdGFTZXJ2aWNlLnVwZGF0ZVBhZ2VJbmRleCgxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6YeN572u5p+l6K+i5p2h5Lu25bm25p+l6K+iXHJcbiAgICovXHJcbiAgcmVzZXQocGFyYW1zPzogYW55KSB7XHJcbiAgICBpZiAocGFyYW1zKSB7XHJcbiAgICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0gcGFyYW1zO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5fcXVlcnlQYXJhbXMpIHtcclxuICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHRoaXMuX3F1ZXJ5UGFyYW1zLCBrZXkpKSB7XHJcbiAgICAgICAgICB0aGlzLl9xdWVyeVBhcmFtc1trZXldID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5uelRhYmxlLm56UGFnZUluZGV4ID09PSAxKSB7XHJcbiAgICAgIC8vIOW9k+WJjemhteagh+S4jeWPmOS4u+WKqOafpeivouS4gOasoVxyXG4gICAgICB0aGlzLmVtaXQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubnpUYWJsZURhdGFTZXJ2aWNlLnVwZGF0ZVBhZ2VJbmRleCgxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZW1pdCgpIHtcclxuICAgIGNvbnN0IHBhcmFtczogTnp4VGFibGVRdWVyeVBhcmFtcyA9IHtcclxuICAgICAgLi4udGhpcy5fcXVlcnlQYXJhbXMsXHJcbiAgICAgIC4uLnRoaXMubnpUYWJsZVF1ZXJ5UGFyYW1zLFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAodGhpcy5lbmFibGVDYWNoZSkge1xyXG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgIENBQ0hFX0tFWSArIHRoaXMucm91dGVyLnVybCxcclxuICAgICAgICBKU09OLnN0cmluZ2lmeShwYXJhbXMpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5uenhRdWVyeVBhcmFtcy5lbWl0KHRoaXMuY3VzdG9tRm9ybWF0ZU91dEZuKHBhcmFtcykpO1xyXG4gIH1cclxufVxyXG4iXX0=
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtYWRhcHRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RhYmxlLWFkYXB0b3IvdGFibGUtYWRhcHRvci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDJEQUEyRDtBQUMzRCxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMxQyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUVuQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLHFDQUFxQyxDQUFDOzs7QUFFN0MsTUFBTSxxQkFBcUIsR0FBaUIsaUJBQWlCLENBQUM7QUFNOUQsTUFBTSxTQUFTLEdBQUcsbUJBQW1CLENBQUM7QUFNdEMsTUFBTSxPQUFPLGVBQWU7SUFHMUIsSUFBYSxXQUFXLENBQUMsS0FBVTtRQUNqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBQ0QsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUEyQ0QsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFsRHpCLGtCQUFhLEdBQWlCLHFCQUFxQixDQUFDO1FBUzdCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLGVBQVUsR0FBRyxZQUFZLENBQUM7UUFFMUIsdUJBQWtCLEdBQXlCLENBQ3pFLE1BQVcs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ZTtrR0FBZixlQUFlOztBQVVNO0lBQS9CLG1CQUFtQixFQUFFO29EQUE4QjtBQUNwQjtJQUEvQixtQkFBbUIsRUFBRTttREFBb0M7QUFFMUI7SUFBL0IsbUJBQW1CLEVBQUU7MkRBb0JwQjsyRkFqQ1MsZUFBZTtrQkFKM0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsaUJBQWlCO2lCQUM1QjsyRUFJYyxXQUFXO3NCQUF2QixLQUFLO2dCQU8wQixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsa0JBQWtCO3NCQUExQixLQUFLO2dCQXNCbkIsY0FBYztzQkFBdkIsTUFBTTtnQkFFRyx3QkFBd0I7c0JBQWpDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeCAqL1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgaW5qZWN0LFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZvcm1hdCwgaXNEYXRlIH0gZnJvbSAnZGF0ZS1mbnMnO1xyXG5pbXBvcnQge1xyXG4gIE56VGFibGVDb21wb25lbnQsXHJcbiAgTnpUYWJsZURhdGFTZXJ2aWNlLFxyXG4gIE56VGFibGVRdWVyeVBhcmFtcyxcclxufSBmcm9tICduZy16b3Jyby1hbnRkL3RhYmxlJztcclxuXHJcbmltcG9ydCB7IHRyaW1PYmplY3QgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi91dGlsJztcclxuaW1wb3J0IHtcclxuICBFeHRlbnNpb25XaXRoQ29uZmlnLFxyXG4gIE56eENvbmZpZ0tleSxcclxuICBOenhDb25maWdTZXJ2aWNlLFxyXG59IGZyb20gJ25nLXpvcnJvLWFudGQtZXh0ZW5zaW9uL2NvcmUvY29uZmlnJztcclxuXHJcbmNvbnN0IE5aX0NPTkZJR19NT0RVTEVfTkFNRTogTnp4Q29uZmlnS2V5ID0gJ256eFRhYmxlQWRhcHRvcic7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE56eFRhYmxlUXVlcnlQYXJhbXMgZXh0ZW5kcyBOelRhYmxlUXVlcnlQYXJhbXMge1xyXG4gIFtrZXk6IHN0cmluZ106IGFueTtcclxufVxyXG5cclxuY29uc3QgQ0FDSEVfS0VZID0gJ05aWF9UQUJMRV9BREFQVE9SJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnbnotdGFibGVbbnp4VGFibGVBZGFwdG9yXScsXHJcbiAgZXhwb3J0QXM6ICdOenhUYWJsZUFkYXB0b3InLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTnp4VGFibGVBZGFwdG9yIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHJlYWRvbmx5IF9uek1vZHVsZU5hbWU6IE56eENvbmZpZ0tleSA9IE5aX0NPTkZJR19NT0RVTEVfTkFNRTtcclxuXHJcbiAgQElucHV0KCkgc2V0IHF1ZXJ5UGFyYW1zKHZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zID0gdmFsdWU7XHJcbiAgfVxyXG4gIGdldCBxdWVyeVBhcmFtcygpIHtcclxuICAgIHJldHVybiB0aGlzLl9xdWVyeVBhcmFtcztcclxuICB9XHJcblxyXG4gIEBFeHRlbnNpb25XaXRoQ29uZmlnKCkgQElucHV0KCkgZW5hYmxlQ2FjaGUgPSBmYWxzZTtcclxuICBARXh0ZW5zaW9uV2l0aENvbmZpZygpIEBJbnB1dCgpIGRhdGVGb3JtYXQgPSAneXl5eS1NTS1kZCc7XHJcblxyXG4gIEBFeHRlbnNpb25XaXRoQ29uZmlnKCkgQElucHV0KCkgY3VzdG9tRm9ybWF0ZU91dEZuOiAocGFyYW1zOiBhbnkpID0+IGFueSA9IChcclxuICAgIHBhcmFtczogYW55XHJcbiAgKSA9PiB7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBwYXJhbXMpIHtcclxuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXJhbXMsIGtleSkpIHtcclxuICAgICAgICBpZiAoaXNEYXRlKHBhcmFtc1trZXldKSkge1xyXG4gICAgICAgICAgcGFyYW1zW2tleV0gPSBmb3JtYXQocGFyYW1zW2tleV0sIHRoaXMuZGF0ZUZvcm1hdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcmFtc1trZXldKSkge1xyXG4gICAgICAgICAgcGFyYW1zW2tleV0gPSBwYXJhbXNba2V5XS5tYXAoKGVsOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgaWYgKGlzRGF0ZShlbCkpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0KGVsLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiBlbDtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cmltT2JqZWN0KHBhcmFtcyk7XHJcbiAgfTtcclxuXHJcbiAgQE91dHB1dCgpIG56eFF1ZXJ5UGFyYW1zOiBFdmVudEVtaXR0ZXI8Tnp4VGFibGVRdWVyeVBhcmFtcz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBuenhRdWVyeUNhY2hlUXVlcnlQYXJhbXM6IEV2ZW50RW1pdHRlcjxOenhUYWJsZVF1ZXJ5UGFyYW1zPiA9XHJcbiAgICBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHByaXZhdGUgX3F1ZXJ5UGFyYW1zOiBQYXJ0aWFsPE56eFRhYmxlUXVlcnlQYXJhbXM+ID0ge307XHJcblxyXG4gIHByaXZhdGUgbnpUYWJsZVF1ZXJ5UGFyYW1zITogTnpUYWJsZVF1ZXJ5UGFyYW1zO1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgbnp4Q29uZmlnU2VydmljZTogTnp4Q29uZmlnU2VydmljZSA9IGluamVjdChOenhDb25maWdTZXJ2aWNlKTtcclxuXHJcbiAgcHJpdmF0ZSBuelRhYmxlOiBOelRhYmxlQ29tcG9uZW50PGFueT4gPSBpbmplY3QoTnpUYWJsZUNvbXBvbmVudCk7XHJcblxyXG4gIHByaXZhdGUgbnpUYWJsZURhdGFTZXJ2aWNlOiBOelRhYmxlRGF0YVNlcnZpY2U8YW55PiA9XHJcbiAgICBpbmplY3QoTnpUYWJsZURhdGFTZXJ2aWNlKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge1xyXG4gICAgLy8g5pyN5Yqh56uv5YiG6aG1XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5uelRhYmxlLm56U2hvd1NpemVDaGFuZ2VyID0gdHJ1ZTtcclxuICAgICAgdGhpcy5uelRhYmxlLm56RnJvbnRQYWdpbmF0aW9uID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubnpUYWJsZURhdGFTZXJ2aWNlLnVwZGF0ZUZyb250UGFnaW5hdGlvbihmYWxzZSk7XHJcbiAgICB9LCAwKTtcclxuXHJcbiAgICAvLyDnlKjmnaXop6PlhrNuelRhYmxl5YiG6aG15LiN6IO95Y+K5pe25pu05paw55WM6Z2i6Zeu6aKYXHJcbiAgICB0aGlzLm56VGFibGUubnpRdWVyeVBhcmFtc1xyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHBhcmFtczogTnpUYWJsZVF1ZXJ5UGFyYW1zKSA9PiB7XHJcbiAgICAgICAgdGhpcy5uelRhYmxlUXVlcnlQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubnpUYWJsZS5uekN1cnJlbnRQYWdlRGF0YUNoYW5nZVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5uelRhYmxlLm56RGF0YS5sZW5ndGggPT09IDAgJiYgdGhpcy5uelRhYmxlLm56VG90YWwgPiAwKSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleDogbnVtYmVyID0gdGhpcy5uelRhYmxlLm56UGFnZUluZGV4IC0gMTtcclxuICAgICAgICAgIHRoaXMubnpUYWJsZS5vblBhZ2VJbmRleENoYW5nZShpbmRleCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5uelRhYmxlRGF0YVNlcnZpY2UudXBkYXRlUGFnZUluZGV4KDEpO1xyXG4gICAgdGhpcy5uelRhYmxlRGF0YVNlcnZpY2UudXBkYXRlUGFnZVNpemUoMTApO1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZUNhY2hlKSB7XHJcbiAgICAgIGNvbnN0IHN0ciA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oQ0FDSEVfS0VZICsgdGhpcy5yb3V0ZXIudXJsKTtcclxuICAgICAgaWYgKHN0cikge1xyXG4gICAgICAgIGNvbnN0IHBhZ2UgPSBKU09OLnBhcnNlKHN0cik7XHJcbiAgICAgICAgdGhpcy5uelRhYmxlRGF0YVNlcnZpY2UudXBkYXRlUGFnZUluZGV4KHBhZ2UucGFnZUluZGV4KTtcclxuICAgICAgICB0aGlzLm56VGFibGVEYXRhU2VydmljZS51cGRhdGVQYWdlU2l6ZShwYWdlLnBhZ2VTaXplKTtcclxuICAgICAgICB0aGlzLm56eFF1ZXJ5Q2FjaGVRdWVyeVBhcmFtcy5lbWl0KHBhZ2UpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogY3VycmVudFBhZ2VcclxuICAgKiAtIHRydWUg5p+l6K+i5b2T5YmN6aG1XHJcbiAgICogLSBmYWxzZSDot7PovaznrKzkuIDpobVcclxuICAgKlxyXG4gICAqIOm7mOiupOi3s+i9rOesrOS4gOmhtVxyXG4gICAqL1xyXG4gIHJlZnJlc2goY3VycmVudFBhZ2U/OiBib29sZWFuKSB7XHJcbiAgICBpZiAoY3VycmVudFBhZ2UpIHtcclxuICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5uelRhYmxlLm56UGFnZUluZGV4ID09PSAxKSB7XHJcbiAgICAgICAgLy8g5b2T5YmN6aG15qCH5LiN5Y+Y5Li75Yqo5p+l6K+i5LiA5qyhXHJcbiAgICAgICAgdGhpcy5lbWl0KCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5uelRhYmxlRGF0YVNlcnZpY2UudXBkYXRlUGFnZUluZGV4KDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDph43nva7mn6Xor6LmnaHku7blubbmn6Xor6JcclxuICAgKi9cclxuICByZXNldChwYXJhbXM/OiBhbnkpIHtcclxuICAgIGlmIChwYXJhbXMpIHtcclxuICAgICAgdGhpcy5fcXVlcnlQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLl9xdWVyeVBhcmFtcykge1xyXG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5fcXVlcnlQYXJhbXMsIGtleSkpIHtcclxuICAgICAgICAgIHRoaXMuX3F1ZXJ5UGFyYW1zW2tleV0gPSAnJztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm56VGFibGUubnpQYWdlSW5kZXggPT09IDEpIHtcclxuICAgICAgLy8g5b2T5YmN6aG15qCH5LiN5Y+Y5Li75Yqo5p+l6K+i5LiA5qyhXHJcbiAgICAgIHRoaXMuZW1pdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5uelRhYmxlRGF0YVNlcnZpY2UudXBkYXRlUGFnZUluZGV4KDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBlbWl0KCkge1xyXG4gICAgY29uc3QgcGFyYW1zOiBOenhUYWJsZVF1ZXJ5UGFyYW1zID0ge1xyXG4gICAgICAuLi50aGlzLl9xdWVyeVBhcmFtcyxcclxuICAgICAgLi4udGhpcy5uelRhYmxlUXVlcnlQYXJhbXMsXHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLmVuYWJsZUNhY2hlKSB7XHJcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXHJcbiAgICAgICAgQ0FDSEVfS0VZICsgdGhpcy5yb3V0ZXIudXJsLFxyXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KHBhcmFtcylcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm56eFF1ZXJ5UGFyYW1zLmVtaXQodGhpcy5jdXN0b21Gb3JtYXRlT3V0Rm4ocGFyYW1zKSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,11 +2,11 @@ import { NgModule } from '@angular/core';
2
2
  import { NzxTableAdaptor } from './table-adaptor.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class NzxTableAdaptorModule {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableAdaptorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NzxTableAdaptorModule, declarations: [NzxTableAdaptor], exports: [NzxTableAdaptor] }); }
7
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableAdaptorModule }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableAdaptorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: NzxTableAdaptorModule, declarations: [NzxTableAdaptor], exports: [NzxTableAdaptor] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableAdaptorModule }); }
8
8
  }
9
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableAdaptorModule, decorators: [{
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableAdaptorModule, decorators: [{
10
10
  type: NgModule,
11
11
  args: [{
12
12
  imports: [],
@@ -4,10 +4,10 @@ export class NzxTableFormExpandDirective {
4
4
  constructor(templateRef) {
5
5
  this.templateRef = templateRef;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormExpandDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxTableFormExpandDirective, selector: "[nzxTableFormExpand]", inputs: { controlName: "controlName" }, ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormExpandDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NzxTableFormExpandDirective, selector: "[nzxTableFormExpand]", inputs: { controlName: "controlName" }, ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormExpandDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormExpandDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[nzxTableFormExpand]',
@@ -4,10 +4,10 @@ export class NzxTableFormTdDirective {
4
4
  constructor(templateRef) {
5
5
  this.templateRef = templateRef;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormTdDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxTableFormTdDirective, selector: "[nzxTableFormTd]", inputs: { controlName: "controlName" }, ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormTdDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NzxTableFormTdDirective, selector: "[nzxTableFormTd]", inputs: { controlName: "controlName" }, ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormTdDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormTdDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[nzxTableFormTd]',
@@ -4,10 +4,10 @@ export class NzxTableFormThDirective {
4
4
  constructor(templateRef) {
5
5
  this.templateRef = templateRef;
6
6
  }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormThDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.3", type: NzxTableFormThDirective, selector: "[nzxTableFormTh]", inputs: { controlName: "controlName", width: "width" }, ngImport: i0 }); }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormThDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
8
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: NzxTableFormThDirective, selector: "[nzxTableFormTh]", inputs: { controlName: "controlName", width: "width" }, ngImport: i0 }); }
9
9
  }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormThDirective, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormThDirective, decorators: [{
11
11
  type: Directive,
12
12
  args: [{
13
13
  selector: '[nzxTableFormTh]',
@@ -303,17 +303,17 @@ export class NzxTableFormComponent {
303
303
  format: item?.format,
304
304
  }));
305
305
  }
306
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
307
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.3", type: NzxTableFormComponent, selector: "nzx-table-form", inputs: { tableLayout: "tableLayout", tableAlign: "tableAlign", enableExpand: "enableExpand", nzxBordered: "nzxBordered", nzxSize: "nzxSize", enableLimit: "enableLimit", maxLimit: "maxLimit", minLimit: "minLimit", nzxFooter: "nzxFooter", nzxFrontPagination: "nzxFrontPagination", errorTemplate: "errorTemplate", enableNo: "enableNo", serialNumberWidth: "serialNumberWidth", serialNumberTemplate: "serialNumberTemplate", tableValidatorFn: "tableValidatorFn", tableFormConfig: "tableFormConfig" }, outputs: { limitMessage: "limitMessage" }, providers: [
306
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
307
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.3", type: NzxTableFormComponent, selector: "nzx-table-form", inputs: { tableLayout: "tableLayout", tableAlign: "tableAlign", enableExpand: "enableExpand", nzxBordered: "nzxBordered", nzxSize: "nzxSize", enableLimit: "enableLimit", maxLimit: "maxLimit", minLimit: "minLimit", nzxFooter: "nzxFooter", nzxFrontPagination: "nzxFrontPagination", errorTemplate: "errorTemplate", enableNo: "enableNo", serialNumberWidth: "serialNumberWidth", serialNumberTemplate: "serialNumberTemplate", tableValidatorFn: "tableValidatorFn", tableFormConfig: "tableFormConfig" }, outputs: { limitMessage: "limitMessage" }, providers: [
308
308
  {
309
309
  provide: NG_VALUE_ACCESSOR,
310
310
  useExisting: forwardRef(() => NzxTableFormComponent),
311
311
  multi: true,
312
312
  },
313
313
  { provide: NG_VALIDATORS, useExisting: NzxTableFormComponent, multi: true },
314
- ], queries: [{ propertyName: "tableExpandDirective", first: true, predicate: NzxTableFormExpandDirective, descendants: true }, { propertyName: "tableTdDirectiveList", predicate: NzxTableFormTdDirective }, { propertyName: "tableThDirectiveList", predicate: NzxTableFormThDirective }], exportAs: ["NzxTableForm"], ngImport: i0, template: "<nz-table\n #basicTable\n [formGroup]=\"form\"\n [nzData]=\"formGroupList\"\n [nzTableLayout]=\"tableLayout\"\n [nzFooter]=\"nzxFooter!\"\n [nzBordered]=\"nzxBordered\"\n [nzSize]=\"nzxSize\"\n [nzFrontPagination]=\"nzxFrontPagination\"\n nzHideOnSinglePage\n>\n <thead>\n <ng-content></ng-content>\n <tr>\n <!-- \u5E8F\u53F7\u5217\u6807\u9898 -->\n <th *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n <span *ngIf=\"!serialNumberTemplate\"> \u5E8F\u53F7 </span>\n <ng-container *ngIf=\"serialNumberTemplate\">\n <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n </ng-container>\n </th>\n <!-- \u8868\u5355\u5217form header -->\n <ng-container *ngFor=\"let item of headerConfig; let index = index\">\n <ng-container *ngIf=\"item.isShow\">\n <th\n *ngIf=\"!item.templateRef\"\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n <label *ngIf=\"item.showRequiredTip\" [ngStyle]=\"{ color: 'red' }\">\n *\n </label>\n {{ item.header }}\n </th>\n <th\n *ngIf=\"item.templateRef\"\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n <ng-container\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index }\"\n >\n </ng-container>\n </th>\n </ng-container>\n </ng-container>\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217header -->\n <th\n *ngFor=\"let item of thTemplateOfNullInForm; let i = index\"\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: form, index: i, disabled: isDisabled }\n \"\n >\n </ng-container>\n </th>\n </tr>\n </thead>\n\n <tbody formArrayName=\"formArray\">\n <ng-container *ngFor=\"let fg of basicTable.data; let i = index\">\n <tr>\n <!-- \u5E8F\u53F7\u5217 -->\n <td *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\">\n {{ i + 1 }}\n </td>\n <!-- \u8868\u5355\u5217\u5C06\u653E\u8FDBform -->\n <ng-container [formGroup]=\"fg\">\n <ng-container *ngFor=\"let item of tdConfig\">\n <ng-container *ngIf=\"item.isShow\">\n <td *ngIf=\"!item.templateRef\" [nzAlign]=\"tableAlign\">\n <nz-form-item [ngStyle]=\"{ 'margin-bottom': 0 }\">\n <nz-form-control [nzErrorTip]=\"item.errorTip\">\n <input\n *ngIf=\"\n item.type === 'input' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n nz-input\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n />\n\n <textarea\n *ngIf=\"\n item.type === 'textarea' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n nz-input\n [nzAutosize]=\"{ minRows: 3 }\"\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n ></textarea>\n\n <nz-input-number\n *ngIf=\"\n item.type === 'number' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n [ngStyle]=\"{ width: 'auto' }\"\n [formControlName]=\"item.controlName\"\n [nzMin]=\"1\"\n [nzStep]=\"1\"\n [nzMax]=\"item.max!\"\n [nzPlaceHolder]=\"item.placeholder || '\u8F93\u5165\u6570\u5B57'\"\n >\n </nz-input-number>\n\n <nz-date-picker\n *ngIf=\"\n item.type === 'date' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n [formControlName]=\"item.controlName\"\n >\n </nz-date-picker>\n\n <nz-select\n *ngIf=\"\n item.type === 'select' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n nzShowSearch=\"true\"\n [nzAllowClear]=\"item.allowClear\"\n [formControlName]=\"item.controlName\"\n [nzPlaceHolder]=\"item.placeholder || '\u8BF7\u9009\u62E9'\"\n >\n <nz-option\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n *ngFor=\"let option of item.options\"\n >\n </nz-option>\n </nz-select>\n\n <nz-radio-group\n *ngIf=\"\n item.type === 'radio' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n [formControlName]=\"item.controlName\"\n >\n <label\n *ngFor=\"let option of item.options\"\n nz-radio\n [nzValue]=\"option.value\"\n >\n {{ option.label }}\n </label>\n </nz-radio-group>\n\n <span *ngIf=\"item.controlMode === 'readonly'\">\n <ng-container *ngIf=\"item.format\">\n {{ item.format(fg.get(item.controlName)?.value) }}\n </ng-container>\n <ng-container *ngIf=\"!item.format\">\n {{ fg.get(item.controlName)?.value }}\n </ng-container>\n </span>\n </nz-form-control>\n </nz-form-item>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"item.templateRef\">\n <td *ngIf=\"item.isShow\" [nzAlign]=\"tableAlign\">\n <ng-container\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: fg,\n config: item,\n formControl: fg.get(item.controlName),\n errorTip: item.errorTip,\n index: i,\n disabled: isDisabled\n }\"\n >\n </ng-container>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217 -->\n <td *ngFor=\"let item of tdTemplateOfNullInForm\" [nzAlign]=\"tableAlign\">\n <ng-container\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: fg,\n index: i,\n disabled: isDisabled\n }\"\n ></ng-container>\n </td>\n </tr>\n <tr *ngIf=\"enableExpand\" [nzExpand]=\"fg.value.expand\">\n <ng-container\n [ngTemplateOutlet]=\"tableExpandDirective?.templateRef!\"\n [ngTemplateOutletContext]=\"{\n $implicit: fg,\n index: i,\n disabled: isDisabled\n }\"\n >\n </ng-container>\n </tr>\n </ng-container>\n\n <tr *ngIf=\"form.get('formArray')?.errors\" [nzExpand]=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"errorTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: form.get('formArray') }\"\n >\n </ng-container>\n </tr>\n </tbody>\n</nz-table>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i4.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "component", type: i5.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "directive", type: i5.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i5.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i5.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i5.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i5.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i5.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "directive", type: i5.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i5.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "component", type: i6.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus"], exportAs: ["nzRadio"] }, { kind: "component", type: i6.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { kind: "directive", type: i7.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i7.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { kind: "component", type: i8.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i8.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "component", type: i9.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "component", type: i10.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecision", "nzPrecisionMode", "nzPlaceHolder", "nzStatus", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBorderless", "nzFormatter"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }] }); }
314
+ ], queries: [{ propertyName: "tableExpandDirective", first: true, predicate: NzxTableFormExpandDirective, descendants: true }, { propertyName: "tableTdDirectiveList", predicate: NzxTableFormTdDirective }, { propertyName: "tableThDirectiveList", predicate: NzxTableFormThDirective }], exportAs: ["NzxTableForm"], ngImport: i0, template: "<nz-table\n #basicTable\n [formGroup]=\"form\"\n [nzData]=\"formGroupList\"\n [nzTableLayout]=\"tableLayout\"\n [nzFooter]=\"nzxFooter!\"\n [nzBordered]=\"nzxBordered\"\n [nzSize]=\"nzxSize\"\n [nzFrontPagination]=\"nzxFrontPagination\"\n nzHideOnSinglePage\n>\n <thead>\n <ng-content></ng-content>\n <tr>\n <!-- \u5E8F\u53F7\u5217\u6807\u9898 -->\n <th *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\" [nzWidth]=\"serialNumberWidth\">\n <span *ngIf=\"!serialNumberTemplate\"> \u5E8F\u53F7 </span>\n <ng-container *ngIf=\"serialNumberTemplate\">\n <ng-container *ngTemplateOutlet=\"serialNumberTemplate\"></ng-container>\n </ng-container>\n </th>\n <!-- \u8868\u5355\u5217form header -->\n <ng-container *ngFor=\"let item of headerConfig; let index = index\">\n <ng-container *ngIf=\"item.isShow\">\n <th\n *ngIf=\"!item.templateRef\"\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n <label *ngIf=\"item.showRequiredTip\" [ngStyle]=\"{ color: 'red' }\">\n *\n </label>\n {{ item.header }}\n </th>\n <th\n *ngIf=\"item.templateRef\"\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n <ng-container\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: item, index }\"\n >\n </ng-container>\n </th>\n </ng-container>\n </ng-container>\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217header -->\n <th\n *ngFor=\"let item of thTemplateOfNullInForm; let i = index\"\n [nzAlign]=\"tableAlign\"\n [nzWidth]=\"item.width!\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n item.templateRef;\n context: { $implicit: form, index: i, disabled: isDisabled }\n \"\n >\n </ng-container>\n </th>\n </tr>\n </thead>\n\n <tbody formArrayName=\"formArray\">\n <ng-container *ngFor=\"let fg of basicTable.data; let i = index\">\n <tr>\n <!-- \u5E8F\u53F7\u5217 -->\n <td *ngIf=\"enableNo\" [nzAlign]=\"tableAlign\">\n {{ i + 1 }}\n </td>\n <!-- \u8868\u5355\u5217\u5C06\u653E\u8FDBform -->\n <ng-container [formGroup]=\"fg\">\n <ng-container *ngFor=\"let item of tdConfig\">\n <ng-container *ngIf=\"item.isShow\">\n <td *ngIf=\"!item.templateRef\" [nzAlign]=\"tableAlign\">\n <nz-form-item [ngStyle]=\"{ 'margin-bottom': 0 }\">\n <nz-form-control [nzErrorTip]=\"item.errorTip\">\n <input\n *ngIf=\"\n item.type === 'input' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n nz-input\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n />\n\n <textarea\n *ngIf=\"\n item.type === 'textarea' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n nz-input\n [nzAutosize]=\"{ minRows: 3 }\"\n [placeholder]=\"item.placeholder || '\u8BF7\u8F93\u5165'\"\n [formControlName]=\"item.controlName\"\n [maxlength]=\"item.maxLength!\"\n ></textarea>\n\n <nz-input-number\n *ngIf=\"\n item.type === 'number' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n [ngStyle]=\"{ width: 'auto' }\"\n [formControlName]=\"item.controlName\"\n [nzMin]=\"1\"\n [nzStep]=\"1\"\n [nzMax]=\"item.max!\"\n [nzPlaceHolder]=\"item.placeholder || '\u8F93\u5165\u6570\u5B57'\"\n >\n </nz-input-number>\n\n <nz-date-picker\n *ngIf=\"\n item.type === 'date' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n [formControlName]=\"item.controlName\"\n >\n </nz-date-picker>\n\n <nz-select\n *ngIf=\"\n item.type === 'select' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n nzShowSearch=\"true\"\n [nzAllowClear]=\"item.allowClear\"\n [formControlName]=\"item.controlName\"\n [nzPlaceHolder]=\"item.placeholder || '\u8BF7\u9009\u62E9'\"\n >\n <nz-option\n [nzValue]=\"option.value\"\n [nzLabel]=\"option.label\"\n *ngFor=\"let option of item.options\"\n >\n </nz-option>\n </nz-select>\n\n <nz-radio-group\n *ngIf=\"\n item.type === 'radio' &&\n item.controlMode !== 'readonly' &&\n !!item.controlName\n \"\n [formControlName]=\"item.controlName\"\n >\n <label\n *ngFor=\"let option of item.options\"\n nz-radio\n [nzValue]=\"option.value\"\n >\n {{ option.label }}\n </label>\n </nz-radio-group>\n\n <span *ngIf=\"item.controlMode === 'readonly'\">\n <ng-container *ngIf=\"item.format\">\n {{ item.format(fg.get(item.controlName)?.value) }}\n </ng-container>\n <ng-container *ngIf=\"!item.format\">\n {{ fg.get(item.controlName)?.value }}\n </ng-container>\n </span>\n </nz-form-control>\n </nz-form-item>\n </td>\n </ng-container>\n\n <ng-container *ngIf=\"item.templateRef\">\n <td *ngIf=\"item.isShow\" [nzAlign]=\"tableAlign\">\n <ng-container\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: fg,\n config: item,\n formControl: fg.get(item.controlName),\n errorTip: item.errorTip,\n index: i,\n disabled: isDisabled\n }\"\n >\n </ng-container>\n </td>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- \u81EA\u5B9A\u4E49\u5C55\u793A\u5217 -->\n <td *ngFor=\"let item of tdTemplateOfNullInForm\" [nzAlign]=\"tableAlign\">\n <ng-container\n [ngTemplateOutlet]=\"item.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: fg,\n index: i,\n disabled: isDisabled\n }\"\n ></ng-container>\n </td>\n </tr>\n <tr *ngIf=\"enableExpand\" [nzExpand]=\"fg.value.expand\">\n <ng-container\n [ngTemplateOutlet]=\"tableExpandDirective?.templateRef!\"\n [ngTemplateOutletContext]=\"{\n $implicit: fg,\n index: i,\n disabled: isDisabled\n }\"\n >\n </ng-container>\n </tr>\n </ng-container>\n\n <tr *ngIf=\"form.get('formArray')?.errors\" [nzExpand]=\"true\">\n <ng-container\n [ngTemplateOutlet]=\"errorTemplate!\"\n [ngTemplateOutletContext]=\"{ $implicit: form.get('formArray') }\"\n >\n </ng-container>\n </tr>\n </tbody>\n</nz-table>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.NzColDirective, selector: "[nz-col],nz-col,nz-form-control,nz-form-label", inputs: ["nzFlex", "nzSpan", "nzOrder", "nzOffset", "nzPush", "nzPull", "nzXs", "nzSm", "nzMd", "nzLg", "nzXl", "nzXXl"], exportAs: ["nzCol"] }, { kind: "directive", type: i3.NzRowDirective, selector: "[nz-row],nz-row,nz-form-item", inputs: ["nzAlign", "nzJustify", "nzGutter"], exportAs: ["nzRow"] }, { kind: "component", type: i4.NzFormItemComponent, selector: "nz-form-item", exportAs: ["nzFormItem"] }, { kind: "component", type: i4.NzFormControlComponent, selector: "nz-form-control", inputs: ["nzSuccessTip", "nzWarningTip", "nzErrorTip", "nzValidatingTip", "nzExtra", "nzAutoTips", "nzDisableAutoTips", "nzHasFeedback", "nzValidateStatus"], exportAs: ["nzFormControl"] }, { kind: "component", type: i5.NzTableComponent, selector: "nz-table", inputs: ["nzTableLayout", "nzShowTotal", "nzItemRender", "nzTitle", "nzFooter", "nzNoResult", "nzPageSizeOptions", "nzVirtualItemSize", "nzVirtualMaxBufferPx", "nzVirtualMinBufferPx", "nzVirtualForTrackBy", "nzLoadingDelay", "nzPageIndex", "nzPageSize", "nzTotal", "nzWidthConfig", "nzData", "nzCustomColumn", "nzPaginationPosition", "nzScroll", "noDataVirtualHeight", "nzPaginationType", "nzFrontPagination", "nzTemplateMode", "nzShowPagination", "nzLoading", "nzOuterBordered", "nzLoadingIndicator", "nzBordered", "nzSize", "nzShowSizeChanger", "nzHideOnSinglePage", "nzShowQuickJumper", "nzSimple"], outputs: ["nzPageSizeChange", "nzPageIndexChange", "nzQueryParams", "nzCurrentPageDataChange", "nzCustomColumnChange"], exportAs: ["nzTable"] }, { kind: "directive", type: i5.NzTableCellDirective, selector: "th:not(.nz-disable-th):not([mat-cell]), td:not(.nz-disable-td):not([mat-cell])" }, { kind: "directive", type: i5.NzThMeasureDirective, selector: "th", inputs: ["nzWidth", "colspan", "colSpan", "rowspan", "rowSpan"] }, { kind: "component", type: i5.NzTheadComponent, selector: "thead:not(.ant-table-thead)", outputs: ["nzSortOrderChange"] }, { kind: "component", type: i5.NzTbodyComponent, selector: "tbody" }, { kind: "directive", type: i5.NzTrDirective, selector: "tr:not([mat-row]):not([mat-header-row]):not([nz-table-measure-row]):not([nzExpand]):not([nz-table-fixed-row])" }, { kind: "directive", type: i5.NzTrExpandDirective, selector: "tr[nzExpand]", inputs: ["nzExpand"] }, { kind: "directive", type: i5.NzCellAlignDirective, selector: "th[nzAlign],td[nzAlign]", inputs: ["nzAlign"] }, { kind: "component", type: i5.NzTableFixedRowComponent, selector: "tr[nz-table-fixed-row], tr[nzExpand]" }, { kind: "component", type: i6.NzRadioComponent, selector: "[nz-radio],[nz-radio-button]", inputs: ["nzValue", "nzDisabled", "nzAutoFocus", "nz-radio-button"], exportAs: ["nzRadio"] }, { kind: "component", type: i6.NzRadioGroupComponent, selector: "nz-radio-group", inputs: ["nzDisabled", "nzButtonStyle", "nzSize", "nzName"], exportAs: ["nzRadioGroup"] }, { kind: "directive", type: i7.NzInputDirective, selector: "input[nz-input],textarea[nz-input]", inputs: ["nzBorderless", "nzSize", "nzStepperless", "nzStatus", "disabled"], exportAs: ["nzInput"] }, { kind: "directive", type: i7.NzAutosizeDirective, selector: "textarea[nzAutosize]", inputs: ["nzAutosize"], exportAs: ["nzAutosize"] }, { kind: "component", type: i8.NzOptionComponent, selector: "nz-option", inputs: ["nzTitle", "nzLabel", "nzValue", "nzKey", "nzDisabled", "nzHide", "nzCustomContent"], exportAs: ["nzOption"] }, { kind: "component", type: i8.NzSelectComponent, selector: "nz-select", inputs: ["nzId", "nzSize", "nzStatus", "nzOptionHeightPx", "nzOptionOverflowSize", "nzDropdownClassName", "nzDropdownMatchSelectWidth", "nzDropdownStyle", "nzNotFoundContent", "nzPlaceHolder", "nzPlacement", "nzMaxTagCount", "nzDropdownRender", "nzCustomTemplate", "nzSuffixIcon", "nzClearIcon", "nzRemoveIcon", "nzMenuItemSelectedIcon", "nzTokenSeparators", "nzMaxTagPlaceholder", "nzMaxMultipleCount", "nzMode", "nzFilterOption", "compareWith", "nzAllowClear", "nzBorderless", "nzShowSearch", "nzLoading", "nzAutoFocus", "nzAutoClearSearchValue", "nzServerSearch", "nzDisabled", "nzOpen", "nzSelectOnTab", "nzBackdrop", "nzOptions", "nzShowArrow"], outputs: ["nzOnSearch", "nzScrollToBottom", "nzOpenChange", "nzBlur", "nzFocus"], exportAs: ["nzSelect"] }, { kind: "component", type: i9.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-quarter-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzOpen", "nzDisabledDate", "nzLocale", "nzPlaceHolder", "nzPopupStyle", "nzDropdownClassName", "nzSize", "nzStatus", "nzFormat", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzShowToday", "nzMode", "nzShowNow", "nzRanges", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzPlacement", "nzShowWeekNumber", "nzShowTime"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }, { kind: "component", type: i10.NzInputNumberComponent, selector: "nz-input-number", inputs: ["nzSize", "nzMin", "nzMax", "nzParser", "nzPrecision", "nzPrecisionMode", "nzPlaceHolder", "nzStatus", "nzStep", "nzInputMode", "nzId", "nzDisabled", "nzReadOnly", "nzAutoFocus", "nzBorderless", "nzFormatter"], outputs: ["nzBlur", "nzFocus"], exportAs: ["nzInputNumber"] }] }); }
315
315
  }
316
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormComponent, decorators: [{
316
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormComponent, decorators: [{
317
317
  type: Component,
318
318
  args: [{ selector: 'nzx-table-form', exportAs: 'NzxTableForm', providers: [
319
319
  {
@@ -367,4 +367,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImpor
367
367
  type: ContentChild,
368
368
  args: [NzxTableFormExpandDirective]
369
369
  }] } });
370
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RhYmxlLWZvcm0vdGFibGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RhYmxlLWZvcm0vdGFibGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFNTCxhQUFhLEVBQ2IsaUJBQWlCLEdBSWxCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztBQXVCekUsTUFBTSxPQUFPLHFCQUFxQjtJQStEaEMsaURBQWlEO0lBQ2pELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBeUIsQ0FBQztJQUM1RCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMs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b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBBYnN0cmFjdENvbnRyb2wsXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICBGb3JtQXJyYXksXG4gIEZvcm1CdWlsZGVyLFxuICBGb3JtR3JvdXAsXG4gIE5HX1ZBTElEQVRPUlMsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvckZuLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IE56VGFibGVMYXlvdXQsIE56VGFibGVTaXplIH0gZnJvbSAnbmctem9ycm8tYW50ZC90YWJsZSc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IHVwZGF0ZUNvbnRyb2xTdGF0dXMgfSBmcm9tICduZy16b3Jyby1hbnRkLWV4dGVuc2lvbi91dGlsJztcbmltcG9ydCB7IE56eFRhYmxlRm9ybUV4cGFuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlL3RhYmxlLWV4cGFuZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTnp4VGFibGVGb3JtVGREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS90YWJsZS10ZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTnp4VGFibGVGb3JtVGhEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS90YWJsZS10aC5kaXJlY3RpdmUnO1xuXG5pbXBvcnQge1xuICBOenhMaW1pdE1lc3NhZ2UsXG4gIE56eFRhYmxlRm9ybUNvbmZpZyxcbiAgTnp4VGFibGVGb3JtSGVhZGVyQ29uZmlnLFxuICBOenhUYWJsZUZvcm1UZENvbmZpZyxcbn0gZnJvbSAnLi90eXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnp4LXRhYmxlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RhYmxlLWZvcm0uY29tcG9uZW50Lmxlc3MnXSxcbiAgZXhwb3J0QXM6ICdOenhUYWJsZUZvcm0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE56eFRhYmxlRm9ybUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHsgcHJvdmlkZTogTkdfVkFMSURBVE9SUywgdXNlRXhpc3Rpbmc6IE56eFRhYmxlRm9ybUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnp4VGFibGVGb3JtQ29tcG9uZW50XG4gIGltcGxlbWVudHNcbiAgICBPbkluaXQsXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBWYWxpZGF0b3IsXG4gICAgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpIHRhYmxlTGF5b3V0OiBOelRhYmxlTGF5b3V0ID0gJ2ZpeGVkJztcbiAgQElucHV0KCkgdGFibGVBbGlnbjogJ2xlZnQnIHwgJ3JpZ2h0JyB8ICdjZW50ZXInIHwgbnVsbCA9ICdjZW50ZXInO1xuICAvKiogdGFibGUg5ZCv55So5omp5bGV6KGMICovXG4gIEBJbnB1dCgpIGVuYWJsZUV4cGFuZCA9IGZhbHNlO1xuICAvKiogdGFibGUgYm9yZGVyICovXG4gIEBJbnB1dCgpIG56eEJvcmRlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiB0YWJsZSBzaXplICovXG4gIEBJbnB1dCgpIG56eFNpemU6IE56VGFibGVTaXplID0gJ2RlZmF1bHQnO1xuICAvKiog5ZCv55So5pWw6YeP6ZmQ5Yi2ICovXG4gIEBJbnB1dCgpIGVuYWJsZUxpbWl0ID0gZmFsc2U7XG4gIC8qKiDmnIDlpKfmlbDph48gKi9cbiAgQElucHV0KCkgbWF4TGltaXQ6IG51bWJlciA9IDA7XG4gIC8qKiDmnIDlsJHmlbDph48gKi9cbiAgQElucHV0KCkgbWluTGltaXQ6IG51bWJlciA9IDA7XG4gIC8qKiDoh6rlrprkuYlmb290ZXIgKi9cbiAgQElucHV0KCkgbnp4Rm9vdGVyPzogc3RyaW5nIHwgVGVtcGxhdGVSZWY8dm9pZD47XG4gIC8qKuaYr+WQpuWcqOWJjeerr+WvueaVsOaNrui/m+ihjOWIhumhte+8jOWmguaenOWcqOacjeWKoeWZqOWIhumhteaVsOaNruaIluiAhemcgOimgeWcqOWJjeerr+aYvuekuuWFqOmDqOaVsOaNruaXtuS8oOWFpSBmYWxzZSAqL1xuICBASW5wdXQoKSBuenhGcm9udFBhZ2luYXRpb24gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiDmoKHpqozmlbTkuKp0YWJsZeeahOmUmeivr+aPkOekuuiHquWumuS5ieaooeadv1xuICAgKi9cbiAgQElucHV0KCkgZXJyb3JUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XG4gIC8qKiDlkK/nlKjluo/lj7cgKi9cbiAgQElucHV0KCkgZW5hYmxlTm8gPSBmYWxzZTtcblxuICAvKiog5bqP5Y+35a695bqmICovXG4gIEBJbnB1dCgpIHNlcmlhbE51bWJlcldpZHRoOiBzdHJpbmcgPSAnNjBweCc7XG4gIC8qKiDluo/lj7foh6rlrprkuYnmqKHmnb8gKi9cbiAgQElucHV0KCkgc2VyaWFsTnVtYmVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx2b2lkPjtcbiAgLyoqXG4gICAqIOagoemqjHRhYmxl55qE5Ye95pWwXG4gICAqL1xuICBASW5wdXQoKSB0YWJsZVZhbGlkYXRvckZuOiBWYWxpZGF0b3JGbiA9IChcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2xcbiAgKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4gbnVsbDtcblxuICAvKiogdGFibGUgY29uZmlnICovXG4gIEBJbnB1dCgpIHRhYmxlRm9ybUNvbmZpZzogTnp4VGFibGVGb3JtQ29uZmlnW10gPSBbXTtcblxuICAvKiog5pWw6YeP6ZmQ5Yi25Zue6LCDICovXG4gIEBPdXRwdXQoKSBsaW1pdE1lc3NhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE56eExpbWl0TWVzc2FnZT4oKTtcblxuICBoZWFkZXJDb25maWchOiBBcnJheTxOenhUYWJsZUZvcm1IZWFkZXJDb25maWc+O1xuICB0ZENvbmZpZyE6IEFycmF5PE56eFRhYmxlRm9ybVRkQ29uZmlnPjtcblxuICB0aFRlbXBsYXRlT2ZOdWxsSW5Gb3JtOiB7XG4gICAgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICAgIHdpZHRoPzogc3RyaW5nO1xuICB9W10gPSBbXTtcbiAgdGRUZW1wbGF0ZU9mTnVsbEluRm9ybTogeyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8dW5rbm93bj4gfVtdID0gW107XG4gIC8qKiDmlbTkuKp0YWJsZS1mb3JtICovXG4gIGZvcm0hOiBGb3JtR3JvdXA7XG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICAvKiogZm9ybUdyb3Vw5LiL55qEZm9ybUFycmF5LGZvcm1BcnJheeS4reaYr+WkmuihjGZvcm1Hcm91cCovXG4gIGdldCB0YWJsZUZvcm1BcnJheSgpOiBGb3JtQXJyYXk8Rm9ybUdyb3VwPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2Zvcm1BcnJheScpIGFzIEZvcm1BcnJheTxGb3JtR3JvdXA+O1xuICB9XG5cbiAgLyoqIHRhYmxlIGZvcm1Hcm91cHPpm4blkIggKi9cbiAgZ2V0IGZvcm1Hcm91cExpc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVGb3JtQXJyYXkuY29udHJvbHMuY29uY2F0KFtdKTtcbiAgfVxuXG4gIGdldCBpbnZhbGlkKCkge1xuICAgIHJldHVybiB0aGlzLmZvcm0uaW52YWxpZDtcbiAgfVxuXG4gIC8qKiDkuIDooYznmoRmb3Jt6YWN572uICovXG4gIHByaXZhdGUgY29udHJvbHNDb25maWchOiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuXG4gIHByaXZhdGUgZGVzdHJveWVkJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihOenhUYWJsZUZvcm1UZERpcmVjdGl2ZSlcbiAgcHJpdmF0ZSB0YWJsZVRkRGlyZWN0aXZlTGlzdCE6IFF1ZXJ5TGlzdDxOenhUYWJsZUZvcm1UZERpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihOenhUYWJsZUZvcm1UaERpcmVjdGl2ZSlcbiAgcHJpdmF0ZSB0YWJsZVRoRGlyZWN0aXZlTGlzdCE6IFF1ZXJ5TGlzdDxOenhUYWJsZUZvcm1UaERpcmVjdGl2ZT47XG5cbiAgQENvbnRlbnRDaGlsZChOenhUYWJsZUZvcm1FeHBhbmREaXJlY3RpdmUpXG4gIHRhYmxlRXhwYW5kRGlyZWN0aXZlITogTnp4VGFibGVGb3JtRXhwYW5kRGlyZWN0aXZlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgZm9ybUFycmF5OiB0aGlzLmZiLmFycmF5KFtdLCBbdGhpcy50YWJsZVZhbGlkYXRvckZuXSksXG4gICAgfSk7XG5cbiAgICB0aGlzLmNvbnRyb2xzQ29uZmlnID0gdGhpcy5wYXJzZUZvcm1Db25maWcodGhpcy50YWJsZUZvcm1Db25maWcpO1xuICAgIHRoaXMuaGVhZGVyQ29uZmlnID0gdGhpcy5wYXJzZUhlYWRlcih0aGlzLnRhYmxlRm9ybUNvbmZpZyk7XG4gICAgdGhpcy50ZENvbmZpZyA9IHRoaXMucGFyc2VUZCh0aGlzLnRhYmxlRm9ybUNvbmZpZyk7XG5cbiAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZShyZXMuZm9ybUFycmF5KTtcbiAgICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMubWF0Y2hUZW1wbGF0ZSh0aGlzLnRhYmxlVGhEaXJlY3RpdmVMaXN0LCB0aGlzLnRhYmxlVGREaXJlY3RpdmVMaXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDoi6V0YWJsZeS4uuepuuaIluiAheacieS4gOihjOaVsOaNruagoemqjOS4jemAmui/h++8jOWImeaVtOS4que7hOS7tuagoemqjOS4jemAmui/h1xuICAgKi9cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIGNvbnN0IGFyciA9ICh0aGlzLnRhYmxlRm9ybUFycmF5LmNvbnRyb2xzIGFzIEZvcm1Hcm91cFtdKSB8fCBbXTtcbiAgICBpZiAoYXJyLnNvbWUoKHJvdykgPT4gcm93LnN0YXR1cyA9PT0gJ0lOVkFMSUQnKSkge1xuICAgICAgcmV0dXJuIHsgdGFibGVSZXF1aXJlZEVycm9yOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIOagueaNrmNvbnRyb2xOYW1l6K6+572uY29uZmln5YC8XG4gICAqL1xuICBzZXRDb25maWcoY29udHJvbE5hbWU6IHN0cmluZywgY29uZmlnOiBQYXJ0aWFsPE56eFRhYmxlRm9ybUNvbmZpZz4pOiB2b2lkIHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMudGFibGVGb3JtQ29uZmlnLmZpbmRJbmRleChcbiAgICAgIChpdGVtKSA9PiBpdGVtLmNvbnRyb2xOYW1lID09PSBjb250cm9sTmFtZVxuICAgICk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMudGFibGVGb3JtQ29uZmlnW2luZGV4XSA9IHtcbiAgICAgICAgLi4udGhpcy50YWJsZUZvcm1Db25maWdbaW5kZXhdLFxuICAgICAgICAuLi5jb25maWcsXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZVRhYmxlQ29uZmlnKCk7XG4gIH1cblxuICAvKipcbiAgICog6YeN572udGFibGXooajljZXkuLrnqbpcbiAgICovXG4gIGNsZWFyVGFibGUoKTogdm9pZCB7XG4gICAgdGhpcy50YWJsZUZvcm1BcnJheS5jbGVhcigpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICog5re75YqgdGFibGXkuIDooYxcbiAgICovXG4gIGFkZFJvdyhyb3dWYWx1ZT86IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcbiAgICAgIGlmICh0aGlzLmVuYWJsZUxpbWl0ICYmIHRoaXMudGFibGVGb3JtQXJyYXkubGVuZ3RoIDwgdGhpcy5tYXhMaW1pdCkge1xuICAgICAgICBjb25zdCBjb250cm9sc0NvbmZpZ1RlbXAgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbnRyb2xzQ29uZmlnKTtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlRXhwYW5kKSB7XG4gICAgICAgICAgY29udHJvbHNDb25maWdUZW1wWydleHBhbmQnXSA9IFtmYWxzZV07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoY29udHJvbHNDb25maWdUZW1wKTtcbiAgICAgICAgaWYgKHJvd1ZhbHVlKSB7XG4gICAgICAgICAgZm9ybS5wYXRjaFZhbHVlKHJvd1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkucHVzaChmb3JtKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5lbmFibGVMaW1pdCkge1xuICAgICAgICB0aGlzLmxpbWl0TWVzc2FnZS5lbWl0KHtcbiAgICAgICAgICB0eXBlOiAnbWF4JyxcbiAgICAgICAgICBsaW1pdDogdGhpcy5tYXhMaW1pdCxcbiAgICAgICAgICBtc2c6IGDmnIDlpJoke3RoaXMubWF4TGltaXR95p2hYCxcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBjb250cm9sc0NvbmZpZ1RlbXAgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbnRyb2xzQ29uZmlnKTtcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlRXhwYW5kKSB7XG4gICAgICAgICAgY29udHJvbHNDb25maWdUZW1wWydleHBhbmQnXSA9IFtmYWxzZV07XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuZmIuZ3JvdXAoY29udHJvbHNDb25maWdUZW1wKTtcbiAgICAgICAgaWYgKHJvd1ZhbHVlKSB7XG4gICAgICAgICAgZm9ybS5wYXRjaFZhbHVlKHJvd1ZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkucHVzaChmb3JtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdXBkYXRlQ29udHJvbFN0YXR1cyh0aGlzLnRhYmxlRm9ybUFycmF5KTtcbiAgICB9XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDliKDpmaR0YWJsZeS4gOihjFxuICAgKi9cbiAgZGVsZXRlUm93KGk6IG51bWJlcik6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZUxpbWl0KSB7XG4gICAgICBpZiAodGhpcy50YWJsZUZvcm1BcnJheS5sZW5ndGggPiB0aGlzLm1pbkxpbWl0KSB7XG4gICAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxpbWl0TWVzc2FnZS5lbWl0KHtcbiAgICAgICAgICB0eXBlOiAnbWluJyxcbiAgICAgICAgICBsaW1pdDogdGhpcy5tYXhMaW1pdCxcbiAgICAgICAgICBtc2c6IGDoh7PlsJEke3RoaXMubWluTGltaXR95p2hYCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkucmVtb3ZlQXQoaSk7XG4gICAgfVxuICB9XG5cbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudGFibGVGb3JtQXJyYXkuY2xlYXIoKTtcbiAgICBpZiAob2JqICYmIG9iai5sZW5ndGggPiAwKSB7XG4gICAgICBpZiAodGhpcy50ZENvbmZpZy5sZW5ndGggPiAwKSB7XG4gICAgICAgIG9iai5mb3JFYWNoKChpdGVtOiBhbnksIGk6IG51bWJlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRyb2xzQ29uZmlnVGVtcCA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuY29udHJvbHNDb25maWcpO1xuICAgICAgICAgIGlmICh0aGlzLmVuYWJsZUV4cGFuZCkge1xuICAgICAgICAgICAgY29udHJvbHNDb25maWdUZW1wWydleHBhbmQnXSA9IFtmYWxzZV07XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkucHVzaCh0aGlzLmZiLmdyb3VwKGNvbnRyb2xzQ29uZmlnVGVtcCkpO1xuICAgICAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkuY29udHJvbHNbaV0ucGF0Y2hWYWx1ZShpdGVtKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge31cblxuICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMudGFibGVGb3JtQXJyYXkuY29udHJvbHMuZm9yRWFjaCgoaSkgPT4gaS5kaXNhYmxlKCkpO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goKGkpID0+IGkuZW5hYmxlKCkpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiDmm7TmlrB0YWJsZSBjb25maWfphY3nva7poblcbiAgICog5Zyo5pu05pawY29uZmln5pe25YCZ6ZyA6KaB6LCD55So6YeN5paw5riy5p+TdGFibGVcbiAgICovXG4gIHByaXZhdGUgdXBkYXRlVGFibGVDb25maWcoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sc0NvbmZpZyA9IHRoaXMucGFyc2VGb3JtQ29uZmlnKHRoaXMudGFibGVGb3JtQ29uZmlnKTtcbiAgICB0aGlzLmhlYWRlckNvbmZpZyA9IHRoaXMucGFyc2VIZWFkZXIodGhpcy50YWJsZUZvcm1Db25maWcpO1xuICAgIHRoaXMudGRDb25maWcgPSB0aGlzLnBhcnNlVGQodGhpcy50YWJsZUZvcm1Db25maWcpO1xuICAgIHRoaXMubWF0Y2hUZW1wbGF0ZSh0aGlzLnRhYmxlVGhEaXJlY3RpdmVMaXN0LCB0aGlzLnRhYmxlVGREaXJlY3RpdmVMaXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgcHJvcGFnYXRlQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cbiAgLyoqXG4gICAqIOWMuemFjeaKleW9seaooeadv3RlbXBsYXRl5pS+5YiwY29uZmln5LitXG4gICAqL1xuICBwcml2YXRlIG1hdGNoVGVtcGxhdGUoXG4gICAgdGhMaXN0OiBRdWVyeUxpc3Q8Tnp4VGFibGVGb3JtVGhEaXJlY3RpdmU+LFxuICAgIHRkTGlzdDogUXVlcnlMaXN0PE56eFRhYmxlRm9ybVRkRGlyZWN0aXZlPlxuICApOiB2b2lkIHtcbiAgICB0aGlzLmhlYWRlckNvbmZpZyA9IHRoaXMuaGVhZGVyQ29uZmlnLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgVGhEaXJlY3RpdmUgPSB0aExpc3QuZmluZChcbiAgICAgICAgKHRoKSA9PiB0aC5jb250cm9sTmFtZSA9PT0gaXRlbS5jb250cm9sTmFtZVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIHRlbXBsYXRlUmVmOiBUaERpcmVjdGl2ZT8udGVtcGxhdGVSZWYsXG4gICAgICAgIHdpZHRoOiBUaERpcmVjdGl2ZT8ud2lkdGgsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy50ZENvbmZpZyA9IHRoaXMudGRDb25maWcubWFwKChpdGVtKSA9PiB7XG4gICAgICBjb25zdCBUZERpcmVjdGl2ZSA9IHRkTGlzdC5maW5kKFxuICAgICAgICAodGQpID0+IHRkLmNvbnRyb2xOYW1lID09PSBpdGVtLmNvbnRyb2xOYW1lXG4gICAgICApO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgdGVtcGxhdGVSZWY6IFRkRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZixcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICB0aGlzLnRoVGVtcGxhdGVPZk51bGxJbkZvcm0gPSB0aExpc3RcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmNvbnRyb2xOYW1lKVxuICAgICAgLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgdGVtcGxhdGVSZWY6IGl0ZW0udGVtcGxhdGVSZWYsXG4gICAgICAgIHdpZHRoOiBpdGVtPy53aWR0aCxcbiAgICAgIH0pKTtcblxuICAgIHRoaXMudGRUZW1wbGF0ZU9mTnVsbEluRm9ybSA9IHRkTGlzdFxuICAgICAgLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0uY29udHJvbE5hbWUpXG4gICAgICAubWFwKChpdGVtKSA9PiAoe1xuICAgICAgICB0ZW1wbGF0ZVJlZjogaXRlbS50ZW1wbGF0ZVJlZixcbiAgICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDop6PmnpDphY3nva7nlJ/miJBjb250cm9sc1xuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZUZvcm1Db25maWcoY3VzdG9tRm9ybUNvbmZpZzogTnp4VGFibGVGb3JtQ29uZmlnW10pOiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9IHtcbiAgICBjb25zdCBjb250cm9sczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICAgIGN1c3RvbUZvcm1Db25maWcuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uY29udHJvbE5hbWUpIHtcbiAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZTogYW55ID0gbnVsbDtcbiAgICAgICAgaWYgKGl0ZW0uZGVmYXVsdFZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IGl0ZW0uZGVmYXVsdFZhbHVlO1xuICAgICAgICBjb250cm9sc1tpdGVtLmNvbnRyb2xOYW1lXSA9IFtkZWZhdWx0VmFsdWUsIGl0ZW0udmFsaWRhdGlvbl07XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvbnRyb2xzO1xuICB9XG5cbiAgLyoqXG4gICAqIOino+aekOmFjee9rueUn+aIkGhlYWRlclxuICAgKlxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZUhlYWRlcihcbiAgICBjdXN0b21Gb3JtQ29uZmlnOiBOenhUYWJsZUZvcm1Db25maWdbXVxuICApOiBBcnJheTxOenhUYWJsZUZvcm1IZWFkZXJDb25maWc+IHtcbiAgICByZXR1cm4gY3VzdG9tRm9ybUNvbmZpZy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICBoZWFkZXI6IGl0ZW0uaGVhZGVyLFxuICAgICAgd2lkdGg6IGl0ZW0/LndpZHRoLFxuICAgICAgY29udHJvbE5hbWU6IGl0ZW0/LmNvbnRyb2xOYW1lLFxuICAgICAgaXNTaG93OiBpdGVtLmlzU2hvdyA/PyB0cnVlLFxuICAgICAgdGVtcGxhdGVSZWY6IHZvaWQgMCxcbiAgICAgIHNob3dSZXF1aXJlZFRpcDogaXRlbT8uc2hvd1JlcXVpcmVkVGlwLFxuICAgIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDop6PmnpDphY3nva7nlJ/miJBDb250ZW50XG4gICAqL1xuICBwcml2YXRlIHBhcnNlVGQoXG4gICAgY3VzdG9tRm9ybUNvbmZpZzogTnp4VGFibGVGb3JtQ29uZmlnW11cbiAgKTogQXJyYXk8Tnp4VGFibGVGb3JtVGRDb25maWc+IHtcbiAgICByZXR1cm4gY3VzdG9tRm9ybUNvbmZpZy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICBjb250cm9sTmFtZTogaXRlbT8uY29udHJvbE5hbWUsXG4gICAgICBpc1Nob3c6IGl0ZW0uaXNTaG93ID8/IHRydWUsXG4gICAgICB0ZW1wbGF0ZVJlZjogdm9pZCAwLFxuICAgICAgc2hvd1JlcXVpcmVkVGlwOiBpdGVtPy5zaG93UmVxdWlyZWRUaXAsXG4gICAgICBkZWZhdWx0VmFsdWU6IGl0ZW0/LmRlZmF1bHRWYWx1ZSxcbiAgICAgIHR5cGU6IGl0ZW0udHlwZSxcbiAgICAgIHZhbGlkYXRpb246IGl0ZW0udmFsaWRhdGlvbixcbiAgICAgIGVycm9yVGlwOiBpdGVtPy5lcnJvclRpcCxcbiAgICAgIG9wdGlvbnM6IGl0ZW0/Lm9wdGlvbnMsXG4gICAgICBjb250cm9sTW9kZTogaXRlbT8uY29udHJvbE1vZGUgPz8gJ2VkaXQnLFxuICAgICAgcGxhY2Vob2xkZXI6IGl0ZW0/LnBsYWNlaG9sZGVyLFxuICAgICAgYWxsb3dDbGVhcjogaXRlbT8uYWxsb3dDbGVhcixcbiAgICAgIG1heExlbmd0aDogaXRlbT8ubWF4TGVuZ3RoLFxuICAgICAgbWF4OiBpdGVtPy5tYXgsXG4gICAgICBmb3JtYXQ6IGl0ZW0/LmZvcm1hdCxcbiAgICB9KSk7XG4gIH1cbn1cbiIsIjxuei10YWJsZVxuICAjYmFzaWNUYWJsZVxuICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICBbbnpEYXRhXT1cImZvcm1Hcm91cExpc3RcIlxuICBbbnpUYWJsZUxheW91dF09XCJ0YWJsZUxheW91dFwiXG4gIFtuekZvb3Rlcl09XCJuenhGb290ZXIhXCJcbiAgW256Qm9yZGVyZWRdPVwibnp4Qm9yZGVyZWRcIlxuICBbbnpTaXplXT1cIm56eFNpemVcIlxuICBbbnpGcm9udFBhZ2luYXRpb25dPVwibnp4RnJvbnRQYWdpbmF0aW9uXCJcbiAgbnpIaWRlT25TaW5nbGVQYWdlXG4+XG4gIDx0aGVhZD5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPHRyPlxuICAgICAgPCEtLSDluo/lj7fliJfmoIfpopggLS0+XG4gICAgICA8dGggKm5nSWY9XCJlbmFibGVOb1wiIFtuekFsaWduXT1cInRhYmxlQWxpZ25cIiBbbnpXaWR0aF09XCJzZXJpYWxOdW1iZXJXaWR0aFwiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFzZXJpYWxOdW1iZXJUZW1wbGF0ZVwiPiDluo/lj7cgPC9zcGFuPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VyaWFsTnVtYmVyVGVtcGxhdGVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic2VyaWFsTnVtYmVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RoPlxuICAgICAgPCEtLSDooajljZXliJdmb3JtIGhlYWRlciAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaGVhZGVyQ29uZmlnOyBsZXQgaW5kZXggPSBpbmRleFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc1Nob3dcIj5cbiAgICAgICAgICA8dGhcbiAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgW256QWxpZ25dPVwidGFibGVBbGlnblwiXG4gICAgICAgICAgICBbbnpXaWR0aF09XCJpdGVtLndpZHRoIVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsICpuZ0lmPVwiaXRlbS5zaG93UmVxdWlyZWRUaXBcIiBbbmdTdHlsZV09XCJ7IGNvbG9yOiAncmVkJyB9XCI+XG4gICAgICAgICAgICAgICpcbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICB7eyBpdGVtLmhlYWRlciB9fVxuICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgPHRoXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgW256QWxpZ25dPVwidGFibGVBbGlnblwiXG4gICAgICAgICAgICBbbnpXaWR0aF09XCJpdGVtLndpZHRoIVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtLCBpbmRleCB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGg+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8IS0tIOiHquWumuS5ieWxleekuuWIl2hlYWRlciAtLT5cbiAgICAgIDx0aFxuICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0aFRlbXBsYXRlT2ZOdWxsSW5Gb3JtOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW256QWxpZ25dPVwidGFibGVBbGlnblwiXG4gICAgICAgIFtueldpZHRoXT1cIml0ZW0ud2lkdGghXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBpdGVtLnRlbXBsYXRlUmVmO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGZvcm0sIGluZGV4OiBpLCBkaXNhYmxlZDogaXNEaXNhYmxlZCB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdGg+XG4gICAgPC90cj5cbiAgPC90aGVhZD5cblxuICA8dGJvZHkgZm9ybUFycmF5TmFtZT1cImZvcm1BcnJheVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZnIG9mIGJhc2ljVGFibGUuZGF0YTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgPHRyPlxuICAgICAgICA8IS0tIOW6j+WPt+WIlyAtLT5cbiAgICAgICAgPHRkICpuZ0lmPVwiZW5hYmxlTm9cIiBbbnpBbGlnbl09XCJ0YWJsZUFsaWduXCI+XG4gICAgICAgICAge3sgaSArIDEgfX1cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPCEtLSDooajljZXliJflsIbmlL7ov5tmb3JtIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZmdcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHRkQ29uZmlnXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbS5pc1Nob3dcIj5cbiAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiIWl0ZW0udGVtcGxhdGVSZWZcIiBbbnpBbGlnbl09XCJ0YWJsZUFsaWduXCI+XG4gICAgICAgICAgICAgICAgPG56LWZvcm0taXRlbSBbbmdTdHlsZV09XCJ7ICdtYXJnaW4tYm90dG9tJzogMCB9XCI+XG4gICAgICAgICAgICAgICAgICA8bnotZm9ybS1jb250cm9sIFtuekVycm9yVGlwXT1cIml0ZW0uZXJyb3JUaXBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PT0gJ2lucHV0JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb250cm9sTW9kZSAhPT0gJ3JlYWRvbmx5JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISFpdGVtLmNvbnRyb2xOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyIHx8ICfor7fovpPlhaUnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0uY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiaXRlbS5tYXhMZW5ndGghXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID09PSAndGV4dGFyZWEnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbnRyb2xNb2RlICE9PSAncmVhZG9ubHknICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhIWl0ZW0uY29udHJvbE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIG56LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgW256QXV0b3NpemVdPVwieyBtaW5Sb3dzOiAzIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyIHx8ICfor7fovpPlhaUnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0uY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFttYXhsZW5ndGhdPVwiaXRlbS5tYXhMZW5ndGghXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvdGV4dGFyZWE+XG5cbiAgICAgICAgICAgICAgICAgICAgPG56LWlucHV0LW51bWJlclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPT09ICdudW1iZXInICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbnRyb2xNb2RlICE9PSAncmVhZG9ubHknICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhIWl0ZW0uY29udHJvbE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgd2lkdGg6ICdhdXRvJyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0uY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuek1pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpTdGVwXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuek1heF09XCJpdGVtLm1heCFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuelBsYWNlSG9sZGVyXT1cIml0ZW0ucGxhY2Vob2xkZXIgfHwgJ+i+k+WFpeaVsOWtlydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbnotaW5wdXQtbnVtYmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuei1kYXRlLXBpY2tlclxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPT09ICdkYXRlJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb250cm9sTW9kZSAhPT0gJ3JlYWRvbmx5JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISFpdGVtLmNvbnRyb2xOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0uY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbnotZGF0ZS1waWNrZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG56LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPT09ICdzZWxlY3QnICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbnRyb2xNb2RlICE9PSAncmVhZG9ubHknICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhIWl0ZW0uY29udHJvbE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIG56U2hvd1NlYXJjaD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuekFsbG93Q2xlYXJdPVwiaXRlbS5hbGxvd0NsZWFyXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0uY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgIFtuelBsYWNlSG9sZGVyXT1cIml0ZW0ucGxhY2Vob2xkZXIgfHwgJ+ivt+mAieaLqSdcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPG56LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgW256VmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuekxhYmVsXT1cIm9wdGlvbi5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW0ub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbnotb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8L256LXNlbGVjdD5cblxuICAgICAgICAgICAgICAgICAgICA8bnotcmFkaW8tZ3JvdXBcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID09PSAncmFkaW8nICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvbnRyb2xNb2RlICE9PSAncmVhZG9ubHknICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAhIWl0ZW0uY29udHJvbE5hbWVcbiAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwiaXRlbS5jb250cm9sTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgaXRlbS5vcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG56LXJhZGlvXG4gICAgICAgICAgICAgICAgICAgICAgICBbbnpWYWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbnotcmFkaW8tZ3JvdXA+XG5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJpdGVtLmNvbnRyb2xNb2RlID09PSAncmVhZG9ubHknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uZm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLmZvcm1hdChmZy5nZXQoaXRlbS5jb250cm9sTmFtZSk/LnZhbHVlKSB9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXRlbS5mb3JtYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGZnLmdldChpdGVtLmNvbnRyb2xOYW1lKT8udmFsdWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9uei1mb3JtLWNvbnRyb2w+XG4gICAgICAgICAgICAgICAgPC9uei1mb3JtLWl0ZW0+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0udGVtcGxhdGVSZWZcIj5cbiAgICAgICAgICAgICAgPHRkICpuZ0lmPVwiaXRlbS5pc1Nob3dcIiBbbnpBbGlnbl09XCJ0YWJsZUFsaWduXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IGZnLFxuICAgICAgICAgICAgICAgICAgICBjb25maWc6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sOiBmZy5nZXQoaXRlbS5jb250cm9sTmFtZSksXG4gICAgICAgICAgICAgICAgICAgIGVycm9yVGlwOiBpdGVtLmVycm9yVGlwLFxuICAgICAgICAgICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGlzRGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSDoh6rlrprkuYnlsZXnpLrliJcgLS0+XG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0ZFRlbXBsYXRlT2ZOdWxsSW5Gb3JtXCIgW256QWxpZ25dPVwidGFibGVBbGlnblwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgJGltcGxpY2l0OiBmZyxcbiAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyICpuZ0lmPVwiZW5hYmxlRXhwYW5kXCIgW256RXhwYW5kXT1cImZnLnZhbHVlLmV4cGFuZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidGFibGVFeHBhbmREaXJlY3RpdmU/LnRlbXBsYXRlUmVmIVwiXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICRpbXBsaWNpdDogZmcsXG4gICAgICAgICAgICBpbmRleDogaSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkXG4gICAgICAgICAgfVwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPHRyICpuZ0lmPVwiZm9ybS5nZXQoJ2Zvcm1BcnJheScpPy5lcnJvcnNcIiBbbnpFeHBhbmRdPVwidHJ1ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJlcnJvclRlbXBsYXRlIVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogZm9ybS5nZXQoJ2Zvcm1BcnJheScpIH1cIlxuICAgICAgPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC90cj5cbiAgPC90Ym9keT5cbjwvbnotdGFibGU+XG4iXX0=
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RhYmxlLWZvcm0vdGFibGUtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb21wb25lbnRzL3RhYmxlLWZvcm0vdGFibGUtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsTUFBTSxHQUdQLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFNTCxhQUFhLEVBQ2IsaUJBQWlCLEdBSWxCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7Ozs7Ozs7OztBQXVCekUsTUFBTSxPQUFPLHFCQUFxQjtJQStEaEMsaURBQWlEO0lBQ2pELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBeUIsQ0FBQztJQUM1RCxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMs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QWU7c0JBQXZCLEtBQUs7Z0JBR0ksWUFBWTtzQkFBckIsTUFBTTtnQkFrQ0Msb0JBQW9CO3NCQUQzQixlQUFlO3VCQUFDLHVCQUF1QjtnQkFJaEMsb0JBQW9CO3NCQUQzQixlQUFlO3VCQUFDLHVCQUF1QjtnQkFJeEMsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgRm9ybUFycmF5LFxuICBGb3JtQnVpbGRlcixcbiAgRm9ybUdyb3VwLFxuICBOR19WQUxJREFUT1JTLFxuICBOR19WQUxVRV9BQ0NFU1NPUixcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9yLFxuICBWYWxpZGF0b3JGbixcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBOelRhYmxlTGF5b3V0LCBOelRhYmxlU2l6ZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdGFibGUnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIFN1YmplY3QsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB1cGRhdGVDb250cm9sU3RhdHVzIH0gZnJvbSAnbmctem9ycm8tYW50ZC1leHRlbnNpb24vdXRpbCc7XG5pbXBvcnQgeyBOenhUYWJsZUZvcm1FeHBhbmREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZS90YWJsZS1leHBhbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE56eFRhYmxlRm9ybVRkRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvdGFibGUtdGQuZGlyZWN0aXZlJztcbmltcG9ydCB7IE56eFRhYmxlRm9ybVRoRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmUvdGFibGUtdGguZGlyZWN0aXZlJztcblxuaW1wb3J0IHtcbiAgTnp4TGltaXRNZXNzYWdlLFxuICBOenhUYWJsZUZvcm1Db25maWcsXG4gIE56eFRhYmxlRm9ybUhlYWRlckNvbmZpZyxcbiAgTnp4VGFibGVGb3JtVGRDb25maWcsXG59IGZyb20gJy4vdHlwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ256eC10YWJsZS1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RhYmxlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90YWJsZS1mb3JtLmNvbXBvbmVudC5sZXNzJ10sXG4gIGV4cG9ydEFzOiAnTnp4VGFibGVGb3JtJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBOenhUYWJsZUZvcm1Db21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7IHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsIHVzZUV4aXN0aW5nOiBOenhUYWJsZUZvcm1Db21wb25lbnQsIG11bHRpOiB0cnVlIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE56eFRhYmxlRm9ybUNvbXBvbmVudFxuICBpbXBsZW1lbnRzXG4gICAgT25Jbml0LFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgVmFsaWRhdG9yLFxuICAgIE9uRGVzdHJveVxue1xuICBASW5wdXQoKSB0YWJsZUxheW91dDogTnpUYWJsZUxheW91dCA9ICdmaXhlZCc7XG4gIEBJbnB1dCgpIHRhYmxlQWxpZ246ICdsZWZ0JyB8ICdyaWdodCcgfCAnY2VudGVyJyB8IG51bGwgPSAnY2VudGVyJztcbiAgLyoqIHRhYmxlIOWQr+eUqOaJqeWxleihjCAqL1xuICBASW5wdXQoKSBlbmFibGVFeHBhbmQgPSBmYWxzZTtcbiAgLyoqIHRhYmxlIGJvcmRlciAqL1xuICBASW5wdXQoKSBuenhCb3JkZXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAvKiogdGFibGUgc2l6ZSAqL1xuICBASW5wdXQoKSBuenhTaXplOiBOelRhYmxlU2l6ZSA9ICdkZWZhdWx0JztcbiAgLyoqIOWQr+eUqOaVsOmHj+mZkOWItiAqL1xuICBASW5wdXQoKSBlbmFibGVMaW1pdCA9IGZhbHNlO1xuICAvKiog5pyA5aSn5pWw6YePICovXG4gIEBJbnB1dCgpIG1heExpbWl0OiBudW1iZXIgPSAwO1xuICAvKiog5pyA5bCR5pWw6YePICovXG4gIEBJbnB1dCgpIG1pbkxpbWl0OiBudW1iZXIgPSAwO1xuICAvKiog6Ieq5a6a5LmJZm9vdGVyICovXG4gIEBJbnB1dCgpIG56eEZvb3Rlcj86IHN0cmluZyB8IFRlbXBsYXRlUmVmPHZvaWQ+O1xuICAvKirmmK/lkKblnKjliY3nq6/lr7nmlbDmja7ov5vooYzliIbpobXvvIzlpoLmnpzlnKjmnI3liqHlmajliIbpobXmlbDmja7miJbogIXpnIDopoHlnKjliY3nq6/mmL7npLrlhajpg6jmlbDmja7ml7bkvKDlhaUgZmFsc2UgKi9cbiAgQElucHV0KCkgbnp4RnJvbnRQYWdpbmF0aW9uID0gdHJ1ZTtcblxuICAvKipcbiAgICog5qCh6aqM5pW05LiqdGFibGXnmoTplJnor6/mj5DnpLroh6rlrprkuYnmqKHmnb9cbiAgICovXG4gIEBJbnB1dCgpIGVycm9yVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAvKiog5ZCv55So5bqP5Y+3ICovXG4gIEBJbnB1dCgpIGVuYWJsZU5vID0gZmFsc2U7XG5cbiAgLyoqIOW6j+WPt+WuveW6piAqL1xuICBASW5wdXQoKSBzZXJpYWxOdW1iZXJXaWR0aDogc3RyaW5nID0gJzYwcHgnO1xuICAvKiog5bqP5Y+36Ieq5a6a5LmJ5qih5p2/ICovXG4gIEBJbnB1dCgpIHNlcmlhbE51bWJlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dm9pZD47XG4gIC8qKlxuICAgKiDmoKHpqox0YWJsZeeahOWHveaVsFxuICAgKi9cbiAgQElucHV0KCkgdGFibGVWYWxpZGF0b3JGbjogVmFsaWRhdG9yRm4gPSAoXG4gICAgY29udHJvbDogQWJzdHJhY3RDb250cm9sXG4gICk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IG51bGw7XG5cbiAgLyoqIHRhYmxlIGNvbmZpZyAqL1xuICBASW5wdXQoKSB0YWJsZUZvcm1Db25maWc6IE56eFRhYmxlRm9ybUNvbmZpZ1tdID0gW107XG5cbiAgLyoqIOaVsOmHj+mZkOWItuWbnuiwgyAqL1xuICBAT3V0cHV0KCkgbGltaXRNZXNzYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxOenhMaW1pdE1lc3NhZ2U+KCk7XG5cbiAgaGVhZGVyQ29uZmlnITogQXJyYXk8Tnp4VGFibGVGb3JtSGVhZGVyQ29uZmlnPjtcbiAgdGRDb25maWchOiBBcnJheTxOenhUYWJsZUZvcm1UZENvbmZpZz47XG5cbiAgdGhUZW1wbGF0ZU9mTnVsbEluRm9ybToge1xuICAgIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcbiAgICB3aWR0aD86IHN0cmluZztcbiAgfVtdID0gW107XG4gIHRkVGVtcGxhdGVPZk51bGxJbkZvcm06IHsgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPHVua25vd24+IH1bXSA9IFtdO1xuICAvKiog5pW05LiqdGFibGUtZm9ybSAqL1xuICBmb3JtITogRm9ybUdyb3VwO1xuICBpc0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgLyoqIGZvcm1Hcm91cOS4i+eahGZvcm1BcnJheSxmb3JtQXJyYXnkuK3mmK/lpJrooYxmb3JtR3JvdXAqL1xuICBnZXQgdGFibGVGb3JtQXJyYXkoKTogRm9ybUFycmF5PEZvcm1Hcm91cD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KCdmb3JtQXJyYXknKSBhcyBGb3JtQXJyYXk8Rm9ybUdyb3VwPjtcbiAgfVxuXG4gIC8qKiB0YWJsZSBmb3JtR3JvdXBz6ZuG5ZCIICovXG4gIGdldCBmb3JtR3JvdXBMaXN0KCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlRm9ybUFycmF5LmNvbnRyb2xzLmNvbmNhdChbXSk7XG4gIH1cblxuICBnZXQgaW52YWxpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmludmFsaWQ7XG4gIH1cblxuICAvKiog5LiA6KGM55qEZm9ybemFjee9riAqL1xuICBwcml2YXRlIGNvbnRyb2xzQ29uZmlnITogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcblxuICBwcml2YXRlIGRlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4VGFibGVGb3JtVGREaXJlY3RpdmUpXG4gIHByaXZhdGUgdGFibGVUZERpcmVjdGl2ZUxpc3QhOiBRdWVyeUxpc3Q8Tnp4VGFibGVGb3JtVGREaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oTnp4VGFibGVGb3JtVGhEaXJlY3RpdmUpXG4gIHByaXZhdGUgdGFibGVUaERpcmVjdGl2ZUxpc3QhOiBRdWVyeUxpc3Q8Tnp4VGFibGVGb3JtVGhEaXJlY3RpdmU+O1xuXG4gIEBDb250ZW50Q2hpbGQoTnp4VGFibGVGb3JtRXhwYW5kRGlyZWN0aXZlKVxuICB0YWJsZUV4cGFuZERpcmVjdGl2ZSE6IE56eFRhYmxlRm9ybUV4cGFuZERpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIpIHt9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGZvcm1BcnJheTogdGhpcy5mYi5hcnJheShbXSwgW3RoaXMudGFibGVWYWxpZGF0b3JGbl0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jb250cm9sc0NvbmZpZyA9IHRoaXMucGFyc2VGb3JtQ29uZmlnKHRoaXMudGFibGVGb3JtQ29uZmlnKTtcbiAgICB0aGlzLmhlYWRlckNvbmZpZyA9IHRoaXMucGFyc2VIZWFkZXIodGhpcy50YWJsZUZvcm1Db25maWcpO1xuICAgIHRoaXMudGRDb25maWcgPSB0aGlzLnBhcnNlVGQodGhpcy50YWJsZUZvcm1Db25maWcpO1xuXG4gICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UocmVzLmZvcm1BcnJheSk7XG4gICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm1hdGNoVGVtcGxhdGUodGhpcy50YWJsZVRoRGlyZWN0aXZlTGlzdCwgdGhpcy50YWJsZVRkRGlyZWN0aXZlTGlzdCk7XG4gIH1cblxuICAvKipcbiAgICog6IuldGFibGXkuLrnqbrmiJbogIXmnInkuIDooYzmlbDmja7moKHpqozkuI3pgJrov4fvvIzliJnmlbTkuKrnu4Tku7bmoKHpqozkuI3pgJrov4dcbiAgICovXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBjb25zdCBhcnIgPSAodGhpcy50YWJsZUZvcm1BcnJheS5jb250cm9scyBhcyBGb3JtR3JvdXBbXSkgfHwgW107XG4gICAgaWYgKGFyci5zb21lKChyb3cpID0+IHJvdy5zdGF0dXMgPT09ICdJTlZBTElEJykpIHtcbiAgICAgIHJldHVybiB7IHRhYmxlUmVxdWlyZWRFcnJvcjogdHJ1ZSB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDmoLnmja5jb250cm9sTmFtZeiuvue9rmNvbmZpZ+WAvFxuICAgKi9cbiAgc2V0Q29uZmlnKGNvbnRyb2xOYW1lOiBzdHJpbmcsIGNvbmZpZzogUGFydGlhbDxOenhUYWJsZUZvcm1Db25maWc+KTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnRhYmxlRm9ybUNvbmZpZy5maW5kSW5kZXgoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5jb250cm9sTmFtZSA9PT0gY29udHJvbE5hbWVcbiAgICApO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLnRhYmxlRm9ybUNvbmZpZ1tpbmRleF0gPSB7XG4gICAgICAgIC4uLnRoaXMudGFibGVGb3JtQ29uZmlnW2luZGV4XSxcbiAgICAgICAgLi4uY29uZmlnLFxuICAgICAgfTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVUYWJsZUNvbmZpZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIOmHjee9rnRhYmxl6KGo5Y2V5Li656m6XG4gICAqL1xuICBjbGVhclRhYmxlKCk6IHZvaWQge1xuICAgIHRoaXMudGFibGVGb3JtQXJyYXkuY2xlYXIoKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIOa3u+WKoHRhYmxl5LiA6KGMXG4gICAqL1xuICBhZGRSb3cocm93VmFsdWU/OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICBpZiAodGhpcy5lbmFibGVMaW1pdCAmJiB0aGlzLnRhYmxlRm9ybUFycmF5Lmxlbmd0aCA8IHRoaXMubWF4TGltaXQpIHtcbiAgICAgICAgY29uc3QgY29udHJvbHNDb25maWdUZW1wID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb250cm9sc0NvbmZpZyk7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUV4cGFuZCkge1xuICAgICAgICAgIGNvbnRyb2xzQ29uZmlnVGVtcFsnZXhwYW5kJ10gPSBbZmFsc2VdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZiLmdyb3VwKGNvbnRyb2xzQ29uZmlnVGVtcCk7XG4gICAgICAgIGlmIChyb3dWYWx1ZSkge1xuICAgICAgICAgIGZvcm0ucGF0Y2hWYWx1ZShyb3dWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LnB1c2goZm9ybSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZW5hYmxlTGltaXQpIHtcbiAgICAgICAgdGhpcy5saW1pdE1lc3NhZ2UuZW1pdCh7XG4gICAgICAgICAgdHlwZTogJ21heCcsXG4gICAgICAgICAgbGltaXQ6IHRoaXMubWF4TGltaXQsXG4gICAgICAgICAgbXNnOiBg5pyA5aSaJHt0aGlzLm1heExpbWl0feadoWAsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgY29udHJvbHNDb25maWdUZW1wID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5jb250cm9sc0NvbmZpZyk7XG4gICAgICAgIGlmICh0aGlzLmVuYWJsZUV4cGFuZCkge1xuICAgICAgICAgIGNvbnRyb2xzQ29uZmlnVGVtcFsnZXhwYW5kJ10gPSBbZmFsc2VdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmZiLmdyb3VwKGNvbnRyb2xzQ29uZmlnVGVtcCk7XG4gICAgICAgIGlmIChyb3dWYWx1ZSkge1xuICAgICAgICAgIGZvcm0ucGF0Y2hWYWx1ZShyb3dWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LnB1c2goZm9ybSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHVwZGF0ZUNvbnRyb2xTdGF0dXModGhpcy50YWJsZUZvcm1BcnJheSk7XG4gICAgfVxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICog5Yig6ZmkdGFibGXkuIDooYxcbiAgICovXG4gIGRlbGV0ZVJvdyhpOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5lbmFibGVMaW1pdCkge1xuICAgICAgaWYgKHRoaXMudGFibGVGb3JtQXJyYXkubGVuZ3RoID4gdGhpcy5taW5MaW1pdCkge1xuICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LnJlbW92ZUF0KGkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5saW1pdE1lc3NhZ2UuZW1pdCh7XG4gICAgICAgICAgdHlwZTogJ21pbicsXG4gICAgICAgICAgbGltaXQ6IHRoaXMubWF4TGltaXQsXG4gICAgICAgICAgbXNnOiBg6Iez5bCRJHt0aGlzLm1pbkxpbWl0feadoWAsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LnJlbW92ZUF0KGkpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnRhYmxlRm9ybUFycmF5LmNsZWFyKCk7XG4gICAgaWYgKG9iaiAmJiBvYmoubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMudGRDb25maWcubGVuZ3RoID4gMCkge1xuICAgICAgICBvYmouZm9yRWFjaCgoaXRlbTogYW55LCBpOiBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBjb250cm9sc0NvbmZpZ1RlbXAgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLmNvbnRyb2xzQ29uZmlnKTtcbiAgICAgICAgICBpZiAodGhpcy5lbmFibGVFeHBhbmQpIHtcbiAgICAgICAgICAgIGNvbnRyb2xzQ29uZmlnVGVtcFsnZXhwYW5kJ10gPSBbZmFsc2VdO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LnB1c2godGhpcy5mYi5ncm91cChjb250cm9sc0NvbmZpZ1RlbXApKTtcbiAgICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LmNvbnRyb2xzW2ldLnBhdGNoVmFsdWUoaXRlbSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHt9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnRhYmxlRm9ybUFycmF5LmNvbnRyb2xzLmZvckVhY2goKGkpID0+IGkuZGlzYWJsZSgpKTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy50YWJsZUZvcm1BcnJheS5jb250cm9scy5mb3JFYWNoKChpKSA9PiBpLmVuYWJsZSgpKTtcbiAgICAgIH0sIDApO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICog5pu05pawdGFibGUgY29uZmln6YWN572u6aG5XG4gICAqIOWcqOabtOaWsGNvbmZpZ+aXtuWAmemcgOimgeiwg+eUqOmHjeaWsOa4suafk3RhYmxlXG4gICAqL1xuICBwcml2YXRlIHVwZGF0ZVRhYmxlQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbHNDb25maWcgPSB0aGlzLnBhcnNlRm9ybUNvbmZpZyh0aGlzLnRhYmxlRm9ybUNvbmZpZyk7XG4gICAgdGhpcy5oZWFkZXJDb25maWcgPSB0aGlzLnBhcnNlSGVhZGVyKHRoaXMudGFibGVGb3JtQ29uZmlnKTtcbiAgICB0aGlzLnRkQ29uZmlnID0gdGhpcy5wYXJzZVRkKHRoaXMudGFibGVGb3JtQ29uZmlnKTtcbiAgICB0aGlzLm1hdGNoVGVtcGxhdGUodGhpcy50YWJsZVRoRGlyZWN0aXZlTGlzdCwgdGhpcy50YWJsZVRkRGlyZWN0aXZlTGlzdCk7XG4gIH1cblxuICBwcml2YXRlIHByb3BhZ2F0ZUNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG4gIC8qKlxuICAgKiDljLnphY3mipXlvbHmqKHmnb90ZW1wbGF0ZeaUvuWIsGNvbmZpZ+S4rVxuICAgKi9cbiAgcHJpdmF0ZSBtYXRjaFRlbXBsYXRlKFxuICAgIHRoTGlzdDogUXVlcnlMaXN0PE56eFRhYmxlRm9ybVRoRGlyZWN0aXZlPixcbiAgICB0ZExpc3Q6IFF1ZXJ5TGlzdDxOenhUYWJsZUZvcm1UZERpcmVjdGl2ZT5cbiAgKTogdm9pZCB7XG4gICAgdGhpcy5oZWFkZXJDb25maWcgPSB0aGlzLmhlYWRlckNvbmZpZy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIGNvbnN0IFRoRGlyZWN0aXZlID0gdGhMaXN0LmZpbmQoXG4gICAgICAgICh0aCkgPT4gdGguY29udHJvbE5hbWUgPT09IGl0ZW0uY29udHJvbE5hbWVcbiAgICAgICk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5pdGVtLFxuICAgICAgICB0ZW1wbGF0ZVJlZjogVGhEaXJlY3RpdmU/LnRlbXBsYXRlUmVmLFxuICAgICAgICB3aWR0aDogVGhEaXJlY3RpdmU/LndpZHRoLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIHRoaXMudGRDb25maWcgPSB0aGlzLnRkQ29uZmlnLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgVGREaXJlY3RpdmUgPSB0ZExpc3QuZmluZChcbiAgICAgICAgKHRkKSA9PiB0ZC5jb250cm9sTmFtZSA9PT0gaXRlbS5jb250cm9sTmFtZVxuICAgICAgKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLml0ZW0sXG4gICAgICAgIHRlbXBsYXRlUmVmOiBUZERpcmVjdGl2ZT8udGVtcGxhdGVSZWYsXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgdGhpcy50aFRlbXBsYXRlT2ZOdWxsSW5Gb3JtID0gdGhMaXN0XG4gICAgICAuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5jb250cm9sTmFtZSlcbiAgICAgIC5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICAgIHRlbXBsYXRlUmVmOiBpdGVtLnRlbXBsYXRlUmVmLFxuICAgICAgICB3aWR0aDogaXRlbT8ud2lkdGgsXG4gICAgICB9KSk7XG5cbiAgICB0aGlzLnRkVGVtcGxhdGVPZk51bGxJbkZvcm0gPSB0ZExpc3RcbiAgICAgIC5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLmNvbnRyb2xOYW1lKVxuICAgICAgLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgdGVtcGxhdGVSZWY6IGl0ZW0udGVtcGxhdGVSZWYsXG4gICAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICog6Kej5p6Q6YWN572u55Sf5oiQY29udHJvbHNcbiAgICovXG4gIHByaXZhdGUgcGFyc2VGb3JtQ29uZmlnKGN1c3RvbUZvcm1Db25maWc6IE56eFRhYmxlRm9ybUNvbmZpZ1tdKToge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfSB7XG4gICAgY29uc3QgY29udHJvbHM6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPSB7fTtcbiAgICBjdXN0b21Gb3JtQ29uZmlnLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGlmIChpdGVtLmNvbnRyb2xOYW1lKSB7XG4gICAgICAgIGxldCBkZWZhdWx0VmFsdWU6IGFueSA9IG51bGw7XG4gICAgICAgIGlmIChpdGVtLmRlZmF1bHRWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBkZWZhdWx0VmFsdWUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBpdGVtLmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgY29udHJvbHNbaXRlbS5jb250cm9sTmFtZV0gPSBbZGVmYXVsdFZhbHVlLCBpdGVtLnZhbGlkYXRpb25dO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBjb250cm9scztcbiAgfVxuXG4gIC8qKlxuICAgKiDop6PmnpDphY3nva7nlJ/miJBoZWFkZXJcbiAgICpcbiAgICovXG4gIHByaXZhdGUgcGFyc2VIZWFkZXIoXG4gICAgY3VzdG9tRm9ybUNvbmZpZzogTnp4VGFibGVGb3JtQ29uZmlnW11cbiAgKTogQXJyYXk8Tnp4VGFibGVGb3JtSGVhZGVyQ29uZmlnPiB7XG4gICAgcmV0dXJuIGN1c3RvbUZvcm1Db25maWcubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaGVhZGVyOiBpdGVtLmhlYWRlcixcbiAgICAgIHdpZHRoOiBpdGVtPy53aWR0aCxcbiAgICAgIGNvbnRyb2xOYW1lOiBpdGVtPy5jb250cm9sTmFtZSxcbiAgICAgIGlzU2hvdzogaXRlbS5pc1Nob3cgPz8gdHJ1ZSxcbiAgICAgIHRlbXBsYXRlUmVmOiB2b2lkIDAsXG4gICAgICBzaG93UmVxdWlyZWRUaXA6IGl0ZW0/LnNob3dSZXF1aXJlZFRpcCxcbiAgICB9KSk7XG4gIH1cblxuICAvKipcbiAgICog6Kej5p6Q6YWN572u55Sf5oiQQ29udGVudFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVRkKFxuICAgIGN1c3RvbUZvcm1Db25maWc6IE56eFRhYmxlRm9ybUNvbmZpZ1tdXG4gICk6IEFycmF5PE56eFRhYmxlRm9ybVRkQ29uZmlnPiB7XG4gICAgcmV0dXJuIGN1c3RvbUZvcm1Db25maWcubWFwKChpdGVtKSA9PiAoe1xuICAgICAgY29udHJvbE5hbWU6IGl0ZW0/LmNvbnRyb2xOYW1lLFxuICAgICAgaXNTaG93OiBpdGVtLmlzU2hvdyA/PyB0cnVlLFxuICAgICAgdGVtcGxhdGVSZWY6IHZvaWQgMCxcbiAgICAgIHNob3dSZXF1aXJlZFRpcDogaXRlbT8uc2hvd1JlcXVpcmVkVGlwLFxuICAgICAgZGVmYXVsdFZhbHVlOiBpdGVtPy5kZWZhdWx0VmFsdWUsXG4gICAgICB0eXBlOiBpdGVtLnR5cGUsXG4gICAgICB2YWxpZGF0aW9uOiBpdGVtLnZhbGlkYXRpb24sXG4gICAgICBlcnJvclRpcDogaXRlbT8uZXJyb3JUaXAsXG4gICAgICBvcHRpb25zOiBpdGVtPy5vcHRpb25zLFxuICAgICAgY29udHJvbE1vZGU6IGl0ZW0/LmNvbnRyb2xNb2RlID8/ICdlZGl0JyxcbiAgICAgIHBsYWNlaG9sZGVyOiBpdGVtPy5wbGFjZWhvbGRlcixcbiAgICAgIGFsbG93Q2xlYXI6IGl0ZW0/LmFsbG93Q2xlYXIsXG4gICAgICBtYXhMZW5ndGg6IGl0ZW0/Lm1heExlbmd0aCxcbiAgICAgIG1heDogaXRlbT8ubWF4LFxuICAgICAgZm9ybWF0OiBpdGVtPy5mb3JtYXQsXG4gICAgfSkpO1xuICB9XG59XG4iLCI8bnotdGFibGVcbiAgI2Jhc2ljVGFibGVcbiAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgW256RGF0YV09XCJmb3JtR3JvdXBMaXN0XCJcbiAgW256VGFibGVMYXlvdXRdPVwidGFibGVMYXlvdXRcIlxuICBbbnpGb290ZXJdPVwibnp4Rm9vdGVyIVwiXG4gIFtuekJvcmRlcmVkXT1cIm56eEJvcmRlcmVkXCJcbiAgW256U2l6ZV09XCJuenhTaXplXCJcbiAgW256RnJvbnRQYWdpbmF0aW9uXT1cIm56eEZyb250UGFnaW5hdGlvblwiXG4gIG56SGlkZU9uU2luZ2xlUGFnZVxuPlxuICA8dGhlYWQ+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDx0cj5cbiAgICAgIDwhLS0g5bqP5Y+35YiX5qCH6aKYIC0tPlxuICAgICAgPHRoICpuZ0lmPVwiZW5hYmxlTm9cIiBbbnpBbGlnbl09XCJ0YWJsZUFsaWduXCIgW256V2lkdGhdPVwic2VyaWFsTnVtYmVyV2lkdGhcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhc2VyaWFsTnVtYmVyVGVtcGxhdGVcIj4g5bqP5Y+3IDwvc3Bhbj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlcmlhbE51bWJlclRlbXBsYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlcmlhbE51bWJlclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90aD5cbiAgICAgIDwhLS0g6KGo5Y2V5YiXZm9ybSBoZWFkZXIgLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGhlYWRlckNvbmZpZzsgbGV0IGluZGV4ID0gaW5kZXhcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNTaG93XCI+XG4gICAgICAgICAgPHRoXG4gICAgICAgICAgICAqbmdJZj1cIiFpdGVtLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgIFtuekFsaWduXT1cInRhYmxlQWxpZ25cIlxuICAgICAgICAgICAgW256V2lkdGhdPVwiaXRlbS53aWR0aCFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxsYWJlbCAqbmdJZj1cIml0ZW0uc2hvd1JlcXVpcmVkVGlwXCIgW25nU3R5bGVdPVwieyBjb2xvcjogJ3JlZCcgfVwiPlxuICAgICAgICAgICAgICAqXG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAge3sgaXRlbS5oZWFkZXIgfX1cbiAgICAgICAgICA8L3RoPlxuICAgICAgICAgIDx0aFxuICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgIFtuekFsaWduXT1cInRhYmxlQWxpZ25cIlxuICAgICAgICAgICAgW256V2lkdGhdPVwiaXRlbS53aWR0aCFcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaXRlbS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgaW5kZXggfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3RoPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPCEtLSDoh6rlrprkuYnlsZXnpLrliJdoZWFkZXIgLS0+XG4gICAgICA8dGhcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGhUZW1wbGF0ZU9mTnVsbEluRm9ybTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtuekFsaWduXT1cInRhYmxlQWxpZ25cIlxuICAgICAgICBbbnpXaWR0aF09XCJpdGVtLndpZHRoIVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgaXRlbS50ZW1wbGF0ZVJlZjtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBmb3JtLCBpbmRleDogaSwgZGlzYWJsZWQ6IGlzRGlzYWJsZWQgfVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG5cbiAgPHRib2R5IGZvcm1BcnJheU5hbWU9XCJmb3JtQXJyYXlcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmZyBvZiBiYXNpY1RhYmxlLmRhdGE7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgIDx0cj5cbiAgICAgICAgPCEtLSDluo/lj7fliJcgLS0+XG4gICAgICAgIDx0ZCAqbmdJZj1cImVuYWJsZU5vXCIgW256QWxpZ25dPVwidGFibGVBbGlnblwiPlxuICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDwhLS0g6KGo5Y2V5YiX5bCG5pS+6L+bZm9ybSAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZnXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0ZENvbmZpZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIml0ZW0uaXNTaG93XCI+XG4gICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIiFpdGVtLnRlbXBsYXRlUmVmXCIgW256QWxpZ25dPVwidGFibGVBbGlnblwiPlxuICAgICAgICAgICAgICAgIDxuei1mb3JtLWl0ZW0gW25nU3R5bGVdPVwieyAnbWFyZ2luLWJvdHRvbSc6IDAgfVwiPlxuICAgICAgICAgICAgICAgICAgPG56LWZvcm0tY29udHJvbCBbbnpFcnJvclRpcF09XCJpdGVtLmVycm9yVGlwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLnR5cGUgPT09ICdpbnB1dCcgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY29udHJvbE1vZGUgIT09ICdyZWFkb25seScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICEhaXRlbS5jb250cm9sTmFtZVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgbnotaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXRlbS5wbGFjZWhvbGRlciB8fCAn6K+36L6T5YWlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIml0ZW0ubWF4TGVuZ3RoIVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PT0gJ3RleHRhcmVhJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb250cm9sTW9kZSAhPT0gJ3JlYWRvbmx5JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISFpdGVtLmNvbnRyb2xOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBuei1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIFtuekF1dG9zaXplXT1cInsgbWluUm93czogMyB9XCJcbiAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiaXRlbS5wbGFjZWhvbGRlciB8fCAn6K+36L6T5YWlJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbWF4bGVuZ3RoXT1cIml0ZW0ubWF4TGVuZ3RoIVwiXG4gICAgICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuei1pbnB1dC1udW1iZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID09PSAnbnVtYmVyJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb250cm9sTW9kZSAhPT0gJ3JlYWRvbmx5JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISFpdGVtLmNvbnRyb2xOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdTdHlsZV09XCJ7IHdpZHRoOiAnYXV0bycgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpNaW5dPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgW256U3RlcF09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpNYXhdPVwiaXRlbS5tYXghXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpQbGFjZUhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyIHx8ICfovpPlhaXmlbDlrZcnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L256LWlucHV0LW51bWJlcj5cblxuICAgICAgICAgICAgICAgICAgICA8bnotZGF0ZS1waWNrZXJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID09PSAnZGF0ZScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uY29udHJvbE1vZGUgIT09ICdyZWFkb25seScgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICEhaXRlbS5jb250cm9sTmFtZVxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8L256LWRhdGUtcGlja2VyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuei1zZWxlY3RcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS50eXBlID09PSAnc2VsZWN0JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb250cm9sTW9kZSAhPT0gJ3JlYWRvbmx5JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISFpdGVtLmNvbnRyb2xOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBuelNob3dTZWFyY2g9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpBbGxvd0NsZWFyXT1cIml0ZW0uYWxsb3dDbGVhclwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpdGVtLmNvbnRyb2xOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbnpQbGFjZUhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyIHx8ICfor7fpgInmi6knXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxuei1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtuelZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbnpMYWJlbF09XCJvcHRpb24ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBpdGVtLm9wdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8L256LW9wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uei1zZWxlY3Q+XG5cbiAgICAgICAgICAgICAgICAgICAgPG56LXJhZGlvLWdyb3VwXG4gICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PT0gJ3JhZGlvJyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5jb250cm9sTW9kZSAhPT0gJ3JlYWRvbmx5JyAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgISFpdGVtLmNvbnRyb2xOYW1lXG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xOYW1lXT1cIml0ZW0uY29udHJvbE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGl0ZW0ub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBuei1yYWRpb1xuICAgICAgICAgICAgICAgICAgICAgICAgW256VmFsdWVdPVwib3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L256LXJhZGlvLWdyb3VwPlxuXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5jb250cm9sTW9kZSA9PT0gJ3JlYWRvbmx5J1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLmZvcm1hdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5mb3JtYXQoZmcuZ2V0KGl0ZW0uY29udHJvbE5hbWUpPy52YWx1ZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWl0ZW0uZm9ybWF0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBmZy5nZXQoaXRlbS5jb250cm9sTmFtZSk/LnZhbHVlIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDwvbnotZm9ybS1jb250cm9sPlxuICAgICAgICAgICAgICAgIDwvbnotZm9ybS1pdGVtPlxuICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpdGVtLnRlbXBsYXRlUmVmXCI+XG4gICAgICAgICAgICAgIDx0ZCAqbmdJZj1cIml0ZW0uaXNTaG93XCIgW256QWxpZ25dPVwidGFibGVBbGlnblwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW0udGVtcGxhdGVSZWZcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiBmZyxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbDogZmcuZ2V0KGl0ZW0uY29udHJvbE5hbWUpLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclRpcDogaXRlbS5lcnJvclRpcCxcbiAgICAgICAgICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBpc0Rpc2FibGVkXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwhLS0g6Ieq5a6a5LmJ5bGV56S65YiXIC0tPlxuICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGRUZW1wbGF0ZU9mTnVsbEluRm9ybVwiIFtuekFsaWduXT1cInRhYmxlQWxpZ25cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICRpbXBsaWNpdDogZmcsXG4gICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICAgIDx0ciAqbmdJZj1cImVuYWJsZUV4cGFuZFwiIFtuekV4cGFuZF09XCJmZy52YWx1ZS5leHBhbmRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRhYmxlRXhwYW5kRGlyZWN0aXZlPy50ZW1wbGF0ZVJlZiFcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAkaW1wbGljaXQ6IGZnLFxuICAgICAgICAgICAgaW5kZXg6IGksXG4gICAgICAgICAgICBkaXNhYmxlZDogaXNEaXNhYmxlZFxuICAgICAgICAgIH1cIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDx0ciAqbmdJZj1cImZvcm0uZ2V0KCdmb3JtQXJyYXknKT8uZXJyb3JzXCIgW256RXhwYW5kXT1cInRydWVcIj5cbiAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXJyb3JUZW1wbGF0ZSFcIlxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IGZvcm0uZ2V0KCdmb3JtQXJyYXknKSB9XCJcbiAgICAgID5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdHI+XG4gIDwvdGJvZHk+XG48L256LXRhYmxlPlxuIl19
@@ -14,8 +14,8 @@ import { NzxTableFormThDirective } from './directive/table-th.directive';
14
14
  import { NzxTableFormComponent } from './table-form.component';
15
15
  import * as i0 from "@angular/core";
16
16
  export class NzxTableFormModule {
17
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormModule, declarations: [NzxTableFormComponent,
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormModule, declarations: [NzxTableFormComponent,
19
19
  NzxTableFormTdDirective,
20
20
  NzxTableFormThDirective,
21
21
  NzxTableFormExpandDirective], imports: [CommonModule,
@@ -30,7 +30,7 @@ export class NzxTableFormModule {
30
30
  NzxTableFormTdDirective,
31
31
  NzxTableFormThDirective,
32
32
  NzxTableFormExpandDirective] }); }
33
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormModule, imports: [CommonModule,
33
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormModule, imports: [CommonModule,
34
34
  ReactiveFormsModule,
35
35
  NzFormModule,
36
36
  NzTableModule,
@@ -40,7 +40,7 @@ export class NzxTableFormModule {
40
40
  NzDatePickerModule,
41
41
  NzInputNumberModule] }); }
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.3", ngImport: i0, type: NzxTableFormModule, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: NzxTableFormModule, decorators: [{
44
44
  type: NgModule,
45
45
  args: [{
46
46
  declarations: [