@gipisistemas/ng-core 1.1.3 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/assets/styles/colors.scss +5 -1
  2. package/bundles/gipisistemas-ng-core.umd.js +2098 -1285
  3. package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
  4. package/bundles/gipisistemas-ng-core.umd.min.js +10 -9
  5. package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
  6. package/core/gipi-components/models/sort.model.d.ts +3 -3
  7. package/core/utils/array.util.d.ts +2 -2
  8. package/core/utils/object.util.d.ts +3 -5
  9. package/core/utils/string.util.d.ts +4 -0
  10. package/esm2015/core/gipi-components/models/sort.model.js +1 -1
  11. package/esm2015/core/gipi-components/services/abstract-crud.service.js +18 -24
  12. package/esm2015/core/utils/array.util.js +4 -2
  13. package/esm2015/core/utils/object.util.js +5 -9
  14. package/esm2015/core/utils/string.util.js +27 -1
  15. package/esm2015/gipi-components.js +11 -1
  16. package/esm2015/shared/components/input/input.component.js +46 -23
  17. package/esm2015/shared/components/select-entity-paged/shared/select-search/select-search.component.js +2 -2
  18. package/esm2015/shared/components/table/table.component.js +1 -1
  19. package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
  20. package/esm2015/shared/gipi-components/button/button.component.js +18 -2
  21. package/esm2015/shared/gipi-components/card/card.component.js +113 -0
  22. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
  23. package/esm2015/shared/gipi-components/empty-state/empty-state.component.js +30 -0
  24. package/esm2015/shared/gipi-components/input-select-paged/input-search/input-search.component.js +2 -2
  25. package/esm2015/shared/gipi-components/layout-grid/col.directive.js +4 -4
  26. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
  27. package/esm2015/shared/gipi-components/notification/notification.component.js +8 -3
  28. package/esm2015/shared/gipi-components/popover/shared/popover-trigger.js +4 -4
  29. package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
  30. package/esm2015/shared/gipi-components/slide-toggle/slide-toggle.component.js +113 -0
  31. package/esm2015/shared/gipi-components/split-button/split-button.component.js +243 -0
  32. package/esm2015/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +18 -0
  33. package/esm2015/shared/gipi-components/tabs/shared/tab.model.js +8 -0
  34. package/esm2015/shared/gipi-components/tabs/tab/tab.component.js +66 -0
  35. package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +123 -0
  36. package/esm2015/shared/gipi-components/textarea/textarea.component.js +298 -0
  37. package/esm2015/shared/shared.module.js +22 -16
  38. package/esm2015/shared.js +1 -5
  39. package/esm5/core/gipi-components/models/sort.model.js +1 -1
  40. package/esm5/core/gipi-components/services/abstract-crud.service.js +18 -24
  41. package/esm5/core/utils/array.util.js +4 -3
  42. package/esm5/core/utils/object.util.js +5 -9
  43. package/esm5/core/utils/string.util.js +27 -1
  44. package/esm5/gipi-components.js +11 -1
  45. package/esm5/shared/components/input/input.component.js +46 -23
  46. package/esm5/shared/components/select-entity-paged/shared/select-search/select-search.component.js +2 -2
  47. package/esm5/shared/components/table/table.component.js +1 -1
  48. package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
  49. package/esm5/shared/gipi-components/button/button.component.js +22 -2
  50. package/esm5/shared/gipi-components/card/card.component.js +135 -0
  51. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
  52. package/esm5/shared/gipi-components/empty-state/empty-state.component.js +33 -0
  53. package/esm5/shared/gipi-components/input-select-paged/input-search/input-search.component.js +2 -2
  54. package/esm5/shared/gipi-components/layout-grid/col.directive.js +4 -4
  55. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
  56. package/esm5/shared/gipi-components/notification/notification.component.js +8 -3
  57. package/esm5/shared/gipi-components/popover/shared/popover-trigger.js +4 -4
  58. package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
  59. package/esm5/shared/gipi-components/slide-toggle/slide-toggle.component.js +127 -0
  60. package/esm5/shared/gipi-components/split-button/split-button.component.js +249 -0
  61. package/esm5/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +19 -0
  62. package/esm5/shared/gipi-components/tabs/shared/tab.model.js +10 -0
  63. package/esm5/shared/gipi-components/tabs/tab/tab.component.js +67 -0
  64. package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +131 -0
  65. package/esm5/shared/gipi-components/textarea/textarea.component.js +352 -0
  66. package/esm5/shared/shared.module.js +22 -16
  67. package/esm5/shared.js +1 -5
  68. package/fesm2015/gipisistemas-ng-core.js +1991 -1274
  69. package/fesm2015/gipisistemas-ng-core.js.map +1 -1
  70. package/fesm5/gipisistemas-ng-core.js +2088 -1281
  71. package/fesm5/gipisistemas-ng-core.js.map +1 -1
  72. package/gipi-components.d.ts +9 -0
  73. package/gipisistemas-ng-core.metadata.json +1 -1
  74. package/package.json +1 -2
  75. package/shared/components/input/input.component.d.ts +13 -11
  76. package/shared/components/table/table.component.d.ts +3 -3
  77. package/shared/gipi-components/button/button.component.d.ts +14 -0
  78. package/shared/gipi-components/card/card.component.d.ts +23 -0
  79. package/shared/gipi-components/empty-state/empty-state.component.d.ts +5 -0
  80. package/shared/gipi-components/notification/notification.component.d.ts +1 -0
  81. package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +7 -0
  82. package/shared/gipi-components/slide-toggle/slide-toggle.component.d.ts +27 -0
  83. package/shared/gipi-components/split-button/split-button.component.d.ts +60 -0
  84. package/shared/{directives → gipi-components/tabs/shared}/dynamic-tab.directive.d.ts +1 -1
  85. package/shared/gipi-components/tabs/shared/tab.model.d.ts +12 -0
  86. package/shared/{components → gipi-components/tabs}/tab/tab.component.d.ts +4 -2
  87. package/shared/gipi-components/tabs/tab-group/tab-group.component.d.ts +22 -0
  88. package/shared/gipi-components/textarea/textarea.component.d.ts +68 -0
  89. package/shared.d.ts +0 -4
  90. package/esm2015/shared/components/select-button/select-button.component.js +0 -181
  91. package/esm2015/shared/components/tab/tab.component.js +0 -57
  92. package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
  93. package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
  94. package/esm5/shared/components/select-button/select-button.component.js +0 -195
  95. package/esm5/shared/components/tab/tab.component.js +0 -58
  96. package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
  97. package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
  98. package/shared/components/select-button/select-button.component.d.ts +0 -35
  99. package/shared/components/tab-group/tab-group.component.d.ts +0 -22
