ngx-rs-ant 1.2.8 → 1.2.9

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 (42) hide show
  1. package/box-container/box-container.component.d.ts +1 -1
  2. package/camunda-bpmn-editor/camunda-bpmn-editor.component.d.ts +1 -1
  3. package/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.d.ts +1 -4
  4. package/camunda-bpmn-editor/custom/config/properties/{DescriptionProps.d.ts → user-task/TaskDescriptionProps.d.ts} +1 -1
  5. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.d.ts +2 -0
  6. package/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.d.ts +6 -0
  7. package/camunda-bpmn-editor/custom/config/util/ElementUtils.d.ts +3 -1
  8. package/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.d.ts +4 -0
  9. package/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.d.ts +23 -0
  10. package/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.d.ts +18 -0
  11. package/camunda-bpmn-editor/custom/service-task/index.d.ts +8 -0
  12. package/data-grid/data-grid.component.d.ts +3 -1
  13. package/data-grid/data-grid.service.d.ts +2 -0
  14. package/esm2020/box-container/box-container.component.mjs +4 -2
  15. package/esm2020/camunda-bpmn-editor/camunda-bpmn-editor.component.mjs +23 -7
  16. package/esm2020/camunda-bpmn-editor/custom/config/CustomPropertiesProvider.mjs +21 -19
  17. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/TaskDescriptionProps.mjs +26 -0
  18. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentProps.mjs +5 -0
  19. package/esm2020/camunda-bpmn-editor/custom/config/properties/user-task/user-assignment/UserAssignmentStaticOrDynamicProps.mjs +32 -0
  20. package/esm2020/camunda-bpmn-editor/custom/config/util/ElementUtils.mjs +30 -9
  21. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherContextPadProvider.mjs +3 -1
  22. package/esm2020/camunda-bpmn-editor/custom/hide-other/HideOtherPaletteProvider.mjs +2 -1
  23. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskContextPadProvider.mjs +46 -0
  24. package/esm2020/camunda-bpmn-editor/custom/service-task/ServiceTaskPaletteProvider.mjs +27 -0
  25. package/esm2020/camunda-bpmn-editor/custom/service-task/index.mjs +8 -0
  26. package/esm2020/camunda-bpmn-editor/custom/translate/translations.mjs +26 -2
  27. package/esm2020/data-detail/data-detail.component.mjs +1 -1
  28. package/esm2020/data-grid/data-grid.component.mjs +20 -14
  29. package/esm2020/data-grid/data-grid.service.mjs +3 -2
  30. package/esm2020/data-grid/file-cell-template/file-cell-template.component.mjs +18 -17
  31. package/esm2020/data-grid/unit-info-template/unit-info-template.component.mjs +8 -7
  32. package/esm2020/data-grid/user-info-template/user-info-template.component.mjs +8 -7
  33. package/esm2020/form/form.component.mjs +5 -3
  34. package/esm2020/modal/modal.component.mjs +8 -5
  35. package/fesm2015/ngx-rs-ant.mjs +285 -126
  36. package/fesm2015/ngx-rs-ant.mjs.map +1 -1
  37. package/fesm2020/ngx-rs-ant.mjs +285 -127
  38. package/fesm2020/ngx-rs-ant.mjs.map +1 -1
  39. package/form/form.component.d.ts +2 -1
  40. package/package.json +1 -1
  41. package/esm2020/camunda-bpmn-editor/custom/config/descriptors/coast.json +0 -24
  42. package/esm2020/camunda-bpmn-editor/custom/config/properties/DescriptionProps.mjs +0 -28
@@ -9,6 +9,7 @@ export default class HideOtherPaletteProvider {
9
9
  'create.start-event',
10
10
  'create.end-event',
11
11
  'create.user-task',
12
+ 'create.service-task',
12
13
  'create.exclusive-gateway',
13
14
  'xml'
14
15
  ];
@@ -26,4 +27,4 @@ export default class HideOtherPaletteProvider {
26
27
  };
27
28
  }
28
29
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlkZU90aGVyUGFsZXR0ZVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jdXN0b20vaGlkZS1vdGhlci9IaWRlT3RoZXJQYWxldHRlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTyx3QkFBd0I7SUFjM0MsWUFBWSxPQUFZO1FBYmhCLHFCQUFnQixHQUFHO1lBQ3pCLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLHFCQUFxQjtZQUNyQixnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIsMEJBQTBCO1lBQzFCLEtBQUs7U0FDTixDQUFDO1FBR0EsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxDQUFDLE9BQVksRUFBRSxFQUFFO1lBQ3RCLE1BQU0sY0FBYyxHQUFRLEVBQUUsQ0FBQztZQUMvQixLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDbkQsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxFQUFFO29CQUMzQyxjQUFjLENBQUMsZUFBZSxDQUFDLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUM1RDthQUNGO1lBQ0QsT0FBTyxjQUFjLENBQUM7UUFDeEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGlkZU90aGVyUGFsZXR0ZVByb3ZpZGVyIHtcclxuICBwcml2YXRlIHZpc2libGVFbnRyeUtleXMgPSBbXHJcbiAgICAnaGFuZC10b29sJyxcclxuICAgICdsYXNzby10b29sJyxcclxuICAgICdzcGFjZS10b29sJyxcclxuICAgICdnbG9iYWwtY29ubmVjdC10b29sJyxcclxuICAgICd0b29sLXNlcGFyYXRvcicsXHJcbiAgICAnY3JlYXRlLnN0YXJ0LWV2ZW50JyxcclxuICAgICdjcmVhdGUuZW5kLWV2ZW50JyxcclxuICAgICdjcmVhdGUudXNlci10YXNrJyxcclxuICAgICdjcmVhdGUuZXhjbHVzaXZlLWdhdGV3YXknLFxyXG4gICAgJ3htbCdcclxuICBdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwYWxldHRlOiBhbnkpIHtcclxuICAgIHBhbGV0dGUucmVnaXN0ZXJQcm92aWRlcigwLCB0aGlzKTtcclxuICB9XHJcblxyXG4gIGdldFBhbGV0dGVFbnRyaWVzKCkge1xyXG4gICAgcmV0dXJuIChlbnRyaWVzOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdmlzaWJsZUVudHJpZXM6IGFueSA9IHt9O1xyXG4gICAgICBmb3IgKGNvbnN0IHZpc2libGVFbnRyeUtleSBvZiB0aGlzLnZpc2libGVFbnRyeUtleXMpIHtcclxuICAgICAgICBpZiAoZW50cmllcy5oYXNPd25Qcm9wZXJ0eSh2aXNpYmxlRW50cnlLZXkpKSB7XHJcbiAgICAgICAgICB2aXNpYmxlRW50cmllc1t2aXNpYmxlRW50cnlLZXldID0gZW50cmllc1t2aXNpYmxlRW50cnlLZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmlzaWJsZUVudHJpZXM7XHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGlkZU90aGVyUGFsZXR0ZVByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jdXN0b20vaGlkZS1vdGhlci9IaWRlT3RoZXJQYWxldHRlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTyx3QkFBd0I7SUFlM0MsWUFBWSxPQUFZO1FBZGhCLHFCQUFnQixHQUFHO1lBQ3pCLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTtZQUNaLHFCQUFxQjtZQUNyQixnQkFBZ0I7WUFDaEIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixrQkFBa0I7WUFDbEIscUJBQXFCO1lBQ3JCLDBCQUEwQjtZQUMxQixLQUFLO1NBQ04sQ0FBQztRQUdBLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sQ0FBQyxPQUFZLEVBQUUsRUFBRTtZQUN0QixNQUFNLGNBQWMsR0FBUSxFQUFFLENBQUM7WUFDL0IsS0FBSyxNQUFNLGVBQWUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ25ELElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRTtvQkFDM0MsY0FBYyxDQUFDLGVBQWUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDNUQ7YUFDRjtZQUNELE9BQU8sY0FBYyxDQUFDO1FBQ3hCLENBQUMsQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IGNsYXNzIEhpZGVPdGhlclBhbGV0dGVQcm92aWRlciB7XHJcbiAgcHJpdmF0ZSB2aXNpYmxlRW50cnlLZXlzID0gW1xyXG4gICAgJ2hhbmQtdG9vbCcsXHJcbiAgICAnbGFzc28tdG9vbCcsXHJcbiAgICAnc3BhY2UtdG9vbCcsXHJcbiAgICAnZ2xvYmFsLWNvbm5lY3QtdG9vbCcsXHJcbiAgICAndG9vbC1zZXBhcmF0b3InLFxyXG4gICAgJ2NyZWF0ZS5zdGFydC1ldmVudCcsXHJcbiAgICAnY3JlYXRlLmVuZC1ldmVudCcsXHJcbiAgICAnY3JlYXRlLnVzZXItdGFzaycsXHJcbiAgICAnY3JlYXRlLnNlcnZpY2UtdGFzaycsXHJcbiAgICAnY3JlYXRlLmV4Y2x1c2l2ZS1nYXRld2F5JyxcclxuICAgICd4bWwnXHJcbiAgXTtcclxuXHJcbiAgY29uc3RydWN0b3IocGFsZXR0ZTogYW55KSB7XHJcbiAgICBwYWxldHRlLnJlZ2lzdGVyUHJvdmlkZXIoMCwgdGhpcyk7XHJcbiAgfVxyXG5cclxuICBnZXRQYWxldHRlRW50cmllcygpIHtcclxuICAgIHJldHVybiAoZW50cmllczogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZpc2libGVFbnRyaWVzOiBhbnkgPSB7fTtcclxuICAgICAgZm9yIChjb25zdCB2aXNpYmxlRW50cnlLZXkgb2YgdGhpcy52aXNpYmxlRW50cnlLZXlzKSB7XHJcbiAgICAgICAgaWYgKGVudHJpZXMuaGFzT3duUHJvcGVydHkodmlzaWJsZUVudHJ5S2V5KSkge1xyXG4gICAgICAgICAgdmlzaWJsZUVudHJpZXNbdmlzaWJsZUVudHJ5S2V5XSA9IGVudHJpZXNbdmlzaWJsZUVudHJ5S2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZpc2libGVFbnRyaWVzO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,46 @@
1
+ export default class ServiceTaskContextPadProvider {
2
+ constructor(contextPad, translate, appendPreview, elementFactory, autoPlace, create) {
3
+ this.translate = translate;
4
+ this.appendPreview = appendPreview;
5
+ this.elementFactory = elementFactory;
6
+ this.autoPlace = autoPlace;
7
+ this.create = create;
8
+ contextPad.registerProvider(this);
9
+ this.appendServiceTaskPreview = this.appendServiceTaskPreview.bind(this);
10
+ this.appendServiceTask = this.appendServiceTask.bind(this);
11
+ this.appendServiceTaskStart = this.appendServiceTaskStart.bind(this);
12
+ }
13
+ getContextPadEntries() {
14
+ return {
15
+ 'append.service-task': {
16
+ group: 'model',
17
+ className: 'bpmn-icon-service-task',
18
+ title: this.translate('Append ServiceTask'),
19
+ action: {
20
+ hover: this.appendServiceTaskPreview,
21
+ click: this.appendServiceTask,
22
+ dragstart: this.appendServiceTaskStart
23
+ }
24
+ }
25
+ };
26
+ }
27
+ appendServiceTaskPreview(event, source) {
28
+ this.appendPreview.create(source, 'bpmn:ServiceTask');
29
+ return () => {
30
+ this.appendPreview.cleanUp();
31
+ };
32
+ }
33
+ appendServiceTask(event, source) {
34
+ const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
35
+ this.autoPlace.append(source, shape);
36
+ this.appendPreview.cleanUp();
37
+ }
38
+ appendServiceTaskStart(event, source) {
39
+ const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
40
+ this.create.start(event, shape, {
41
+ source: source
42
+ });
43
+ this.appendPreview.cleanUp();
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZVRhc2tDb250ZXh0UGFkUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2N1c3RvbS9zZXJ2aWNlLXRhc2svU2VydmljZVRhc2tDb250ZXh0UGFkUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTyw2QkFBNkI7SUFPaEQsWUFBWSxVQUFlLEVBQUUsU0FBYyxFQUFFLGFBQWtCLEVBQUUsY0FBbUIsRUFBRSxTQUFjLEVBQUUsTUFBVztRQUMvRyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixVQUFVLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPO1lBQ0wscUJBQXFCLEVBQUU7Z0JBQ3JCLEtBQUssRUFBRSxPQUFPO2dCQUNkLFNBQVMsRUFBRSx3QkFBd0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO2dCQUMzQyxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFLElBQUksQ0FBQyx3QkFBd0I7b0JBQ3BDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCO29CQUM3QixTQUFTLEVBQUUsSUFBSSxDQUFDLHNCQUFzQjtpQkFDdkM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBVSxFQUFFLE1BQVc7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFDdEQsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsTUFBVztRQUN2QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVELHNCQUFzQixDQUFDLEtBQVUsRUFBRSxNQUFXO1FBQzVDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFO1lBQzlCLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBjbGFzcyBTZXJ2aWNlVGFza0NvbnRleHRQYWRQcm92aWRlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwcGVuZFByZXZpZXc6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRGYWN0b3J5OiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRvUGxhY2U6IGFueTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNyZWF0ZTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihjb250ZXh0UGFkOiBhbnksIHRyYW5zbGF0ZTogYW55LCBhcHBlbmRQcmV2aWV3OiBhbnksIGVsZW1lbnRGYWN0b3J5OiBhbnksIGF1dG9QbGFjZTogYW55LCBjcmVhdGU6IGFueSkge1xyXG4gICAgdGhpcy50cmFuc2xhdGUgPSB0cmFuc2xhdGU7XHJcbiAgICB0aGlzLmFwcGVuZFByZXZpZXcgPSBhcHBlbmRQcmV2aWV3O1xyXG4gICAgdGhpcy5lbGVtZW50RmFjdG9yeSA9IGVsZW1lbnRGYWN0b3J5O1xyXG4gICAgdGhpcy5hdXRvUGxhY2UgPSBhdXRvUGxhY2U7XHJcbiAgICB0aGlzLmNyZWF0ZSA9IGNyZWF0ZTtcclxuICAgIGNvbnRleHRQYWQucmVnaXN0ZXJQcm92aWRlcih0aGlzKTtcclxuICAgIHRoaXMuYXBwZW5kU2VydmljZVRhc2tQcmV2aWV3ID0gdGhpcy5hcHBlbmRTZXJ2aWNlVGFza1ByZXZpZXcuYmluZCh0aGlzKTtcclxuICAgIHRoaXMuYXBwZW5kU2VydmljZVRhc2sgPSB0aGlzLmFwcGVuZFNlcnZpY2VUYXNrLmJpbmQodGhpcyk7XHJcbiAgICB0aGlzLmFwcGVuZFNlcnZpY2VUYXNrU3RhcnQgPSB0aGlzLmFwcGVuZFNlcnZpY2VUYXNrU3RhcnQuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIGdldENvbnRleHRQYWRFbnRyaWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ2FwcGVuZC5zZXJ2aWNlLXRhc2snOiB7XHJcbiAgICAgICAgZ3JvdXA6ICdtb2RlbCcsXHJcbiAgICAgICAgY2xhc3NOYW1lOiAnYnBtbi1pY29uLXNlcnZpY2UtdGFzaycsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlKCdBcHBlbmQgU2VydmljZVRhc2snKSxcclxuICAgICAgICBhY3Rpb246IHtcclxuICAgICAgICAgIGhvdmVyOiB0aGlzLmFwcGVuZFNlcnZpY2VUYXNrUHJldmlldyxcclxuICAgICAgICAgIGNsaWNrOiB0aGlzLmFwcGVuZFNlcnZpY2VUYXNrLFxyXG4gICAgICAgICAgZHJhZ3N0YXJ0OiB0aGlzLmFwcGVuZFNlcnZpY2VUYXNrU3RhcnRcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBhcHBlbmRTZXJ2aWNlVGFza1ByZXZpZXcoZXZlbnQ6IGFueSwgc291cmNlOiBhbnkpIHtcclxuICAgIHRoaXMuYXBwZW5kUHJldmlldy5jcmVhdGUoc291cmNlLCAnYnBtbjpTZXJ2aWNlVGFzaycpO1xyXG4gICAgcmV0dXJuICgpID0+IHtcclxuICAgICAgdGhpcy5hcHBlbmRQcmV2aWV3LmNsZWFuVXAoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGFwcGVuZFNlcnZpY2VUYXNrKGV2ZW50OiBhbnksIHNvdXJjZTogYW55KSB7XHJcbiAgICBjb25zdCBzaGFwZSA9IHRoaXMuZWxlbWVudEZhY3RvcnkuY3JlYXRlU2hhcGUoe3R5cGU6ICdicG1uOlNlcnZpY2VUYXNrJ30pO1xyXG4gICAgdGhpcy5hdXRvUGxhY2UuYXBwZW5kKHNvdXJjZSwgc2hhcGUpO1xyXG4gICAgdGhpcy5hcHBlbmRQcmV2aWV3LmNsZWFuVXAoKTtcclxuICB9XHJcblxyXG4gIGFwcGVuZFNlcnZpY2VUYXNrU3RhcnQoZXZlbnQ6IGFueSwgc291cmNlOiBhbnkpIHtcclxuICAgIGNvbnN0IHNoYXBlID0gdGhpcy5lbGVtZW50RmFjdG9yeS5jcmVhdGVTaGFwZSh7dHlwZTogJ2JwbW46U2VydmljZVRhc2snfSk7XHJcbiAgICB0aGlzLmNyZWF0ZS5zdGFydChldmVudCwgc2hhcGUsIHtcclxuICAgICAgc291cmNlOiBzb3VyY2VcclxuICAgIH0pO1xyXG4gICAgdGhpcy5hcHBlbmRQcmV2aWV3LmNsZWFuVXAoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,27 @@
1
+ export default class ServiceTaskPaletteProvider {
2
+ constructor(palette, translate, elementFactory, create) {
3
+ this.translate = translate;
4
+ this.elementFactory = elementFactory;
5
+ this.create = create;
6
+ palette.registerProvider(this);
7
+ this.createServiceTask = this.createServiceTask.bind(this);
8
+ }
9
+ getPaletteEntries() {
10
+ return {
11
+ 'create.service-task': {
12
+ group: 'activity',
13
+ className: 'bpmn-icon-service-task',
14
+ title: this.translate('Create ServiceTask'),
15
+ action: {
16
+ dragstart: this.createServiceTask,
17
+ click: this.createServiceTask
18
+ }
19
+ }
20
+ };
21
+ }
22
+ createServiceTask(event) {
23
+ const shape = this.elementFactory.createShape({ type: 'bpmn:ServiceTask' });
24
+ this.create.start(event, shape);
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VydmljZVRhc2tQYWxldHRlUHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2N1c3RvbS9zZXJ2aWNlLXRhc2svU2VydmljZVRhc2tQYWxldHRlUHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE9BQU8sT0FBTywwQkFBMEI7SUFLN0MsWUFBWSxPQUFZLEVBQUUsU0FBYyxFQUFFLGNBQW1CLEVBQUUsTUFBVztRQUN4RSxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixPQUFPLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU87WUFDTCxxQkFBcUIsRUFBRTtnQkFDckIsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLFNBQVMsRUFBRSx3QkFBd0I7Z0JBQ25DLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO2dCQUMzQyxNQUFNLEVBQUU7b0JBQ04sU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7b0JBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsaUJBQWlCO2lCQUM5QjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFDLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2VydmljZVRhc2tQYWxldHRlUHJvdmlkZXIge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlOiBhbnk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50RmFjdG9yeTogYW55O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgY3JlYXRlOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHBhbGV0dGU6IGFueSwgdHJhbnNsYXRlOiBhbnksIGVsZW1lbnRGYWN0b3J5OiBhbnksIGNyZWF0ZTogYW55KSB7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZSA9IHRyYW5zbGF0ZTtcclxuICAgIHRoaXMuZWxlbWVudEZhY3RvcnkgPSBlbGVtZW50RmFjdG9yeTtcclxuICAgIHRoaXMuY3JlYXRlID0gY3JlYXRlO1xyXG4gICAgcGFsZXR0ZS5yZWdpc3RlclByb3ZpZGVyKHRoaXMpO1xyXG4gICAgdGhpcy5jcmVhdGVTZXJ2aWNlVGFzayA9IHRoaXMuY3JlYXRlU2VydmljZVRhc2suYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIGdldFBhbGV0dGVFbnRyaWVzKCkge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgJ2NyZWF0ZS5zZXJ2aWNlLXRhc2snOiB7XHJcbiAgICAgICAgZ3JvdXA6ICdhY3Rpdml0eScsXHJcbiAgICAgICAgY2xhc3NOYW1lOiAnYnBtbi1pY29uLXNlcnZpY2UtdGFzaycsXHJcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlKCdDcmVhdGUgU2VydmljZVRhc2snKSxcclxuICAgICAgICBhY3Rpb246IHtcclxuICAgICAgICAgIGRyYWdzdGFydDogdGhpcy5jcmVhdGVTZXJ2aWNlVGFzayxcclxuICAgICAgICAgIGNsaWNrOiB0aGlzLmNyZWF0ZVNlcnZpY2VUYXNrXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU2VydmljZVRhc2soZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3Qgc2hhcGUgPSB0aGlzLmVsZW1lbnRGYWN0b3J5LmNyZWF0ZVNoYXBlKHt0eXBlOiAnYnBtbjpTZXJ2aWNlVGFzayd9KTtcclxuICAgIHRoaXMuY3JlYXRlLnN0YXJ0KGV2ZW50LCBzaGFwZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import ServiceTaskPaletteProvider from './ServiceTaskPaletteProvider';
2
+ import ServiceTaskContextPadProvider from "./ServiceTaskContextPadProvider";
3
+ export default {
4
+ __init__: ['serviceTaskPaletteProvider', 'serviceTaskContextPadProvider'],
5
+ serviceTaskPaletteProvider: ['type', ServiceTaskPaletteProvider],
6
+ serviceTaskContextPadProvider: ['type', ServiceTaskContextPadProvider],
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcnMtYW50L3NyYy9jYW11bmRhLWJwbW4tZWRpdG9yL2N1c3RvbS9zZXJ2aWNlLXRhc2svaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTywwQkFBMEIsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RSxPQUFPLDZCQUE2QixNQUFNLGlDQUFpQyxDQUFDO0FBRTVFLGVBQWU7SUFDYixRQUFRLEVBQUUsQ0FBQyw0QkFBNEIsRUFBRSwrQkFBK0IsQ0FBQztJQUN6RSwwQkFBMEIsRUFBRSxDQUFDLE1BQU0sRUFBRSwwQkFBMEIsQ0FBQztJQUNoRSw2QkFBNkIsRUFBRSxDQUFDLE1BQU0sRUFBRSw2QkFBNkIsQ0FBQztDQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNlcnZpY2VUYXNrUGFsZXR0ZVByb3ZpZGVyIGZyb20gJy4vU2VydmljZVRhc2tQYWxldHRlUHJvdmlkZXInO1xyXG5pbXBvcnQgU2VydmljZVRhc2tDb250ZXh0UGFkUHJvdmlkZXIgZnJvbSBcIi4vU2VydmljZVRhc2tDb250ZXh0UGFkUHJvdmlkZXJcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IHtcclxuICBfX2luaXRfXzogWydzZXJ2aWNlVGFza1BhbGV0dGVQcm92aWRlcicsICdzZXJ2aWNlVGFza0NvbnRleHRQYWRQcm92aWRlciddLFxyXG4gIHNlcnZpY2VUYXNrUGFsZXR0ZVByb3ZpZGVyOiBbJ3R5cGUnLCBTZXJ2aWNlVGFza1BhbGV0dGVQcm92aWRlcl0sXHJcbiAgc2VydmljZVRhc2tDb250ZXh0UGFkUHJvdmlkZXI6IFsndHlwZScsIFNlcnZpY2VUYXNrQ29udGV4dFBhZFByb3ZpZGVyXSxcclxufTtcclxuIl19
@@ -1,14 +1,38 @@
1
1
  export const translations = {
2
+ // 调色板
2
3
  'Activate the hand tool': '激活拖拽工具',
3
4
  'Activate the lasso tool': '激活框选工具',
4
5
  'Activate the create/remove space tool': '激活空间移动工具',
5
6
  'Activate the global connect tool': '激活全局连接工具',
6
7
  'Create StartEvent': '创建开始节点',
7
8
  'Create EndEvent': '创建结束节点',
8
- 'Create Gateway': '创建网关节点',
9
9
  'Create UserTask': '创建用户任务',
10
+ 'Create ServiceTask': '创建服务任务',
11
+ 'Create Gateway': '创建网关节点',
12
+ // 面板
13
+ 'Append EndEvent': '追加结束节点',
14
+ 'Append UserTask': '追加用户任务',
15
+ 'Append ServiceTask': '追加服务任务',
16
+ 'Append Gateway': '追加网关节点',
17
+ 'Connect using Sequence/MessageFlow or Association': '使用序列/消息流或关联连接',
18
+ 'Remove': '删除',
19
+ 'Set Color': '设置颜色',
20
+ 'Change type': '改变节点类型',
21
+ 'Exclusive Gateway': '互斥网关',
22
+ 'Parallel Gateway': '并行网关',
23
+ 'Default Flow': '默认流向',
24
+ 'Sequence Flow': '顺序流向',
10
25
  'Open minimap': '打开缩略图',
11
26
  'Close minimap': '关闭缩略图',
27
+ // 配置
28
+ 'General': '参数配置',
29
+ 'Name': '名称',
30
+ 'Task description': '任务描述',
31
+ 'Set assignment rule': '设置用户规则',
32
+ 'dynamic user': '动态用户',
33
+ 'static user': '静态用户',
34
+ 'dynamic role': '动态角色',
35
+ 'static role': '静态角色',
12
36
  /*
13
37
  'Create {type}': '创建{type}',
14
38
  'Create Intermediate/Boundary Event': '创建中间/边界事件',
@@ -273,4 +297,4 @@ export const translations = {
273
297
  'Multi Instance Retry Time Cycle': '多实例重试时间',
274
298
  */
275
299
  };
276
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jdXN0b20vdHJhbnNsYXRlL3RyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBRXJCO0lBQ0Ysd0JBQXdCLEVBQUUsUUFBUTtJQUNsQyx5QkFBeUIsRUFBRSxRQUFRO0lBQ25DLHVDQUF1QyxFQUFFLFVBQVU7SUFDbkQsa0NBQWtDLEVBQUUsVUFBVTtJQUM5QyxtQkFBbUIsRUFBRSxRQUFRO0lBQzdCLGlCQUFpQixFQUFFLFFBQVE7SUFDM0IsZ0JBQWdCLEVBQUUsUUFBUTtJQUMxQixpQkFBaUIsRUFBRSxRQUFRO0lBQzNCLGNBQWMsRUFBRSxPQUFPO0lBQ3ZCLGVBQWUsRUFBRSxPQUFPO0lBR3hCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBc1FJO0NBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0cmFuc2xhdGlvbnM6IHtcclxuICBba2V5OiBzdHJpbmddOiBzdHJpbmdcclxufSA9IHtcclxuICAnQWN0aXZhdGUgdGhlIGhhbmQgdG9vbCc6ICfmv4DmtLvmi5bmi73lt6XlhbcnLFxyXG4gICdBY3RpdmF0ZSB0aGUgbGFzc28gdG9vbCc6ICfmv4DmtLvmoYbpgInlt6XlhbcnLFxyXG4gICdBY3RpdmF0ZSB0aGUgY3JlYXRlL3JlbW92ZSBzcGFjZSB0b29sJzogJ+a/gOa0u+epuumXtOenu+WKqOW3peWFtycsXHJcbiAgJ0FjdGl2YXRlIHRoZSBnbG9iYWwgY29ubmVjdCB0b29sJzogJ+a/gOa0u+WFqOWxgOi/nuaOpeW3peWFtycsXHJcbiAgJ0NyZWF0ZSBTdGFydEV2ZW50JzogJ+WIm+W7uuW8gOWni+iKgueCuScsXHJcbiAgJ0NyZWF0ZSBFbmRFdmVudCc6ICfliJvlu7rnu5PmnZ/oioLngrknLFxyXG4gICdDcmVhdGUgR2F0ZXdheSc6ICfliJvlu7rnvZHlhbPoioLngrknLFxyXG4gICdDcmVhdGUgVXNlclRhc2snOiAn5Yib5bu655So5oi35Lu75YqhJyxcclxuICAnT3BlbiBtaW5pbWFwJzogJ+aJk+W8gOe8qeeVpeWbvicsXHJcbiAgJ0Nsb3NlIG1pbmltYXAnOiAn5YWz6Zet57yp55Wl5Zu+JyxcclxuXHJcblxyXG4gIC8qXHJcbiAgICAnQ3JlYXRlIHt0eXBlfSc6ICfliJvlu7p7dHlwZX0nLFxyXG4gICAgJ0NyZWF0ZSBJbnRlcm1lZGlhdGUvQm91bmRhcnkgRXZlbnQnOiAn5Yib5bu65Lit6Ze0L+i+ueeVjOS6i+S7ticsXHJcbiAgICAnQXBwZW5kIHt0eXBlfSc6ICfov73liqB7dHlwZX0nLCAvLyfov73liqB7dHlwZX0nLFxyXG4gICAgJ0FkZCBMYW5lIGFib3ZlJzogJ+a3u+WKoOS4iumdouazs+mBkycsXHJcbiAgICAnRGl2aWRlIGludG8gdHdvIExhbmVzJzogJ+aLhuWIhuS4pOS4quazs+mBkycsXHJcbiAgICAnRGl2aWRlIGludG8gdGhyZWUgTGFuZXMnOiAn5ouG5YiG5LiJ5Liq5rOz6YGTJyxcclxuICAgICdBZGQgTGFuZSBiZWxvdyc6ICfmt7vkuIvpnaLms7PpgZMnLFxyXG4gICAgJ0FwcGVuZCBjb21wZW5zYXRpb24gYWN0aXZpdHknOiAn6L+95Yqg6KGl5YG/5rS75YqoJyxcclxuICAgICdDaGFuZ2UgdHlwZSc6ICfmlLnlj5joioLngrnnsbvlnosnLCAvLyDmlLnlj5jkuovmg4XnsbvlnotcclxuICAgICdDb25uZWN0IHVzaW5nIEFzc29jaWF0aW9uJzogJ+S9v+eUqOWFs+iBlOi/nuaOpScsXHJcbiAgICAnQ29ubmVjdCB1c2luZyBTZXF1ZW5jZS9NZXNzYWdlRmxvdyBvciBBc3NvY2lhdGlvbic6ICfkvb/nlKjluo/liJcv5raI5oGv5rWB5oiW5YWz6IGU6L+e5o6lJyxcclxuICAgICdDb25uZWN0IHVzaW5nIERhdGFJbnB1dEFzc29jaWF0aW9uJzogJ+S9v+eUqOaVsOaNrui+k+WFpeWFs+iBlOi/nuaOpScsXHJcbiAgICAnUmVtb3ZlJzogJ+WIoOmZpCcsXHJcbiAgICAnQ3JlYXRlIGV4cGFuZGVkIFN1YlByb2Nlc3MnOiAn5Yib5bu65omp5bGV5a2Q5rWB56iLJyxcclxuICAgIC8vICdDcmVhdGUgUG9vbC9QYXJ0aWNpcGFudCc6ICfliJvlu7rogIXmiJblj4LkuI7ogIUnLFxyXG4gICAgJ0NyZWF0ZSBJbnRlcm1lZGlhdGVUaHJvd0V2ZW50L0JvdW5kYXJ5RXZlbnQnOiAn5Yib5bu65Lit6Ze05LqL5Lu25oiW6L6555WM5LqL5Lu2JyxcclxuICAgICdQYXJhbGxlbCBNdWx0aSBJbnN0YW5jZSc6ICflubbooYzlpJrlrp7kvosnLFxyXG4gICAgJ1NlcXVlbnRpYWwgTXVsdGkgSW5zdGFuY2UnOiAn6aG65bqP5aSa6YeN5a6e5L6LJyxcclxuICAgICdMb29wJzogJ+W+queOrycsXHJcbiAgICAnQWQtaG9jJzogJ+eJueWIq+aMh+WumicsXHJcbiAgICAnVGFzayc6ICfku7vliqEnLFxyXG4gICAgJ1NlbmQgVGFzayc6ICflj5HpgIHku7vliqEnLCAvLyDlj5HpgIHku7vliqFcclxuICAgICdSZWNlaXZlIFRhc2snOiAn5o6l5pS25Lu75YqhJyxcclxuICAgICdVc2VyIFRhc2snOiAn55So5oi35Lu75YqhJyxcclxuICAgICdNYW51YWwgVGFzayc6ICfmiYvlt6Xku7vliqEnLFxyXG4gICAgJ0J1c2luZXNzIFJ1bGUgVGFzayc6ICfkvZzkuJrop4TliJnku7vliqEnLFxyXG4gICAgJ1NlcnZpY2UgVGFzayc6ICfmnI3liqHku7vliqEnLFxyXG4gICAgJ1NjcmlwdCBUYXNrJzogJ+iEmuacrOS7u+WKoScsXHJcbiAgICAnQ2FsbCBBY3Rpdml0eSc6ICfosIPnlKjmtLvliqgnLFxyXG4gICAgJ1N1YiBQcm9jZXNzIChjb2xsYXBzZWQpJzogJ+WtkOi/h+eoi++8iOaKmOWPoO+8iScsXHJcbiAgICAnU3ViIFByb2Nlc3MgKGV4cGFuZGVkKSc6ICflrZDov4fnqIvvvIjlsZXlvIDvvIknLFxyXG4gICAgJ1N0YXJ0IEV2ZW50JzogJ+W8gOWni+S6i+S7ticsXHJcbiAgICAnSW50ZXJtZWRpYXRlIFRocm93IEV2ZW50JzogJ+aKm+WHuuS6i+S7ticsXHJcbiAgICAnRW5kIEV2ZW50JzogJ+e7k+adn+S6i+S7ticsXHJcbiAgICAnTWVzc2FnZSBTdGFydCBFdmVudCc6ICfmtojmga/lvIDlp4vkuovku7YnLFxyXG4gICAgJ1RpbWVyIFN0YXJ0IEV2ZW50JzogJ+aXtumXtOW8gOWni+S6i+S7ticsXHJcbiAgICAnQ29uZGl0aW9uYWwgU3RhcnQgRXZlbnQnOiAn5p2h5Lu25byA5aeL5LqL5Lu2JyxcclxuICAgICdTaWduYWwgU3RhcnQgRXZlbnQnOiAn5L+h5Y+35byA5aeL5LqL5Lu2JyxcclxuICAgICdFcnJvciBTdGFydCBFdmVudCc6ICfplJnor6/lvIDlp4vkuovku7YnLFxyXG4gICAgJ0VzY2FsYXRpb24gU3RhcnQgRXZlbnQnOiAn5Y2H57qn5byA5aeL5LqL5Lu2JyxcclxuICAgICdDb21wZW5zYXRpb24gU3RhcnQgRXZlbnQnOiAn6KGl5YG/5byA5aeL5LqL5Lu2JyxcclxuICAgICdNZXNzYWdlIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfmtojmga/lvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ1RpbWVyIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICflrprml7blvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ0NvbmRpdGlvbmFsIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfmnaHku7blvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ1NpZ25hbCBTdGFydCBFdmVudCAobm9uLWludGVycnVwdGluZyknOiAn5L+h5Y+35byA5aeL5LqL5Lu277yI5LiN5Lit5pat77yJJyxcclxuICAgICdFc2NhbGF0aW9uIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfljYfnuqflvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ01lc3NhZ2UgSW50ZXJtZWRpYXRlIENhdGNoIEV2ZW50JzogJ+S/oeaBr+aNleiOt+S6i+S7ticsXHJcbiAgICAnTWVzc2FnZSBJbnRlcm1lZGlhdGUgVGhyb3cgRXZlbnQnOiAn5L+h5oGv5oqb5Ye65LqL5Lu2JyxcclxuICAgICdUaW1lciBJbnRlcm1lZGlhdGUgQ2F0Y2ggRXZlbnQnOiAn5a6a5pe25Zmo5o2V6I635LqL5Lu2JyxcclxuICAgICdFc2NhbGF0aW9uIEludGVybWVkaWF0ZSBUaHJvdyBFdmVudCc6ICfljYfnuqfmipvlh7rkuovku7YnLFxyXG4gICAgJ0NvbmRpdGlvbmFsIEludGVybWVkaWF0ZSBDYXRjaCBFdmVudCc6ICfmnaHku7bmjZXojrfkuovku7YnLFxyXG4gICAgJ0xpbmsgSW50ZXJtZWRpYXRlIENhdGNoIEV2ZW50JzogJ+mTvuaOpeaNleiOt+S6i+S7ticsXHJcbiAgICAnTGluayBJbnRlcm1lZGlhdGUgVGhyb3cgRXZlbnQnOiAn6ZO+5o6l5oqb5Ye65LqL5Lu2JyxcclxuICAgICdDb21wZW5zYXRpb24gSW50ZXJtZWRpYXRlIFRocm93IEV2ZW50JzogJ+ihpeWBv+aKm+WHuuS6i+S7ticsXHJcbiAgICAnU2lnbmFsIEludGVybWVkaWF0ZSBDYXRjaCBFdmVudCc6ICfkv6Hlj7fmjZXojrfkuovku7YnLFxyXG4gICAgJ1NpZ25hbCBJbnRlcm1lZGlhdGUgVGhyb3cgRXZlbnQnOiAn5L+h5Y+35oqb5Ye65LqL5Lu2JyxcclxuICAgICdNZXNzYWdlIEVuZCBFdmVudCc6ICfmtojmga/nu5PmnZ/kuovku7YnLFxyXG4gICAgJ0VzY2FsYXRpb24gRW5kIEV2ZW50JzogJ+WNh+e6p+e7k+adn+S6i+S7ticsXHJcbiAgICAnRXJyb3IgRW5kIEV2ZW50JzogJ+mUmeivr+e7k+adn+S6i+S7ticsXHJcbiAgICAnQ2FuY2VsIEVuZCBFdmVudCc6ICflj5bmtojnu5PmnZ/kuovku7YnLFxyXG4gICAgJ0NvbXBlbnNhdGlvbiBFbmQgRXZlbnQnOiAn6KGl5YG/57uT5p2f5LqL5Lu2JyxcclxuICAgICdTaWduYWwgRW5kIEV2ZW50JzogJ+S/oeWPt+e7k+adn+S6i+S7ticsXHJcbiAgICAnVGVybWluYXRlIEVuZCBFdmVudCc6ICfnu4jmraLnu5PmnZ/kuovku7YnLFxyXG4gICAgJ01lc3NhZ2UgQm91bmRhcnkgRXZlbnQnOiAn5raI5oGv6L6555WM5LqL5Lu2JyxcclxuICAgICdNZXNzYWdlIEJvdW5kYXJ5IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfmtojmga/ovrnnlYzkuovku7bvvIjpnZ7kuK3mlq3vvIknLFxyXG4gICAgJ1RpbWVyIEJvdW5kYXJ5IEV2ZW50JzogJ+WumuaXtui+ueeVjOS6i+S7ticsXHJcbiAgICAnVGltZXIgQm91bmRhcnkgRXZlbnQgKG5vbi1pbnRlcnJ1cHRpbmcpJzogJ+WumuaXtui+ueeVjOS6i+S7tu+8iOmdnuS4reaWre+8iScsXHJcbiAgICAnRXNjYWxhdGlvbiBCb3VuZGFyeSBFdmVudCc6ICfljYfnuqfovrnnlYzkuovku7YnLFxyXG4gICAgJ0VzY2FsYXRpb24gQm91bmRhcnkgRXZlbnQgKG5vbi1pbnRlcnJ1cHRpbmcpJzogJ+WNh+e6p+i+ueeVjOS6i+S7tu+8iOmdnuS4reaWre+8iScsXHJcbiAgICAnQ29uZGl0aW9uYWwgQm91bmRhcnkgRXZlbnQnOiAn5pyJ5p2h5Lu255qE6L6555WM5LqL5Lu2JyxcclxuICAgICdDb25kaXRpb25hbCBCb3VuZGFyeSBFdmVudCAobm9uLWludGVycnVwdGluZyknOiAn5p2h5Lu26L6555WM5LqL5Lu277yI6Z2e5Lit5pat77yJJyxcclxuICAgICdFcnJvciBCb3VuZGFyeSBFdmVudCc6ICfplJnor6/ovrnnlYzkuovku7YnLFxyXG4gICAgJ0NhbmNlbCBCb3VuZGFyeSBFdmVudCc6ICflj5bmtojovrnnlYzkuovku7YnLFxyXG4gICAgJ1NpZ25hbCBCb3VuZGFyeSBFdmVudCc6ICfkv6Hlj7fovrnnlYzkuovku7YnLFxyXG4gICAgJ1NpZ25hbCBCb3VuZGFyeSBFdmVudCAobm9uLWludGVycnVwdGluZyknOiAn5L+h5Y+36L6555WM5LqL5Lu277yI6Z2e5Lit5pat77yJJyxcclxuICAgICdDb21wZW5zYXRpb24gQm91bmRhcnkgRXZlbnQnOiAn6KGl5YG/6L6555WM5LqL5Lu2JyxcclxuICAgICdFeGNsdXNpdmUnOiAn5o6S5LuWJyxcclxuICAgICdFeGNsdXNpdmUgR2F0ZXdheSc6ICfkupLmlqXnvZHlhbMnLFxyXG4gICAgJ1BhcmFsbGVsIEdhdGV3YXknOiAn5bm26KGM572R5YWzJyxcclxuICAgICdJbmNsdXNpdmUgR2F0ZXdheSc6ICfnm7jlrrnnvZHlhbMnLFxyXG4gICAgJ0NvbXBsZXggR2F0ZXdheSc6ICflpI3mnYLnvZHlhbMnLFxyXG4gICAgJ0V2ZW50IGJhc2VkIEdhdGV3YXknOiAn5LqL5Lu2572R5YWzJyxcclxuICAgICdUcmFuc2FjdGlvbic6ICfkuqTmjaInLFxyXG4gICAgJ1N1YiBQcm9jZXNzJzogJ+WtkOa1geeoiycsXHJcbiAgICAnRXZlbnQgU3ViIFByb2Nlc3MnOiAn5LqL5Lu25a2Q5rWB56iLJyxcclxuICAgICdFbXB0eSBQb29sIChyZW1vdmVzIGNvbnRlbnQpJzogJ+a4heepuuazs+axoO+8iOWIoOmZpOWGheWuue+8iScsXHJcbiAgICAnQ29sbGFwc2VkIFBvb2wnOiAn5ZCI5bm25rOz5rGgJyxcclxuICAgICdFeHBhbmRlZCBQb29sJzogJ+aJqeWxleazs+axoCcsXHJcblxyXG4gICAgLy8gZmxvd1xyXG4gICAgJ0RlZmF1bHQgRmxvdyc6ICfpu5jorqTmtYHlkJEnLFxyXG4gICAgJ1NlcXVlbmNlIEZsb3cnOiAn6aG65bqP5rWB5ZCRJyxcclxuICAgICdDb25kaXRpb25hbCBGbG93JzogJ+adoeS7tua1geWQkScsXHJcblxyXG4gICAgLy8gRXJyb3JzXHJcbiAgICAnbm8gcGFyZW50IGZvciB7ZWxlbWVudH0gaW4ge3BhcmVudH0nOiAn5Zyoe3BhcmVudH3kuK3nmoR7ZWxlbWVudH3msqHmnInniLblhYPntKAnLFxyXG4gICAgJ25vIHNoYXBlIHR5cGUgc3BlY2lmaWVkJzogJ+ayoeacieaMh+WumueahOW9oueKtuexu+WeiycsXHJcbiAgICAnZmxvdyBlbGVtZW50cyBtdXN0IGJlIGNoaWxkcmVuIG9mIHBvb2xzL3BhcnRpY2lwYW50cyc6ICfmtYHliqjlhYPntKDlv4XpobvmmK/muLjms7PmsaAv5Y+C5LiO6ICFJyxcclxuICAgICdvdXQgb2YgYm91bmRzIHJlbGVhc2UnOiAn6Leo55WM55WM6YeK5pS+JyxcclxuICAgICdtb3JlIHRoYW4ge2NvdW50fSBjaGlsZCBsYW5lcyc6ICfotoXlh7p7Y291bnR95YiG5pSvJyxcclxuICAgICdlbGVtZW50IHJlcXVpcmVkJzogJ+iiq+ivt+axguWFg+e0oCcsXHJcbiAgICAnZGlhZ3JhbSBub3QgcGFydCBvZiBicG1uJzogJ+WbvuWcqGJwbW7kuK0nLFxyXG4gICAgJ25vIGRpYWdyYW0gdG8gZGlzcGxheSc6ICfmsqHmnInlm77ooajmnaXmmL7npLonLFxyXG4gICAgJ25vIHByb2Nlc3Mgb3IgY29sbGFib3JhdGlvbiB0byBkaXNwbGF5JzogJ+ayoeaciea1geeoi+aIluWNj+S9nOaYvuekuicsXHJcbiAgICAnZWxlbWVudCB7ZWxlbWVudH0gcmVmZXJlbmNlZCBieSB7cmVmZXJlbmNlZH0je3Byb3BlcnR5fSBub3QgeWV0IGRyYXduJzpcclxuICAgICAgJ+WFg+e0oHtlbGVtZW50feWcqHtyZWZlcmVuY2Vkfe+8g3twcm9wZXJ0eX3nmoTlvJXnlKjov5jmsqHmnInnu5jliLYnLFxyXG4gICAgJ2FscmVhZHkgcmVuZGVyZWQge2VsZW1lbnR9JzogJ+W3sue7j+aPkOS+m3tlbGVtZW50fScsXHJcbiAgICAnZmFpbGVkIHRvIGltcG9ydCB7ZWxlbWVudH0nOiAn5YWD57Sg5a+85YWl5aSx6LSle2VsZW1lbnR9JyxcclxuICAgICdJRCBtdXN0IG5vdCBiZSBlbXB0eS4nOiAnSUTkuI3og73kuLrnqbrvvIEnLFxyXG4gICAgJ0lEIG11c3QgYmUgYSB2YWxpZCBRTmFtZS4nOiAn5peg5pWI55qESUTovpPlhaXvvIEnLFxyXG5cclxuICAgIC8vIG1lc3NhZ2VcclxuICAgICdUaGlzIG1hcHMgdG8gdGhlIHByb2Nlc3MgZGVmaW5pdGlvbiBrZXkuJzogJ+aYoOWwhOa1geeoi+WumuS5ieeahEtleeOAgicsXHJcbiAgICAnVGhpcyBtYXBzIHRvIHRoZSB0YXNrIGRlZmluaXRpb24ga2V5Lic6ICfmmKDlsITku7vliqHlrprkuYnnmoRLZXnjgIInLFxyXG4gICAgJ1NwZWNpZnkgbW9yZSB0aGFuIG9uZSBncm91cCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0Lic6ICflpJrkuo7kuIDkuKrnu4Tml7bkuLrpgJflj7fliIbpmpTnmoTliJfooajjgIInLFxyXG4gICAgJ1NwZWNpZnkgbW9yZSB0aGFuIG9uZSB1c2VyIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QuJzogJ+WkmuS6juS4gOS4queUqOaIt+aXtuS4uumAl+WPt+WIhumalOeahOWIl+ihqOOAgicsXHJcbiAgICAnTXVzdCBwcm92aWRlIGVpdGhlciBsb29wIGNhcmRpbmFsaXR5IG9yIGNvbGxlY3Rpb24nOiAn5b+F6aG75o+Q5L6b5b6q546v5Z+65pWw5oiW6ZuG5ZCIJyxcclxuICAgICdBdmFpbGFibGUgcHJvY2VzcyB2YXJpYWJsZXMsIGlkZW50aWZpZWQgaW4gdGhlIGRpYWdyYW0uJzogJ+WPr+eUqOeahOi/h+eoi+WPmOmHj++8jOWmguWbvuS4reaJgOekuuOAgicsXHJcbiAgICAnTm8gdmFyaWFibGVzIGZvdW5kLic6ICfmnKrmib7liLDlj5jph4/jgIInLFxyXG5cclxuICAgICdHZW5lcmFsJzogJ+WfuuacrOWxnuaApycsXHJcbiAgICAnRG9jdW1lbnRhdGlvbic6ICflpIfms6gnLFxyXG4gICAgJ0VsZW1lbnQgZG9jdW1lbnRhdGlvbic6ICflhYPntKDlpIfms6gnLFxyXG4gICAgJ0V4ZWN1dGFibGUnOiAn5Y+v5omn6KGMJyxcclxuICAgICdQcm9jZXNzIERvY3VtZW50YXRpb24nOiAn6L+H56iL6K+05piOJyxcclxuICAgICcnOiAn5pegJyxcclxuICAgICdMaXN0ZW5lcnMnOiAn55uR5ZCs5ZmoJyxcclxuICAgICdFeGVjdXRpb24gTGlzdGVuZXInOiAn5omp5bGV55uR5ZCs5ZmoJyxcclxuICAgICdFeHRlbnNpb25zJzogJ+aJqeWxlScsXHJcbiAgICAnUHJvcGVydGllcyc6ICflsZ7mgKcnLFxyXG4gICAgJ0FkZCBQcm9wZXJ0eSc6ICfmt7vliqDlsZ7mgKcnLFxyXG4gICAgJ1Byb2Nlc3MgSWQnOiAn5rWB56iL5qCH6K+GJyxcclxuICAgICdQcm9jZXNzIE5hbWUnOiAn5rWB56iL5ZCN56ewJyxcclxuICAgICdQYXJ0aWNpcGFudCBJZCc6ICflj4LkuI7ogIXmoIfor4YnLFxyXG4gICAgJ1BhcnRpY2lwYW50IE5hbWUnOiAn5Y+C5LiO6ICF5ZCN56ewJyxcclxuICAgICdOYW1lJzogJ+WQjeensCcsXHJcbiAgICAnSWQnOiAn5qCH6K+GJyxcclxuICAgICdJRCc6ICfmoIfor4YnLFxyXG4gICAgJ1ZhbHVlJzogJ+WAvCcsXHJcbiAgICAnVmVyc2lvbiBUYWcnOiAn54mI5pys5qCH6K6wJyxcclxuICAgICdFeHRlcm5hbCBUYXNrIENvbmZpZ3VyYXRpb24nOiAn5aSW6YOo5Lu75Yqh6YWN572uJyxcclxuICAgICdUYXNrIFByaW9yaXR5JzogJ+S7u+WKoeS8mOWFiOe6pycsXHJcbiAgICAnSm9iIENvbmZpZ3VyYXRpb24nOiAn5L2c5Lia6YWN572uJyxcclxuICAgICdKb2IgUHJpb3JpdHknOiAn5L2c5Lia5LyY5YWI57qnJyxcclxuICAgICdIaXN0b3J5IENvbmZpZ3VyYXRpb24nOiAn5Y6G5Y+y6YWN572uJyxcclxuICAgICdIaXN0b3J5IFRpbWUgVG8gTGl2ZSc6ICfljoblj7LnlJ/lrZjml7bpl7QnLFxyXG4gICAgJ0RldGFpbHMnOiAn6K+m5oOFJyxcclxuICAgICdJbml0aWF0b3InOiAn5Yid5aeL5YyWJyxcclxuICAgICdBc3luY2hyb25vdXMgQ29udGludWF0aW9ucyc6ICflvILmraXov57nu60nLFxyXG4gICAgJ0FzeW5jaHJvbm91cyBCZWZvcmUnOiAn5byC5q2l5LmL5YmNJyxcclxuICAgICdBc3luY2hyb25vdXMgQWZ0ZXInOiAn5byC5q2l5LmL5ZCOJyxcclxuICAgICdGb3Jtcyc6ICfooajljZUnLFxyXG4gICAgJ0Zvcm0gS2V5JzogJ+ihqOWNleWQjScsXHJcbiAgICAnRm9ybSBGaWVsZHMnOiAn6KGo5Y2V5a2X5q61JyxcclxuICAgICdGb3JtIEJ1dHRvbnMnOiAn6KGo5Y2V5oyJ6ZKuJyxcclxuICAgICdGb3JtIEZpZWxkJzogJ+ihqOWNleWtl+autScsXHJcbiAgICAnRm9ybSBCdXR0b24nOiAn6KGo5Y2V5oyJ6ZKuJyxcclxuICAgICdCdXR0b24gTmFtZSc6ICfmjInpkq7lkI3np7AnLFxyXG4gICAgJ0J1c2luZXNzIEtleSc6ICfkuJrliqHplK4nLFxyXG4gICAgJ1R5cGUnOiAn57G75Z6LJyxcclxuICAgICdMYWJlbCc6ICfmoIfnrb4nLFxyXG4gICAgJ0RlZmF1bHQgVmFsdWUnOiAn6buY6K6k5YC8JyxcclxuICAgICdWYWxpZGF0aW9uJzogJ+agoemqjCcsXHJcbiAgICAnQWRkIENvbnN0cmFpbnQnOiAn5re75Yqg57qm5p2fJyxcclxuICAgICdDb25maWcnOiAn6YWN572uJyxcclxuICAgICdNdXN0IHByb3ZpZGUgYSB2YWx1ZSc6ICflv4Xpobvmj5DkvpvkuIDkuKrlgLwnLFxyXG4gICAgJ0V2ZW50IFR5cGUnOiAn5LqL5Lu257G75Z6LJyxcclxuICAgICdMaXN0ZW5lciBUeXBlJzogJ+ebkeWQrOWZqOexu+WeiycsXHJcbiAgICAnSmF2YSBDbGFzcyc6ICdKYXZhIOexuycsXHJcbiAgICAnRmllbGQgSW5qZWN0aW9uJzogJ+Wtl+auteazqOWFpScsXHJcbiAgICAnRmllbGRzJzogJ+Wtl+autScsXHJcbiAgICAnQ29uZGl0aW9uIFR5cGUnOiAn5p2h5Lu257G75Z6LJyxcclxuICAgICdTY3JpcHQgRm9ybWF0JzogJ+iEmuacrOagvOW8jycsXHJcbiAgICAnU2NyaXB0IFR5cGUnOiAn6ISa5pys57G75Z6LJyxcclxuICAgICdJbmxpbmUgU2NyaXB0JzogJ+WGheiBlOiEmuacrCcsXHJcbiAgICAnRXh0ZXJuYWwgUmVzb3VyY2UnOiAn5aSW6YOo6LWE5rqQJyxcclxuICAgICdFeHByZXNzaW9uJzogJ+ihqOi+vuW8jycsXHJcbiAgICAnRGVsZWdhdGUgRXhwcmVzc2lvbic6ICflp5TmiZjooajovr7lvI8nLFxyXG4gICAgJ1NjcmlwdCc6ICfohJrmnKwnLFxyXG4gICAgJ1BhcmFtZXRlciBtdXN0IGhhdmUgYSBuYW1lJzogJ+WPguaVsOW/hemhu+acieS4gOS4quWQjeensCcsXHJcbiAgICAnU3RyaW5nJzogJ+Wtl+espuS4sicsXHJcbiAgICAnSW1wbGVtZW50YXRpb24nOiAn5a6e546wJyxcclxuICAgICdFeHRlcm5hbCc6ICflpJbpg6gnLFxyXG4gICAgJ0Nvbm5lY3Rvcic6ICfov57mjqXlmagnLFxyXG4gICAgJ011c3QgY29uZmlndXJlIENvbm5lY3Rvcic6ICflv4XpobvphY3nva7ov57mjqXlmagnLFxyXG4gICAgJ0Nvbm5lY3RvciBJZCc6ICfov57mjqXlmahJRCcsXHJcbiAgICAnSW5wdXQvT3V0cHV0JzogJ+i+k+WFpS/ovpPlh7onLFxyXG4gICAgJ0lucHV0IFBhcmFtZXRlcnMnOiAn6L6T5YWl5Y+C5pWwJyxcclxuICAgICdJbnB1dCBQYXJhbWV0ZXInOiAn6L6T5YWl5Y+C5pWwJyxcclxuICAgICdPdXRwdXQgUGFyYW1ldGVycyc6ICfovpPlh7rlj4LmlbAnLFxyXG4gICAgJ091dHB1dCBQYXJhbWV0ZXInOiAn6L6T5Ye65Y+C5pWwJyxcclxuICAgICdUZXh0JzogJ+aWh+acrCcsXHJcbiAgICAnTGlzdCc6ICfliJfooagnLFxyXG4gICAgJ0FkZCBFbnRyeSc6ICflop7liqDmnaHnm64nLFxyXG4gICAgJ0ZpZWxkIEluamVjdGlvbnMnOiAn5a2X5q615rOo5YWlJyxcclxuICAgICdUZXh0QW5ub3RhdGlvbic6ICfmlofmnKzms6jph4onLFxyXG4gICAgJ1ZhcmlhYmxlcyc6ICflj5jph48nLFxyXG4gICAgJ0luIE1hcHBpbmcnOiAn6L6T5YWl5pig5bCEJyxcclxuICAgICdPdXQgTWFwcGluZyc6ICfovpPlh7rmmKDlsIQnLFxyXG4gICAgJ1RhcmdldCc6ICfnm67moIcnLFxyXG4gICAgJ1NvdXJjZSc6ICfmnaXmupAnLFxyXG4gICAgJ0xvY2FsJzogJ+acrOWcsCcsXHJcbiAgICAnQ2FuZGlkYXRlIFN0YXJ0ZXIgQ29uZmlndXJhdGlvbic6ICflgJnpgInkurrotbfliqjlmajphY3nva4nLFxyXG4gICAgJ0NhbmRpZGF0ZSBTdGFydGVyIEdyb3Vwcyc6ICflgJnpgInkurrotbfliqjlmajnu4QnLFxyXG4gICAgJ0NhbmRpZGF0ZSBTdGFydGVyIFVzZXJzJzogJ+WAmemAieS6uui1t+WKqOWZqOeUqOaItycsXHJcbiAgICAnQ29uZmlndXJlIENvbm5lY3Rvcic6ICfphY3nva7ov57mjqXlmagnLFxyXG4gICAgJ0Fzc2lnbmVlIFR5cGUnOiAn5Y+X55CG5Lq657G75Z6LJyxcclxuICAgICdBc3NpZ25lZSc6ICflj5fnkIbkuronLFxyXG4gICAgJ0R5bmFtaWMnOiAn5Yqo5oCBJyxcclxuICAgICdTdGF0aWMnOiAn6Z2Z5oCBJyxcclxuICAgICdVc2VyJzogJ+eUqOaItycsXHJcbiAgICAnUm9sZSc6ICfop5LoibInLFxyXG4gICAgJ0NhbmRpZGF0ZSBVc2Vycyc6ICflgJnpgInnlKjmiLcnLFxyXG4gICAgJ0NhbmRpZGF0ZSBHcm91cHMnOiAn5YCZ6YCJ57uEJyxcclxuICAgICdEdWUgRGF0ZSc6ICfliLDmnJ8nLFxyXG4gICAgJ0ZvbGxvdyBVcCBEYXRlJzogJ+i3n+i4quaXpeacnycsXHJcbiAgICAnUHJpb3JpdHknOiAn5LyY5YWI57qnJyxcclxuICAgICdUaGUgZHVlIGRhdGUgYXMgYW4gRUwgZXhwcmVzc2lvbiAoZS5nLiAke3NvbWVEYXRlfSBvciBhbiBJU08gZGF0ZSAoZS5nLiAyMDE1LTA2LTI2VDA5OjU0OjAwKSc6XHJcbiAgICAgICflj6/ku6Xkvb/nlKhFTOihqOi+vuW8j++8jO+8iOS+i+Wmgu+8miR7c29tZURhdGV9IOaIluiAhUlTT+aXpeacn++8iOS+i+Wmgu+8mjIwMTUtMDYtMjZUMDk6NTQ6MDDvvInvvIknLFxyXG4gICAgJ1RoZSBmb2xsb3cgdXAgZGF0ZSBhcyBhbiBFTCBleHByZXNzaW9uIChlLmcuICR7c29tZURhdGV9IG9yIGFuIElTTyBkYXRlIChlLmcuIDIwMTUtMDYtMjZUMDk6NTQ6MDApJzpcclxuICAgICAgJ+WPr+S7peS9v+eUqEVM6KGo6L6+5byP77yM77yI5L6L5aaC77yaJHtzb21lRGF0ZX0g5oiW6ICFSVNP5pel5pyf77yI5L6L5aaC77yaMjAxNS0wNi0yNlQwOTo1NDowMO+8ie+8iScsXHJcblxyXG4gICAgJ0NyZWF0ZSBUYXNrJzogJ+WIm+W7uuS7u+WKoScsXHJcbiAgICAnQ3JlYXRlIERhdGFPYmplY3RSZWZlcmVuY2UnOiAn5Yib5bu65pWw5o2u5a+56LGh5byV55SoJyxcclxuICAgICdDcmVhdGUgRGF0YVN0b3JlUmVmZXJlbmNlJzogJ+WIm+W7uuaVsOaNruWtmOWCqOW8leeUqCcsXHJcbiAgICAnQ3JlYXRlIEdyb3VwJzogJ+WIm+W7uuWIhue7hCcsXHJcbiAgICAnQ2F0ZWdvcnkgVmFsdWUnOiAn57G75Yir5YC8JyxcclxuXHJcbiAgICAvL2N1c3RvbVxyXG4gICAgJ0NyZWF0ZSBDYWxsQWN0aXZpdHknOiAn5Yib5bu66LCD55So5Lu75YqhJyxcclxuICAgICdBcHBlbmQgR2F0ZXdheSc6ICfov73liqDnvZHlhbPoioLngrknLFxyXG4gICAgJ0FwcGVuZCBJbnRlcm1lZGlhdGUvQm91bmRhcnkgRXZlbnQnOiAn6L+95Yqg5Lit6Ze0L+i+ueeVjOS6i+S7ticsXHJcbiAgICAnU3RhcnRFdmVudCc6ICflvIDlp4voioLngrknLFxyXG4gICAgJ0VuZEV2ZW50JzogJ+e7k+adn+iKgueCuScsXHJcbiAgICAnRGF0YU9iamVjdFJlZmVyZW5jZSc6ICfmlbDmja7lr7nosaHlvJXnlKgnLFxyXG4gICAgJ0RhdGFTdG9yZVJlZmVyZW5jZSc6ICfmlbDmja7lrZjlgqjlvJXnlKgnLFxyXG4gICAgJ0VsZW1lbnQgbXVzdCBoYXZlIGFuIHVuaXF1ZSBpZC4nOiAn6IqC54K55YWD57Sg5b+F6aG755So5LqO5ZSv5LiA57yW5Y+3JyxcclxuICAgICdDcmVhdGUgRXhjbHVzaXZlR2F0ZXdheSc6ICfliJvlu7rmjpLku5bnvZHlhbMnLFxyXG4gICAgJ0NyZWF0ZSBQb29sL1BhcnRpY2lwYW50JzogJ+WIm+W7uuazs+mBk+aIluWPguS4juiAhScsXHJcbiAgICAnQXBwZW5kIEV4Y2x1c2l2ZUdhdGV3YXknOiAn6L+95Yqg5o6S5LuW572R5YWzJyxcclxuICAgICdBcHBlbmQgVGFzayc6ICfov73liqDku7vliqEnLFxyXG4gICAgJ0FwcGVuZCBVc2VyVGFzayc6ICfov73liqDnlKjmiLfku7vliqEnLFxyXG4gICAgJ0FwcGVuZCBTZXF1ZW5jZSc6ICfov73liqDov57nur8nLFxyXG4gICAgJ0FwcGVuZCBFbmRFdmVudCc6ICfov73liqDnu5PmnZ/oioLngrknLFxyXG4gICAgJ1VzZXJUYXNrJzogJ+eUqOaIt+S7u+WKoScsXHJcbiAgICAnRXhjbHVzaXZlR2F0ZXdheSc6ICfmnaHku7YnLCAvL+aOkuS7lue9keWFs1xyXG4gICAgJ0VsZW1lbnQgaXMgbm90IHNldCBmaW5kVXNlclR5cGUnOiAn5ZGY5bel6IqC54K55pyq6K6+572u6IqC54K55Lq65ZGYJyxcclxuICAgICdUb2tlbiBTaW11bGF0aW9uICc6ICfmtYHnqIvmqKHmi58nLFxyXG4gICAgJ1Rhc2tsaXN0IENvbmZpZ3VyYXRpb24nOiAn5Lu75Yqh5YiX6KGo6YWN572uJyxcclxuICAgICdTdGFydGFibGUnOiAn5Y+v5ZCv5YqoJyxcclxuICAgICdFbGVtZW50IERvY3VtZW50YXRpb24nOiAn5YWD57Sg5o+P6L+wJyxcclxuXHJcbiAgICAnTXVsdGkgSW5zdGFuY2UnOiAn5aSa5a6e5L6LJyxcclxuICAgICdMb29wIENhcmRpbmFsaXR5JzogJ+W+queOr+WfuuaVsCcsXHJcbiAgICAnQ29sbGVjdGlvbic6ICfpm4blkIgnLFxyXG4gICAgJ0VsZW1lbnQgVmFyaWFibGUnOiAn5YWD57Sg5Y+Y6YePJyxcclxuICAgICdDb21wbGV0aW9uIENvbmRpdGlvbic6ICflrozmiJDmnaHku7YnLFxyXG4gICAgJ011bHRpIEluc3RhbmNlIEFzeW5jaHJvbm91cyBCZWZvcmUnOiAn5aSa5a6e5L6L5byC5q2l5LmL5YmNJyxcclxuICAgICdNdWx0aSBJbnN0YW5jZSBBc3luY2hyb25vdXMgQWZ0ZXInOiAn5aSa5a6e5L6L5byC5q2l5LmL5ZCOJyxcclxuICAgICdNdWx0aSBJbnN0YW5jZSBFeGNsdXNpdmUnOiAn5aSa5a6e5L6L5o6S5LuWJyxcclxuICAgICdNdWx0aSBJbnN0YW5jZSBSZXRyeSBUaW1lIEN5Y2xlJzogJ+WkmuWunuS+i+mHjeivleaXtumXtCcsXHJcbiAgICAqL1xyXG59O1xyXG4iXX0=
300
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvY2FtdW5kYS1icG1uLWVkaXRvci9jdXN0b20vdHJhbnNsYXRlL3RyYW5zbGF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBRXJCO0lBQ0YsTUFBTTtJQUNOLHdCQUF3QixFQUFFLFFBQVE7SUFDbEMseUJBQXlCLEVBQUUsUUFBUTtJQUNuQyx1Q0FBdUMsRUFBRSxVQUFVO0lBQ25ELGtDQUFrQyxFQUFFLFVBQVU7SUFDOUMsbUJBQW1CLEVBQUUsUUFBUTtJQUM3QixpQkFBaUIsRUFBRSxRQUFRO0lBQzNCLGlCQUFpQixFQUFFLFFBQVE7SUFDM0Isb0JBQW9CLEVBQUUsUUFBUTtJQUM5QixnQkFBZ0IsRUFBRSxRQUFRO0lBQzFCLEtBQUs7SUFDTCxpQkFBaUIsRUFBRSxRQUFRO0lBQzNCLGlCQUFpQixFQUFFLFFBQVE7SUFDM0Isb0JBQW9CLEVBQUUsUUFBUTtJQUM5QixnQkFBZ0IsRUFBRSxRQUFRO0lBQzFCLG1EQUFtRCxFQUFFLGVBQWU7SUFDcEUsUUFBUSxFQUFFLElBQUk7SUFDZCxXQUFXLEVBQUUsTUFBTTtJQUNuQixhQUFhLEVBQUUsUUFBUTtJQUN2QixtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLGtCQUFrQixFQUFFLE1BQU07SUFDMUIsY0FBYyxFQUFFLE1BQU07SUFDdEIsZUFBZSxFQUFFLE1BQU07SUFDdkIsY0FBYyxFQUFFLE9BQU87SUFDdkIsZUFBZSxFQUFFLE9BQU87SUFDeEIsS0FBSztJQUNMLFNBQVMsRUFBRSxNQUFNO0lBQ2pCLE1BQU0sRUFBRSxJQUFJO0lBQ1osa0JBQWtCLEVBQUUsTUFBTTtJQUMxQixxQkFBcUIsRUFBRSxRQUFRO0lBQy9CLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLGNBQWMsRUFBRSxNQUFNO0lBQ3RCLGFBQWEsRUFBRSxNQUFNO0lBR3JCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBc1FJO0NBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCB0cmFuc2xhdGlvbnM6IHtcclxuICBba2V5OiBzdHJpbmddOiBzdHJpbmdcclxufSA9IHtcclxuICAvLyDosIPoibLmnb9cclxuICAnQWN0aXZhdGUgdGhlIGhhbmQgdG9vbCc6ICfmv4DmtLvmi5bmi73lt6XlhbcnLFxyXG4gICdBY3RpdmF0ZSB0aGUgbGFzc28gdG9vbCc6ICfmv4DmtLvmoYbpgInlt6XlhbcnLFxyXG4gICdBY3RpdmF0ZSB0aGUgY3JlYXRlL3JlbW92ZSBzcGFjZSB0b29sJzogJ+a/gOa0u+epuumXtOenu+WKqOW3peWFtycsXHJcbiAgJ0FjdGl2YXRlIHRoZSBnbG9iYWwgY29ubmVjdCB0b29sJzogJ+a/gOa0u+WFqOWxgOi/nuaOpeW3peWFtycsXHJcbiAgJ0NyZWF0ZSBTdGFydEV2ZW50JzogJ+WIm+W7uuW8gOWni+iKgueCuScsXHJcbiAgJ0NyZWF0ZSBFbmRFdmVudCc6ICfliJvlu7rnu5PmnZ/oioLngrknLFxyXG4gICdDcmVhdGUgVXNlclRhc2snOiAn5Yib5bu655So5oi35Lu75YqhJyxcclxuICAnQ3JlYXRlIFNlcnZpY2VUYXNrJzogJ+WIm+W7uuacjeWKoeS7u+WKoScsXHJcbiAgJ0NyZWF0ZSBHYXRld2F5JzogJ+WIm+W7uue9keWFs+iKgueCuScsXHJcbiAgLy8g6Z2i5p2/XHJcbiAgJ0FwcGVuZCBFbmRFdmVudCc6ICfov73liqDnu5PmnZ/oioLngrknLFxyXG4gICdBcHBlbmQgVXNlclRhc2snOiAn6L+95Yqg55So5oi35Lu75YqhJyxcclxuICAnQXBwZW5kIFNlcnZpY2VUYXNrJzogJ+i/veWKoOacjeWKoeS7u+WKoScsXHJcbiAgJ0FwcGVuZCBHYXRld2F5JzogJ+i/veWKoOe9keWFs+iKgueCuScsXHJcbiAgJ0Nvbm5lY3QgdXNpbmcgU2VxdWVuY2UvTWVzc2FnZUZsb3cgb3IgQXNzb2NpYXRpb24nOiAn5L2/55So5bqP5YiXL+a2iOaBr+a1geaIluWFs+iBlOi/nuaOpScsXHJcbiAgJ1JlbW92ZSc6ICfliKDpmaQnLFxyXG4gICdTZXQgQ29sb3InOiAn6K6+572u6aKc6ImyJyxcclxuICAnQ2hhbmdlIHR5cGUnOiAn5pS55Y+Y6IqC54K557G75Z6LJyxcclxuICAnRXhjbHVzaXZlIEdhdGV3YXknOiAn5LqS5pal572R5YWzJyxcclxuICAnUGFyYWxsZWwgR2F0ZXdheSc6ICflubbooYznvZHlhbMnLFxyXG4gICdEZWZhdWx0IEZsb3cnOiAn6buY6K6k5rWB5ZCRJyxcclxuICAnU2VxdWVuY2UgRmxvdyc6ICfpobrluo/mtYHlkJEnLFxyXG4gICdPcGVuIG1pbmltYXAnOiAn5omT5byA57yp55Wl5Zu+JyxcclxuICAnQ2xvc2UgbWluaW1hcCc6ICflhbPpl63nvKnnlaXlm74nLFxyXG4gIC8vIOmFjee9rlxyXG4gICdHZW5lcmFsJzogJ+WPguaVsOmFjee9ricsXHJcbiAgJ05hbWUnOiAn5ZCN56ewJyxcclxuICAnVGFzayBkZXNjcmlwdGlvbic6ICfku7vliqHmj4/ov7AnLFxyXG4gICdTZXQgYXNzaWdubWVudCBydWxlJzogJ+iuvue9rueUqOaIt+inhOWImScsXHJcbiAgJ2R5bmFtaWMgdXNlcic6ICfliqjmgIHnlKjmiLcnLFxyXG4gICdzdGF0aWMgdXNlcic6ICfpnZnmgIHnlKjmiLcnLFxyXG4gICdkeW5hbWljIHJvbGUnOiAn5Yqo5oCB6KeS6ImyJyxcclxuICAnc3RhdGljIHJvbGUnOiAn6Z2Z5oCB6KeS6ImyJyxcclxuXHJcblxyXG4gIC8qXHJcbiAgICAnQ3JlYXRlIHt0eXBlfSc6ICfliJvlu7p7dHlwZX0nLFxyXG4gICAgJ0NyZWF0ZSBJbnRlcm1lZGlhdGUvQm91bmRhcnkgRXZlbnQnOiAn5Yib5bu65Lit6Ze0L+i+ueeVjOS6i+S7ticsXHJcbiAgICAnQXBwZW5kIHt0eXBlfSc6ICfov73liqB7dHlwZX0nLCAvLyfov73liqB7dHlwZX0nLFxyXG4gICAgJ0FkZCBMYW5lIGFib3ZlJzogJ+a3u+WKoOS4iumdouazs+mBkycsXHJcbiAgICAnRGl2aWRlIGludG8gdHdvIExhbmVzJzogJ+aLhuWIhuS4pOS4quazs+mBkycsXHJcbiAgICAnRGl2aWRlIGludG8gdGhyZWUgTGFuZXMnOiAn5ouG5YiG5LiJ5Liq5rOz6YGTJyxcclxuICAgICdBZGQgTGFuZSBiZWxvdyc6ICfmt7vkuIvpnaLms7PpgZMnLFxyXG4gICAgJ0FwcGVuZCBjb21wZW5zYXRpb24gYWN0aXZpdHknOiAn6L+95Yqg6KGl5YG/5rS75YqoJyxcclxuICAgICdDaGFuZ2UgdHlwZSc6ICfmlLnlj5joioLngrnnsbvlnosnLCAvLyDmlLnlj5jkuovmg4XnsbvlnotcclxuICAgICdDb25uZWN0IHVzaW5nIEFzc29jaWF0aW9uJzogJ+S9v+eUqOWFs+iBlOi/nuaOpScsXHJcbiAgICAnQ29ubmVjdCB1c2luZyBTZXF1ZW5jZS9NZXNzYWdlRmxvdyBvciBBc3NvY2lhdGlvbic6ICfkvb/nlKjluo/liJcv5raI5oGv5rWB5oiW5YWz6IGU6L+e5o6lJyxcclxuICAgICdDb25uZWN0IHVzaW5nIERhdGFJbnB1dEFzc29jaWF0aW9uJzogJ+S9v+eUqOaVsOaNrui+k+WFpeWFs+iBlOi/nuaOpScsXHJcbiAgICAnUmVtb3ZlJzogJ+WIoOmZpCcsXHJcbiAgICAnQ3JlYXRlIGV4cGFuZGVkIFN1YlByb2Nlc3MnOiAn5Yib5bu65omp5bGV5a2Q5rWB56iLJyxcclxuICAgIC8vICdDcmVhdGUgUG9vbC9QYXJ0aWNpcGFudCc6ICfliJvlu7rogIXmiJblj4LkuI7ogIUnLFxyXG4gICAgJ0NyZWF0ZSBJbnRlcm1lZGlhdGVUaHJvd0V2ZW50L0JvdW5kYXJ5RXZlbnQnOiAn5Yib5bu65Lit6Ze05LqL5Lu25oiW6L6555WM5LqL5Lu2JyxcclxuICAgICdQYXJhbGxlbCBNdWx0aSBJbnN0YW5jZSc6ICflubbooYzlpJrlrp7kvosnLFxyXG4gICAgJ1NlcXVlbnRpYWwgTXVsdGkgSW5zdGFuY2UnOiAn6aG65bqP5aSa6YeN5a6e5L6LJyxcclxuICAgICdMb29wJzogJ+W+queOrycsXHJcbiAgICAnQWQtaG9jJzogJ+eJueWIq+aMh+WumicsXHJcbiAgICAnVGFzayc6ICfku7vliqEnLFxyXG4gICAgJ1NlbmQgVGFzayc6ICflj5HpgIHku7vliqEnLCAvLyDlj5HpgIHku7vliqFcclxuICAgICdSZWNlaXZlIFRhc2snOiAn5o6l5pS25Lu75YqhJyxcclxuICAgICdVc2VyIFRhc2snOiAn55So5oi35Lu75YqhJyxcclxuICAgICdNYW51YWwgVGFzayc6ICfmiYvlt6Xku7vliqEnLFxyXG4gICAgJ0J1c2luZXNzIFJ1bGUgVGFzayc6ICfkvZzkuJrop4TliJnku7vliqEnLFxyXG4gICAgJ1NlcnZpY2UgVGFzayc6ICfmnI3liqHku7vliqEnLFxyXG4gICAgJ1NjcmlwdCBUYXNrJzogJ+iEmuacrOS7u+WKoScsXHJcbiAgICAnQ2FsbCBBY3Rpdml0eSc6ICfosIPnlKjmtLvliqgnLFxyXG4gICAgJ1N1YiBQcm9jZXNzIChjb2xsYXBzZWQpJzogJ+WtkOi/h+eoi++8iOaKmOWPoO+8iScsXHJcbiAgICAnU3ViIFByb2Nlc3MgKGV4cGFuZGVkKSc6ICflrZDov4fnqIvvvIjlsZXlvIDvvIknLFxyXG4gICAgJ1N0YXJ0IEV2ZW50JzogJ+W8gOWni+S6i+S7ticsXHJcbiAgICAnSW50ZXJtZWRpYXRlIFRocm93IEV2ZW50JzogJ+aKm+WHuuS6i+S7ticsXHJcbiAgICAnRW5kIEV2ZW50JzogJ+e7k+adn+S6i+S7ticsXHJcbiAgICAnTWVzc2FnZSBTdGFydCBFdmVudCc6ICfmtojmga/lvIDlp4vkuovku7YnLFxyXG4gICAgJ1RpbWVyIFN0YXJ0IEV2ZW50JzogJ+aXtumXtOW8gOWni+S6i+S7ticsXHJcbiAgICAnQ29uZGl0aW9uYWwgU3RhcnQgRXZlbnQnOiAn5p2h5Lu25byA5aeL5LqL5Lu2JyxcclxuICAgICdTaWduYWwgU3RhcnQgRXZlbnQnOiAn5L+h5Y+35byA5aeL5LqL5Lu2JyxcclxuICAgICdFcnJvciBTdGFydCBFdmVudCc6ICfplJnor6/lvIDlp4vkuovku7YnLFxyXG4gICAgJ0VzY2FsYXRpb24gU3RhcnQgRXZlbnQnOiAn5Y2H57qn5byA5aeL5LqL5Lu2JyxcclxuICAgICdDb21wZW5zYXRpb24gU3RhcnQgRXZlbnQnOiAn6KGl5YG/5byA5aeL5LqL5Lu2JyxcclxuICAgICdNZXNzYWdlIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfmtojmga/lvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ1RpbWVyIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICflrprml7blvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ0NvbmRpdGlvbmFsIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfmnaHku7blvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ1NpZ25hbCBTdGFydCBFdmVudCAobm9uLWludGVycnVwdGluZyknOiAn5L+h5Y+35byA5aeL5LqL5Lu277yI5LiN5Lit5pat77yJJyxcclxuICAgICdFc2NhbGF0aW9uIFN0YXJ0IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfljYfnuqflvIDlp4vkuovku7bvvIjkuI3kuK3mlq3vvIknLFxyXG4gICAgJ01lc3NhZ2UgSW50ZXJtZWRpYXRlIENhdGNoIEV2ZW50JzogJ+S/oeaBr+aNleiOt+S6i+S7ticsXHJcbiAgICAnTWVzc2FnZSBJbnRlcm1lZGlhdGUgVGhyb3cgRXZlbnQnOiAn5L+h5oGv5oqb5Ye65LqL5Lu2JyxcclxuICAgICdUaW1lciBJbnRlcm1lZGlhdGUgQ2F0Y2ggRXZlbnQnOiAn5a6a5pe25Zmo5o2V6I635LqL5Lu2JyxcclxuICAgICdFc2NhbGF0aW9uIEludGVybWVkaWF0ZSBUaHJvdyBFdmVudCc6ICfljYfnuqfmipvlh7rkuovku7YnLFxyXG4gICAgJ0NvbmRpdGlvbmFsIEludGVybWVkaWF0ZSBDYXRjaCBFdmVudCc6ICfmnaHku7bmjZXojrfkuovku7YnLFxyXG4gICAgJ0xpbmsgSW50ZXJtZWRpYXRlIENhdGNoIEV2ZW50JzogJ+mTvuaOpeaNleiOt+S6i+S7ticsXHJcbiAgICAnTGluayBJbnRlcm1lZGlhdGUgVGhyb3cgRXZlbnQnOiAn6ZO+5o6l5oqb5Ye65LqL5Lu2JyxcclxuICAgICdDb21wZW5zYXRpb24gSW50ZXJtZWRpYXRlIFRocm93IEV2ZW50JzogJ+ihpeWBv+aKm+WHuuS6i+S7ticsXHJcbiAgICAnU2lnbmFsIEludGVybWVkaWF0ZSBDYXRjaCBFdmVudCc6ICfkv6Hlj7fmjZXojrfkuovku7YnLFxyXG4gICAgJ1NpZ25hbCBJbnRlcm1lZGlhdGUgVGhyb3cgRXZlbnQnOiAn5L+h5Y+35oqb5Ye65LqL5Lu2JyxcclxuICAgICdNZXNzYWdlIEVuZCBFdmVudCc6ICfmtojmga/nu5PmnZ/kuovku7YnLFxyXG4gICAgJ0VzY2FsYXRpb24gRW5kIEV2ZW50JzogJ+WNh+e6p+e7k+adn+S6i+S7ticsXHJcbiAgICAnRXJyb3IgRW5kIEV2ZW50JzogJ+mUmeivr+e7k+adn+S6i+S7ticsXHJcbiAgICAnQ2FuY2VsIEVuZCBFdmVudCc6ICflj5bmtojnu5PmnZ/kuovku7YnLFxyXG4gICAgJ0NvbXBlbnNhdGlvbiBFbmQgRXZlbnQnOiAn6KGl5YG/57uT5p2f5LqL5Lu2JyxcclxuICAgICdTaWduYWwgRW5kIEV2ZW50JzogJ+S/oeWPt+e7k+adn+S6i+S7ticsXHJcbiAgICAnVGVybWluYXRlIEVuZCBFdmVudCc6ICfnu4jmraLnu5PmnZ/kuovku7YnLFxyXG4gICAgJ01lc3NhZ2UgQm91bmRhcnkgRXZlbnQnOiAn5raI5oGv6L6555WM5LqL5Lu2JyxcclxuICAgICdNZXNzYWdlIEJvdW5kYXJ5IEV2ZW50IChub24taW50ZXJydXB0aW5nKSc6ICfmtojmga/ovrnnlYzkuovku7bvvIjpnZ7kuK3mlq3vvIknLFxyXG4gICAgJ1RpbWVyIEJvdW5kYXJ5IEV2ZW50JzogJ+WumuaXtui+ueeVjOS6i+S7ticsXHJcbiAgICAnVGltZXIgQm91bmRhcnkgRXZlbnQgKG5vbi1pbnRlcnJ1cHRpbmcpJzogJ+WumuaXtui+ueeVjOS6i+S7tu+8iOmdnuS4reaWre+8iScsXHJcbiAgICAnRXNjYWxhdGlvbiBCb3VuZGFyeSBFdmVudCc6ICfljYfnuqfovrnnlYzkuovku7YnLFxyXG4gICAgJ0VzY2FsYXRpb24gQm91bmRhcnkgRXZlbnQgKG5vbi1pbnRlcnJ1cHRpbmcpJzogJ+WNh+e6p+i+ueeVjOS6i+S7tu+8iOmdnuS4reaWre+8iScsXHJcbiAgICAnQ29uZGl0aW9uYWwgQm91bmRhcnkgRXZlbnQnOiAn5pyJ5p2h5Lu255qE6L6555WM5LqL5Lu2JyxcclxuICAgICdDb25kaXRpb25hbCBCb3VuZGFyeSBFdmVudCAobm9uLWludGVycnVwdGluZyknOiAn5p2h5Lu26L6555WM5LqL5Lu277yI6Z2e5Lit5pat77yJJyxcclxuICAgICdFcnJvciBCb3VuZGFyeSBFdmVudCc6ICfplJnor6/ovrnnlYzkuovku7YnLFxyXG4gICAgJ0NhbmNlbCBCb3VuZGFyeSBFdmVudCc6ICflj5bmtojovrnnlYzkuovku7YnLFxyXG4gICAgJ1NpZ25hbCBCb3VuZGFyeSBFdmVudCc6ICfkv6Hlj7fovrnnlYzkuovku7YnLFxyXG4gICAgJ1NpZ25hbCBCb3VuZGFyeSBFdmVudCAobm9uLWludGVycnVwdGluZyknOiAn5L+h5Y+36L6555WM5LqL5Lu277yI6Z2e5Lit5pat77yJJyxcclxuICAgICdDb21wZW5zYXRpb24gQm91bmRhcnkgRXZlbnQnOiAn6KGl5YG/6L6555WM5LqL5Lu2JyxcclxuICAgICdFeGNsdXNpdmUnOiAn5o6S5LuWJyxcclxuICAgICdFeGNsdXNpdmUgR2F0ZXdheSc6ICfkupLmlqXnvZHlhbMnLFxyXG4gICAgJ1BhcmFsbGVsIEdhdGV3YXknOiAn5bm26KGM572R5YWzJyxcclxuICAgICdJbmNsdXNpdmUgR2F0ZXdheSc6ICfnm7jlrrnnvZHlhbMnLFxyXG4gICAgJ0NvbXBsZXggR2F0ZXdheSc6ICflpI3mnYLnvZHlhbMnLFxyXG4gICAgJ0V2ZW50IGJhc2VkIEdhdGV3YXknOiAn5LqL5Lu2572R5YWzJyxcclxuICAgICdUcmFuc2FjdGlvbic6ICfkuqTmjaInLFxyXG4gICAgJ1N1YiBQcm9jZXNzJzogJ+WtkOa1geeoiycsXHJcbiAgICAnRXZlbnQgU3ViIFByb2Nlc3MnOiAn5LqL5Lu25a2Q5rWB56iLJyxcclxuICAgICdFbXB0eSBQb29sIChyZW1vdmVzIGNvbnRlbnQpJzogJ+a4heepuuazs+axoO+8iOWIoOmZpOWGheWuue+8iScsXHJcbiAgICAnQ29sbGFwc2VkIFBvb2wnOiAn5ZCI5bm25rOz5rGgJyxcclxuICAgICdFeHBhbmRlZCBQb29sJzogJ+aJqeWxleazs+axoCcsXHJcblxyXG4gICAgLy8gZmxvd1xyXG4gICAgJ0RlZmF1bHQgRmxvdyc6ICfpu5jorqTmtYHlkJEnLFxyXG4gICAgJ1NlcXVlbmNlIEZsb3cnOiAn6aG65bqP5rWB5ZCRJyxcclxuICAgICdDb25kaXRpb25hbCBGbG93JzogJ+adoeS7tua1geWQkScsXHJcblxyXG4gICAgLy8gRXJyb3JzXHJcbiAgICAnbm8gcGFyZW50IGZvciB7ZWxlbWVudH0gaW4ge3BhcmVudH0nOiAn5Zyoe3BhcmVudH3kuK3nmoR7ZWxlbWVudH3msqHmnInniLblhYPntKAnLFxyXG4gICAgJ25vIHNoYXBlIHR5cGUgc3BlY2lmaWVkJzogJ+ayoeacieaMh+WumueahOW9oueKtuexu+WeiycsXHJcbiAgICAnZmxvdyBlbGVtZW50cyBtdXN0IGJlIGNoaWxkcmVuIG9mIHBvb2xzL3BhcnRpY2lwYW50cyc6ICfmtYHliqjlhYPntKDlv4XpobvmmK/muLjms7PmsaAv5Y+C5LiO6ICFJyxcclxuICAgICdvdXQgb2YgYm91bmRzIHJlbGVhc2UnOiAn6Leo55WM55WM6YeK5pS+JyxcclxuICAgICdtb3JlIHRoYW4ge2NvdW50fSBjaGlsZCBsYW5lcyc6ICfotoXlh7p7Y291bnR95YiG5pSvJyxcclxuICAgICdlbGVtZW50IHJlcXVpcmVkJzogJ+iiq+ivt+axguWFg+e0oCcsXHJcbiAgICAnZGlhZ3JhbSBub3QgcGFydCBvZiBicG1uJzogJ+WbvuWcqGJwbW7kuK0nLFxyXG4gICAgJ25vIGRpYWdyYW0gdG8gZGlzcGxheSc6ICfmsqHmnInlm77ooajmnaXmmL7npLonLFxyXG4gICAgJ25vIHByb2Nlc3Mgb3IgY29sbGFib3JhdGlvbiB0byBkaXNwbGF5JzogJ+ayoeaciea1geeoi+aIluWNj+S9nOaYvuekuicsXHJcbiAgICAnZWxlbWVudCB7ZWxlbWVudH0gcmVmZXJlbmNlZCBieSB7cmVmZXJlbmNlZH0je3Byb3BlcnR5fSBub3QgeWV0IGRyYXduJzpcclxuICAgICAgJ+WFg+e0oHtlbGVtZW50feWcqHtyZWZlcmVuY2Vkfe+8g3twcm9wZXJ0eX3nmoTlvJXnlKjov5jmsqHmnInnu5jliLYnLFxyXG4gICAgJ2FscmVhZHkgcmVuZGVyZWQge2VsZW1lbnR9JzogJ+W3sue7j+aPkOS+m3tlbGVtZW50fScsXHJcbiAgICAnZmFpbGVkIHRvIGltcG9ydCB7ZWxlbWVudH0nOiAn5YWD57Sg5a+85YWl5aSx6LSle2VsZW1lbnR9JyxcclxuICAgICdJRCBtdXN0IG5vdCBiZSBlbXB0eS4nOiAnSUTkuI3og73kuLrnqbrvvIEnLFxyXG4gICAgJ0lEIG11c3QgYmUgYSB2YWxpZCBRTmFtZS4nOiAn5peg5pWI55qESUTovpPlhaXvvIEnLFxyXG5cclxuICAgIC8vIG1lc3NhZ2VcclxuICAgICdUaGlzIG1hcHMgdG8gdGhlIHByb2Nlc3MgZGVmaW5pdGlvbiBrZXkuJzogJ+aYoOWwhOa1geeoi+WumuS5ieeahEtleeOAgicsXHJcbiAgICAnVGhpcyBtYXBzIHRvIHRoZSB0YXNrIGRlZmluaXRpb24ga2V5Lic6ICfmmKDlsITku7vliqHlrprkuYnnmoRLZXnjgIInLFxyXG4gICAgJ1NwZWNpZnkgbW9yZSB0aGFuIG9uZSBncm91cCBhcyBhIGNvbW1hIHNlcGFyYXRlZCBsaXN0Lic6ICflpJrkuo7kuIDkuKrnu4Tml7bkuLrpgJflj7fliIbpmpTnmoTliJfooajjgIInLFxyXG4gICAgJ1NwZWNpZnkgbW9yZSB0aGFuIG9uZSB1c2VyIGFzIGEgY29tbWEgc2VwYXJhdGVkIGxpc3QuJzogJ+WkmuS6juS4gOS4queUqOaIt+aXtuS4uumAl+WPt+WIhumalOeahOWIl+ihqOOAgicsXHJcbiAgICAnTXVzdCBwcm92aWRlIGVpdGhlciBsb29wIGNhcmRpbmFsaXR5IG9yIGNvbGxlY3Rpb24nOiAn5b+F6aG75o+Q5L6b5b6q546v5Z+65pWw5oiW6ZuG5ZCIJyxcclxuICAgICdBdmFpbGFibGUgcHJvY2VzcyB2YXJpYWJsZXMsIGlkZW50aWZpZWQgaW4gdGhlIGRpYWdyYW0uJzogJ+WPr+eUqOeahOi/h+eoi+WPmOmHj++8jOWmguWbvuS4reaJgOekuuOAgicsXHJcbiAgICAnTm8gdmFyaWFibGVzIGZvdW5kLic6ICfmnKrmib7liLDlj5jph4/jgIInLFxyXG5cclxuICAgICdHZW5lcmFsJzogJ+WfuuacrOWxnuaApycsXHJcbiAgICAnRG9jdW1lbnRhdGlvbic6ICflpIfms6gnLFxyXG4gICAgJ0VsZW1lbnQgZG9jdW1lbnRhdGlvbic6ICflhYPntKDlpIfms6gnLFxyXG4gICAgJ0V4ZWN1dGFibGUnOiAn5Y+v5omn6KGMJyxcclxuICAgICdQcm9jZXNzIERvY3VtZW50YXRpb24nOiAn6L+H56iL6K+05piOJyxcclxuICAgICcnOiAn5pegJyxcclxuICAgICdMaXN0ZW5lcnMnOiAn55uR5ZCs5ZmoJyxcclxuICAgICdFeGVjdXRpb24gTGlzdGVuZXInOiAn5omp5bGV55uR5ZCs5ZmoJyxcclxuICAgICdFeHRlbnNpb25zJzogJ+aJqeWxlScsXHJcbiAgICAnUHJvcGVydGllcyc6ICflsZ7mgKcnLFxyXG4gICAgJ0FkZCBQcm9wZXJ0eSc6ICfmt7vliqDlsZ7mgKcnLFxyXG4gICAgJ1Byb2Nlc3MgSWQnOiAn5rWB56iL5qCH6K+GJyxcclxuICAgICdQcm9jZXNzIE5hbWUnOiAn5rWB56iL5ZCN56ewJyxcclxuICAgICdQYXJ0aWNpcGFudCBJZCc6ICflj4LkuI7ogIXmoIfor4YnLFxyXG4gICAgJ1BhcnRpY2lwYW50IE5hbWUnOiAn5Y+C5LiO6ICF5ZCN56ewJyxcclxuICAgICdOYW1lJzogJ+WQjeensCcsXHJcbiAgICAnSWQnOiAn5qCH6K+GJyxcclxuICAgICdJRCc6ICfmoIfor4YnLFxyXG4gICAgJ1ZhbHVlJzogJ+WAvCcsXHJcbiAgICAnVmVyc2lvbiBUYWcnOiAn54mI5pys5qCH6K6wJyxcclxuICAgICdFeHRlcm5hbCBUYXNrIENvbmZpZ3VyYXRpb24nOiAn5aSW6YOo5Lu75Yqh6YWN572uJyxcclxuICAgICdUYXNrIFByaW9yaXR5JzogJ+S7u+WKoeS8mOWFiOe6pycsXHJcbiAgICAnSm9iIENvbmZpZ3VyYXRpb24nOiAn5L2c5Lia6YWN572uJyxcclxuICAgICdKb2IgUHJpb3JpdHknOiAn5L2c5Lia5LyY5YWI57qnJyxcclxuICAgICdIaXN0b3J5IENvbmZpZ3VyYXRpb24nOiAn5Y6G5Y+y6YWN572uJyxcclxuICAgICdIaXN0b3J5IFRpbWUgVG8gTGl2ZSc6ICfljoblj7LnlJ/lrZjml7bpl7QnLFxyXG4gICAgJ0RldGFpbHMnOiAn6K+m5oOFJyxcclxuICAgICdJbml0aWF0b3InOiAn5Yid5aeL5YyWJyxcclxuICAgICdBc3luY2hyb25vdXMgQ29udGludWF0aW9ucyc6ICflvILmraXov57nu60nLFxyXG4gICAgJ0FzeW5jaHJvbm91cyBCZWZvcmUnOiAn5byC5q2l5LmL5YmNJyxcclxuICAgICdBc3luY2hyb25vdXMgQWZ0ZXInOiAn5byC5q2l5LmL5ZCOJyxcclxuICAgICdGb3Jtcyc6ICfooajljZUnLFxyXG4gICAgJ0Zvcm0gS2V5JzogJ+ihqOWNleWQjScsXHJcbiAgICAnRm9ybSBGaWVsZHMnOiAn6KGo5Y2V5a2X5q61JyxcclxuICAgICdGb3JtIEJ1dHRvbnMnOiAn6KGo5Y2V5oyJ6ZKuJyxcclxuICAgICdGb3JtIEZpZWxkJzogJ+ihqOWNleWtl+autScsXHJcbiAgICAnRm9ybSBCdXR0b24nOiAn6KGo5Y2V5oyJ6ZKuJyxcclxuICAgICdCdXR0b24gTmFtZSc6ICfmjInpkq7lkI3np7AnLFxyXG4gICAgJ0J1c2luZXNzIEtleSc6ICfkuJrliqHplK4nLFxyXG4gICAgJ1R5cGUnOiAn57G75Z6LJyxcclxuICAgICdMYWJlbCc6ICfmoIfnrb4nLFxyXG4gICAgJ0RlZmF1bHQgVmFsdWUnOiAn6buY6K6k5YC8JyxcclxuICAgICdWYWxpZGF0aW9uJzogJ+agoemqjCcsXHJcbiAgICAnQWRkIENvbnN0cmFpbnQnOiAn5re75Yqg57qm5p2fJyxcclxuICAgICdDb25maWcnOiAn6YWN572uJyxcclxuICAgICdNdXN0IHByb3ZpZGUgYSB2YWx1ZSc6ICflv4Xpobvmj5DkvpvkuIDkuKrlgLwnLFxyXG4gICAgJ0V2ZW50IFR5cGUnOiAn5LqL5Lu257G75Z6LJyxcclxuICAgICdMaXN0ZW5lciBUeXBlJzogJ+ebkeWQrOWZqOexu+WeiycsXHJcbiAgICAnSmF2YSBDbGFzcyc6ICdKYXZhIOexuycsXHJcbiAgICAnRmllbGQgSW5qZWN0aW9uJzogJ+Wtl+auteazqOWFpScsXHJcbiAgICAnRmllbGRzJzogJ+Wtl+autScsXHJcbiAgICAnQ29uZGl0aW9uIFR5cGUnOiAn5p2h5Lu257G75Z6LJyxcclxuICAgICdTY3JpcHQgRm9ybWF0JzogJ+iEmuacrOagvOW8jycsXHJcbiAgICAnU2NyaXB0IFR5cGUnOiAn6ISa5pys57G75Z6LJyxcclxuICAgICdJbmxpbmUgU2NyaXB0JzogJ+WGheiBlOiEmuacrCcsXHJcbiAgICAnRXh0ZXJuYWwgUmVzb3VyY2UnOiAn5aSW6YOo6LWE5rqQJyxcclxuICAgICdFeHByZXNzaW9uJzogJ+ihqOi+vuW8jycsXHJcbiAgICAnRGVsZWdhdGUgRXhwcmVzc2lvbic6ICflp5TmiZjooajovr7lvI8nLFxyXG4gICAgJ1NjcmlwdCc6ICfohJrmnKwnLFxyXG4gICAgJ1BhcmFtZXRlciBtdXN0IGhhdmUgYSBuYW1lJzogJ+WPguaVsOW/hemhu+acieS4gOS4quWQjeensCcsXHJcbiAgICAnU3RyaW5nJzogJ+Wtl+espuS4sicsXHJcbiAgICAnSW1wbGVtZW50YXRpb24nOiAn5a6e546wJyxcclxuICAgICdFeHRlcm5hbCc6ICflpJbpg6gnLFxyXG4gICAgJ0Nvbm5lY3Rvcic6ICfov57mjqXlmagnLFxyXG4gICAgJ011c3QgY29uZmlndXJlIENvbm5lY3Rvcic6ICflv4XpobvphY3nva7ov57mjqXlmagnLFxyXG4gICAgJ0Nvbm5lY3RvciBJZCc6ICfov57mjqXlmahJRCcsXHJcbiAgICAnSW5wdXQvT3V0cHV0JzogJ+i+k+WFpS/ovpPlh7onLFxyXG4gICAgJ0lucHV0IFBhcmFtZXRlcnMnOiAn6L6T5YWl5Y+C5pWwJyxcclxuICAgICdJbnB1dCBQYXJhbWV0ZXInOiAn6L6T5YWl5Y+C5pWwJyxcclxuICAgICdPdXRwdXQgUGFyYW1ldGVycyc6ICfovpPlh7rlj4LmlbAnLFxyXG4gICAgJ091dHB1dCBQYXJhbWV0ZXInOiAn6L6T5Ye65Y+C5pWwJyxcclxuICAgICdUZXh0JzogJ+aWh+acrCcsXHJcbiAgICAnTGlzdCc6ICfliJfooagnLFxyXG4gICAgJ0FkZCBFbnRyeSc6ICflop7liqDmnaHnm64nLFxyXG4gICAgJ0ZpZWxkIEluamVjdGlvbnMnOiAn5a2X5q615rOo5YWlJyxcclxuICAgICdUZXh0QW5ub3RhdGlvbic6ICfmlofmnKzms6jph4onLFxyXG4gICAgJ1ZhcmlhYmxlcyc6ICflj5jph48nLFxyXG4gICAgJ0luIE1hcHBpbmcnOiAn6L6T5YWl5pig5bCEJyxcclxuICAgICdPdXQgTWFwcGluZyc6ICfovpPlh7rmmKDlsIQnLFxyXG4gICAgJ1RhcmdldCc6ICfnm67moIcnLFxyXG4gICAgJ1NvdXJjZSc6ICfmnaXmupAnLFxyXG4gICAgJ0xvY2FsJzogJ+acrOWcsCcsXHJcbiAgICAnQ2FuZGlkYXRlIFN0YXJ0ZXIgQ29uZmlndXJhdGlvbic6ICflgJnpgInkurrotbfliqjlmajphY3nva4nLFxyXG4gICAgJ0NhbmRpZGF0ZSBTdGFydGVyIEdyb3Vwcyc6ICflgJnpgInkurrotbfliqjlmajnu4QnLFxyXG4gICAgJ0NhbmRpZGF0ZSBTdGFydGVyIFVzZXJzJzogJ+WAmemAieS6uui1t+WKqOWZqOeUqOaItycsXHJcbiAgICAnQ29uZmlndXJlIENvbm5lY3Rvcic6ICfphY3nva7ov57mjqXlmagnLFxyXG4gICAgJ0Fzc2lnbmVlIFR5cGUnOiAn5Y+X55CG5Lq657G75Z6LJyxcclxuICAgICdBc3NpZ25lZSc6ICflj5fnkIbkuronLFxyXG4gICAgJ0R5bmFtaWMnOiAn5Yqo5oCBJyxcclxuICAgICdTdGF0aWMnOiAn6Z2Z5oCBJyxcclxuICAgICdVc2VyJzogJ+eUqOaItycsXHJcbiAgICAnUm9sZSc6ICfop5LoibInLFxyXG4gICAgJ0NhbmRpZGF0ZSBVc2Vycyc6ICflgJnpgInnlKjmiLcnLFxyXG4gICAgJ0NhbmRpZGF0ZSBHcm91cHMnOiAn5YCZ6YCJ57uEJyxcclxuICAgICdEdWUgRGF0ZSc6ICfliLDmnJ8nLFxyXG4gICAgJ0ZvbGxvdyBVcCBEYXRlJzogJ+i3n+i4quaXpeacnycsXHJcbiAgICAnUHJpb3JpdHknOiAn5LyY5YWI57qnJyxcclxuICAgICdUaGUgZHVlIGRhdGUgYXMgYW4gRUwgZXhwcmVzc2lvbiAoZS5nLiAke3NvbWVEYXRlfSBvciBhbiBJU08gZGF0ZSAoZS5nLiAyMDE1LTA2LTI2VDA5OjU0OjAwKSc6XHJcbiAgICAgICflj6/ku6Xkvb/nlKhFTOihqOi+vuW8j++8jO+8iOS+i+Wmgu+8miR7c29tZURhdGV9IOaIluiAhUlTT+aXpeacn++8iOS+i+Wmgu+8mjIwMTUtMDYtMjZUMDk6NTQ6MDDvvInvvIknLFxyXG4gICAgJ1RoZSBmb2xsb3cgdXAgZGF0ZSBhcyBhbiBFTCBleHByZXNzaW9uIChlLmcuICR7c29tZURhdGV9IG9yIGFuIElTTyBkYXRlIChlLmcuIDIwMTUtMDYtMjZUMDk6NTQ6MDApJzpcclxuICAgICAgJ+WPr+S7peS9v+eUqEVM6KGo6L6+5byP77yM77yI5L6L5aaC77yaJHtzb21lRGF0ZX0g5oiW6ICFSVNP5pel5pyf77yI5L6L5aaC77yaMjAxNS0wNi0yNlQwOTo1NDowMO+8ie+8iScsXHJcblxyXG4gICAgJ0NyZWF0ZSBUYXNrJzogJ+WIm+W7uuS7u+WKoScsXHJcbiAgICAnQ3JlYXRlIERhdGFPYmplY3RSZWZlcmVuY2UnOiAn5Yib5bu65pWw5o2u5a+56LGh5byV55SoJyxcclxuICAgICdDcmVhdGUgRGF0YVN0b3JlUmVmZXJlbmNlJzogJ+WIm+W7uuaVsOaNruWtmOWCqOW8leeUqCcsXHJcbiAgICAnQ3JlYXRlIEdyb3VwJzogJ+WIm+W7uuWIhue7hCcsXHJcbiAgICAnQ2F0ZWdvcnkgVmFsdWUnOiAn57G75Yir5YC8JyxcclxuXHJcbiAgICAvL2N1c3RvbVxyXG4gICAgJ0NyZWF0ZSBDYWxsQWN0aXZpdHknOiAn5Yib5bu66LCD55So5Lu75YqhJyxcclxuICAgICdBcHBlbmQgR2F0ZXdheSc6ICfov73liqDnvZHlhbPoioLngrknLFxyXG4gICAgJ0FwcGVuZCBJbnRlcm1lZGlhdGUvQm91bmRhcnkgRXZlbnQnOiAn6L+95Yqg5Lit6Ze0L+i+ueeVjOS6i+S7ticsXHJcbiAgICAnU3RhcnRFdmVudCc6ICflvIDlp4voioLngrknLFxyXG4gICAgJ0VuZEV2ZW50JzogJ+e7k+adn+iKgueCuScsXHJcbiAgICAnRGF0YU9iamVjdFJlZmVyZW5jZSc6ICfmlbDmja7lr7nosaHlvJXnlKgnLFxyXG4gICAgJ0RhdGFTdG9yZVJlZmVyZW5jZSc6ICfmlbDmja7lrZjlgqjlvJXnlKgnLFxyXG4gICAgJ0VsZW1lbnQgbXVzdCBoYXZlIGFuIHVuaXF1ZSBpZC4nOiAn6IqC54K55YWD57Sg5b+F6aG755So5LqO5ZSv5LiA57yW5Y+3JyxcclxuICAgICdDcmVhdGUgRXhjbHVzaXZlR2F0ZXdheSc6ICfliJvlu7rmjpLku5bnvZHlhbMnLFxyXG4gICAgJ0NyZWF0ZSBQb29sL1BhcnRpY2lwYW50JzogJ+WIm+W7uuazs+mBk+aIluWPguS4juiAhScsXHJcbiAgICAnQXBwZW5kIEV4Y2x1c2l2ZUdhdGV3YXknOiAn6L+95Yqg5o6S5LuW572R5YWzJyxcclxuICAgICdBcHBlbmQgVGFzayc6ICfov73liqDku7vliqEnLFxyXG4gICAgJ0FwcGVuZCBVc2VyVGFzayc6ICfov73liqDnlKjmiLfku7vliqEnLFxyXG4gICAgJ0FwcGVuZCBTZXF1ZW5jZSc6ICfov73liqDov57nur8nLFxyXG4gICAgJ0FwcGVuZCBFbmRFdmVudCc6ICfov73liqDnu5PmnZ/oioLngrknLFxyXG4gICAgJ1VzZXJUYXNrJzogJ+eUqOaIt+S7u+WKoScsXHJcbiAgICAnRXhjbHVzaXZlR2F0ZXdheSc6ICfmnaHku7YnLCAvL+aOkuS7lue9keWFs1xyXG4gICAgJ0VsZW1lbnQgaXMgbm90IHNldCBmaW5kVXNlclR5cGUnOiAn5ZGY5bel6IqC54K55pyq6K6+572u6IqC54K55Lq65ZGYJyxcclxuICAgICdUb2tlbiBTaW11bGF0aW9uICc6ICfmtYHnqIvmqKHmi58nLFxyXG4gICAgJ1Rhc2tsaXN0IENvbmZpZ3VyYXRpb24nOiAn5Lu75Yqh5YiX6KGo6YWN572uJyxcclxuICAgICdTdGFydGFibGUnOiAn5Y+v5ZCv5YqoJyxcclxuICAgICdFbGVtZW50IERvY3VtZW50YXRpb24nOiAn5YWD57Sg5o+P6L+wJyxcclxuXHJcbiAgICAnTXVsdGkgSW5zdGFuY2UnOiAn5aSa5a6e5L6LJyxcclxuICAgICdMb29wIENhcmRpbmFsaXR5JzogJ+W+queOr+WfuuaVsCcsXHJcbiAgICAnQ29sbGVjdGlvbic6ICfpm4blkIgnLFxyXG4gICAgJ0VsZW1lbnQgVmFyaWFibGUnOiAn5YWD57Sg5Y+Y6YePJyxcclxuICAgICdDb21wbGV0aW9uIENvbmRpdGlvbic6ICflrozmiJDmnaHku7YnLFxyXG4gICAgJ011bHRpIEluc3RhbmNlIEFzeW5jaHJvbm91cyBCZWZvcmUnOiAn5aSa5a6e5L6L5byC5q2l5LmL5YmNJyxcclxuICAgICdNdWx0aSBJbnN0YW5jZSBBc3luY2hyb25vdXMgQWZ0ZXInOiAn5aSa5a6e5L6L5byC5q2l5LmL5ZCOJyxcclxuICAgICdNdWx0aSBJbnN0YW5jZSBFeGNsdXNpdmUnOiAn5aSa5a6e5L6L5o6S5LuWJyxcclxuICAgICdNdWx0aSBJbnN0YW5jZSBSZXRyeSBUaW1lIEN5Y2xlJzogJ+WkmuWunuS+i+mHjeivleaXtumXtCcsXHJcbiAgICAqL1xyXG59O1xyXG4iXX0=
@@ -24,7 +24,7 @@ export class DataDetailComponent {
24
24
  }
25
25
  }
26
26
  DataDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, deps: [{ token: i0.ViewContainerRef }, { token: i1.DataDetailService }], target: i0.ɵɵFactoryTarget.Component });
27
- DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", inputs: { tenant: "tenant", className: "className", oid: "oid", params: "params" }, providers: [DataDetailService], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{section.name}}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\"\n [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DxAccordionComponent, selector: "dx-accordion", inputs: ["accessKey", "activeStateEnabled", "animationDuration", "collapsible", "dataSource", "deferRendering", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "itemTitleTemplate", "keyExpr", "multiple", "noDataText", "repaintChangesOnly", "rtlEnabled", "selectedIndex", "selectedItem", "selectedItemKeys", "selectedItems", "tabIndex", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onItemTitleClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationDurationChange", "collapsibleChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "itemTitleTemplateChange", "keyExprChange", "multipleChange", "noDataTextChange", "repaintChangesOnlyChange", "rtlEnabledChange", "selectedIndexChange", "selectedItemChange", "selectedItemKeysChange", "selectedItemsChange", "tabIndexChange", "visibleChange", "widthChange"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.FormComponent, selector: "rs-form", inputs: ["tenant", "className", "oid", "copyOid", "template", "params", "onlyFrontEnd", "model", "readonly"], outputs: ["submitCallback"] }] });
27
+ DataDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataDetailComponent, selector: "coast-data-detail", inputs: { tenant: "tenant", className: "className", oid: "oid", params: "params" }, providers: [DataDetailService], ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{section.name}}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\"\n [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.DxAccordionComponent, selector: "dx-accordion", inputs: ["accessKey", "activeStateEnabled", "animationDuration", "collapsible", "dataSource", "deferRendering", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "itemHoldTimeout", "items", "itemTemplate", "itemTitleTemplate", "keyExpr", "multiple", "noDataText", "repaintChangesOnly", "rtlEnabled", "selectedIndex", "selectedItem", "selectedItemKeys", "selectedItems", "tabIndex", "visible", "width"], outputs: ["onContentReady", "onDisposing", "onInitialized", "onItemClick", "onItemContextMenu", "onItemHold", "onItemRendered", "onItemTitleClick", "onOptionChanged", "onSelectionChanged", "accessKeyChange", "activeStateEnabledChange", "animationDurationChange", "collapsibleChange", "dataSourceChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "itemHoldTimeoutChange", "itemsChange", "itemTemplateChange", "itemTitleTemplateChange", "keyExprChange", "multipleChange", "noDataTextChange", "repaintChangesOnlyChange", "rtlEnabledChange", "selectedIndexChange", "selectedItemChange", "selectedItemKeysChange", "selectedItemsChange", "tabIndexChange", "visibleChange", "widthChange"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.FormComponent, selector: "rs-form", inputs: ["tenant", "className", "oid", "copyOid", "template", "params", "tabViewContainerRef", "onlyFrontEnd", "model", "readonly"], outputs: ["submitCallback"] }] });
28
28
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataDetailComponent, decorators: [{
29
29
  type: Component,
30
30
  args: [{ selector: 'coast-data-detail', providers: [DataDetailService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\n [visible]=\"loading\">\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\n</dx-load-panel>\n<div *ngIf=\"!loading && sections.length === 0\" class=\"empty\">\n <span>\u60A8\u65E0\u6743\u67E5\u770B\u8BE5\u6570\u636E\u5B9E\u4F8B\u4EFB\u4F55\u4FE1\u606F</span>\n</div>\n<ng-container *ngIf=\"sections.length > 0\">\n <dx-accordion [collapsible]=\"true\" [multiple]=\"true\" [deferRendering]=\"false\" [dataSource]=\"sections\"\n [selectedItems]=\"sections\">\n <div *dxTemplate=\"let section of 'title'\" class=\"section-title\">\n <div class=\"section-title-name\">{{section.name}}</div>\n </div>\n <div *dxTemplate=\"let section of 'item'\">\n <rs-form [tenant]=\"tenant\" [className]=\"className\" [oid]=\"oid\" [template]=\"section.formTemplate\"\n [readonly]=\"true\"></rs-form>\n </div>\n </dx-accordion>\n</ng-container>\n", styles: [":host{flex:1;padding:24px;display:flex;flex-flow:column nowrap}:host div.empty{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div.empty span{text-align:center;-webkit-user-select:none;user-select:none}:host .section-title{border-bottom:1px solid var(--coast-border-color, #dddddd)}:host .section-title .section-title-name{height:24px;font-size:14px;font-weight:700;padding:4px 8px;display:flex;flex-flow:column nowrap;justify-content:center}\n"] }]
@@ -4,19 +4,22 @@ import { DataGridService } from "./data-grid.service";
4
4
  import { MasterDetailTemplateDirective } from "./master-detail-template.directive";
5
5
  import { RowButtonsTemplateDirective } from "./row-buttons-template.directive";
6
6
  import { InstanceLinkTemplateDirective } from "./instance-link-template.directive";
7
+ import { debounceTime } from "rxjs";
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "./data-grid.factory";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "devextreme-angular/core";
11
- import * as i4 from "devextreme-angular/ui/data-grid";
12
- import * as i5 from "devextreme-angular/ui/nested";
13
- import * as i6 from "devextreme-angular/ui/tooltip";
14
- import * as i7 from "./file-cell-template/file-cell-template.component";
15
- import * as i8 from "./user-info-template/user-info-template.component";
16
- import * as i9 from "./unit-info-template/unit-info-template.component";
10
+ import * as i2 from "./data-grid.service";
11
+ import * as i3 from "@angular/common";
12
+ import * as i4 from "devextreme-angular/core";
13
+ import * as i5 from "devextreme-angular/ui/data-grid";
14
+ import * as i6 from "devextreme-angular/ui/nested";
15
+ import * as i7 from "devextreme-angular/ui/tooltip";
16
+ import * as i8 from "./file-cell-template/file-cell-template.component";
17
+ import * as i9 from "./user-info-template/user-info-template.component";
18
+ import * as i10 from "./unit-info-template/unit-info-template.component";
17
19
  export class DataGridComponent {
18
- constructor(factory) {
20
+ constructor(factory, service) {
19
21
  this.factory = factory;
22
+ this.service = service;
20
23
  this.enableMasterDetail = false;
21
24
  this.selectionMode = 'none';
22
25
  this.onDxDataGridCellPrepared = new EventEmitter();
@@ -27,6 +30,9 @@ export class DataGridComponent {
27
30
  }
28
31
  ngOnInit() {
29
32
  this.reload();
33
+ this.service.cellTemplateLoaded$.pipe(debounceTime(200)).subscribe(() => {
34
+ this.dxDataGrid.instance.resize();
35
+ });
30
36
  }
31
37
  reload() {
32
38
  this.columns.length = 0;
@@ -95,12 +101,12 @@ export class DataGridComponent {
95
101
  }
96
102
  }
97
103
  }
98
- DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: i1.DataGridFactory }], target: i0.ɵɵFactoryTarget.Component });
99
- DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", enableMasterDetail: "enableMasterDetail", selectionMode: "selectionMode", customColumnFn: "customColumnFn" }, outputs: { onDxDataGridCellPrepared: "onDxDataGridCellPrepared", onDxDataGridContentReady: "onDxDataGridContentReady", onDxDataGridSelectionChanged: "onDxDataGridSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "instanceLinkTemplate", first: true, predicate: InstanceLinkTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onEditorPreparing)=\"onEditorPreparing($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\n </ng-container>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i5.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i5.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i5.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i5.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i5.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i5.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i5.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i5.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i5.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i5.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i6.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["table", "oid"] }, { kind: "component", type: i8.UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: ["table", "uid"] }, { kind: "component", type: i9.UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "uid"] }] });
104
+ DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: i1.DataGridFactory }, { token: i2.DataGridService }], target: i0.ɵɵFactoryTarget.Component });
105
+ DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", enableMasterDetail: "enableMasterDetail", selectionMode: "selectionMode", customColumnFn: "customColumnFn" }, outputs: { onDxDataGridCellPrepared: "onDxDataGridCellPrepared", onDxDataGridContentReady: "onDxDataGridContentReady", onDxDataGridSelectionChanged: "onDxDataGridSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "instanceLinkTemplate", first: true, predicate: InstanceLinkTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i6.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i7.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i8.FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["table", "oid"] }, { kind: "component", type: i9.UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: ["table", "uid"] }, { kind: "component", type: i10.UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "uid"] }] });
100
106
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, decorators: [{
101
107
  type: Component,
102
- args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onEditorPreparing)=\"onEditorPreparing($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\n </ng-container>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
103
- }], ctorParameters: function () { return [{ type: i1.DataGridFactory }]; }, propDecorators: { tenant: [{
108
+ args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
109
+ }], ctorParameters: function () { return [{ type: i1.DataGridFactory }, { type: i2.DataGridService }]; }, propDecorators: { tenant: [{
104
110
  type: Input
105
111
  }], className: [{
106
112
  type: Input
@@ -133,4 +139,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
133
139
  type: ContentChild,
134
140
  args: [InstanceLinkTemplateDirective]
135
141
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7OztBQVFqRixNQUFNLE9BQU8saUJBQWlCO0lBNkI1QixZQUFvQixPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQW5CNUMsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBRTNCLGtCQUFhLEdBQW1DLE1BQU0sQ0FBQztRQUl2RCw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRW5ELDZCQUF3QixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFbkQsaUNBQTRCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN2RCxlQUFVLEdBQVEsRUFBRSxDQUFDO1FBQ3JCLFlBQU8sR0FBVSxFQUFFLENBQUM7SUFRcEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsTUFBTSxFQUFF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QWhFLFlBQVk7dUJBQUMsNkJBQTZCO2dCQUNBLGtCQUFrQjtzQkFBNUQsWUFBWTt1QkFBQywyQkFBMkI7Z0JBQ0ksb0JBQW9CO3NCQUFoRSxZQUFZO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0R4RGF0YUdyaWRDb21wb25lbnR9IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHtEYXRhR3JpZFNlcnZpY2V9IGZyb20gXCIuL2RhdGEtZ3JpZC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7TWFzdGVyRGV0YWlsVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL21hc3Rlci1kZXRhaWwtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7Um93QnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9yb3ctYnV0dG9ucy10ZW1wbGF0ZS5kaXJlY3RpdmVcIjtcclxuaW1wb3J0IHtEYXRhR3JpZEZhY3Rvcnl9IGZyb20gXCIuL2RhdGEtZ3JpZC5mYWN0b3J5XCI7XHJcbmltcG9ydCB7SW5zdGFuY2VMaW5rVGVtcGxhdGVEaXJlY3RpdmV9IGZyb20gXCIuL2luc3RhbmNlLWxpbmstdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3JzLWRhdGEtZ3JpZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbRGF0YUdyaWRTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YUdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpXHJcbiAgdGVuYW50ITogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgY2xhc3NOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgdmlldz86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGZpbHRlcj86IGFueTtcclxuICBASW5wdXQoKVxyXG4gIGVuYWJsZU1hc3RlckRldGFpbCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0aW9uTW9kZTogJ25vbmUnIHwgJ211bHRpcGxlJyB8ICdzaW5nbGUnID0gJ25vbmUnO1xyXG4gIEBJbnB1dCgpXHJcbiAgY3VzdG9tQ29sdW1uRm4/OiAoY29sdW1uczogYW55W10pID0+IHZvaWQ7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25EeERhdGFHcmlkQ2VsbFByZXBhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25EeERhdGFHcmlkQ29udGVudFJlYWR5ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgb25EeERhdGFHcmlkU2VsZWN0aW9uQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIGRhdGFTb3VyY2U6IGFueSA9IHt9O1xyXG4gIGNvbHVtbnM6IGFueVtdID0gW107XHJcblxyXG4gIEBWaWV3Q2hpbGQoRHhEYXRhR3JpZENvbXBvbmVudCwge3N0YXRpYzogdHJ1ZX0pIGR4RGF0YUdyaWQhOiBEeERhdGFHcmlkQ29tcG9uZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoTWFzdGVyRGV0YWlsVGVtcGxhdGVEaXJlY3RpdmUpIG1hc3RlckRldGFpbFRlbXBsYXRlITogTWFzdGVyRGV0YWlsVGVtcGxhdGVEaXJlY3RpdmU7XHJcbiAgQENvbnRlbnRDaGlsZChSb3dCdXR0b25zVGVtcGxhdGVEaXJlY3RpdmUpIHJvd0J1dHRvbnNUZW1wbGF0ZSE6IFJvd0J1dHRvbnNUZW1wbGF0ZURpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKEluc3RhbmNlTGlua1RlbXBsYXRlRGlyZWN0aXZlKSBpbnN0YW5jZUxpbmtUZW1wbGF0ZSE6IEluc3RhbmNlTGlua1RlbXBsYXRlRGlyZWN0aXZlO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZhY3Rvcnk6IERhdGFHcmlkRmFjdG9yeSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnJlbG9hZCgpO1xyXG4gIH1cclxuXHJcbiAgcmVsb2FkKCkge1xyXG4gICAgdGhpcy5jb2x1bW5zLmxlbmd0aCA9IDA7XHJcbiAgICB0aGlzLmZhY3RvcnkubWFrZURhdGFHcmlkQ29sdW1ucyh0aGlzLnRlbmFudCwgdGhpcy5jbGFzc05hbWUsIHRoaXMudmlldykuc3Vic2NyaWJlKGNvbHVtbnMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jdXN0b21Db2x1bW5Gbikge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tQ29sdW1uRm4oY29sdW1ucyk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5jb2x1bW5zID0gY29sdW1ucztcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5mYWN0b3J5Lm1ha2VEYXRhR3JpZERhdGFTb3VyY2UodGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnZpZXcsIHRoaXMuZmlsdGVyKTtcclxuICB9XHJcblxyXG4gIGNvbnZlcnRNdWx0aXBsZVZhbHVlQ2VsbFRleHQoY2VsbEluZm86IGFueSkge1xyXG4gICAgaWYgKCFjZWxsSW5mby52YWx1ZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjZWxsSW5mby52YWx1ZSkpIHtcclxuICAgICAgaWYgKGNlbGxJbmZvLmNvbHVtbi5sb29rdXApIHtcclxuICAgICAgICByZXR1cm4gY2VsbEluZm8udmFsdWUubWFwKChpdGVtOiBhbnkpID0+IGNlbGxJbmZvLmNvbHVtbi5sb29rdXAuY2FsY3VsYXRlQ2VsbFZhbHVlKGl0ZW0pKS5qb2luKCc8YnIgLz4nKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY2VsbEluZm8udmFsdWUuam9pbignPGJyIC8+Jyk7XHJcbiAgICB9XHJcbiAgICBpZiAoY2VsbEluZm8uY29sdW1uLmxvb2t1cCkge1xyXG4gICAgICByZXR1cm4gY2VsbEluZm8uY29sdW1uLmxvb2t1cC5jYWxjdWxhdGVDZWxsVmFsdWUoY2VsbEluZm8udmFsdWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNlbGxJbmZvLnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0T3JpZ2luYWxWYWx1ZShjZWxsSW5mbzogYW55LCBrZXk6IGFueSkge1xyXG4gICAgY29uc3QgY29uZmlnID0gY2VsbEluZm8uY29sdW1uW2tleV07XHJcbiAgICBpZiAoY29uZmlnKSB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gY2VsbEluZm8uZGF0YVtjb25maWcuZmllbGRdO1xyXG4gICAgICBpZiAodmFsdWUpIHtcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcclxuICAgICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFt2YWx1ZV07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNlbGxJbmZvLmRhdGFba2V5XTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2goY2FsbGJhY2s/OiBhbnkpIHtcclxuICAgIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5yZWZyZXNoKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIGlmIChjYWxsYmFjaykge1xyXG4gICAgICAgIGNhbGxiYWNrKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZHhEYXRhR3JpZC5pbnN0YW5jZS5nZXRTZWxlY3RlZFJvd0tleXMoKTtcclxuICB9XHJcblxyXG4gIG9uQ2VsbFByZXBhcmVkKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uRHhEYXRhR3JpZENlbGxQcmVwYXJlZC5lbWl0KCRldmVudCk7XHJcbiAgfVxyXG5cclxuICBvbkNvbnRlbnRSZWFkeSgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkR4RGF0YUdyaWRDb250ZW50UmVhZHkuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uRHhEYXRhR3JpZFNlbGVjdGlvbkNoYW5nZWQuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25FZGl0b3JQcmVwYXJpbmcoJGV2ZW50OiBhbnkpIHtcclxuICAgIGlmICgkZXZlbnQucGFyZW50VHlwZSA9PT0gJ2ZpbHRlclJvdycgJiYgJGV2ZW50LmVkaXRvck5hbWUgPT09ICdkeFRleHRCb3gnKSB7XHJcbiAgICAgICRldmVudC5lZGl0b3JPcHRpb25zLnZhbHVlQ2hhbmdlRXZlbnQgPSAnYmx1cic7XHJcbiAgICAgICRldmVudC5lZGl0b3JPcHRpb25zLm9uRW50ZXJLZXkgPSAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgZS5jb21wb25lbnQuYmx1cigpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZHgtZGF0YS1ncmlkIFtkYXRhU291cmNlXT1cImRhdGFTb3VyY2VcIlxuICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcbiAgICAgICAgICAgICAgW3N5bmNMb29rdXBGaWx0ZXJWYWx1ZXNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbc2hvd0JvcmRlcnNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW3Jvd0FsdGVybmF0aW9uRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2FsbG93Q29sdW1uUmVzaXppbmddPVwidHJ1ZVwiXG4gICAgICAgICAgICAgIGNvbHVtblJlc2l6aW5nTW9kZT1cIndpZGdldFwiXG4gICAgICAgICAgICAgIGRhdGVTZXJpYWxpemF0aW9uRm9ybWF0PVwieXl5eS9NTS9kZCBISDptbTpzc1wiXG4gICAgICAgICAgICAgIChvbkNlbGxQcmVwYXJlZCk9XCJvbkNlbGxQcmVwYXJlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uRWRpdG9yUHJlcGFyaW5nKT1cIm9uRWRpdG9yUHJlcGFyaW5nKCRldmVudClcIlxuICAgICAgICAgICAgICAob25Db250ZW50UmVhZHkpPVwib25Db250ZW50UmVhZHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChvblNlbGVjdGlvbkNoYW5nZWQpPVwib25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAob25Sb3dFeHBhbmRpbmcpPVwiJGV2ZW50LmNvbXBvbmVudC5jb2xsYXBzZUFsbCgtMSlcIj5cbiAgPGR4by1zb3J0aW5nIG1vZGU9XCJtdWx0aXBsZVwiPjwvZHhvLXNvcnRpbmc+XG4gIDxkeG8tc2VsZWN0aW9uIFttb2RlXT1cInNlbGVjdGlvbk1vZGVcIiBzZWxlY3RBbGxNb2RlPVwicGFnZVwiIHNob3dDaGVja0JveGVzTW9kZT1cImFsd2F5c1wiPjwvZHhvLXNlbGVjdGlvbj5cbiAgPGR4by1oZWFkZXItZmlsdGVyIFt2aXNpYmxlXT1cInRydWVcIj5cbiAgICA8ZHhvLXNlYXJjaCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tc2VhcmNoPlxuICAgIDxkeG8tdGV4dHMgW29rXT1cIifnoa7lrponXCI+PC9keG8tdGV4dHM+XG4gIDwvZHhvLWhlYWRlci1maWx0ZXI+XG4gIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cbiAgPGR4by1yZW1vdGUtb3BlcmF0aW9ucyBbZmlsdGVyaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3J0aW5nXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmddPVwidHJ1ZVwiPlxuICA8L2R4by1yZW1vdGUtb3BlcmF0aW9ucz5cbiAgPGR4by1tYXN0ZXItZGV0YWlsIFtlbmFibGVkXT1cImVuYWJsZU1hc3RlckRldGFpbFwiIHRlbXBsYXRlPVwibWFzdGVyRGV0YWlsVGVtcGxhdGVcIj48L2R4by1tYXN0ZXItZGV0YWlsPlxuICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiMTVcIj48L2R4by1wYWdpbmc+XG4gIDxkeG8tcGFnZXIgW3Zpc2libGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgW3Nob3dJbmZvXT1cInRydWVcIlxuICAgICAgICAgICAgIGluZm9UZXh0PVwi56ysezB96aG177yM5YWxezF96aG177yI5YWxezJ95Liq6aG555uu77yJXCJcbiAgICAgICAgICAgICBbc2hvd1BhZ2VTaXplU2VsZWN0b3JdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgW2FsbG93ZWRQYWdlU2l6ZXNdPVwiWzE1LCAzMCwgNTBdXCJcbiAgPjwvZHhvLXBhZ2VyPlxuICA8ZHhvLXNjcm9sbGluZyBzaG93U2Nyb2xsYmFyPVwiYWx3YXlzXCI+PC9keG8tc2Nyb2xsaW5nPlxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdtYXN0ZXJEZXRhaWxUZW1wbGF0ZSdcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1hc3RlckRldGFpbFRlbXBsYXRlLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBjZWxsSW5mb31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3Jvd0J1dHRvbnNUZW1wbGF0ZSdcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInJvd0J1dHRvbnNUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm99XCI+PC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdpbnN0YW5jZUxpbmtUZW1wbGF0ZSdcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImluc3RhbmNlTGlua1RlbXBsYXRlLnRlbXBsYXRlUmVmXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7JGltcGxpY2l0OiBjZWxsSW5mb31cIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3Jvd0luZGV4VGVtcGxhdGUnXCI+XG4gICAge3tjZWxsSW5mby5yb3dJbmRleCArIDF9fVxuICA8L2Rpdj5cbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAnbXVsdGlwbGVWYWx1ZUNlbGxUZW1wbGF0ZSdcIj5cbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiY29udmVydE11bHRpcGxlVmFsdWVDZWxsVGV4dChjZWxsSW5mbylcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ3RleHRDZWxsVGVtcGxhdGUnXCI+XG4gICAgPGRpdiAjdGV4dERpdiBzdHlsZT1cInRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyBvdmVyZmxvdzogaGlkZGVuOyBjdXJzb3I6IHBvaW50ZXI7XCI+e3tjZWxsSW5mby52YWx1ZX19PC9kaXY+XG4gICAgPGR4LXRvb2x0aXAgW3RhcmdldF09XCJ0ZXh0RGl2XCJcbiAgICAgICAgICAgICAgICBbcG9zaXRpb25dPVwiJ3RvcCdcIlxuICAgICAgICAgICAgICAgIFtzaG93RXZlbnRdPVwiJ2NsaWNrJ1wiPlxuICAgICAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBkYXRhIG9mICdjb250ZW50J1wiPlxuICAgICAgICA8cCBzdHlsZT1cIm1heC13aWR0aDogMzIwcHg7IHRleHQtYWxpZ246IGxlZnQ7IHdoaXRlLXNwYWNlOiBub3JtYWw7XCIgW2lubmVyVGV4dF09XCJjZWxsSW5mby52YWx1ZVwiPjwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZHgtdG9vbHRpcD5cbiAgPC9kaXY+XG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ2ZpbGVDZWxsVGVtcGxhdGUnXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZmlsZSBvZiBjZWxsSW5mby52YWx1ZVwiPlxuICAgICAgPHJzLWZpbGUtY2VsbC10ZW1wbGF0ZSBbdGFibGVdPVwiY2VsbEluZm8uY29tcG9uZW50XCIgW29pZF09XCJmaWxlXCI+PC9ycy1maWxlLWNlbGwtdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICd1c2VyQ2VsbFRlbXBsYXRlJ1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVzZXIgb2YgZ2V0T3JpZ2luYWxWYWx1ZShjZWxsSW5mbywgJ3VzZXJJbmZvJylcIj5cbiAgICAgIDxycy11c2VyLWluZm8tdGVtcGxhdGUgW3RhYmxlXT1cImNlbGxJbmZvLmNvbXBvbmVudFwiIFt1aWRdPVwidXNlclwiPjwvcnMtdXNlci1pbmZvLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAndW5pdENlbGxUZW1wbGF0ZSdcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB1bml0IG9mIGdldE9yaWdpbmFsVmFsdWUoY2VsbEluZm8sICd1bml0SW5mbycpXCI+XG4gICAgICA8cnMtdW5pdC1pbmZvLXRlbXBsYXRlIFt0YWJsZV09XCJjZWxsSW5mby5jb21wb25lbnRcIiBbdWlkXT1cInVuaXRcIj48L3JzLXVuaXQtaW5mby10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2R4LWRhdGEtZ3JpZD5cbiJdfQ==
142
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1ncmlkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ycy1hbnQvc3JjL2RhdGEtZ3JpZC9kYXRhLWdyaWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJzLWFudC9zcmMvZGF0YS1ncmlkL2RhdGEtZ3JpZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7OztBQVFsQyxNQUFNLE9BQU8saUJBQWlCO0lBNkI1QixZQUFvQixPQUF3QixFQUFZLE9BQXdCO1FBQTVELFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQVksWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFuQmhGLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixrQkFBYSxHQUFtQyxNQUFNLENBQUM7UUFJdkQsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUVuRCw2QkFBd0IsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBRW5ELGlDQUE0QixHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDdkQsZUFBVSxHQUFRLEVB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QUdOLE1BQU07c0JBREwsS0FBSztnQkFHTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBR04sYUFBYTtzQkFEWixLQUFLO2dCQUdOLGNBQWM7c0JBRGIsS0FBSztnQkFHTix3QkFBd0I7c0JBRHZCLE1BQU07Z0JBR1Asd0JBQXdCO3NCQUR2QixNQUFNO2dCQUdQLDRCQUE0QjtzQkFEM0IsTUFBTTtnQkFLeUMsVUFBVTtzQkFBekQsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7Z0JBQ0Qsb0JBQW9CO3NCQUFoRSxZQUFZO3VCQUFDLDZCQUE2QjtnQkFDQSxrQkFBa0I7c0JBQTVELFlBQVk7dUJBQUMsMkJBQTJCO2dCQUNJLG9CQUFvQjtzQkFBaEUsWUFBWTt1QkFBQyw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ29udGVudENoaWxkLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEeERhdGFHcmlkQ29tcG9uZW50fSBmcm9tIFwiZGV2ZXh0cmVtZS1hbmd1bGFyXCI7XHJcbmltcG9ydCB7RGF0YUdyaWRTZXJ2aWNlfSBmcm9tIFwiLi9kYXRhLWdyaWQuc2VydmljZVwiO1xyXG5pbXBvcnQge01hc3RlckRldGFpbFRlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9tYXN0ZXItZGV0YWlsLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1Jvd0J1dHRvbnNUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4vcm93LWJ1dHRvbnMtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7RGF0YUdyaWRGYWN0b3J5fSBmcm9tIFwiLi9kYXRhLWdyaWQuZmFjdG9yeVwiO1xyXG5pbXBvcnQge0luc3RhbmNlTGlua1RlbXBsYXRlRGlyZWN0aXZlfSBmcm9tIFwiLi9pbnN0YW5jZS1saW5rLXRlbXBsYXRlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge2RlYm91bmNlVGltZX0gZnJvbSBcInJ4anNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncnMtZGF0YS1ncmlkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1ncmlkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRhLWdyaWQuY29tcG9uZW50LnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtEYXRhR3JpZFNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhR3JpZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KClcclxuICB0ZW5hbnQhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICBjbGFzc05hbWUhOiBhbnk7XHJcbiAgQElucHV0KClcclxuICB2aWV3PzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgZmlsdGVyPzogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgZW5hYmxlTWFzdGVyRGV0YWlsID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZWxlY3Rpb25Nb2RlOiAnbm9uZScgfCAnbXVsdGlwbGUnIHwgJ3NpbmdsZScgPSAnbm9uZSc7XHJcbiAgQElucHV0KClcclxuICBjdXN0b21Db2x1bW5Gbj86IChjb2x1bW5zOiBhbnlbXSkgPT4gdm9pZDtcclxuICBAT3V0cHV0KClcclxuICBvbkR4RGF0YUdyaWRDZWxsUHJlcGFyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkR4RGF0YUdyaWRDb250ZW50UmVhZHkgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KClcclxuICBvbkR4RGF0YUdyaWRTZWxlY3Rpb25DaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgZGF0YVNvdXJjZTogYW55ID0ge307XHJcbiAgY29sdW1uczogYW55W10gPSBbXTtcclxuXHJcbiAgQFZpZXdDaGlsZChEeERhdGFHcmlkQ29tcG9uZW50LCB7c3RhdGljOiB0cnVlfSkgZHhEYXRhR3JpZCE6IER4RGF0YUdyaWRDb21wb25lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZChNYXN0ZXJEZXRhaWxUZW1wbGF0ZURpcmVjdGl2ZSkgbWFzdGVyRGV0YWlsVGVtcGxhdGUhOiBNYXN0ZXJEZXRhaWxUZW1wbGF0ZURpcmVjdGl2ZTtcclxuICBAQ29udGVudENoaWxkKFJvd0J1dHRvbnNUZW1wbGF0ZURpcmVjdGl2ZSkgcm93QnV0dG9uc1RlbXBsYXRlITogUm93QnV0dG9uc1RlbXBsYXRlRGlyZWN0aXZlO1xyXG4gIEBDb250ZW50Q2hpbGQoSW5zdGFuY2VMaW5rVGVtcGxhdGVEaXJlY3RpdmUpIGluc3RhbmNlTGlua1RlbXBsYXRlITogSW5zdGFuY2VMaW5rVGVtcGxhdGVEaXJlY3RpdmU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmFjdG9yeTogRGF0YUdyaWRGYWN0b3J5LCBwcm90ZWN0ZWQgc2VydmljZTogRGF0YUdyaWRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMucmVsb2FkKCk7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJC5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAoPGFueT50aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UpLnJlc2l6ZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbG9hZCgpIHtcclxuICAgIHRoaXMuY29sdW1ucy5sZW5ndGggPSAwO1xyXG4gICAgdGhpcy5mYWN0b3J5Lm1ha2VEYXRhR3JpZENvbHVtbnModGhpcy50ZW5hbnQsIHRoaXMuY2xhc3NOYW1lLCB0aGlzLnZpZXcpLnN1YnNjcmliZShjb2x1bW5zID0+IHtcclxuICAgICAgaWYgKHRoaXMuY3VzdG9tQ29sdW1uRm4pIHtcclxuICAgICAgICB0aGlzLmN1c3RvbUNvbHVtbkZuKGNvbHVtbnMpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29sdW1ucyA9IGNvbHVtbnM7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuZmFjdG9yeS5tYWtlRGF0YUdyaWREYXRhU291cmNlKHRoaXMudGVuYW50LCB0aGlzLmNsYXNzTmFtZSwgdGhpcy52aWV3LCB0aGlzLmZpbHRlcik7XHJcbiAgfVxyXG5cclxuICBjb252ZXJ0TXVsdGlwbGVWYWx1ZUNlbGxUZXh0KGNlbGxJbmZvOiBhbnkpIHtcclxuICAgIGlmICghY2VsbEluZm8udmFsdWUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2VsbEluZm8udmFsdWUpKSB7XHJcbiAgICAgIGlmIChjZWxsSW5mby5jb2x1bW4ubG9va3VwKSB7XHJcbiAgICAgICAgcmV0dXJuIGNlbGxJbmZvLnZhbHVlLm1hcCgoaXRlbTogYW55KSA9PiBjZWxsSW5mby5jb2x1bW4ubG9va3VwLmNhbGN1bGF0ZUNlbGxWYWx1ZShpdGVtKSkuam9pbignPGJyIC8+Jyk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGNlbGxJbmZvLnZhbHVlLmpvaW4oJzxiciAvPicpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNlbGxJbmZvLmNvbHVtbi5sb29rdXApIHtcclxuICAgICAgcmV0dXJuIGNlbGxJbmZvLmNvbHVtbi5sb29rdXAuY2FsY3VsYXRlQ2VsbFZhbHVlKGNlbGxJbmZvLnZhbHVlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBjZWxsSW5mby52YWx1ZTtcclxuICB9XHJcblxyXG4gIGdldE9yaWdpbmFsVmFsdWUoY2VsbEluZm86IGFueSwga2V5OiBhbnkpIHtcclxuICAgIGNvbnN0IGNvbmZpZyA9IGNlbGxJbmZvLmNvbHVtbltrZXldO1xyXG4gICAgaWYgKGNvbmZpZykge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGNlbGxJbmZvLmRhdGFbY29uZmlnLmZpZWxkXTtcclxuICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XHJcbiAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbdmFsdWVdO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICAgIHJldHVybiBjZWxsSW5mby5kYXRhW2tleV07XHJcbiAgfVxyXG5cclxuICByZWZyZXNoKGNhbGxiYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UucmVmcmVzaCgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICBjYWxsYmFjaygpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLmR4RGF0YUdyaWQuaW5zdGFuY2UuZ2V0U2VsZWN0ZWRSb3dLZXlzKCk7XHJcbiAgfVxyXG5cclxuICBvbkNlbGxQcmVwYXJlZCgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkR4RGF0YUdyaWRDZWxsUHJlcGFyZWQuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Db250ZW50UmVhZHkoJGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMub25EeERhdGFHcmlkQ29udGVudFJlYWR5LmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5vbkR4RGF0YUdyaWRTZWxlY3Rpb25DaGFuZ2VkLmVtaXQoJGV2ZW50KTtcclxuICB9XHJcblxyXG4gIG9uRWRpdG9yUHJlcGFyaW5nKCRldmVudDogYW55KSB7XHJcbiAgICBpZiAoJGV2ZW50LnBhcmVudFR5cGUgPT09ICdmaWx0ZXJSb3cnICYmICRldmVudC5lZGl0b3JOYW1lID09PSAnZHhUZXh0Qm94Jykge1xyXG4gICAgICAkZXZlbnQuZWRpdG9yT3B0aW9ucy52YWx1ZUNoYW5nZUV2ZW50ID0gJ2JsdXInO1xyXG4gICAgICAkZXZlbnQuZWRpdG9yT3B0aW9ucy5vbkVudGVyS2V5ID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICAgIGUuY29tcG9uZW50LmJsdXIoKTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGR4LWRhdGEtZ3JpZCBbZGF0YVNvdXJjZV09XCJkYXRhU291cmNlXCJcclxuICAgICAgICAgICAgICBbY29sdW1uc109XCJjb2x1bW5zXCJcclxuICAgICAgICAgICAgICBbc3luY0xvb2t1cEZpbHRlclZhbHVlc109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2hvdmVyU3RhdGVFbmFibGVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgIFtyb3dBbHRlcm5hdGlvbkVuYWJsZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgW2NvbHVtbkF1dG9XaWR0aF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBbYWxsb3dDb2x1bW5SZXNpemluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICBjb2x1bW5SZXNpemluZ01vZGU9XCJ3aWRnZXRcIlxyXG4gICAgICAgICAgICAgIGRhdGVTZXJpYWxpemF0aW9uRm9ybWF0PVwieXl5eS9NTS9kZCBISDptbTpzc1wiXHJcbiAgICAgICAgICAgICAgKG9uQ2VsbFByZXBhcmVkKT1cIm9uQ2VsbFByZXBhcmVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgIChvbkVkaXRvclByZXBhcmluZyk9XCJvbkVkaXRvclByZXBhcmluZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAob25Db250ZW50UmVhZHkpPVwib25Db250ZW50UmVhZHkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uU2VsZWN0aW9uQ2hhbmdlZCk9XCJvblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgKG9uUm93RXhwYW5kaW5nKT1cIiRldmVudC5jb21wb25lbnQuY29sbGFwc2VBbGwoLTEpXCI+XHJcbiAgPGR4by1zb3J0aW5nIG1vZGU9XCJtdWx0aXBsZVwiPjwvZHhvLXNvcnRpbmc+XHJcbiAgPGR4by1zZWxlY3Rpb24gW21vZGVdPVwic2VsZWN0aW9uTW9kZVwiIHNlbGVjdEFsbE1vZGU9XCJwYWdlXCIgc2hvd0NoZWNrQm94ZXNNb2RlPVwiYWx3YXlzXCI+PC9keG8tc2VsZWN0aW9uPlxyXG4gIDxkeG8taGVhZGVyLWZpbHRlciBbdmlzaWJsZV09XCJ0cnVlXCI+XHJcbiAgICA8ZHhvLXNlYXJjaCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tc2VhcmNoPlxyXG4gICAgPGR4by10ZXh0cyBbb2tdPVwiJ+ehruWumidcIj48L2R4by10ZXh0cz5cclxuICA8L2R4by1oZWFkZXItZmlsdGVyPlxyXG4gIDxkeG8tZmlsdGVyLXJvdyBbdmlzaWJsZV09XCJ0cnVlXCI+PC9keG8tZmlsdGVyLXJvdz5cclxuICA8ZHhvLXJlbW90ZS1vcGVyYXRpb25zIFtmaWx0ZXJpbmddPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbc29ydGluZ109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwYWdpbmddPVwidHJ1ZVwiPlxyXG4gIDwvZHhvLXJlbW90ZS1vcGVyYXRpb25zPlxyXG4gIDxkeG8tbWFzdGVyLWRldGFpbCBbZW5hYmxlZF09XCJlbmFibGVNYXN0ZXJEZXRhaWxcIiB0ZW1wbGF0ZT1cIm1hc3RlckRldGFpbFRlbXBsYXRlXCI+PC9keG8tbWFzdGVyLWRldGFpbD5cclxuICA8ZHhvLXBhZ2luZyBbcGFnZVNpemVdPVwiMTVcIj48L2R4by1wYWdpbmc+XHJcbiAgPGR4by1wYWdlciBbdmlzaWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgIFtzaG93SW5mb109XCJ0cnVlXCJcclxuICAgICAgICAgICAgIGluZm9UZXh0PVwi56ysezB96aG177yM5YWxezF96aG177yI5YWxezJ95Liq6aG555uu77yJXCJcclxuICAgICAgICAgICAgIFtzaG93UGFnZVNpemVTZWxlY3Rvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgIFthbGxvd2VkUGFnZVNpemVzXT1cIlsxNSwgMzAsIDUwXVwiXHJcbiAgPjwvZHhvLXBhZ2VyPlxyXG4gIDxkeG8tc2Nyb2xsaW5nIHNob3dTY3JvbGxiYXI9XCJhbHdheXNcIj48L2R4by1zY3JvbGxpbmc+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAnbWFzdGVyRGV0YWlsVGVtcGxhdGUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1hc3RlckRldGFpbFRlbXBsYXRlLnRlbXBsYXRlUmVmXCJcclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInskaW1wbGljaXQ6IGNlbGxJbmZvLCBjZWxsVGVtcGxhdGVMb2FkZWQkOiBzZXJ2aWNlLmNlbGxUZW1wbGF0ZUxvYWRlZCR9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAncm93QnV0dG9uc1RlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJyb3dCdXR0b25zVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdpbnN0YW5jZUxpbmtUZW1wbGF0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5zdGFuY2VMaW5rVGVtcGxhdGUudGVtcGxhdGVSZWZcIlxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyRpbXBsaWNpdDogY2VsbEluZm8sIGNlbGxUZW1wbGF0ZUxvYWRlZCQ6IHNlcnZpY2UuY2VsbFRlbXBsYXRlTG9hZGVkJH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICdyb3dJbmRleFRlbXBsYXRlJ1wiPlxyXG4gICAge3tjZWxsSW5mby5yb3dJbmRleCArIDF9fVxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ211bHRpcGxlVmFsdWVDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICA8ZGl2IFtpbm5lckhUTUxdPVwiY29udmVydE11bHRpcGxlVmFsdWVDZWxsVGV4dChjZWxsSW5mbylcIj48L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICd0ZXh0Q2VsbFRlbXBsYXRlJ1wiPlxyXG4gICAgPGRpdiAjdGV4dERpdiBzdHlsZT1cInRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyBvdmVyZmxvdzogaGlkZGVuOyBjdXJzb3I6IHBvaW50ZXI7XCI+e3tjZWxsSW5mby52YWx1ZX19PC9kaXY+XHJcbiAgICA8ZHgtdG9vbHRpcCBbdGFyZ2V0XT1cInRleHREaXZcIlxyXG4gICAgICAgICAgICAgICAgW3Bvc2l0aW9uXT1cIid0b3AnXCJcclxuICAgICAgICAgICAgICAgIFtzaG93RXZlbnRdPVwiJ2NsaWNrJ1wiPlxyXG4gICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NvbnRlbnQnXCI+XHJcbiAgICAgICAgPHAgc3R5bGU9XCJtYXgtd2lkdGg6IDMyMHB4OyB0ZXh0LWFsaWduOiBsZWZ0OyB3aGl0ZS1zcGFjZTogbm9ybWFsO1wiIFtpbm5lclRleHRdPVwiY2VsbEluZm8udmFsdWVcIj48L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9keC10b29sdGlwPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgKmR4VGVtcGxhdGU9XCJsZXQgY2VsbEluZm8gb2YgJ2ZpbGVDZWxsVGVtcGxhdGUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWxlIG9mIGNlbGxJbmZvLnZhbHVlXCI+XHJcbiAgICAgIDxycy1maWxlLWNlbGwtdGVtcGxhdGUgW3RhYmxlXT1cImNlbGxJbmZvLmNvbXBvbmVudFwiIFtvaWRdPVwiZmlsZVwiPjwvcnMtZmlsZS1jZWxsLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiAqZHhUZW1wbGF0ZT1cImxldCBjZWxsSW5mbyBvZiAndXNlckNlbGxUZW1wbGF0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHVzZXIgb2YgZ2V0T3JpZ2luYWxWYWx1ZShjZWxsSW5mbywgJ3VzZXJJbmZvJylcIj5cclxuICAgICAgPHJzLXVzZXItaW5mby10ZW1wbGF0ZSBbdGFibGVdPVwiY2VsbEluZm8uY29tcG9uZW50XCIgW3VpZF09XCJ1c2VyXCI+PC9ycy11c2VyLWluZm8tdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGNlbGxJbmZvIG9mICd1bml0Q2VsbFRlbXBsYXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgdW5pdCBvZiBnZXRPcmlnaW5hbFZhbHVlKGNlbGxJbmZvLCAndW5pdEluZm8nKVwiPlxyXG4gICAgICA8cnMtdW5pdC1pbmZvLXRlbXBsYXRlIFt0YWJsZV09XCJjZWxsSW5mby5jb21wb25lbnRcIiBbdWlkXT1cInVuaXRcIj48L3JzLXVuaXQtaW5mby10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L2R4LWRhdGEtZ3JpZD5cclxuIl19