@colijnit/corecomponents_v12 12.0.15 → 12.0.16

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 (81) hide show
  1. package/bundles/colijnit-corecomponents_v12.umd.js +367 -40
  2. package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -1
  3. package/colijnit-corecomponents_v12.metadata.json +1 -1
  4. package/esm2015/lib/components/base/base-input.component.js +13 -13
  5. package/esm2015/lib/components/co-dialog/co-dialog.component.js +46 -48
  6. package/esm2015/lib/components/co-dialog/co-dialog.module.js +7 -4
  7. package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.component.js +6 -6
  8. package/esm2015/lib/components/co-kanban/co-kanban.component.js +7 -3
  9. package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.component.js +2 -2
  10. package/esm2015/lib/components/collapsible/collapsible.component.js +58 -0
  11. package/esm2015/lib/components/collapsible/collapsible.module.js +17 -0
  12. package/esm2015/lib/components/grid/base/base-grid.component.js +1 -1
  13. package/esm2015/lib/components/grid/base/base-selection-grid.component.js +1 -1
  14. package/esm2015/lib/components/grid/co-grid.component.js +2 -2
  15. package/esm2015/lib/components/input-listbox/input-listbox.component.js +66 -0
  16. package/esm2015/lib/components/input-listbox/input-listbox.module.js +25 -0
  17. package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +48 -23
  18. package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +5 -3
  19. package/esm2015/lib/components/pivot/co-pivot.component.js +2 -2
  20. package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +36 -0
  21. package/esm2015/lib/components/simple-grid/simple-grid.component.js +112 -0
  22. package/esm2015/lib/components/simple-grid/simple-grid.module.js +24 -0
  23. package/esm2015/public-api.js +8 -1
  24. package/fesm2015/colijnit-corecomponents_v12.js +421 -77
  25. package/fesm2015/colijnit-corecomponents_v12.js.map +1 -1
  26. package/lib/components/base/base-input.component.d.ts +8 -8
  27. package/lib/components/button/style/_co-ripple.scss +69 -0
  28. package/lib/components/button/style/_layout.scss +7 -3
  29. package/lib/components/button/style/_material-definition.scss +1 -0
  30. package/lib/components/button/style/_theme.scss +0 -24
  31. package/lib/components/button/style/material.scss +18 -0
  32. package/lib/components/co-dialog/co-dialog.component.d.ts +6 -13
  33. package/lib/components/co-dialog/style/_layout.scss +47 -0
  34. package/lib/components/co-dialog/style/_material-definition.scss +23 -0
  35. package/lib/components/co-dialog/style/_theme.scss +27 -0
  36. package/lib/components/co-dialog/style/material.scss +4 -0
  37. package/lib/components/co-dialog-prompt/co-dialog-prompt.component.d.ts +2 -2
  38. package/lib/components/co-kanban/co-kanban.component.d.ts +1 -0
  39. package/lib/components/co-kanban/style/_layout.scss +51 -0
  40. package/lib/components/co-kanban/style/_material-definition.scss +25 -0
  41. package/lib/components/co-kanban/style/_theme.scss +7 -0
  42. package/lib/components/co-kanban/style/material.scss +13 -0
  43. package/lib/components/co-rich-text-editor/co-rich-text-editor.component.d.ts +1 -1
  44. package/lib/components/co-toggle/co-toggle.component.scss +1 -0
  45. package/lib/components/collapsible/collapsible.component.d.ts +16 -0
  46. package/lib/components/collapsible/collapsible.module.d.ts +2 -0
  47. package/lib/components/collapsible/style/_layout.scss +53 -0
  48. package/lib/components/collapsible/style/_material-definition.scss +9 -0
  49. package/lib/components/collapsible/style/_theme.scss +9 -0
  50. package/lib/components/collapsible/style/material.scss +4 -0
  51. package/lib/components/grid/base/base-selection-grid.component.d.ts +1 -2
  52. package/lib/components/grid/co-grid.component.d.ts +1 -1
  53. package/lib/components/input-listbox/input-listbox.component.d.ts +14 -0
  54. package/lib/components/input-listbox/input-listbox.module.d.ts +2 -0
  55. package/lib/components/input-listbox/style/_layout.scss +22 -0
  56. package/lib/components/input-listbox/style/_material-definition.scss +10 -0
  57. package/lib/components/input-listbox/style/_theme.scss +14 -0
  58. package/lib/components/input-listbox/style/material.scss +4 -0
  59. package/lib/components/input-number-picker/input-number-picker.component.d.ts +5 -1
  60. package/lib/components/input-number-picker/style/_layout.scss +43 -0
  61. package/lib/components/input-number-picker/style/_material-definition.scss +17 -0
  62. package/lib/components/input-number-picker/style/_theme.scss +22 -0
  63. package/lib/components/input-number-picker/style/material.scss +4 -0
  64. package/lib/components/input-search/style/_layout.scss +42 -0
  65. package/lib/components/input-search/style/_material-definition.scss +6 -0
  66. package/lib/components/input-search/style/_theme.scss +10 -0
  67. package/lib/components/input-search/style/material.scss +4 -0
  68. package/lib/components/pivot/co-pivot.component.d.ts +2 -2
  69. package/lib/components/simple-grid/simple-grid-column.directive.d.ts +18 -0
  70. package/lib/components/simple-grid/simple-grid.component.d.ts +26 -0
  71. package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
  72. package/lib/components/simple-grid/style/_layout.scss +80 -0
  73. package/lib/components/simple-grid/style/_material-definition.scss +16 -0
  74. package/lib/components/simple-grid/style/_theme.scss +17 -0
  75. package/lib/components/simple-grid/style/material.scss +4 -0
  76. package/lib/style/material2/_core.scss +3 -3
  77. package/lib/style/material2/_material2-scss-barrel.scss +10 -10
  78. package/package.json +1 -1
  79. package/public-api.d.ts +7 -0
  80. package/lib/components/co-dialog/co-dialog.component.scss +0 -0
  81. package/lib/components/input-number-picker/input-number-picker.component.scss +0 -49
@@ -1,16 +1,16 @@
1
1
  import { __decorate } from "tslib";
