@syncfusion/ej2-angular-schedule 31.1.20-ngcc → 31.1.20

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 (108) hide show
  1. package/CHANGELOG.md +466 -9
  2. package/esm2020/public_api.mjs +2 -0
  3. package/esm2020/src/index.mjs +12 -0
  4. package/esm2020/src/recurrence-editor/recurrenceeditor-all.module.mjs +23 -0
  5. package/esm2020/src/recurrence-editor/recurrenceeditor.component.mjs +59 -0
  6. package/esm2020/src/recurrence-editor/recurrenceeditor.module.mjs +25 -0
  7. package/esm2020/src/schedule/headerrows.directive.mjs +66 -0
  8. package/esm2020/src/schedule/resources.directive.mjs +58 -0
  9. package/esm2020/src/schedule/schedule-all.module.mjs +74 -0
  10. package/esm2020/src/schedule/schedule.component.mjs +306 -0
  11. package/esm2020/src/schedule/schedule.module.mjs +61 -0
  12. package/esm2020/src/schedule/toolbaritems.directive.mjs +67 -0
  13. package/esm2020/src/schedule/views.directive.mjs +132 -0
  14. package/esm2020/syncfusion-ej2-angular-schedule.mjs +5 -0
  15. package/fesm2015/syncfusion-ej2-angular-schedule.mjs +829 -0
  16. package/fesm2015/syncfusion-ej2-angular-schedule.mjs.map +1 -0
  17. package/fesm2020/syncfusion-ej2-angular-schedule.mjs +829 -0
  18. package/fesm2020/syncfusion-ej2-angular-schedule.mjs.map +1 -0
  19. package/package.json +23 -10
  20. package/src/recurrence-editor/recurrenceeditor-all.module.d.ts +6 -0
  21. package/src/recurrence-editor/recurrenceeditor.component.d.ts +5 -0
  22. package/src/recurrence-editor/recurrenceeditor.module.d.ts +6 -0
  23. package/src/schedule/headerrows.directive.d.ts +5 -0
  24. package/src/schedule/resources.directive.d.ts +5 -0
  25. package/src/schedule/schedule-all.module.d.ts +6 -0
  26. package/src/schedule/schedule.component.d.ts +7 -0
  27. package/src/schedule/schedule.module.d.ts +10 -0
  28. package/src/schedule/toolbaritems.directive.d.ts +5 -0
  29. package/src/schedule/views.directive.d.ts +31 -0
  30. package/styles/bds-lite.css +1 -0
  31. package/styles/bds-lite.scss +1 -0
  32. package/styles/bds.css +1 -0
  33. package/styles/bds.scss +2 -0
  34. package/styles/bootstrap-dark-lite.css +1 -0
  35. package/styles/bootstrap-dark-lite.scss +1 -0
  36. package/styles/bootstrap-lite.css +1 -0
  37. package/styles/bootstrap-lite.scss +1 -0
  38. package/styles/bootstrap4-lite.css +1 -0
  39. package/styles/bootstrap4-lite.scss +1 -0
  40. package/styles/bootstrap5-dark-lite.css +1 -0
  41. package/styles/bootstrap5-dark-lite.scss +1 -0
  42. package/styles/bootstrap5-lite.css +1 -0
  43. package/styles/bootstrap5-lite.scss +1 -0
  44. package/styles/bootstrap5.3-lite.css +1 -0
  45. package/styles/bootstrap5.3-lite.scss +1 -0
  46. package/styles/bootstrap5.3.css +1 -0
  47. package/styles/bootstrap5.3.scss +2 -0
  48. package/styles/fabric-dark-lite.css +1 -0
  49. package/styles/fabric-dark-lite.scss +1 -0
  50. package/styles/fabric-lite.css +1 -0
  51. package/styles/fabric-lite.scss +1 -0
  52. package/styles/fluent-dark-lite.css +1 -0
  53. package/styles/fluent-dark-lite.scss +1 -0
  54. package/styles/fluent-lite.css +1 -0
  55. package/styles/fluent-lite.scss +1 -0
  56. package/styles/fluent2-lite.css +1 -0
  57. package/styles/fluent2-lite.scss +1 -0
  58. package/styles/fluent2.css +1 -0
  59. package/styles/fluent2.scss +2 -0
  60. package/styles/highcontrast-light-lite.css +1 -0
  61. package/styles/highcontrast-light-lite.scss +1 -0
  62. package/styles/highcontrast-lite.css +1 -0
  63. package/styles/highcontrast-lite.scss +1 -0
  64. package/styles/material-dark-lite.css +1 -0
  65. package/styles/material-dark-lite.scss +1 -0
  66. package/styles/material-lite.css +1 -0
  67. package/styles/material-lite.scss +1 -0
  68. package/styles/material3-dark-lite.css +1 -0
  69. package/styles/material3-dark-lite.scss +1 -0
  70. package/styles/material3-lite.css +1 -0
  71. package/styles/material3-lite.scss +1 -0
  72. package/styles/recurrence-editor/bds.css +1 -0
  73. package/styles/recurrence-editor/bds.scss +1 -0
  74. package/styles/recurrence-editor/bootstrap5.3.css +1 -0
  75. package/styles/recurrence-editor/bootstrap5.3.scss +1 -0
  76. package/styles/recurrence-editor/fluent2.css +1 -0
  77. package/styles/recurrence-editor/fluent2.scss +1 -0
  78. package/styles/recurrence-editor/tailwind3.css +1 -0
  79. package/styles/recurrence-editor/tailwind3.scss +1 -0
  80. package/styles/schedule/bds.css +1 -0
  81. package/styles/schedule/bds.scss +1 -0
  82. package/styles/schedule/bootstrap5.3.css +1 -0
  83. package/styles/schedule/bootstrap5.3.scss +1 -0
  84. package/styles/schedule/fluent2.css +1 -0
  85. package/styles/schedule/fluent2.scss +1 -0
  86. package/styles/schedule/tailwind3.css +1 -0
  87. package/styles/schedule/tailwind3.scss +1 -0
  88. package/styles/tailwind-dark-lite.css +1 -0
  89. package/styles/tailwind-dark-lite.scss +1 -0
  90. package/styles/tailwind-lite.css +1 -0
  91. package/styles/tailwind-lite.scss +1 -0
  92. package/styles/tailwind3-lite.css +1 -0
  93. package/styles/tailwind3-lite.scss +1 -0
  94. package/styles/tailwind3.css +1 -0
  95. package/styles/tailwind3.scss +2 -0
  96. package/syncfusion-ej2-angular-schedule.d.ts +5 -0
  97. package/@syncfusion/ej2-angular-schedule.es5.js +0 -955
  98. package/@syncfusion/ej2-angular-schedule.es5.js.map +0 -1
  99. package/@syncfusion/ej2-angular-schedule.js +0 -894
  100. package/@syncfusion/ej2-angular-schedule.js.map +0 -1
  101. package/dist/ej2-angular-schedule.umd.js +0 -1105
  102. package/dist/ej2-angular-schedule.umd.js.map +0 -1
  103. package/dist/ej2-angular-schedule.umd.min.js +0 -11
  104. package/dist/ej2-angular-schedule.umd.min.js.map +0 -1
  105. package/ej2-angular-schedule.d.ts +0 -6
  106. package/ej2-angular-schedule.metadata.json +0 -1
  107. package/license +0 -10
  108. package/postinstall/tagchange.js +0 -18