@@ -0,0 +1,33 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, forwardRef } from '@angular/core';
3
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ var GIPIEmptyStateComponent = /** @class */ (function () {
5
+ function GIPIEmptyStateComponent() {
6
+ }
7
+ GIPIEmptyStateComponent_1 = GIPIEmptyStateComponent;
8
+ GIPIEmptyStateComponent.prototype.ngOnInit = function () { };
9
+ var GIPIEmptyStateComponent_1;
10
+ GIPIEmptyStateComponent = GIPIEmptyStateComponent_1 = __decorate([
11
+ Component({
12
+ selector: 'gipi-empty-state',
13
+ exportAs: 'gipiEmptyState',
14
+ template: "<mat-icon>sentiment_very_dissatisfied</mat-icon>\nNenhum registro foi encontrado",
15
+ providers: [
16
+ {
17
+ provide: NG_VALUE_ACCESSOR,
18
+ useExisting: forwardRef(function () { return GIPIEmptyStateComponent_1; }),
19
+ multi: true
20
+ }
21
+ ],
22
+ host: {
23
+ 'class': 'gipi-empty-state',
24
+ },
25
+ changeDetection: ChangeDetectionStrategy.OnPush,
26
+ styles: [":host{display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:1.4rem;font-weight:600;color:#131313;padding:2.4rem 0}:host>mat-icon{font-size:3.2rem;height:3.2rem;width:3.2rem;margin-bottom:5px}"]
27
+ }),
28
+ __metadata("design:paramtypes", [])
29
+ ], GIPIEmptyStateComponent);
30
+ return GIPIEmptyStateComponent;
31
+ }());
32
+ export { GIPIEmptyStateComponent };
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHktc3RhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJuRDtJQUVJO0lBQWdCLENBQUM7Z0NBRlIsdUJBQXVCO0lBSWhDLDBDQUFRLEdBQVIsY0FBbUIsQ0FBQzs7SUFKWCx1QkFBdUI7UUFqQm5DLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsUUFBUSxFQUFFLGdCQUFnQjtZQUMxQiw0RkFBMkM7WUFFM0MsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHlCQUF1QixFQUF2QixDQUF1QixDQUFDO29CQUN0RCxLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLE9BQU8sRUFBRSxrQkFBa0I7YUFDOUI7WUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDbEQsQ0FBQzs7T0FDVyx1QkFBdUIsQ0FNbkM7SUFBRCw4QkFBQztDQUFBLEFBTkQsSUFNQztTQU5ZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1lbXB0eS1zdGF0ZScsXG4gICAgZXhwb3J0QXM6ICdnaXBpRW1wdHlTdGF0ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9lbXB0eS1zdGF0ZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdJUElFbXB0eVN0YXRlQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktZW1wdHktc3RhdGUnLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgR0lQSUVtcHR5U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgY29uc3RydWN0b3IoKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbn1cbiJdfQ==
@@ -368,7 +368,7 @@ var GIPIInputSearchComponent = /** @class */ (function () {
368
368
  Component({
369
369
  selector: "gipi-input-search",
370
370
  exportAs: 'gipiInputSearch',
371
- template: "<!-- Espa\u00E7o reservado para ajustar o deslocamento vertical dos elementos mat-option -->\n<input matInput\n class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: o mat-datepicker-content mat-tab-header \u00E9 necess\u00E1rio para herdar as cores do tema do material, consulte PR n\u00BA 22 -->\n<div #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\">\n\n <input class=\"mat-select-search-input mat-input-element\"\n aria-label=\"Pesquisa suspensa\"\n autocomplete=\"off\"\n type=\"text\"\n #searchSelectInput\n [placeholder]=\"placeholderLabel\"\n [formControl]=\"_formControl\"\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\">\n\n <mat-spinner *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\">\n </mat-spinner>\n\n <button *ngIf=\"!hideClearSearchButton && value && !searching\"\n class=\"mat-select-search-clear\"\n aria-label=\"Limpar\"\n mat-icon-button\n (click)=\"_reset(true)\">\n <mat-icon> close </mat-icon>\n </button>\n\n <mat-divider> </mat-divider>\n</div>\n\n<div *ngIf=\"(_showNoEntriesFound$ | async) && !searching\"\n class=\"mat-select-search-no-entries-found\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n Nenhum registro foi encontrado\n</div>",
371
+ template: "<!-- Espa\u00E7o reservado para ajustar o deslocamento vertical dos elementos mat-option -->\n<input matInput\n class=\"mat-select-search-input mat-select-search-hidden\" />\n\n<!-- Note: o mat-datepicker-content mat-tab-header \u00E9 necess\u00E1rio para herdar as cores do tema do material, consulte PR n\u00BA 22 -->\n<div #innerSelectSearch\n class=\"mat-select-search-inner mat-typography mat-datepicker-content mat-tab-header\">\n\n <input class=\"mat-select-search-input mat-input-element\"\n aria-label=\"Pesquisa suspensa\"\n aria-hidden=\"false\"\n autocomplete=\"off\"\n type=\"text\"\n #searchSelectInput\n [placeholder]=\"placeholderLabel\"\n [formControl]=\"_formControl\"\n (keydown)=\"_handleKeydown($event)\"\n (keyup)=\"_handleKeyup($event)\"\n (blur)=\"onBlur()\">\n\n <mat-spinner *ngIf=\"searching\"\n class=\"mat-select-search-spinner\"\n diameter=\"16\">\n </mat-spinner>\n\n <button *ngIf=\"!hideClearSearchButton && value && !searching\"\n class=\"mat-select-search-clear\"\n aria-label=\"Limpar\"\n mat-icon-button\n (click)=\"_reset(true)\">\n <mat-icon> close </mat-icon>\n </button>\n\n <mat-divider> </mat-divider>\n</div>\n\n<div *ngIf=\"(_showNoEntriesFound$ | async) && !searching\"\n class=\"mat-select-search-no-entries-found\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n Nenhum registro foi encontrado\n</div>",
372
372
  providers: [
373
373
  {
374
374
  provide: NG_VALUE_ACCESSOR,
@@ -394,4 +394,4 @@ var GIPIInputSearchComponent = /** @class */ (function () {
394
394
  return GIPIInputSearchComponent;
395
395
  }());
396
396
  export { GIPIInputSearchComponent };
397
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0LXBhZ2VkL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZOLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJoRztJQXFGSSxrQ0FD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SUFBSSxFQUFFLENBQUM7a0NBQW9CLFVBQVU7dUVBQUM7SUFLbEc7UUFEQyxXQUFXLENBQUMsMkNBQTJDLENBQUM7OztxRUFHeEQ7SUFuRlEsd0JBQXdCO1FBakJwQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0Isa2hEQUE0QztZQUU1QyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUF1QyxPQUFBLDBCQUF3QixFQUF4QixDQUF3QixDQUFDO29CQUN4RixLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLE9BQU8sRUFBRSxtQkFBbUI7YUFDL0I7WUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDbEQsQ0FBQztRQXVGTyxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUdqQixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDN0IsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO3lDQUpJLFNBQVM7WUFDcEIsaUJBQWlCO1lBQ25CLGFBQWE7WUFDWSxTQUFTO1lBQ0gsWUFBWTtPQTFGOUQsd0JBQXdCLENBZ1hwQztJQUFELCtCQUFDO0NBQUEsQUFoWEQsSUFnWEM7U0FoWFksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBBLCBET1dOX0FSUk9XLCBFTkQsIEVOVEVSLCBFU0NBUEUsIEhPTUUsIE5JTkUsIFNQQUNFLCBVUF9BUlJPVywgWiwgWkVSTyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGBnaXBpLWlucHV0LXNlYXJjaGAsXG4gICAgZXhwb3J0QXM6ICdnaXBpSW5wdXRTZWFyY2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSUlucHV0U2VhcmNoQ29tcG9uZW50ID0+IEdJUElJbnB1dFNlYXJjaENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdnaXBpLWlucHV0LXNlYXJjaCcsXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHSVBJSW5wdXRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICAvLyBWYWxvciBkZSBwZXNxdWlzYSBhdHVhbFxuICAgIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbGFzdEV4dGVybmFsSW5wdXRWYWx1ZTogc3RyaW5nO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgw6BzIG9ww6fDtWVzIE1hdFNlbGVjdFxuICAgIHB1YmxpYyBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8TWF0T3B0aW9uPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxNYXRPcHRpb24+PihudWxsKTtcbiAgICBwdWJsaWMgc2V0IF9vcHRpb25zKF9vcHRpb25zOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPikge1xuICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KF9vcHRpb25zKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBfb3B0aW9ucygpOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3B0aW9uc0xpc3QkOiBPYnNlcnZhYmxlPE1hdE9wdGlvbltdPiA9IHRoaXMuX29wdGlvbnMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoX29wdGlvbnM6IFF1ZXJ5TGlzdDxNYXRPcHRpb24+KTogT2JzZXJ2YWJsZTxhbnk+ID0+IF9vcHRpb25zXG4gICAgICAgICAgICA/IF9vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnM6IGFueSk6IGFueSA9PiBvcHRpb25zLnRvQXJyYXkoKSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoPE1hdE9wdGlvbltdPihfb3B0aW9ucy50b0FycmF5KCkpLClcbiAgICAgICAgICAgIDogb2YobnVsbClcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBwcml2YXRlIG9wdGlvbnNMZW5ndGgkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbnM6IE1hdE9wdGlvbltdKTogbnVtYmVyID0+IG9wdGlvbnMgPyBvcHRpb25zLmxlbmd0aCA6IDApXG4gICAgKTtcblxuICAgIHB1YmxpYyBfZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAgIC8vIFNlIGRldmUgbW9zdHJhciBhIG1lbnNhZ2VtIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgIHB1YmxpYyBfc2hvd05vRW50cmllc0ZvdW5kJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMsXG4gICAgICAgIHRoaXMub3B0aW9uc0xlbmd0aCRcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKFt2YWx1ZSwgb3B0aW9uc0xlbmd0aF06IFthbnksIG51bWJlcl0pOiBib29sZWFuID0+IHZhbHVlICYmIG9wdGlvbnNMZW5ndGggPT09IHRoaXMuZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpKVxuICAgICk7XG5cbiAgICAvLyBTdWJqZWN0IGVtaXRpZG8gcXVhbmRvIG8gY29tcG9uZW50ZSBmb2kgZGVzdHJ1w61kb1xuICAgIHByaXZhdGUgX29uRGVzdHJveTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyBkZXNjZW5kZW50ZSBhdGl2byBwYXJhIHN1cG9ydGUgQVJJQS5cbiAgICBwcml2YXRlIGFjdGl2ZURlc2NlbmRhbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXJMYWJlbDogc3RyaW5nID0gJ1Blc3F1aXNhcic7XG5cbiAgICBASW5wdXQoKSBjbGVhclNlYXJjaElucHV0OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8vIFNlIGRldmUgbW9zdHJhciBvIGluZGljYWRvciBkZSBwZXNxdWlzYSBlbSBhbmRhbWVudG9cbiAgICBASW5wdXQoKSBzZWFyY2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIERlc2F0aXZhIG8gZm9jbyBpbmljaWFsIGRvIGNhbXBvIGRlIGVudHJhZGFcbiAgICBASW5wdXQoKSBkaXNhYmxlSW5pdGlhbEZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBBdGl2YXIgbGltcGFyIGlucHV0IGFvIHByZXNzaW9uYXIgZXNjYXBlXG4gICAgQElucHV0KCkgZW5hYmxlQ2xlYXJPbkVzY2FwZVByZXNzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEltcGVkZSBxdWUgYSBjaGF2ZSBob21lL2VuZCBzZWphIHByb3BhZ2FkYSBwYXJhIG1hdC1zZWxlY3QsXG4gICAgICogcGVybWl0aW5kbyBtb3ZlciBvIGN1cnNvciBkZW50cm8gZGEgZW50cmFkYSBkZSBwZXNxdWlzYSBlbSB2ZXogZGUgbmF2ZWdhciBwZWxhcyBvcMOnw7Vlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHByZXZlbnRIb21lRW5kS2V5UHJvcGFnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIERlc2F0aXZhIGEgcm9sYWdlbSBwYXJhIGFzIG9ww6fDtWVzIGF0aXZhcyBxdWFuZG8gYSBsaXN0YSBkZSBvcMOnw7VlcyDDqSBhbHRlcmFkYS4gw5p0aWwgcGFyYSBwZXNxdWlzYSBkbyBsYWRvIGRvIHNlcnZpZG9yXG4gICAgQElucHV0KCkgZGlzYWJsZVNjcm9sbFRvQWN0aXZlT25PcHRpb25zQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gTW9zdHJhci9vY3VsdGFyIG8gYm90w6NvIGxpbXBhciBwZXNxdWlzYSBkYSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgQElucHV0KCkgaGlkZUNsZWFyU2VhcmNoQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyBjYW1wbyBkZSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoU2VsZWN0SW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hTZWxlY3RJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIC8vIFJlZmVyw6puY2lhIGFvIGNhbXBvIGRlIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBAVmlld0NoaWxkKCdpbm5lclNlbGVjdFNlYXJjaCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGlubmVyU2VsZWN0U2VhcmNoOiBFbGVtZW50UmVmO1xuXG4gICAgLy8gQWRpY2lvbmEgYSBjbGFzc2UgbWF0LXNlbGVjdC1zZWFyY2gtaW5zaWRlLW1hdC1vcHRpb24gc2UgbyBpdHNzLWlucHV0LXNlYXJjaCBlc3RpdmVyXG4gICAgLy8gZGVudHJvIGRvIG1hdC1vcHRpb25cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3Qtc2VhcmNoLWluc2lkZS1tYXQtb3B0aW9uJylcbiAgICBnZXQgaXNJbnNpZGVNYXRPcHRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubWF0T3B0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KE1hdFNlbGVjdCkgcHVibGljIG1hdFNlbGVjdDogTWF0U2VsZWN0LFxuICAgICAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1hdE9wdGlvbikgcHVibGljIG1hdE9wdGlvbjogTWF0T3B0aW9uID0gbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNYXRGb3JtRmllbGQpIHB1YmxpYyBtYXRGb3JtRmllbGQ6IE1hdEZvcm1GaWVsZCA9IG51bGwsXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZpbmlyIGNsYXNzZSBkZSBvcMOnw6NvIG1hdCBwZXJzb25hbGl6YWRhIHNlIG8gY29tcG9uZW50ZSBmb2kgY29sb2NhZG8gZGVudHJvIGRlIHVtYSBvcMOnw6NvIG1hdFxuICAgICAgICBpZiAodGhpcy5tYXRPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5zLW1hdC1zZWxlY3Qtc2VhcmNoJyk7XG4gICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJzxnaXBpLXNlbGVjdC1zZWFyY2g+IGRldmUgc2VyIGNvbG9jYWRvIGRlbnRybyBkZSB1bSBlbGVtZW50byA8bWF0LW9wdGlvbj4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFF1YW5kbyBvIHBhaW5lbCBzdXNwZW5zbyBkZSBzZWxlw6fDo28gw6kgYWJlcnRvIG91IGZlY2hhZG9cbiAgICAgICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkZWxheSgxKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3BlbmVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlucHV0V2lkdGgoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBGb2NhciBvIGNhbXBvIGRlIHBlc3F1aXNhIGFvIGFicmlyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlSW5pdGlhbEZvY3VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTGltcMOhLWxvIGFvIGZlY2hhclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGVhclNlYXJjaElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRGVmaW5pciBvIHByaW1laXJvIGl0ZW0gYXRpdm8gYXDDs3MgYXMgb3DDp8O1ZXMgYWx0ZXJhZGFzXG4gICAgICAgIHRoaXMubWF0U2VsZWN0Lm9wZW5lZENoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm1hdFNlbGVjdC5vcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFZhcmnDoXZlbCBkZSBmZWNoYW1lbnRvIHBhcmEgcmFzdHJlYXIgYSBwcmltZWlyYSBvcMOnw6NvIG1haXMgcmVjZW50ZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gUGFyYSBldml0YXIgcXVlIGEgbGlzdGEgcm9sZSBwYXJhIG8gdG9wbyBxdWFuZG8gYXMgb3DDp8O1ZXMgc8OjbyBhZGljaW9uYWRhcyBhbyBmaW5hbCBkYSBsaXN0YVxuICAgICAgICAgICAgICAgICAgICAvLyAocG9yIGV4ZW1wbG86IHJvbGFnZW0gaW5maW5pdGEpLCBjb21wYXJhbW9zIGFwZW5hcyBhcyBhbHRlcmHDp8O1ZXMgbmFzIHByaW1laXJhcyBvcMOnw7VlcyBwYXJhXG4gICAgICAgICAgICAgICAgICAgIC8vIGRldGVybWluYXIgc2UgZGV2ZW1vcyBkZWZpbmlyIG8gcHJpbWVpcm8gaXRlbSBjb21vIGF0aXZvLiBJc3NvIGV2aXRhIGEgcm9sYWdlbSBkZXNuZWNlc3PDoXJpYVxuICAgICAgICAgICAgICAgICAgICAvLyBwYXJhIG8gdG9wbyBkYSBsaXN0YSBxdWFuZG8gYXMgb3DDp8O1ZXMgc8OjbyBhbmV4YWRhcywgbWFzIHBlcm1pdGUgcXVlIG8gcHJpbWVpcm8gaXRlbSBkYSBsaXN0YVxuICAgICAgICAgICAgICAgICAgICAvLyBzZWphIGRlZmluaWRvIGNvbW8gYXRpdm8gcG9yIHBhZHLDo28gcXVhbmRvIG7Do28gaMOhIHNlbGXDp8OjbyBhdGl2YS5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzRmlyc3RPcHRpb246IE1hdE9wdGlvbiA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpW3RoaXMuZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5jaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFdml0YXIgbyBlcnJvIFwiZXhwcmVzc2lvbiBoYXMgYmVlbiBjaGFuZ2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0ZXIgYSBRdWVyeUxpc3QgZW0gdW1hIG1hdHJpelxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogTWF0T3B0aW9uW10gPSB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTyB2ZXJkYWRlaXJvIHByaW1laXJvIGl0ZW0gw6kgY29tcGVuc2FkbyBwb3IgMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEZpcnN0T3B0aW9uOiBNYXRPcHRpb24gPSBvcHRpb25zW3RoaXMuZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8TWF0T3B0aW9uPiA9IHRoaXMubWF0U2VsZWN0Ll9rZXlNYW5hZ2VyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleU1hbmFnZXIgJiYgdGhpcy5tYXRTZWxlY3QucGFuZWxPcGVuKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEZWZpbmlyIHByaW1laXJvIGl0ZW0gYXRpdm8gZSBsYXJndXJhIGRlIGVudHJhZGFcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZlcmlmaXF1ZSBzZSBhIHByaW1laXJhIG9ww6fDo28gbmVzc2FzIGFsdGVyYcOnw7VlcyDDqSBkaWZlcmVudGUgZGEgYW50ZXJpb3IuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RPcHRpb25Jc0NoYW5nZWQ6IGJvb2xlYW4gPSAhdGhpcy5tYXRTZWxlY3QuY29tcGFyZVdpdGgocHJldmlvdXNGaXJzdE9wdGlvbiwgY3VycmVudEZpcnN0T3B0aW9uKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENBU086IEEgcHJpbWVpcmEgb3DDp8OjbyDDqSBkaWZlcmVudGUgYWdvcmEuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBkZXZlbW9zIGRlZmluaS1sbyBjb21vIGF0aXZvIGUgcm9sYXIgcGFyYSBvIHRvcG8uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0T3B0aW9uSXNDaGFuZ2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIW9wdGlvbnMuZmluZCgob3B0aW9uOiBNYXRPcHRpb24pOiBib29sZWFuID0+IHRoaXMubWF0U2VsZWN0LmNvbXBhcmVXaXRoKG9wdGlvbiwga2V5TWFuYWdlci5hY3RpdmVJdGVtKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZ3VhcmRlIGFzIGFsdGVyYcOnw7VlcyBuYSBsYXJndXJhIGRvIHBhaW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlucHV0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXR1YWxpemUgbm9zc2EgcmVmZXLDqm5jaWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzRmlyc3RPcHRpb24gPSBjdXJyZW50Rmlyc3RPcHRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyBBZGljaW9uZSBvdSByZW1vdmEgYSBjbGFzc2UgY3NzIGRlcGVuZGVuZG8gc2UgZGVzZWphIG1vc3RyYXIgYSBtZW5zYWdlbSBzZW0gZW50cmFkYXMgZW5jb250cmFkYXNcbiAgICAgICAgLy8gb2JzOiBpc3NvIMOpIGhhY2t5XG4gICAgICAgIHRoaXMuX3Nob3dOb0VudHJpZXNGb3VuZCQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpXG4gICAgICAgICkuc3Vic2NyaWJlKChzaG93Tm9FbnRyaWVzRm91bmQ6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgIC8vIERlZmluaXIgbmVuaHVtYSBjbGFzc2UgZGUgZW50cmFkYSBlbmNvbnRyYWRhIG5hIG1hdC1vcHRpb25cbiAgICAgICAgICAgIGlmICh0aGlzLm1hdE9wdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChzaG93Tm9FbnRyaWVzRm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnbWF0LXNlbGVjdC1zZWFyY2gtbm8tZW50cmllcy1mb3VuZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoJ21hdC1zZWxlY3Qtc2VhcmNoLW5vLWVudHJpZXMtZm91bmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlZGltZW5zaW9uZSBhIGxhcmd1cmEgZGUgZW50cmFkYSBxdWFuZG8gYSB2aWV3cG9ydCBmb3IgcmVkaW1lbnNpb25hZGEsXG4gICAgICAgIC8vIG91IHNlamEsIGEgbGFyZ3VyYSBkbyBhY2lvbmFkb3IgcG9kZSBzZXIgcmVkaW1lbnNpb25hZGEuXG4gICAgICAgIHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF0U2VsZWN0LnBhbmVsT3Blbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlucHV0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gQXR1YWxpemFyIHZpc3VhbGl6YcOnw6NvIHF1YW5kbyBhcyBvcMOnw7VlcyBkaXNwb27DrXZlaXMgbXVkYXJlbVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKF86IGFueSk6IHZvaWQgPT4geyB9O1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKHZhbHVlOiBhbnkpOiBib29sZWFuID0+IHZhbHVlICE9PSB0aGlzLl9sYXN0RXh0ZXJuYWxJbnB1dFZhbHVlKSxcbiAgICAgICAgICAgIHRhcCgoKTogYW55ID0+IHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUgPSB1bmRlZmluZWQpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9sYXN0RXh0ZXJuYWxJbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYW5pcHVsYSBvIGV2ZW50byBkZSB0ZWNsYSBwcmVzc2lvbmFkYSBjb20gTWF0U2VsZWN0LlxuICAgICAqIFBlcm1pdGUsIHBvciBleC4gc2VsZWNpb25hbmRvIGNvbSBhIHRlY2xhIGVudGVyLCBuYXZlZ2FuZG8gY29tIGFzIHRlY2xhcyBkZSBzZXRhLCBldGMuXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gRXZpdGUgYSBwcm9wYWdhw6fDo28gZGUgdG9kb3Mgb3MgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcyBwYXJhIGV2aXRhciBwcm9ibGVtYXMgZGUgc2VsZcOnw6NvXG4gICAgICAgIGlmICgoZXZlbnQua2V5ICYmIGV2ZW50LmtleS5sZW5ndGggPT09IDEpIHx8XG4gICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBBICYmIGV2ZW50LmtleUNvZGUgPD0gWikgfHxcbiAgICAgICAgICAgIChldmVudC5rZXlDb2RlID49IFpFUk8gJiYgZXZlbnQua2V5Q29kZSA8PSBOSU5FKSB8fFxuICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPT09IFNQQUNFKVxuICAgICAgICAgICAgfHwgKHRoaXMucHJldmVudEhvbWVFbmRLZXlQcm9wYWdhdGlvbiAmJiAoZXZlbnQua2V5Q29kZSA9PT0gSE9NRSB8fCBldmVudC5rZXlDb2RlID09PSBFTkQpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWF0U2VsZWN0Lm11bHRpcGxlICYmIGV2ZW50LmtleSAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgLy8gUmVjdXBlcmUgbyBmb2NvIGFww7NzIGEgc2VsZcOnw6NvIG3Dumx0aXBsYSwgcGFyYSBxdWUgcG9zc2Ftb3MgZGlnaXRhciBhaW5kYSBtYWlzXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHRoaXMuX2ZvY3VzKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FzbyBlc3BlY2lhbCwgc2UgY2xpY2FyIGVtIEVzY2FwZSwgc2UgYSBlbnRyYWRhIGVzdGl2ZXIgdmF6aWEsIGZlY2hlIG8gbWVudSBzdXNwZW5zbywgY2FzbyBjb250csOhcmlvLCBlc3ZhemllIG8gY2FtcG8gZGUgcGVzcXVpc2FcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlQ2xlYXJPbkVzY2FwZVByZXNzZWQgPT09IHRydWUgJiYgZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmIHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0KHRydWUpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYW5pcHVsYSBvIGV2ZW50byBkZSBhdGl2YcOnw6NvIGRlIGNoYXZlIGNvbSBNYXRTZWxlY3QuXG4gICAgICogUGVybWl0ZSwgcG9yIGV4LiBvIGFuw7puY2lvIGRvIERlc2NlbmRlbnRlIGF0dWFsbWVudGUgYXRpdm8gcG9yIGxlaXRvcmVzIGRlIHRlbGEuXG4gICAgICovXG4gICAgX2hhbmRsZUtleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyB8fCBldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XKSB7XG4gICAgICAgICAgICBjb25zdCBhcmlhQWN0aXZlRGVzY2VuZGFudElkOiBzdHJpbmcgPSB0aGlzLm1hdFNlbGVjdC5fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKS5maW5kSW5kZXgoKGl0ZW06IE1hdE9wdGlvbik6IGJvb2xlYW4gPT4gaXRlbS5pZCA9PT0gYXJpYUFjdGl2ZURlc2NlbmRhbnRJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQgPSB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKVtpbmRleF0uX2dldEhvc3RFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgYXJpYUFjdGl2ZURlc2NlbmRhbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jYWxpemEgbyBjYW1wbyBkZSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgICovXG4gICAgcHVibGljIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFNlbGVjdElucHV0IHx8ICF0aGlzLm1hdFNlbGVjdC5wYW5lbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNhbHZlIGUgcmVzdGF1cmUgbyBzY3JvbGxUb3AgZG8gcGFpbmVsLCBwb2lzIHNlcsOhIHJlZGVmaW5pZG8gcG9yIGZvY3VzICgpXG4gICAgICAgIC8vIG9iczogaXNzbyDDqSBoYWNreVxuICAgICAgICBjb25zdCBwYW5lbDogYW55ID0gdGhpcy5tYXRTZWxlY3QucGFuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wOiBhbnkgPSBwYW5lbC5zY3JvbGxUb3A7XG5cbiAgICAgICAgLy8gU2V0YSBvIGZvY29cbiAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgcGFuZWwuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZGVmaW5lIG8gdmFsb3IgZGUgcGVzcXVpc2EgYXR1YWxcbiAgICAgKiBAcGFyYW0gZm9jdXMgc2UgZGV2ZSBmb2NhciBhcMOzcyBhIHJlZGVmaW5pw6fDo29cbiAgICAgKi9cbiAgICBwdWJsaWMgX3Jlc2V0KGZvY3VzPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIGlmIChmb2N1cykge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBEZWZpbmEgYSBsYXJndXJhIGRvIGlubmVyU2VsZWN0U2VhcmNoIHBhcmEgYWp1c3RhciBhdMOpIG1lc21vIGFzIGJhcnJhcyBkZSByb2xhZ2VtIHBlcnNvbmFsaXphZGFzXG4gICAgICogIEUgYXBvaWFyIHRvZG9zIG9zIHNpc3RlbWFzIGRlIG9wZXJhw6fDo29cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlSW5wdXRXaWR0aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlubmVyU2VsZWN0U2VhcmNoIHx8ICF0aGlzLmlubmVyU2VsZWN0U2VhcmNoLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmlubmVyU2VsZWN0U2VhcmNoLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGxldCBwYW5lbEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgICAgICB3aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtc2VsZWN0LXBhbmVsJykpIHtcbiAgICAgICAgICAgICAgICBwYW5lbEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwYW5lbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJTZWxlY3RTZWFyY2gubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHBhbmVsRWxlbWVudC5jbGllbnRXaWR0aCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgbyBkZXNsb2NhbWVudG8gcGFyYSBvIGNvbXByaW1lbnRvIHF1ZSBwb2RlIHNlciBjYXVzYWRvIHBlbG8gbWF0T3B0aW9uIG9wY2lvbmFsIHVzYWRvIGNvbW8gdW1hIGVudHJhZGEgZGUgcGVzcXVpc2EuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLm1hdE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdW5zZWxlY3RBY3RpdmVEZXNjZW5kYW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50Jyk7XG4gICAgfVxuXG59XG4iXX0=
397
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtc2VhcmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvaW5wdXQtc2VsZWN0LXBhZ2VkL2lucHV0LXNlYXJjaC9pbnB1dC1zZWFyY2guY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZOLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJoRztJQXFGSSxrQ0FD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SUFBSSxFQUFFLENBQUM7a0NBQW9CLFVBQVU7dUVBQUM7SUFLbEc7UUFEQyxXQUFXLENBQUMsMkNBQTJDLENBQUM7OztxRUFHeEQ7SUFuRlEsd0JBQXdCO1FBakJwQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0Isb2pEQUE0QztZQUU1QyxTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLGlCQUFpQjtvQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxjQUF1QyxPQUFBLDBCQUF3QixFQUF4QixDQUF3QixDQUFDO29CQUN4RixLQUFLLEVBQUUsSUFBSTtpQkFDZDthQUNKO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLE9BQU8sRUFBRSxtQkFBbUI7YUFDL0I7WUFDRCxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7U0FDbEQsQ0FBQztRQXVGTyxXQUFBLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUdqQixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDN0IsV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO3lDQUpJLFNBQVM7WUFDcEIsaUJBQWlCO1lBQ25CLGFBQWE7WUFDWSxTQUFTO1lBQ0gsWUFBWTtPQTFGOUQsd0JBQXdCLENBZ1hwQztJQUFELCtCQUFDO0NBQUEsQUFoWEQsSUFnWEM7U0FoWFksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBBLCBET1dOX0FSUk9XLCBFTkQsIEVOVEVSLCBFU0NBUEUsIEhPTUUsIE5JTkUsIFNQQUNFLCBVUF9BUlJPVywgWiwgWkVSTyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBWaWV3cG9ydFJ1bGVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdEJpbmRpbmcsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBRdWVyeUxpc3QsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0T3B0aW9uLCBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxheSwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IGBnaXBpLWlucHV0LXNlYXJjaGAsXG4gICAgZXhwb3J0QXM6ICdnaXBpSW5wdXRTZWFyY2gnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2lucHV0LXNlYXJjaC5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSUlucHV0U2VhcmNoQ29tcG9uZW50ID0+IEdJUElJbnB1dFNlYXJjaENvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9XG4gICAgXSxcbiAgICBob3N0OiB7XG4gICAgICAgICdjbGFzcyc6ICdnaXBpLWlucHV0LXNlYXJjaCcsXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBHSVBJSW5wdXRTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgICAvLyBWYWxvciBkZSBwZXNxdWlzYSBhdHVhbFxuICAgIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybUNvbnRyb2wudmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbGFzdEV4dGVybmFsSW5wdXRWYWx1ZTogc3RyaW5nO1xuXG4gICAgLy8gUmVmZXLDqm5jaWEgw6BzIG9ww6fDtWVzIE1hdFNlbGVjdFxuICAgIHB1YmxpYyBfb3B0aW9ucyQ6IEJlaGF2aW9yU3ViamVjdDxRdWVyeUxpc3Q8TWF0T3B0aW9uPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFF1ZXJ5TGlzdDxNYXRPcHRpb24+PihudWxsKTtcbiAgICBwdWJsaWMgc2V0IF9vcHRpb25zKF9vcHRpb25zOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPikge1xuICAgICAgICB0aGlzLl9vcHRpb25zJC5uZXh0KF9vcHRpb25zKTtcbiAgICB9XG4gICAgcHVibGljIGdldCBfb3B0aW9ucygpOiBRdWVyeUxpc3Q8TWF0T3B0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgb3B0aW9uc0xpc3QkOiBPYnNlcnZhYmxlPE1hdE9wdGlvbltdPiA9IHRoaXMuX29wdGlvbnMkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoX29wdGlvbnM6IFF1ZXJ5TGlzdDxNYXRPcHRpb24+KTogT2JzZXJ2YWJsZTxhbnk+ID0+IF9vcHRpb25zXG4gICAgICAgICAgICA/IF9vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKG9wdGlvbnM6IGFueSk6IGFueSA9PiBvcHRpb25zLnRvQXJyYXkoKSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoPE1hdE9wdGlvbltdPihfb3B0aW9ucy50b0FycmF5KCkpLClcbiAgICAgICAgICAgIDogb2YobnVsbClcbiAgICAgICAgKVxuICAgICk7XG5cbiAgICBwcml2YXRlIG9wdGlvbnNMZW5ndGgkOiBPYnNlcnZhYmxlPG51bWJlcj4gPSB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbnM6IE1hdE9wdGlvbltdKTogbnVtYmVyID0+IG9wdGlvbnMgPyBvcHRpb25zLmxlbmd0aCA6IDApXG4gICAgKTtcblxuICAgIHB1YmxpYyBfZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnKTtcblxuICAgIC8vIFNlIGRldmUgbW9zdHJhciBhIG1lbnNhZ2VtIHNlbSBlbnRyYWRhcyBlbmNvbnRyYWRhc1xuICAgIHB1YmxpYyBfc2hvd05vRW50cmllc0ZvdW5kJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXMsXG4gICAgICAgIHRoaXMub3B0aW9uc0xlbmd0aCRcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKFt2YWx1ZSwgb3B0aW9uc0xlbmd0aF06IFthbnksIG51bWJlcl0pOiBib29sZWFuID0+IHZhbHVlICYmIG9wdGlvbnNMZW5ndGggPT09IHRoaXMuZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpKVxuICAgICk7XG5cbiAgICAvLyBTdWJqZWN0IGVtaXRpZG8gcXVhbmRvIG8gY29tcG9uZW50ZSBmb2kgZGVzdHJ1w61kb1xuICAgIHByaXZhdGUgX29uRGVzdHJveTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyBkZXNjZW5kZW50ZSBhdGl2byBwYXJhIHN1cG9ydGUgQVJJQS5cbiAgICBwcml2YXRlIGFjdGl2ZURlc2NlbmRhbnQ6IEhUTUxFbGVtZW50O1xuXG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXJMYWJlbDogc3RyaW5nID0gJ1Blc3F1aXNhcic7XG5cbiAgICBASW5wdXQoKSBjbGVhclNlYXJjaElucHV0OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIC8vIFNlIGRldmUgbW9zdHJhciBvIGluZGljYWRvciBkZSBwZXNxdWlzYSBlbSBhbmRhbWVudG9cbiAgICBASW5wdXQoKSBzZWFyY2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIERlc2F0aXZhIG8gZm9jbyBpbmljaWFsIGRvIGNhbXBvIGRlIGVudHJhZGFcbiAgICBASW5wdXQoKSBkaXNhYmxlSW5pdGlhbEZvY3VzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBBdGl2YXIgbGltcGFyIGlucHV0IGFvIHByZXNzaW9uYXIgZXNjYXBlXG4gICAgQElucHV0KCkgZW5hYmxlQ2xlYXJPbkVzY2FwZVByZXNzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEltcGVkZSBxdWUgYSBjaGF2ZSBob21lL2VuZCBzZWphIHByb3BhZ2FkYSBwYXJhIG1hdC1zZWxlY3QsXG4gICAgICogcGVybWl0aW5kbyBtb3ZlciBvIGN1cnNvciBkZW50cm8gZGEgZW50cmFkYSBkZSBwZXNxdWlzYSBlbSB2ZXogZGUgbmF2ZWdhciBwZWxhcyBvcMOnw7Vlc1xuICAgICAqL1xuICAgIEBJbnB1dCgpIHByZXZlbnRIb21lRW5kS2V5UHJvcGFnYXRpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8vIERlc2F0aXZhIGEgcm9sYWdlbSBwYXJhIGFzIG9ww6fDtWVzIGF0aXZhcyBxdWFuZG8gYSBsaXN0YSBkZSBvcMOnw7VlcyDDqSBhbHRlcmFkYS4gw5p0aWwgcGFyYSBwZXNxdWlzYSBkbyBsYWRvIGRvIHNlcnZpZG9yXG4gICAgQElucHV0KCkgZGlzYWJsZVNjcm9sbFRvQWN0aXZlT25PcHRpb25zQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gTW9zdHJhci9vY3VsdGFyIG8gYm90w6NvIGxpbXBhciBwZXNxdWlzYSBkYSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgQElucHV0KCkgaGlkZUNsZWFyU2VhcmNoQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvLyBSZWZlcsOqbmNpYSBhbyBjYW1wbyBkZSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoU2VsZWN0SW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hTZWxlY3RJbnB1dDogRWxlbWVudFJlZjtcblxuICAgIC8vIFJlZmVyw6puY2lhIGFvIGNhbXBvIGRlIGVudHJhZGEgZGUgcGVzcXVpc2FcbiAgICBAVmlld0NoaWxkKCdpbm5lclNlbGVjdFNlYXJjaCcsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIGlubmVyU2VsZWN0U2VhcmNoOiBFbGVtZW50UmVmO1xuXG4gICAgLy8gQWRpY2lvbmEgYSBjbGFzc2UgbWF0LXNlbGVjdC1zZWFyY2gtaW5zaWRlLW1hdC1vcHRpb24gc2UgbyBpdHNzLWlucHV0LXNlYXJjaCBlc3RpdmVyXG4gICAgLy8gZGVudHJvIGRvIG1hdC1vcHRpb25cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1hdC1zZWxlY3Qtc2VhcmNoLWluc2lkZS1tYXQtb3B0aW9uJylcbiAgICBnZXQgaXNJbnNpZGVNYXRPcHRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMubWF0T3B0aW9uO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KE1hdFNlbGVjdCkgcHVibGljIG1hdFNlbGVjdDogTWF0U2VsZWN0LFxuICAgICAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF92aWV3cG9ydFJ1bGVyOiBWaWV3cG9ydFJ1bGVyLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1hdE9wdGlvbikgcHVibGljIG1hdE9wdGlvbjogTWF0T3B0aW9uID0gbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChNYXRGb3JtRmllbGQpIHB1YmxpYyBtYXRGb3JtRmllbGQ6IE1hdEZvcm1GaWVsZCA9IG51bGwsXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBEZWZpbmlyIGNsYXNzZSBkZSBvcMOnw6NvIG1hdCBwZXJzb25hbGl6YWRhIHNlIG8gY29tcG9uZW50ZSBmb2kgY29sb2NhZG8gZGVudHJvIGRlIHVtYSBvcMOnw6NvIG1hdFxuICAgICAgICBpZiAodGhpcy5tYXRPcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5hZGQoJ2NvbnRhaW5zLW1hdC1zZWxlY3Qtc2VhcmNoJyk7XG4gICAgICAgICAgICB0aGlzLm1hdE9wdGlvbi5fZ2V0SG9zdEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ2FyaWEtaGlkZGVuJywgJ3RydWUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJzxnaXBpLXNlbGVjdC1zZWFyY2g+IGRldmUgc2VyIGNvbG9jYWRvIGRlbnRybyBkZSB1bSBlbGVtZW50byA8bWF0LW9wdGlvbj4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFF1YW5kbyBvIHBhaW5lbCBzdXNwZW5zbyBkZSBzZWxlw6fDo28gw6kgYWJlcnRvIG91IGZlY2hhZG9cbiAgICAgICAgdGhpcy5tYXRTZWxlY3Qub3BlbmVkQ2hhbmdlXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBkZWxheSgxKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgob3BlbmVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKG9wZW5lZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlucHV0V2lkdGgoKTtcblxuICAgICAgICAgICAgICAgICAgICAvLyBGb2NhciBvIGNhbXBvIGRlIHBlc3F1aXNhIGFvIGFicmlyXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5kaXNhYmxlSW5pdGlhbEZvY3VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gTGltcMOhLWxvIGFvIGZlY2hhclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5jbGVhclNlYXJjaElucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRGVmaW5pciBvIHByaW1laXJvIGl0ZW0gYXRpdm8gYXDDs3MgYXMgb3DDp8O1ZXMgYWx0ZXJhZGFzXG4gICAgICAgIHRoaXMubWF0U2VsZWN0Lm9wZW5lZENoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKCk6IE9ic2VydmFibGU8YW55PiA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX29wdGlvbnMgPSB0aGlzLm1hdFNlbGVjdC5vcHRpb25zO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFZhcmnDoXZlbCBkZSBmZWNoYW1lbnRvIHBhcmEgcmFzdHJlYXIgYSBwcmltZWlyYSBvcMOnw6NvIG1haXMgcmVjZW50ZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gUGFyYSBldml0YXIgcXVlIGEgbGlzdGEgcm9sZSBwYXJhIG8gdG9wbyBxdWFuZG8gYXMgb3DDp8O1ZXMgc8OjbyBhZGljaW9uYWRhcyBhbyBmaW5hbCBkYSBsaXN0YVxuICAgICAgICAgICAgICAgICAgICAvLyAocG9yIGV4ZW1wbG86IHJvbGFnZW0gaW5maW5pdGEpLCBjb21wYXJhbW9zIGFwZW5hcyBhcyBhbHRlcmHDp8O1ZXMgbmFzIHByaW1laXJhcyBvcMOnw7VlcyBwYXJhXG4gICAgICAgICAgICAgICAgICAgIC8vIGRldGVybWluYXIgc2UgZGV2ZW1vcyBkZWZpbmlyIG8gcHJpbWVpcm8gaXRlbSBjb21vIGF0aXZvLiBJc3NvIGV2aXRhIGEgcm9sYWdlbSBkZXNuZWNlc3PDoXJpYVxuICAgICAgICAgICAgICAgICAgICAvLyBwYXJhIG8gdG9wbyBkYSBsaXN0YSBxdWFuZG8gYXMgb3DDp8O1ZXMgc8OjbyBhbmV4YWRhcywgbWFzIHBlcm1pdGUgcXVlIG8gcHJpbWVpcm8gaXRlbSBkYSBsaXN0YVxuICAgICAgICAgICAgICAgICAgICAvLyBzZWphIGRlZmluaWRvIGNvbW8gYXRpdm8gcG9yIHBhZHLDo28gcXVhbmRvIG7Do28gaMOhIHNlbGXDp8OjbyBhdGl2YS5cbiAgICAgICAgICAgICAgICAgICAgbGV0IHByZXZpb3VzRmlyc3RPcHRpb246IE1hdE9wdGlvbiA9IHRoaXMuX29wdGlvbnMudG9BcnJheSgpW3RoaXMuZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpXTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucy5jaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFdml0YXIgbyBlcnJvIFwiZXhwcmVzc2lvbiBoYXMgYmVlbiBjaGFuZ2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0ZXIgYSBRdWVyeUxpc3QgZW0gdW1hIG1hdHJpelxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3B0aW9uczogTWF0T3B0aW9uW10gPSB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gTyB2ZXJkYWRlaXJvIHByaW1laXJvIGl0ZW0gw6kgY29tcGVuc2FkbyBwb3IgMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudEZpcnN0T3B0aW9uOiBNYXRPcHRpb24gPSBvcHRpb25zW3RoaXMuZ2V0T3B0aW9uc0xlbmd0aE9mZnNldCgpXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8TWF0T3B0aW9uPiA9IHRoaXMubWF0U2VsZWN0Ll9rZXlNYW5hZ2VyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGtleU1hbmFnZXIgJiYgdGhpcy5tYXRTZWxlY3QucGFuZWxPcGVuKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEZWZpbmlyIHByaW1laXJvIGl0ZW0gYXRpdm8gZSBsYXJndXJhIGRlIGVudHJhZGFcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZlcmlmaXF1ZSBzZSBhIHByaW1laXJhIG9ww6fDo28gbmVzc2FzIGFsdGVyYcOnw7VlcyDDqSBkaWZlcmVudGUgZGEgYW50ZXJpb3IuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmlyc3RPcHRpb25Jc0NoYW5nZWQ6IGJvb2xlYW4gPSAhdGhpcy5tYXRTZWxlY3QuY29tcGFyZVdpdGgocHJldmlvdXNGaXJzdE9wdGlvbiwgY3VycmVudEZpcnN0T3B0aW9uKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIENBU086IEEgcHJpbWVpcmEgb3DDp8OjbyDDqSBkaWZlcmVudGUgYWdvcmEuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSW5kaWNhIHF1ZSBkZXZlbW9zIGRlZmluaS1sbyBjb21vIGF0aXZvIGUgcm9sYXIgcGFyYSBvIHRvcG8uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0T3B0aW9uSXNDaGFuZ2VkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8ICFrZXlNYW5hZ2VyLmFjdGl2ZUl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIW9wdGlvbnMuZmluZCgob3B0aW9uOiBNYXRPcHRpb24pOiBib29sZWFuID0+IHRoaXMubWF0U2VsZWN0LmNvbXBhcmVXaXRoKG9wdGlvbiwga2V5TWFuYWdlci5hY3RpdmVJdGVtKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5TWFuYWdlci5zZXRGaXJzdEl0ZW1BY3RpdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBZ3VhcmRlIGFzIGFsdGVyYcOnw7VlcyBuYSBsYXJndXJhIGRvIHBhaW5lbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlucHV0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXR1YWxpemUgbm9zc2EgcmVmZXLDqm5jaWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzRmlyc3RPcHRpb24gPSBjdXJyZW50Rmlyc3RPcHRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcblxuICAgICAgICAvLyBBZGljaW9uZSBvdSByZW1vdmEgYSBjbGFzc2UgY3NzIGRlcGVuZGVuZG8gc2UgZGVzZWphIG1vc3RyYXIgYSBtZW5zYWdlbSBzZW0gZW50cmFkYXMgZW5jb250cmFkYXNcbiAgICAgICAgLy8gb2JzOiBpc3NvIMOpIGhhY2t5XG4gICAgICAgIHRoaXMuX3Nob3dOb0VudHJpZXNGb3VuZCQucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpXG4gICAgICAgICkuc3Vic2NyaWJlKChzaG93Tm9FbnRyaWVzRm91bmQ6IGJvb2xlYW4pOiB2b2lkID0+IHtcbiAgICAgICAgICAgIC8vIERlZmluaXIgbmVuaHVtYSBjbGFzc2UgZGUgZW50cmFkYSBlbmNvbnRyYWRhIG5hIG1hdC1vcHRpb25cbiAgICAgICAgICAgIGlmICh0aGlzLm1hdE9wdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChzaG93Tm9FbnRyaWVzRm91bmQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXRPcHRpb24uX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnbWF0LXNlbGVjdC1zZWFyY2gtbm8tZW50cmllcy1mb3VuZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubWF0T3B0aW9uLl9nZXRIb3N0RWxlbWVudCgpLmNsYXNzTGlzdC5yZW1vdmUoJ21hdC1zZWxlY3Qtc2VhcmNoLW5vLWVudHJpZXMtZm91bmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlZGltZW5zaW9uZSBhIGxhcmd1cmEgZGUgZW50cmFkYSBxdWFuZG8gYSB2aWV3cG9ydCBmb3IgcmVkaW1lbnNpb25hZGEsXG4gICAgICAgIC8vIG91IHNlamEsIGEgbGFyZ3VyYSBkbyBhY2lvbmFkb3IgcG9kZSBzZXIgcmVkaW1lbnNpb25hZGEuXG4gICAgICAgIHRoaXMuX3ZpZXdwb3J0UnVsZXIuY2hhbmdlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKTogdm9pZCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMubWF0U2VsZWN0LnBhbmVsT3Blbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUlucHV0V2lkdGgoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm9wdGlvbnNMaXN0JC5waXBlKFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKCk6IHZvaWQgPT4ge1xuICAgICAgICAgICAgLy8gQXR1YWxpemFyIHZpc3VhbGl6YcOnw6NvIHF1YW5kbyBhcyBvcMOnw7VlcyBkaXNwb27DrXZlaXMgbXVkYXJlbVxuICAgICAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWFyY2hpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgICAgICB0aGlzLl9vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKF86IGFueSk6IHZvaWQgPT4geyB9O1xuXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKHZhbHVlOiBhbnkpOiBib29sZWFuID0+IHZhbHVlICE9PSB0aGlzLl9sYXN0RXh0ZXJuYWxJbnB1dFZhbHVlKSxcbiAgICAgICAgICAgIHRhcCgoKTogYW55ID0+IHRoaXMuX2xhc3RFeHRlcm5hbElucHV0VmFsdWUgPSB1bmRlZmluZWQpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSlcbiAgICAgICAgKS5zdWJzY3JpYmUoZm4pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9sYXN0RXh0ZXJuYWxJbnB1dFZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2Zvcm1Db250cm9sLnNldFZhbHVlKHZhbHVlKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYW5pcHVsYSBvIGV2ZW50byBkZSB0ZWNsYSBwcmVzc2lvbmFkYSBjb20gTWF0U2VsZWN0LlxuICAgICAqIFBlcm1pdGUsIHBvciBleC4gc2VsZWNpb25hbmRvIGNvbSBhIHRlY2xhIGVudGVyLCBuYXZlZ2FuZG8gY29tIGFzIHRlY2xhcyBkZSBzZXRhLCBldGMuXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgX2hhbmRsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgLy8gRXZpdGUgYSBwcm9wYWdhw6fDo28gZGUgdG9kb3Mgb3MgY2FyYWN0ZXJlcyBhbGZhbnVtw6lyaWNvcyBwYXJhIGV2aXRhciBwcm9ibGVtYXMgZGUgc2VsZcOnw6NvXG4gICAgICAgIGlmICgoZXZlbnQua2V5ICYmIGV2ZW50LmtleS5sZW5ndGggPT09IDEpIHx8XG4gICAgICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBBICYmIGV2ZW50LmtleUNvZGUgPD0gWikgfHxcbiAgICAgICAgICAgIChldmVudC5rZXlDb2RlID49IFpFUk8gJiYgZXZlbnQua2V5Q29kZSA8PSBOSU5FKSB8fFxuICAgICAgICAgICAgKGV2ZW50LmtleUNvZGUgPT09IFNQQUNFKVxuICAgICAgICAgICAgfHwgKHRoaXMucHJldmVudEhvbWVFbmRLZXlQcm9wYWdhdGlvbiAmJiAoZXZlbnQua2V5Q29kZSA9PT0gSE9NRSB8fCBldmVudC5rZXlDb2RlID09PSBFTkQpKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubWF0U2VsZWN0Lm11bHRpcGxlICYmIGV2ZW50LmtleSAmJiBldmVudC5rZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgICAgICAgLy8gUmVjdXBlcmUgbyBmb2NvIGFww7NzIGEgc2VsZcOnw6NvIG3Dumx0aXBsYSwgcGFyYSBxdWUgcG9zc2Ftb3MgZGlnaXRhciBhaW5kYSBtYWlzXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpOiB2b2lkID0+IHRoaXMuX2ZvY3VzKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2FzbyBlc3BlY2lhbCwgc2UgY2xpY2FyIGVtIEVzY2FwZSwgc2UgYSBlbnRyYWRhIGVzdGl2ZXIgdmF6aWEsIGZlY2hlIG8gbWVudSBzdXNwZW5zbywgY2FzbyBjb250csOhcmlvLCBlc3ZhemllIG8gY2FtcG8gZGUgcGVzcXVpc2FcbiAgICAgICAgaWYgKHRoaXMuZW5hYmxlQ2xlYXJPbkVzY2FwZVByZXNzZWQgPT09IHRydWUgJiYgZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFICYmIHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0KHRydWUpO1xuICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBNYW5pcHVsYSBvIGV2ZW50byBkZSBhdGl2YcOnw6NvIGRlIGNoYXZlIGNvbSBNYXRTZWxlY3QuXG4gICAgICogUGVybWl0ZSwgcG9yIGV4LiBvIGFuw7puY2lvIGRvIERlc2NlbmRlbnRlIGF0dWFsbWVudGUgYXRpdm8gcG9yIGxlaXRvcmVzIGRlIHRlbGEuXG4gICAgICovXG4gICAgX2hhbmRsZUtleXVwKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVyB8fCBldmVudC5rZXlDb2RlID09PSBET1dOX0FSUk9XKSB7XG4gICAgICAgICAgICBjb25zdCBhcmlhQWN0aXZlRGVzY2VuZGFudElkOiBzdHJpbmcgPSB0aGlzLm1hdFNlbGVjdC5fZ2V0QXJpYUFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKS5maW5kSW5kZXgoKGl0ZW06IE1hdE9wdGlvbik6IGJvb2xlYW4gPT4gaXRlbS5pZCA9PT0gYXJpYUFjdGl2ZURlc2NlbmRhbnRJZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bnNlbGVjdEFjdGl2ZURlc2NlbmRhbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQgPSB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKVtpbmRleF0uX2dldEhvc3RFbGVtZW50KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50JywgYXJpYUFjdGl2ZURlc2NlbmRhbnRJZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudW5zZWxlY3RBY3RpdmVEZXNjZW5kYW50KCk7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jYWxpemEgbyBjYW1wbyBkZSBlbnRyYWRhIGRlIHBlc3F1aXNhXG4gICAgICovXG4gICAgcHVibGljIF9mb2N1cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnNlYXJjaFNlbGVjdElucHV0IHx8ICF0aGlzLm1hdFNlbGVjdC5wYW5lbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIHNhbHZlIGUgcmVzdGF1cmUgbyBzY3JvbGxUb3AgZG8gcGFpbmVsLCBwb2lzIHNlcsOhIHJlZGVmaW5pZG8gcG9yIGZvY3VzICgpXG4gICAgICAgIC8vIG9iczogaXNzbyDDqSBoYWNreVxuICAgICAgICBjb25zdCBwYW5lbDogYW55ID0gdGhpcy5tYXRTZWxlY3QucGFuZWwubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG9wOiBhbnkgPSBwYW5lbC5zY3JvbGxUb3A7XG5cbiAgICAgICAgLy8gU2V0YSBvIGZvY29cbiAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG5cbiAgICAgICAgcGFuZWwuc2Nyb2xsVG9wID0gc2Nyb2xsVG9wO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZGVmaW5lIG8gdmFsb3IgZGUgcGVzcXVpc2EgYXR1YWxcbiAgICAgKiBAcGFyYW0gZm9jdXMgc2UgZGV2ZSBmb2NhciBhcMOzcyBhIHJlZGVmaW5pw6fDo29cbiAgICAgKi9cbiAgICBwdWJsaWMgX3Jlc2V0KGZvY3VzPzogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIGlmIChmb2N1cykge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqICBEZWZpbmEgYSBsYXJndXJhIGRvIGlubmVyU2VsZWN0U2VhcmNoIHBhcmEgYWp1c3RhciBhdMOpIG1lc21vIGFzIGJhcnJhcyBkZSByb2xhZ2VtIHBlcnNvbmFsaXphZGFzXG4gICAgICogIEUgYXBvaWFyIHRvZG9zIG9zIHNpc3RlbWFzIGRlIG9wZXJhw6fDo29cbiAgICAgKi9cbiAgICBwdWJsaWMgdXBkYXRlSW5wdXRXaWR0aCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmlubmVyU2VsZWN0U2VhcmNoIHx8ICF0aGlzLmlubmVyU2VsZWN0U2VhcmNoLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgPSB0aGlzLmlubmVyU2VsZWN0U2VhcmNoLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGxldCBwYW5lbEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICAgICAgICB3aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdtYXQtc2VsZWN0LXBhbmVsJykpIHtcbiAgICAgICAgICAgICAgICBwYW5lbEVsZW1lbnQgPSBlbGVtZW50O1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChwYW5lbEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJTZWxlY3RTZWFyY2gubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCA9IHBhbmVsRWxlbWVudC5jbGllbnRXaWR0aCArICdweCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgbyBkZXNsb2NhbWVudG8gcGFyYSBvIGNvbXByaW1lbnRvIHF1ZSBwb2RlIHNlciBjYXVzYWRvIHBlbG8gbWF0T3B0aW9uIG9wY2lvbmFsIHVzYWRvIGNvbW8gdW1hIGVudHJhZGEgZGUgcGVzcXVpc2EuXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRPcHRpb25zTGVuZ3RoT2Zmc2V0KCk6IG51bWJlciB7XG4gICAgICAgIGlmICh0aGlzLm1hdE9wdGlvbikge1xuICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdW5zZWxlY3RBY3RpdmVEZXNjZW5kYW50KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVEZXNjZW5kYW50KSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnQucmVtb3ZlQXR0cmlidXRlKCdhcmlhLXNlbGVjdGVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWFyY2hTZWxlY3RJbnB1dC5uYXRpdmVFbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1hY3RpdmVkZXNjZW5kYW50Jyk7XG4gICAgfVxuXG59XG4iXX0=
@@ -42,7 +42,7 @@ var GIPIColDirective = /** @class */ (function () {
42
42
  };
43
43
  GIPIColDirective.prototype._setHostClassMap = function () {
44
44
  var _a;
45
- var hostClassMap = __assign((_a = {}, _a['grid-col'] = true, _a["grid-col-" + this.GIPISpan] = ObjectUtil.isNotNil(this.GIPISpan), _a["grid-col-order-" + this.GIPIOrder] = ObjectUtil.isNotNil(this.GIPIOrder), _a["grid-col-offset-" + this.GIPIOffset] = ObjectUtil.isNotNil(this.GIPIOffset), _a["grid-col-pull-" + this.GIPIPull] = ObjectUtil.isNotNil(this.GIPIPull), _a["grid-col-push-" + this.GIPIPush] = ObjectUtil.isNotNil(this.GIPIPush), _a), this._generateClass());
45
+ var hostClassMap = __assign((_a = {}, _a['grid-col'] = true, _a["grid-col-" + this.GIPISpan] = !ObjectUtil.isNull(this.GIPISpan), _a["grid-col-order-" + this.GIPIOrder] = !ObjectUtil.isNull(this.GIPIOrder), _a["grid-col-offset-" + this.GIPIOffset] = !ObjectUtil.isNull(this.GIPIOffset), _a["grid-col-pull-" + this.GIPIPull] = !ObjectUtil.isNull(this.GIPIPull), _a["grid-col-push-" + this.GIPIPush] = !ObjectUtil.isNull(this.GIPIPush), _a), this._generateClass());
46
46
  for (var i in this._classMap) {
47
47
  if (this._classMap.hasOwnProperty(i)) {
48
48
  this.renderer.removeClass(this.elementRef.nativeElement, i);
@@ -75,7 +75,7 @@ var GIPIColDirective = /** @class */ (function () {
75
75
  var listClassMap = {};
76
76
  listOfSizeInputName.forEach(function (name) {
77
77
  var sizeName = name.replace('GIPI', '').toLowerCase();
78
- if (ObjectUtil.isNotNil(_this[name])) {
78
+ if (!ObjectUtil.isNull(_this[name])) {
79
79
  if (typeof _this[name] === 'number' || typeof _this[name] === 'string') {
80
80
  listClassMap["grid-col-" + sizeName + "-" + _this[name]] = true;
81
81
  }
@@ -84,7 +84,7 @@ var GIPIColDirective = /** @class */ (function () {
84
84
  var prefixArray = ['span', 'pull', 'push', 'offset', 'order'];
85
85
  prefixArray.forEach(function (prefix) {
86
86
  var prefixClass = prefix === 'span' ? '-' : "-" + prefix + "-";
87
- listClassMap["grid-col-" + sizeName + prefixClass + embedded_1[prefix]] = embedded_1 && ObjectUtil.isNotNil(embedded_1[prefix]);
87
+ listClassMap["grid-col-" + sizeName + prefixClass + embedded_1[prefix]] = embedded_1 && !ObjectUtil.isNull(embedded_1[prefix]);
88
88
  });
89
89
  }
90
90
  }
@@ -161,4 +161,4 @@ var GIPIColDirective = /** @class */ (function () {
161
161
  return GIPIColDirective;
162
162
  }());
163
163
  export { GIPIColDirective };
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbGF5b3V0LWdyaWQvY29sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFrQm5EO0lBZ0NJLDBCQUNZLFVBQXNCLEVBQ0gsZ0JBQWtDLEVBQ3RELFFBQW1CO1FBRmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDSCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVc7UUFqQ3RCLGNBQVMsR0FBK0IsRUFBRSxDQUFDO1FBRTNDLGNBQVMsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwRCxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFM0IsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsY0FBUyxHQUEyQixJQUFJLENBQUM7UUFFekMsZUFBVSxHQUEyQixJQUFJLENBQUM7UUFFMUMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJ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QyxDQUFDO2lCQUNOO2FBQ0o7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7O2dCQXhGdUIsVUFBVTtnQkFDZSxnQkFBZ0IsdUJBQTVELFFBQVEsWUFBSSxJQUFJO2dCQUNBLFNBQVM7O0lBM0JyQjtRQUFSLEtBQUssRUFBRTs7c0RBQXlDO0lBRXhDO1FBQVIsS0FBSyxFQUFFOztzREFBeUM7SUFFeEM7UUFBUixLQUFLLEVBQUU7O3VEQUEwQztJQUV6QztRQUFSLEtBQUssRUFBRTs7d0RBQTJDO0lBRTFDO1FBQVIsS0FBSyxFQUFFOztzREFBeUM7SUFFeEM7UUFBUixLQUFLLEVBQUU7O3NEQUF5QztJQUV4QztRQUFSLEtBQUssRUFBRTs7b0RBQTBEO0lBRXpEO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O29EQUEwRDtJQUV6RDtRQUFSLEtBQUssRUFBRTs7b0RBQTBEO0lBRXpEO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O3FEQUEyRDtJQTlCMUQsZ0JBQWdCO1FBUjVCLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSw2QkFBNkI7WUFDdkMsUUFBUSxFQUFFLFNBQVM7WUFDbkIsSUFBSSxFQUFFO2dCQUNGLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixjQUFjLEVBQUUsZUFBZTthQUNsQztTQUNKLENBQUM7UUFtQ08sV0FBQSxRQUFRLEVBQUUsQ0FBQSxFQUFFLFdBQUEsSUFBSSxFQUFFLENBQUE7eUNBREMsVUFBVTtZQUNlLGdCQUFnQjtZQUM1QyxTQUFTO09BbkNyQixnQkFBZ0IsQ0EySDVCO0lBQUQsdUJBQUM7Q0FBQSxBQTNIRCxJQTJIQztTQTNIWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEdJUElDbGFzc0ludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdHlwZXMvbmctY2xhc3MudHlwZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlsIH0gZnJvbSAnLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5pbXBvcnQgeyBHSVBJUm93RGlyZWN0aXZlIH0gZnJvbSAnLi9yb3cuZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBFbWJlZGRlZFByb3BlcnR5IHtcbiAgICBzcGFuPzogbnVtYmVyO1xuICAgIHB1bGw/OiBudW1iZXI7XG4gICAgcHVzaD86IG51bWJlcjtcbiAgICBvZmZzZXQ/OiBudW1iZXI7XG4gICAgb3JkZXI/OiBudW1iZXI7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2dpcGktY29sXSxnaXBpLWNvbCxHSVBJQ29sJyxcbiAgICBleHBvcnRBczogJ2dpcGlDb2wnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dyaWQtY29sJyxcbiAgICAgICAgJ1tzdHlsZS5mbGV4XSc6ICdob3N0RmxleFN0eWxlJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgR0lQSUNvbERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gICAgcHJpdmF0ZSBfY2xhc3NNYXA6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9ID0ge307XG5cbiAgICBwcml2YXRlIF9kZXN0cm95JDogU3ViamVjdDx1bmtub3duPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBob3N0RmxleFN0eWxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElGbGV4OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElTcGFuOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElPcmRlcjogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJT2Zmc2V0OiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElQdXNoOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElQdWxsOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElYczogc3RyaW5nIHwgbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVNtOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJTWQ6IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElMZzogc3RyaW5nIHwgbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVhsOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJWFhsOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASG9zdCgpIHB1YmxpYyBHSVBJUm93RGlyZWN0aXZlOiBHSVBJUm93RGlyZWN0aXZlLFxuICAgICAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0SG9zdENsYXNzTWFwKCk7XG4gICAgICAgIHRoaXMuX3NldEhvc3RGbGV4U3R5bGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldEhvc3RDbGFzc01hcCgpO1xuXG4gICAgICAgIGNvbnN0IHsgR0lQSUZsZXggfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmIChHSVBJRmxleCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0SG9zdEZsZXhTdHlsZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQgeyB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEhvc3RDbGFzc01hcCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaG9zdENsYXNzTWFwID0ge1xuICAgICAgICAgICAgWydncmlkLWNvbCddOiB0cnVlLFxuICAgICAgICAgICAgW2BncmlkLWNvbC0ke3RoaXMuR0lQSVNwYW59YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJU3BhbiksXG4gICAgICAgICAgICBbYGdyaWQtY29sLW9yZGVyLSR7dGhpcy5HSVBJT3JkZXJ9YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJT3JkZXIpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1vZmZzZXQtJHt0aGlzLkdJUElPZmZzZXR9YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJT2Zmc2V0KSxcbiAgICAgICAgICAgIFtgZ3JpZC1jb2wtcHVsbC0ke3RoaXMuR0lQSVB1bGx9YF06IE9iamVjdFV0aWwuaXNOb3ROaWwodGhpcy5HSVBJUHVsbCksXG4gICAgICAgICAgICBbYGdyaWQtY29sLXB1c2gtJHt0aGlzLkdJUElQdXNofWBdOiBPYmplY3RVdGlsLmlzTm90TmlsKHRoaXMuR0lQSVB1c2gpLFxuICAgICAgICAgICAgLi4udGhpcy5fZ2VuZXJhdGVDbGFzcygpXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsYXNzTWFwID0geyAuLi5ob3N0Q2xhc3NNYXAgfTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkgJiYgdGhpcy5fY2xhc3NNYXBbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEhvc3RGbGV4U3R5bGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdEZsZXhTdHlsZSA9IHRoaXMuX3BhcnNlRmxleCh0aGlzLkdJUElGbGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZUZsZXgoZmxleDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGZsZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7ZmxleH0gJHtmbGV4fSBhdXRvYDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmxleCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCsoXFwuXFxkKyk/KHB4fGVtfHJlbXwlKSQvLnRlc3QoZmxleCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYDAgMCAke2ZsZXh9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmxleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUNsYXNzKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IGxpc3RPZlNpemVJbnB1dE5hbWU6IEFycmF5PGtleW9mIEdJUElDb2xEaXJlY3RpdmU+ID0gWydHSVBJWHMnLCAnR0lQSVNtJywgJ0dJUElNZCcsICdHSVBJTGcnLCAnR0lQSVhsJywgJ0dJUElYWGwnXTtcbiAgICAgICAgY29uc3QgbGlzdENsYXNzTWFwOiBHSVBJQ2xhc3NJbnRlcmZhY2UgPSB7fTtcblxuICAgICAgICBsaXN0T2ZTaXplSW5wdXROYW1lLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaXplTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKCdHSVBJJywgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmIChPYmplY3RVdGlsLmlzTm90TmlsKHRoaXNbbmFtZV0pKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzW25hbWVdID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdGhpc1tuYW1lXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdENsYXNzTWFwW2BncmlkLWNvbC0ke3NpemVOYW1lfS0ke3RoaXNbbmFtZV19YF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVtYmVkZGVkID0gdGhpc1tuYW1lXSBhcyBFbWJlZGRlZFByb3BlcnR5O1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwcmVmaXhBcnJheTogQXJyYXk8a2V5b2YgRW1iZWRkZWRQcm9wZXJ0eT4gPSBbJ3NwYW4nLCAncHVsbCcsICdwdXNoJywgJ29mZnNldCcsICdvcmRlciddO1xuXG4gICAgICAgICAgICAgICAgICAgIHByZWZpeEFycmF5LmZvckVhY2gocHJlZml4ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeENsYXNzOiBzdHJpbmcgPSBwcmVmaXggPT09ICdzcGFuJyA/ICctJyA6IGAtJHtwcmVmaXh9LWA7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q2xhc3NNYXBbYGdyaWQtY29sLSR7c2l6ZU5hbWV9JHtwcmVmaXhDbGFzc30ke2VtYmVkZGVkW3ByZWZpeF19YF0gPSBlbWJlZGRlZCAmJiBPYmplY3RVdGlsLmlzTm90TmlsKGVtYmVkZGVkW3ByZWZpeF0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbGlzdENsYXNzTWFwO1xuICAgIH1cblxufVxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbGF5b3V0LWdyaWQvY29sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFrQm5EO0lBZ0NJLDBCQUNZLFVBQXNCLEVBQ0gsZ0JBQWtDLEVBQ3RELFFBQW1CO1FBRmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDSCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3RELGFBQVEsR0FBUixRQUFRLENBQVc7UUFqQ3RCLGNBQVMsR0FBK0IsRUFBRSxDQUFDO1FBRTNDLGNBQVMsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwRCxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFFM0IsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsY0FBUyxHQUEyQixJQUFJLENBQUM7UUFFekMsZUFBVSxHQUEyQixJQUFJLENBQUM7UUFFMUMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFFeEMsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJQUFJLENBQUM7UUFFekQsV0FBTSxHQUE4QyxJ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TUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDN0gsQ0FBQyxDQUFDLENBQUM7aUJBQ047YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQzs7Z0JBeEZ1QixVQUFVO2dCQUNlLGdCQUFnQix1QkFBNUQsUUFBUSxZQUFJLElBQUk7Z0JBQ0EsU0FBUzs7SUEzQnJCO1FBQVIsS0FBSyxFQUFFOztzREFBeUM7SUFFeEM7UUFBUixLQUFLLEVBQUU7O3NEQUF5QztJQUV4QztRQUFSLEtBQUssRUFBRTs7dURBQTBDO0lBRXpDO1FBQVIsS0FBSyxFQUFFOzt3REFBMkM7SUFFMUM7UUFBUixLQUFLLEVBQUU7O3NEQUF5QztJQUV4QztRQUFSLEtBQUssRUFBRTs7c0RBQXlDO0lBRXhDO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O29EQUEwRDtJQUV6RDtRQUFSLEtBQUssRUFBRTs7b0RBQTBEO0lBRXpEO1FBQVIsS0FBSyxFQUFFOztvREFBMEQ7SUFFekQ7UUFBUixLQUFLLEVBQUU7O29EQUEwRDtJQUV6RDtRQUFSLEtBQUssRUFBRTs7cURBQTJEO0lBOUIxRCxnQkFBZ0I7UUFSNUIsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLDZCQUE2QjtZQUN2QyxRQUFRLEVBQUUsU0FBUztZQUNuQixJQUFJLEVBQUU7Z0JBQ0YsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLGNBQWMsRUFBRSxlQUFlO2FBQ2xDO1NBQ0osQ0FBQztRQW1DTyxXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxJQUFJLEVBQUUsQ0FBQTt5Q0FEQyxVQUFVO1lBQ2UsZ0JBQWdCO1lBQzVDLFNBQVM7T0FuQ3JCLGdCQUFnQixDQTJINUI7SUFBRCx1QkFBQztDQUFBLEFBM0hELElBMkhDO1NBM0hZLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgR0lQSUNsYXNzSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90eXBlcy9uZy1jbGFzcy50eXBlJztcbmltcG9ydCB7IE9iamVjdFV0aWwgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3V0aWxzL29iamVjdC51dGlsJztcbmltcG9ydCB7IEdJUElSb3dEaXJlY3RpdmUgfSBmcm9tICcuL3Jvdy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVtYmVkZGVkUHJvcGVydHkge1xuICAgIHNwYW4/OiBudW1iZXI7XG4gICAgcHVsbD86IG51bWJlcjtcbiAgICBwdXNoPzogbnVtYmVyO1xuICAgIG9mZnNldD86IG51bWJlcjtcbiAgICBvcmRlcj86IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZ2lwaS1jb2xdLGdpcGktY29sLEdJUElDb2wnLFxuICAgIGV4cG9ydEFzOiAnZ2lwaUNvbCcsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ3JpZC1jb2wnLFxuICAgICAgICAnW3N0eWxlLmZsZXhdJzogJ2hvc3RGbGV4U3R5bGUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBHSVBJQ29sRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9jbGFzc01hcDogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcblxuICAgIHByaXZhdGUgX2Rlc3Ryb3kkOiBTdWJqZWN0PHVua25vd24+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIGhvc3RGbGV4U3R5bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSUZsZXg6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVNwYW46IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSU9yZGVyOiBzdHJpbmcgfCBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElPZmZzZXQ6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVB1c2g6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVB1bGw6IHN0cmluZyB8IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSVhzOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJU206IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElNZDogc3RyaW5nIHwgbnVtYmVyIHwgRW1iZWRkZWRQcm9wZXJ0eSB8IG51bGwgPSBudWxsO1xuXG4gICAgQElucHV0KCkgR0lQSUxnOiBzdHJpbmcgfCBudW1iZXIgfCBFbWJlZGRlZFByb3BlcnR5IHwgbnVsbCA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBHSVBJWGw6IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIEdJUElYWGw6IHN0cmluZyB8IG51bWJlciB8IEVtYmVkZGVkUHJvcGVydHkgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgcHVibGljIEdJUElSb3dEaXJlY3RpdmU6IEdJUElSb3dEaXJlY3RpdmUsXG4gICAgICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRIb3N0Q2xhc3NNYXAoKTtcbiAgICAgICAgdGhpcy5fc2V0SG9zdEZsZXhTdHlsZSgpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0SG9zdENsYXNzTWFwKCk7XG5cbiAgICAgICAgY29uc3QgeyBHSVBJRmxleCB9ID0gY2hhbmdlcztcbiAgICAgICAgaWYgKEdJUElGbGV4KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRIb3N0RmxleFN0eWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7IH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc2V0SG9zdENsYXNzTWFwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBob3N0Q2xhc3NNYXAgPSB7XG4gICAgICAgICAgICBbJ2dyaWQtY29sJ106IHRydWUsXG4gICAgICAgICAgICBbYGdyaWQtY29sLSR7dGhpcy5HSVBJU3Bhbn1gXTogIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuR0lQSVNwYW4pLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1vcmRlci0ke3RoaXMuR0lQSU9yZGVyfWBdOiAhT2JqZWN0VXRpbC5pc051bGwodGhpcy5HSVBJT3JkZXIpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1vZmZzZXQtJHt0aGlzLkdJUElPZmZzZXR9YF06ICFPYmplY3RVdGlsLmlzTnVsbCh0aGlzLkdJUElPZmZzZXQpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1wdWxsLSR7dGhpcy5HSVBJUHVsbH1gXTogIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuR0lQSVB1bGwpLFxuICAgICAgICAgICAgW2BncmlkLWNvbC1wdXNoLSR7dGhpcy5HSVBJUHVzaH1gXTogIU9iamVjdFV0aWwuaXNOdWxsKHRoaXMuR0lQSVB1c2gpLFxuICAgICAgICAgICAgLi4udGhpcy5fZ2VuZXJhdGVDbGFzcygpXG4gICAgICAgIH07XG5cbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NsYXNzTWFwID0geyAuLi5ob3N0Q2xhc3NNYXAgfTtcbiAgICAgICAgZm9yIChjb25zdCBpIGluIHRoaXMuX2NsYXNzTWFwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fY2xhc3NNYXAuaGFzT3duUHJvcGVydHkoaSkgJiYgdGhpcy5fY2xhc3NNYXBbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCBpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEhvc3RGbGV4U3R5bGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaG9zdEZsZXhTdHlsZSA9IHRoaXMuX3BhcnNlRmxleCh0aGlzLkdJUElGbGV4KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9wYXJzZUZsZXgoZmxleDogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCk6IHN0cmluZyB8IG51bGwge1xuICAgICAgICBpZiAodHlwZW9mIGZsZXggPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7ZmxleH0gJHtmbGV4fSBhdXRvYDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmxleCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICgvXlxcZCsoXFwuXFxkKyk/KHB4fGVtfHJlbXwlKSQvLnRlc3QoZmxleCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYDAgMCAke2ZsZXh9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmxleDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUNsYXNzKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IGxpc3RPZlNpemVJbnB1dE5hbWU6IEFycmF5PGtleW9mIEdJUElDb2xEaXJlY3RpdmU+ID0gWydHSVBJWHMnLCAnR0lQSVNtJywgJ0dJUElNZCcsICdHSVBJTGcnLCAnR0lQSVhsJywgJ0dJUElYWGwnXTtcbiAgICAgICAgY29uc3QgbGlzdENsYXNzTWFwOiBHSVBJQ2xhc3NJbnRlcmZhY2UgPSB7fTtcblxuICAgICAgICBsaXN0T2ZTaXplSW5wdXROYW1lLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzaXplTmFtZTogc3RyaW5nID0gbmFtZS5yZXBsYWNlKCdHSVBJJywgJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0VXRpbC5pc051bGwodGhpc1tuYW1lXSkpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXNbbmFtZV0gPT09ICdudW1iZXInIHx8IHR5cGVvZiB0aGlzW25hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0Q2xhc3NNYXBbYGdyaWQtY29sLSR7c2l6ZU5hbWV9LSR7dGhpc1tuYW1lXX1gXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW1iZWRkZWQgPSB0aGlzW25hbWVdIGFzIEVtYmVkZGVkUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByZWZpeEFycmF5OiBBcnJheTxrZXlvZiBFbWJlZGRlZFByb3BlcnR5PiA9IFsnc3BhbicsICdwdWxsJywgJ3B1c2gnLCAnb2Zmc2V0JywgJ29yZGVyJ107XG5cbiAgICAgICAgICAgICAgICAgICAgcHJlZml4QXJyYXkuZm9yRWFjaChwcmVmaXggPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcHJlZml4Q2xhc3M6IHN0cmluZyA9IHByZWZpeCA9PT0gJ3NwYW4nID8gJy0nIDogYC0ke3ByZWZpeH0tYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDbGFzc01hcFtgZ3JpZC1jb2wtJHtzaXplTmFtZX0ke3ByZWZpeENsYXNzfSR7ZW1iZWRkZWRbcHJlZml4XX1gXSA9IGVtYmVkZGVkICYmICFPYmplY3RVdGlsLmlzTnVsbChlbWJlZGRlZFtwcmVmaXhdKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGxpc3RDbGFzc01hcDtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -60,7 +60,7 @@ var MonthPickerModel = /** @class */ (function () {
60
60
  this.selectedYearMoment = moment();
61
61
  this.updateYearText();
62
62
  this.selectedMonthMoment = moment();
63
- this.months = moment.monthsShort().map(function (month) { return month + "."; });
63
+ this.months = ['Jan.', 'Fev.', 'Mar.', 'Abr.', 'Mai.', 'Jun.', 'Jul.', 'Ago.', 'Set.', 'Out.', 'Nov.', 'Dez.'];
64
64
  this.selectedMonthIndex = this.selectedMonthMoment.month();
65
65
  this.selectedMonthYear = this.selectedYearMoment.year();
66
66
  }
@@ -502,4 +502,4 @@ var MonthYearPickerComponent = /** @class */ (function () {
502
502
  return MonthYearPickerComponent;
503
503
  }());
504
504
  export { MonthYearPickerComponent };
505
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgteWVhci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN1EsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMs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LFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7eUNBUFYsVUFBVTtZQUNELGlCQUFpQjtZQUMzQixPQUFPO1lBQ1IsTUFBTTtZQUNJLGdCQUFnQixVQUVqQixjQUFjO09BckluQyx3QkFBd0IsQ0FzVnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXRWRCxJQXNWQztTQXRWWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFU0NBUEUsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5cbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbmltcG9ydCB7IENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC15ZWFyL2NhbGVuZGFyLW1vbnRoLXllYXIuY29tcG9uZW50JztcblxuXG5leHBvcnQgY29uc3QgR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ2dpcGktbW9udGgteWVhci1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUlkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IFNjcm9sbFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZLFxufTtcblxuXG5leHBvcnQgY2xhc3MgTW9udGhZZWFyIHtcbiAgICBwcml2YXRlIF9tb250aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3llYXI6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXQgZGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpLmRheSgxKS5tb250aCh0aGlzLm1vbnRoKS55ZWFyKHRoaXMueWVhcikuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5feWVhcjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihtb250aD86IG51bWJlciwgeWVhcj86IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tb250aCA9IG1vbnRoO1xuICAgICAgICB0aGlzLl95ZWFyID0geWVhcjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb250aFBpY2tlck1vZGVsIHtcbiAgICBzZWxlY3RlZFllYXJNb21lbnQ6IG1vbWVudC5Nb21lbnQ7XG4gICAgc2VsZWN0ZWRZZWFyVGV4dDogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWRNb250aE1vbWVudDogbW9tZW50Lk1vbWVudDtcbiAgICBzZWxlY3RlZE1vbnRoSW5kZXg6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoWWVhcjogbnVtYmVyO1xuXG4gICAgbW9udGhzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXJNb21lbnQgPSBtb21lbnQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpO1xuXG4gICAgICAgIHRoaXMubW9udGhzID0gbW9tZW50Lm1vbnRoc1Nob3J0KCkubWFwKG1vbnRoID0+IGAke21vbnRofS5gKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhJbmRleCA9IHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudC5tb250aCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhZZWFyID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQueWVhcigpO1xuICAgIH1cblxuICAgIHVwZGF0ZVllYXJUZXh0KCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhclRleHQgPSAhT2JqZWN0VXRpbC5pc051bGwobW9tZW50KSA/IG1vbWVudCh0aGlzLnNlbGVjdGVkWWVhck1vbWVudCkuZm9ybWF0KCdZWVlZJykgOiAnJztcbiAgICB9XG5cbiAgICBzZWxlY3RNb250aChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpLm1vbnRoKGluZGV4KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoSW5kZXggPSB0aGlzLnNlbGVjdGVkTW9udGhNb21lbnQubW9udGgoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoWWVhciA9IHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50LnllYXIoKTtcbiAgICB9XG5cbiAgICBpbmNyZW1lbnRZZWFyKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhck1vbWVudCA9IHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50LmFkZCgxLCBcInllYXJcIilcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuICAgIH1cblxuICAgIGRlY3JlbWVudFllYXIoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50ID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQuc3VidHJhY3QoMSwgXCJ5ZWFyXCIpXG4gICAgICAgIHRoaXMudXBkYXRlWWVhclRleHQoKTtcbiAgICB9XG59XG5cbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktbW9udGgteWVhci1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbW9udGgteWVhci1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKTogdHlwZW9mIE1vbnRoWWVhclBpY2tlckNvbXBvbmVudCA9PiBNb250aFllYXJQaWNrZXJDb21wb25lbnQpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktbW9udGgteWVhci1waWNrZXInLFxuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1vbnRoWWVhclBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIEBWaWV3Q2hpbGQoJ2lucHV0TW9udGhZZWFyQ29udGVudCcsIHsgc3RhdGljOiBmYWxzZSwgfSkgaW5wdXRNb250aFllYXJDb250ZW50UmVmOiBFbGVtZW50UmVmO1xuXG4gICAgcHJpdmF0ZSBfbmFtZTogc3RyaW5nID0gYGdpcGktZGF0ZS1yYW5nZS0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICBwcml2YXRlIF9zY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3k7XG5cbiAgICBwcml2YXRlIF9wb3B1cFJlZjogT3ZlcmxheVJlZiB8IG51bGw7XG4gICAgcHJpdmF0ZSBfcG9wdXBDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxDYWxlbmRhck1vbnRoWWVhckNvbXBvbmVudD4gfCBudWxsO1xuICAgIHByaXZhdGUgX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbjogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9iYWNrZHJvcEhhcm5lc3NDbGFzcyA9IGAke3RoaXMuX25hbWV9LWJhY2tkcm9wYDtcblxuICAgIHJlYWRvbmx5IF9zdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHVibGljIHZhbHVlTGFiZWw6IHN0cmluZyA9ICcnO1xuXG4gICAgcHVibGljIG1vZGVsOiBNb250aFBpY2tlck1vZGVsO1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZyA9IGAke3RoaXMuX25hbWV9LWRhdGVgO1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gYCR7dGhpcy5fbmFtZX0tZGF0ZWA7XG5cbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBoZWxwOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIGxvY2FsZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHllYXI6IG51bWJlcjtcbiAgICBASW5wdXQoKSBtb250aDogbnVtYmVyO1xuXG4gICAgLy8gQElucHV0KCkgZW5hYmxlZE1vbnRoczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICAgIC8vIEBJbnB1dCgpIGRpc2FibGVkTW9udGhzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgICAvLyBASW5wdXQoKSBlbmFibGVkWWVhcnM6IEFycmF5PG51bWJlcj4gPSBbXTtcbiAgICAvLyBASW5wdXQoKSBkaXNhYmxlZFllYXJzOiBBcnJheTxudW1iZXI+ID0gW107XG5cbiAgICBASW5wdXQoKSBtdWx0aXBsZTogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgpIHhQb3NpdGlvbjogJ3N0YXJ0JyB8ICdlbmQnID0gJ3N0YXJ0JztcblxuICAgIEBJbnB1dCgpIHlQb3NpdGlvbjogJ2Fib3ZlJyB8ICdiZWxvdycgPSAnYmVsb3cnO1xuXG4gICAgQElucHV0KCkgY2FsZW5kYXJWaWV3OiAnYm90aCcgfCAneWVhcicgPSAnYm90aCc7XG5cbiAgICBwcml2YXRlIF9vcGVuZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgb3BlbmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlbmVkO1xuICAgIH1cbiAgICBzZXQgb3BlbmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSkgPyB0aGlzLm9wZW4oKSA6IHRoaXMuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCByZXF1aXJlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlcXVpcmVkO1xuICAgIH1cbiAgICBzZXQgcmVxdWlyZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWluOiBNb250aFllYXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGdldCBtaW4oKTogTW9udGhZZWFyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgICB9XG4gICAgc2V0IG1pbih2YWx1ZTogTW9udGhZZWFyKSB7XG4gICAgICAgIHRoaXMuX21pbiA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21heDogTW9udGhZZWFyID0gbnVsbDtcbiAgICBASW5wdXQoKSBnZXQgbWF4KCk6IE1vbnRoWWVhciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXg7XG4gICAgfVxuICAgIHNldCBtYXgodmFsdWU6IE1vbnRoWWVhcikge1xuICAgICAgICB0aGlzLl9tYXggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF92YWx1ZTogTW9udGhZZWFyO1xuICAgIEBJbnB1dCgpIGdldCB2YWx1ZSgpOiBNb250aFllYXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gICAgfVxuICAgIHNldCB2YWx1ZSh2YWx1ZTogTW9udGhZZWFyKSB7XG4gICAgICAgIGxldCB2YWx1ZUF1eDogTW9udGhZZWFyID0gdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlQXV4ID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsdWVBdXgpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGhpcy5jYWxlbmRhclZpZXcpIHtcbiAgICAgICAgICAgICAgICBjYXNlICdib3RoJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlTGFiZWwgPSBtb21lbnQodmFsdWVBdXguZGF0ZSkuZm9ybWF0KCdNTS9ZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlICd5ZWFyJzoge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnZhbHVlTGFiZWwgPSBtb21lbnQodmFsdWVBdXguZGF0ZSkuZm9ybWF0KCdZWVlZJyk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVMYWJlbCA9IG1vbWVudCh2YWx1ZUF1eC5kYXRlKS5mb3JtYXQoJ01NL1lZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZUF1eDtcblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQodGhpcy5fdmFsdWUpO1xuICAgIH1cblxuICAgIEBPdXRwdXQoJ29wZW5lZCcpIG9wZW5lZFN0cmVhbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoJ2Nsb3NlZCcpIGNsb3NlZFN0cmVhbTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgb25DaGFuZ2U6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gICAgb25Ub3VjaGVkOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgICAgICBwcml2YXRlIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgQEluamVjdChHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZKSBzY3JvbGxTdHJhdGVneTogYW55LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9kaXI6IERpcmVjdGlvbmFsaXR5LFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2N1bWVudDogYW55LFxuICAgICkge1xuICAgICAgICB0aGlzLl9zY3JvbGxTdHJhdGVneSA9IHNjcm9sbFN0cmF0ZWd5O1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsID0gbmV3IE1vbnRoUGlja2VyTW9kZWwoKTtcblxuICAgICAgICBpZiAodGhpcy55ZWFyKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdGVkWWVhck1vbWVudCA9IG1vbWVudCgpLnllYXIodGhpcy55ZWFyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLm1vbnRoKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhJbmRleCA9IHRoaXMubW9udGg7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhNb21lbnQgPSBtb21lbnQoKS5tb250aCh0aGlzLm1vbnRoKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMueWVhcikge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aFllYXIgPSB0aGlzLnllYXI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1vZGVsLnVwZGF0ZVllYXJUZXh0KCk7XG4gICAgICAgIGlmIChPYmplY3RVdGlsLmlzTnVsbCh0aGlzLm1vbnRoKSAmJiBPYmplY3RVdGlsLmlzTnVsbCh0aGlzLnllYXIpKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub25WYWx1ZUNoYW5nZSh0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhJbmRleCwgdGhpcy5tb2RlbC5zZWxlY3RlZE1vbnRoWWVhcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uQ2hhbmdlID0gY2hhbmdlc1sneFBvc2l0aW9uJ10gfHwgY2hhbmdlc1sneVBvc2l0aW9uJ107XG5cbiAgICAgICAgaWYgKHBvc2l0aW9uQ2hhbmdlICYmICFwb3NpdGlvbkNoYW5nZS5maXJzdENoYW5nZSAmJiB0aGlzLl9wb3B1cFJlZikge1xuICAgICAgICAgICAgdGhpcy5fc2V0Q29ubmVjdGVkUG9zaXRpb25zKHRoaXMuX3BvcHVwUmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KTtcblxuICAgICAgICAgICAgaWYgKHRoaXMub3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5uZXh0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3lQb3B1cCgpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIHRoaXMuX3N0YXRlQ2hhbmdlcy5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IE1vbnRoWWVhcik6IHZvaWQge1xuICAgICAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBGdW5jdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgfVxuXG4gICAgc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uVmFsdWVDaGFuZ2UobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoWWVhcjogTW9udGhZZWFyID0gbmV3IE1vbnRoWWVhcihtb250aCwgeWVhcik7XG4gICAgICAgIHRoaXMudmFsdWUgPSBtb250aFllYXI7XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3BlbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX29wZW5lZCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmlucHV0TW9udGhZZWFyQ29udGVudFJlZikge1xuICAgICAgICAgICAgdGhyb3cgRXJyb3IoJ0F0dGVtcHRlZCB0byBvcGVuIGFuIE1vbnRoWWVhclBpY2tlciB3aXRoIG5vIGFzc29jaWF0ZWQgaW5wdXQuJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2RvY3VtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4gPSB0aGlzLl9kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fb3BlbkFzUG9wdXAoKTtcbiAgICAgICAgdGhpcy5fb3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5vcGVuZWRTdHJlYW0uZW1pdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9vcGVuZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fcG9wdXBDb21wb25lbnRSZWYgJiYgdGhpcy5fcG9wdXBSZWYpIHtcbiAgICAgICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5fcG9wdXBDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgICAgICBpbnN0YW5jZS5fc3RhcnRFeGl0QW5pbWF0aW9uKCk7XG4gICAgICAgICAgICBpbnN0YW5jZS5fYW5pbWF0aW9uRG9uZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLl9kZXN0cm95UG9wdXAoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjb21wbGV0ZUNsb3NlID0gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuX29wZW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2VkU3RyZWFtLmVtaXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4gPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4gJiZcbiAgICAgICAgICAgIHR5cGVvZiB0aGlzLl9mb2N1c2VkRWxlbWVudEJlZm9yZU9wZW4uZm9jdXMgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3Blbi5mb2N1cygpO1xuICAgICAgICAgICAgc2V0VGltZW91dChjb21wbGV0ZUNsb3NlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbXBsZXRlQ2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX29wZW5Bc1BvcHVwKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwb3J0YWw6IENvbXBvbmVudFBvcnRhbDxDYWxlbmRhck1vbnRoWWVhckNvbXBvbmVudD4gPSBuZXcgQ29tcG9uZW50UG9ydGFsPENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50PihDYWxlbmRhck1vbnRoWWVhckNvbXBvbmVudCwgdGhpcy5fdmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAgICAgdGhpcy5fZGVzdHJveVBvcHVwKCk7XG4gICAgICAgIHRoaXMuX2NyZWF0ZVBvcHVwKCk7XG4gICAgICAgIHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmID0gdGhpcy5fcG9wdXBSZWYhLmF0dGFjaChwb3J0YWwpO1xuICAgICAgICB0aGlzLl9wb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZS5tb250aFllYXJQaWNrZXIgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMuX25nWm9uZS5vblN0YWJsZS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZiEudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaW5wdXRNb250aFllYXJDb250ZW50UmVmID8gdGhpcy5pbnB1dE1vbnRoWWVhckNvbnRlbnRSZWYgOiB0aGlzLmVsZW1lbnRSZWY7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfY3JlYXRlUG9wdXAoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLl9vdmVybGF5LnBvc2l0aW9uKClcbiAgICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuX2dldENvbm5lY3RlZE92ZXJsYXlPcmlnaW4oKSlcbiAgICAgICAgICAgIC53aXRoVHJhbnNmb3JtT3JpZ2luT24oJy5tYXQtZGF0ZXBpY2tlci1jb250ZW50JylcbiAgICAgICAgICAgIC53aXRoRmxleGlibGVEaW1lbnNpb25zKGZhbHNlKVxuICAgICAgICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbig4KVxuICAgICAgICAgICAgLndpdGhMb2NrZWRQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlDb25maWcgPSBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9zZXRDb25uZWN0ZWRQb3NpdGlvbnMocG9zaXRpb25TdHJhdGVneSksXG4gICAgICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnbWF0LW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLCB0aGlzLl9iYWNrZHJvcEhhcm5lc3NDbGFzc10sXG4gICAgICAgICAgICBkaXJlY3Rpb246IHRoaXMuX2RpciB8fCAnbHRyJyxcbiAgICAgICAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9zY3JvbGxTdHJhdGVneSgpLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ21hdC1tb250aC15ZWFyLXBpY2tlci1wb3B1cCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3BvcHVwUmVmID0gdGhpcy5fb3ZlcmxheS5jcmVhdGUob3ZlcmxheUNvbmZpZyk7XG4gICAgICAgIHRoaXMuX3BvcHVwUmVmLm92ZXJsYXlFbGVtZW50LnNldEF0dHJpYnV0ZSgncm9sZScsICdkaWFsb2cnKTtcblxuICAgICAgICBtZXJnZShcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmLmJhY2tkcm9wQ2xpY2soKSxcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmLmRldGFjaG1lbnRzKCksXG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZi5rZXlkb3duRXZlbnRzKCkucGlwZShmaWx0ZXIoZXZlbnQgPT4gZXZlbnQua2V5Q29kZSA9PT0gRVNDQVBFIHx8ICh0aGlzLmlucHV0TW9udGhZZWFyQ29udGVudFJlZiAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQua2V5Q29kZSA9PT0gVVBfQVJST1cpKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9kZXN0cm95UG9wdXAoKSB7XG4gICAgICAgIGlmICh0aGlzLl9wb3B1cFJlZikge1xuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYuZGlzcG9zZSgpO1xuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYgPSB0aGlzLl9wb3B1cENvbXBvbmVudFJlZiA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRDb25uZWN0ZWRQb3NpdGlvbnMoc3RyYXRlZ3k6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSkge1xuICAgICAgICBjb25zdCBwcmltYXJ5WCA9IHRoaXMueFBvc2l0aW9uID09PSAnZW5kJyA/ICdlbmQnIDogJ3N0YXJ0JztcbiAgICAgICAgY29uc3Qgc2Vjb25kYXJ5WCA9IHByaW1hcnlYID09PSAnc3RhcnQnID8gJ2VuZCcgOiAnc3RhcnQnO1xuICAgICAgICBjb25zdCBwcmltYXJ5WSA9IHRoaXMueVBvc2l0aW9uID09PSAnYWJvdmUnID8gJ2JvdHRvbScgOiAndG9wJztcbiAgICAgICAgY29uc3Qgc2Vjb25kYXJ5WSA9IHByaW1hcnlZID09PSAndG9wJyA/ICdib3R0b20nIDogJ3RvcCc7XG5cbiAgICAgICAgcmV0dXJuIHN0cmF0ZWd5LndpdGhQb3NpdGlvbnMoW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IHByaW1hcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHNlY29uZGFyeVksXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6IHByaW1hcnlYLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBwcmltYXJ5WVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiBwcmltYXJ5WCxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiBwcmltYXJ5WSxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogcHJpbWFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHNlY29uZGFyeVlcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogc2Vjb25kYXJ5WCxcbiAgICAgICAgICAgICAgICBvcmlnaW5ZOiBzZWNvbmRhcnlZLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBwcmltYXJ5WVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHByaW1hcnlZLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlZOiBzZWNvbmRhcnlZXG4gICAgICAgICAgICB9XG4gICAgICAgIF0pO1xuICAgIH1cblxufVxuIl19
505
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGgteWVhci1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9tb250aC15ZWFyLXBpY2tlci9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3SCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN1EsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMs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Q0FBQyxDQUFBO1FBQ3ZDLFdBQUEsUUFBUSxFQUFFLENBQUE7UUFDVixXQUFBLFFBQVEsRUFBRSxDQUFBLEVBQUUsV0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUE7eUNBUFYsVUFBVTtZQUNELGlCQUFpQjtZQUMzQixPQUFPO1lBQ1IsTUFBTTtZQUNJLGdCQUFnQixVQUVqQixjQUFjO09BckluQyx3QkFBd0IsQ0FzVnBDO0lBQUQsK0JBQUM7Q0FBQSxBQXRWRCxJQXNWQztTQXRWWSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBFU0NBUEUsIFVQX0FSUk9XIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiwgU2Nyb2xsU3RyYXRlZ3kgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgZm9yd2FyZFJlZiwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgSW5wdXQsIE5nWm9uZSwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbCB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS91dGlscy9vYmplY3QudXRpbCc7XG5cbmltcG9ydCAqIGFzIG1vbWVudF8gZnJvbSAnbW9tZW50JztcbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5cbmltcG9ydCB7IENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci1tb250aC15ZWFyL2NhbGVuZGFyLW1vbnRoLXllYXIuY29tcG9uZW50JztcblxuXG5leHBvcnQgY29uc3QgR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSA9IG5ldyBJbmplY3Rpb25Ub2tlbjwoKSA9PiBTY3JvbGxTdHJhdGVneT4oJ2dpcGktbW9udGgteWVhci1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUlkob3ZlcmxheTogT3ZlcmxheSk6ICgpID0+IFNjcm9sbFN0cmF0ZWd5IHtcbiAgICByZXR1cm4gKCkgPT4gb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBHSVBJX01PTlRIX1lFQVJfU0NST0xMX1NUUkFURUdZX0ZBQ1RPUllfUFJPVklERVIgPSB7XG4gICAgcHJvdmlkZTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeTogR0lQSV9NT05USF9ZRUFSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZLFxufTtcblxuXG5leHBvcnQgY2xhc3MgTW9udGhZZWFyIHtcbiAgICBwcml2YXRlIF9tb250aDogbnVtYmVyO1xuICAgIHByaXZhdGUgX3llYXI6IG51bWJlcjtcblxuICAgIHB1YmxpYyBnZXQgZGF0ZSgpOiBEYXRlIHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudCgpLmRheSgxKS5tb250aCh0aGlzLm1vbnRoKS55ZWFyKHRoaXMueWVhcikuc3RhcnRPZignZGF5JykudG9EYXRlKCk7XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9udGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vbnRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgeWVhcigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5feWVhcjtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihtb250aD86IG51bWJlciwgeWVhcj86IG51bWJlcikge1xuICAgICAgICB0aGlzLl9tb250aCA9IG1vbnRoO1xuICAgICAgICB0aGlzLl95ZWFyID0geWVhcjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBNb250aFBpY2tlck1vZGVsIHtcbiAgICBzZWxlY3RlZFllYXJNb21lbnQ6IG1vbWVudC5Nb21lbnQ7XG4gICAgc2VsZWN0ZWRZZWFyVGV4dDogc3RyaW5nO1xuXG4gICAgc2VsZWN0ZWRNb250aE1vbWVudDogbW9tZW50Lk1vbWVudDtcbiAgICBzZWxlY3RlZE1vbnRoSW5kZXg6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoWWVhcjogbnVtYmVyO1xuXG4gICAgbW9udGhzOiBBcnJheTxzdHJpbmc+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXJNb21lbnQgPSBtb21lbnQoKTtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpO1xuXG4gICAgICAgIHRoaXMubW9udGhzID0gWydKYW4uJywgJ0Zldi4nLCAnTWFyLicsICdBYnIuJywgJ01haS4nLCAnSnVuLicsICdKdWwuJywgJ0Fnby4nLCAnU2V0LicsICdPdXQuJywgJ05vdi4nLCAnRGV6LiddO1xuXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aEluZGV4ID0gdGhpcy5zZWxlY3RlZE1vbnRoTW9tZW50Lm1vbnRoKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aFllYXIgPSB0aGlzLnNlbGVjdGVkWWVhck1vbWVudC55ZWFyKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlWWVhclRleHQoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyVGV4dCA9ICFPYmplY3RVdGlsLmlzTnVsbChtb21lbnQpID8gbW9tZW50KHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50KS5mb3JtYXQoJ1lZWVknKSA6ICcnO1xuICAgIH1cblxuICAgIHNlbGVjdE1vbnRoKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vbnRoTW9tZW50ID0gbW9tZW50KCkubW9udGgoaW5kZXgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhJbmRleCA9IHRoaXMuc2VsZWN0ZWRNb250aE1vbWVudC5tb250aCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGhZZWFyID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQueWVhcigpO1xuICAgIH1cblxuICAgIGluY3JlbWVudFllYXIoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRZZWFyTW9tZW50ID0gdGhpcy5zZWxlY3RlZFllYXJNb21lbnQuYWRkKDEsIFwieWVhclwiKVxuICAgICAgICB0aGlzLnVwZGF0ZVllYXJUZXh0KCk7XG4gICAgfVxuXG4gICAgZGVjcmVtZW50WWVhcigpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFllYXJNb21lbnQgPSB0aGlzLnNlbGVjdGVkWWVhck1vbWVudC5zdWJ0cmFjdCgxLCBcInllYXJcIilcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyVGV4dCgpO1xuICAgIH1cbn1cblxubGV0IG5leHRVbmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZ2lwaS1tb250aC15ZWFyLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21vbnRoLXllYXItcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9tb250aC15ZWFyLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgTW9udGhZZWFyUGlja2VyQ29tcG9uZW50ID0+IE1vbnRoWWVhclBpY2tlckNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgIF0sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS1tb250aC15ZWFyLXBpY2tlcicsXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTW9udGhZZWFyUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXRNb250aFllYXJDb250ZW50JywgeyBzdGF0aWM6IGZhbHNlLCB9KSBpbnB1dE1vbnRoWWVhckNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBwcml2YXRlIF9uYW1lOiBzdHJpbmcgPSBgZ2lwaS1kYXRlLXJhbmdlLSR7bmV4dFVuaXF1ZUlkKyt9YDtcblxuICAgIHByaXZhdGUgX3Njcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneTtcblxuICAgIHByaXZhdGUgX3BvcHVwUmVmOiBPdmVybGF5UmVmIHwgbnVsbDtcbiAgICBwcml2YXRlIF9wb3B1cENvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50PiB8IG51bGw7XG4gICAgcHJpdmF0ZSBfZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuOiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2JhY2tkcm9wSGFybmVzc0NsYXNzID0gYCR7dGhpcy5fbmFtZX0tYmFja2Ryb3BgO1xuXG4gICAgcmVhZG9ubHkgX3N0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwdWJsaWMgdmFsdWVMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBwdWJsaWMgbW9kZWw6IE1vbnRoUGlja2VyTW9kZWw7XG5cbiAgICBASW5wdXQoKSBpZDogc3RyaW5nID0gYCR7dGhpcy5fbmFtZX0tZGF0ZWA7XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmcgPSBgJHt0aGlzLl9uYW1lfS1kYXRlYDtcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIGhlbHA6IHN0cmluZyA9ICcnO1xuXG4gICAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmc7XG4gICAgQElucHV0KCkgeWVhcjogbnVtYmVyO1xuICAgIEBJbnB1dCgpIG1vbnRoOiBudW1iZXI7XG5cbiAgICAvLyBASW5wdXQoKSBlbmFibGVkTW9udGhzOiBBcnJheTxudW1iZXI+ID0gW107XG4gICAgLy8gQElucHV0KCkgZGlzYWJsZWRNb250aHM6IEFycmF5PG51bWJlcj4gPSBbXTtcblxuICAgIC8vIEBJbnB1dCgpIGVuYWJsZWRZZWFyczogQXJyYXk8bnVtYmVyPiA9IFtdO1xuICAgIC8vIEBJbnB1dCgpIGRpc2FibGVkWWVhcnM6IEFycmF5PG51bWJlcj4gPSBbXTtcblxuICAgIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgeFBvc2l0aW9uOiAnc3RhcnQnIHwgJ2VuZCcgPSAnc3RhcnQnO1xuXG4gICAgQElucHV0KCkgeVBvc2l0aW9uOiAnYWJvdmUnIHwgJ2JlbG93JyA9ICdiZWxvdyc7XG5cbiAgICBASW5wdXQoKSBjYWxlbmRhclZpZXc6ICdib3RoJyB8ICd5ZWFyJyA9ICdib3RoJztcblxuICAgIHByaXZhdGUgX29wZW5lZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCBvcGVuZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVuZWQ7XG4gICAgfVxuICAgIHNldCBvcGVuZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKSA/IHRoaXMub3BlbigpIDogdGhpcy5jbG9zZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3JlcXVpcmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KCkgZ2V0IHJlcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVxdWlyZWQ7XG4gICAgfVxuICAgIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9yZXF1aXJlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9taW46IE1vbnRoWWVhciA9IG51bGw7XG4gICAgQElucHV0KCkgZ2V0IG1pbigpOiBNb250aFllYXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluO1xuICAgIH1cbiAgICBzZXQgbWluKHZhbHVlOiBNb250aFllYXIpIHtcbiAgICAgICAgdGhpcy5fbWluID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWF4OiBNb250aFllYXIgPSBudWxsO1xuICAgIEBJbnB1dCgpIGdldCBtYXgoKTogTW9udGhZZWFyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heDtcbiAgICB9XG4gICAgc2V0IG1heCh2YWx1ZTogTW9udGhZZWFyKSB7XG4gICAgICAgIHRoaXMuX21heCA9IHZhbHVlO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3ZhbHVlOiBNb250aFllYXI7XG4gICAgQElucHV0KCkgZ2V0IHZhbHVlKCk6IE1vbnRoWWVhciB7XG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gICAgc2V0IHZhbHVlKHZhbHVlOiBNb250aFllYXIpIHtcbiAgICAgICAgbGV0IHZhbHVlQXV4OiBNb250aFllYXIgPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWVBdXggPSBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWx1ZUF1eCkge1xuICAgICAgICAgICAgc3dpdGNoICh0aGlzLmNhbGVuZGFyVmlldykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ2JvdGgnOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVMYWJlbCA9IG1vbWVudCh2YWx1ZUF1eC5kYXRlKS5mb3JtYXQoJ01NL1lZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgJ3llYXInOiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWVMYWJlbCA9IG1vbWVudCh2YWx1ZUF1eC5kYXRlKS5mb3JtYXQoJ1lZWVknKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52YWx1ZUxhYmVsID0gbW9tZW50KHZhbHVlQXV4LmRhdGUpLmZvcm1hdCgnTU0vWVlZWScpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlQXV4O1xuXG4gICAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5fdmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCh0aGlzLl92YWx1ZSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgnb3BlbmVkJykgb3BlbmVkU3RyZWFtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgnY2xvc2VkJykgY2xvc2VkU3RyZWFtOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBvbkNoYW5nZTogRnVuY3Rpb24gPSAoKSA9PiB7IH07XG5cbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBASW5qZWN0KEdJUElfTU9OVEhfWUVBUl9TQ1JPTExfU1RSQVRFR1kpIHNjcm9sbFN0cmF0ZWd5OiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHksXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnksXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX3Njcm9sbFN0cmF0ZWd5ID0gc2Nyb2xsU3RyYXRlZ3k7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgTW9udGhQaWNrZXJNb2RlbCgpO1xuXG4gICAgICAgIGlmICh0aGlzLnllYXIpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRZZWFyTW9tZW50ID0gbW9tZW50KCkueWVhcih0aGlzLnllYXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMubW9udGgpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aEluZGV4ID0gdGhpcy5tb250aDtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aE1vbWVudCA9IG1vbWVudCgpLm1vbnRoKHRoaXMubW9udGgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy55ZWFyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5zZWxlY3RlZE1vbnRoWWVhciA9IHRoaXMueWVhcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubW9kZWwudXBkYXRlWWVhclRleHQoKTtcbiAgICAgICAgaWYgKE9iamVjdFV0aWwuaXNOdWxsKHRoaXMubW9udGgpICYmIE9iamVjdFV0aWwuaXNOdWxsKHRoaXMueWVhcikpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5vblZhbHVlQ2hhbmdlKHRoaXMubW9kZWwuc2VsZWN0ZWRNb250aEluZGV4LCB0aGlzLm1vZGVsLnNlbGVjdGVkTW9udGhZZWFyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25DaGFuZ2UgPSBjaGFuZ2VzWyd4UG9zaXRpb24nXSB8fCBjaGFuZ2VzWyd5UG9zaXRpb24nXTtcblxuICAgICAgICBpZiAocG9zaXRpb25DaGFuZ2UgJiYgIXBvc2l0aW9uQ2hhbmdlLmZpcnN0Q2hhbmdlICYmIHRoaXMuX3BvcHVwUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDb25uZWN0ZWRQb3NpdGlvbnModGhpcy5fcG9wdXBSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5vcGVuZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cFJlZi51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzLm5leHQodW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveVBvcHVwKCk7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5fc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgd3JpdGVWYWx1ZSh2YWx1ZTogTW9udGhZZWFyKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IEZ1bmN0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogRnVuY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWx1ZUNoYW5nZShtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbW9udGhZZWFyOiBNb250aFllYXIgPSBuZXcgTW9udGhZZWFyKG1vbnRoLCB5ZWFyKTtcbiAgICAgICAgdGhpcy52YWx1ZSA9IG1vbnRoWWVhcjtcbiAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb3BlbmVkIHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaW5wdXRNb250aFllYXJDb250ZW50UmVmKSB7XG4gICAgICAgICAgICB0aHJvdyBFcnJvcignQXR0ZW1wdGVkIHRvIG9wZW4gYW4gTW9udGhZZWFyUGlja2VyIHdpdGggbm8gYXNzb2NpYXRlZCBpbnB1dC4nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fZG9jdW1lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbiA9IHRoaXMuX2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vcGVuQXNQb3B1cCgpO1xuICAgICAgICB0aGlzLl9vcGVuZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5lZFN0cmVhbS5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX29wZW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLl9wb3B1cENvbXBvbmVudFJlZiAmJiB0aGlzLl9wb3B1cFJlZikge1xuICAgICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLl9wb3B1cENvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgICAgIGluc3RhbmNlLl9zdGFydEV4aXRBbmltYXRpb24oKTtcbiAgICAgICAgICAgIGluc3RhbmNlLl9hbmltYXRpb25Eb25lLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX2Rlc3Ryb3lQb3B1cCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbXBsZXRlQ2xvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb3BlbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5jbG9zZWRTdHJlYW0uZW1pdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbiA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3BlbiAmJlxuICAgICAgICAgICAgdHlwZW9mIHRoaXMuX2ZvY3VzZWRFbGVtZW50QmVmb3JlT3Blbi5mb2N1cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdGhpcy5fZm9jdXNlZEVsZW1lbnRCZWZvcmVPcGVuLmZvY3VzKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNvbXBsZXRlQ2xvc2UpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29tcGxldGVDbG9zZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3BlbkFzUG9wdXAoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBvcnRhbDogQ29tcG9uZW50UG9ydGFsPENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50PiA9IG5ldyBDb21wb25lbnRQb3J0YWw8Q2FsZW5kYXJNb250aFllYXJDb21wb25lbnQ+KENhbGVuZGFyTW9udGhZZWFyQ29tcG9uZW50LCB0aGlzLl92aWV3Q29udGFpbmVyUmVmKTtcblxuICAgICAgICB0aGlzLl9kZXN0cm95UG9wdXAoKTtcbiAgICAgICAgdGhpcy5fY3JlYXRlUG9wdXAoKTtcbiAgICAgICAgdGhpcy5fcG9wdXBDb21wb25lbnRSZWYgPSB0aGlzLl9wb3B1cFJlZiEuYXR0YWNoKHBvcnRhbCk7XG4gICAgICAgIHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmLmluc3RhbmNlLm1vbnRoWWVhclBpY2tlciA9IHRoaXM7XG5cbiAgICAgICAgdGhpcy5fbmdab25lLm9uU3RhYmxlLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmIS51cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRDb25uZWN0ZWRPdmVybGF5T3JpZ2luKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy5pbnB1dE1vbnRoWWVhckNvbnRlbnRSZWYgPyB0aGlzLmlucHV0TW9udGhZZWFyQ29udGVudFJlZiA6IHRoaXMuZWxlbWVudFJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jcmVhdGVQb3B1cCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMuX292ZXJsYXkucG9zaXRpb24oKVxuICAgICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5fZ2V0Q29ubmVjdGVkT3ZlcmxheU9yaWdpbigpKVxuICAgICAgICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbignLm1hdC1kYXRlcGlja2VyLWNvbnRlbnQnKVxuICAgICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXG4gICAgICAgICAgICAud2l0aFZpZXdwb3J0TWFyZ2luKDgpXG4gICAgICAgICAgICAud2l0aExvY2tlZFBvc2l0aW9uKCk7XG5cbiAgICAgICAgY29uc3Qgb3ZlcmxheUNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgICAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX3NldENvbm5lY3RlZFBvc2l0aW9ucyhwb3NpdGlvblN0cmF0ZWd5KSxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogWydtYXQtb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsIHRoaXMuX2JhY2tkcm9wSGFybmVzc0NsYXNzXSxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogdGhpcy5fZGlyIHx8ICdsdHInLFxuICAgICAgICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX3Njcm9sbFN0cmF0ZWd5KCksXG4gICAgICAgICAgICBwYW5lbENsYXNzOiAnbWF0LW1vbnRoLXllYXItcGlja2VyLXBvcHVwJyxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fcG9wdXBSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICAgICAgdGhpcy5fcG9wdXBSZWYub3ZlcmxheUVsZW1lbnQuc2V0QXR0cmlidXRlKCdyb2xlJywgJ2RpYWxvZycpO1xuXG4gICAgICAgIG1lcmdlKFxuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYuYmFja2Ryb3BDbGljaygpLFxuICAgICAgICAgICAgdGhpcy5fcG9wdXBSZWYuZGV0YWNobWVudHMoKSxcbiAgICAgICAgICAgIHRoaXMuX3BvcHVwUmVmLmtleWRvd25FdmVudHMoKS5waXBlKGZpbHRlcihldmVudCA9PiBldmVudC5rZXlDb2RlID09PSBFU0NBUEUgfHwgKHRoaXMuaW5wdXRNb250aFllYXJDb250ZW50UmVmICYmIGV2ZW50LmFsdEtleSAmJiBldmVudC5rZXlDb2RlID09PSBVUF9BUlJPVykpKVxuICAgICAgICApLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Rlc3Ryb3lQb3B1cCgpIHtcbiAgICAgICAgaWYgKHRoaXMuX3BvcHVwUmVmKSB7XG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZi5kaXNwb3NlKCk7XG4gICAgICAgICAgICB0aGlzLl9wb3B1cFJlZiA9IHRoaXMuX3BvcHVwQ29tcG9uZW50UmVmID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldENvbm5lY3RlZFBvc2l0aW9ucyhzdHJhdGVneTogRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KSB7XG4gICAgICAgIGNvbnN0IHByaW1hcnlYID0gdGhpcy54UG9zaXRpb24gPT09ICdlbmQnID8gJ2VuZCcgOiAnc3RhcnQnO1xuICAgICAgICBjb25zdCBzZWNvbmRhcnlYID0gcHJpbWFyeVggPT09ICdzdGFydCcgPyAnZW5kJyA6ICdzdGFydCc7XG4gICAgICAgIGNvbnN0IHByaW1hcnlZID0gdGhpcy55UG9zaXRpb24gPT09ICdhYm92ZScgPyAnYm90dG9tJyA6ICd0b3AnO1xuICAgICAgICBjb25zdCBzZWNvbmRhcnlZID0gcHJpbWFyeVkgPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgICAgICByZXR1cm4gc3RyYXRlZ3kud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgb3JpZ2luWDogcHJpbWFyeVgsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogc2Vjb25kYXJ5WSxcbiAgICAgICAgICAgICAgICBvdmVybGF5WDogcHJpbWFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHByaW1hcnlZXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IHByaW1hcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHByaW1hcnlZLFxuICAgICAgICAgICAgICAgIG92ZXJsYXlYOiBwcmltYXJ5WCxcbiAgICAgICAgICAgICAgICBvdmVybGF5WTogc2Vjb25kYXJ5WVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBvcmlnaW5YOiBzZWNvbmRhcnlYLFxuICAgICAgICAgICAgICAgIG9yaWdpblk6IHNlY29uZGFyeVksXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6IHNlY29uZGFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHByaW1hcnlZXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG9yaWdpblg6IHNlY29uZGFyeVgsXG4gICAgICAgICAgICAgICAgb3JpZ2luWTogcHJpbWFyeVksXG4gICAgICAgICAgICAgICAgb3ZlcmxheVg6IHNlY29uZGFyeVgsXG4gICAgICAgICAgICAgICAgb3ZlcmxheVk6IHNlY29uZGFyeVlcbiAgICAgICAgICAgIH1cbiAgICAgICAgXSk7XG4gICAgfVxuXG59XG4iXX0=
@@ -8,6 +8,7 @@ var GIPINotificationComponent = /** @class */ (function () {
8
8
  this.iconHeight = 24;
9
9
  this.icon = null;
10
10
  this.svgIcon = null;
11
+ this.notification = false;
11
12
  this.onShowOverlay = new EventEmitter();
12
13
  this.onClick = new EventEmitter();
13
14
  this.onFocus = new EventEmitter();
@@ -64,6 +65,10 @@ var GIPINotificationComponent = /** @class */ (function () {
64
65
  Input(),
65
66
  __metadata("design:type", String)
66
67
  ], GIPINotificationComponent.prototype, "tooltip", void 0);
68
+ __decorate([
69
+ Input(),
70
+ __metadata("design:type", Boolean)
71
+ ], GIPINotificationComponent.prototype, "notification", void 0);
67
72
  __decorate([
68
73
  Output(),
69
74
  __metadata("design:type", EventEmitter)
@@ -84,7 +89,7 @@ var GIPINotificationComponent = /** @class */ (function () {
84
89
  Component({
85
90
  selector: "gipi-notification",
86
91
  exportAs: 'gipiNotification',
87
- template: "<gipi-button gipi-icon\n [id]=\"id\"\n [name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [buttonPadding]=\"buttonPadding\"\n [iconWidth]=\"iconWidth\"\n [iconHeight]=\"iconHeight\"\n [icon]=\"icon\"\n [svgIcon]=\"svgIcon\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n [tooltip]=\"tooltip\"\n [popover]=\"true\"\n [overlay]=\"false\"\n (onShowOverlay)=\"onShowOverlay.emit()\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\">\n <div role=\"menu\"\n class=\"notification\">\n <header>\n <span role=\"text\">Notifica\u00E7\u00F5es</span>\n <span role=\"button\">Apagar notifica\u00E7\u00F5es lidas</span>\n </header>\n <main>\n Em breve\n </main>\n <footer>\n </footer>\n </div>\n</gipi-button>\n",
92
+ template: "<gipi-button gipi-icon\n [id]=\"id\"\n [name]=\"name\"\n [ariaLabel]=\"ariaLabel\"\n [buttonPadding]=\"buttonPadding\"\n [iconWidth]=\"iconWidth\"\n [iconHeight]=\"iconHeight\"\n [icon]=\"icon\"\n [svgIcon]=\"svgIcon\"\n [disabled]=\"disabled\"\n [loading]=\"loading\"\n [tooltip]=\"tooltip\"\n [popover]=\"true\"\n [overlay]=\"false\"\n [notification]=\"notification\"\n (onShowOverlay)=\"onShowOverlay.emit()\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"onFocus.emit($event)\"\n (blur)=\"onBlur.emit($event)\">\n <ng-content> </ng-content>\n</gipi-button>\n",
88
93
  providers: [
89
94
  {
90
95
  provide: NG_VALUE_ACCESSOR,
@@ -96,11 +101,11 @@ var GIPINotificationComponent = /** @class */ (function () {
96
101
  'class': 'gipi-notification',
97
102
  },
98
103
  changeDetection: ChangeDetectionStrategy.OnPush,
99
- styles: [".button-only-icon{padding:4px!important}.button-only-icon .button-content>mat-icon{width:24px!important;height:24px!important}.notification{max-width:30rem}.notification>footer,.notification>header{display:none}.notification>main{width:20rem;text-align:center;font-size:1.6rem;font-weight:600;color:#262626}"]
104
+ styles: [".button-only-icon{padding:4px!important}.button-only-icon .button-content>mat-icon{width:24px!important;height:24px!important}"]
100
105
  }),
101
106
  __metadata("design:paramtypes", [])
102
107
  ], GIPINotificationComponent);
103
108
  return GIPINotificationComponent;
104
109
  }());
105
110
  export { GIPINotificationComponent };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJuRDtJQThCSTtRQXBCUyxrQkFBYSxHQUFvQixDQUFDLENBQUM7UUFFbkMsY0FBUyxHQUFvQixFQUFFLENBQUM7UUFDaEMsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFFakMsU0FBSSxHQUFXLElBQUksQ0FBQztRQUVwQixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBUXRCLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdEQsWUFBTyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ25FLFlBQU8sR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUNwRSxXQUFNLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFFbEUsQ0FBQztrQ0E5QlIseUJBQXlCO0lBZ0NsQyw0Q0FBUSxHQUFSLGNBQW1CLENBQUM7O0lBOUJYO1FBQVIsS0FBSyxFQUFFOzt5REFBWTtJQUVYO1FBQVIsS0FBSyxFQUFFOzsyREFBYztJQUViO1FBQVIsS0FBSyxFQUFFOztnRUFBbUI7SUFFbEI7UUFBUixLQUFLLEVBQUU7OzREQUFlO0lBRWQ7UUFBUixLQUFLLEVBQUU7O29FQUFvQztJQUVuQztRQUFSLEtBQUssRUFBRTs7Z0VBQWlDO0lBQ2hDO1FBQVIsS0FBSyxFQUFFOztpRUFBa0M7SUFFakM7UUFBUixLQUFLLEVBQUU7OzJEQUFxQjtJQUVwQjtRQUFSLEtBQUssRUFBRTs7OERBQXdCO0lBRXZCO1FBQVIsS0FBSyxFQUFFOzsrREFBa0I7SUFFakI7UUFBUixLQUFLLEVBQUU7OzhEQUFpQjtJQUVoQjtRQUFSLEtBQUssRUFBRTs7OERBQWlCO0lBRWY7UUFBVCxNQUFNLEVBQUU7a0NBQWdCLFlBQVk7b0VBQWtDO0lBQ3REO1FBQWhCLE1BQU0sQ0FBQyxPQUFPLENBQUM7a0NBQVUsWUFBWTs4REFBOEM7SUFDbkU7UUFBaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQztrQ0FBVSxZQUFZOzhEQUE4QztJQUNwRTtRQUFmLE1BQU0sQ0FBQyxNQUFNLENBQUM7a0NBQVMsWUFBWTs2REFBOEM7SUE1QnpFLHlCQUF5QjtRQWpCckMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLGdpQ0FBNEM7WUFFNUMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBd0MsT0FBQSwyQkFBeUIsRUFBekIsQ0FBeUIsQ0FBQztvQkFDMUYsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtZQUNELElBQUksRUFBRTtnQkFDRixPQUFPLEVBQUUsbUJBQW1CO2FBQy9CO1lBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O1NBQ2xELENBQUM7O09BQ1cseUJBQXlCLENBa0NyQztJQUFELGdDQUFDO0NBQUEsQUFsQ0QsSUFrQ0M7U0FsQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktbm90aWZpY2F0aW9uYCxcbiAgICBleHBvcnRBczogJ2dpcGlOb3RpZmljYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSU5vdGlmaWNhdGlvbkNvbXBvbmVudCA9PiBHSVBJTm90aWZpY2F0aW9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktbm90aWZpY2F0aW9uJyxcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEdJUElOb3RpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGJ1dHRvblBhZGRpbmc6IG51bWJlciB8IHN0cmluZyA9IDQ7XG5cbiAgICBASW5wdXQoKSBpY29uV2lkdGg6IG51bWJlciB8IHN0cmluZyA9IDI0O1xuICAgIEBJbnB1dCgpIGljb25IZWlnaHQ6IG51bWJlciB8IHN0cmluZyA9IDI0O1xuXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbG9hZGluZzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIG9uU2hvd092ZXJsYXk6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICBAT3V0cHV0KCdjbGljaycpIG9uQ2xpY2s6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdmb2N1cycpIG9uRm9jdXM6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcbiAgICBAT3V0cHV0KCdibHVyJykgb25CbHVyOiBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxufVxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBbUJuRDtJQWdDSTtRQXRCUyxrQkFBYSxHQUFvQixDQUFDLENBQUM7UUFFbkMsY0FBUyxHQUFvQixFQUFFLENBQUM7UUFDaEMsZUFBVSxHQUFvQixFQUFFLENBQUM7UUFFakMsU0FBSSxHQUFXLElBQUksQ0FBQztRQUVwQixZQUFPLEdBQVcsSUFBSSxDQUFDO1FBUXZCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTdCLGtCQUFhLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFDdEQsWUFBTyxHQUE2QixJQUFJLFlBQVksRUFBYyxDQUFDO1FBQ25FLFlBQU8sR0FBNkIsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUNwRSxXQUFNLEdBQTZCLElBQUksWUFBWSxFQUFjLENBQUM7SUFFbEUsQ0FBQztrQ0FoQ1IseUJBQXlCO0lBa0NsQyw0Q0FBUSxHQUFSLGNBQW1CLENBQUM7O0lBaENYO1FBQVIsS0FBSyxFQUFFOzt5REFBWTtJQUVYO1FBQVIsS0FBSyxFQUFFOzsyREFBYztJQUViO1FBQVIsS0FBSyxFQUFFOztnRUFBbUI7SUFFbEI7UUFBUixLQUFLLEVBQUU7OzREQUFlO0lBRWQ7UUFBUixLQUFLLEVBQUU7O29FQUFvQztJQUVuQztRQUFSLEtBQUssRUFBRTs7Z0VBQWlDO0lBQ2hDO1FBQVIsS0FBSyxFQUFFOztpRUFBa0M7SUFFakM7UUFBUixLQUFLLEVBQUU7OzJEQUFxQjtJQUVwQjtRQUFSLEtBQUssRUFBRTs7OERBQXdCO0lBRXZCO1FBQVIsS0FBSyxFQUFFOzsrREFBa0I7SUFFakI7UUFBUixLQUFLLEVBQUU7OzhEQUFpQjtJQUVoQjtRQUFSLEtBQUssRUFBRTs7OERBQWlCO0lBRWhCO1FBQVIsS0FBSyxFQUFFOzttRUFBK0I7SUFFN0I7UUFBVCxNQUFNLEVBQUU7a0NBQWdCLFlBQVk7b0VBQWtDO0lBQ3REO1FBQWhCLE1BQU0sQ0FBQyxPQUFPLENBQUM7a0NBQVUsWUFBWTs4REFBOEM7SUFDbkU7UUFBaEIsTUFBTSxDQUFDLE9BQU8sQ0FBQztrQ0FBVSxZQUFZOzhEQUE4QztJQUNwRTtRQUFmLE1BQU0sQ0FBQyxNQUFNLENBQUM7a0NBQVMsWUFBWTs2REFBOEM7SUE5QnpFLHlCQUF5QjtRQWpCckMsU0FBUyxDQUFDO1lBQ1AsUUFBUSxFQUFFLG1CQUFtQjtZQUM3QixRQUFRLEVBQUUsa0JBQWtCO1lBQzVCLDB4QkFBNEM7WUFFNUMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBd0MsT0FBQSwyQkFBeUIsRUFBekIsQ0FBeUIsQ0FBQztvQkFDMUYsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtZQUNELElBQUksRUFBRTtnQkFDRixPQUFPLEVBQUUsbUJBQW1CO2FBQy9CO1lBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O1NBQ2xELENBQUM7O09BQ1cseUJBQXlCLENBb0NyQztJQUFELGdDQUFDO0NBQUEsQUFwQ0QsSUFvQ0M7U0FwQ1kseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogYGdpcGktbm90aWZpY2F0aW9uYCxcbiAgICBleHBvcnRBczogJ2dpcGlOb3RpZmljYXRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpOiB0eXBlb2YgR0lQSU5vdGlmaWNhdGlvbkNvbXBvbmVudCA9PiBHSVBJTm90aWZpY2F0aW9uQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktbm90aWZpY2F0aW9uJyxcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEdJUElOb3RpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgaWQ6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGFyaWFMYWJlbDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICAgIEBJbnB1dCgpIGJ1dHRvblBhZGRpbmc6IG51bWJlciB8IHN0cmluZyA9IDQ7XG5cbiAgICBASW5wdXQoKSBpY29uV2lkdGg6IG51bWJlciB8IHN0cmluZyA9IDI0O1xuICAgIEBJbnB1dCgpIGljb25IZWlnaHQ6IG51bWJlciB8IHN0cmluZyA9IDI0O1xuXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gbnVsbDtcblxuICAgIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZyA9IG51bGw7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbG9hZGluZzogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuXG4gICAgQElucHV0KCkgbm90aWZpY2F0aW9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAT3V0cHV0KCkgb25TaG93T3ZlcmxheTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoJ2NsaWNrJykgb25DbGljazogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoJ2ZvY3VzJykgb25Gb2N1czogRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoJ2JsdXInKSBvbkJsdXI6IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TW91c2VFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHsgfVxuXG59XG4iXX0=