2
- import { ChangeDetectorRef, ElementRef, EventEmitter, HostBinding, HostListener, Injectable, Input, Optional, Output, ViewChild, Directive } from '@angular/core';
3
- import { NgModel } from '@angular/forms';
4
- import { isNill } from '../../core/function/is-nill.function';
5
- import { notNill } from '../../core/function/not-nill.function';
6
- import { InputBoolean, InputBooleanDecorator } from '../../core/decorator/input-boolean.decorator';
7
- import { requiredValidator } from '../../core/validator/required.validator';
8
- import { precisionScaleValidator } from '../../core/validator/precision-scale.validator';
9
- import { maxStringLengthValidator } from '../../core/validator/max-string-length.validator';
10
- import { StringUtils } from '../../core/utils/string-utils';
11
- import { FormInputUserModelChangeListenerService } from '../../core/service/form-input-user-change-listener.service';
12
- import { NumberUtils } from '../../core/utils/number-utils';
13
- import { NgZoneWrapperService } from '../../core/service/ng-zone-wrapper.service';
2
+ import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, HostBinding, HostListener, Injectable, Input, Optional, Output, ViewChild } from "@angular/core";
3
+ import { NgModel } from "@angular/forms";
4
+ import { isNill } from "../../core/function/is-nill.function";
5
+ import { notNill } from "../../core/function/not-nill.function";
6
+ import { InputBoolean, InputBooleanDecorator } from "../../core/decorator/input-boolean.decorator";
7
+ import { requiredValidator } from "../../core/validator/required.validator";
8
+ import { precisionScaleValidator } from "../../core/validator/precision-scale.validator";
9
+ import { maxStringLengthValidator } from "../../core/validator/max-string-length.validator";
10
+ import { StringUtils } from "../../core/utils/string-utils";
11
+ import { FormInputUserModelChangeListenerService } from "../../core/service/form-input-user-change-listener.service";
12
+ import { NumberUtils } from "../../core/utils/number-utils";
13
+ import { NgZoneWrapperService } from "../../core/service/ng-zone-wrapper.service";
14
14
  /**
15
15
  * Abstract base class for all concrete form input components that contain a native <input> element. Provides common data and functionality, such as
16
16
  * adding self as a control to the parent form.
@@ -568,4 +568,4 @@ __decorate([
568
568
  __decorate([
569
569
  InputBoolean()
570
570
  ], BaseInputComponent.prototype, "noFormGroupControl", void 0);
571
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixpQkFBaUIsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BNLE9BQU8sRUFBaUMsT0FBTyxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFFckYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDNUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3JILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUlsRjs7O0dBR0c7QUFHSCxNQUFNLE9BQWdCLGtCQUFrQjtJQTRWcEMsWUFDYyxjQUFpQyxFQUNyQixzQkFBZ0U7SUFD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LGdCQUFnQjs2QkFLNUIsV0FBVyxTQUFDLDBCQUEwQjtvQkFLdEMsV0FBVyxTQUFDLGFBQWE7aUNBS3pCLFdBQVcsU0FBQyxxQkFBcUI7c0JBMklqQyxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO3dCQVVoQyxZQUFZLFNBQUMsU0FBUzs7QUF0YXZCO0lBRFUsWUFBWSxFQUFFO3dEQUNhO0FBR3JDO0lBRFUsWUFBWSxFQUFFO3FEQUNFO0FBRzFCO0lBRFUsWUFBWSxFQUFFO3dEQUNLO0FBK0U3QjtJQURVLFlBQVksRUFBRTt5REFDYztBQTZIdEM7SUFEVSxZQUFZLEVBQUU7dURBQ1k7QUFHcEM7SUFEVSxZQUFZLEVBQUU7NkRBQ2tCO0FBRzFDO0lBRFUsWUFBWSxFQUFFO3FEQUNVO0FBR2xDO0lBRFUsWUFBWSxFQUFFO3FEQUNVO0FBR2xDO0lBRFUsWUFBWSxFQUFFO2tFQUN1QjtBQUcvQztJQURVLFlBQVksRUFBRTs4REFDbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbmplY3RhYmxlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBPdXRwdXQsIFZpZXdDaGlsZCwgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFzeW5jVmFsaWRhdG9yRm4sIEZvcm1Db250cm9sLCBOZ01vZGVsLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29uZmlndXJhdGlvbkFkYXB0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbmZpZ3VyYXRpb24tYWRhcHRlci1jb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgaXNOaWxsIH0gZnJvbSAnLi4vLi4vY29yZS9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uJztcclxuaW1wb3J0IHsgbm90TmlsbCB9IGZyb20gJy4uLy4uL2NvcmUvZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb24nO1xyXG5pbXBvcnQgeyBJbnB1dEJvb2xlYW4sIElucHV0Qm9vbGVhbkRlY29yYXRvciB9IGZyb20gJy4uLy4uL2NvcmUvZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yJztcclxuaW1wb3J0IHsgcmVxdWlyZWRWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRvci9yZXF1aXJlZC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBwcmVjaXNpb25TY2FsZVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL2NvcmUvdmFsaWRhdG9yL3ByZWNpc2lvbi1zY2FsZS52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBtYXhTdHJpbmdMZW5ndGhWYWxpZGF0b3IgfSBmcm9tICcuLi8uLi9jb3JlL3ZhbGlkYXRvci9tYXgtc3RyaW5nLWxlbmd0aC52YWxpZGF0b3InO1xyXG5pbXBvcnQgeyBTdHJpbmdVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvc3RyaW5nLXV0aWxzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZvcm1JbnB1dFVzZXJNb2RlbENoYW5nZUxpc3RlbmVyU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZS9mb3JtLWlucHV0LXVzZXItY2hhbmdlLWxpc3RlbmVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOdW1iZXJVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvbnVtYmVyLXV0aWxzJztcclxuaW1wb3J0IHsgTmdab25lV3JhcHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2Uvbmctem9uZS13cmFwcGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb3JlQ29tcG9uZW50c0ljb24gfSBmcm9tICcuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bSc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9mb3JtL2Zvcm0uY29tcG9uZW50JztcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgY29uY3JldGUgZm9ybSBpbnB1dCBjb21wb25lbnRzIHRoYXQgY29udGFpbiBhIG5hdGl2ZSA8aW5wdXQ+IGVsZW1lbnQuIFByb3ZpZGVzIGNvbW1vbiBkYXRhIGFuZCBmdW5jdGlvbmFsaXR5LCBzdWNoIGFzXHJcbiAqIGFkZGluZyBzZWxmIGFzIGEgY29udHJvbCB0byB0aGUgcGFyZW50IGZvcm0uXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbmZpZ3VyYXRpb25BZGFwdGVyQ29tcG9uZW50IHtcclxuXHJcbiAgICBnZXQgbmdNb2RlbCgpOiBOZ01vZGVsIHtcclxuICAgICAgICBpZiAodGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZS5uZ01vZGVsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uZ01vZGVsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEJhc2VGb3JtSW5wdXRDb21wb25lbnRJbmRleDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgSGlkZGVuQ2xhc3M6IHN0cmluZyA9IFwiaGlkZGVuXCI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgbW9kZWwodmFsdWU6IFQpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCk6IFQge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGluaXRGb2N1czogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBub0NsaWNrRm9jdXM6IGJvb2xlYW47XHJcblxyXG4gICAgLy8gdXNlZCB0byBsaW5rIGZpZWxkIHRvIGJ1c2luZXNzIG9iamVjdCBmb3IgZGVlcC12YWxpZGF0aW9uXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGJ1c2luZXNzT2JqZWN0SWQ6IGFueTtcclxuXHJcbiAgICAvLyBASW5wdXQoKVxyXG4gICAgLy8gcHVibGljIGVycm9yTWVzc2FnZTogVmFsaWRhdGlvbk1lc3NhZ2U7XHJcblxyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChkaXNhYmxlZCA9PT0gdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IElucHV0Qm9vbGVhbkRlY29yYXRvci5JbnB1dFZhbHVlVG9Cb29sZWFuKGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgbWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRNYXhMZW5ndGgobWF4TGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1heExlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBub3ROaWxsKHRoaXMuZm9yY2VkTWF4TGVuZ3RoKSA/IHRoaXMuZm9yY2VkTWF4TGVuZ3RoIDogdGhpcy5fbWF4TGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9yY2VkTWF4TGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAodGhpcy5fZm9yY2VSZWFkb25seSAhPT0gdW5kZWZpbmVkIHx8IHJlYWRvbmx5ID09PSB0aGlzLl9yZWFkb25seSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gSW5wdXRCb29sZWFuRGVjb3JhdG9yLklucHV0VmFsdWVUb0Jvb2xlYW4ocmVhZG9ubHkpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgICAgICBpZiAodGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSkge1xyXG4gICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JjZVJlYWRvbmx5IHx8IHRoaXMuX3JlYWRvbmx5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGZvcmNlUmVhZG9ubHkoZm9yY2VSZWFkb25seTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChmb3JjZVJlYWRvbmx5ID09PSB0aGlzLl9mb3JjZVJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZm9yY2VSZWFkb25seSA9IElucHV0Qm9vbGVhbkRlY29yYXRvci5JbnB1dFZhbHVlVG9Cb29sZWFuKGZvcmNlUmVhZG9ubHkpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZvcmNlUmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcmNlUmVhZG9ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAocmVxdWlyZWQgPT09IHRoaXMuX3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBJbnB1dEJvb2xlYW5EZWNvcmF0b3IuSW5wdXRWYWx1ZVRvQm9vbGVhbihyZXF1aXJlZCk7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbGlkYXRvcnNBbmRPd25GbGFncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9yY2VSZXF1aXJlZCB8fCB0aGlzLl9yZXF1aXJlZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBmb3JjZVJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7ICAvLyBhIGZvcmNlIG91dHNpZGUgb2YgW2NmZ05hbWVdJ3MgaW5mbHVlbmNlXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdKSB7XHJcbiAgICAgICAgaWYgKHZhbGlkYXRvcnMgPT09IHRoaXMuX3ZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gdmFsaWRhdG9ycztcclxuICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3JzO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10pIHtcclxuICAgICAgICB0aGlzLl9hc3luY1ZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFzeW5jVmFsaWRhdG9ycygpOiBBc3luY1ZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hc3luY1ZhbGlkYXRvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKFwiY2xhc3MuXCIgKyBCYXNlSW5wdXRDb21wb25lbnQuSGlkZGVuQ2xhc3MpXHJcbiAgICBwdWJsaWMgc2V0IGhpZGRlbihoaWRkZW46IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoaGlkZGVuID09PSB0aGlzLl9oaWRkZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faGlkZGVuID0gaGlkZGVuO1xyXG5cclxuICAgICAgICB0aGlzLl9hZGRPclJlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICBpZiAoaGlkZGVuKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGFjaCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5yZWF0dGFjaCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc09uUHVzaENkU3RyYXRlZ3kpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXNBZnRlckFuZ3VsYXIoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5oaWRkZW5DaGFuZ2UuZW1pdChoaWRkZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbm8gY3VzdG9tIHNldHRlciBsb2dpYyBhcyB3aXRoIHRoZSBvdGhlciAnc2NyZWVuIGNvbmZpZyBwcm9wcycsIGJlY2F1c2UgY29uY3JldGUgZm9ybSBpbnB1dCBjb21wb25lbnRzIGhhbmRsZSB0aGlzIHRoZW1zZWx2ZXMuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkZWNpbWFscyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgIHRoaXMuX2RlY2ltYWxzID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkZWNpbWFscygpOiBudW1iZXIge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpY29uOiBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gICAgLy8gR29hbDogYWJpbGl0eSB0byBlbXVsYXRlIHRoZSByZWQgYmFja2dyb3VuZCBvZiBpbnB1dCBmaWVsZHMgKGZvcm0tc3VibWl0dGVkIGludmFsaWQgc3RhdGUpXHJcbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoXCJjbGFzcy5jYy1yZWQtZXJyb3ItYmFja2dyb3VuZFwiKVxyXG4gICAgcHVibGljIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgbXlGb3JtSW5wdXRJbnN0YW5jZSh2YWx1ZTogQmFzZUlucHV0Q29tcG9uZW50PFQ+KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbXlGb3JtSW5wdXRJbnN0YW5jZSgpOiBCYXNlSW5wdXRDb21wb25lbnQ8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX215Rm9ybUlucHV0SW5zdGFuY2U6IEJhc2VJbnB1dENvbXBvbmVudDxUPjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBuYXRpdmVCbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvLyBlbWl0cyB3aGVuIHRoZSBlbnRlciBidXR0b24gb24ga2V5Ym9hcmQgd2FzIHByZXNzZWQgd2hpbGUgdGhpcyBmb3JtIGlucHV0IGhhZCBmb2N1c3NlZFxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBrZXlEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBrZXlVcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlck1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGhpZGRlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTmdNb2RlbCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBfbmdNb2RlbDogTmdNb2RlbDtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5mb2N1c2VkXCIpXHJcbiAgICBwdWJsaWMgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBmb3JtQ29tcG9uZW50OiBGb3JtQ29tcG9uZW50O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmZvcm0taW5wdXRcIilcclxuICAgIHB1YmxpYyBmb3JtSW5wdXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBASG9zdEJpbmRpbmcoXCJjbGFzcy5jdXN0b20td2lkdGhcIilcclxuICAgIHB1YmxpYyBjdXN0b21XaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vVHJpYW5nbGVHcmFwaGljOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIEBIb3N0QmluZGluZyhcImNsYXNzLmhhbGYtd2lkdGhcIilcclxuICAgIHB1YmxpYyBoYWxmV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZnVsbC13aWR0aC1pbXBvcnRhbnRcIilcclxuICAgIHB1YmxpYyBmdWxsV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBleGNsdWRlVXNlck1vZGVsQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9Gb3JtR3JvdXBDb250cm9sOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZm9ybS1zdWJtaXR0ZWRcIilcclxuICAgIHB1YmxpYyBnZXQgZm9ybVN1Ym1pdHRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudC5zdWJtaXR0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaGFzbm9sYWJlbFwiKVxyXG4gICAgcHVibGljIGdldCBoYXNOb0xhYmVsKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBpc05pbGwodGhpcy5sYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaGFzdmFsdWVcIilcclxuICAgIHB1YmxpYyBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tb2RlbCB8fCBTdHJpbmdVdGlscy5Jc1N0cmluZ1dpdGhMZW5ndGgodGhpcy5tb2RlbCkgfHwgTnVtYmVyVXRpbHMuSXNOdW1iZXIodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaW52YWxpZFwiKVxyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja1N0YXRlKCkgJiYgIXRoaXMuY29udHJvbC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kaXNhYmxlZFwiKVxyXG4gICAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5yZWFkLW9ubHlcIilcclxuICAgIHB1YmxpYyBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZWFkb25seTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5yZXF1aXJlZFwiKVxyXG4gICAgcHVibGljIGdldCBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNjLXRvdWNoZWQtaW52YWxpZFwiKVxyXG4gICAgcHVibGljIGdldCB0b3VjaGVkSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbEV4aXN0cygpICYmIHRoaXMuY29udHJvbC50b3VjaGVkICYmICF0aGlzLmNvbnRyb2wudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MudmFsaWRcIilcclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrU3RhdGUoKSAmJiB0aGlzLmNvbnRyb2wudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3Mubm8tdmFsaWRhdGlvblwiKVxyXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLm5vVmFsaWRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNhbkNoYW5nZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSA/IHRoaXMuX215Rm9ybUlucHV0SW5zdGFuY2UuY29udHJvbCA6IHRoaXMubmdNb2RlbCAmJiB0aGlzLm5nTW9kZWwuY29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1JbnB1dEluc3RhbmNlKCk6IEJhc2VJbnB1dENvbXBvbmVudDxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX215Rm9ybUlucHV0SW5zdGFuY2UgfHwgdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzRGVzdHJveWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudDtcclxuXHJcbiAgICAvLyBAaW1wbGVtZW50cyBDb25maWd1cmF0aW9uQWRhcHRlckNvbXBvbmVudFxyXG4gICAgcHVibGljIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuXHJcbiAgICBwcm90ZWN0ZWQgX21hcmtlZEFzVXNlclRvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBfZGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcm90ZWN0ZWQgX2hhc09uUHVzaENkU3RyYXRlZ3k6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9tb2RlbDogVDtcclxuICAgIHByaXZhdGUgX2RlY2ltYWxzOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9oaWRkZW46IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX21heExlbmd0aDogbnVtYmVyO1xyXG4gICAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW47XHJcbiAgICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbjtcclxuXHJcbiAgICBwcml2YXRlIF9mb3JjZVJlYWRvbmx5OiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG5cclxuICAgIHByaXZhdGUgX3ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuICAgIHByaXZhdGUgX2FzeW5jVmFsaWRhdG9yczogQXN5bmNWYWxpZGF0b3JGbltdID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSBfc3BlZWNoU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9tb2RlbENoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfZm9ybUFueVN1Ym1pdFN1YjogU3Vic2NyaXB0aW9uO1xyXG4gICAgcHJpdmF0ZSBfZm9ybVJlYWRvbmx5Q2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9jbGVhck1hcmtlZEFzVXNlclRvdWNoZWRTdWI6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBmb3JtVXNlckNoYW5nZUxpc3RlbmVyPzogRm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlLFxyXG4gICAgICAgIC8vIEBPcHRpb25hbCgpIHByb3RlY3RlZCBzcGVlY2hJbnB1dD86IFNwZWVjaElucHV0U2VydmljZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbmdab25lV3JhcHBlcj86IE5nWm9uZVdyYXBwZXJTZXJ2aWNlLFxyXG4gICAgICAgIC8vIEBPcHRpb25hbCgpIHByb3RlY3RlZCB0b29sdGlwTWFuYWdlcj86IEFwcFRvb2x0aXBEeW5hbWljTWFuYWdlclNlcnZpY2UsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHVibGljIGVsZW1lbnRSZWY/OiBFbGVtZW50UmVmXHJcbiAgICApIHtcclxuICAgICAgICBCYXNlSW5wdXRDb21wb25lbnQuQmFzZUZvcm1JbnB1dENvbXBvbmVudEluZGV4Kys7XHJcbiAgICAgICAgdGhpcy5uYW1lID0gQmFzZUlucHV0Q29tcG9uZW50LkJhc2VGb3JtSW5wdXRDb21wb25lbnRJbmRleC50b1N0cmluZygpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyTWFya2VkQXNVc2VyVG91Y2hlZFN1YiA9IHRoaXMuZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lci5jbGVhckFsbE1hcmtlZEFzVXNlclRvdWNoZWQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21vZGVsQ2hhbmdlU3ViID0gdGhpcy5tb2RlbENoYW5nZS5zdWJzY3JpYmUoKHZhbDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWwgPSB2YWw7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgLy8gaWYgKHRoaXMuc3BlZWNoSW5wdXQpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy5fc3Vic2NyaWJlVG9TcGVlY2hJbnB1dCgpO1xyXG4gICAgICAgIC8vIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbGlkYXRvcnNBbmRPd25GbGFncygpO1xyXG5cclxuICAgICAgICB0aGlzLl9hZGRPclJlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50KSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZm9ybUNvbXBvbmVudC5yZWFkb25seTtcclxuICAgICAgICAgICAgdGhpcy5fZm9ybVJlYWRvbmx5Q2hhbmdlU3ViID0gdGhpcy5mb3JtQ29tcG9uZW50LnJlYWRvbmx5Q2hhbmdlLnN1YnNjcmliZSgoaXNGb3JtUmVhZG9ubHk6IGJvb2xlYW4pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVhZG9ubHkgPSBpc0Zvcm1SZWFkb25seTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pbml0Rm9jdXMpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnJlcXVlc3RGb2N1cy5iaW5kKHRoaXMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgLy8gaWYgKHRoaXMudG9vbHRpcE1hbmFnZXIgJiYgdGhpcy5lbGVtZW50UmVmKSB7XHJcbiAgICAgICAgLy8gICAgIHRoaXMudG9vbHRpcE1hbmFnZXIuZGVzdHJveUVycm9yVG9vbHRpcE9mRWxlbWVudCh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgLy8gfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5fbW9kZWxDaGFuZ2VTdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fbW9kZWxDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX3NwZWVjaFN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLl9zcGVlY2hTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm1BbnlTdWJtaXRTdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9ybUFueVN1Ym1pdFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fZm9ybVJlYWRvbmx5Q2hhbmdlU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1SZWFkb25seUNoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fY2xlYXJNYXJrZWRBc1VzZXJUb3VjaGVkU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2NsZWFyTWFya2VkQXNVc2VyVG91Y2hlZFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyB0aGlzLl9yZW1vdmVTZWxmRnJvbUZvcm0oKTtcclxuICAgICAgICB0aGlzLmVsZW1lbnRSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvciA9IHVuZGVmaW5lZDtcclxuICAgICAgICAvLyB0aGlzLmlucHV0ID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRW1pdHMgYSBtb2RlbENoYW5nZSBldmVudCB3aXRoIGdpdmVuIHZhbHVlLCBpbmRpY2F0aW5nIHRoYXQgdGhlIG1vZGVsIG9mIHRoaXMgZm9ybSBpbnB1dFxyXG4gICAgICogaGFzIGNoYW5nZWQgYW5kIGl0cyBuZXcgdmFsdWUgaXMgZ2l2ZW4gdmFsdWUuIEFsc28gZW1pdHMgdXNlck1vZGVsQ2hhbmdlIGlmIG1hcmtlZEFzVXNlclRvdWNoZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRNb2RlbCh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tYXJrZWRBc1VzZXJUb3VjaGVkICYmIHRoaXMuZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXIudXNlck1vZGVsQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJNb2RlbENoYW5nZS5uZXh0KHZhbHVlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9oYXNPblB1c2hDZFN0cmF0ZWd5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIiwgW1wiJGV2ZW50XCJdKVxyXG4gICAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNhbkNoYW5nZSAmJiAhdGhpcy5ub0NsaWNrRm9jdXMpIHtcclxuICAgICAgICAgICAgdGhpcy5yZXF1ZXN0Rm9jdXMoKTtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmV4Y2x1ZGVVc2VyTW9kZWxDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWFya0FzVXNlclRvdWNoZWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBASG9zdExpc3RlbmVyKFwiZm9jdXNpblwiKVxyXG4gICAgb25Gb2N1c0luKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5leGNsdWRlVXNlck1vZGVsQ2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMubWFya0FzVXNlclRvdWNoZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcXVlc3RGb2N1cygpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jYW5DaGFuZ2UgJiYgdGhpcy5pbnB1dCkge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LmZvY3VzKCk7XHJcbiAgICAgICAgICAgIHRoaXMuZm9jdXNlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkb0JsdXIoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pbnB1dC5ibHVyKCk7XHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9kZXN0cm95ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYXJrRm9yQ2hlY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9kZXN0cm95ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRldGVjdENoYW5nZXNBZnRlckFuZ3VsYXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCEhdGhpcy5uZ1pvbmVXcmFwcGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMubmdab25lV3JhcHBlci5zZXRUaW1lb3V0T3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLl9kZXN0cm95ZWQpIHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlua3MgdGhlIGdpdmVuIGZvcm1Db21wLnN1Ym1pdCBldmVudCB0byB0aGUgZmlyaW5nIG9mIGRldGVjdENoYW5nZXMoKSBvZiBnaXZlbiBjaGFuZ2UgZGV0ZWN0b3IuIFRoaXMgaXMgYSAndXRpbGl0eS1saWtlJyBtZXRob2QsXHJcbiAgICAgKiBidXQgd2UgbWFuYWdlIHRoZSBhY3R1YWwgc3Vic2NyaXB0aW9uICh3aXRoIFVOU1VCU0NSSUJFKCkhKSBvbiB0aGlzIGJhc2UgY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gZm9ybUNvbXAgVGhlIGZvcm0gd2hvc2Ugc3VibWl0IHdlIHdhbnQgdG8gbGluayB3aXRoIHRoZSBjYWxsIG9mIC5kZXRlY3RDaGFuZ2VzKCkgb24gZ2l2ZW4gY2hhbmdlIGRldGVjdG9yIHJlZi5cclxuICAgICAqIEBwYXJhbSBjaGFuZ2VEZXRlY3RvclJlZiBUaGlzIHNob3VsZCBiZSBnaXZlbiBhcyBwYXJhbS4gSSBjaG9vc2Ugbm90IHRvIG1ha2UgdGhpcyBwYXJ0IG9mIG91ciAoQmFzZUZvcm1JbnB1dENvbXBvbmVudCkgY29uc3RydWN0b3IsXHJcbiAgICAgKiBiZWNhdXNlIHdlIGFscmVhZHkgaGF2ZSAyMSBleHRlbmRlcnMuXHJcbiAgICAgKi9cclxuICAgIC8vIHB1YmxpYyBsaW5rRm9ybUFueVN1Ym1pdFdpdGhEZXRlY3RDaGFuZ2VzKGZvcm1Db21wOiBGb3JtQ29tcG9uZW50LCBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIC8vICAgICBpZiAoZm9ybUNvbXAgJiYgY2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICAgIC8vICAgICAgICAgdGhpcy5fZm9ybUFueVN1Ym1pdFN1YiA9IGZvcm1Db21wLmFueVN1Ym1pdC5zdWJzY3JpYmUoKCgpID0+IHtcclxuICAgIC8vICAgICAgICAgICAgIGlmICghdGhpcy5fZGVzdHJveWVkKSB7XHJcbiAgICAvLyAgICAgICAgICAgICAgICAgY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgLy8gICAgICAgICAgICAgfVxyXG4gICAgLy8gICAgICAgICB9KSk7XHJcbiAgICAvLyAgICAgfVxyXG4gICAgLy8gfVxyXG5cclxuICAgIHB1YmxpYyBtYXJrQXNVc2VyVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXJrZWRBc1VzZXJUb3VjaGVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlOyAvLyBub3Qgc3VyZSBpZiB0aGlzIGlzIHRoZSByaWdodCBwbGFjZSB0byBkbyB0aGF0XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsZWFyTWFya2VkQXNVc2VyVG91Y2hlZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9tYXJrZWRBc1VzZXJUb3VjaGVkID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgLy91c2VkIGZvciBkZXNjZW5kZW50cywgYmVjYXVzZSBkZXNjZW5kZW50cyBjYW4ndCBzZXQgc3VwZXIgcHJvcGVydGllcywgc2VlIElucHV0TnVtYmVyQ29tcG9uZW50XHJcbiAgICBwcm90ZWN0ZWQgc2V0TWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKG5vdE5pbGwodGhpcy5mb3JjZWRNYXhMZW5ndGgpIHx8IG1heExlbmd0aCA9PT0gdGhpcy5fbWF4TGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChtYXhMZW5ndGggPiAwKSB7IC8vIG5vdCBtYXhMZW5ndGggaXMgMFxyXG4gICAgICAgICAgICB0aGlzLl9tYXhMZW5ndGggPSBtYXhMZW5ndGg7XHJcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9tYXJrQXNPblB1c2goKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9jaGVja1N0YXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLm5nTW9kZWwpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVN1Ym1pdHRlZCB8fCAodGhpcy5fY29udHJvbEV4aXN0cygpICYmIHRoaXMuY29udHJvbC50b3VjaGVkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFBsYWNlIHZhbGlkYXRvcnMgb250byBvdXIgQW5ndWxhcidzIEZvcm1Db250cm9sLlxyXG4gICAgcHJvdGVjdGVkIF91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGVyOiBFbGVtZW50UmVmID0gdGhpcy5teUZvcm1JbnB1dEluc3RhbmNlID8gdGhpcy5teUZvcm1JbnB1dEluc3RhbmNlLmVsZW1lbnRSZWYgOiB0aGlzLmVsZW1lbnRSZWY7XHJcbiAgICAgICAgLy8gaWYgKHRoaXMudG9vbHRpcE1hbmFnZXIgJiYgZXIpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy50b29sdGlwTWFuYWdlci5kZXN0cm95RXJyb3JUb29sdGlwT2ZFbGVtZW50KGVyLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICB0aGlzLl9zZXROYXRpdmVSZXF1aXJlZCh0aGlzLnJlcXVpcmVkKTtcclxuICAgICAgICB0aGlzLl9zZXROYXRpdmVNYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpO1xyXG4gICAgICAgIHRoaXMuX3NldE5hdGl2ZURpc2FibGVkKHRoaXMuZGlzYWJsZWQpO1xyXG4gICAgICAgIHRoaXMuX3NldE5hdGl2ZVJlYWRPbmx5KHRoaXMucmVhZG9ubHkgfHwgdGhpcy5mb3JjZVJlYWRvbmx5KTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWRFcnJvckJhY2tncm91bmQgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5fY29udHJvbEV4aXN0cygpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXTtcclxuXHJcbiAgICAgICAgICAgIC8vIGFkZCByZXF1aXJlZFxyXG4gICAgICAgICAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xyXG4gICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHJlcXVpcmVkVmFsaWRhdG9yKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gYWRkIG1heGxlbmd0aFxyXG4gICAgICAgICAgICBpZiAobm90TmlsbCh0aGlzLl9tYXhMZW5ndGgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kZWNpbWFscykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZhbGlkYXRvcnMucHVzaChwcmVjaXNpb25TY2FsZVZhbGlkYXRvcih0aGlzLl9tYXhMZW5ndGgsIHRoaXMuZGVjaW1hbHMpKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKG1heFN0cmluZ0xlbmd0aFZhbGlkYXRvcih0aGlzLl9tYXhMZW5ndGgpKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gYWRkIEBJbnB1dCgpLWVkIHZhbGlkYXRvcnNcclxuICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKC4uLnRoaXMuX3ZhbGlkYXRvcnMpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3ZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3ZhbGlkYXRvcnMuZm9yRWFjaCh2YWxpZGF0b3IgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWxpZGF0b3IgPT09IHJlcXVpcmVkVmFsaWRhdG9yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlcXVpcmVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fc2V0TmF0aXZlUmVxdWlyZWQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wuc2V0QXN5bmNWYWxpZGF0b3JzKHRoaXMuX2FzeW5jVmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIHdoZXRoZXIgdGhpcy5uZ01vZGVsLmNvbnRyb2wgaGFzIHNhZmUgYWNjZXNzXHJcbiAgICBwcml2YXRlIF9jb250cm9sRXhpc3RzKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5nTW9kZWwgJiYgISF0aGlzLmNvbnRyb2w7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY29udHJvbElzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xFeGlzdHMoKSAmJiB0aGlzLmNvbnRyb2wudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0TmF0aXZlRGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldE5hdGl2ZU1heExlbmd0aChtYXhsZW5ndGg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQubWF4TGVuZ3RoID0gbWF4bGVuZ3RoO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX3NldE5hdGl2ZVJlYWRPbmx5KHJlYWRvbmx5OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5yZWFkT25seSA9IHJlYWRvbmx5O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXROYXRpdmVSZXF1aXJlZChyZXF1aXJlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQucmVxdWlyZWQgPSByZXF1aXJlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3Vic2NyaWJlVG9TcGVlY2hJbnB1dCgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLl9zcGVlY2hTdWIgPSB0aGlzLnNwZWVjaElucHV0LnNwZWVjaElucHV0LnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgIC8vICAgICBpZiAodGhpcy5mb2N1c2VkICYmIHRoaXMuX2NvbnRyb2xFeGlzdHMoKSkge1xyXG4gICAgICAgIC8vICAgICAgICAgY29uc3QgdmFsOiBzdHJpbmcgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLnNldE1vZGVsKChTdHJpbmdVdGlscy5Jc1N0cmluZyh2YWwpID8gdmFsIDogJycpICsgZGF0YSk7XHJcbiAgICAgICAgLy8gICAgIH1cclxuICAgICAgICAvLyB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9hZGRPclJlbW92ZVNlbGZGcm9tRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5oaWRkZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVtb3ZlU2VsZkZyb21Gb3JtKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fYWRkU2VsZlRvRm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVTZWxmSW5Gb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29tcG9uZW50LnVwZGF0ZUZvcm1JbnB1dCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfcmVtb3ZlU2VsZkZyb21Gb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQgJiYgdGhpcy5uZ01vZGVsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5yZW1vdmVGb3JtSW5wdXQodGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FkZFNlbGZUb0Zvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCAmJiB0aGlzLm5nTW9kZWwgJiYgIXRoaXMubm9Gb3JtR3JvdXBDb250cm9sKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5yZW1vdmVGb3JtSW5wdXQodGhpcyk7IC8vIHByZXZlbnRpbmcgdGhlcmUgYXJlIHR3byBjb250cm9scyBpbiBmb3JtZ3JvdXAgd2hlbiBteUZvcm1JbnB1dEluc3RhbmNlIGlzIChiZWluZykgc2V0XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbXBvbmVudC5hZGRGb3JtSW5wdXQodGhpcy5teUZvcm1JbnB1dEluc3RhbmNlID8gdGhpcy5teUZvcm1JbnB1dEluc3RhbmNlIDogdGhpcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
571
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvYmFzZS9iYXNlLWlucHV0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLFVBQVUsRUFDVixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQyxPQUFPLEVBQWMsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQzlELE9BQU8sRUFBQyxZQUFZLEVBQUUscUJBQXFCLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQUNqRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUN2RixPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFFMUQsT0FBTyxFQUFDLHVDQUF1QyxFQUFDLE1BQU0sNERBQTRELENBQUM7QUFDbkgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBSWhGOzs7R0FHRztBQUdILE1BQU0sT0FBZ0Isa0JBQWtCO0lBNFZwQyxZQUNjLGNBQWlDLEVBQ3JCLHNCQUFnRTtJQUN0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QUFnQjs2QkFLNUIsV0FBVyxTQUFDLDBCQUEwQjtvQkFLdEMsV0FBVyxTQUFDLGFBQWE7aUNBS3pCLFdBQVcsU0FBQyxxQkFBcUI7c0JBMklqQyxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO3dCQVVoQyxZQUFZLFNBQUMsU0FBUzs7QUF0YXZCO0lBRFUsWUFBWSxFQUFFO3dEQUNhO0FBR3JDO0lBRFUsWUFBWSxFQUFFO3FEQUNFO0FBRzFCO0lBRFUsWUFBWSxFQUFFO3dEQUNLO0FBK0U3QjtJQURVLFlBQVksRUFBRTt5REFDYztBQTZIdEM7SUFEVSxZQUFZLEVBQUU7dURBQ1k7QUFHcEM7SUFEVSxZQUFZLEVBQUU7NkRBQ2tCO0FBRzFDO0lBRFUsWUFBWSxFQUFFO3FEQUNVO0FBR2xDO0lBRFUsWUFBWSxFQUFFO3FEQUNVO0FBR2xDO0lBRFUsWUFBWSxFQUFFO2tFQUN1QjtBQUcvQztJQURVLFlBQVksRUFBRTs4REFDbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgRGlyZWN0aXZlLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3RhYmxlLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QXN5bmNWYWxpZGF0b3JGbiwgRm9ybUNvbnRyb2wsIE5nTW9kZWwsIFZhbGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtDb25maWd1cmF0aW9uQWRhcHRlckNvbXBvbmVudH0gZnJvbSBcIi4vY29uZmlndXJhdGlvbi1hZGFwdGVyLWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHtpc05pbGx9IGZyb20gXCIuLi8uLi9jb3JlL2Z1bmN0aW9uL2lzLW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHtub3ROaWxsfSBmcm9tIFwiLi4vLi4vY29yZS9mdW5jdGlvbi9ub3QtbmlsbC5mdW5jdGlvblwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbiwgSW5wdXRCb29sZWFuRGVjb3JhdG9yfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtyZXF1aXJlZFZhbGlkYXRvcn0gZnJvbSBcIi4uLy4uL2NvcmUvdmFsaWRhdG9yL3JlcXVpcmVkLnZhbGlkYXRvclwiO1xyXG5pbXBvcnQge3ByZWNpc2lvblNjYWxlVmFsaWRhdG9yfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0b3IvcHJlY2lzaW9uLXNjYWxlLnZhbGlkYXRvclwiO1xyXG5pbXBvcnQge21heFN0cmluZ0xlbmd0aFZhbGlkYXRvcn0gZnJvbSBcIi4uLy4uL2NvcmUvdmFsaWRhdG9yL21heC1zdHJpbmctbGVuZ3RoLnZhbGlkYXRvclwiO1xyXG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi4vLi4vY29yZS91dGlscy9zdHJpbmctdXRpbHNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Rm9ybUlucHV0VXNlck1vZGVsQ2hhbmdlTGlzdGVuZXJTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlL2Zvcm0taW5wdXQtdXNlci1jaGFuZ2UtbGlzdGVuZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge051bWJlclV0aWxzfSBmcm9tIFwiLi4vLi4vY29yZS91dGlscy9udW1iZXItdXRpbHNcIjtcclxuaW1wb3J0IHtOZ1pvbmVXcmFwcGVyU2VydmljZX0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZS9uZy16b25lLXdyYXBwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbn0gZnJvbSBcIi4uLy4uL2NvcmUvZW51bS9jb3JlLWNvbXBvbmVudHMtaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7Rm9ybUNvbXBvbmVudH0gZnJvbSBcIi4uL2Zvcm0vZm9ybS5jb21wb25lbnRcIjtcclxuXHJcbi8qKlxyXG4gKiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBhbGwgY29uY3JldGUgZm9ybSBpbnB1dCBjb21wb25lbnRzIHRoYXQgY29udGFpbiBhIG5hdGl2ZSA8aW5wdXQ+IGVsZW1lbnQuIFByb3ZpZGVzIGNvbW1vbiBkYXRhIGFuZCBmdW5jdGlvbmFsaXR5LCBzdWNoIGFzXHJcbiAqIGFkZGluZyBzZWxmIGFzIGEgY29udHJvbCB0byB0aGUgcGFyZW50IGZvcm0uXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUlucHV0Q29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIENvbmZpZ3VyYXRpb25BZGFwdGVyQ29tcG9uZW50IHtcclxuXHJcbiAgICBnZXQgbmdNb2RlbCgpOiBOZ01vZGVsIHtcclxuICAgICAgICBpZiAodGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZS5uZ01vZGVsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9uZ01vZGVsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEJhc2VGb3JtSW5wdXRDb21wb25lbnRJbmRleDogbnVtYmVyID0gMDtcclxuICAgIHB1YmxpYyBzdGF0aWMgSGlkZGVuQ2xhc3M6IHN0cmluZyA9IFwiaGlkZGVuXCI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgbW9kZWwodmFsdWU6IFQpIHtcclxuICAgICAgdGhpcy5fbW9kZWwgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCk6IFQge1xyXG4gICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vVmFsaWRhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGluaXRGb2N1czogYm9vbGVhbjtcclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBub0NsaWNrRm9jdXM6IGJvb2xlYW47XHJcblxyXG4gICAgLy8gdXNlZCB0byBsaW5rIGZpZWxkIHRvIGJ1c2luZXNzIG9iamVjdCBmb3IgZGVlcC12YWxpZGF0aW9uXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGJ1c2luZXNzT2JqZWN0SWQ6IGFueTtcclxuXHJcbiAgICAvLyBASW5wdXQoKVxyXG4gICAgLy8gcHVibGljIGVycm9yTWVzc2FnZTogVmFsaWRhdGlvbk1lc3NhZ2U7XHJcblxyXG4gICAgcHVibGljIG5hbWU6IHN0cmluZztcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChkaXNhYmxlZCA9PT0gdGhpcy5fZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IElucHV0Qm9vbGVhbkRlY29yYXRvci5JbnB1dFZhbHVlVG9Cb29sZWFuKGRpc2FibGVkKTtcclxuICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgbWF4TGVuZ3RoKG1heExlbmd0aDogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5zZXRNYXhMZW5ndGgobWF4TGVuZ3RoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1heExlbmd0aCgpOiBudW1iZXIge1xyXG4gICAgICAgIHJldHVybiBub3ROaWxsKHRoaXMuZm9yY2VkTWF4TGVuZ3RoKSA/IHRoaXMuZm9yY2VkTWF4TGVuZ3RoIDogdGhpcy5fbWF4TGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9yY2VkTWF4TGVuZ3RoOiBudW1iZXI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAodGhpcy5fZm9yY2VSZWFkb25seSAhPT0gdW5kZWZpbmVkIHx8IHJlYWRvbmx5ID09PSB0aGlzLl9yZWFkb25seSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3JlYWRvbmx5ID0gSW5wdXRCb29sZWFuRGVjb3JhdG9yLklucHV0VmFsdWVUb0Jvb2xlYW4ocmVhZG9ubHkpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgICAgICBpZiAodGhpcy5faGFzT25QdXNoQ2RTdHJhdGVneSkge1xyXG4gICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JjZVJlYWRvbmx5IHx8IHRoaXMuX3JlYWRvbmx5O1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGZvcmNlUmVhZG9ubHkoZm9yY2VSZWFkb25seTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChmb3JjZVJlYWRvbmx5ID09PSB0aGlzLl9mb3JjZVJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fZm9yY2VSZWFkb25seSA9IElucHV0Qm9vbGVhbkRlY29yYXRvci5JbnB1dFZhbHVlVG9Cb29sZWFuKGZvcmNlUmVhZG9ubHkpO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZvcmNlUmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvcmNlUmVhZG9ubHk7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgcmVxdWlyZWQocmVxdWlyZWQ6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAocmVxdWlyZWQgPT09IHRoaXMuX3JlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBJbnB1dEJvb2xlYW5EZWNvcmF0b3IuSW5wdXRWYWx1ZVRvQm9vbGVhbihyZXF1aXJlZCk7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbGlkYXRvcnNBbmRPd25GbGFncygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9yY2VSZXF1aXJlZCB8fCB0aGlzLl9yZXF1aXJlZDtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBmb3JjZVJlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7ICAvLyBhIGZvcmNlIG91dHNpZGUgb2YgW2NmZ05hbWVdJ3MgaW5mbHVlbmNlXHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgdmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdKSB7XHJcbiAgICAgICAgaWYgKHZhbGlkYXRvcnMgPT09IHRoaXMuX3ZhbGlkYXRvcnMpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl92YWxpZGF0b3JzID0gdmFsaWRhdG9ycztcclxuICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2YWxpZGF0b3JzKCk6IFZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3JzO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc2V0IGFzeW5jVmFsaWRhdG9ycyh2YWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10pIHtcclxuICAgICAgICB0aGlzLl9hc3luY1ZhbGlkYXRvcnMgPSB2YWxpZGF0b3JzO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGFzeW5jVmFsaWRhdG9ycygpOiBBc3luY1ZhbGlkYXRvckZuW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hc3luY1ZhbGlkYXRvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCkgQEhvc3RCaW5kaW5nKFwiY2xhc3MuXCIgKyBCYXNlSW5wdXRDb21wb25lbnQuSGlkZGVuQ2xhc3MpXHJcbiAgICBwdWJsaWMgc2V0IGhpZGRlbihoaWRkZW46IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAoaGlkZGVuID09PSB0aGlzLl9oaWRkZW4pIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5faGlkZGVuID0gaGlkZGVuO1xyXG5cclxuICAgICAgICB0aGlzLl9hZGRPclJlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICBpZiAoaGlkZGVuKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGFjaCgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5yZWF0dGFjaCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX2hhc09uUHVzaENkU3RyYXRlZ3kpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRldGVjdENoYW5nZXNBZnRlckFuZ3VsYXIoKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5oaWRkZW5DaGFuZ2UuZW1pdChoaWRkZW4pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaGlkZGVuKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRkZW47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbm8gY3VzdG9tIHNldHRlciBsb2dpYyBhcyB3aXRoIHRoZSBvdGhlciAnc2NyZWVuIGNvbmZpZyBwcm9wcycsIGJlY2F1c2UgY29uY3JldGUgZm9ybSBpbnB1dCBjb21wb25lbnRzIGhhbmRsZSB0aGlzIHRoZW1zZWx2ZXMuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkZWNpbWFscyh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgIHRoaXMuX2RlY2ltYWxzID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkZWNpbWFscygpOiBudW1iZXIge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZGVjaW1hbHM7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpY29uOiBDb3JlQ29tcG9uZW50c0ljb247XHJcblxyXG4gICAgLy8gR29hbDogYWJpbGl0eSB0byBlbXVsYXRlIHRoZSByZWQgYmFja2dyb3VuZCBvZiBpbnB1dCBmaWVsZHMgKGZvcm0tc3VibWl0dGVkIGludmFsaWQgc3RhdGUpXHJcbiAgICBASW5wdXQoKSBASG9zdEJpbmRpbmcoXCJjbGFzcy5jYy1yZWQtZXJyb3ItYmFja2dyb3VuZFwiKVxyXG4gICAgcHVibGljIHJlZEVycm9yQmFja2dyb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgbXlGb3JtSW5wdXRJbnN0YW5jZSh2YWx1ZTogQmFzZUlucHV0Q29tcG9uZW50PFQ+KSB7XHJcbiAgICAgICAgaWYgKHZhbHVlID09PSB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbXlGb3JtSW5wdXRJbnN0YW5jZSgpOiBCYXNlSW5wdXRDb21wb25lbnQ8VD4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9teUZvcm1JbnB1dEluc3RhbmNlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX215Rm9ybUlucHV0SW5zdGFuY2U6IEJhc2VJbnB1dENvbXBvbmVudDxUPjtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBuYXRpdmVCbHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICAvLyBlbWl0cyB3aGVuIHRoZSBlbnRlciBidXR0b24gb24ga2V5Ym9hcmQgd2FzIHByZXNzZWQgd2hpbGUgdGhpcyBmb3JtIGlucHV0IGhhZCBmb2N1c3NlZFxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW50ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGZvY3VzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBrZXlEb3duOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyByZWFkb25seSBrZXlVcDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlck1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIHJlYWRvbmx5IGhpZGRlbkNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIEBWaWV3Q2hpbGQoTmdNb2RlbCwgeyBzdGF0aWM6IHRydWUgfSlcclxuICAgIHB1YmxpYyBfbmdNb2RlbDogTmdNb2RlbDtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5mb2N1c2VkXCIpXHJcbiAgICBwdWJsaWMgZm9jdXNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBmb3JtQ29tcG9uZW50OiBGb3JtQ29tcG9uZW50O1xyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmZvcm0taW5wdXRcIilcclxuICAgIHB1YmxpYyBmb3JtSW5wdXQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKSBASG9zdEJpbmRpbmcoXCJjbGFzcy5jdXN0b20td2lkdGhcIilcclxuICAgIHB1YmxpYyBjdXN0b21XaWR0aDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIG5vVHJpYW5nbGVHcmFwaGljOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIEBIb3N0QmluZGluZyhcImNsYXNzLmhhbGYtd2lkdGhcIilcclxuICAgIHB1YmxpYyBoYWxmV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKCkgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZnVsbC13aWR0aC1pbXBvcnRhbnRcIilcclxuICAgIHB1YmxpYyBmdWxsV2lkdGg6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKSBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBleGNsdWRlVXNlck1vZGVsQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgbm9Gb3JtR3JvdXBDb250cm9sOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuZm9ybS1zdWJtaXR0ZWRcIilcclxuICAgIHB1YmxpYyBnZXQgZm9ybVN1Ym1pdHRlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMuZm9ybUNvbXBvbmVudC5zdWJtaXR0ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaGFzbm9sYWJlbFwiKVxyXG4gICAgcHVibGljIGdldCBoYXNOb0xhYmVsKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBpc05pbGwodGhpcy5sYWJlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaGFzdmFsdWVcIilcclxuICAgIHB1YmxpYyBnZXQgaGFzVmFsdWUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICEhdGhpcy5tb2RlbCB8fCBTdHJpbmdVdGlscy5Jc1N0cmluZ1dpdGhMZW5ndGgodGhpcy5tb2RlbCkgfHwgTnVtYmVyVXRpbHMuSXNOdW1iZXIodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaW52YWxpZFwiKVxyXG4gICAgcHVibGljIGdldCBpbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9jaGVja1N0YXRlKCkgJiYgIXRoaXMuY29udHJvbC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kaXNhYmxlZFwiKVxyXG4gICAgcHVibGljIGdldCBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5yZWFkLW9ubHlcIilcclxuICAgIHB1YmxpYyBnZXQgaXNSZWFkb25seSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5yZWFkb25seTtcclxuICAgIH1cclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5yZXF1aXJlZFwiKVxyXG4gICAgcHVibGljIGdldCBpc1JlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVpcmVkO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0QmluZGluZyhcImNsYXNzLmNjLXRvdWNoZWQtaW52YWxpZFwiKVxyXG4gICAgcHVibGljIGdldCB0b3VjaGVkSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbEV4aXN0cygpICYmIHRoaXMuY29udHJvbC50b3VjaGVkICYmICF0aGlzLmNvbnRyb2wudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MudmFsaWRcIilcclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoZWNrU3RhdGUoKSAmJiB0aGlzLmNvbnRyb2wudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3Mubm8tdmFsaWRhdGlvblwiKVxyXG4gICAgcHVibGljIGdldCB2YWxpZGF0aW9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLm5vVmFsaWRhdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGNhbkNoYW5nZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjb250cm9sKCk6IEZvcm1Db250cm9sIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbXlGb3JtSW5wdXRJbnN0YW5jZSA/IHRoaXMuX215Rm9ybUlucHV0SW5zdGFuY2UuY29udHJvbCA6IHRoaXMubmdNb2RlbCAmJiB0aGlzLm5nTW9kZWwuY29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1JbnB1dEluc3RhbmNlKCk6IEJhc2VJbnB1dENvbXBvbmVudDxUPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX215Rm9ybUlucHV0SW5zdGFuY2UgfHwgdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzRGVzdHJveWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95ZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlucHV0OiBIVE1MSW5wdXRFbGVtZW50IHwgSFRNTFRleHRBcmVhRWxlbWVudDtcclxuXHJcbiAgICAvLyBAaW1wbGVtZW50cyBDb25maWd1cmF0aW9uQWRhcHRlckNvbXBvbmVudFxyXG4gICAgcHVibGljIG9iamVjdENvbmZpZ05hbWU6IHN0cmluZztcclxuXHJcbiAgICBwcm90ZWN0ZWQgX21hcmtlZEFzVXNlclRvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBfZGVzdHJveWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwcm90ZWN0ZWQgX2hhc09uUHVzaENkU3RyYXRlZ3k6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX21vZGVsOiBUO1xyXG4gICAgcHJpdmF0ZSBfZGVjaW1hbHM6IG51bWJlcjtcclxuICAgIHByaXZhdGUgX2hpZGRlbjogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBfbWF4TGVuZ3RoOiBudW1iZXI7XHJcbiAgICBwcml2YXRlIF9yZWFkb25seTogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuO1xyXG5cclxuICAgIHByaXZhdGUgX2ZvcmNlUmVhZG9ubHk6IGJvb2xlYW4gPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBfYXN5bmNWYWxpZGF0b3JzOiBBc3luY1ZhbGlkYXRvckZuW10gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIF9zcGVlY2hTdWI6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX21vZGVsQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9mb3JtQW55U3VibWl0U3ViOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF9mb3JtUmVhZG9ubHlDaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcclxuICAgIHByaXZhdGUgX2NsZWFyTWFya2VkQXNVc2VyVG91Y2hlZFN1YjogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXI/OiBGb3JtSW5wdXRVc2VyTW9kZWxDaGFuZ2VMaXN0ZW5lclNlcnZpY2UsXHJcbiAgICAgICAgLy8gQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHNwZWVjaElucHV0PzogU3BlZWNoSW5wdXRTZXJ2aWNlLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBuZ1pvbmVXcmFwcGVyPzogTmdab25lV3JhcHBlclNlcnZpY2UsXHJcbiAgICAgICAgLy8gQE9wdGlvbmFsKCkgcHJvdGVjdGVkIHRvb2x0aXBNYW5hZ2VyPzogQXBwVG9vbHRpcER5bmFtaWNNYW5hZ2VyU2VydmljZSxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwdWJsaWMgZWxlbWVudFJlZj86IEVsZW1lbnRSZWZcclxuICAgICkge1xyXG4gICAgICAgIEJhc2VJbnB1dENvbXBvbmVudC5CYXNlRm9ybUlucHV0Q29tcG9uZW50SW5kZXgrKztcclxuICAgICAgICB0aGlzLm5hbWUgPSBCYXNlSW5wdXRDb21wb25lbnQuQmFzZUZvcm1JbnB1dENvbXBvbmVudEluZGV4LnRvU3RyaW5nKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Vc2VyQ2hhbmdlTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJNYXJrZWRBc1VzZXJUb3VjaGVkU3ViID0gdGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyLmNsZWFyQWxsTWFya2VkQXNVc2VyVG91Y2hlZC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fbWFya2VkQXNVc2VyVG91Y2hlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbW9kZWxDaGFuZ2VTdWIgPSB0aGlzLm1vZGVsQ2hhbmdlLnN1YnNjcmliZSgodmFsOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbCA9IHZhbDtcclxuICAgICAgICB9KTtcclxuICAgICAgICAvLyBpZiAodGhpcy5zcGVlY2hJbnB1dCkge1xyXG4gICAgICAgIC8vICAgICB0aGlzLl9zdWJzY3JpYmVUb1NwZWVjaElucHV0KCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl91cGRhdGVDb250cm9sVmFsaWRhdG9yc0FuZE93bkZsYWdzKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2FkZE9yUmVtb3ZlU2VsZkZyb21Gb3JtKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmZvcm1Db21wb25lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZWFkb25seSA9IHRoaXMucmVhZG9ubHkgfHwgdGhpcy5mb3JtQ29tcG9uZW50LnJlYWRvbmx5O1xyXG4gICAgICAgICAgICB0aGlzLl9mb3JtUmVhZG9ubHlDaGFuZ2VTdWIgPSB0aGlzLmZvcm1Db21wb25lbnQucmVhZG9ubHlDaGFuZ2Uuc3Vic2NyaWJlKChpc0Zvcm1SZWFkb25seTogYm9vbGVhbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFkb25seSA9IGlzRm9ybVJlYWRvbmx5O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmluaXRGb2N1cykge1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KHRoaXMucmVxdWVzdEZvY3VzLmJpbmQodGhpcykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSB0cnVlO1xyXG5cclxuICAgICAgICAvLyBpZiAodGhpcy50b29sdGlwTWFuYWdlciAmJiB0aGlzLmVsZW1lbnRSZWYpIHtcclxuICAgICAgICAvLyAgICAgdGhpcy50b29sdGlwTWFuYWdlci5kZXN0cm95RXJyb3JUb29sdGlwT2ZFbGVtZW50KHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAvLyB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLl9tb2RlbENoYW5nZVN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLl9tb2RlbENoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fc3BlZWNoU3ViKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3NwZWVjaFN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fZm9ybUFueVN1Ym1pdFN1Yikge1xyXG4gICAgICAgICAgICB0aGlzLl9mb3JtQW55U3VibWl0U3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9mb3JtUmVhZG9ubHlDaGFuZ2VTdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fZm9ybVJlYWRvbmx5Q2hhbmdlU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLl9jbGVhck1hcmtlZEFzVXNlclRvdWNoZWRTdWIpIHtcclxuICAgICAgICAgICAgdGhpcy5fY2xlYXJNYXJrZWRBc1VzZXJUb3VjaGVkU3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHRoaXMuX3JlbW92ZVNlbGZGcm9tRm9ybSgpO1xyXG4gICAgICAgIHRoaXMuZWxlbWVudFJlZiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIC8vIHRoaXMuaW5wdXQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbWl0cyBhIG1vZGVsQ2hhbmdlIGV2ZW50IHdpdGggZ2l2ZW4gdmFsdWUsIGluZGljYXRpbmcgdGhhdCB0aGUgbW9kZWwgb2YgdGhpcyBmb3JtIGlucHV0XHJcbiAgICAgKiBoYXMgY2hhbmdlZCBhbmQgaXRzIG5ldyB2YWx1ZSBpcyBnaXZlbiB2YWx1ZS4gQWxzbyBlbWl0cyB1c2VyTW9kZWxDaGFuZ2UgaWYgbWFya2VkQXNVc2VyVG91Y2hlZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldE1vZGVsKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm1vZGVsID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgJiYgdGhpcy5mb3JtVXNlckNoYW5nZUxpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybVVzZXJDaGFuZ2VMaXN0ZW5lci51c2VyTW9kZWxDaGFuZ2UubmV4dCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudXNlck1vZGVsQ2hhbmdlLm5leHQodmFsdWUpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX2hhc09uUHVzaENkU3RyYXRlZ3kpIHtcclxuICAgICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiLCBbXCIkZXZlbnRcIl0pXHJcbiAgICBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuY2FuQ2hhbmdlICYmICF0aGlzLm5vQ2xpY2tGb2N1cykge1xyXG4gICAgICAgICAgICB0aGlzLnJlcXVlc3RGb2N1cygpO1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuZXhjbHVkZVVzZXJNb2RlbENoYW5nZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXJrQXNVc2VyVG91Y2hlZCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJmb2N1c2luXCIpXHJcbiAgICBvbkZvY3VzSW4oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmV4Y2x1ZGVVc2VyTW9kZWxDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5tYXJrQXNVc2VyVG91Y2hlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVxdWVzdEZvY3VzKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNhbkNoYW5nZSAmJiB0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZm9jdXMoKTtcclxuICAgICAgICAgICAgdGhpcy5mb2N1c2VkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRvQmx1cigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlucHV0LmJsdXIoKTtcclxuICAgICAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG1hcmtGb3JDaGVjaygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGV0ZWN0Q2hhbmdlc0FmdGVyQW5ndWxhcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAoISF0aGlzLm5nWm9uZVdyYXBwZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5uZ1pvbmVXcmFwcGVyLnNldFRpbWVvdXRPdXRzaWRlQW5ndWxhcigoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLl9oYXNPblB1c2hDZFN0cmF0ZWd5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaW5rcyB0aGUgZ2l2ZW4gZm9ybUNvbXAuc3VibWl0IGV2ZW50IHRvIHRoZSBmaXJpbmcgb2YgZGV0ZWN0Q2hhbmdlcygpIG9mIGdpdmVuIGNoYW5nZSBkZXRlY3Rvci4gVGhpcyBpcyBhICd1dGlsaXR5LWxpa2UnIG1ldGhvZCxcclxuICAgICAqIGJ1dCB3ZSBtYW5hZ2UgdGhlIGFjdHVhbCBzdWJzY3JpcHRpb24gKHdpdGggVU5TVUJTQ1JJQkUoKSEpIG9uIHRoaXMgYmFzZSBjbGFzcy5cclxuICAgICAqIEBwYXJhbSBmb3JtQ29tcCBUaGUgZm9ybSB3aG9zZSBzdWJtaXQgd2Ugd2FudCB0byBsaW5rIHdpdGggdGhlIGNhbGwgb2YgLmRldGVjdENoYW5nZXMoKSBvbiBnaXZlbiBjaGFuZ2UgZGV0ZWN0b3IgcmVmLlxyXG4gICAgICogQHBhcmFtIGNoYW5nZURldGVjdG9yUmVmIFRoaXMgc2hvdWxkIGJlIGdpdmVuIGFzIHBhcmFtLiBJIGNob29zZSBub3QgdG8gbWFrZSB0aGlzIHBhcnQgb2Ygb3VyIChCYXNlRm9ybUlucHV0Q29tcG9uZW50KSBjb25zdHJ1Y3RvcixcclxuICAgICAqIGJlY2F1c2Ugd2UgYWxyZWFkeSBoYXZlIDIxIGV4dGVuZGVycy5cclxuICAgICAqL1xyXG4gICAgLy8gcHVibGljIGxpbmtGb3JtQW55U3VibWl0V2l0aERldGVjdENoYW5nZXMoZm9ybUNvbXA6IEZvcm1Db21wb25lbnQsIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgLy8gICAgIGlmIChmb3JtQ29tcCAmJiBjaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgLy8gICAgICAgICB0aGlzLl9mb3JtQW55U3VibWl0U3ViID0gZm9ybUNvbXAuYW55U3VibWl0LnN1YnNjcmliZSgoKCkgPT4ge1xyXG4gICAgLy8gICAgICAgICAgICAgaWYgKCF0aGlzLl9kZXN0cm95ZWQpIHtcclxuICAgIC8vICAgICAgICAgICAgICAgICBjaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAvLyAgICAgICAgICAgICB9XHJcbiAgICAvLyAgICAgICAgIH0pKTtcclxuICAgIC8vICAgICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcHVibGljIG1hcmtBc1VzZXJUb3VjaGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMucmVkRXJyb3JCYWNrZ3JvdW5kID0gZmFsc2U7IC8vIG5vdCBzdXJlIGlmIHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGRvIHRoYXRcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2xlYXJNYXJrZWRBc1VzZXJUb3VjaGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX21hcmtlZEFzVXNlclRvdWNoZWQgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICAvL3VzZWQgZm9yIGRlc2NlbmRlbnRzLCBiZWNhdXNlIGRlc2NlbmRlbnRzIGNhbid0IHNldCBzdXBlciBwcm9wZXJ0aWVzLCBzZWUgSW5wdXROdW1iZXJDb21wb25lbnRcclxuICAgIHByb3RlY3RlZCBzZXRNYXhMZW5ndGgobWF4TGVuZ3RoOiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAobm90TmlsbCh0aGlzLmZvcmNlZE1heExlbmd0aCkgfHwgbWF4TGVuZ3RoID09PSB0aGlzLl9tYXhMZW5ndGgpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKG1heExlbmd0aCA+IDApIHsgLy8gbm90IG1heExlbmd0aCBpcyAwXHJcbiAgICAgICAgICAgIHRoaXMuX21heExlbmd0aCA9IG1heExlbmd0aDtcclxuICAgICAgICAgICAgdGhpcy5fdXBkYXRlQ29udHJvbFZhbGlkYXRvcnNBbmRPd25GbGFncygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX21hcmtBc09uUHVzaCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9oYXNPblB1c2hDZFN0cmF0ZWd5ID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgX2NoZWNrU3RhdGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKHRoaXMubmdNb2RlbCkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5mb3JtU3VibWl0dGVkIHx8ICh0aGlzLl9jb250cm9sRXhpc3RzKCkgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUGxhY2UgdmFsaWRhdG9ycyBvbnRvIG91ciBBbmd1bGFyJ3MgRm9ybUNvbnRyb2wuXHJcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZUNvbnRyb2xWYWxpZGF0b3JzQW5kT3duRmxhZ3MoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZXI6IEVsZW1lbnRSZWYgPSB0aGlzLm15Rm9ybUlucHV0SW5zdGFuY2UgPyB0aGlzLm15Rm9ybUlucHV0SW5zdGFuY2UuZWxlbWVudFJlZiA6IHRoaXMuZWxlbWVudFJlZjtcclxuICAgICAgICAvLyBpZiAodGhpcy50b29sdGlwTWFuYWdlciAmJiBlcikge1xyXG4gICAgICAgIC8vICAgICB0aGlzLnRvb2x0aXBNYW5hZ2VyLmRlc3Ryb3lFcnJvclRvb2x0aXBPZkVsZW1lbnQoZXIubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIHRoaXMuX3NldE5hdGl2ZVJlcXVpcmVkKHRoaXMucmVxdWlyZWQpO1xyXG4gICAgICAgIHRoaXMuX3NldE5hdGl2ZU1heExlbmd0aCh0aGlzLm1heExlbmd0aCk7XHJcbiAgICAgICAgdGhpcy5fc2V0TmF0aXZlRGlzYWJsZWQodGhpcy5kaXNhYmxlZCk7XHJcbiAgICAgICAgdGhpcy5fc2V0TmF0aXZlUmVhZE9ubHkodGhpcy5yZWFkb25seSB8fCB0aGlzLmZvcmNlUmVhZG9ubHkpO1xyXG5cclxuICAgICAgICB0aGlzLnJlZEVycm9yQmFja2dyb3VuZCA9IGZhbHNlO1xyXG4gICAgICAgIGlmICh0aGlzLl9jb250cm9sRXhpc3RzKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IFtdO1xyXG5cclxuICAgICAgICAgICAgLy8gYWRkIHJlcXVpcmVkXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2gocmVxdWlyZWRWYWxpZGF0b3IpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBhZGQgbWF4bGVuZ3RoXHJcbiAgICAgICAgICAgIGlmIChub3ROaWxsKHRoaXMuX21heExlbmd0aCkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlY2ltYWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsaWRhdG9ycy5wdXNoKHByZWNpc2lvblNjYWxlVmFsaWRhdG9yKHRoaXMuX21heExlbmd0aCwgdGhpcy5kZWNpbWFscykpO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2gobWF4U3RyaW5nTGVuZ3RoVmFsaWRhdG9yKHRoaXMuX21heExlbmd0aCkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBhZGQgQElucHV0KCktZWQgdmFsaWRhdG9yc1xyXG4gICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5fdmFsaWRhdG9ycyk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fdmFsaWRhdG9ycykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdmFsaWRhdG9ycy5mb3JFYWNoKHZhbGlkYXRvciA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbGlkYXRvciA9PT0gcmVxdWlyZWRWYWxpZGF0b3IpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zZXROYXRpdmVSZXF1aXJlZCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnNldFZhbGlkYXRvcnModmFsaWRhdG9ycyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5zZXRBc3luY1ZhbGlkYXRvcnModGhpcy5fYXN5bmNWYWxpZGF0b3JzKTtcclxuICAgICAgICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8gd2hldGhlciB0aGlzLm5nTW9kZWwuY29udHJvbCBoYXMgc2FmZSBhY2Nlc3NcclxuICAgIHByaXZhdGUgX2NvbnRyb2xFeGlzdHMoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubmdNb2RlbCAmJiAhIXRoaXMuY29udHJvbDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9jb250cm9sSXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY29udHJvbEV4aXN0cygpICYmIHRoaXMuY29udHJvbC52YWxpZDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zZXROYXRpdmVEaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlucHV0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0TmF0aXZlTWF4TGVuZ3RoKG1heGxlbmd0aDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5tYXhMZW5ndGggPSBtYXhsZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBfc2V0TmF0aXZlUmVhZE9ubHkocmVhZG9ubHk6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pbnB1dCkge1xyXG4gICAgICAgICAgICB0aGlzLmlucHV0LnJlYWRPbmx5ID0gcmVhZG9ubHk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3NldE5hdGl2ZVJlcXVpcmVkKHJlcXVpcmVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5pbnB1dC5yZXF1aXJlZCA9IHJlcXVpcmVkO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9zdWJzY3JpYmVUb1NwZWVjaElucHV0KCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuX3NwZWVjaFN1YiA9IHRoaXMuc3BlZWNoSW5wdXQuc3BlZWNoSW5wdXQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgLy8gICAgIGlmICh0aGlzLmZvY3VzZWQgJiYgdGhpcy5fY29udHJvbEV4aXN0cygpKSB7XHJcbiAgICAgICAgLy8gICAgICAgICBjb25zdCB2YWw6IHN0cmluZyA9IHRoaXMuY29udHJvbC52YWx1ZTtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuc2V0TW9kZWwoKFN0cmluZ1V0aWxzLklzU3RyaW5nKHZhbCkgPyB2YWwgOiAnJykgKyBkYXRhKTtcclxuICAgICAgICAvLyAgICAgfVxyXG4gICAgICAgIC8vIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2FkZE9yUmVtb3ZlU2VsZkZyb21Gb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmhpZGRlbikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW1vdmVTZWxmRnJvbUZvcm0oKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLl9hZGRTZWxmVG9Gb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3VwZGF0ZVNlbGZJbkZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1Db21wb25lbnQudXBkYXRlRm9ybUlucHV0KHRoaXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIF9yZW1vdmVTZWxmRnJvbUZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybUNvbXBvbmVudCAmJiB0aGlzLm5nTW9kZWwpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29tcG9uZW50LnJlbW92ZUZvcm1JbnB1dCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYWRkU2VsZlRvRm9ybSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtQ29tcG9uZW50ICYmIHRoaXMubmdNb2RlbCAmJiAhdGhpcy5ub0Zvcm1Hcm91cENvbnRyb2wpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29tcG9uZW50LnJlbW92ZUZvcm1JbnB1dCh0aGlzKTsgLy8gcHJldmVudGluZyB0aGVyZSBhcmUgdHdvIGNvbnRyb2xzIGluIGZvcm1ncm91cCB3aGVuIG15Rm9ybUlucHV0SW5zdGFuY2UgaXMgKGJlaW5nKSBzZXRcclxuICAgICAgICAgICAgdGhpcy5mb3JtQ29tcG9uZW50LmFkZEZvcm1JbnB1dCh0aGlzLm15Rm9ybUlucHV0SW5zdGFuY2UgPyB0aGlzLm15Rm9ybUlucHV0SW5zdGFuY2UgOiB0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,69 +1,67 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { CoreComponentsIcon } from "../../core/enum/core-components-icon.enum";
3
+ import { animate, state, style, transition, trigger } from "@angular/animations";
2
4
  export class CoDialogComponent {
3
5
  constructor() {
4
- this.targetElement = null;
6
+ this.icons = CoreComponentsIcon;
5
7
  this.showCloseIcon = true;
6
- this.width = "50%";
7
- this.visible = false;
8
- this.position = { X: 'center', Y: 'center' };
9
- this.modal = true;
8
+ this.modal = false;
9
+ this.animation = true;
10
10
  this.closeClick = new EventEmitter();
11
11
  this.overlayClick = new EventEmitter();
12
- this.onOverlayClick = () => {
13
- this.coDialog.hide();
14
- this.overlayClick.emit();
15
- };
16
- this.onCloseClick = () => {
17
- this.coDialog.hide();
18
- this.closeClick.emit();
19
- };
20
12
  }
21
- open() {
22
- this.coDialog.show();
13
+ showClass() {
14
+ return true;
23
15
  }
24
- close() {
25
- this.coDialog.hide();
16
+ handleOverlayClick(event) {
17
+ if (!this.modal) {
18
+ this.overlayClick.next(event);
19
+ }
26
20
  }
27
21
  }
28
22
  CoDialogComponent.decorators = [
29
23
  { type: Component, args: [{
30
24
  selector: 'co-dialog',
31
25
  template: `
32
- <ejs-dialog #template
33
- [showCloseIcon]='showCloseIcon'
34
- [target]='targetElement'
35
- [width]='width'
36
- [position]="position"
37
- [isModal]="modal"
38
- [visible]="visible"
39
- (overlayClick)="onOverlayClick()"
40
- (close)="onCloseClick()"
41
- >
42
- <ng-template #footerTemplate>
43
- <ng-content select="[footer]"></ng-content>
44
- </ng-template>
45
- <ng-template #content>
46
- <ng-content></ng-content>
47
- </ng-template>
48
- <ng-template #header>
49
- <ng-content select="[header]"></ng-content>
50
- </ng-template>
51
- </ejs-dialog>
26
+ <div class="co-dialog-overlay" (click)="handleOverlayClick($event)" [@showHideOverlay]="animation"></div>
27
+ <div class="co-dialog-wrapper" [@showHideDialog]="animation">
28
+ <div class="dialog-header">
29
+ <ng-content select="[header]"></ng-content>
30
+ <div class="dialog-close-button" *ngIf="showCloseIcon" (click)="closeClick.emit($event)">
31
+ <co-icon [icon]="icons.Cancel"></co-icon>
32
+ </div>
33
+ </div>
34
+ <div class="dialog-content">
35
+ <ng-content></ng-content>
36
+ </div>
37
+ <div class="dialog-footer">
38
+ <ng-content select="[footer]"></ng-content>
39
+ </div>
40
+ </div>
52
41
  `,
53
- encapsulation: ViewEncapsulation.None,
54
- styles: [""]
42
+ animations: [
43
+ trigger('showHideOverlay', [
44
+ state('*', style({ opacity: 1 })),
45
+ state('void', style({ opacity: 0 })),
46
+ transition('void => *', animate(200)),
47
+ transition('* => void', animate('200ms 200ms'))
48
+ ]),
49
+ trigger('showHideDialog', [
50
+ state('*', style({ opacity: 1 })),
51
+ state('void', style({ opacity: 0 })),
52
+ transition('void => *', animate('200ms 200ms')),
53
+ transition('* => void', animate(200))
54
+ ])
55
+ ],
56
+ encapsulation: ViewEncapsulation.None
55
57
  },] }
56
58
  ];
57
- CoDialogComponent.ctorParameters = () => [];
58
59
  CoDialogComponent.propDecorators = {
59
- coDialog: [{ type: ViewChild, args: ['template',] }],
60
- targetElement: [{ type: Input }],
61
60
  showCloseIcon: [{ type: Input }],
62
- width: [{ type: Input }],
63
- visible: [{ type: Input }],
64
- position: [{ type: Input }],
65
61
  modal: [{ type: Input }],
62
+ animation: [{ type: Input }],
66
63
  closeClick: [{ type: Output }],
67
- overlayClick: [{ type: Output }]
64
+ overlayClick: [{ type: Output }],
65
+ showClass: [{ type: HostBinding, args: ["class.co-dialog",] }]
68
66
  };
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jby1kaWFsb2cvY28tZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFnQ3ZCLE1BQU0sT0FBTyxpQkFBaUI7SUE0QjVCO1FBdkJPLGtCQUFhLEdBQWdCLElBQUksQ0FBQztRQUdsQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUc5QixVQUFLLEdBQVcsS0FBSyxDQUFDO1FBR3RCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsYUFBUSxHQUFzQixFQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBQyxDQUFDO1FBR3pELFVBQUssR0FBWSxJQUFJLENBQUM7UUFHYixlQUFVLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFHdEUsaUJBQVksR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQVlqRixtQkFBYyxHQUFxQixHQUFHLEVBQUU7WUFDN0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQTtRQUVNLGlCQUFZLEdBQXFCLEdBQUcsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUFBO0lBbEJjLENBQUM7SUFFVCxJQUFJO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7O1lBL0RGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FxQlQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O2FBRXRDOzs7O3VCQUVFLFNBQVMsU0FBQyxVQUFVOzRCQUdwQixLQUFLOzRCQUdMLEtBQUs7b0JBR0wsS0FBSztzQkFHTCxLQUFLO3VCQUdMLEtBQUs7b0JBR0wsS0FBSzt5QkFHTCxNQUFNOzJCQUdOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlhbG9nQ29tcG9uZW50LFxuICAgICAgICBQb3NpdGlvbkRhdGFNb2RlbH0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBvcHVwc1wiO1xuaW1wb3J0IHsgRW1pdFR5cGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYmFzZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvLWRpYWxvZycsXG4gIHRlbXBsYXRlOiBgXG4gICAgICA8ZWpzLWRpYWxvZyAjdGVtcGxhdGUgXG4gICAgICAgICAgICAgICAgICBbc2hvd0Nsb3NlSWNvbl09J3Nob3dDbG9zZUljb24nXG4gICAgICAgICAgICAgICAgICBbdGFyZ2V0XT0ndGFyZ2V0RWxlbWVudCcgXG4gICAgICAgICAgICAgICAgICBbd2lkdGhdPSd3aWR0aCdcbiAgICAgICAgICAgICAgICAgIFtwb3NpdGlvbl09XCJwb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgICBbaXNNb2RhbF09XCJtb2RhbFwiXG4gICAgICAgICAgICAgICAgICBbdmlzaWJsZV09XCJ2aXNpYmxlXCJcbiAgICAgICAgICAgICAgICAgIChvdmVybGF5Q2xpY2spPVwib25PdmVybGF5Q2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25DbG9zZUNsaWNrKClcIlxuICAgICAgPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Zvb3RlclRlbXBsYXRlPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlcj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaGVhZGVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZWpzLWRpYWxvZz5cbiAgYCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3R5bGVVcmxzOiBbJy4vY28tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29EaWFsb2dDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCd0ZW1wbGF0ZScpXG4gIHB1YmxpYyBjb0RpYWxvZzogRGlhbG9nQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCA9IG51bGw7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dDbG9zZUljb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB3aWR0aDogc3RyaW5nID0gXCI1MCVcIjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb3NpdGlvbjogUG9zaXRpb25EYXRhTW9kZWwgPSB7WDogJ2NlbnRlcicsIFk6ICdjZW50ZXInfTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kYWw6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgb3ZlcmxheUNsaWNrOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuY29EaWFsb2cuc2hvdygpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY29EaWFsb2cuaGlkZSgpO1xuICB9XG5cbiAgcHVibGljIG9uT3ZlcmxheUNsaWNrOiBFbWl0VHlwZTxvYmplY3Q+ID0gKCkgPT4ge1xuICAgIHRoaXMuY29EaWFsb2cuaGlkZSgpO1xuICAgIHRoaXMub3ZlcmxheUNsaWNrLmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlQ2xpY2s6IEVtaXRUeXBlPG9iamVjdD4gPSAoKSA9PiB7XG4gICAgdGhpcy5jb0RpYWxvZy5oaWRlKCk7XG4gICAgdGhpcy5jbG9zZUNsaWNrLmVtaXQoKTtcbiAgfVxuXG59XG4iXX0=
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jby1kaWFsb2cvY28tZGlhbG9nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBcUMvRSxNQUFNLE9BQU8saUJBQWlCO0lBbkM5QjtRQW9Da0IsVUFBSyxHQUE4QixrQkFBa0IsQ0FBQztRQUcvRCxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUc5QixVQUFLLEdBQVksS0FBSyxDQUFDO1FBR3ZCLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFHakIsZUFBVSxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBR3RFLGlCQUFZLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFZMUYsQ0FBQztJQVRRLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxLQUFpQjtRQUN6QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7O1lBOURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JUO2dCQUNELFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsaUJBQWlCLEVBQUU7d0JBQ3pCLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQy9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQ2xDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3dCQUNyQyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztxQkFDaEQsQ0FBQztvQkFDRixPQUFPLENBQUMsZ0JBQWdCLEVBQUU7d0JBQ3hCLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQy9CLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUMsT0FBTyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUM7d0JBQ2xDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO3dCQUMvQyxVQUFVLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDdEMsQ0FBQztpQkFDSDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7OzRCQUlFLEtBQUs7b0JBR0wsS0FBSzt3QkFHTCxLQUFLO3lCQUdMLE1BQU07MkJBR04sTUFBTTt3QkFHTixXQUFXLFNBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb3JlQ29tcG9uZW50c0ljb259IGZyb20gXCIuLi8uLi9jb3JlL2VudW0vY29yZS1jb21wb25lbnRzLWljb24uZW51bVwiO1xuaW1wb3J0IHthbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXJ9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvLWRpYWxvZycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy1vdmVybGF5XCIgKGNsaWNrKT1cImhhbmRsZU92ZXJsYXlDbGljaygkZXZlbnQpXCIgW0BzaG93SGlkZU92ZXJsYXldPVwiYW5pbWF0aW9uXCI+PC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNvLWRpYWxvZy13cmFwcGVyXCIgW0BzaG93SGlkZURpYWxvZ109XCJhbmltYXRpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctaGVhZGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGlhbG9nLWNsb3NlLWJ1dHRvblwiICpuZ0lmPVwic2hvd0Nsb3NlSWNvblwiIChjbGljayk9XCJjbG9zZUNsaWNrLmVtaXQoJGV2ZW50KVwiPlxuICAgICAgICAgIDxjby1pY29uIFtpY29uXT1cImljb25zLkNhbmNlbFwiPjwvY28taWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctY29udGVudFwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkaWFsb2ctZm9vdGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdzaG93SGlkZU92ZXJsYXknLCBbXG4gICAgICBzdGF0ZSgnKicsIHN0eWxlKHtvcGFjaXR5OiAxfSkpLFxuICAgICAgc3RhdGUoJ3ZvaWQnLCBzdHlsZSh7b3BhY2l0eTogMH0pKSxcbiAgICAgIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIGFuaW1hdGUoMjAwKSksXG4gICAgICB0cmFuc2l0aW9uKCcqID0+IHZvaWQnLCBhbmltYXRlKCcyMDBtcyAyMDBtcycpKVxuICAgIF0pLFxuICAgIHRyaWdnZXIoJ3Nob3dIaWRlRGlhbG9nJywgW1xuICAgICAgc3RhdGUoJyonLCBzdHlsZSh7b3BhY2l0eTogMX0pKSxcbiAgICAgIHN0YXRlKCd2b2lkJywgc3R5bGUoe29wYWNpdHk6IDB9KSksXG4gICAgICB0cmFuc2l0aW9uKCd2b2lkID0+IConLCBhbmltYXRlKCcyMDBtcyAyMDBtcycpKSxcbiAgICAgIHRyYW5zaXRpb24oJyogPT4gdm9pZCcsIGFuaW1hdGUoMjAwKSlcbiAgICBdKVxuICBdLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIENvRGlhbG9nQ29tcG9uZW50IHtcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgQ29yZUNvbXBvbmVudHNJY29uID0gQ29yZUNvbXBvbmVudHNJY29uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Q2xvc2VJY29uOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYW5pbWF0aW9uOiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IG92ZXJsYXlDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLWRpYWxvZ1wiKVxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZU92ZXJsYXlDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb2RhbCkge1xuICAgICAgdGhpcy5vdmVybGF5Q2xpY2submV4dChldmVudCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,16 +1,19 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { CoDialogComponent } from "./co-dialog.component";
3
- import { DialogModule } from "@syncfusion/ej2-angular-popups";
3
+ import { IconModule } from "../icon/icon.module";
4
+ import { CommonModule } from "@angular/common";
5
+ import { BrowserAnimationsModule } from "@angular/platform-browser/animations";
4
6
  export class CoDialogModule {
5
7
  }
6
8
  CoDialogModule.decorators = [
7
9
  { type: NgModule, args: [{
8
10
  imports: [
9
- DialogModule
11
+ CommonModule,
12
+ BrowserAnimationsModule,
13
+ IconModule
10
14
  ],
11
15
  declarations: [CoDialogComponent],
12
- providers: [],
13
16
  exports: [CoDialogComponent]
14
17
  },] }
15
18
  ];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jby1kaWFsb2cvY28tZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQVc1RCxNQUFNLE9BQU8sY0FBYzs7O1lBVDFCLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtpQkFDZjtnQkFDRCxZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDakMsU0FBUyxFQUFFLEVBQ1Y7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0NvRGlhbG9nQ29tcG9uZW50fSBmcm9tIFwiLi9jby1kaWFsb2cuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7RGlhbG9nTW9kdWxlfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcG9wdXBzXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIERpYWxvZ01vZHVsZVxyXG4gICAgXSxcclxuICAgIGRlY2xhcmF0aW9uczogW0NvRGlhbG9nQ29tcG9uZW50XSxcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtDb0RpYWxvZ0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvRGlhbG9nTW9kdWxlIHtcclxufVxyXG4iXX0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tZGlhbG9nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jby1kaWFsb2cvY28tZGlhbG9nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFXN0UsTUFBTSxPQUFPLGNBQWM7OztZQVQxQixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osdUJBQXVCO29CQUN2QixVQUFVO2lCQUNYO2dCQUNDLFlBQVksRUFBRSxDQUFDLGlCQUFpQixDQUFDO2dCQUNqQyxPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzthQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29EaWFsb2dDb21wb25lbnR9IGZyb20gXCIuL2NvLWRpYWxvZy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtJY29uTW9kdWxlfSBmcm9tIFwiLi4vaWNvbi9pY29uLm1vZHVsZVwiO1xyXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge0Jyb3dzZXJBbmltYXRpb25zTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zXCI7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJyb3dzZXJBbmltYXRpb25zTW9kdWxlLFxyXG4gICAgSWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtDb0RpYWxvZ0NvbXBvbmVudF0sXHJcbiAgICBleHBvcnRzOiBbQ29EaWFsb2dDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb0RpYWxvZ01vZHVsZSB7XHJcbn1cclxuIl19
@@ -1,4 +1,4 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
1
+ import { Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
2
2
  export class CoDialogPromptComponent {
3
3
  constructor() {
4
4
  this.header = "header";
@@ -32,11 +32,11 @@ CoDialogPromptComponent.decorators = [
32
32
  selector: 'co-dialog-prompt',
33
33
  template: `
34
34
  <div #coDialogPromptRootContainer class='co-dialog-prompt-root-container'></div>
35
- <ejs-dialog #coDialogPrompt
36
- [buttons]="buttons"
35
+ <ejs-dialog #coDialogPrompt
36
+ [buttons]="buttons"
37
37
  [header]="header"
38
- [content]="content"
39
- [showCloseIcon]="showCloseIcon"
38
+ [content]="content"
39
+ [showCloseIcon]="showCloseIcon"
40
40
  [target]="target"
41
41
  [visible]="visible"
42
42
  [width]="width"
@@ -57,4 +57,4 @@ CoDialogPromptComponent.propDecorators = {
57
57
  showCloseIcon: [{ type: Input }],
58
58
  closeClick: [{ type: Output }]
59
59
  };
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tZGlhbG9nLXByb21wdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY28tZGlhbG9nLXByb21wdC9jby1kaWFsb2ctcHJvbXB0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQXNCeEYsTUFBTSxPQUFPLHVCQUF1QjtJQTRCbEM7UUF2Qk8sV0FBTSxHQUFXLFFBQVEsQ0FBQztRQUcxQixZQUFPLEdBQVcsU0FBUyxDQUFDO1FBRzVCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsVUFBSyxHQUFXLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUdyQixlQUFVLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFL0UsV0FBTSxHQUFXLGtDQUFrQyxDQUFDO1FBQ3BELFlBQU8sR0FBYTtZQUN2QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN6RixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7U0FDeEUsQ0FBQztRQWdCRyxpQkFBWSxHQUFxQixHQUFHLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUE7SUFqQmMsQ0FBQztJQUVULElBQUk7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDOzs7WUExREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUOzthQUVGOzs7OzZCQUVFLFNBQVMsU0FBQyxnQkFBZ0I7cUJBRzFCLEtBQUs7c0JBR0wsS0FBSztzQkFHTCxLQUFLO29CQUdMLEtBQUs7NEJBR0wsS0FBSzt5QkFHTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEaWFsb2dDb21wb25lbnR9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1wb3B1cHNcIjtcbmltcG9ydCB7IEVtaXRUeXBlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjby1kaWFsb2ctcHJvbXB0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICNjb0RpYWxvZ1Byb21wdFJvb3RDb250YWluZXIgY2xhc3M9J2NvLWRpYWxvZy1wcm9tcHQtcm9vdC1jb250YWluZXInPjwvZGl2PlxuICAgIDxlanMtZGlhbG9nICNjb0RpYWxvZ1Byb21wdCBcbiAgICAgICAgICAgICAgICBbYnV0dG9uc109XCJidXR0b25zXCIgXG4gICAgICAgICAgICAgICAgW2hlYWRlcl09XCJoZWFkZXJcIlxuICAgICAgICAgICAgICAgIFtjb250ZW50XT1cImNvbnRlbnRcIiBcbiAgICAgICAgICAgICAgICBbc2hvd0Nsb3NlSWNvbl09XCJzaG93Q2xvc2VJY29uXCIgXG4gICAgICAgICAgICAgICAgW3RhcmdldF09XCJ0YXJnZXRcIlxuICAgICAgICAgICAgICAgIFt2aXNpYmxlXT1cInZpc2libGVcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgICAgKGNsb3NlKT1cIm9uQ2xvc2VDbGljaygpXCJcbiAgICA+XG4gICAgPC9lanMtZGlhbG9nPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jby1kaWFsb2ctcHJvbXB0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ29EaWFsb2dQcm9tcHRDb21wb25lbnQge1xuICBAVmlld0NoaWxkKCdjb0RpYWxvZ1Byb21wdCcpXG4gIHB1YmxpYyBjb0RpYWxvZ1Byb21wdDogRGlhbG9nQ29tcG9uZW50O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkZXI6IHN0cmluZyA9IFwiaGVhZGVyXCI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZyA9IFwiY29udGVudFwiO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHdpZHRoOiBzdHJpbmcgPSBcIjUwJVwiO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93Q2xvc2VJY29uOiBib29sZWFuID0gdHJ1ZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHJlYWRvbmx5IGNsb3NlQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICBwdWJsaWMgdGFyZ2V0OiBzdHJpbmcgPSAnLmNvLWRpYWxvZy1wcm9tcHQtcm9vdC1jb250YWluZXInO1xuICBwdWJsaWMgYnV0dG9uczogT2JqZWN0W10gPSBbXG4gICAgICB7IGNsaWNrOiB0aGlzLmJ1dHRvbkNsaWNrLmJpbmQodGhpcyksIGJ1dHRvbk1vZGVsOiB7IGNvbnRlbnQ6ICdKYScsIGlzUHJpbWFyeTogJ3RydWUnIH0gfSxcbiAgICAgIHsgY2xpY2s6IHRoaXMuYnV0dG9uQ2xpY2suYmluZCh0aGlzKSwgYnV0dG9uTW9kZWw6IHsgY29udGVudDogJ05lZScgfSB9XG4gICAgXTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIG9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5jb0RpYWxvZ1Byb21wdC5zaG93KCk7XG4gIH1cblxuICBwdWJsaWMgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5jb0RpYWxvZ1Byb21wdC5oaWRlKCk7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ2xvc2VDbGljazogRW1pdFR5cGU8b2JqZWN0PiA9ICgpID0+IHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gICAgdGhpcy5jbG9zZUNsaWNrLmVtaXQoKTtcbiAgfVxuXG59XG4iXX0=
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tZGlhbG9nLXByb21wdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY28tZGlhbG9nLXByb21wdC9jby1kaWFsb2ctcHJvbXB0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQXNCaEYsTUFBTSxPQUFPLHVCQUF1QjtJQTRCbEM7UUF2Qk8sV0FBTSxHQUFXLFFBQVEsQ0FBQztRQUcxQixZQUFPLEdBQVcsU0FBUyxDQUFDO1FBRzVCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFHekIsVUFBSyxHQUFXLEtBQUssQ0FBQztRQUd0QixrQkFBYSxHQUFZLElBQUksQ0FBQztRQUdyQixlQUFVLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7UUFFL0UsV0FBTSxHQUFXLGtDQUFrQyxDQUFDO1FBQ3BELFlBQU8sR0FBYTtZQUN2QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN6RixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUU7U0FDeEUsQ0FBQztRQWdCRyxpQkFBWSxHQUFxQixHQUFHLEVBQUU7WUFDM0MsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixDQUFDLENBQUE7SUFqQmMsQ0FBQztJQUVULElBQUk7UUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDOzs7WUExREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQkFBa0I7Z0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUOzthQUVGOzs7OzZCQUVFLFNBQVMsU0FBQyxnQkFBZ0I7cUJBRzFCLEtBQUs7c0JBR0wsS0FBSztzQkFHTCxLQUFLO29CQUdMLEtBQUs7NEJBR0wsS0FBSzt5QkFHTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtEaWFsb2dDb21wb25lbnR9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1wb3B1cHNcIjtcbmltcG9ydCB7RW1pdFR5cGV9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYmFzZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjby1kaWFsb2ctcHJvbXB0JyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8ZGl2ICNjb0RpYWxvZ1Byb21wdFJvb3RDb250YWluZXIgY2xhc3M9J2NvLWRpYWxvZy1wcm9tcHQtcm9vdC1jb250YWluZXInPjwvZGl2PlxuICAgIDxlanMtZGlhbG9nICNjb0RpYWxvZ1Byb21wdFxuICAgICAgICAgICAgICAgIFtidXR0b25zXT1cImJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiaGVhZGVyXCJcbiAgICAgICAgICAgICAgICBbY29udGVudF09XCJjb250ZW50XCJcbiAgICAgICAgICAgICAgICBbc2hvd0Nsb3NlSWNvbl09XCJzaG93Q2xvc2VJY29uXCJcbiAgICAgICAgICAgICAgICBbdGFyZ2V0XT1cInRhcmdldFwiXG4gICAgICAgICAgICAgICAgW3Zpc2libGVdPVwidmlzaWJsZVwiXG4gICAgICAgICAgICAgICAgW3dpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25DbG9zZUNsaWNrKClcIlxuICAgID5cbiAgICA8L2Vqcy1kaWFsb2c+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2NvLWRpYWxvZy1wcm9tcHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDb0RpYWxvZ1Byb21wdENvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2NvRGlhbG9nUHJvbXB0JylcbiAgcHVibGljIGNvRGlhbG9nUHJvbXB0OiBEaWFsb2dDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhlYWRlcjogc3RyaW5nID0gXCJoZWFkZXJcIjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29udGVudDogc3RyaW5nID0gXCJjb250ZW50XCI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgd2lkdGg6IHN0cmluZyA9IFwiNTAlXCI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNob3dDbG9zZUljb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgcmVhZG9ubHkgY2xvc2VDbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuXG4gIHB1YmxpYyB0YXJnZXQ6IHN0cmluZyA9ICcuY28tZGlhbG9nLXByb21wdC1yb290LWNvbnRhaW5lcic7XG4gIHB1YmxpYyBidXR0b25zOiBPYmplY3RbXSA9IFtcbiAgICAgIHsgY2xpY2s6IHRoaXMuYnV0dG9uQ2xpY2suYmluZCh0aGlzKSwgYnV0dG9uTW9kZWw6IHsgY29udGVudDogJ0phJywgaXNQcmltYXJ5OiAndHJ1ZScgfSB9LFxuICAgICAgeyBjbGljazogdGhpcy5idXR0b25DbGljay5iaW5kKHRoaXMpLCBidXR0b25Nb2RlbDogeyBjb250ZW50OiAnTmVlJyB9IH1cbiAgICBdO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmNvRGlhbG9nUHJvbXB0LnNob3coKTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvRGlhbG9nUHJvbXB0LmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBidXR0b25DbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgb25DbG9zZUNsaWNrOiBFbWl0VHlwZTxvYmplY3Q+ID0gKCkgPT4ge1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgICB0aGlzLmNsb3NlQ2xpY2suZW1pdCgpO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { __decorate } from "tslib";
2
- import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
2
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from '@angular/core';
3
3
  import { InputBoolean } from "../../core/decorator/input-boolean.decorator";
4
4
  export class CoKanbanComponent {
5
5
  constructor() {
@@ -14,6 +14,9 @@ export class CoKanbanComponent {
14
14
  this.dragStartEvent = new EventEmitter();
15
15
  this.dragStopEvent = new EventEmitter();
16
16
  }
17
+ showClass() {
18
+ return true;
19
+ }
17
20
  ngOnInit() {
18
21
  }
19
22
  ngAfterViewInit() {
@@ -83,7 +86,8 @@ CoKanbanComponent.propDecorators = {
83
86
  cardClickEvent: [{ type: Output }],
84
87
  cardDoubleClickEvent: [{ type: Output }],
85
88
  dragStartEvent: [{ type: Output }],
86
- dragStopEvent: [{ type: Output }]
89
+ dragStopEvent: [{ type: Output }],
90
+ showClass: [{ type: HostBinding, args: ["class.co-kanban",] }]
87
91
  };
88
92
  __decorate([
89
93
  InputBoolean()
@@ -100,4 +104,4 @@ __decorate([
100
104
  __decorate([
101
105
  InputBoolean()
102
106
  ], CoKanbanComponent.prototype, "showEmptyColumn", void 0);
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28ta2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jby1rYW5iYW4vY28ta2FuYmFuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQztBQTJCMUUsTUFBTSxPQUFPLGlCQUFpQjtJQW1EMUI7UUE3Q08scUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBSWpDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBTzlCLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUluQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUcvQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBSXRCLG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBWWpDLG1CQUFjLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO1FBRzFGLHlCQUFvQixHQUFxQyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUdoRyxtQkFBYyxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUdoRixrQkFBYSxHQUFnQyxJQUFJLFlBQVksRUFBaUIsQ0FBQztJQUV0RSxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztnQkFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDWjtJQUNMLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBcUI7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxJQUF3QjtRQUMzQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0scUJBQXFCLENBQUMsSUFBd0I7UUFDakQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQW1CO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxjQUFjLENBQUMsSUFBbUI7UUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7O1lBNUdKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsV0FBVztnQkFDckIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CWDtnQkFDQyxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN4Qzs7OztxQkFFSSxTQUFTLFNBQUMsUUFBUSxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzsrQkFHbkMsS0FBSzs0QkFJTCxLQUFLOzJCQUlMLEtBQUs7Z0NBR0wsS0FBSzs0QkFJTCxLQUFLO3VCQUlMLEtBQUs7OEJBR0wsS0FBSzsrQkFJTCxLQUFLO3NCQUdMLEtBQUs7bUJBR0wsS0FBSzs2QkFHTCxNQUFNO21DQUdOLE1BQU07NkJBR04sTUFBTTs0QkFHTixNQUFNOztBQTFDUDtJQURDLFlBQVksRUFBRTsyREFDeUI7QUFJeEM7SUFEQyxZQUFZLEVBQUU7d0RBQ3NCO0FBT3JDO0lBREMsWUFBWSxFQUFFOzREQUMyQjtBQUkxQztJQURDLFlBQVksRUFBRTt3REFDdUI7QUFPdEM7SUFEQyxZQUFZLEVBQUU7MERBQ3lCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFZpZXdDaGlsZCxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBDYXJkQ2xpY2tFdmVudEFyZ3MsXHJcbiAgICBDYXJkU2V0dGluZ3NNb2RlbCwgRGlhbG9nRXZlbnRBcmdzLCBEcmFnRXZlbnRBcmdzLFxyXG4gICAgS2FuYmFuQ29tcG9uZW50LFxyXG4gICAgU3dpbWxhbmVTZXR0aW5nc01vZGVsXHJcbn0gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLWthbmJhblwiO1xyXG5pbXBvcnQge0lucHV0Qm9vbGVhbn0gZnJvbSBcIi4uLy4uL2NvcmUvZGVjb3JhdG9yL2lucHV0LWJvb2xlYW4uZGVjb3JhdG9yXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY28ta2FuYmFuJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICA8ZWpzLWthbmJhblxyXG4gICAgICAgICNrYW5iYW5cclxuICAgICAgICBpZD1cImthbmJhblwiXHJcbiAgICAgICAgW2FsbG93RHJhZ0FuZERyb3BdPVwiYWxsb3dEcmFnQW5kRHJvcFwiXHJcbiAgICAgICAgW2FsbG93S2V5Ym9hcmRdPVwiYWxsb3dLZXlib2FyZFwiXHJcbiAgICAgICAgW2NhcmRTZXR0aW5nc109XCJjYXJkU2V0dGluZ3NcIlxyXG4gICAgICAgIFtlbmFibGVQZXJzaXN0ZW5jZV09XCJlbmFibGVQZXJzaXN0ZW5jZVwiXHJcbiAgICAgICAgW2VuYWJsZVRvb2x0aXBdPVwiZW5hYmxlVG9vbHRpcFwiXHJcbiAgICAgICAgW2tleUZpZWxkXT1cImtleUZpZWxkXCJcclxuICAgICAgICBbc2hvd0VtcHR5Q29sdW1uXT1cInNob3dFbXB0eUNvbHVtblwiXHJcbiAgICAgICAgW3N3aW1sYW5lU2V0dGluZ3NdPVwic3dpbWxhbmVTZXR0aW5nc1wiXHJcbiAgICAgICAgW2RhdGFTb3VyY2VdPVwiZGF0YVwiXHJcbiAgICAgICAgKGNhcmRDbGljayk9XCJoYW5kbGVDYXJkQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGNhcmREb3VibGVDbGljayk9XCJoYW5kbGVDYXJkRG91YmxlQ2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgKGRpYWxvZ09wZW4pPVwiZGlhbG9nT3BlbigkZXZlbnQpXCJcclxuICAgICAgICAoZHJhZ1N0YXJ0KT1cImhhbmRsZURyYWdTdGFydCgkZXZlbnQpXCJcclxuICAgICAgICAoZHJhZ1N0b3ApPVwiaGFuZGxlRHJhZ1N0b3AoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICA8L2Vqcy1rYW5iYW4+XHJcbiAgYCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIENvS2FuYmFuQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2thbmJhbicsIHtzdGF0aWM6IGZhbHNlfSlcclxuICAgIHB1YmxpYyBrYW5iYW46IEthbmJhbkNvbXBvbmVudDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgYWxsb3dEcmFnQW5kRHJvcDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIGFsbG93S2V5Ym9hcmQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY2FyZFNldHRpbmdzOiBDYXJkU2V0dGluZ3NNb2RlbDtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgZW5hYmxlUGVyc2lzdGVuY2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgZW5hYmxlVG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMga2V5RmllbGQ6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIEBJbnB1dEJvb2xlYW4oKVxyXG4gICAgcHVibGljIHNob3dFbXB0eUNvbHVtbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc3dpbWxhbmVTZXR0aW5nczogU3dpbWxhbmVTZXR0aW5nc01vZGVsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgY29sdW1uczoge31bXTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGRhdGE6IGFueVtdO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNhcmRDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8Q2FyZENsaWNrRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FyZENsaWNrRXZlbnRBcmdzPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGNhcmREb3VibGVDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8Q2FyZENsaWNrRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2FyZENsaWNrRXZlbnRBcmdzPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGRyYWdTdGFydEV2ZW50OiBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50QXJncz4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudEFyZ3M+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZHJhZ1N0b3BFdmVudDogRXZlbnRFbWl0dGVyPERyYWdFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnRBcmdzPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnMpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmthbmJhbi5jb2x1bW5zID0gdGhpcy5jb2x1bW5zO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5rYW5iYW4ucmVmcmVzaEhlYWRlcigpO1xyXG4gICAgICAgICAgICB9LCAxMDAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRpYWxvZ09wZW4oYXJnczogRGlhbG9nRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICAgICAgYXJncy5jYW5jZWwgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVDYXJkQ2xpY2soYXJnczogQ2FyZENsaWNrRXZlbnRBcmdzKTogdm9pZCAge1xyXG4gICAgICAgIHRoaXMuY2FyZENsaWNrRXZlbnQubmV4dChhcmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2FyZERvdWJsZUNsaWNrKGFyZ3M6IENhcmRDbGlja0V2ZW50QXJncyk6IHZvaWQgIHtcclxuICAgICAgICB0aGlzLmNhcmREb3VibGVDbGlja0V2ZW50Lm5leHQoYXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZURyYWdTdGFydChhcmdzOiBEcmFnRXZlbnRBcmdzKTogdm9pZCAge1xyXG4gICAgICAgIHRoaXMuZHJhZ1N0YXJ0RXZlbnQubmV4dChhcmdzKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlRHJhZ1N0b3AoYXJnczogRHJhZ0V2ZW50QXJncyk6IHZvaWQgIHtcclxuICAgICAgICB0aGlzLmRyYWdTdG9wRXZlbnQubmV4dChhcmdzKTtcclxuICAgIH1cclxufVxyXG4iXX0=
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28ta2FuYmFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jby1rYW5iYW4vY28ta2FuYmFuLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQUUsV0FBVyxFQUN6QixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFPdkIsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDhDQUE4QyxDQUFDO0FBMkIxRSxNQUFNLE9BQU8saUJBQWlCO0lBd0QxQjtRQWxETyxxQkFBZ0IsR0FBWSxJQUFJLENBQUM7UUFJakMsa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFPOUIsc0JBQWlCLEdBQVksS0FBSyxDQUFDO1FBSW5DLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBRy9CLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFJdEIsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFZakMsbUJBQWMsR0FBcUMsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFHMUYseUJBQW9CLEdBQXFDLElBQUksWUFBWSxFQUFzQixDQUFDO1FBR2hHLG1CQUFjLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO1FBR2hGLGtCQUFhLEdBQWdDLElBQUksWUFBWSxFQUFpQixDQUFDO0lBT3RFLENBQUM7SUFKVixTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBSUQsUUFBUTtJQUNSLENBQUM7SUFFRCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ2hDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUFxQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQXdCO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxJQUF3QjtRQUNqRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxlQUFlLENBQUMsSUFBbUI7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFtQjtRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7WUFqSEosU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JYO2dCQUNDLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3hDOzs7O3FCQUVJLFNBQVMsU0FBQyxRQUFRLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDOytCQUduQyxLQUFLOzRCQUlMLEtBQUs7MkJBSUwsS0FBSztnQ0FHTCxLQUFLOzRCQUlMLEtBQUs7dUJBSUwsS0FBSzs4QkFHTCxLQUFLOytCQUlMLEtBQUs7c0JBR0wsS0FBSzttQkFHTCxLQUFLOzZCQUdMLE1BQU07bUNBR04sTUFBTTs2QkFHTixNQUFNOzRCQUdOLE1BQU07d0JBR04sV0FBVyxTQUFDLGlCQUFpQjs7QUE3QzlCO0lBREMsWUFBWSxFQUFFOzJEQUN5QjtBQUl4QztJQURDLFlBQVksRUFBRTt3REFDc0I7QUFPckM7SUFEQyxZQUFZLEVBQUU7NERBQzJCO0FBSTFDO0lBREMsWUFBWSxFQUFFO3dEQUN1QjtBQU90QztJQURDLFlBQVksRUFBRTswREFDeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIENhcmRDbGlja0V2ZW50QXJncyxcclxuICAgIENhcmRTZXR0aW5nc01vZGVsLCBEaWFsb2dFdmVudEFyZ3MsIERyYWdFdmVudEFyZ3MsXHJcbiAgICBLYW5iYW5Db21wb25lbnQsXHJcbiAgICBTd2ltbGFuZVNldHRpbmdzTW9kZWxcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXIta2FuYmFuXCI7XHJcbmltcG9ydCB7SW5wdXRCb29sZWFufSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3IvaW5wdXQtYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjby1rYW5iYW4nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgIDxlanMta2FuYmFuXHJcbiAgICAgICAgI2thbmJhblxyXG4gICAgICAgIGlkPVwia2FuYmFuXCJcclxuICAgICAgICBbYWxsb3dEcmFnQW5kRHJvcF09XCJhbGxvd0RyYWdBbmREcm9wXCJcclxuICAgICAgICBbYWxsb3dLZXlib2FyZF09XCJhbGxvd0tleWJvYXJkXCJcclxuICAgICAgICBbY2FyZFNldHRpbmdzXT1cImNhcmRTZXR0aW5nc1wiXHJcbiAgICAgICAgW2VuYWJsZVBlcnNpc3RlbmNlXT1cImVuYWJsZVBlcnNpc3RlbmNlXCJcclxuICAgICAgICBbZW5hYmxlVG9vbHRpcF09XCJlbmFibGVUb29sdGlwXCJcclxuICAgICAgICBba2V5RmllbGRdPVwia2V5RmllbGRcIlxyXG4gICAgICAgIFtzaG93RW1wdHlDb2x1bW5dPVwic2hvd0VtcHR5Q29sdW1uXCJcclxuICAgICAgICBbc3dpbWxhbmVTZXR0aW5nc109XCJzd2ltbGFuZVNldHRpbmdzXCJcclxuICAgICAgICBbZGF0YVNvdXJjZV09XCJkYXRhXCJcclxuICAgICAgICAoY2FyZENsaWNrKT1cImhhbmRsZUNhcmRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAoY2FyZERvdWJsZUNsaWNrKT1cImhhbmRsZUNhcmREb3VibGVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAoZGlhbG9nT3Blbik9XCJkaWFsb2dPcGVuKCRldmVudClcIlxyXG4gICAgICAgIChkcmFnU3RhcnQpPVwiaGFuZGxlRHJhZ1N0YXJ0KCRldmVudClcIlxyXG4gICAgICAgIChkcmFnU3RvcCk9XCJoYW5kbGVEcmFnU3RvcCgkZXZlbnQpXCJcclxuICAgID5cclxuICAgIDwvZWpzLWthbmJhbj5cclxuICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29LYW5iYW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gICAgQFZpZXdDaGlsZCgna2FuYmFuJywge3N0YXRpYzogZmFsc2V9KVxyXG4gICAgcHVibGljIGthbmJhbjogS2FuYmFuQ29tcG9uZW50O1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBhbGxvd0RyYWdBbmREcm9wOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgYWxsb3dLZXlib2FyZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjYXJkU2V0dGluZ3M6IENhcmRTZXR0aW5nc01vZGVsO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBlbmFibGVQZXJzaXN0ZW5jZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBASW5wdXRCb29sZWFuKClcclxuICAgIHB1YmxpYyBlbmFibGVUb29sdGlwOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBrZXlGaWVsZDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQElucHV0Qm9vbGVhbigpXHJcbiAgICBwdWJsaWMgc2hvd0VtcHR5Q29sdW1uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzd2ltbGFuZVNldHRpbmdzOiBTd2ltbGFuZVNldHRpbmdzTW9kZWw7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBjb2x1bW5zOiB7fVtdO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZGF0YTogYW55W107XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2FyZENsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudEFyZ3M+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgY2FyZERvdWJsZUNsaWNrRXZlbnQ6IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxDYXJkQ2xpY2tFdmVudEFyZ3M+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgZHJhZ1N0YXJ0RXZlbnQ6IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50QXJncz4oKTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBkcmFnU3RvcEV2ZW50OiBFdmVudEVtaXR0ZXI8RHJhZ0V2ZW50QXJncz4gPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudEFyZ3M+KCk7XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28ta2FuYmFuXCIpXHJcbiAgICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5jb2x1bW5zKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5rYW5iYW4uY29sdW1ucyA9IHRoaXMuY29sdW1ucztcclxuICAgICAgICAgICAgICAgIHRoaXMua2FuYmFuLnJlZnJlc2hIZWFkZXIoKTtcclxuICAgICAgICAgICAgfSwgMTAwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaWFsb2dPcGVuKGFyZ3M6IERpYWxvZ0V2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgICAgIGFyZ3MuY2FuY2VsID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaGFuZGxlQ2FyZENsaWNrKGFyZ3M6IENhcmRDbGlja0V2ZW50QXJncyk6IHZvaWQgIHtcclxuICAgICAgICB0aGlzLmNhcmRDbGlja0V2ZW50Lm5leHQoYXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZUNhcmREb3VibGVDbGljayhhcmdzOiBDYXJkQ2xpY2tFdmVudEFyZ3MpOiB2b2lkICB7XHJcbiAgICAgICAgdGhpcy5jYXJkRG91YmxlQ2xpY2tFdmVudC5uZXh0KGFyZ3MpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBoYW5kbGVEcmFnU3RhcnQoYXJnczogRHJhZ0V2ZW50QXJncyk6IHZvaWQgIHtcclxuICAgICAgICB0aGlzLmRyYWdTdGFydEV2ZW50Lm5leHQoYXJncyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGhhbmRsZURyYWdTdG9wKGFyZ3M6IERyYWdFdmVudEFyZ3MpOiB2b2lkICB7XHJcbiAgICAgICAgdGhpcy5kcmFnU3RvcEV2ZW50Lm5leHQoYXJncyk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Component, EventEmitter, HostBinding, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
2
- import { ToolbarService, LinkService, ImageService, HtmlEditorService } from '@syncfusion/ej2-angular-richtexteditor';
2
+ import { HtmlEditorService, ImageService, LinkService, ToolbarService } from "@syncfusion/ej2-angular-richtexteditor";
3
3
  export class CoRichTextEditorComponent {
4
4
  constructor() {
5
5
  this.onChangeEvent = new EventEmitter();
@@ -50,4 +50,4 @@ CoRichTextEditorComponent.propDecorators = {
50
50
  model: [{ type: Input }],
51
51
  showClass: [{ type: HostBinding, args: ["class.co-rich-text-editor",] }]
52
52
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY28tcmljaC10ZXh0LWVkaXRvci9jby1yaWNoLXRleHQtZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFBRSxXQUFXLEVBQ3pCLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxZQUFZLEVBQ1osaUJBQWlCLEVBRWxCLE1BQU0sd0NBQXdDLENBQUM7QUFrQmhELE1BQU0sT0FBTyx5QkFBeUI7SUFmdEM7UUFvQlMsa0JBQWEsR0FBa0MsSUFBSSxZQUFZLEVBQW1CLENBQUM7SUFpQzVGLENBQUM7SUEzQlEsU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGVBQWU7SUFDZixDQUFDO0lBRUQsUUFBUTtJQUNSLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQXFCO1FBQ25DLElBQUksSUFBSSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7SUFDSCxDQUFDOzs7WUFwREYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7Ozs7O0dBU1Q7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3pFLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7cUJBRUUsU0FBUyxTQUFDLEtBQUssRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUM7NEJBR2hDLE1BQU07b0JBR04sS0FBSzt3QkFHTCxXQUFXLFNBQUMsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtcclxuICBUb29sYmFyU2VydmljZSxcclxuICBMaW5rU2VydmljZSxcclxuICBJbWFnZVNlcnZpY2UsXHJcbiAgSHRtbEVkaXRvclNlcnZpY2UsXHJcbiAgUmljaFRleHRFZGl0b3JDb21wb25lbnQsIENoYW5nZUV2ZW50QXJnc1xyXG59IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXJpY2h0ZXh0ZWRpdG9yJztcclxuaW1wb3J0IHtTYXZlUmVwb3J0QXJnc30gZnJvbSBcIkBzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXBpdm90dmlld1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby1yaWNoLXRleHQtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGVqcy1yaWNodGV4dGVkaXRvclxyXG4gICAgICAgICNydGVcclxuICAgICAgICBpZD1cIlJ0ZVwiXHJcbiAgICAgICAgW25nTW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZT48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9lanMtcmljaHRleHRlZGl0b3I+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtUb29sYmFyU2VydmljZSwgTGlua1NlcnZpY2UsIEltYWdlU2VydmljZSwgSHRtbEVkaXRvclNlcnZpY2VdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIENvUmljaFRleHRFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3J0ZScsIHtzdGF0aWM6IGZhbHNlfSlcclxuICBwdWJsaWMgZWRpdG9yOiBSaWNoVGV4dEVkaXRvckNvbXBvbmVudDtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxDaGFuZ2VFdmVudEFyZ3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxDaGFuZ2VFdmVudEFyZ3M+KCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1vZGVsOiBhbnk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXJpY2gtdGV4dC1lZGl0b3JcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb250ZW50KCk6IEVsZW1lbnQge1xyXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVkaXRvci5nZXRDb250ZW50KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0VGV4dCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmVkaXRvci5nZXRUZXh0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoYXJnczogQ2hhbmdlRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICBpZiAoYXJncykge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlRXZlbnQubmV4dChhcmdzKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY28tcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY28tcmljaC10ZXh0LWVkaXRvci9jby1yaWNoLXRleHQtZWRpdG9yLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZJLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFdBQVcsRUFFWCxjQUFjLEVBQ2YsTUFBTSx3Q0FBd0MsQ0FBQztBQWlCaEQsTUFBTSxPQUFPLHlCQUF5QjtJQWZ0QztRQW9CUyxrQkFBYSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQWlDNUYsQ0FBQztJQTNCUSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZTtJQUNmLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsSUFBcUI7UUFDbkMsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7OztZQXBERixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7R0FTVDtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQztnQkFDekUsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztxQkFFRSxTQUFTLFNBQUMsS0FBSyxFQUFFLEVBQUMsTUFBTSxFQUFFLEtBQUssRUFBQzs0QkFHaEMsTUFBTTtvQkFHTixLQUFLO3dCQUdMLFdBQVcsU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZUV2ZW50QXJncyxcclxuICBIdG1sRWRpdG9yU2VydmljZSxcclxuICBJbWFnZVNlcnZpY2UsXHJcbiAgTGlua1NlcnZpY2UsXHJcbiAgUmljaFRleHRFZGl0b3JDb21wb25lbnQsXHJcbiAgVG9vbGJhclNlcnZpY2VcclxufSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItcmljaHRleHRlZGl0b3JcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tcmljaC10ZXh0LWVkaXRvcicsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxlanMtcmljaHRleHRlZGl0b3JcclxuICAgICAgICAjcnRlXHJcbiAgICAgICAgaWQ9XCJSdGVcIlxyXG4gICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPlxyXG4gICAgICA8bmctdGVtcGxhdGU+PC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZWpzLXJpY2h0ZXh0ZWRpdG9yPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbVG9vbGJhclNlcnZpY2UsIExpbmtTZXJ2aWNlLCBJbWFnZVNlcnZpY2UsIEh0bWxFZGl0b3JTZXJ2aWNlXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb1JpY2hUZXh0RWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICBAVmlld0NoaWxkKCdydGUnLCB7c3RhdGljOiBmYWxzZX0pXHJcbiAgcHVibGljIGVkaXRvcjogUmljaFRleHRFZGl0b3JDb21wb25lbnQ7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBvbkNoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8Q2hhbmdlRXZlbnRBcmdzPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlRXZlbnRBcmdzPigpO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtb2RlbDogYW55O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby1yaWNoLXRleHQtZWRpdG9yXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Q29udGVudCgpOiBFbGVtZW50IHtcclxuICAgIGlmICh0aGlzLmVkaXRvcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5lZGl0b3IuZ2V0Q29udGVudCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRleHQoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmVkaXRvcikge1xyXG4gICAgICByZXR1cm4gdGhpcy5lZGl0b3IuZ2V0VGV4dCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQ2hhbmdlKGFyZ3M6IENoYW5nZUV2ZW50QXJncyk6IHZvaWQge1xyXG4gICAgaWYgKGFyZ3MpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZUV2ZW50Lm5leHQoYXJncyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==