@@ -0,0 +1,61 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { ViewDirective, ViewsDirective } from './views.directive';
4
+ import { ResourceDirective, ResourcesDirective } from './resources.directive';
5
+ import { HeaderRowDirective, HeaderRowsDirective } from './headerrows.directive';
6
+ import { ToolbarItemDirective, ToolbarItemsDirective } from './toolbaritems.directive';
7
+ import { ScheduleComponent } from './schedule.component';
8
+ import * as i0 from "@angular/core";
9
+ /**
10
+ * NgModule definition for the Schedule component.
11
+ */
12
+ export class ScheduleModule {
13
+ }
14
+ ScheduleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ScheduleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
15
+ ScheduleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ScheduleModule, declarations: [ScheduleComponent,
16
+ ViewDirective,
17
+ ViewsDirective,
18
+ ResourceDirective,
19
+ ResourcesDirective,
20
+ HeaderRowDirective,
21
+ HeaderRowsDirective,
22
+ ToolbarItemDirective,
23
+ ToolbarItemsDirective], imports: [CommonModule], exports: [ScheduleComponent,
24
+ ViewDirective,
25
+ ViewsDirective,
26
+ ResourceDirective,
27
+ ResourcesDirective,
28
+ HeaderRowDirective,
29
+ HeaderRowsDirective,
30
+ ToolbarItemDirective,
31
+ ToolbarItemsDirective] });
32
+ ScheduleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ScheduleModule, imports: [[CommonModule]] });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ScheduleModule, decorators: [{
34
+ type: NgModule,
35
+ args: [{
36
+ imports: [CommonModule],
37
+ declarations: [
38
+ ScheduleComponent,
39
+ ViewDirective,
40
+ ViewsDirective,
41
+ ResourceDirective,
42
+ ResourcesDirective,
43
+ HeaderRowDirective,
44
+ HeaderRowsDirective,
45
+ ToolbarItemDirective,
46
+ ToolbarItemsDirective
47
+ ],
48
+ exports: [
49
+ ScheduleComponent,
50
+ ViewDirective,
51
+ ViewsDirective,
52
+ ResourceDirective,
53
+ ResourcesDirective,
54
+ HeaderRowDirective,
55
+ HeaderRowsDirective,
56
+ ToolbarItemDirective,
57
+ ToolbarItemsDirective
58
+ ]
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NjaGVkdWxlL3NjaGVkdWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUV6RDs7R0FFRztBQTBCSCxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQXRCbkIsaUJBQWlCO1FBQ2pCLGFBQWE7UUFDYixjQUFjO1FBQ2QsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixrQkFBa0I7UUFDbEIsbUJBQW1CO1FBQ25CLG9CQUFvQjtRQUNwQixxQkFBcUIsYUFWZixZQUFZLGFBYWxCLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsY0FBYztRQUNkLGlCQUFpQjtRQUNqQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIscUJBQXFCOzRHQUdoQixjQUFjLFlBeEJkLENBQUMsWUFBWSxDQUFDOzJGQXdCZCxjQUFjO2tCQXpCMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLFlBQVksRUFBRTt3QkFDVixpQkFBaUI7d0JBQ2pCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIscUJBQXFCO3FCQUN4QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjtxQkFDeEI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFZpZXdEaXJlY3RpdmUsIFZpZXdzRGlyZWN0aXZlIH0gZnJvbSAnLi92aWV3cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmVzb3VyY2VEaXJlY3RpdmUsIFJlc291cmNlc0RpcmVjdGl2ZSB9IGZyb20gJy4vcmVzb3VyY2VzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBIZWFkZXJSb3dEaXJlY3RpdmUsIEhlYWRlclJvd3NEaXJlY3RpdmUgfSBmcm9tICcuL2hlYWRlcnJvd3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRvb2xiYXJJdGVtRGlyZWN0aXZlLCBUb29sYmFySXRlbXNEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2xiYXJpdGVtcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2NoZWR1bGVDb21wb25lbnQgfSBmcm9tICcuL3NjaGVkdWxlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogTmdNb2R1bGUgZGVmaW5pdGlvbiBmb3IgdGhlIFNjaGVkdWxlIGNvbXBvbmVudC5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgU2NoZWR1bGVDb21wb25lbnQsXG4gICAgICAgIFZpZXdEaXJlY3RpdmUsXG4gICAgICAgIFZpZXdzRGlyZWN0aXZlLFxuICAgICAgICBSZXNvdXJjZURpcmVjdGl2ZSxcbiAgICAgICAgUmVzb3VyY2VzRGlyZWN0aXZlLFxuICAgICAgICBIZWFkZXJSb3dEaXJlY3RpdmUsXG4gICAgICAgIEhlYWRlclJvd3NEaXJlY3RpdmUsXG4gICAgICAgIFRvb2xiYXJJdGVtRGlyZWN0aXZlLFxuICAgICAgICBUb29sYmFySXRlbXNEaXJlY3RpdmVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgU2NoZWR1bGVDb21wb25lbnQsXG4gICAgICAgIFZpZXdEaXJlY3RpdmUsXG4gICAgICAgIFZpZXdzRGlyZWN0aXZlLFxuICAgICAgICBSZXNvdXJjZURpcmVjdGl2ZSxcbiAgICAgICAgUmVzb3VyY2VzRGlyZWN0aXZlLFxuICAgICAgICBIZWFkZXJSb3dEaXJlY3RpdmUsXG4gICAgICAgIEhlYWRlclJvd3NEaXJlY3RpdmUsXG4gICAgICAgIFRvb2xiYXJJdGVtRGlyZWN0aXZlLFxuICAgICAgICBUb29sYmFySXRlbXNEaXJlY3RpdmVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNjaGVkdWxlTW9kdWxlIHsgfSJdfQ==
@@ -0,0 +1,67 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ContentChildren, ContentChild } from '@angular/core';
3
+ import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
4
+ import { Template } from '@syncfusion/ej2-angular-base';
5
+ import * as i0 from "@angular/core";
6
+ let input = ['align', 'cssClass', 'disabled', 'htmlAttributes', 'id', 'name', 'overflow', 'prefixIcon', 'showAlwaysInPopup', 'showTextOn', 'suffixIcon', 'tabIndex', 'template', 'text', 'tooltipText', 'type', 'visible', 'width'];
7
+ let outputs = ['click'];
8
+ /**
9
+ * `e-toolbaritems` directive represent a custom toolbar items of the Schedule.
10
+ * It must be contained in a Schedule component(`ejs-schedule`).
11
+ * ```html
12
+ * <ejs-schedule>
13
+ * <e-toolbaritems>
14
+ * <e-toolbaritem name='Today'></<e-toolbaritem>
15
+ * <e-toolbaritem name='DateRangeText'></e-toolbaritem>
16
+ * <e-toolbaritem prefixIcon='e-icons e-cut' text='Cut'></e-toolbaritem>
17
+ * <e-toolbaritems>
18
+ * </ejs-schedule>
19
+ * ```
20
+ */
21
+ export class ToolbarItemDirective extends ComplexBase {
22
+ constructor(viewContainerRef) {
23
+ super();
24
+ this.viewContainerRef = viewContainerRef;
25
+ setValue('currentInstance', this, this.viewContainerRef);
26
+ this.registerEvents(outputs);
27
+ this.directivePropList = input;
28
+ }
29
+ }
30
+ ToolbarItemDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ToolbarItemDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
31
+ ToolbarItemDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ToolbarItemDirective, selector: "e-toolbaritems>e-toolbaritem", inputs: { align: "align", cssClass: "cssClass", disabled: "disabled", htmlAttributes: "htmlAttributes", id: "id", name: "name", overflow: "overflow", prefixIcon: "prefixIcon", showAlwaysInPopup: "showAlwaysInPopup", showTextOn: "showTextOn", suffixIcon: "suffixIcon", tabIndex: "tabIndex", template: "template", text: "text", tooltipText: "tooltipText", type: "type", visible: "visible", width: "width" }, outputs: { click: "click" }, queries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true }], usesInheritance: true, ngImport: i0 });
32
+ __decorate([
33
+ Template()
34
+ ], ToolbarItemDirective.prototype, "template", void 0);
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ToolbarItemDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: 'e-toolbaritems>e-toolbaritem',
39
+ inputs: input,
40
+ outputs: outputs,
41
+ queries: {}
42
+ }]
43
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { template: [{
44
+ type: ContentChild,
45
+ args: ['template']
46
+ }] } });
47
+ /**
48
+ * ToolbarItem Array Directive
49
+ * @private
50
+ */
51
+ export class ToolbarItemsDirective extends ArrayBase {
52
+ constructor() {
53
+ super('toolbaritems');
54
+ }
55
+ }
56
+ ToolbarItemsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ToolbarItemsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
57
+ ToolbarItemsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ToolbarItemsDirective, selector: "ejs-schedule>e-toolbaritems", queries: [{ propertyName: "children", predicate: ToolbarItemDirective }], usesInheritance: true, ngImport: i0 });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ToolbarItemsDirective, decorators: [{
59
+ type: Directive,
60
+ args: [{
61
+ selector: 'ejs-schedule>e-toolbaritems',
62
+ queries: {
63
+ children: new ContentChildren(ToolbarItemDirective)
64
+ },
65
+ }]
66
+ }], ctorParameters: function () { return []; } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhcml0ZW1zLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zY2hlZHVsZS90b29sYmFyaXRlbXMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFvQixlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFHeEQsSUFBSSxLQUFLLEdBQWEsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUM5TyxJQUFJLE9BQU8sR0FBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2xDOzs7Ozs7Ozs7Ozs7R0FZRztBQVNILE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxXQUFpQztJQXdKdkUsWUFBb0IsZ0JBQWlDO1FBQ2pELEtBQUssRUFBRSxDQUFDO1FBRFEscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFpQjtRQUVqRCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQztJQUNuQyxDQUFDOztpSEE3SlEsb0JBQW9CO3FHQUFwQixvQkFBb0I7QUFzSjdCO0lBREMsUUFBUSxFQUFFO3NEQUNVOzJGQXRKWixvQkFBb0I7a0JBUmhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsT0FBTyxFQUFFLE9BQU87b0JBQ2hCLE9BQU8sRUFBRSxFQUVSO2lCQUNKO3VHQXVKVSxRQUFRO3NCQUZkLFlBQVk7dUJBQUMsVUFBVTs7QUFZNUI7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHFCQUFzQixTQUFRLFNBQWdDO0lBQ3ZFO1FBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7O2tIQUhRLHFCQUFxQjtzR0FBckIscUJBQXFCLDRGQUhJLG9CQUFvQjsyRkFHN0MscUJBQXFCO2tCQU5qQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLE9BQU8sRUFBRTt3QkFDTCxRQUFRLEVBQUUsSUFBSSxlQUFlLENBQUMsb0JBQW9CLENBQUM7cUJBQ3REO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnYWxpZ24nLCAnY3NzQ2xhc3MnLCAnZGlzYWJsZWQnLCAnaHRtbEF0dHJpYnV0ZXMnLCAnaWQnLCAnbmFtZScsICdvdmVyZmxvdycsICdwcmVmaXhJY29uJywgJ3Nob3dBbHdheXNJblBvcHVwJywgJ3Nob3dUZXh0T24nLCAnc3VmZml4SWNvbicsICd0YWJJbmRleCcsICd0ZW1wbGF0ZScsICd0ZXh0JywgJ3Rvb2x0aXBUZXh0JywgJ3R5cGUnLCAndmlzaWJsZScsICd3aWR0aCddO1xubGV0IG91dHB1dHM6IHN0cmluZ1tdID0gWydjbGljayddO1xuLyoqXG4gKiBgZS10b29sYmFyaXRlbXNgIGRpcmVjdGl2ZSByZXByZXNlbnQgYSBjdXN0b20gdG9vbGJhciBpdGVtcyBvZiB0aGUgU2NoZWR1bGUuIFxuICogSXQgbXVzdCBiZSBjb250YWluZWQgaW4gYSBTY2hlZHVsZSBjb21wb25lbnQoYGVqcy1zY2hlZHVsZWApLiBcbiAqIGBgYGh0bWxcbiAqIDxlanMtc2NoZWR1bGU+XG4gKiAgIDxlLXRvb2xiYXJpdGVtcz5cbiAqICAgIDxlLXRvb2xiYXJpdGVtIG5hbWU9J1RvZGF5Jz48LzxlLXRvb2xiYXJpdGVtPlxuICogICAgPGUtdG9vbGJhcml0ZW0gbmFtZT0nRGF0ZVJhbmdlVGV4dCc+PC9lLXRvb2xiYXJpdGVtPlxuICogICAgPGUtdG9vbGJhcml0ZW0gcHJlZml4SWNvbj0nZS1pY29ucyBlLWN1dCcgdGV4dD0nQ3V0Jz48L2UtdG9vbGJhcml0ZW0+XG4gKiAgIDxlLXRvb2xiYXJpdGVtcz5cbiAqIDwvZWpzLXNjaGVkdWxlPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS10b29sYmFyaXRlbXM+ZS10b29sYmFyaXRlbScsXG4gICAgaW5wdXRzOiBpbnB1dCxcbiAgICBvdXRwdXRzOiBvdXRwdXRzLCAgICBcbiAgICBxdWVyaWVzOiB7XG5cbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJJdGVtRGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8VG9vbGJhckl0ZW1EaXJlY3RpdmU+IHtcbiAgICBwdWJsaWMgZGlyZWN0aXZlUHJvcExpc3Q6IGFueTtcblx0cHVibGljIGNsaWNrOiBhbnk7XG5cblxuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHR5cGVzIG9mIGNvbW1hbmQgdG8gYmUgcmVuZGVyZWQgaW4gdGhlIFRvb2xiYXIuIFxuICAgICAqIFN1cHBvcnRlZCB0eXBlcyBhcmU6IFxuICAgICAqICogYEJ1dHRvbmA6IENyZWF0ZXMgdGhlIEJ1dHRvbiBjb250cm9sIHdpdGggaXRzIGdpdmVuIHByb3BlcnRpZXMgbGlrZSB0ZXh0LCBwcmVmaXhJY29uLCBldGMuIFxuICAgICAqICogYFNlcGFyYXRvcmA6IEFkZHMgYSBob3Jpem9udGFsIGxpbmUgdGhhdCBzZXBhcmF0ZXMgdGhlIFRvb2xiYXIgY29tbWFuZHMuIFxuICAgICAqICogYElucHV0YDogQ3JlYXRlcyBhbiBpbnB1dCBlbGVtZW50IHRoYXQgaXMgYXBwbGljYWJsZSB0byB0ZW1wbGF0ZSByZW5kZXJpbmcgd2l0aCBTeW5jZnVzaW9uIGNvbnRyb2xzIGxpa2UgRHJvcERvd25MaXN0LCBcbiAgICAgKiBBdXRvQ29tcGxldGUsIGV0Yy5cbiAgICAgKiBAZGVmYXVsdCAnQnV0dG9uJ1xuICAgICAqIEBhc3BkZWZhdWx0dmFsdWUgU3luY2Z1c2lvbi5FSjIuTmF2aWdhdGlvbnMuSXRlbVR5cGUuQnV0dG9uXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLk5hdmlnYXRpb25zLkl0ZW1UeXBlXG4gICAgICovXG4gICAgcHVibGljIHR5cGU6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBsb2NhdGlvbiBmb3IgYWxpZ25pbmcgVG9vbGJhciBpdGVtcyBvbiB0aGUgVG9vbGJhci4gRWFjaCBjb21tYW5kIHdpbGwgYmUgYWxpZ25lZCBhY2NvcmRpbmcgdG8gdGhlIGBhbGlnbmAgcHJvcGVydHkuIFxuICAgICAqIFRoZSBwb3NzaWJsZSB2YWx1ZXMgZm9yIHRoaXMgcHJvcGVydHkgYXMgZm9sbG93cyBcbiAgICAgKiAqIGBMZWZ0YDogVG8gYWxpZ24gY29tbWFuZHMgdG8gdGhlIGxlZnQgc2lkZSBvZiB0aGUgVG9vbGJhci4gXG4gICAgICogKiBgQ2VudGVyYDogVG8gYWxpZ24gY29tbWFuZHMgYXQgdGhlIGNlbnRlciBvZiB0aGUgVG9vbGJhci4gXG4gICAgICogKiBgUmlnaHRgOiBUbyBhbGlnbiBjb21tYW5kcyB0byB0aGUgcmlnaHQgc2lkZSBvZiB0aGUgVG9vbGJhci5cbiAgICAgKiBAZGVmYXVsdCAnTGVmdCdcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlIFN5bmNmdXNpb24uRUoyLk5hdmlnYXRpb25zLkl0ZW1BbGlnbi5MZWZ0XG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLk5hdmlnYXRpb25zLkl0ZW1BbGlnblxuICAgICAqL1xuICAgIHB1YmxpYyBhbGlnbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBEZWZpbmVzIHNpbmdsZS9tdWx0aXBsZSBjbGFzc2VzIChzZXBhcmF0ZWQgYnkgc3BhY2UpIHRvIGJlIHVzZWQgZm9yIGN1c3RvbWl6YXRpb24gb2YgY29tbWFuZHMuXG4gICAgICogQGRlZmF1bHQgXCJcIlxuICAgICAqL1xuICAgIHB1YmxpYyBjc3NDbGFzczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgd2hldGhlciBhbiBpdGVtIHNob3VsZCBiZSBkaXNhYmxlZCBvciBub3QuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBodG1sQXR0cmlidXRlcyB1c2VkIHRvIGFkZCBjdXN0b20gYXR0cmlidXRlcyB0byBUb29sYmFyIGNvbW1hbmQuIFxuICAgICAqIFN1cHBvcnRzIEhUTUwgYXR0cmlidXRlcyBzdWNoIGFzIHN0eWxlLCBjbGFzcywgZXRjLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKi9cbiAgICBwdWJsaWMgaHRtbEF0dHJpYnV0ZXM6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSB1bmlxdWUgSUQgdG8gYmUgdXNlZCB3aXRoIGJ1dHRvbiBvciBpbnB1dCBlbGVtZW50IG9mIFRvb2xiYXIgaXRlbXMuXG4gICAgICogQGRlZmF1bHQgXCJcIlxuICAgICAqL1xuICAgIHB1YmxpYyBpZDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHVuaXF1ZSBuYW1lIGZvciBlYWNoIHRvb2xiYXIgaXRlbSByZW5kZXJlZCBpbiBTY2hlZHVsZS4gVGhpcyBuYW1lIGlzIHVzZWQgdG8gbWFwIHRoZSB0b29sYmFyIGl0ZW1zIGluIHRoZSBTY2hlZHVsZSBjb21wb25lbnQuXG4gICAgICogXG4gICAgICogVG8gYWNjZXNzIHRoZSBkZWZhdWx0IHRvb2xiYXIgaXRlbXMsIHByb3ZpZGUgdGhlIG5hbWUgYmVsb3csXG4gICAgICpcbiAgICAgKiogYEN1c3RvbWA6IFNjaGVkdWxlIGNvbXBvbmVudCByZW5kZXIgdGhlIGN1c3RvbSB0b29sYmFyIGl0ZW0uXG4gICAgICoqIGBQcmV2aW91c2A6IFNjaGVkdWxlIGNvbXBvbmVudCBuYXZpZ2F0ZXMgdG8gdGhlIHByZXZpb3VzIGRhdGUgZnJvbSB0aGUgY3VycmVudCBkYXRlLlxuICAgICAqKiBgTmV4dGA6IFNjaGVkdWxlIGNvbXBvbmVudCBuYXZpZ2F0ZXMgdG8gdGhlIG5leHQgZGF0ZSBmcm9tIHRoZSBjdXJyZW50IGRhdGUuXG4gICAgICoqIGBUb2RheWA6IFNjaGVkdWxlIGNvbXBvbmVudCBuYXZpZ2F0ZXMgdG8gdGhlIGN1cnJlbnQgZGF0ZSBmcm9tIGFueSBkYXRlLlxuICAgICAqKiBgVmlld3NgOiBTY2hlZHVsZSBjb21wb25lbnQgcmVuZGVyIHRoZSBkZWZpbmVkIHZpZXcgb3B0aW9ucyBpbiB0aGUgdG9vbGJhci4gSWYgdmlldyBvcHRpb24gaXMgbm90IGRlZmluZWQsIHRoZW4gaXQgd2lsbCByZW5kZXIgZGVmYXVsdCB2aWV3IG9wdGlvbnMgaW4gdGhlIFNjaGVkdWxlLlxuICAgICAqKiBgRGF0ZVJhbmdlVGV4dGA6IFNjaGVkdWxlIGNvbXBvbmVudCBkaXNwbGF5cyB0aGUgY3VycmVudCBkYXRlIHRleHQgcmFuZ2UuXG4gICAgICoqIGBOZXdFdmVudGA6IFNjaGVkdWxlIGNvbXBvbmVudCByZW5kZXIgdGhlIGljb24gdG8gYWRkIGEgbmV3IGV2ZW50LlxuICAgICAqICAgICBcbiAgICAgKiBAZGVmYXVsdCAnQ3VzdG9tJ1xuICAgICAqIEBhc3BkZWZhdWx0dmFsdWUgQ3VzdG9tXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFRvb2xiYXJOYW1lXG4gICAgICovXG4gICAgcHVibGljIG5hbWU6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBUb29sYmFyIGNvbW1hbmQgZGlzcGxheSBhcmVhIHdoZW4gYW4gZWxlbWVudCdzIGNvbnRlbnQgaXMgdG9vIGxhcmdlIHRvIGZpdCBhdmFpbGFibGUgc3BhY2UuIFxuICAgICAqIFRoaXMgaXMgYXBwbGljYWJsZSBvbmx5IHRvIGBwb3B1cGAgbW9kZS4gVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwcm9wZXJ0eSBhcyBmb2xsb3dzIFxuICAgICAqICogYFNob3dgOiAgQWx3YXlzIHNob3dzIHRoZSBpdGVtIGFzIHRoZSBwcmltYXJ5IHByaW9yaXR5IG9uIHRoZSAqVG9vbGJhciouIFxuICAgICAqICogYEhpZGVgOiBBbHdheXMgc2hvd3MgdGhlIGl0ZW0gYXMgdGhlIHNlY29uZGFyeSBwcmlvcml0eSBvbiB0aGUgKnBvcHVwKi4gXG4gICAgICogKiBgTm9uZWA6IE5vIHByaW9yaXR5IGZvciBkaXNwbGF5LCBhbmQgYXMgcGVyIG5vcm1hbCBvcmRlciBtb3ZlcyB0byBwb3B1cCB3aGVuIGNvbnRlbnQgZXhjZWVkcy5cbiAgICAgKiBAZGVmYXVsdCAnTm9uZSdcbiAgICAgKiBAYXNwZGVmYXVsdHZhbHVlIFN5bmNmdXNpb24uRUoyLk5hdmlnYXRpb25zLk92ZXJmbG93T3B0aW9uLk5vbmVcbiAgICAgKiBAaXNlbnVtZXJhdGlvbiB0cnVlXG4gICAgICogQGFzcHR5cGUgU3luY2Z1c2lvbi5FSjIuTmF2aWdhdGlvbnMuT3ZlcmZsb3dPcHRpb25cbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcmZsb3c6IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBzaW5nbGUvbXVsdGlwbGUgY2xhc3NlcyBzZXBhcmF0ZWQgYnkgc3BhY2UgdXNlZCB0byBzcGVjaWZ5IGFuIGljb24gZm9yIHRoZSBidXR0b24uIFxuICAgICAqIFRoZSBpY29uIHdpbGwgYmUgcG9zaXRpb25lZCBiZWZvcmUgdGhlIHRleHQgY29udGVudCBpZiB0ZXh0IGlzIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIHRoZSBpY29uIGFsb25lIHdpbGwgYmUgcmVuZGVyZWQuXG4gICAgICogQGRlZmF1bHQgXCJcIlxuICAgICAqL1xuICAgIHB1YmxpYyBwcmVmaXhJY29uOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIERlZmluZXMgdGhlIHByaW9yaXR5IG9mIGl0ZW1zIHRvIGRpc3BsYXkgaXQgaW4gcG9wdXAgYWx3YXlzLiBcbiAgICAgKiBJdCBhbGxvd3MgdG8gbWFpbnRhaW4gdG9vbGJhciBpdGVtIG9uIHBvcHVwIGFsd2F5cyBidXQgaXQgZG9lcyBub3Qgd29yayBmb3IgdG9vbGJhciBwcmlvcml0eSBpdGVtcy5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93QWx3YXlzSW5Qb3B1cDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgd2hlcmUgdGhlIGJ1dHRvbiB0ZXh0IHdpbGwgYmUgZGlzcGxheWVkIG9uICpwb3B1cCBtb2RlKiBvZiB0aGUgVG9vbGJhci4gXG4gICAgICogVGhlIHBvc3NpYmxlIHZhbHVlcyBmb3IgdGhpcyBwcm9wZXJ0eSBhcyBmb2xsb3dzIFxuICAgICAqICogYFRvb2xiYXJgOiAgVGV4dCB3aWxsIGJlIGRpc3BsYXllZCBvbiAqVG9vbGJhciogb25seS4gXG4gICAgICogKiBgT3ZlcmZsb3dgOiBUZXh0IHdpbGwgYmUgZGlzcGxheWVkIG9ubHkgd2hlbiBjb250ZW50IG92ZXJmbG93cyB0byAqcG9wdXAqLiBcbiAgICAgKiAqIGBCb3RoYDogVGV4dCB3aWxsIGJlIGRpc3BsYXllZCBvbiAqcG9wdXAqIGFuZCAqVG9vbGJhciouXG4gICAgICogQGRlZmF1bHQgJ0JvdGgnXG4gICAgICogQGFzcGRlZmF1bHR2YWx1ZSBTeW5jZnVzaW9uLkVKMi5OYXZpZ2F0aW9ucy5EaXNwbGF5TW9kZS5Cb3RoXG4gICAgICogQGlzZW51bWVyYXRpb24gdHJ1ZVxuICAgICAqIEBhc3B0eXBlIFN5bmNmdXNpb24uRUoyLk5hdmlnYXRpb25zLkRpc3BsYXlNb2RlXG4gICAgICovXG4gICAgcHVibGljIHNob3dUZXh0T246IGFueTtcbiAgICAvKiogXG4gICAgICogRGVmaW5lcyBzaW5nbGUvbXVsdGlwbGUgY2xhc3NlcyBzZXBhcmF0ZWQgYnkgc3BhY2UgdXNlZCB0byBzcGVjaWZ5IGFuIGljb24gZm9yIHRoZSBidXR0b24uIFxuICAgICAqIFRoZSBpY29uIHdpbGwgYmUgcG9zaXRpb25lZCBhZnRlciB0aGUgdGV4dCBjb250ZW50IGlmIHRleHQgaXMgYXZhaWxhYmxlLlxuICAgICAqIEBkZWZhdWx0IFwiXCJcbiAgICAgKi9cbiAgICBwdWJsaWMgc3VmZml4SWNvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHRhYiBvcmRlciBvZiB0aGUgVG9vbGJhciBpdGVtcy4gV2hlbiBwb3NpdGl2ZSB2YWx1ZXMgYXNzaWduZWQsIGl0IGFsbG93cyB0byBzd2l0Y2ggZm9jdXMgdG8gdGhlIG5leHQvcHJldmlvdXMgdG9vbGJhciBpdGVtcyB3aXRoIFRhYi9TaGlmdFRhYiBrZXlzLiBcbiAgICAgKiBCeSBkZWZhdWx0LCB1c2VyIGNhbiBhYmxlIHRvIHN3aXRjaCBiZXR3ZWVuIGl0ZW1zIG9ubHkgdmlhIGFycm93IGtleXMuIFxuICAgICAqIElmIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMCBmb3IgYWxsIHRvb2wgYmFyIGl0ZW1zLCB0aGVuIHRhYiBzd2l0Y2hlcyBiYXNlZCBvbiBlbGVtZW50IG9yZGVyLlxuICAgICAqIEBkZWZhdWx0IC0xXG4gICAgICovXG4gICAgcHVibGljIHRhYkluZGV4OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgdGV4dCB0byBiZSBkaXNwbGF5ZWQgb24gdGhlIFRvb2xiYXIgYnV0dG9uLlxuICAgICAqIEBkZWZhdWx0IFwiXCJcbiAgICAgKi9cbiAgICBwdWJsaWMgdGV4dDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIHRleHQgdG8gYmUgZGlzcGxheWVkIG9uIGhvdmVyaW5nIHRoZSBUb29sYmFyIGJ1dHRvbi5cbiAgICAgKiBAZGVmYXVsdCBcIlwiXG4gICAgICovXG4gICAgcHVibGljIHRvb2x0aXBUZXh0OiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIGFuIGl0ZW0gc2hvdWxkIGJlIGhpZGRlbiBvciBub3QuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyB2aXNpYmxlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgd2lkdGggb2YgdGhlIFRvb2xiYXIgYnV0dG9uIGNvbW1hbmRzLlxuICAgICAqIEBkZWZhdWx0ICdhdXRvJ1xuICAgICAqL1xuICAgIHB1YmxpYyB3aWR0aDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBTcGVjaWZpZXMgdGhlIEhUTUwgZWxlbWVudC9lbGVtZW50IElEIGFzIGEgc3RyaW5nIHRoYXQgY2FuIGJlIGFkZGVkIGFzIGEgVG9vbGJhciBjb21tYW5kLiBcbiAgICAgKiBcbiAgICAgKiBAZGVmYXVsdCBcIlwiXG4gICAgICogQGFuZ3VsYXJ0eXBlIHN0cmluZyB8IG9iamVjdFxuICAgICAqIEByZWFjdHR5cGUgc3RyaW5nIHwgZnVuY3Rpb24gfCBKU1guRWxlbWVudFxuICAgICAqIEB2dWV0eXBlIHN0cmluZyB8IGZ1bmN0aW9uXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgndGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRlbXBsYXRlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZpZXdDb250YWluZXJSZWY6Vmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBzZXRWYWx1ZSgnY3VycmVudEluc3RhbmNlJywgdGhpcywgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckV2ZW50cyhvdXRwdXRzKTtcbiAgICAgICAgdGhpcy5kaXJlY3RpdmVQcm9wTGlzdCA9IGlucHV0O1xuICAgIH1cbn1cblxuLyoqXG4gKiBUb29sYmFySXRlbSBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXNjaGVkdWxlPmUtdG9vbGJhcml0ZW1zJyxcbiAgICBxdWVyaWVzOiB7XG4gICAgICAgIGNoaWxkcmVuOiBuZXcgQ29udGVudENoaWxkcmVuKFRvb2xiYXJJdGVtRGlyZWN0aXZlKVxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJJdGVtc0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxUb29sYmFySXRlbXNEaXJlY3RpdmU+IHtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ3Rvb2xiYXJpdGVtcycpO1xuICAgIH1cbn0iXX0=
@@ -0,0 +1,132 @@
1
+ import { __decorate } from "tslib";
2
+ import { Directive, ContentChildren, ContentChild } from '@angular/core';
3
+ import { ComplexBase, ArrayBase, setValue } from '@syncfusion/ej2-angular-base';
4
+ import { Template } from '@syncfusion/ej2-angular-base';
5
+ import * as i0 from "@angular/core";
6
+ let input = ['allowOverlap', 'allowVirtualScrolling', 'cellHeaderTemplate', 'cellTemplate', 'dateFormat', 'dateHeaderTemplate', 'dateRangeTemplate', 'dayHeaderTemplate', 'displayDate', 'displayName', 'enableLazyLoading', 'endHour', 'eventTemplate', 'firstDayOfWeek', 'firstMonthOfYear', 'group', 'headerIndentTemplate', 'headerRows', 'interval', 'isSelected', 'maxEventsPerRow', 'monthHeaderTemplate', 'monthsCount', 'numberOfWeeks', 'option', 'orientation', 'overscanCount', 'readonly', 'resourceHeaderTemplate', 'showWeekNumber', 'showWeekend', 'startHour', 'timeFormat', 'timeScale', 'workDays'];
7
+ let outputs = [];
8
+ /**
9
+ * `e-views` directive represent a view of the Angular Schedule.
10
+ * It must be contained in a Schedule component(`ejs-schedule`).
11
+ * ```html
12
+ * <ejs-schedule>
13
+ * <e-views>
14
+ * <e-view option='day' dateFormat='dd MMM'></e-view>
15
+ * <e-view option='week'></e-view>
16
+ * </e-views>
17
+ * </ejs-schedule>
18
+ * ```
19
+ */
20
+ export class ViewDirective extends ComplexBase {
21
+ constructor(viewContainerRef) {
22
+ super();
23
+ this.viewContainerRef = viewContainerRef;
24
+ setValue('currentInstance', this, this.viewContainerRef);
25
+ this.registerEvents(outputs);
26
+ this.directivePropList = input;
27
+ }
28
+ }
29
+ ViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ViewDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
30
+ ViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ViewDirective, selector: "e-views>e-view", inputs: { allowOverlap: "allowOverlap", allowVirtualScrolling: "allowVirtualScrolling", cellHeaderTemplate: "cellHeaderTemplate", cellTemplate: "cellTemplate", dateFormat: "dateFormat", dateHeaderTemplate: "dateHeaderTemplate", dateRangeTemplate: "dateRangeTemplate", dayHeaderTemplate: "dayHeaderTemplate", displayDate: "displayDate", displayName: "displayName", enableLazyLoading: "enableLazyLoading", endHour: "endHour", eventTemplate: "eventTemplate", firstDayOfWeek: "firstDayOfWeek", firstMonthOfYear: "firstMonthOfYear", group: "group", headerIndentTemplate: "headerIndentTemplate", headerRows: "headerRows", interval: "interval", isSelected: "isSelected", maxEventsPerRow: "maxEventsPerRow", monthHeaderTemplate: "monthHeaderTemplate", monthsCount: "monthsCount", numberOfWeeks: "numberOfWeeks", option: "option", orientation: "orientation", overscanCount: "overscanCount", readonly: "readonly", resourceHeaderTemplate: "resourceHeaderTemplate", showWeekNumber: "showWeekNumber", showWeekend: "showWeekend", startHour: "startHour", timeFormat: "timeFormat", timeScale: "timeScale", workDays: "workDays" }, queries: [{ propertyName: "dateHeaderTemplate", first: true, predicate: ["dateHeaderTemplate"], descendants: true }, { propertyName: "dateRangeTemplate", first: true, predicate: ["dateRangeTemplate"], descendants: true }, { propertyName: "dayHeaderTemplate", first: true, predicate: ["dayHeaderTemplate"], descendants: true }, { propertyName: "cellHeaderTemplate", first: true, predicate: ["cellHeaderTemplate"], descendants: true }, { propertyName: "cellTemplate", first: true, predicate: ["cellTemplate"], descendants: true }, { propertyName: "eventTemplate", first: true, predicate: ["eventTemplate"], descendants: true }, { propertyName: "monthHeaderTemplate", first: true, predicate: ["monthHeaderTemplate"], descendants: true }, { propertyName: "resourceHeaderTemplate", first: true, predicate: ["resourceHeaderTemplate"], descendants: true }, { propertyName: "headerIndentTemplate", first: true, predicate: ["headerIndentTemplate"], descendants: true }, { propertyName: "timeScale_minorSlotTemplate", first: true, predicate: ["timeScaleMinorSlotTemplate"], descendants: true }, { propertyName: "timeScale_majorSlotTemplate", first: true, predicate: ["timeScaleMajorSlotTemplate"], descendants: true }, { propertyName: "group_headerTooltipTemplate", first: true, predicate: ["groupHeaderTooltipTemplate"], descendants: true }], usesInheritance: true, ngImport: i0 });
31
+ __decorate([
32
+ Template()
33
+ ], ViewDirective.prototype, "dateHeaderTemplate", void 0);
34
+ __decorate([
35
+ Template()
36
+ ], ViewDirective.prototype, "dateRangeTemplate", void 0);
37
+ __decorate([
38
+ Template()
39
+ ], ViewDirective.prototype, "dayHeaderTemplate", void 0);
40
+ __decorate([
41
+ Template()
42
+ ], ViewDirective.prototype, "cellHeaderTemplate", void 0);
43
+ __decorate([
44
+ Template()
45
+ ], ViewDirective.prototype, "cellTemplate", void 0);
46
+ __decorate([
47
+ Template()
48
+ ], ViewDirective.prototype, "eventTemplate", void 0);
49
+ __decorate([
50
+ Template()
51
+ ], ViewDirective.prototype, "monthHeaderTemplate", void 0);
52
+ __decorate([
53
+ Template()
54
+ ], ViewDirective.prototype, "resourceHeaderTemplate", void 0);
55
+ __decorate([
56
+ Template()
57
+ ], ViewDirective.prototype, "headerIndentTemplate", void 0);
58
+ __decorate([
59
+ Template()
60
+ ], ViewDirective.prototype, "timeScale_minorSlotTemplate", void 0);
61
+ __decorate([
62
+ Template()
63
+ ], ViewDirective.prototype, "timeScale_majorSlotTemplate", void 0);
64
+ __decorate([
65
+ Template()
66
+ ], ViewDirective.prototype, "group_headerTooltipTemplate", void 0);
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ViewDirective, decorators: [{
68
+ type: Directive,
69
+ args: [{
70
+ selector: 'e-views>e-view',
71
+ inputs: input,
72
+ outputs: outputs,
73
+ queries: {}
74
+ }]
75
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { dateHeaderTemplate: [{
76
+ type: ContentChild,
77
+ args: ['dateHeaderTemplate']
78
+ }], dateRangeTemplate: [{
79
+ type: ContentChild,
80
+ args: ['dateRangeTemplate']
81
+ }], dayHeaderTemplate: [{
82
+ type: ContentChild,
83
+ args: ['dayHeaderTemplate']
84
+ }], cellHeaderTemplate: [{
85
+ type: ContentChild,
86
+ args: ['cellHeaderTemplate']
87
+ }], cellTemplate: [{
88
+ type: ContentChild,
89
+ args: ['cellTemplate']
90
+ }], eventTemplate: [{
91
+ type: ContentChild,
92
+ args: ['eventTemplate']
93
+ }], monthHeaderTemplate: [{
94
+ type: ContentChild,
95
+ args: ['monthHeaderTemplate']
96
+ }], resourceHeaderTemplate: [{
97
+ type: ContentChild,
98
+ args: ['resourceHeaderTemplate']
99
+ }], headerIndentTemplate: [{
100
+ type: ContentChild,
101
+ args: ['headerIndentTemplate']
102
+ }], timeScale_minorSlotTemplate: [{
103
+ type: ContentChild,
104
+ args: ['timeScaleMinorSlotTemplate']
105
+ }], timeScale_majorSlotTemplate: [{
106
+ type: ContentChild,
107
+ args: ['timeScaleMajorSlotTemplate']
108
+ }], group_headerTooltipTemplate: [{
109
+ type: ContentChild,
110
+ args: ['groupHeaderTooltipTemplate']
111
+ }] } });
112
+ /**
113
+ * View Array Directive
114
+ * @private
115
+ */
116
+ export class ViewsDirective extends ArrayBase {
117
+ constructor() {
118
+ super('views');
119
+ }
120
+ }
121
+ ViewsDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ViewsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
122
+ ViewsDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: ViewsDirective, selector: "ejs-schedule>e-views", queries: [{ propertyName: "children", predicate: ViewDirective }], usesInheritance: true, ngImport: i0 });
123
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ViewsDirective, decorators: [{
124
+ type: Directive,
125
+ args: [{
126
+ selector: 'ejs-schedule>e-views',
127
+ queries: {
128
+ children: new ContentChildren(ViewDirective)
129
+ },
130
+ }]
131
+ }], ctorParameters: function () { return []; } });
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NjaGVkdWxlL3ZpZXdzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0IsZUFBZSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBR3hELElBQUksS0FBSyxHQUFhLENBQUMsY0FBYyxFQUFFLHVCQUF1QixFQUFFLG9CQUFvQixFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSx3QkFBd0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDam1CLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztBQUMzQjs7Ozs7Ozs7Ozs7R0FXRztBQVNILE1BQU0sT0FBTyxhQUFjLFNBQVEsV0FBMEI7SUFtVXpELFlBQW9CLGdCQUFpQztRQUNqRCxLQUFLLEVBQUUsQ0FBQztRQURRLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFFakQsUUFBUSxDQUFDLGlCQUFpQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDbkMsQ0FBQzs7MEdBeFVRLGFBQWE7OEZBQWIsYUFBYTtBQWdOdEI7SUFEQyxRQUFRLEVBQUU7eURBQ29CO0FBVy9CO0lBREMsUUFBUSxFQUFFO3dEQUNtQjtBQWE5QjtJQURDLFFBQVEsRUFBRTt3REFDbUI7QUFhOUI7SUFEQyxRQUFRLEVBQUU7eURBQ29CO0FBYS9CO0lBREMsUUFBUSxFQUFFO21EQUNjO0FBY3pCO0lBREMsUUFBUSxFQUFFO29EQUNlO0FBYTFCO0lBREMsUUFBUSxFQUFFOzBEQUNxQjtBQWNoQztJQURDLFFBQVEsRUFBRTs2REFDd0I7QUFhbkM7SUFEQyxRQUFRLEVBQUU7MkRBQ3NCO0FBR2pDO0lBREMsUUFBUSxFQUFFO2tFQUM2QjtBQUd4QztJQURDLFFBQVEsRUFBRTtrRUFDNkI7QUFHeEM7SUFEQyxRQUFRLEVBQUU7a0VBQzZCOzJGQWpVL0IsYUFBYTtrQkFSekIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixNQUFNLEVBQUUsS0FBSztvQkFDYixPQUFPLEVBQUUsT0FBTztvQkFDaEIsT0FBTyxFQUFFLEVBRVI7aUJBQ0o7dUdBaU5VLGtCQUFrQjtzQkFGeEIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBYTNCLGlCQUFpQjtzQkFGdkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBZTFCLGlCQUFpQjtzQkFGdkIsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBZTFCLGtCQUFrQjtzQkFGeEIsWUFBWTt1QkFBQyxvQkFBb0I7Z0JBZTNCLFlBQVk7c0JBRmxCLFlBQVk7dUJBQUMsY0FBYztnQkFnQnJCLGFBQWE7c0JBRm5CLFlBQVk7dUJBQUMsZUFBZTtnQkFldEIsbUJBQW1CO3NCQUZ6QixZQUFZO3VCQUFDLHFCQUFxQjtnQkFnQjVCLHNCQUFzQjtzQkFGNUIsWUFBWTt1QkFBQyx3QkFBd0I7Z0JBZS9CLG9CQUFvQjtzQkFGMUIsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBSzdCLDJCQUEyQjtzQkFGakMsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBS25DLDJCQUEyQjtzQkFGakMsWUFBWTt1QkFBQyw0QkFBNEI7Z0JBS25DLDJCQUEyQjtzQkFGakMsWUFBWTt1QkFBQyw0QkFBNEI7O0FBWTlDOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBeUI7SUFDekQ7UUFDSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQzs7MkdBSFEsY0FBYzsrRkFBZCxjQUFjLHFGQUhXLGFBQWE7MkZBR3RDLGNBQWM7a0JBTjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsT0FBTyxFQUFFO3dCQUNMLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBQyxhQUFhLENBQUM7cUJBQy9DO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmLCBDb250ZW50Q2hpbGRyZW4sIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcGxleEJhc2UsIEFycmF5QmFzZSwgc2V0VmFsdWUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5cblxubGV0IGlucHV0OiBzdHJpbmdbXSA9IFsnYWxsb3dPdmVybGFwJywgJ2FsbG93VmlydHVhbFNjcm9sbGluZycsICdjZWxsSGVhZGVyVGVtcGxhdGUnLCAnY2VsbFRlbXBsYXRlJywgJ2RhdGVGb3JtYXQnLCAnZGF0ZUhlYWRlclRlbXBsYXRlJywgJ2RhdGVSYW5nZVRlbXBsYXRlJywgJ2RheUhlYWRlclRlbXBsYXRlJywgJ2Rpc3BsYXlEYXRlJywgJ2Rpc3BsYXlOYW1lJywgJ2VuYWJsZUxhenlMb2FkaW5nJywgJ2VuZEhvdXInLCAnZXZlbnRUZW1wbGF0ZScsICdmaXJzdERheU9mV2VlaycsICdmaXJzdE1vbnRoT2ZZZWFyJywgJ2dyb3VwJywgJ2hlYWRlckluZGVudFRlbXBsYXRlJywgJ2hlYWRlclJvd3MnLCAnaW50ZXJ2YWwnLCAnaXNTZWxlY3RlZCcsICdtYXhFdmVudHNQZXJSb3cnLCAnbW9udGhIZWFkZXJUZW1wbGF0ZScsICdtb250aHNDb3VudCcsICdudW1iZXJPZldlZWtzJywgJ29wdGlvbicsICdvcmllbnRhdGlvbicsICdvdmVyc2NhbkNvdW50JywgJ3JlYWRvbmx5JywgJ3Jlc291cmNlSGVhZGVyVGVtcGxhdGUnLCAnc2hvd1dlZWtOdW1iZXInLCAnc2hvd1dlZWtlbmQnLCAnc3RhcnRIb3VyJywgJ3RpbWVGb3JtYXQnLCAndGltZVNjYWxlJywgJ3dvcmtEYXlzJ107XG5sZXQgb3V0cHV0czogc3RyaW5nW10gPSBbXTtcbi8qKlxuICogYGUtdmlld3NgIGRpcmVjdGl2ZSByZXByZXNlbnQgYSB2aWV3IG9mIHRoZSBBbmd1bGFyIFNjaGVkdWxlLiBcbiAqIEl0IG11c3QgYmUgY29udGFpbmVkIGluIGEgU2NoZWR1bGUgY29tcG9uZW50KGBlanMtc2NoZWR1bGVgKS4gXG4gKiBgYGBodG1sXG4gKiA8ZWpzLXNjaGVkdWxlPlxuICogICA8ZS12aWV3cz5cbiAqICAgIDxlLXZpZXcgb3B0aW9uPSdkYXknIGRhdGVGb3JtYXQ9J2RkIE1NTSc+PC9lLXZpZXc+XG4gKiAgICA8ZS12aWV3IG9wdGlvbj0nd2Vlayc+PC9lLXZpZXc+XG4gKiAgIDwvZS12aWV3cz5cbiAqIDwvZWpzLXNjaGVkdWxlPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZS12aWV3cz5lLXZpZXcnLFxuICAgIGlucHV0czogaW5wdXQsXG4gICAgb3V0cHV0czogb3V0cHV0cywgICAgXG4gICAgcXVlcmllczoge1xuXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBWaWV3RGlyZWN0aXZlIGV4dGVuZHMgQ29tcGxleEJhc2U8Vmlld0RpcmVjdGl2ZT4ge1xuICAgIHB1YmxpYyBkaXJlY3RpdmVQcm9wTGlzdDogYW55O1xuXHRcblxuXG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB3aGV0aGVyIG92ZXJsYXBwaW5nIGFwcG9pbnRtZW50cyBhcmUgYWxsb3dlZCB3aXRoaW4gdGhlIHNhbWUgdGltZSBzbG90IGluIHRoZSBTY2hlZHVsZXIuXG4gICAgICogQHJlbWFya3MgV2hlbiBzZXQgdG8gYGZhbHNlYCwgdGhlIFNjaGVkdWxlciBlbmZvcmNlcyByZXN0cmljdGlvbnMgdG8gcHJldmVudCBjcmVhdGluZyBvciBkaXNwbGF5aW5nIG92ZXJsYXBwaW5nIGFwcG9pbnRtZW50cyB3aXRoaW4gdGhlIHNhbWUgdGltZSBkdXJhdGlvbi5cblRoaXMgc2V0dGluZyBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGxpbWl0YXRpb25zOlxuXG4tICoqSW5pdGlhbCBMb2FkaW5nKio6IFRoZSBhbGVydCBmb3Igb3ZlcmxhcHBpbmcgYXBwb2ludG1lbnRzIHdpbGwgbm90IGRpc3BsYXkgZHVyaW5nIHRoZSBpbml0aWFsIGxvYWQuIE92ZXJsYXBwaW5nIGV2ZW50cyB3aWxsIGJlIGlnbm9yZWQgaW4gcmVuZGVyaW5nLCBpbmNsdWRpbmcgb2NjdXJyZW5jZXMuXG5cbi0gKipEeW5hbWljIEFkZC9FZGl0Kio6IFdoZW4gYWRkaW5nIG9yIGVkaXRpbmcgZXZlbnRzIGR5bmFtaWNhbGx5LCBvdmVybGFwcGluZyB2YWxpZGF0aW9uIGlzIHBlcmZvcm1lZC4gSWYgYW4gb3ZlcmxhcCBpcyBkZXRlY3RlZCBmb3IgYSBzaW5nbGUgZXZlbnQsIGFuIGFsZXJ0IHdpbGwgYmUgc2hvd24sIGFuZCB0aGUgZXZlbnQgd2lsbCBub3QgYmUgc2F2ZWQuXG5cbkZvciByZWN1cnJpbmcgZXZlbnRzLCBhbiBhbGVydCB3aWxsIGJlIGRpc3BsYXllZCwgYW5kIHRoZSBldmVudCB3aWxsIG5vdCBiZSBzYXZlZC4gVG8gc2F2ZSByZWN1cnJpbmcgZXZlbnRzIHdoaWxlIGlnbm9yaW5nIG92ZXJsYXBwaW5nIG9jY3VycmVuY2VzLCB0cmlnZ2VyIHRoZSBgUG9wdXBPcGVuYCBldmVudC4gVGhlIGBEYXRhYCBmaWVsZCB3aWxsIGNvbnRhaW4gdGhlIHBhcmVudCByZWN1cnJlbmNlIGRhdGEsIGFuZCB0aGUgYG92ZXJsYXBFdmVudHNgIGZpZWxkIHdpbGwgY29udGFpbiB0aGUgb3ZlcmxhcCBldmVudHMuIFVzaW5nIHRoZXNlIGRldGFpbHMsIHVzZXJzIGNhbiBpbmNsdWRlIGV4Y2VwdGlvbnMgaW4gdGhlIHJlY3VycmVuY2UgZXZlbnRzIGFuZCBzYXZlIHRoZW0gd2l0aCB0aGUgYGFkZEV2ZW50YCBtZXRob2QuXG5cbi0gKipPdXQtb2YtRGF0ZS1SYW5nZSBFdmVudHMqKjogVGhlIGBhbGxvd092ZXJsYXBgIHNldHRpbmcgb25seSBwcmV2ZW50cyBvdmVybGFwcyBmb3IgZXZlbnRzIHdpdGhpbiB0aGUgY3VycmVudCB2aWV3IGRhdGUgcmFuZ2UuIFRvIHZhbGlkYXRlIG92ZXJsYXAgZXZlbnRzIG91dHNpZGUgdGhlIGN1cnJlbnQgZGF0ZSByYW5nZSwgdXNlIHRoZSBgYWN0aW9uQmVnaW5gIGV2ZW50IHRvIHNlbmQgYSByZXF1ZXN0IHRvIHRoZSBzZXJ2ZXIgZm9yIHZhbGlkYXRpb24gYW5kIHJldHVybiBhIHByb21pc2UtYmFzZWQgcmVzcG9uc2UuIEFzc2lnbiB0aGlzIHByb21pc2UgcmVzcG9uc2UgdG8gdGhlIGBwcm9taXNlYCBmaWVsZCBpbiBgQWN0aW9uRXZlbnRBcmdzYCB0byBoYW5kbGUgYXN5bmNocm9ub3VzIHNlcnZlciB2YWxpZGF0aW9uLlxuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd092ZXJsYXA6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgaXMgdXNlZCB0byBhbGxvdyBvciBkaXNhbGxvdyB0aGUgdmlydHVhbCBzY3JvbGxpbmcgZnVuY3Rpb25hbGl0eS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBhbGxvd1ZpcnR1YWxTY3JvbGxpbmc6IGFueTtcbiAgICAvKiogXG4gICAgICogQnkgZGVmYXVsdCwgU2NoZWR1bGUgZm9sbG93cyB0aGUgZGF0ZS1mb3JtYXQgYXMgcGVyIHRoZSBkZWZhdWx0IGN1bHR1cmUgYXNzaWduZWQgdG8gaXQuIEl0IGlzIGFsc28gcG9zc2libGUgdG8gbWFudWFsbHkgc2V0IFxuICAgICAqICBzcGVjaWZpYyBkYXRlIGZvcm1hdCBieSB1c2luZyB0aGUgYGRhdGVGb3JtYXRgIHByb3BlcnR5LiBUaGUgZm9ybWF0IG9mIHRoZSBkYXRlIHJhbmdlIGxhYmVsIGluIHRoZSBoZWFkZXIgYmFyIGRlcGVuZHMgb24gXG4gICAgICogIHRoZSBgZGF0ZUZvcm1hdGAgdmFsdWUgb3IgZWxzZSBiYXNlZCBvbiB0aGUgbG9jYWxlIGFzc2lnbmVkIHRvIHRoZSBTY2hlZHVsZS4gXG4gICAgICogIEl0IGdldHMgYXBwbGllZCBvbmx5IHRvIHRoZSB2aWV3IG9iamVjdHMgb24gd2hpY2ggaXQgaXMgZGVmaW5lZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIGRhdGVGb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBzdGFydGluZyB3ZWVrIGRhdGUgYXQgYW4gaW5pdGlhbCByZW5kZXJpbmcgb2YgbW9udGggdmlldy4gVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IGFwcGxpY2FibGUgZm9yIG1vbnRoIHZpZXcuIFxuICAgICAqICBJZiB0aGlzIHByb3BlcnR5IHZhbHVlIGlzIG5vdCBzZXQsIHRoZW4gdGhlIG1vbnRoIHZpZXcgd2lsbCBiZSByZW5kZXJlZCBmcm9tIHRoZSBmaXJzdCB3ZWVrIG9mIHRoZSBtb250aC4gXG4gICAgICogeyUgY29kZUJsb2NrIHNyYz0nc2NoZWR1bGUvZGlzcGxheURhdGUvaW5kZXgubWQnICV9eyUgZW5kY29kZUJsb2NrICV9XG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5RGF0ZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBXaGVuIHRoZSBzYW1lIHZpZXcgaXMgY3VzdG9taXplZCB3aXRoIGRpZmZlcmVudCBpbnRlcnZhbHMsIHRoaXMgcHJvcGVydHkgYWxsb3dzIHRoZSB1c2VyIHRvIHNldCBkaWZmZXJlbnQgZGlzcGxheSBuYW1lIFxuICAgICAqICBmb3IgdGhvc2Ugdmlld3MuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBkaXNwbGF5TmFtZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBFbmFibGVzIHRoZSBsYXp5IGxvYWRpbmcgb2YgZXZlbnRzIGZvciBzY3JvbGxpbmcgYWN0aW9ucyBvbmx5IHdoZW4gdGhlIHJlc291cmNlcyBncm91cGluZyBwcm9wZXJ0eSBpcyBlbmFibGVkLiBcbiAgICAgKiBMYXp5IGxvYWRpbmcgYWxsb3dzIHRoZSBzY2hlZHVsZXIgdG8gZmV0Y2ggdGhlIGFwcG9pbnRtZW50cyBkeW5hbWljYWxseSBkdXJpbmcgc2Nyb2xsIGFjdGlvbnMgZm9yIHRoZSBjdXJyZW50bHkgcmVuZGVyZWQgcmVzb3VyY2UgY29sbGVjdGlvbi4gXG4gICAgICogTmV3IGV2ZW50IGRhdGEgaXMgZmV0Y2hlZCBvbi1kZW1hbmQgYXMgdGhlIHVzZXIgc2Nyb2xscyB0aHJvdWdoIHRoZSBzY2hlZHVsZSBjb250ZW50LlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGVuYWJsZUxhenlMb2FkaW5nOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgZW5kIGhvdXIsIGF0IHdoaWNoIHRoZSBTY2hlZHVsZSBlbmRzLiBJdCB0b28gYWNjZXB0cyB0aGUgdGltZSBzdHJpbmcgaW4gYSBzaG9ydCBza2VsZXRvbiBmb3JtYXQuXG4gICAgICogQGRlZmF1bHQgJzI0OjAwJ1xuICAgICAqL1xuICAgIHB1YmxpYyBlbmRIb3VyOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoaXMgb3B0aW9uIGFsbG93cyB0aGUgdXNlciB0byBzZXQgdGhlIGZpcnN0IGRheSBvZiBhIHdlZWsgb24gU2NoZWR1bGUuIEl0IHNob3VsZCBiZSBiYXNlZCBvbiB0aGUgbG9jYWxlIHNldCB0byBpdCBhbmQgZWFjaCBjdWx0dXJlIFxuICAgICAqICBkZWZpbmVzIGl0cyBvd24gZmlyc3QgZGF5IG9mIHdlZWsgdmFsdWVzLiBJZiBuZWVkZWQsIHRoZSB1c2VyIGNhbiBzZXQgaXQgbWFudWFsbHkgb24gaGlzIG93biBieSBkZWZpbmluZyB0aGUgdmFsdWUgdGhyb3VnaCBcbiAgICAgKiAgdGhpcyBwcm9wZXJ0eS4gSXQgdXN1YWxseSBhY2NlcHRzIHRoZSBpbnRlZ2VyIHZhbHVlcywgd2hlcmVieSAwIGlzIGFsd2F5cyBkZW5vdGVkIGFzIFN1bmRheSwgMSBhcyBNb25kYXkgYW5kIHNvIG9uLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBwdWJsaWMgZmlyc3REYXlPZldlZWs6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBwcm9wZXJ0eSBoZWxwcyByZW5kZXIgdGhlIHllYXIgdmlldyBjdXN0b21pemVkIG1vbnRocy4gXG4gICAgICogQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIGAwYC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgcHVibGljIGZpcnN0TW9udGhPZlllYXI6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIHRvIHNldCBkaWZmZXJlbnQgcmVzb3VyY2UgZ3JvdXBpbmcgb3B0aW9ucyBvbiBhbGwgYXZhaWxhYmxlIHNjaGVkdWxlIHZpZXcgbW9kZXMuXG4gICAgICogQGRlZmF1bHQgeyBieURhdGU6IGZhbHNlLCBieUdyb3VwSUQ6IHRydWUsIGFsbG93R3JvdXBFZGl0OiBmYWxzZSwgcmVzb3VyY2VzOltdLCBoaWRlTm9uV29ya2luZ0RheXM6IGZhbHNlIH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ3JvdXA6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIGRlZmluaW5nIHRoZSBjb2xsZWN0aW9uIG9mIGN1c3RvbSBoZWFkZXIgcm93cyB0byBkaXNwbGF5IHRoZSB5ZWFyLCBtb250aCwgd2VlaywgZGF0ZSBhbmQgaG91ciBsYWJlbCBhcyBhbiBpbmRpdmlkdWFsIHJvdyBcbiAgICAgKiAgb24gdGhlIHRpbWVsaW5lIHZpZXcgb2YgdGhlIHNjaGVkdWxlci5cbiAgICAgKiBAZGVmYXVsdCBbXVxuICAgICAqL1xuICAgIHB1YmxpYyBoZWFkZXJSb3dzOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgdGhlIG51bWJlciB2YWx1ZSBkZW5vdGluZyB0byBpbmNsdWRlIHRoZSBudW1iZXIgb2YgZGF5cywgd2Vla3MsIHdvcmt3ZWVrcyBvciBtb250aHMgb24gdGhlIGRlZmluZWQgdmlldyB0eXBlLlxuICAgICAqIEBkZWZhdWx0IDFcbiAgICAgKi9cbiAgICBwdWJsaWMgaW50ZXJ2YWw6IGFueTtcbiAgICAvKiogXG4gICAgICogVG8gZGVub3RlIHdoZXRoZXIgdGhlIHZpZXcgbmFtZSBnaXZlbiBvbiB0aGUgYG9wdGlvbmAgaXMgYWN0aXZlIG9yIG5vdC4gXG4gICAgICogSXQgYWN0cyBzaW1pbGFyIHRvIHRoZSBbYGN1cnJlbnRWaWV3YF0oLi4vLi4vc2NoZWR1bGUvI2N1cnJlbnQtdmlldy8pIFxuICAgICAqIHByb3BlcnR5IGFuZCBkZWZpbmVzIHRoZSBhY3RpdmUgdmlldyBvZiBTY2hlZHVsZS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlbGVjdGVkOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFNwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZXZlbnRzIHRvIGJlIGRpc3BsYXllZCBpbiBhIHNpbmdsZSByb3cuIFxuICAgICAqIFRoaXMgcHJvcGVydHkgaXMgYXBwbGljYWJsZSB3aGVuIHRoZSAncm93QXV0b0hlaWdodCcgcHJvcGVydHkgaXMgZGlzYWJsZWQuIFxuICAgICAqIFRoaXMgcHJvcGVydHkgaXMgb25seSBhcHBsaWNhYmxlIGZvciB0aGUgbW9udGggdmlldywgdGltZWxpbmUgdmlld3MsIGFuZCB0aW1lbGluZSB5ZWFyIHZpZXcuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqL1xuICAgIHB1YmxpYyBtYXhFdmVudHNQZXJSb3c6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhpcyBvcHRpb24gYWxsb3dzIHRoZSB1c2VyIHRvIHNldCB0aGUgbnVtYmVyIG9mIG1vbnRocyBjb3VudCB0byBiZSBkaXNwbGF5ZWQgb24gdGhlIFNjaGVkdWxlLiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdzY2hlZHVsZS9tb250aHNDb3VudC9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCAxMlxuICAgICAqIEBhc3B0eXBlIGludFxuICAgICAqL1xuICAgIHB1YmxpYyBtb250aHNDb3VudDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBUaGlzIHByb3BlcnR5IGN1c3RvbWl6ZXMgdGhlIG51bWJlciBvZiB3ZWVrcyB0aGF0IGFyZSBzaG93biBpbiBtb250aCB2aWV3LiBCeSBkZWZhdWx0LCBpdCBzaG93cyBhbGwgd2Vla3MgaW4gdGhlIGN1cnJlbnQgbW9udGguIFxuICAgICAqICBVc2UgZGlzcGxheURhdGUgcHJvcGVydHkgdG8gY3VzdG9taXplIHRoZSBzdGFydGluZyB3ZWVrIG9mIG1vbnRoLiBcbiAgICAgKiB7JSBjb2RlQmxvY2sgc3JjPSdzY2hlZHVsZS9udW1iZXJPZldlZWtzL2luZGV4Lm1kJyAlfXslIGVuZGNvZGVCbG9jayAlfVxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKiBAYXNwdHlwZSBpbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgbnVtYmVyT2ZXZWVrczogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBhY2NlcHRzIHRoZSBzY2hlZHVsZSB2aWV3IG5hbWUsIGJhc2VkIG9uIHdoaWNoIHdlIGNhbiBkZWZpbmUgd2l0aCBpdHMgcmVsYXRlZCBwcm9wZXJ0aWVzIGluIGEgc2luZ2xlIG9iamVjdC4gXG4gICAgICogVGhlIGFwcGxpY2FibGUgdmlldyBuYW1lcyBhcmUsIFxuICAgICAqICogRGF5IC0gRGVub3RlcyBEYXkgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIFdlZWsgLSBEZW5vdGVzIFdlZWsgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIFdvcmtXZWVrIC0gRGVub3RlcyBXb3JrIFdlZWsgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIE1vbnRoIC0gRGVub3RlcyBNb250aCB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogWWVhciAtIERlbm90ZXMgWWVhciB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogQWdlbmRhIC0gRGVub3RlcyBBZ2VuZGEgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIE1vbnRoQWdlbmRhIC0gRGVub3RlcyBNb250aCBBZ2VuZGEgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIFRpbWVsaW5lRGF5IC0gRGVub3RlcyBUaW1lbGluZSBEYXkgdmlldyBvZiB0aGUgc2NoZWR1bGVyLiBcbiAgICAgKiAqIFRpbWVsaW5lV2VlayAtIERlbm90ZXMgVGltZWxpbmUgV2VlayB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogVGltZWxpbmVXb3JrV2VlayAtIERlbm90ZXMgVGltZWxpbmUgV29yayBXZWVrIHZpZXcgb2YgdGhlIHNjaGVkdWxlci4gXG4gICAgICogKiBUaW1lbGluZU1vbnRoIC0gRGVub3RlcyBUaW1lbGluZSBNb250aCB2aWV3IG9mIHRoZSBzY2hlZHVsZXIuIFxuICAgICAqICogVGltZWxpbmVZZWFyIC0gRGVub3RlcyBUaW1lbGluZSBZZWFyIHZpZXcgb2YgdGhlIHNjaGVkdWxlci5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIG9wdGlvbjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHllYXIgdmlldyByZW5kZXJpbmcgb3JpZW50YXRpb24gb24gdGhlIHNjaGVkdWxlLiBcbiAgICAgKiBUaGUgYXBwbGljYWJsZSBvcmllbnRhdGlvbiB2YWx1ZXMgYXJlLCBcbiAgICAgKiAqIEhvcml6b250YWwgLSBEZW5vdGVzIHRoZSBob3Jpem9udGFsIG9yaWVudGF0aW9uIG9mIFRpbWVsaW5lIFllYXIgdmlldy4gXG4gICAgICogKiBWZXJ0aWNhbCAtIERlbm90ZXMgdGhlIHZlcnRpY2FsIG9yaWVudGF0aW9uIG9mIFRpbWVsaW5lIFllYXIgdmlldy5cbiAgICAgKiBAZGVmYXVsdCAnSG9yaXpvbnRhbCdcbiAgICAgKi9cbiAgICBwdWJsaWMgb3JpZW50YXRpb246IGFueTtcbiAgICAvKiogXG4gICAgICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCByb3dzIG9yIGNvbHVtbnMgdG8gcmVuZGVyIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSBkdXJpbmcgdmlydHVhbCBzY3JvbGxpbmcuIFxuICAgICAqIFRoaXMgcHJvcGVydHkgaGVscHMgaW4gYWNoaWV2aW5nIHNtb290aGVyIHNjcm9sbGluZyBieSBwcmUtbG9hZGluZyBkYXRhIGp1c3Qgb3V0c2lkZSB0aGUgdmlzaWJsZSByZWdpb24uXG4gICAgICogQHJlbWFya3MgVGhlIGRlZmF1bHQgdmFsdWUgaXMgMy4gSW5jcmVhc2luZyB0aGlzIHZhbHVlIGNhbiByZXN1bHQgaW4gc21vb3RoZXIgc2Nyb2xsaW5nIGJ1dCBtYXkgaW1wYWN0IHBlcmZvcm1hbmNlXG53aXRoIGxhcmdlciBkYXRhc2V0cy4gRGVjcmVhc2luZyBpdCBjYW4gaW1wcm92ZSBwZXJmb3JtYW5jZSBidXQgbWF5IGNhdXNlIG1vcmUgZnJlcXVlbnQgZGF0YSBmZXRjaGVzIGR1cmluZyBzY3JvbGxpbmcuXG5UaGlzIHByb3BlcnR5IG9ubHkgdGFrZXMgZWZmZWN0IHdoZW4gYGFsbG93VmlydHVhbFNjcm9sbGluZ2AgaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJlbnQgdmlldy5cblxuICAgICAqIEBkZWZhdWx0IDNcbiAgICAgKi9cbiAgICBwdWJsaWMgb3ZlcnNjYW5Db3VudDogYW55O1xuICAgIC8qKiBcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIGRpc3BsYXlzIGEgcXVpY2sgcG9wdXAgd2l0aCBjZWxsIG9yIGV2ZW50IGRldGFpbHMgb24gc2luZ2xlIGNsaWNraW5nIG92ZXIgdGhlIGNlbGxzIG9yIG9uIGV2ZW50cy4gXG4gICAgICogIEJ5IGRlZmF1bHQsIGl0IGlzIHNldCB0byBgdHJ1ZWAuIEl0IGdldHMgYXBwbGllZCBvbmx5IHRvIHRoZSB2aWV3IG9iamVjdHMgb24gd2hpY2ggaXQgaXMgZGVmaW5lZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBXaGVuIHNldCB0byBgdHJ1ZWAsIGRpc3BsYXlzIHRoZSB3ZWVrIG51bWJlciBvZiB0aGUgY3VycmVudCB2aWV3IGRhdGUgcmFuZ2UuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd1dlZWtOdW1iZXI6IGFueTtcbiAgICAvKiogXG4gICAgICogV2hlbiBzZXQgdG8gYGZhbHNlYCwgaXQgaGlkZXMgdGhlIHdlZWtlbmQgZGF5cyBvZiBhIHdlZWsgZnJvbSB0aGUgU2NoZWR1bGUuIFxuICAgICAqIFRoZSBkYXlzIHdoaWNoIGFyZSBub3QgZGVmaW5lZCBpbiB0aGUgd29ya2luZyBkYXlzIGNvbGxlY3Rpb24gYXJlIHVzdWFsbHkgdHJlYXRlZCBhcyB3ZWVrZW5kIGRheXMuIFxuICAgICAqIE5vdGU6IEJ5IGRlZmF1bHQsIHRoaXMgb3B0aW9uIGlzIG5vdCBhcHBsaWNhYmxlIG9uIGBXb3JrIFdlZWtgIHZpZXcuIFxuICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgd29ya2luZyBkYXlzIGFyZSBkZWZpbmVkIGFzIFsxLCAyLCAzLCA0XSwgdGhlbiB0aGUgcmVtYWluaW5nIGRheXMgb2YgdGhhdCB3ZWVrIHdpbGwgYmUgY29uc2lkZXJlZCBhcyB0aGUgXG4gICAgICogIHdlZWtlbmQgZGF5cyBhbmQgd2lsbCBiZSBoaWRkZW4gb24gYWxsIHRoZSB2aWV3cy5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgcHVibGljIHNob3dXZWVrZW5kOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgc3RhcnRpbmcgaG91ciwgZnJvbSB3aGljaCB0aGUgU2NoZWR1bGUgc3RhcnRzIHRvIGRpc3BsYXkuIFxuICAgICAqICBJdCBhY2NlcHRzIHRoZSB0aW1lIHN0cmluZyBpbiBhIHNob3J0IHNrZWxldG9uIGZvcm1hdCBhbmQgYWxzbywgaGlkZXMgdGhlIHRpbWUgYmV5b25kIHRoZSBzcGVjaWZpZWQgc3RhcnQgdGltZS5cbiAgICAgKiBAZGVmYXVsdCAnMDA6MDAnXG4gICAgICovXG4gICAgcHVibGljIHN0YXJ0SG91cjogYW55O1xuICAgIC8qKiBcbiAgICAgKiBCeSBkZWZhdWx0LCBTY2hlZHVsZSBmb2xsb3dzIHRoZSB0aW1lLWZvcm1hdCBhcyBwZXIgdGhlIGRlZmF1bHQgY3VsdHVyZSBhc3NpZ25lZCB0byBpdC4gXG4gICAgICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBtYW51YWxseSBzZXQgc3BlY2lmaWMgdGltZSBmb3JtYXQgYnkgdXNpbmcgdGhlIGB0aW1lRm9ybWF0YCBwcm9wZXJ0eS4gXG4gICAgICogeyUgY29kZUJsb2NrIHNyYz0nc2NoZWR1bGUvdGltZUZvcm1hdC9pbmRleC5tZCcgJX17JSBlbmRjb2RlQmxvY2sgJX1cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICovXG4gICAgcHVibGljIHRpbWVGb3JtYXQ6IGFueTtcbiAgICAvKiogXG4gICAgICogQWxsb3dzIHRvIHNldCBkaWZmZXJlbnQgdGltZXNjYWxlIGNvbmZpZ3VyYXRpb24gb24gZWFjaCBhcHBsaWNhYmxlIHZpZXcgbW9kZXMgc3VjaCBhcyBkYXksIHdlZWsgYW5kIHdvcmsgd2Vlay5cbiAgICAgKiBAZGVmYXVsdCB7IGVuYWJsZTogdHJ1ZSwgaW50ZXJ2YWw6IDYwLCBzbG90Q291bnQ6IDIsIG1ham9yU2xvdFRlbXBsYXRlOiBudWxsLCBtaW5vclNsb3RUZW1wbGF0ZTogbnVsbCB9XG4gICAgICovXG4gICAgcHVibGljIHRpbWVTY2FsZTogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBpcyB1c2VkIHRvIHNldCB0aGUgd29ya2luZyBkYXlzIG9uIHNjaGVkdWxlLiBUaGUgb25seSBkYXlzIHRoYXQgYXJlIGRlZmluZWQgaW4gdGhpcyBjb2xsZWN0aW9uIHdpbGwgYmUgcmVuZGVyZWQgb24gdGhlIFxuICAgICAqICBgd29ya1dlZWtgIHZpZXcgd2hlcmVhcyBvbiBvdGhlciB2aWV3cywgaXQgd2lsbCBkaXNwbGF5IGFsbCB0aGUgdXN1YWwgZGF5cyBhbmQgc2ltcGx5IGhpZ2hsaWdodHMgdGhlIHdvcmtpbmcgZGF5cyB3aXRoIGRpZmZlcmVudCBcbiAgICAgKiAgc2hhZGUuXG4gICAgICogQGRlZmF1bHQgJ1sxLCAyLCAzLCA0LCA1XSdcbiAgICAgKiBAYXNwdHlwZSBpbnRbXVxuICAgICAqL1xuICAgIHB1YmxpYyB3b3JrRGF5czogYW55O1xuICAgIC8qKiBcbiAgICAgKiBJdCBhY2NlcHRzIGVpdGhlciB0aGUgc3RyaW5nIG9yIEhUTUxFbGVtZW50IGFzIHRlbXBsYXRlIGRlc2lnbiBjb250ZW50IGFuZCBwYXJzZSBpdCBhcHByb3ByaWF0ZWx5IGJlZm9yZSBkaXNwbGF5aW5nIGl0IG9udG8gdGhlIFxuICAgICAqICBkYXRlIGhlYWRlciBjZWxscy4gVGhlIGZpZWxkIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIHZpYSB0aGlzIHRlbXBsYXRlIGlzIGBkYXRlYC4gXG4gICAgICogIEl0IGdldHMgYXBwbGllZCBvbmx5IHRvIHRoZSB2aWV3IG9iamVjdHMgb24gd2hpY2ggaXQgaXMgZGVmaW5lZC5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF0ZUhlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBkYXRlSGVhZGVyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gY29udGVudCBhbmQgcGFyc2UgaXQgYXBwcm9wcmlhdGVseSBiZWZvcmUgZGlzcGxheWluZyBpdCBvbnRvIHRoZSBoZWFkZXIgZGF0ZSByYW5nZS5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFuZ3VsYXJ0eXBlIHN0cmluZyB8IG9iamVjdFxuICAgICAqIEByZWFjdHR5cGUgc3RyaW5nIHwgZnVuY3Rpb24gfCBKU1guRWxlbWVudFxuICAgICAqIEB2dWV0eXBlIHN0cmluZyB8IGZ1bmN0aW9uXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF0ZVJhbmdlVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGRhdGVSYW5nZVRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byB0aGUgXG4gICAgICogIFllYXIgdmlldyBkYXkgY2VsbCBoZWFkZXIuIFxuICAgICAqICBUaGlzIHRlbXBsYXRlIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgeWVhciB2aWV3IGhlYWRlciBjZWxscy5cbiAgICAgKiBAZGVmYXVsdCBudWxsXG4gICAgICogQGFuZ3VsYXJ0eXBlIHN0cmluZyB8IG9iamVjdFxuICAgICAqIEByZWFjdHR5cGUgc3RyaW5nIHwgZnVuY3Rpb24gfCBKU1guRWxlbWVudFxuICAgICAqIEB2dWV0eXBlIHN0cmluZyB8IGZ1bmN0aW9uXG4gICAgICogQGFzcHR5cGUgc3RyaW5nXG4gICAgICovXG4gICAgQENvbnRlbnRDaGlsZCgnZGF5SGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGRheUhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byB0aGUgXG4gICAgICogIG1vbnRoIGRhdGUgY2VsbHMuIFxuICAgICAqICBUaGlzIHRlbXBsYXRlIGlzIG9ubHkgYXBwbGljYWJsZSBmb3IgbW9udGggdmlldyBkYXkgY2VsbHMuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhbmd1bGFydHlwZSBzdHJpbmcgfCBvYmplY3RcbiAgICAgKiBAcmVhY3R0eXBlIHN0cmluZyB8IGZ1bmN0aW9uIHwgSlNYLkVsZW1lbnRcbiAgICAgKiBAdnVldHlwZSBzdHJpbmcgfCBmdW5jdGlvblxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGxIZWFkZXJUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY2VsbEhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBvcHRpb24gd2hpY2ggaXMgdXNlZCB0byByZW5kZXIgdGhlIGN1c3RvbWl6ZWQgd29yayBjZWxscyBvbiB0aGUgU2NoZWR1bGUuIEhlcmUsIHRoZSBcbiAgICAgKiAgdGVtcGxhdGUgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gYW5kIHRoZW4gdGhlIHBhcnNlZCBkZXNpZ24gaXMgZGlzcGxheWVkIG9udG8gdGhlIHdvcmsgY2VsbHMuIFxuICAgICAqICBUaGUgZmllbGQgYWNjZXNzaWJsZSB2aWEgdGVtcGxhdGUgaXMgYGRhdGVgLiBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhbmd1bGFydHlwZSBzdHJpbmcgfCBvYmplY3RcbiAgICAgKiBAcmVhY3R0eXBlIHN0cmluZyB8IGZ1bmN0aW9uIHwgSlNYLkVsZW1lbnRcbiAgICAgKiBAdnVldHlwZSBzdHJpbmcgfCBmdW5jdGlvblxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2NlbGxUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgY2VsbFRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIEl0IGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGNvbnRlbnQgYW5kIHBhcnNlIGl0IGFwcHJvcHJpYXRlbHkgYmVmb3JlIGRpc3BsYXlpbmcgaXQgb250byBcbiAgICAgKiAgdGhlIGV2ZW50IGJhY2tncm91bmQuIEFsbCB0aGUgZXZlbnQgZmllbGRzIG1hcHBlZCB0byBTY2hlZHVsZSBmcm9tIGRhdGFTb3VyY2UgY2FuIGJlIGFjY2Vzc2VkIHdpdGhpbiB0aGlzIHRlbXBsYXRlIGNvZGUuIFxuICAgICAqICBJdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgdGhlIGB0ZW1wbGF0ZWAgb3B0aW9uIGF2YWlsYWJsZSB3aXRoaW4gdGhlIGBldmVudFNldHRpbmdzYCBwcm9wZXJ0eSwgXG4gICAgICogIHdoZXJlYXMgaXQgd2lsbCBnZXQgYXBwbGllZCBvbmx5IG9uIHRoZSBldmVudHMgb2YgdGhlIHZpZXcgdG8gd2hpY2ggaXQgaXMgY3VycmVudGx5IGJlaW5nIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhbmd1bGFydHlwZSBzdHJpbmcgfCBvYmplY3RcbiAgICAgKiBAcmVhY3R0eXBlIHN0cmluZyB8IGZ1bmN0aW9uIHwgSlNYLkVsZW1lbnRcbiAgICAgKiBAdnVldHlwZSBzdHJpbmcgfCBmdW5jdGlvblxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2V2ZW50VGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGV2ZW50VGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogSXQgYWNjZXB0cyBlaXRoZXIgdGhlIHN0cmluZyBvciBIVE1MRWxlbWVudCBhcyB0ZW1wbGF0ZSBkZXNpZ24gY29udGVudCBhbmQgcGFyc2UgaXQgYXBwcm9wcmlhdGVseSBiZWZvcmUgZGlzcGxheWluZyBpdCBvbnRvIHRoZSBcbiAgICAgKiAgWWVhciB2aWV3IGRheSBjZWxsIGhlYWRlci4gXG4gICAgICogIFRoaXMgdGVtcGxhdGUgaXMgb25seSBhcHBsaWNhYmxlIGZvciB5ZWFyIHZpZXcgaGVhZGVyIGNlbGxzLlxuICAgICAqIEBkZWZhdWx0IG51bGxcbiAgICAgKiBAYW5ndWxhcnR5cGUgc3RyaW5nIHwgb2JqZWN0XG4gICAgICogQHJlYWN0dHlwZSBzdHJpbmcgfCBmdW5jdGlvbiB8IEpTWC5FbGVtZW50XG4gICAgICogQHZ1ZXR5cGUgc3RyaW5nIHwgZnVuY3Rpb25cbiAgICAgKiBAYXNwdHlwZSBzdHJpbmdcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKCdtb250aEhlYWRlclRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBtb250aEhlYWRlclRlbXBsYXRlOiBhbnk7XG4gICAgLyoqIFxuICAgICAqIFRoZSB0ZW1wbGF0ZSBvcHRpb24gd2hpY2ggaXMgdXNlZCB0byByZW5kZXIgdGhlIGN1c3RvbWl6ZWQgaGVhZGVyIGNlbGxzIG9uIHRoZSBzY2hlZHVsZS4gSGVyZSwgdGhlIFxuICAgICAqICB0ZW1wbGF0ZSBhY2NlcHRzIGVpdGhlciB0aGUgc3RyaW5nIG9yIEhUTUxFbGVtZW50IGFzIHRlbXBsYXRlIGRlc2lnbiBhbmQgdGhlbiB0aGUgcGFyc2VkIGRlc2lnbiBpcyBkaXNwbGF5ZWQgb250byB0aGUgaGVhZGVyIGNlbGxzLiBcbiAgICAgKiAgQWxsIHRoZSByZXNvdXJjZSBmaWVsZHMgbWFwcGVkIHdpdGhpbiByZXNvdXJjZXMgY2FuIGJlIGFjY2Vzc2VkIHdpdGhpbiB0aGlzIHRlbXBsYXRlIGNvZGUuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhbmd1bGFydHlwZSBzdHJpbmcgfCBvYmplY3RcbiAgICAgKiBAcmVhY3R0eXBlIHN0cmluZyB8IGZ1bmN0aW9uIHwgSlNYLkVsZW1lbnRcbiAgICAgKiBAdnVldHlwZSBzdHJpbmcgfCBmdW5jdGlvblxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ3Jlc291cmNlSGVhZGVyVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHJlc291cmNlSGVhZGVyVGVtcGxhdGU6IGFueTtcbiAgICAvKiogXG4gICAgICogVGhlIHRlbXBsYXRlIG9wdGlvbiB3aGljaCBpcyB1c2VkIHRvIHJlbmRlciB0aGUgY3VzdG9taXplZCBoZWFkZXIgaW5kZW50IGNlbGwgb24gdGhlIHNjaGVkdWxlLiBIZXJlLCB0aGUgXG4gICAgICogIHRlbXBsYXRlIGFjY2VwdHMgZWl0aGVyIHRoZSBzdHJpbmcgb3IgSFRNTEVsZW1lbnQgYXMgdGVtcGxhdGUgZGVzaWduIGFuZCB0aGVuIHRoZSBwYXJzZWQgZGVzaWduIGlzIGRpc3BsYXllZCBvbnRvIHRoZSBoZWFkZXIgaW5kZW50IGNlbGwuIFxuICAgICAqICBJdCBnZXRzIGFwcGxpZWQgb25seSB0byB0aGUgdmlldyBvYmplY3RzIG9uIHdoaWNoIGl0IGlzIGRlZmluZWQuXG4gICAgICogQGRlZmF1bHQgbnVsbFxuICAgICAqIEBhbmd1bGFydHlwZSBzdHJpbmcgfCBvYmplY3RcbiAgICAgKiBAcmVhY3R0eXBlIHN0cmluZyB8IGZ1bmN0aW9uIHwgSlNYLkVsZW1lbnRcbiAgICAgKiBAdnVldHlwZSBzdHJpbmcgfCBmdW5jdGlvblxuICAgICAqIEBhc3B0eXBlIHN0cmluZ1xuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoJ2hlYWRlckluZGVudFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyBoZWFkZXJJbmRlbnRUZW1wbGF0ZTogYW55O1xuICAgIEBDb250ZW50Q2hpbGQoJ3RpbWVTY2FsZU1pbm9yU2xvdFRlbXBsYXRlJylcbiAgICBAVGVtcGxhdGUoKVxuICAgIHB1YmxpYyB0aW1lU2NhbGVfbWlub3JTbG90VGVtcGxhdGU6IGFueTtcbiAgICBAQ29udGVudENoaWxkKCd0aW1lU2NhbGVNYWpvclNsb3RUZW1wbGF0ZScpXG4gICAgQFRlbXBsYXRlKClcbiAgICBwdWJsaWMgdGltZVNjYWxlX21ham9yU2xvdFRlbXBsYXRlOiBhbnk7XG4gICAgQENvbnRlbnRDaGlsZCgnZ3JvdXBIZWFkZXJUb29sdGlwVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIGdyb3VwX2hlYWRlclRvb2x0aXBUZW1wbGF0ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOlZpZXdDb250YWluZXJSZWYpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgc2V0VmFsdWUoJ2N1cnJlbnRJbnN0YW5jZScsIHRoaXMsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuZGlyZWN0aXZlUHJvcExpc3QgPSBpbnB1dDtcbiAgICB9XG59XG5cbi8qKlxuICogVmlldyBBcnJheSBEaXJlY3RpdmVcbiAqIEBwcml2YXRlXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnZWpzLXNjaGVkdWxlPmUtdmlld3MnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRyZW46IG5ldyBDb250ZW50Q2hpbGRyZW4oVmlld0RpcmVjdGl2ZSlcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBWaWV3c0RpcmVjdGl2ZSBleHRlbmRzIEFycmF5QmFzZTxWaWV3c0RpcmVjdGl2ZT4ge1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigndmlld3MnKTtcbiAgICB9XG59Il19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public_api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3luY2Z1c2lvbi1lajItYW5ndWxhci1zY2hlZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3N5bmNmdXNpb24tZWoyLWFuZ3VsYXItc2NoZWR1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWNfYXBpJztcbiJdfQ==