@bnsights/bbsf-controls 1.0.110 → 1.0.112

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +8 -0
  2. package/esm2022/lib/Shared/Components/app-base-component.mjs +7 -7
  3. package/esm2022/lib/Shared/Enums/StartView.mjs +1 -1
  4. package/esm2022/lib/Shared/Enums/map-enums.mjs +7 -0
  5. package/esm2022/lib/Shared/Models/AutocompleteOptions.mjs +9 -9
  6. package/esm2022/lib/Shared/Models/CalendarOptions.mjs +7 -7
  7. package/esm2022/lib/Shared/Models/CheckBoxOptions.mjs +3 -3
  8. package/esm2022/lib/Shared/Models/ConfirmationModalOptions.mjs +16 -16
  9. package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +5 -5
  10. package/esm2022/lib/Shared/Models/DatePickerOptions.mjs +24 -0
  11. package/esm2022/lib/Shared/Models/DropdownOptions.mjs +6 -6
  12. package/esm2022/lib/Shared/Models/EnglishArabicDTO.mjs +3 -3
  13. package/esm2022/lib/Shared/Models/FileUploadModel.mjs +1 -1
  14. package/esm2022/lib/Shared/Models/FileUploadOptions.mjs +3 -3
  15. package/esm2022/lib/Shared/Models/FormOptions.mjs +13 -13
  16. package/esm2022/lib/Shared/Models/HtmlEditorOptions.mjs +3 -3
  17. package/esm2022/lib/Shared/Models/ImageUploadOptions.mjs +4 -4
  18. package/esm2022/lib/Shared/Models/MapAutoCompleteOptions.mjs +5 -1
  19. package/esm2022/lib/Shared/Models/MapAutocompleteDTO.mjs +2 -2
  20. package/esm2022/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs +2 -2
  21. package/esm2022/lib/Shared/Models/MultiLingualTextAreaOptions.mjs +2 -2
  22. package/esm2022/lib/Shared/Models/{MultilingualTextBoxOptions.mjs → MultiLingualTextBoxOptions.mjs} +5 -5
  23. package/esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs +6 -6
  24. package/esm2022/lib/Shared/Models/MultipleFileUploadModel.mjs +5 -5
  25. package/esm2022/lib/Shared/Models/PagingOptions.mjs +22 -22
  26. package/esm2022/lib/Shared/Models/PhoneOptions.mjs +4 -4
  27. package/esm2022/lib/Shared/Models/ProfileImageUploadOptions.mjs +3 -3
  28. package/esm2022/lib/Shared/Models/ProfilePictureDTO.mjs +1 -1
  29. package/esm2022/lib/Shared/Models/RadioButtonItem.mjs +1 -1
  30. package/esm2022/lib/Shared/Models/RadioButtonOptions.mjs +1 -1
  31. package/esm2022/lib/Shared/Models/RangeNumber.mjs +1 -1
  32. package/esm2022/lib/Shared/Models/Recaptcha.mjs +2 -2
  33. package/esm2022/lib/Shared/Models/RecaptchaOptions.mjs +9 -9
  34. package/esm2022/lib/Shared/Models/RepeaterField.mjs +1 -1
  35. package/esm2022/lib/Shared/Models/RepeaterOptions.mjs +9 -9
  36. package/esm2022/lib/Shared/Models/TagsInputDTO.mjs +1 -1
  37. package/esm2022/lib/Shared/Models/TagsInputOptions.mjs +19 -19
  38. package/esm2022/lib/Shared/Models/TextAreaOptions.mjs +1 -1
  39. package/esm2022/lib/Shared/Models/TextBoxOptions.mjs +9 -9
  40. package/esm2022/lib/Shared/Models/{ToggleslideOptions.mjs → ToggleSlideOptions.mjs} +2 -2
  41. package/esm2022/lib/Shared/Models/filter-options.mjs +5 -5
  42. package/esm2022/lib/Shared/Models/page-header-options.mjs +32 -32
  43. package/esm2022/lib/Shared/services/ControlUtility.mjs +37 -37
  44. package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +9 -9
  45. package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +81 -81
  46. package/esm2022/lib/controls/Calendar/Calendar.component.mjs +40 -40
  47. package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +35 -35
  48. package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +30 -30
  49. package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +90 -97
  50. package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +74 -74
  51. package/esm2022/lib/controls/FileUplaod/FileUplaod.component.mjs +155 -155
  52. package/esm2022/lib/controls/Form/Form.component.mjs +24 -24
  53. package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +55 -55
  54. package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +113 -113
  55. package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +322 -246
  56. package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +163 -163
  57. package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +193 -193
  58. package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +210 -210
  59. package/esm2022/lib/controls/Paging/Paging.component.mjs +85 -85
  60. package/esm2022/lib/controls/Phone/Phone.component.mjs +42 -42
  61. package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +112 -112
  62. package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +38 -38
  63. package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +46 -46
  64. package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +12 -12
  65. package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +556 -556
  66. package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +15 -15
  67. package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +100 -100
  68. package/esm2022/lib/controls/TextArea/TextArea.component.mjs +71 -71
  69. package/esm2022/lib/controls/TextBox/TextBox.component.mjs +116 -116
  70. package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +90 -0
  71. package/esm2022/lib/controls/bbsf-controls.module.mjs +13 -24
  72. package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +4 -4
  73. package/esm2022/public-api.mjs +8 -10
  74. package/fesm2022/bnsights-bbsf-controls.mjs +3060 -2989
  75. package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
  76. package/lib/Shared/Enums/map-enums.d.ts +5 -0
  77. package/lib/Shared/Models/AutocompleteOptions.d.ts +20 -20
  78. package/lib/Shared/Models/CalendarOptions.d.ts +10 -10
  79. package/lib/Shared/Models/CheckBoxOptions.d.ts +2 -2
  80. package/lib/Shared/Models/ConfirmationModalOptions.d.ts +14 -14
  81. package/lib/Shared/Models/ControlOptionsBase.d.ts +17 -17
  82. package/lib/Shared/Models/{datePickerOptions.d.ts → DatePickerOptions.d.ts} +12 -13
  83. package/lib/Shared/Models/DropdownOptions.d.ts +15 -15
  84. package/lib/Shared/Models/EnglishArabicDTO.d.ts +2 -2
  85. package/lib/Shared/Models/FileUploadModel.d.ts +1 -1
  86. package/lib/Shared/Models/FileUploadOptions.d.ts +8 -8
  87. package/lib/Shared/Models/FormOptions.d.ts +11 -11
  88. package/lib/Shared/Models/HtmlEditorOptions.d.ts +11 -11
  89. package/lib/Shared/Models/ImageUploadOptions.d.ts +9 -9
  90. package/lib/Shared/Models/MapAutoCompleteOptions.d.ts +2 -1
  91. package/lib/Shared/Models/MapAutocompleteDTO.d.ts +5 -5
  92. package/lib/Shared/Models/MultiLingualHtmlEditorOptions.d.ts +7 -7
  93. package/lib/Shared/Models/MultiLingualTextAreaOptions.d.ts +5 -5
  94. package/lib/Shared/Models/{MultilingualTextBoxOptions.d.ts → MultiLingualTextBoxOptions.d.ts} +6 -6
  95. package/lib/Shared/Models/MultilingualControlOptionsBase.d.ts +34 -34
  96. package/lib/Shared/Models/MultipleFileUploadModel.d.ts +4 -4
  97. package/lib/Shared/Models/PagingOptions.d.ts +25 -25
  98. package/lib/Shared/Models/PhoneOptions.d.ts +9 -9
  99. package/lib/Shared/Models/ProfileImageUploadOptions.d.ts +10 -10
  100. package/lib/Shared/Models/ProfilePictureDTO.d.ts +9 -9
  101. package/lib/Shared/Models/RadioButtonItem.d.ts +2 -2
  102. package/lib/Shared/Models/RadioButtonOptions.d.ts +2 -2
  103. package/lib/Shared/Models/RangeNumber.d.ts +2 -2
  104. package/lib/Shared/Models/Recaptcha.d.ts +4 -4
  105. package/lib/Shared/Models/RecaptchaOptions.d.ts +10 -10
  106. package/lib/Shared/Models/RepeaterField.d.ts +4 -4
  107. package/lib/Shared/Models/RepeaterOptions.d.ts +16 -16
  108. package/lib/Shared/Models/TagsInputDTO.d.ts +4 -4
  109. package/lib/Shared/Models/TagsInputOptions.d.ts +29 -29
  110. package/lib/Shared/Models/TextAreaOptions.d.ts +11 -11
  111. package/lib/Shared/Models/TextBoxOptions.d.ts +18 -18
  112. package/lib/Shared/Models/{ToggleslideOptions.d.ts → ToggleSlideOptions.d.ts} +3 -3
  113. package/lib/Shared/Models/filter-options.d.ts +4 -4
  114. package/lib/Shared/Models/page-header-options.d.ts +43 -43
  115. package/lib/Shared/services/ControlUtility.d.ts +8 -8
  116. package/lib/Shared/services/GlobalSettings.service.d.ts +8 -8
  117. package/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.d.ts +11 -11
  118. package/lib/controls/Calendar/Calendar.component.d.ts +7 -7
  119. package/lib/controls/CheckBox/CheckBox.component.d.ts +10 -10
  120. package/lib/controls/DateTimePicker/DateTimePicker.component.d.ts +20 -24
  121. package/lib/controls/DropdownList/DropdownList.component.d.ts +13 -13
  122. package/lib/controls/FileUplaod/FileUplaod.component.d.ts +11 -11
  123. package/lib/controls/Form/Form.component.d.ts +2 -2
  124. package/lib/controls/HtmlEditor/HtmlEditor.component.d.ts +12 -12
  125. package/lib/controls/ImageUpload/ImageUpload.component.d.ts +16 -16
  126. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +31 -13
  127. package/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.d.ts +25 -25
  128. package/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.d.ts +24 -24
  129. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +32 -32
  130. package/lib/controls/Paging/Paging.component.d.ts +9 -9
  131. package/lib/controls/Phone/Phone.component.d.ts +12 -12
  132. package/lib/controls/ProfileImageUploader/ProfileImageUploader.component.d.ts +18 -18
  133. package/lib/controls/RadioButton/RadioButton.component.d.ts +11 -11
  134. package/lib/controls/Recaptcha/Recaptcha.component.d.ts +10 -10
  135. package/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.d.ts +5 -5
  136. package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +1 -1
  137. package/lib/controls/TagsInput/TagsInput.component.d.ts +17 -17
  138. package/lib/controls/TextArea/TextArea.component.d.ts +14 -14
  139. package/lib/controls/TextBox/TextBox.component.d.ts +25 -25
  140. package/lib/controls/Toggleslide/{toggleslide.component.d.ts → Toggleslide.component.d.ts} +10 -10
  141. package/lib/controls/bbsf-controls.module.d.ts +4 -2
  142. package/package.json +7 -2
  143. package/public-api.d.ts +5 -4
  144. package/src/lib/assets/Style-rtl.scss +46 -28
  145. package/src/lib/assets/images/marker-pin.svg +4 -0
  146. package/src/lib/assets/sass/base.scss +73 -21
  147. package/esm2022/lib/Shared/Models/datePickerOptions.mjs +0 -23
  148. package/esm2022/lib/controls/Toggleslide/toggleslide.component.mjs +0 -90
@@ -0,0 +1,90 @@
1
+ import { Component, Input, Optional, EventEmitter, Output } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../Shared/services/ControlUtility";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@bnsights/bbsf-utilities";
7
+ import * as i4 from "../../Shared/services/GlobalSettings.service";
8
+ import * as i5 from "@angular/common";
9
+ import * as i6 from "@angular/material/slide-toggle";
10
+ import * as i7 from "@angular/cdk/bidi";
11
+ import * as i8 from "ngx-intl-tel-input";
12
+ export class ToggleslideComponent {
13
+ static { this.controlContainerstatic = null; }
14
+ // tslint:disable-next-line: max-line-length
15
+ constructor(controlUtility, controlContainer, toggleslideControlHost, textControlHost, utilityService, controlValidationService, globalSettings) {
16
+ this.controlUtility = controlUtility;
17
+ this.controlContainer = controlContainer;
18
+ this.toggleslideControlHost = toggleslideControlHost;
19
+ this.textControlHost = textControlHost;
20
+ this.utilityService = utilityService;
21
+ this.controlValidationService = controlValidationService;
22
+ this.globalSettings = globalSettings;
23
+ this.onChange = new EventEmitter();
24
+ this.slideValue = false;
25
+ this.markAllAsTouched = false;
26
+ ToggleslideComponent.controlContainerstatic = this.controlContainer;
27
+ }
28
+ ngOnInit() {
29
+ if (this.options.forceDirection)
30
+ this.textDir = this.options.forceDirection == 2 ? 'rtl' : 'ltr';
31
+ else
32
+ this.textDir = localStorage.getItem('language') == 'ar' ? 'rtl' : 'ltr';
33
+ this.group.addControl(this.options.name, new FormControl(''));
34
+ this.toggleslideFormControl = this.group.controls[this.options.name]; // new FormControl('',validationRules);
35
+ let validationRules = [];
36
+ let validationRulesasync = [];
37
+ this.slideValue = this.options.value == undefined ? false : this.options.value;
38
+ if (!this.options.viewType)
39
+ this.options.viewType = this.globalSettings.viewType;
40
+ if (this.options.isDisabled || this.options.isReadonly) {
41
+ this.toggleslideFormControl.disable();
42
+ }
43
+ if (this.options.labelKey != null && this.options.labelKey != "")
44
+ this.options.labelValue = this.utilityService.getResourceValue(this.options.labelKey);
45
+ }
46
+ ngAfterViewInit() {
47
+ if (this.options.attributeList != null) {
48
+ var element = document.getElementById(this.options.name);
49
+ for (let index = 0; index < this.options.attributeList.length; index++) {
50
+ element.setAttribute(this.options.attributeList[index].Key, this.options.attributeList[index].value);
51
+ }
52
+ }
53
+ }
54
+ resetError() {
55
+ this.controlValidationService.removeGlobalError();
56
+ }
57
+ showGlobalError() {
58
+ this.controlUtility.showGlobalError();
59
+ }
60
+ getErrorValidation(errorList) {
61
+ if (this.markAllAsTouched && this.group.invalid) {
62
+ this.showGlobalError();
63
+ this.markAllAsTouched = false;
64
+ }
65
+ return this.controlUtility.getErrorValidationMassage(errorList, this.group, this.options);
66
+ }
67
+ changeValueToggle() {
68
+ this.onChange.emit(this.slideValue);
69
+ this.options.value = this.slideValue;
70
+ this.toggleslideFormControl.setValue(this.slideValue);
71
+ if (this.options.patchFunction && this.options.patchPath && this.toggleslideFormControl.valid) {
72
+ this.controlUtility.patchControlValue(this.slideValue, this.options.patchFunction, this.options.patchPath);
73
+ }
74
+ }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ToggleslideComponent, deps: [{ token: i1.ControlUtility }, { token: i2.ControlContainer, optional: true }, { token: i2.FormGroupDirective }, { token: i2.FormGroupDirective }, { token: i3.UtilityService }, { token: i3.ControlValidationService }, { token: i4.GlobalSettings }], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: { group: "group", options: "options" }, outputs: { onChange: "onChange" }, ngImport: i0, template: "<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n </label>\r\n <div *ngIf=\"!options.isReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"slideValue\" [dir]=\"textDir\" [cssClass]=\"(options.viewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.name}}\" disableRipple=\"true\" [disabled]=\"options.isDisabled\"\r\n (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.value\">{{utilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.value\">{{utilityService.getResourceValue(\"No\")}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n </div>\r\n</div>", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "directive", type: i8.NativeElementInjectorDirective, selector: "[ngModel], [formControl], [formControlName]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ToggleslideComponent, decorators: [{
79
+ type: Component,
80
+ args: [{ selector: 'BBSF-Toggleslide', template: "<div class=\"form-group bbsf-control bbsf-toggleslide\" [formGroup]=\"group\">\r\n <div [ngClass]=\"(options.viewType==1)?'bbsf-vertical':'bbsf-horizontal'\">\r\n <!--label-->\r\n <label [hidden]=\"options.hideLabel\" class=\"bbsf-label {{options.labelExtraClasses}}\">\r\n {{options.labelValue}}\r\n </label>\r\n <div *ngIf=\"!options.isReadonly\" class=\"bbsf-input-container\">\r\n <!--input-->\r\n <mat-slide-toggle [(ngModel)]=\"slideValue\" [dir]=\"textDir\" [cssClass]=\"(options.viewType==1)?'':'col-md-9'\"\r\n formControlName=\"{{options.name}}\" disableRipple=\"true\" [disabled]=\"options.isDisabled\"\r\n (change)=\"changeValueToggle()\">\r\n </mat-slide-toggle>\r\n </div>\r\n <!-- readonly -->\r\n <div *ngIf=\"options.isReadonly\">\r\n <span class=\"readonly-view\" *ngIf=\"options.value\">{{utilityService.getResourceValue(\"Yes\")}}</span>\r\n <span class=\"readonly-view\" *ngIf=\"!options.value\">{{utilityService.getResourceValue(\"No\")}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtext-container\">\r\n <!-- LabelDescription-->\r\n <div class=\"bbsf-control-desc\" *ngIf=\"options.labelDescription!=null\">{{options.labelDescription}}</div>\r\n </div>\r\n</div>" }]
81
+ }], ctorParameters: () => [{ type: i1.ControlUtility }, { type: i2.ControlContainer, decorators: [{
82
+ type: Optional
83
+ }] }, { type: i2.FormGroupDirective }, { type: i2.FormGroupDirective }, { type: i3.UtilityService }, { type: i3.ControlValidationService }, { type: i4.GlobalSettings }], propDecorators: { group: [{
84
+ type: Input
85
+ }], options: [{
86
+ type: Input
87
+ }], onChange: [{
88
+ type: Output
89
+ }] } });
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVG9nZ2xlc2xpZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmJzZi1jb250cm9scy9zcmMvbGliL2NvbnRyb2xzL1RvZ2dsZXNsaWRlL1RvZ2dsZXNsaWRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9Ub2dnbGVzbGlkZS9Ub2dnbGVzbGlkZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQW9FLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7O0FBVy9HLE1BQU0sT0FBTyxvQkFBb0I7YUFHeEIsMkJBQXNCLEdBQUcsSUFBSSxBQUFQLENBQVE7SUFDckMsNENBQTRDO0lBQzVDLFlBQW9CLGNBQThCLEVBQXNCLGdCQUFrQyxFQUNqRyxzQkFBMEMsRUFBUyxlQUFtQyxFQUN0RixjQUE4QixFQUFVLHdCQUFrRCxFQUN6RixjQUE4QjtRQUhwQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBc0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqRywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQW9CO1FBQVMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ3RGLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUFVLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDekYsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBSzlCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXhDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDNUIscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBUGhDLG9CQUFvQixDQUFD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RyxLQUFLLENBQUE7U0FDOUI7UUFFRCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFHRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQTtRQUNwQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUNyRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUU7WUFDN0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDM0c7SUFDSCxDQUFDOzhHQTdFVSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwySUNaakMsc3ZDQXVCTTs7MkZEWE8sb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLGtCQUFrQjs7MEJBUXlCLFFBQVE7NE1BTXBELEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3B0aW9uYWwsIEV2ZW50RW1pdHRlciwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgQ29udHJvbENvbnRhaW5lciwgRm9ybUdyb3VwRGlyZWN0aXZlLCBBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBDb250cm9sVXRpbGl0eSB9IGZyb20gJy4uLy4uL1NoYXJlZC9zZXJ2aWNlcy9Db250cm9sVXRpbGl0eSc7XHJcbmltcG9ydCB7IFRvZ2dsZVNsaWRlT3B0aW9ucyB9IGZyb20gJy4uLy4uL1NoYXJlZC9Nb2RlbHMvVG9nZ2xlU2xpZGVPcHRpb25zJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLCBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vU2hhcmVkL3NlcnZpY2VzL0dsb2JhbFNldHRpbmdzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ0JCU0YtVG9nZ2xlc2xpZGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9Ub2dnbGVzbGlkZS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvZ2dsZXNsaWRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcblxyXG4gIHN0YXRpYyBjb250cm9sQ29udGFpbmVyc3RhdGljID0gbnVsbDtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IG1heC1saW5lLWxlbmd0aFxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29udHJvbFV0aWxpdHk6IENvbnRyb2xVdGlsaXR5LCBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgICBwdWJsaWMgdG9nZ2xlc2xpZGVDb250cm9sSG9zdDogRm9ybUdyb3VwRGlyZWN0aXZlLCBwdWJsaWMgdGV4dENvbnRyb2xIb3N0OiBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlLCBwcml2YXRlIGNvbnRyb2xWYWxpZGF0aW9uU2VydmljZTogQ29udHJvbFZhbGlkYXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBnbG9iYWxTZXR0aW5nczogR2xvYmFsU2V0dGluZ3MpIHtcclxuICAgIFRvZ2dsZXNsaWRlQ29tcG9uZW50LmNvbnRyb2xDb250YWluZXJzdGF0aWMgPSB0aGlzLmNvbnRyb2xDb250YWluZXI7XHJcbiAgfVxyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogVG9nZ2xlU2xpZGVPcHRpb25zO1xyXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICB0b2dnbGVzbGlkZUZvcm1Db250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgc2xpZGVWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG1hcmtBbGxBc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0ZXh0RGlyO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuZm9yY2VEaXJlY3Rpb24pXHJcbiAgICAgIHRoaXMudGV4dERpciA9IHRoaXMub3B0aW9ucy5mb3JjZURpcmVjdGlvbiA9PSAyID8gJ3J0bCcgOiAnbHRyJztcclxuICAgIGVsc2VcclxuICAgICAgdGhpcy50ZXh0RGlyID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2xhbmd1YWdlJykgPT0gJ2FyJyA/ICdydGwnIDogJ2x0cic7XHJcbiAgICB0aGlzLmdyb3VwLmFkZENvbnRyb2wodGhpcy5vcHRpb25zLm5hbWUsIG5ldyBGb3JtQ29udHJvbCgnJykpO1xyXG4gICAgdGhpcy50b2dnbGVzbGlkZUZvcm1Db250cm9sID0gdGhpcy5ncm91cC5jb250cm9sc1t0aGlzLm9wdGlvbnMubmFtZV07IC8vICBuZXcgRm9ybUNvbnRyb2woJycsdmFsaWRhdGlvblJ1bGVzKTtcclxuICAgIGxldCB2YWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuICAgIGxldCB2YWxpZGF0aW9uUnVsZXNhc3luYyA9IFtdO1xyXG4gICAgdGhpcy5zbGlkZVZhbHVlID0gdGhpcy5vcHRpb25zLnZhbHVlID09IHVuZGVmaW5lZCA/IGZhbHNlIDogdGhpcy5vcHRpb25zLnZhbHVlO1xyXG5cclxuICAgIGlmICghdGhpcy5vcHRpb25zLnZpZXdUeXBlKVxyXG4gICAgICB0aGlzLm9wdGlvbnMudmlld1R5cGUgPSB0aGlzLmdsb2JhbFNldHRpbmdzLnZpZXdUeXBlO1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMuaXNEaXNhYmxlZCB8fCB0aGlzLm9wdGlvbnMuaXNSZWFkb25seSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZXNsaWRlRm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5sYWJlbEtleSAhPSBudWxsICYmIHRoaXMub3B0aW9ucy5sYWJlbEtleSAhPSBcIlwiKVxyXG4gICAgICB0aGlzLm9wdGlvbnMubGFiZWxWYWx1ZSA9IHRoaXMudXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZSh0aGlzLm9wdGlvbnMubGFiZWxLZXkpO1xyXG4gIH1cclxuXHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuYXR0cmlidXRlTGlzdCAhPSBudWxsKSB7XHJcbiAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5vcHRpb25zLm5hbWUpO1xyXG4gICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdGhpcy5vcHRpb25zLmF0dHJpYnV0ZUxpc3QubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5vcHRpb25zLmF0dHJpYnV0ZUxpc3RbaW5kZXhdLktleSwgdGhpcy5vcHRpb25zLmF0dHJpYnV0ZUxpc3RbaW5kZXhdLnZhbHVlKTtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICByZXNldEVycm9yKCkge1xyXG4gICAgdGhpcy5jb250cm9sVmFsaWRhdGlvblNlcnZpY2UucmVtb3ZlR2xvYmFsRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHNob3dHbG9iYWxFcnJvcigpIHtcclxuICAgIHRoaXMuY29udHJvbFV0aWxpdHkuc2hvd0dsb2JhbEVycm9yKClcclxuICB9XHJcblxyXG4gIGdldEVycm9yVmFsaWRhdGlvbihlcnJvckxpc3Q6IGFueVtdKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLm1hcmtBbGxBc1RvdWNoZWQgJiYgdGhpcy5ncm91cC5pbnZhbGlkKSB7XHJcbiAgICAgIHRoaXMuc2hvd0dsb2JhbEVycm9yKClcclxuICAgICAgdGhpcy5tYXJrQWxsQXNUb3VjaGVkID0gZmFsc2VcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sVXRpbGl0eS5nZXRFcnJvclZhbGlkYXRpb25NYXNzYWdlKGVycm9yTGlzdCwgdGhpcy5ncm91cCwgdGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG5cclxuICBjaGFuZ2VWYWx1ZVRvZ2dsZSgpIHtcclxuICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLnNsaWRlVmFsdWUpXHJcbiAgICB0aGlzLm9wdGlvbnMudmFsdWUgPSB0aGlzLnNsaWRlVmFsdWVcclxuICAgIHRoaXMudG9nZ2xlc2xpZGVGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLnNsaWRlVmFsdWUpXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLnBhdGNoRnVuY3Rpb24gJiYgdGhpcy5vcHRpb25zLnBhdGNoUGF0aCAmJiB0aGlzLnRvZ2dsZXNsaWRlRm9ybUNvbnRyb2wudmFsaWQpIHtcclxuICAgICAgdGhpcy5jb250cm9sVXRpbGl0eS5wYXRjaENvbnRyb2xWYWx1ZSh0aGlzLnNsaWRlVmFsdWUsIHRoaXMub3B0aW9ucy5wYXRjaEZ1bmN0aW9uLCB0aGlzLm9wdGlvbnMucGF0Y2hQYXRoKVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBiYnNmLWNvbnRyb2wgYmJzZi10b2dnbGVzbGlkZVwiIFtmb3JtR3JvdXBdPVwiZ3JvdXBcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cIihvcHRpb25zLnZpZXdUeXBlPT0xKT8nYmJzZi12ZXJ0aWNhbCc6J2Jic2YtaG9yaXpvbnRhbCdcIj5cclxuICAgIDwhLS1sYWJlbC0tPlxyXG4gICAgPGxhYmVsIFtoaWRkZW5dPVwib3B0aW9ucy5oaWRlTGFiZWxcIiBjbGFzcz1cImJic2YtbGFiZWwge3tvcHRpb25zLmxhYmVsRXh0cmFDbGFzc2VzfX1cIj5cclxuICAgICAge3tvcHRpb25zLmxhYmVsVmFsdWV9fVxyXG4gICAgPC9sYWJlbD5cclxuICAgIDxkaXYgKm5nSWY9XCIhb3B0aW9ucy5pc1JlYWRvbmx5XCIgY2xhc3M9XCJiYnNmLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgICA8IS0taW5wdXQtLT5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGUgWyhuZ01vZGVsKV09XCJzbGlkZVZhbHVlXCIgW2Rpcl09XCJ0ZXh0RGlyXCIgW2Nzc0NsYXNzXT1cIihvcHRpb25zLnZpZXdUeXBlPT0xKT8nJzonY29sLW1kLTknXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ7e29wdGlvbnMubmFtZX19XCIgZGlzYWJsZVJpcHBsZT1cInRydWVcIiBbZGlzYWJsZWRdPVwib3B0aW9ucy5pc0Rpc2FibGVkXCJcclxuICAgICAgICAoY2hhbmdlKT1cImNoYW5nZVZhbHVlVG9nZ2xlKClcIj5cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8IS0tIHJlYWRvbmx5IC0tPlxyXG4gICAgPGRpdiAqbmdJZj1cIm9wdGlvbnMuaXNSZWFkb25seVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInJlYWRvbmx5LXZpZXdcIiAqbmdJZj1cIm9wdGlvbnMudmFsdWVcIj57e3V0aWxpdHlTZXJ2aWNlLmdldFJlc291cmNlVmFsdWUoXCJZZXNcIil9fTwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJyZWFkb25seS12aWV3XCIgKm5nSWY9XCIhb3B0aW9ucy52YWx1ZVwiPnt7dXRpbGl0eVNlcnZpY2UuZ2V0UmVzb3VyY2VWYWx1ZShcIk5vXCIpfX08L3NwYW4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwic3VidGV4dC1jb250YWluZXJcIj5cclxuICAgIDwhLS0gTGFiZWxEZXNjcmlwdGlvbi0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImJic2YtY29udHJvbC1kZXNjXCIgKm5nSWY9XCJvcHRpb25zLmxhYmVsRGVzY3JpcHRpb24hPW51bGxcIj57e29wdGlvbnMubGFiZWxEZXNjcmlwdGlvbn19PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -12,10 +12,6 @@ import { NgxIntlTelInputModule } from 'ngx-intl-tel-input';
12
12
  import { NgxMaskDirective, NgxMaskPipe, provideNgxMask } from 'ngx-mask';
13
13
  import { NgxSummernoteModule } from 'ngx-summernote';
14
14
  import { ToastrModule } from 'ngx-toastr';
15
- // import { AgmCoreModule } from '@amin-karimi/agm-core';
16
- // import {
17
- // MatGoogleMapsAutocompleteModule
18
- // } from '@angular-material-extensions/google-maps-autocomplete';
19
15
  import { OverlayModule } from '@angular/cdk/overlay';
20
16
  import { CommonModule, DatePipe } from '@angular/common';
21
17
  import { HttpClientModule } from '@angular/common/http';
@@ -66,8 +62,10 @@ import { RepeaterComponent } from './Repeater/repeater/repeater.component';
66
62
  import { TagsInputComponent } from './TagsInput/TagsInput.component';
67
63
  import { TextAreaComponent } from './TextArea/TextArea.component';
68
64
  import { TextboxComponent } from './TextBox/TextBox.component';
69
- import { ToggleslideComponent } from './Toggleslide/toggleslide.component';
65
+ import { ToggleslideComponent } from './Toggleslide/Toggleslide.component';
70
66
  import { BBSFUtilitiesModule } from '@bnsights/bbsf-utilities';
67
+ import { ScriptLoaderModule } from 'ngx-script-loader';
68
+ import { GoogleMapsModule } from '@angular/google-maps';
71
69
  import * as i0 from "@angular/core";
72
70
  import * as i1 from "ng-block-ui";
73
71
  import * as i2 from "ngx-toastr";
@@ -113,11 +111,6 @@ export class BBSFControlsModule {
113
111
  PageHeaderComponentComponent], imports: [CommonModule,
114
112
  InfiniteScrollModule,
115
113
  NgSelectModule,
116
- // AgmCoreModule.forRoot({
117
- // apiKey: environment.BBSF_GoogleMapKey,
118
- // libraries: ['places'],
119
- // }),
120
- // MatGoogleMapsAutocompleteModule,
121
114
  FullCalendarModule,
122
115
  AngularCropperjsModule,
123
116
  NgbModule,
@@ -134,7 +127,9 @@ export class BBSFControlsModule {
134
127
  RouterModule, i2.ToastrModule, HttpClientModule,
135
128
  OverlayModule, i3.StoreDevtoolsModule, FormsModule, i4.BsDatepickerModule, i5.TypeaheadModule, AngularEditorModule,
136
129
  AutocompleteLibModule,
137
- BBSFUtilitiesModule, i6.InlineSVGModule, SweetAlert2Module], exports: [DateInputComponent,
130
+ BBSFUtilitiesModule, i6.InlineSVGModule, SweetAlert2Module,
131
+ ScriptLoaderModule,
132
+ GoogleMapsModule], exports: [DateInputComponent,
138
133
  FileUploadComponent,
139
134
  MultiLingualTextBoxComponent,
140
135
  TextboxComponent,
@@ -184,11 +179,6 @@ export class BBSFControlsModule {
184
179
  ], imports: [CommonModule,
185
180
  InfiniteScrollModule,
186
181
  NgSelectModule,
187
- // AgmCoreModule.forRoot({
188
- // apiKey: environment.BBSF_GoogleMapKey,
189
- // libraries: ['places'],
190
- // }),
191
- // MatGoogleMapsAutocompleteModule,
192
182
  FullCalendarModule,
193
183
  AngularCropperjsModule,
194
184
  NgbModule,
@@ -214,7 +204,9 @@ export class BBSFControlsModule {
214
204
  AutocompleteLibModule,
215
205
  BBSFUtilitiesModule,
216
206
  InlineSVGModule.forRoot(),
217
- SweetAlert2Module] }); }
207
+ SweetAlert2Module,
208
+ ScriptLoaderModule,
209
+ GoogleMapsModule] }); }
218
210
  }
219
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: BBSFControlsModule, decorators: [{
220
212
  type: NgModule,
@@ -258,11 +250,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
258
250
  CommonModule,
259
251
  InfiniteScrollModule,
260
252
  NgSelectModule,
261
- // AgmCoreModule.forRoot({
262
- // apiKey: environment.BBSF_GoogleMapKey,
263
- // libraries: ['places'],
264
- // }),
265
- // MatGoogleMapsAutocompleteModule,
266
253
  FullCalendarModule,
267
254
  AngularCropperjsModule,
268
255
  NgbModule,
@@ -290,7 +277,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
290
277
  AutocompleteLibModule,
291
278
  BBSFUtilitiesModule,
292
279
  InlineSVGModule.forRoot(),
293
- SweetAlert2Module
280
+ SweetAlert2Module,
281
+ ScriptLoaderModule,
282
+ GoogleMapsModule
294
283
  ],
295
284
  providers: [
296
285
  ErrorMassageValidation,
@@ -347,4 +336,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
347
336
  ]
348
337
  }]
349
338
  }] });
350
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1jb250cm9scy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvYmJzZi1jb250cm9scy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDLHlEQUF5RDtBQUN6RCxXQUFXO0FBQ1gsb0NBQW9DO0FBQ3BDLGtFQUFrRTtBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWpFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDaEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDN0YsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDM0YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDN0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCwrQkFBK0IsRUFDaEMsTUFBTSwyREFBMkQsQ0FBQztBQUNuRSxPQUFPLEVBQ0wsNkJBQTZCLEVBQzlCLE1BQU0sdURBQXVELENBQUM7QUFDL0QsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDbkcsT0FBTyxFQUNMLDRCQUE0QixFQUM3QixNQUFNLHlEQUF5RCxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUNMLDZCQUE2QixFQUM5QixNQUFNLHVEQUF1RCxDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCw2QkFBNkIsRUFDOUIsTUFBTSxvRUFBb0UsQ0FBQztBQUM1RSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzNCLE1BQU0sOERBQThELENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBRS9ELE1BQU0sQ0FBQyxJQUFJLE9BQW9ELENBQUM7QUFrSWhFLE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQTlIM0Isa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQiw0QkFBNEI7WUFDNUIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQiw2QkFBNkI7WUFDN0IsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2Qsb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQiwrQkFBK0I7WUFDL0Isc0JBQXNCO1lBQ3RCLDZCQUE2QjtZQUM3QixpQkFBaUI7WUFDakIsd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLDBCQUEwQjtZQUMxQixpQkFBaUI7WUFDakIsNkJBQTZCO1lBQzdCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsc0JBQXNCO1lBQ3RCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQiw0QkFBNEIsYUFHNUIsWUFBWTtZQUNaLG9CQUFvQjtZQUNwQixjQUFjO1lBQ2QsMEJBQTBCO1lBQzFCLDJDQUEyQztZQUMzQywyQkFBMkI7WUFDM0IsTUFBTTtZQUNOLG1DQUFtQztZQUNuQyxrQkFBa0I7WUFDbEIsc0JBQXNCO1lBQ3RCLFNBQVM7WUFDVCxpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLG9CQUFvQjtZQUNwQixxQkFBcUI7WUFDckIsaUJBQWlCO1lBQ2pCLHVCQUF1QjtZQUN2QixZQUFZLG9CQUVaLG1CQUFtQjtZQUNuQixZQUFZLG1CQUVaLGdCQUFnQjtZQUNoQixhQUFhLDBCQUViLFdBQVcsNkNBR1gsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixtQkFBbUIsc0JBRW5CLGlCQUFpQixhQXFCakIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQiw0QkFBNEI7WUFDNUIsZ0JBQWdCO1lBQ2hCLGlCQUFpQjtZQUNqQiw2QkFBNkI7WUFDN0IsaUJBQWlCO1lBQ2pCLHFCQUFxQjtZQUNyQixjQUFjO1lBQ2Qsb0JBQW9CO1lBQ3BCLG1CQUFtQjtZQUNuQiwrQkFBK0I7WUFDL0Isc0JBQXNCO1lBQ3RCLDZCQUE2QjtZQUM3QixpQkFBaUI7WUFDakIsd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLHFCQUFxQjtZQUNyQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLGVBQWU7WUFDZiwwQkFBMEI7WUFDMUIsaUJBQWlCO1lBQ2pCLDZCQUE2QjtZQUM3Qix1QkFBdUI7WUFDdkIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0QixnQkFBZ0I7WUFDaEIsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQiw0QkFBNEI7K0dBR25CLGtCQUFrQixhQXREbEI7WUFDVCxzQkFBc0I7WUFDdEIsY0FBYztZQUNkLDRCQUE0QjtZQUM1QixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLFFBQVE7WUFDUixjQUFjO1lBQ2QsUUFBUTtZQUNSLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osc0JBQXNCO1lBQ3RCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxjQUFjLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDdEUsY0FBYyxFQUFFO1NBQ2pCLFlBbkRDLFlBQVk7WUFDWixvQkFBb0I7WUFDcEIsY0FBYztZQUNkLDBCQUEwQjtZQUMxQiwyQ0FBMkM7WUFDM0MsMkJBQTJCO1lBQzNCLE1BQU07WUFDTixtQ0FBbUM7WUFDbkMsa0JBQWtCO1lBQ2xCLHNCQUFzQjtZQUN0QixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLGdCQUFnQjtZQUdoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLHFCQUFxQjtZQUNyQixpQkFBaUI7WUFDakIsdUJBQXVCO1lBQ3ZCLFlBQVk7WUFDWixhQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLG1CQUFtQjtZQUNuQixZQUFZO1lBQ1osWUFBWSxDQUFDLE9BQU8sRUFBRTtZQUN0QixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxFQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUMsQ0FBQztZQUNyRCxXQUFXO1lBQ1gsa0JBQWtCLENBQUMsT0FBTyxFQUFFO1lBQzVCLGVBQWUsQ0FBQyxPQUFPLEVBQUU7WUFDekIsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixtQkFBbUI7WUFDbkIsZUFBZSxDQUFDLE9BQU8sRUFBRTtZQUN6QixpQkFBaUI7OzJGQXdEUixrQkFBa0I7a0JBaEk5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixrQkFBa0I7d0JBQ2xCLG1CQUFtQjt3QkFDbkIsNEJBQTRCO3dCQUM1QixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsNkJBQTZCO3dCQUM3QixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsK0JBQStCO3dCQUMvQixzQkFBc0I7d0JBQ3RCLDZCQUE2Qjt3QkFDN0IsaUJBQWlCO3dCQUNqQix3QkFBd0I7d0JBQ3hCLDRCQUE0Qjt3QkFDNUIsa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3dCQUNqQiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGNBQWM7d0JBQ2QsMEJBQTBCO3dCQUMxQiwyQ0FBMkM7d0JBQzNDLDJCQUEyQjt3QkFDM0IsTUFBTTt3QkFDTixtQ0FBbUM7d0JBQ25DLGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QixTQUFTO3dCQUNULGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLFlBQVk7d0JBQ1osYUFBYSxDQUFDLE9BQU8sRUFBRTt3QkFDdkIsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLFlBQVksQ0FBQyxPQUFPLEVBQUU7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixtQkFBbUIsQ0FBQyxVQUFVLENBQUMsRUFBQyxhQUFhLEVBQUUsSUFBSSxFQUFDLENBQUM7d0JBQ3JELFdBQVc7d0JBQ1gsa0JBQWtCLENBQUMsT0FBTyxFQUFFO3dCQUM1QixlQUFlLENBQUMsT0FBTyxFQUFFO3dCQUN6QixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsbUJBQW1CO3dCQUNuQixlQUFlLENBQUMsT0FBTyxFQUFFO3dCQUN6QixpQkFBaUI7cUJBQ2xCO29CQUNELFNBQVMsRUFBRTt3QkFDVCxzQkFBc0I7d0JBQ3RCLGNBQWM7d0JBQ2QsNEJBQTRCO3dCQUM1QixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsUUFBUTt3QkFDUixjQUFjO3dCQUNkLFFBQVE7d0JBQ1IsZ0JBQWdCO3dCQUNoQixZQUFZO3dCQUNaLHNCQUFzQjt3QkFDdEIsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGNBQWMsQ0FBQyxRQUFRLEVBQUUsRUFBRTt3QkFDdEUsY0FBYyxFQUFFO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asc0JBQXNCLEVBQUUsZ0JBQWdCO3FCQUN6QztvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLDRCQUE0Qjt3QkFDNUIsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLDZCQUE2Qjt3QkFDN0IsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixtQkFBbUI7d0JBQ25CLCtCQUErQjt3QkFDL0Isc0JBQXNCO3dCQUN0Qiw2QkFBNkI7d0JBQzdCLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4Qiw0QkFBNEI7d0JBQzVCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLDBCQUEwQjt3QkFDMUIsaUJBQWlCO3dCQUNqQiw2QkFBNkI7d0JBQzdCLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixzQkFBc0I7d0JBQ3RCLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLDRCQUE0QjtxQkFDN0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmd1bGFyQ3JvcHBlcmpzTW9kdWxlIH0gZnJvbSAnYW5ndWxhci1jcm9wcGVyanMnO1xyXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaWJNb2R1bGUgfSBmcm9tICdhbmd1bGFyLW5nLWF1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEJsb2NrVUlNb2R1bGUgfSBmcm9tICduZy1ibG9jay11aSc7XHJcbmltcG9ydCB7IElubGluZVNWR01vZHVsZSB9IGZyb20gJ25nLWlubGluZS1zdmctMic7XHJcbmltcG9ydCB7IE9XTF9EQVRFX1RJTUVfTE9DQUxFLCBPd2xEYXRlVGltZU1vZHVsZSwgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUgfSBmcm9tICdAZGFuaWVsbW9uY2FkYS9hbmd1bGFyLWRhdGV0aW1lLXBpY2tlcic7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRNb2R1bGUgfSBmcm9tICduZzItZmlsZS11cGxvYWQnO1xyXG5pbXBvcnQgeyBCc0RhdGVwaWNrZXJNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL2RhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBUeXBlYWhlYWRNb2R1bGUgfSBmcm9tICduZ3gtYm9vdHN0cmFwL3R5cGVhaGVhZCc7XHJcbmltcG9ydCB7IE5neERyb3B6b25lTW9kdWxlIH0gZnJvbSAnbmd4LWRyb3B6b25lJztcclxuaW1wb3J0IHsgSW5maW5pdGVTY3JvbGxNb2R1bGUgfSBmcm9tICduZ3gtaW5maW5pdGUtc2Nyb2xsJztcclxuaW1wb3J0IHsgTmd4SW50bFRlbElucHV0TW9kdWxlIH0gZnJvbSAnbmd4LWludGwtdGVsLWlucHV0JztcclxuaW1wb3J0IHsgSUNvbmZpZywgTmd4TWFza0RpcmVjdGl2ZSwgTmd4TWFza1BpcGUsIHByb3ZpZGVOZ3hNYXNrIH0gZnJvbSAnbmd4LW1hc2snO1xyXG5pbXBvcnQgeyBOZ3hTdW1tZXJub3RlTW9kdWxlIH0gZnJvbSAnbmd4LXN1bW1lcm5vdGUnO1xyXG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuXHJcbi8vIGltcG9ydCB7IEFnbUNvcmVNb2R1bGUgfSBmcm9tICdAYW1pbi1rYXJpbWkvYWdtLWNvcmUnO1xyXG4vLyBpbXBvcnQge1xyXG4vLyAgIE1hdEdvb2dsZU1hcHNBdXRvY29tcGxldGVNb2R1bGVcclxuLy8gfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1leHRlbnNpb25zL2dvb2dsZS1tYXBzLWF1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IE92ZXJsYXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXBEaXJlY3RpdmUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEZ1bGxDYWxlbmRhck1vZHVsZSB9IGZyb20gJ0BmdWxsY2FsZW5kYXIvYW5ndWxhcic7XHJcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3JNb2R1bGUgfSBmcm9tICdAa29sa292L2FuZ3VsYXItZWRpdG9yJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwsIE5nYk1vZGFsLCBOZ2JNb2R1bGUgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IE5nU2VsZWN0TW9kdWxlIH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5pbXBvcnQgeyBTdG9yZURldnRvb2xzTW9kdWxlIH0gZnJvbSAnQG5ncngvc3RvcmUtZGV2dG9vbHMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN3ZWV0QWxlcnQyTW9kdWxlIH0gZnJvbSAnQHN3ZWV0YWxlcnQyL25neC1zd2VldGFsZXJ0Mic7XHJcblxyXG5pbXBvcnQgeyBCVGFnc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vU2hhcmVkL0NvbXBvbmVudHMvbmctdGFnLWlucHV0JztcclxuaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9TaGFyZWQvY29uZmlnL2Vudmlyb25tZW50JztcclxuaW1wb3J0IHsgTmdUZW1wbGF0ZU5hbWVEaXJlY3RpdmUgfSBmcm9tICcuLi9TaGFyZWQvRGlyZWN0aXZlcy90ZW1wbGF0ZS1uYW1lLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJCU0ZEYXRlVGltZVBpcGUgfSBmcm9tICcuLi9TaGFyZWQvUGlwZXMvYmJzZi1kYXRlLXRpbWUucGlwZSc7XHJcbmltcG9ydCB7IEJCU0ZEYXRlUGlwZSB9IGZyb20gJy4uL1NoYXJlZC9QaXBlcy9iYnNmLWRhdGUucGlwZSc7XHJcbmltcG9ydCB7IENvbnRyb2xVdGlsaXR5IH0gZnJvbSAnLi4vU2hhcmVkL3NlcnZpY2VzL0NvbnRyb2xVdGlsaXR5JztcclxuaW1wb3J0IHsgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSB9IGZyb20gJy4uL1NoYXJlZC9zZXJ2aWNlcy9PblBhZ2luZ0ZpbHRlcnNDaGFuZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlbmRlckNvbXBvbmVudFNlcnZpY2UgfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvcmVuZGVyLWNvbXBvbmVudC1zZXJ2aWNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uIH0gZnJvbSAnLi4vU2hhcmVkL3NlcnZpY2VzL3ZhbGlkYXRpb25FcnJvck1hc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVRleHRCb3hDb21wb25lbnQgfSBmcm9tICcuL0F1dG9jb21wbGV0ZVRleHRCb3gvQXV0b2NvbXBsZXRlVGV4dEJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vQ2FsZW5kYXIvQ2FsZW5kYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hlY2tCb3hDb21wb25lbnQgfSBmcm9tICcuL0NoZWNrQm94L0NoZWNrQm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL0RhdGVUaW1lUGlja2VyL0RhdGVUaW1lUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERyb3Bkb3duTGlzdENvbXBvbmVudCB9IGZyb20gJy4vRHJvcGRvd25MaXN0L0Ryb3Bkb3duTGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlVXBsb2FkQ29tcG9uZW50IH0gZnJvbSAnLi9GaWxlVXBsYW9kL0ZpbGVVcGxhb2QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vRm9ybS9Gb3JtLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL0h0bWxFZGl0b3IvSHRtbEVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBJbWFnZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9JbWFnZVVwbG9hZC9JbWFnZVVwbG9hZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXBBdXRvQ29tcGxldGVDb21wb25lbnQgfSBmcm9tICcuL01hcEF1dG9Db21wbGV0ZS9NYXBBdXRvQ29tcGxldGUuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBNdWx0aUxpbmd1YWxIdG1sRWRpdG9yQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9NdWx0aUxpbmd1YWxIdG1sRWRpdG9yL011bHRpTGluZ3VhbEh0bWxFZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBNdWx0aUxpbmd1YWxUZXh0QXJlYUNvbXBvbmVudFxyXG59IGZyb20gJy4vTXVsdGlMaW5ndWFsVGV4dEFyZWEvTXVsdGlMaW5ndWFsVGV4dEFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTXVsdGlMaW5ndWFsVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4vTXVsdGlMaW5ndWFsVGV4dEJveC9NdWx0aUxpbmd1YWxUZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUGFnZUhlYWRlckNvbXBvbmVudENvbXBvbmVudFxyXG59IGZyb20gJy4vcGFnZS1oZWFkZXItY29tcG9uZW50L3BhZ2UtaGVhZGVyLWNvbXBvbmVudC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBKd1BhZ2luYXRpb25Db21wb25lbnQgfSBmcm9tICcuL1BhZ2luZy9Kd1BhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGFnaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9QYWdpbmcvUGFnaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBob25lQ29tcG9uZW50IH0gZnJvbSAnLi9QaG9uZS9QaG9uZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFByb2ZpbGVJbWFnZVVwbG9hZGVyQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9Qcm9maWxlSW1hZ2VVcGxvYWRlci9Qcm9maWxlSW1hZ2VVcGxvYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSYWRpb0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vUmFkaW9CdXR0b24vUmFkaW9CdXR0b24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVjYXB0Y2hhQ29tcG9uZW50IH0gZnJvbSAnLi9SZWNhcHRjaGEvUmVjYXB0Y2hhLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUmVwZWF0ZXJGaWVsZEJ1aWxkZXJDb21wb25lbnRcclxufSBmcm9tICcuL1JlcGVhdGVyL3JlcGVhdGVyLWZpZWxkLWJ1aWxkZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIFJlcGVhdGVySXRlbUZpZWxkQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9SZXBlYXRlci9yZXBlYXRlci1pdGVtLWZpZWxkL3JlcGVhdGVyLWl0ZW0tZmllbGQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwZWF0ZXJUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXItdGFibGUvcmVwZWF0ZXItdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUmVwZWF0ZXJDb21wb25lbnQgfSBmcm9tICcuL1JlcGVhdGVyL3JlcGVhdGVyL3JlcGVhdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRhZ3NJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vVGFnc0lucHV0L1RhZ3NJbnB1dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0QXJlYUNvbXBvbmVudCB9IGZyb20gJy4vVGV4dEFyZWEvVGV4dEFyZWEuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGV4dGJveENvbXBvbmVudCB9IGZyb20gJy4vVGV4dEJveC9UZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvZ2dsZXNsaWRlQ29tcG9uZW50IH0gZnJvbSAnLi9Ub2dnbGVzbGlkZS90b2dnbGVzbGlkZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCQlNGVXRpbGl0aWVzTW9kdWxlIH0gZnJvbSAnQGJuc2lnaHRzL2Jic2YtdXRpbGl0aWVzJztcclxuXHJcbmV4cG9ydCBsZXQgb3B0aW9uczogUGFydGlhbDxJQ29uZmlnPiB8ICgoKSA9PiBQYXJ0aWFsPElDb25maWc+KTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRleHRib3hDb21wb25lbnQsXHJcbiAgICBUZXh0QXJlYUNvbXBvbmVudCxcclxuICAgIE11bHRpTGluZ3VhbFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tCb3hDb21wb25lbnQsXHJcbiAgICBEcm9wZG93bkxpc3RDb21wb25lbnQsXHJcbiAgICBQaG9uZUNvbXBvbmVudCxcclxuICAgIFRvZ2dsZXNsaWRlQ29tcG9uZW50LFxyXG4gICAgSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JDb21wb25lbnQsXHJcbiAgICBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LFxyXG4gICAgUHJvZmlsZUltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCxcclxuICAgIEF1dG9jb21wbGV0ZVRleHRCb3hDb21wb25lbnQsXHJcbiAgICBUYWdzSW5wdXRDb21wb25lbnQsXHJcbiAgICBQYWdpbmdDb21wb25lbnQsXHJcbiAgICBKd1BhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIEZvcm1Db21wb25lbnQsXHJcbiAgICBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCxcclxuICAgIFJlcGVhdGVyQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJGaWVsZEJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBOZ1RlbXBsYXRlTmFtZURpcmVjdGl2ZSxcclxuICAgIFJlcGVhdGVySXRlbUZpZWxkQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJUYWJsZUNvbXBvbmVudCxcclxuICAgIEJCU0ZEYXRlVGltZVBpcGUsXHJcbiAgICBCQlNGRGF0ZVBpcGUsXHJcbiAgICBCVGFnc0lucHV0Q29tcG9uZW50LFxyXG4gICAgUmVjYXB0Y2hhQ29tcG9uZW50LFxyXG4gICAgUGFnZUhlYWRlckNvbXBvbmVudENvbXBvbmVudFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSW5maW5pdGVTY3JvbGxNb2R1bGUsXHJcbiAgICBOZ1NlbGVjdE1vZHVsZSxcclxuICAgIC8vIEFnbUNvcmVNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAvLyAgIGFwaUtleTogZW52aXJvbm1lbnQuQkJTRl9Hb29nbGVNYXBLZXksXHJcbiAgICAvLyAgIGxpYnJhcmllczogWydwbGFjZXMnXSxcclxuICAgIC8vIH0pLFxyXG4gICAgLy8gTWF0R29vZ2xlTWFwc0F1dG9jb21wbGV0ZU1vZHVsZSxcclxuICAgIEZ1bGxDYWxlbmRhck1vZHVsZSxcclxuICAgIEFuZ3VsYXJDcm9wcGVyanNNb2R1bGUsXHJcbiAgICBOZ2JNb2R1bGUsXHJcbiAgICBOZ3hEcm9wem9uZU1vZHVsZSxcclxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXHJcbiAgICBOZ3hNYXNrRGlyZWN0aXZlLFxyXG4gICAgTmd4TWFza1BpcGUsXHJcbiAgICBOZ3hTdW1tZXJub3RlTW9kdWxlLFxyXG4gICAgTWF0U2xpZGVUb2dnbGVNb2R1bGUsXHJcbiAgICBOZ3hJbnRsVGVsSW5wdXRNb2R1bGUsXHJcbiAgICBPd2xEYXRlVGltZU1vZHVsZSxcclxuICAgIE93bE5hdGl2ZURhdGVUaW1lTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQmxvY2tVSU1vZHVsZS5mb3JSb290KCksXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgVG9hc3RyTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBPdmVybGF5TW9kdWxlLFxyXG4gICAgU3RvcmVEZXZ0b29sc01vZHVsZS5pbnN0cnVtZW50KHtjb25uZWN0SW5ab25lOiB0cnVlfSksXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEJzRGF0ZXBpY2tlck1vZHVsZS5mb3JSb290KCksXHJcbiAgICBUeXBlYWhlYWRNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgQW5ndWxhckVkaXRvck1vZHVsZSxcclxuICAgIEF1dG9jb21wbGV0ZUxpYk1vZHVsZSxcclxuICAgIEJCU0ZVdGlsaXRpZXNNb2R1bGUsXHJcbiAgICBJbmxpbmVTVkdNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgU3dlZXRBbGVydDJNb2R1bGVcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRXJyb3JNYXNzYWdlVmFsaWRhdGlvbixcclxuICAgIENvbnRyb2xVdGlsaXR5LFxyXG4gICAgT25QYWdpbmdGaWx0ZXJzQ2hhbmdlU2VydmljZSxcclxuICAgIFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBGb3JtR3JvdXBEaXJlY3RpdmUsXHJcbiAgICBOZ2JNb2RhbCxcclxuICAgIE5nYkFjdGl2ZU1vZGFsLFxyXG4gICAgRGF0ZVBpcGUsXHJcbiAgICBCQlNGRGF0ZVRpbWVQaXBlLFxyXG4gICAgQkJTRkRhdGVQaXBlLFxyXG4gICAgUmVuZGVyQ29tcG9uZW50U2VydmljZSxcclxuICAgIHsgcHJvdmlkZTogT1dMX0RBVEVfVElNRV9MT0NBTEUsIHVzZVZhbHVlOiBDb250cm9sVXRpbGl0eS5nZXRMb2NhbCgpIH0sXHJcbiAgICBwcm92aWRlTmd4TWFzaygpXHJcbiAgXSxcclxuICBzY2hlbWFzOiBbXHJcbiAgICBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOT19FUlJPUlNfU0NIRU1BXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXHJcbiAgICBGaWxlVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRleHRib3hDb21wb25lbnQsXHJcbiAgICBUZXh0QXJlYUNvbXBvbmVudCxcclxuICAgIE11bHRpTGluZ3VhbFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgQ2hlY2tCb3hDb21wb25lbnQsXHJcbiAgICBEcm9wZG93bkxpc3RDb21wb25lbnQsXHJcbiAgICBQaG9uZUNvbXBvbmVudCxcclxuICAgIFRvZ2dsZXNsaWRlQ29tcG9uZW50LFxyXG4gICAgSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JDb21wb25lbnQsXHJcbiAgICBJbWFnZVVwbG9hZGVyQ29tcG9uZW50LFxyXG4gICAgUHJvZmlsZUltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcclxuICAgIE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCxcclxuICAgIEF1dG9jb21wbGV0ZVRleHRCb3hDb21wb25lbnQsXHJcbiAgICBUYWdzSW5wdXRDb21wb25lbnQsXHJcbiAgICBQYWdpbmdDb21wb25lbnQsXHJcbiAgICBKd1BhZ2luYXRpb25Db21wb25lbnQsXHJcbiAgICBSYWRpb0J1dHRvbkNvbXBvbmVudCxcclxuICAgIEZvcm1Db21wb25lbnQsXHJcbiAgICBQYWdpbmdDb21wb25lbnQsXHJcbiAgICBDb25maXJtYXRpb25Nb2RhbENvbXBvbmVudCxcclxuICAgIFJlcGVhdGVyQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJGaWVsZEJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBOZ1RlbXBsYXRlTmFtZURpcmVjdGl2ZSxcclxuICAgIFJlcGVhdGVySXRlbUZpZWxkQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJUYWJsZUNvbXBvbmVudCxcclxuICAgIEJCU0ZEYXRlVGltZVBpcGUsXHJcbiAgICBCQlNGRGF0ZVBpcGUsXHJcbiAgICBSZWNhcHRjaGFDb21wb25lbnQsXHJcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQkJTRkNvbnRyb2xzTW9kdWxlIHtcclxuXHJcbn1cclxuIl19
339
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmJzZi1jb250cm9scy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYnNmLWNvbnRyb2xzL3NyYy9saWIvY29udHJvbHMvYmJzZi1jb250cm9scy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQVcsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNsRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxF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cGVyanNNb2R1bGUgfSBmcm9tICdhbmd1bGFyLWNyb3BwZXJqcyc7XHJcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpYk1vZHVsZSB9IGZyb20gJ2FuZ3VsYXItbmctYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgQmxvY2tVSU1vZHVsZSB9IGZyb20gJ25nLWJsb2NrLXVpJztcclxuaW1wb3J0IHsgSW5saW5lU1ZHTW9kdWxlIH0gZnJvbSAnbmctaW5saW5lLXN2Zy0yJztcclxuaW1wb3J0IHsgT1dMX0RBVEVfVElNRV9MT0NBTEUsIE93bERhdGVUaW1lTW9kdWxlLCBPd2xOYXRpdmVEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BkYW5pZWxtb25jYWRhL2FuZ3VsYXItZGF0ZXRpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZE1vZHVsZSB9IGZyb20gJ25nMi1maWxlLXVwbG9hZCc7XHJcbmltcG9ydCB7IEJzRGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFR5cGVhaGVhZE1vZHVsZSB9IGZyb20gJ25neC1ib290c3RyYXAvdHlwZWFoZWFkJztcclxuaW1wb3J0IHsgTmd4RHJvcHpvbmVNb2R1bGUgfSBmcm9tICduZ3gtZHJvcHpvbmUnO1xyXG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbE1vZHVsZSB9IGZyb20gJ25neC1pbmZpbml0ZS1zY3JvbGwnO1xyXG5pbXBvcnQgeyBOZ3hJbnRsVGVsSW5wdXRNb2R1bGUgfSBmcm9tICduZ3gtaW50bC10ZWwtaW5wdXQnO1xyXG5pbXBvcnQgeyBJQ29uZmlnLCBOZ3hNYXNrRGlyZWN0aXZlLCBOZ3hNYXNrUGlwZSwgcHJvdmlkZU5neE1hc2sgfSBmcm9tICduZ3gtbWFzayc7XHJcbmltcG9ydCB7IE5neFN1bW1lcm5vdGVNb2R1bGUgfSBmcm9tICduZ3gtc3VtbWVybm90ZSc7XHJcbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xyXG5cclxuaW1wb3J0IHsgT3ZlcmxheU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5nTW9kdWxlLCBOT19FUlJPUlNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cERpcmVjdGl2ZSwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRnVsbENhbGVuZGFyTW9kdWxlIH0gZnJvbSAnQGZ1bGxjYWxlbmRhci9hbmd1bGFyJztcclxuaW1wb3J0IHsgQW5ndWxhckVkaXRvck1vZHVsZSB9IGZyb20gJ0Brb2xrb3YvYW5ndWxhci1lZGl0b3InO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwsIE5nYk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgTmdTZWxlY3RNb2R1bGUgfSBmcm9tICdAbmctc2VsZWN0L25nLXNlbGVjdCc7XHJcbmltcG9ydCB7IFN0b3JlRGV2dG9vbHNNb2R1bGUgfSBmcm9tICdAbmdyeC9zdG9yZS1kZXZ0b29scyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3dlZXRBbGVydDJNb2R1bGUgfSBmcm9tICdAc3dlZXRhbGVydDIvbmd4LXN3ZWV0YWxlcnQyJztcclxuXHJcbmltcG9ydCB7IEJUYWdzSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9TaGFyZWQvQ29tcG9uZW50cy9uZy10YWctaW5wdXQnO1xyXG5pbXBvcnQgeyBOZ1RlbXBsYXRlTmFtZURpcmVjdGl2ZSB9IGZyb20gJy4uL1NoYXJlZC9EaXJlY3RpdmVzL3RlbXBsYXRlLW5hbWUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVUaW1lUGlwZSB9IGZyb20gJy4uL1NoYXJlZC9QaXBlcy9iYnNmLWRhdGUtdGltZS5waXBlJztcclxuaW1wb3J0IHsgQkJTRkRhdGVQaXBlIH0gZnJvbSAnLi4vU2hhcmVkL1BpcGVzL2Jic2YtZGF0ZS5waXBlJztcclxuaW1wb3J0IHsgQ29udHJvbFV0aWxpdHkgfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvQ29udHJvbFV0aWxpdHknO1xyXG5pbXBvcnQgeyBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vU2hhcmVkL3NlcnZpY2VzL09uUGFnaW5nRmlsdGVyc0NoYW5nZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVuZGVyQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL1NoYXJlZC9zZXJ2aWNlcy9yZW5kZXItY29tcG9uZW50LXNlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEVycm9yTWFzc2FnZVZhbGlkYXRpb24gfSBmcm9tICcuLi9TaGFyZWQvc2VydmljZXMvdmFsaWRhdGlvbkVycm9yTWFzc2FnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCB9IGZyb20gJy4vQXV0b2NvbXBsZXRlVGV4dEJveC9BdXRvY29tcGxldGVUZXh0Qm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9DYWxlbmRhci9DYWxlbmRhci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGVja0JveENvbXBvbmVudCB9IGZyb20gJy4vQ2hlY2tCb3gvQ2hlY2tCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybWF0aW9uTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vRGF0ZVRpbWVQaWNrZXIvRGF0ZVRpbWVQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJvcGRvd25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9Ecm9wZG93bkxpc3QvRHJvcGRvd25MaXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZpbGVVcGxvYWRDb21wb25lbnQgfSBmcm9tICcuL0ZpbGVVcGxhb2QvRmlsZVVwbGFvZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9Gb3JtL0Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgSHRtbEVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vSHRtbEVkaXRvci9IdG1sRWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEltYWdlVXBsb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL0ltYWdlVXBsb2FkL0ltYWdlVXBsb2FkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hcEF1dG9Db21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4vTWFwQXV0b0NvbXBsZXRlL01hcEF1dG9Db21wbGV0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE11bHRpTGluZ3VhbEh0bWxFZGl0b3JDb21wb25lbnRcclxufSBmcm9tICcuL011bHRpTGluZ3VhbEh0bWxFZGl0b3IvTXVsdGlMaW5ndWFsSHRtbEVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQge1xyXG4gIE11bHRpTGluZ3VhbFRleHRBcmVhQ29tcG9uZW50XHJcbn0gZnJvbSAnLi9NdWx0aUxpbmd1YWxUZXh0QXJlYS9NdWx0aUxpbmd1YWxUZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50IH0gZnJvbSAnLi9NdWx0aUxpbmd1YWxUZXh0Qm94L011bHRpTGluZ3VhbFRleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50XHJcbn0gZnJvbSAnLi9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEp3UGFnaW5hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vUGFnaW5nL0p3UGFnaW5hdGlvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQYWdpbmdDb21wb25lbnQgfSBmcm9tICcuL1BhZ2luZy9QYWdpbmcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUGhvbmVDb21wb25lbnQgfSBmcm9tICcuL1Bob25lL1Bob25lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUHJvZmlsZUltYWdlVXBsb2FkZXJDb21wb25lbnRcclxufSBmcm9tICcuL1Byb2ZpbGVJbWFnZVVwbG9hZGVyL1Byb2ZpbGVJbWFnZVVwbG9hZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFJhZGlvQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9SYWRpb0J1dHRvbi9SYWRpb0J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZWNhcHRjaGFDb21wb25lbnQgfSBmcm9tICcuL1JlY2FwdGNoYS9SZWNhcHRjaGEuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudFxyXG59IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXItZmllbGQtYnVpbGRlci9yZXBlYXRlci1maWVsZC1idWlsZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnRcclxufSBmcm9tICcuL1JlcGVhdGVyL3JlcGVhdGVyLWl0ZW0tZmllbGQvcmVwZWF0ZXItaXRlbS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBlYXRlclRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9SZXBlYXRlci9yZXBlYXRlci10YWJsZS9yZXBlYXRlci10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBSZXBlYXRlckNvbXBvbmVudCB9IGZyb20gJy4vUmVwZWF0ZXIvcmVwZWF0ZXIvcmVwZWF0ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGFnc0lucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9UYWdzSW5wdXQvVGFnc0lucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRBcmVhQ29tcG9uZW50IH0gZnJvbSAnLi9UZXh0QXJlYS9UZXh0QXJlYS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi9UZXh0Qm94L1RleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlc2xpZGVDb21wb25lbnQgfSBmcm9tICcuL1RvZ2dsZXNsaWRlL1RvZ2dsZXNsaWRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJCU0ZVdGlsaXRpZXNNb2R1bGUgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBTY3JpcHRMb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2NyaXB0LWxvYWRlcic7XHJcbmltcG9ydCB7IEdvb2dsZU1hcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9nb29nbGUtbWFwcyc7XHJcblxyXG5cclxuZXhwb3J0IGxldCBvcHRpb25zOiBQYXJ0aWFsPElDb25maWc+IHwgKCgpID0+IFBhcnRpYWw8SUNvbmZpZz4pO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBDaGVja0JveENvbXBvbmVudCxcclxuICAgIERyb3Bkb3duTGlzdENvbXBvbmVudCxcclxuICAgIFBob25lQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlc2xpZGVDb21wb25lbnQsXHJcbiAgICBIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIEltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBQcm9maWxlSW1hZ2VVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRhZ3NJbnB1dENvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIEp3UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudCxcclxuICAgIE5nVGVtcGxhdGVOYW1lRGlyZWN0aXZlLFxyXG4gICAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlclRhYmxlQ29tcG9uZW50LFxyXG4gICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgIEJCU0ZEYXRlUGlwZSxcclxuICAgIEJUYWdzSW5wdXRDb21wb25lbnQsXHJcbiAgICBSZWNhcHRjaGFDb21wb25lbnQsXHJcbiAgICBQYWdlSGVhZGVyQ29tcG9uZW50Q29tcG9uZW50XHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBJbmZpbml0ZVNjcm9sbE1vZHVsZSxcclxuICAgIE5nU2VsZWN0TW9kdWxlLFxyXG4gICAgRnVsbENhbGVuZGFyTW9kdWxlLFxyXG4gICAgQW5ndWxhckNyb3BwZXJqc01vZHVsZSxcclxuICAgIE5nYk1vZHVsZSxcclxuICAgIE5neERyb3B6b25lTW9kdWxlLFxyXG4gICAgRmlsZVVwbG9hZE1vZHVsZSxcclxuICAgIE5neE1hc2tEaXJlY3RpdmUsXHJcbiAgICBOZ3hNYXNrUGlwZSxcclxuICAgIE5neFN1bW1lcm5vdGVNb2R1bGUsXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIE5neEludGxUZWxJbnB1dE1vZHVsZSxcclxuICAgIE93bERhdGVUaW1lTW9kdWxlLFxyXG4gICAgT3dsTmF0aXZlRGF0ZVRpbWVNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBCbG9ja1VJTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBSb3V0ZXJNb2R1bGUsXHJcbiAgICBUb2FzdHJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIE92ZXJsYXlNb2R1bGUsXHJcbiAgICBTdG9yZURldnRvb2xzTW9kdWxlLmluc3RydW1lbnQoeyBjb25uZWN0SW5ab25lOiB0cnVlIH0pLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBCc0RhdGVwaWNrZXJNb2R1bGUuZm9yUm9vdCgpLFxyXG4gICAgVHlwZWFoZWFkTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIEFuZ3VsYXJFZGl0b3JNb2R1bGUsXHJcbiAgICBBdXRvY29tcGxldGVMaWJNb2R1bGUsXHJcbiAgICBCQlNGVXRpbGl0aWVzTW9kdWxlLFxyXG4gICAgSW5saW5lU1ZHTW9kdWxlLmZvclJvb3QoKSxcclxuICAgIFN3ZWV0QWxlcnQyTW9kdWxlLFxyXG4gICAgU2NyaXB0TG9hZGVyTW9kdWxlLFxyXG4gICAgR29vZ2xlTWFwc01vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBFcnJvck1hc3NhZ2VWYWxpZGF0aW9uLFxyXG4gICAgQ29udHJvbFV0aWxpdHksXHJcbiAgICBPblBhZ2luZ0ZpbHRlcnNDaGFuZ2VTZXJ2aWNlLFxyXG4gICAgVHJhbnNsYXRlU2VydmljZSxcclxuICAgIEZvcm1Hcm91cERpcmVjdGl2ZSxcclxuICAgIE5nYk1vZGFsLFxyXG4gICAgTmdiQWN0aXZlTW9kYWwsXHJcbiAgICBEYXRlUGlwZSxcclxuICAgIEJCU0ZEYXRlVGltZVBpcGUsXHJcbiAgICBCQlNGRGF0ZVBpcGUsXHJcbiAgICBSZW5kZXJDb21wb25lbnRTZXJ2aWNlLFxyXG4gICAgeyBwcm92aWRlOiBPV0xfREFURV9USU1FX0xPQ0FMRSwgdXNlVmFsdWU6IENvbnRyb2xVdGlsaXR5LmdldExvY2FsKCkgfSxcclxuICAgIHByb3ZpZGVOZ3hNYXNrKClcclxuICBdLFxyXG4gIHNjaGVtYXM6IFtcclxuICAgIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIE5PX0VSUk9SU19TQ0hFTUFcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIERhdGVJbnB1dENvbXBvbmVudCxcclxuICAgIEZpbGVVcGxvYWRDb21wb25lbnQsXHJcbiAgICBNdWx0aUxpbmd1YWxUZXh0Qm94Q29tcG9uZW50LFxyXG4gICAgVGV4dGJveENvbXBvbmVudCxcclxuICAgIFRleHRBcmVhQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsVGV4dEFyZWFDb21wb25lbnQsXHJcbiAgICBDaGVja0JveENvbXBvbmVudCxcclxuICAgIERyb3Bkb3duTGlzdENvbXBvbmVudCxcclxuICAgIFBob25lQ29tcG9uZW50LFxyXG4gICAgVG9nZ2xlc2xpZGVDb21wb25lbnQsXHJcbiAgICBIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgTXVsdGlMaW5ndWFsSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIEltYWdlVXBsb2FkZXJDb21wb25lbnQsXHJcbiAgICBQcm9maWxlSW1hZ2VVcGxvYWRlckNvbXBvbmVudCxcclxuICAgIENhbGVuZGFyQ29tcG9uZW50LFxyXG4gICAgTWFwQXV0b0NvbXBsZXRlQ29tcG9uZW50LFxyXG4gICAgQXV0b2NvbXBsZXRlVGV4dEJveENvbXBvbmVudCxcclxuICAgIFRhZ3NJbnB1dENvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIEp3UGFnaW5hdGlvbkNvbXBvbmVudCxcclxuICAgIFJhZGlvQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgRm9ybUNvbXBvbmVudCxcclxuICAgIFBhZ2luZ0NvbXBvbmVudCxcclxuICAgIENvbmZpcm1hdGlvbk1vZGFsQ29tcG9uZW50LFxyXG4gICAgUmVwZWF0ZXJDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlckZpZWxkQnVpbGRlckNvbXBvbmVudCxcclxuICAgIE5nVGVtcGxhdGVOYW1lRGlyZWN0aXZlLFxyXG4gICAgUmVwZWF0ZXJJdGVtRmllbGRDb21wb25lbnQsXHJcbiAgICBSZXBlYXRlclRhYmxlQ29tcG9uZW50LFxyXG4gICAgQkJTRkRhdGVUaW1lUGlwZSxcclxuICAgIEJCU0ZEYXRlUGlwZSxcclxuICAgIFJlY2FwdGNoYUNvbXBvbmVudCxcclxuICAgIFBhZ2VIZWFkZXJDb21wb25lbnRDb21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCQlNGQ29udHJvbHNNb2R1bGUge1xyXG5cclxufVxyXG4iXX0=
@@ -9,7 +9,7 @@ import * as i5 from "ng-inline-svg-2";
9
9
  import * as i6 from "../DateTimePicker/DateTimePicker.component";
10
10
  import * as i7 from "../TextBox/TextBox.component";
11
11
  import * as i8 from "../DropdownList/DropdownList.component";
12
- import * as i9 from "../Toggleslide/toggleslide.component";
12
+ import * as i9 from "../Toggleslide/Toggleslide.component";
13
13
  import * as i10 from "../TagsInput/TagsInput.component";
14
14
  export class PageHeaderComponentComponent {
15
15
  constructor(router, utilityService) {
@@ -24,14 +24,14 @@ export class PageHeaderComponentComponent {
24
24
  this.EN = this.utilityService.isCurrentLanguageEnglish();
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PageHeaderComponentComponent, deps: [{ token: i1.Router }, { token: i2.UtilityService }], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: PageHeaderComponentComponent, selector: "bbsf-page-header-component", inputs: { group: "group", options: "options" }, ngImport: i0, template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\"/>\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.Listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.TitleKey||options.TitleValue\">{{options.TitleValue == null ? translate(options.TitleKey) : options.TitleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.Listing\">\r\n {{translate(options.SubTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.BreadCrumb.Active\">\r\n <ng-container *ngFor=\"let item of options.BreadCrumb.BreadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.DropDownActions.Active\">\r\n <button [routerLink]=\"item.RouterLink\" (click)='item.Function?item.Function():\"\"' class=\"btn btn-light btn-sm subheader-btn export-btn\" *ngFor=\"let item of options.DropDownActions.DropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.SVG\"></span>\r\n {{item.Text}}\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.SearchTextBox.Active\" [options]=\"options.SearchTextBox.TextSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.GridView.Active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.ExportButton.Active\" (click)=\"options.ExportButton.Function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.ExportButton.ButtonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.FiltersButton.Active\" ngbDropdown container=\"body\" [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" \r\n #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.FiltersButton.Function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.FiltersButton.ButtonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.Filters.ShowLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.Filters.ControlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\"\r\n (click)=\"options.Filters.RestFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\"\r\n (click)=\"options.Filters.ApplyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.AddButton.Active\" (click)=\"options.AddButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.AddButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.EditButton.Active\" (click)=\"options.EditButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.EditButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.DeleteButton.Active\" (click)=\"options.DeleteButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.DeleteButton.ButtonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--End toolbar-->\r\n", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i6.DateInputComponent, selector: "BBSF-DateTimePicker", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i7.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["OnChange", "OnBlur"] }, { kind: "component", type: i8.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["OnChange", "onClear"] }, { kind: "component", type: i9.ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: ["group", "options"], outputs: ["OnChange"] }, { kind: "component", type: i10.TagsInputComponent, selector: "BBSF-TagsInput", inputs: ["group", "options"], outputs: ["OnChange"] }] }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: PageHeaderComponentComponent, selector: "bbsf-page-header-component", inputs: { group: "group", options: "options" }, ngImport: i0, template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\" />\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.titleKey||options.titleValue\">{{options.titleValue == null ? translate(options.titleKey) :\r\n options.titleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.listing\">\r\n {{translate(options.subTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.breadCrumb.active\">\r\n <ng-container *ngFor=\"let item of options.breadCrumb.breadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.dropDownActions.active\">\r\n <button [routerLink]=\"item.routerLink\" (click)='item.function?item.function():\"\"'\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\"\r\n *ngFor=\"let item of options.dropDownActions.dropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.svg\"></span>\r\n {{item.text}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.searchTextBox.active\" [options]=\"options.searchTextBox.textSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.gridView.active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.exportButton.active\" (click)=\"options.exportButton.function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.exportButton.buttonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.filtersButton.active\" ngbDropdown container=\"body\"\r\n [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.filtersButton.function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.filtersButton.buttonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.filters.showLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.filters.controlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\" (click)=\"options.filters.restFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\" (click)=\"options.filters.applyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.addButton.active\"\r\n (click)=\"options.addButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.addButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.editButton.active\"\r\n (click)=\"options.editButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.editButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.deleteButton.active\"\r\n (click)=\"options.deleteButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.deleteButton.buttonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--End toolbar-->", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i4.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i4.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i4.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.InlineSVGDirective, selector: "[inlineSVG]", inputs: ["inlineSVG", "resolveSVGUrl", "replaceContents", "prepend", "injectComponent", "cacheSVG", "setSVGAttributes", "removeSVGAttributes", "forceEvalStyles", "evalScripts", "fallbackImgUrl", "fallbackSVG", "onSVGLoaded"], outputs: ["onSVGInserted", "onSVGFailed"] }, { kind: "component", type: i6.DateInputComponent, selector: "BBSF-DateTimePicker", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i7.TextboxComponent, selector: "BBSF-TextBox", inputs: ["group", "options"], outputs: ["onChange", "onBlur"] }, { kind: "component", type: i8.DropdownListComponent, selector: "BBSF-DropdownList", inputs: ["group", "options"], outputs: ["onChange", "onClear"] }, { kind: "component", type: i9.ToggleslideComponent, selector: "BBSF-Toggleslide", inputs: ["group", "options"], outputs: ["onChange"] }, { kind: "component", type: i10.TagsInputComponent, selector: "BBSF-TagsInput", inputs: ["group", "options"], outputs: ["onChange"] }] }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: PageHeaderComponentComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'bbsf-page-header-component', template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\"/>\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.Listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.TitleKey||options.TitleValue\">{{options.TitleValue == null ? translate(options.TitleKey) : options.TitleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.Listing\">\r\n {{translate(options.SubTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.BreadCrumb.Active\">\r\n <ng-container *ngFor=\"let item of options.BreadCrumb.BreadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.DropDownActions.Active\">\r\n <button [routerLink]=\"item.RouterLink\" (click)='item.Function?item.Function():\"\"' class=\"btn btn-light btn-sm subheader-btn export-btn\" *ngFor=\"let item of options.DropDownActions.DropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.SVG\"></span>\r\n {{item.Text}}\r\n </button>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.SearchTextBox.Active\" [options]=\"options.SearchTextBox.TextSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.GridView.Active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.GridView.ShowGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.GridView.ToggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.ExportButton.Active\" (click)=\"options.ExportButton.Function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.ExportButton.ButtonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.FiltersButton.Active\" ngbDropdown container=\"body\" [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" \r\n #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.FiltersButton.Function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.FiltersButton.ButtonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.Filters.ShowLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.Filters.ControlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\"\r\n (click)=\"options.Filters.RestFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\"\r\n (click)=\"options.Filters.ApplyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.AddButton.Active\" (click)=\"options.AddButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.AddButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.EditButton.Active\" (click)=\"options.EditButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.EditButton.ButtonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.DeleteButton.Active\" (click)=\"options.DeleteButton.Function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.DeleteButton.ButtonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!--End toolbar-->\r\n" }]
31
+ args: [{ selector: 'bbsf-page-header-component', template: "<!--toolbar-->\r\n<div class=\"toolbar\" style=\"overflow:hidden;position:relative;\">\r\n <img class=\"pattern\" src=\"./src/assets/images/Bg-pattern.png\" />\r\n <div class=\"container-xxl\">\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <div class=\"page-title w-100\" [ngClass]=\"!options.listing? 'mb-0' : ''\">\r\n <h3 *ngIf=\"options.titleKey||options.titleValue\">{{options.titleValue == null ? translate(options.titleKey) :\r\n options.titleValue }}</h3>\r\n <p class=\"sub-title\" *ngIf=\"options.listing\">\r\n {{translate(options.subTitleKey)}}\r\n </p>\r\n <div class=\"d-flex justify-content-between align-items-end\">\r\n <ul class=\"breadcrumb breadcrumb-dot\" *ngIf=\"options.breadCrumb.active\">\r\n <ng-container *ngFor=\"let item of options.breadCrumb.breadCrumbItems\">\r\n <li class=\"breadcrumb-item\" *ngIf=\"!item.active\">\r\n <a *ngIf=\"item.route\" [routerLink]=\"item.route\">{{ item.label }}</a>\r\n <a *ngIf=\"!item.route\" href=\"javascript: void(0);\">{{ item.label }}</a>\r\n </li>\r\n <li class=\"breadcrumb-item active\" *ngIf=\"item.active\">\r\n <span>{{ item.label }}</span>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n <div class=\"page-subheader\" *ngIf=\"options.dropDownActions.active\">\r\n <button [routerLink]=\"item.routerLink\" (click)='item.function?item.function():\"\"'\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\"\r\n *ngFor=\"let item of options.dropDownActions.dropdownActionItems\">\r\n <span class=\"svg-icon svg-icon-3\" [inlineSVG]=\"item.svg\"></span>\r\n {{item.text}}\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"page-subheader\">\r\n <BBSF-TextBox *ngIf=\"options.searchTextBox.active\" [options]=\"options.searchTextBox.textSearchBoxOptions\"\r\n [group]=\"group\">\r\n </BBSF-TextBox>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"subheader-btn list-grid\" *ngIf=\"options.gridView.active\">\r\n <div class=\"list-grid-item\" [ngClass]=\"options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Listing.svg'\">\r\n </span>\r\n </div>\r\n <div class=\"list-grid-item\" [ngClass]=\"!options.gridView.showGridViewByDefault? 'list-grid-item-active' : ''\"\r\n (click)=\"options.gridView.toggleFunction()\">\r\n <span class=\"svg-icon svg-icon-4\" [inlineSVG]=\"'/assets/images/Grid.svg'\">\r\n </span>\r\n </div>\r\n </div>\r\n <button type=\"button\" *ngIf=\"options.exportButton.active\" (click)=\"options.exportButton.function()\"\r\n class=\"btn btn-light btn-sm subheader-btn export-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/export.svg'\"></span>\r\n {{translate(options.exportButton.buttonTextKey)}}\r\n </button>\r\n\r\n\r\n <div *ngIf=\"options.filtersButton.active\" ngbDropdown container=\"body\"\r\n [placement]=\"EN ? 'bottom-right' : 'bottom-left'\" #dropdown=\"ngbDropdown\" class=\"subheader-btn\">\r\n <button href=\"javascript:;\" (click)=\"options.filtersButton.function()\" ngbDropdownToggle\r\n class=\"btn btn-light btn-sm filters-btn\">\r\n <span class=\"svg-icon svg-icon-5\" [inlineSVG]=\"'/assets/images/arrowdropdown.svg'\"></span>\r\n {{translate(options.filtersButton.buttonTextKey)}}\r\n </button>\r\n <div ngbDropdownMenu class=\"dropdown-menu-custom filters-dropdown\">\r\n\r\n <div [hidden]=\"options.filters.showLoadingInFiltersBox\">\r\n <div class=\"filter-select\">\r\n <span *ngFor=\"let control of options.filters.controlsOptions\">\r\n <span [ngSwitch]=\"control.key\">\r\n <span *ngSwitchCase=\"DataTypeEnum.SingleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.MulipleSelect\">\r\n <BBSF-DropdownList [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DropdownList>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Date\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.DateTime\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Time\">\r\n <BBSF-DateTimePicker [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-DateTimePicker>\r\n </span>\r\n <span *ngSwitchCase=\"DataTypeEnum.Boolean\">\r\n <BBSF-Toggleslide [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-Toggleslide>\r\n </span>\r\n <span *ngSwitchDefault>\r\n <BBSF-TagsInput [options]=\"control.value\" [group]=\"group\">\r\n </BBSF-TagsInput>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <div class=\"dropdown-menu-buttons\">\r\n <button class=\"btn btn-sm btn-light\" (click)=\"options.filters.restFunction(dropdown)\">\r\n {{translate(\"Reset\")}}\r\n </button>\r\n <button class=\"btn btn-brand btn-sm\" (click)=\"options.filters.applyFunction(dropdown)\">\r\n {{translate(\"Apply\")}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.addButton.active\"\r\n (click)=\"options.addButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.addButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.editButton.active\"\r\n (click)=\"options.editButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.editButton.buttonTextKey)}}\r\n </button>\r\n <button appPreventDoubleClick type=\"button\" *ngIf=\"options.deleteButton.active\"\r\n (click)=\"options.deleteButton.function()\" class=\"btn btn-brand btn-sm subheader-btn\">\r\n {{translate(options.deleteButton.buttonTextKey)}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<!--End toolbar-->" }]
32
32
  }], ctorParameters: () => [{ type: i1.Router }, { type: i2.UtilityService }], propDecorators: { group: [{
33
33
  type: Input
34
34
  }], options: [{
35
35
  type: Input
36
36
  }] } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSW5FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTXBELE1BQU0sT0FBTyw0QkFBNEI7SUFPdkMsWUFBb0IsTUFBYyxFQUFRLGNBQThCO1FBQXBELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGakUsaUJBQVksR0FBRyxRQUFRLENBQUM7SUFJL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzNELENBQUM7OEdBakJVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLGtIQ1Z6Qyx5dk9Ba0lBOzsyRkR4SGEsNEJBQTRCO2tCQUp4QyxTQUFTOytCQUNFLDRCQUE0Qjt3R0FLN0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBVdGlsaXR5U2VydmljZSB9IGZyb20gJ0BibnNpZ2h0cy9iYnNmLXV0aWxpdGllcyc7XHJcbmltcG9ydCB7IERhdGFUeXBlIH0gZnJvbSAnLi4vLi4vU2hhcmVkL0VudW1zL0VudW1zJztcclxuaW1wb3J0IHsgUGFnZUhlYWRlck9wdGlvbnMgfSBmcm9tICcuLi8uLi9TaGFyZWQvTW9kZWxzL3BhZ2UtaGVhZGVyLW9wdGlvbnMnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Jic2YtcGFnZS1oZWFkZXItY29tcG9uZW50JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnZUhlYWRlckNvbXBvbmVudENvbXBvbmVudCAgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcblxyXG4gIHB1YmxpYyBEYXRhVHlwZUVudW0gPSBEYXRhVHlwZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlTZXJ2aWNlKSB7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKGtleSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuRU4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLXRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cInRvb2xiYXJcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtcIj5cclxuICA8aW1nIGNsYXNzPVwicGF0dGVyblwiIHNyYz1cIi4vc3JjL2Fzc2V0cy9pbWFnZXMvQmctcGF0dGVybi5wbmdcIi8+XHJcbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci14eGxcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLXRpdGxlIHctMTAwXCIgW25nQ2xhc3NdPVwiIW9wdGlvbnMuTGlzdGluZz8gJ21iLTAnIDogJydcIj5cclxuICAgICAgICA8aDMgKm5nSWY9XCJvcHRpb25zLlRpdGxlS2V5fHxvcHRpb25zLlRpdGxlVmFsdWVcIj57e29wdGlvbnMuVGl0bGVWYWx1ZSA9PSBudWxsID8gdHJhbnNsYXRlKG9wdGlvbnMuVGl0bGVLZXkpIDogb3B0aW9ucy5UaXRsZVZhbHVlIH19PC9oMz5cclxuICAgICAgICA8cCBjbGFzcz1cInN1Yi10aXRsZVwiICpuZ0lmPVwib3B0aW9ucy5MaXN0aW5nXCI+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLlN1YlRpdGxlS2V5KX19XHJcbiAgICAgICAgPC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtZW5kXCI+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJicmVhZGNydW1iIGJyZWFkY3J1bWItZG90XCIgKm5nSWY9XCJvcHRpb25zLkJyZWFkQ3J1bWIuQWN0aXZlXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9ucy5CcmVhZENydW1iLkJyZWFkQ3J1bWJJdGVtc1wiPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cImJyZWFkY3J1bWItaXRlbVwiICpuZ0lmPVwiIWl0ZW0uYWN0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICA8YSAqbmdJZj1cIml0ZW0ucm91dGVcIiBbcm91dGVyTGlua109XCJpdGVtLnJvdXRlXCI+e3sgaXRlbS5sYWJlbCB9fTwvYT5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWl0ZW0ucm91dGVcIiBocmVmPVwiamF2YXNjcmlwdDogdm9pZCgwKTtcIj57eyBpdGVtLmxhYmVsIH19PC9hPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtIGFjdGl2ZVwiICpuZ0lmPVwiaXRlbS5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBhZ2Utc3ViaGVhZGVyXCIgKm5nSWY9XCJvcHRpb25zLkRyb3BEb3duQWN0aW9ucy5BY3RpdmVcIj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAgW3JvdXRlckxpbmtdPVwiaXRlbS5Sb3V0ZXJMaW5rXCIgKGNsaWNrKT0naXRlbS5GdW5jdGlvbj9pdGVtLkZ1bmN0aW9uKCk6XCJcIicgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBzdWJoZWFkZXItYnRuIGV4cG9ydC1idG5cIiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zLkRyb3BEb3duQWN0aW9ucy5Ecm9wZG93bkFjdGlvbkl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0zXCIgW2lubGluZVNWR109XCJpdGVtLlNWR1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICB7e2l0ZW0uVGV4dH19XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICBcclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1zdWJoZWFkZXJcIj5cclxuICAgICAgPEJCU0YtVGV4dEJveCAqbmdJZj1cIm9wdGlvbnMuU2VhcmNoVGV4dEJveC5BY3RpdmVcIiBbb3B0aW9uc109XCJvcHRpb25zLlNlYXJjaFRleHRCb3guVGV4dFNlYXJjaEJveE9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICA8L0JCU0YtVGV4dEJveD5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic3ViaGVhZGVyLWJ0biBsaXN0LWdyaWRcIiAqbmdJZj1cIm9wdGlvbnMuR3JpZFZpZXcuQWN0aXZlXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncmlkLWl0ZW1cIiBbbmdDbGFzc109XCJvcHRpb25zLkdyaWRWaWV3LlNob3dHcmlkVmlld0J5RGVmYXVsdD8gJ2xpc3QtZ3JpZC1pdGVtLWFjdGl2ZScgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgIChjbGljayk9XCJvcHRpb25zLkdyaWRWaWV3LlRvZ2dsZUZ1bmN0aW9uKClcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi00XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvTGlzdGluZy5zdmcnXCI+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JpZC1pdGVtXCIgW25nQ2xhc3NdPVwiIW9wdGlvbnMuR3JpZFZpZXcuU2hvd0dyaWRWaWV3QnlEZWZhdWx0PyAnbGlzdC1ncmlkLWl0ZW0tYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuR3JpZFZpZXcuVG9nZ2xlRnVuY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9HcmlkLnN2ZydcIj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLkV4cG9ydEJ1dHRvbi5BY3RpdmVcIiAoY2xpY2spPVwib3B0aW9ucy5FeHBvcnRCdXR0b24uRnVuY3Rpb24oKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGlnaHQgYnRuLXNtIHN1YmhlYWRlci1idG4gZXhwb3J0LWJ0blwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi01XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvZXhwb3J0LnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLkV4cG9ydEJ1dHRvbi5CdXR0b25UZXh0S2V5KX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3B0aW9ucy5GaWx0ZXJzQnV0dG9uLkFjdGl2ZVwiIG5nYkRyb3Bkb3duIGNvbnRhaW5lcj1cImJvZHlcIiBbcGxhY2VtZW50XT1cIkVOID8gJ2JvdHRvbS1yaWdodCcgOiAnYm90dG9tLWxlZnQnXCIgXHJcbiAgICAgICAgICAgICAjZHJvcGRvd249XCJuZ2JEcm9wZG93blwiIGNsYXNzPVwic3ViaGVhZGVyLWJ0blwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiBocmVmPVwiamF2YXNjcmlwdDo7XCIgKGNsaWNrKT1cIm9wdGlvbnMuRmlsdGVyc0J1dHRvbi5GdW5jdGlvbigpXCIgbmdiRHJvcGRvd25Ub2dnbGVcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBmaWx0ZXJzLWJ0blwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTVcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9hcnJvd2Ryb3Bkb3duLnN2ZydcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuRmlsdGVyc0J1dHRvbi5CdXR0b25UZXh0S2V5KX19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudS1jdXN0b20gZmlsdGVycy1kcm9wZG93blwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBbaGlkZGVuXT1cIm9wdGlvbnMuRmlsdGVycy5TaG93TG9hZGluZ0luRmlsdGVyc0JveFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWx0ZXItc2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBvcHRpb25zLkZpbHRlcnMuQ29udHJvbHNPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ1N3aXRjaF09XCJjb250cm9sLmtleVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZUVudW0uU2luZ2xlU2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5NdWxpcGxlU2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1Ecm9wZG93bkxpc3QgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLURyb3Bkb3duTGlzdD5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5EYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1EYXRlVGltZVBpY2tlciBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRGF0ZVRpbWVQaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZUVudW0uRGF0ZVRpbWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLURhdGVUaW1lUGlja2VyIFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1EYXRlVGltZVBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIkRhdGFUeXBlRW51bS5UaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1EYXRlVGltZVBpY2tlciBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRGF0ZVRpbWVQaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZUVudW0uQm9vbGVhblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVG9nZ2xlc2xpZGUgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLVRvZ2dsZXNsaWRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtVGFnc0lucHV0IFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1UYWdzSW5wdXQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUtYnV0dG9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWxpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuRmlsdGVycy5SZXN0RnVuY3Rpb24oZHJvcGRvd24pXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7dHJhbnNsYXRlKFwiUmVzZXRcIil9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1icmFuZCBidG4tc21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3B0aW9ucy5GaWx0ZXJzLkFwcGx5RnVuY3Rpb24oZHJvcGRvd24pXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7dHJhbnNsYXRlKFwiQXBwbHlcIil9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvbiBhcHBQcmV2ZW50RG91YmxlQ2xpY2sgdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwib3B0aW9ucy5BZGRCdXR0b24uQWN0aXZlXCIgKGNsaWNrKT1cIm9wdGlvbnMuQWRkQnV0dG9uLkZ1bmN0aW9uKClcIiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtIHN1YmhlYWRlci1idG5cIj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuQWRkQnV0dG9uLkJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8YnV0dG9uIGFwcFByZXZlbnREb3VibGVDbGljayB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCJvcHRpb25zLkVkaXRCdXR0b24uQWN0aXZlXCIgKGNsaWNrKT1cIm9wdGlvbnMuRWRpdEJ1dHRvbi5GdW5jdGlvbigpXCIgY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbSBzdWJoZWFkZXItYnRuXCI+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLkVkaXRCdXR0b24uQnV0dG9uVGV4dEtleSl9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gYXBwUHJldmVudERvdWJsZUNsaWNrIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIm9wdGlvbnMuRGVsZXRlQnV0dG9uLkFjdGl2ZVwiIChjbGljayk9XCJvcHRpb25zLkRlbGV0ZUJ1dHRvbi5GdW5jdGlvbigpXCIgY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbSBzdWJoZWFkZXItYnRuXCI+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLkRlbGV0ZUJ1dHRvbi5CdXR0b25UZXh0S2V5KX19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDwhLS1FbmQgdG9vbGJhci0tPlxyXG4iXX0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9wYWdlLWhlYWRlci1jb21wb25lbnQvcGFnZS1oZWFkZXItY29tcG9uZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVksS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBSW5FLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBTXBELE1BQU0sT0FBTyw0QkFBNEI7SUFPdkMsWUFBb0IsTUFBYyxFQUFTLGNBQThCO1FBQXJELFdBQU0sR0FBTixNQUFNLENBQVE7UUFBUyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFGbEUsaUJBQVksR0FBRyxRQUFRLENBQUM7SUFJL0IsQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQzNELENBQUM7OEdBakJVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLGtIQ1Z6Qyx5dU9BcUlrQjs7MkZEM0hMLDRCQUE0QjtrQkFKeEMsU0FBUzsrQkFDRSw0QkFBNEI7d0dBSzdCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICdAYm5zaWdodHMvYmJzZi11dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBEYXRhVHlwZSB9IGZyb20gJy4uLy4uL1NoYXJlZC9FbnVtcy9FbnVtcyc7XHJcbmltcG9ydCB7IFBhZ2VIZWFkZXJPcHRpb25zIH0gZnJvbSAnLi4vLi4vU2hhcmVkL01vZGVscy9wYWdlLWhlYWRlci1vcHRpb25zJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdiYnNmLXBhZ2UtaGVhZGVyLWNvbXBvbmVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2UtaGVhZGVyLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBhZ2VIZWFkZXJDb21wb25lbnRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEVOOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgb3B0aW9uczogUGFnZUhlYWRlck9wdGlvbnM7XHJcblxyXG4gIHB1YmxpYyBEYXRhVHlwZUVudW0gPSBEYXRhVHlwZTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5U2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG4gIHRyYW5zbGF0ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy51dGlsaXR5U2VydmljZS5nZXRSZXNvdXJjZVZhbHVlKGtleSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuRU4gPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmlzQ3VycmVudExhbmd1YWdlRW5nbGlzaCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPCEtLXRvb2xiYXItLT5cclxuPGRpdiBjbGFzcz1cInRvb2xiYXJcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTtcIj5cclxuICA8aW1nIGNsYXNzPVwicGF0dGVyblwiIHNyYz1cIi4vc3JjL2Fzc2V0cy9pbWFnZXMvQmctcGF0dGVybi5wbmdcIiAvPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXIteHhsXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZSB3LTEwMFwiIFtuZ0NsYXNzXT1cIiFvcHRpb25zLmxpc3Rpbmc/ICdtYi0wJyA6ICcnXCI+XHJcbiAgICAgICAgPGgzICpuZ0lmPVwib3B0aW9ucy50aXRsZUtleXx8b3B0aW9ucy50aXRsZVZhbHVlXCI+e3tvcHRpb25zLnRpdGxlVmFsdWUgPT0gbnVsbCA/IHRyYW5zbGF0ZShvcHRpb25zLnRpdGxlS2V5KSA6XHJcbiAgICAgICAgICBvcHRpb25zLnRpdGxlVmFsdWUgfX08L2gzPlxyXG4gICAgICAgIDxwIGNsYXNzPVwic3ViLXRpdGxlXCIgKm5nSWY9XCJvcHRpb25zLmxpc3RpbmdcIj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuc3ViVGl0bGVLZXkpfX1cclxuICAgICAgICA8L3A+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1lbmRcIj5cclxuICAgICAgICAgIDx1bCBjbGFzcz1cImJyZWFkY3J1bWIgYnJlYWRjcnVtYi1kb3RcIiAqbmdJZj1cIm9wdGlvbnMuYnJlYWRDcnVtYi5hY3RpdmVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zLmJyZWFkQ3J1bWIuYnJlYWRDcnVtYkl0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiYnJlYWRjcnVtYi1pdGVtXCIgKm5nSWY9XCIhaXRlbS5hY3RpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiaXRlbS5yb3V0ZVwiIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVcIj57eyBpdGVtLmxhYmVsIH19PC9hPlxyXG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhaXRlbS5yb3V0ZVwiIGhyZWY9XCJqYXZhc2NyaXB0OiB2b2lkKDApO1wiPnt7IGl0ZW0ubGFiZWwgfX08L2E+XHJcbiAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJicmVhZGNydW1iLWl0ZW0gYWN0aXZlXCIgKm5nSWY9XCJpdGVtLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZS1zdWJoZWFkZXJcIiAqbmdJZj1cIm9wdGlvbnMuZHJvcERvd25BY3Rpb25zLmFjdGl2ZVwiPlxyXG4gICAgICAgICAgICA8YnV0dG9uIFtyb3V0ZXJMaW5rXT1cIml0ZW0ucm91dGVyTGlua1wiIChjbGljayk9J2l0ZW0uZnVuY3Rpb24/aXRlbS5mdW5jdGlvbigpOlwiXCInXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGJ0bi1zbSBzdWJoZWFkZXItYnRuIGV4cG9ydC1idG5cIlxyXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBpdGVtIG9mIG9wdGlvbnMuZHJvcERvd25BY3Rpb25zLmRyb3Bkb3duQWN0aW9uSXRlbXNcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTNcIiBbaW5saW5lU1ZHXT1cIml0ZW0uc3ZnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIHt7aXRlbS50ZXh0fX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdlLXN1YmhlYWRlclwiPlxyXG4gICAgICA8QkJTRi1UZXh0Qm94ICpuZ0lmPVwib3B0aW9ucy5zZWFyY2hUZXh0Qm94LmFjdGl2ZVwiIFtvcHRpb25zXT1cIm9wdGlvbnMuc2VhcmNoVGV4dEJveC50ZXh0U2VhcmNoQm94T3B0aW9uc1wiXHJcbiAgICAgICAgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgIDwvQkJTRi1UZXh0Qm94PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdWJoZWFkZXItYnRuIGxpc3QtZ3JpZFwiICpuZ0lmPVwib3B0aW9ucy5ncmlkVmlldy5hY3RpdmVcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyaWQtaXRlbVwiIFtuZ0NsYXNzXT1cIm9wdGlvbnMuZ3JpZFZpZXcuc2hvd0dyaWRWaWV3QnlEZWZhdWx0PyAnbGlzdC1ncmlkLWl0ZW0tYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuZ3JpZFZpZXcudG9nZ2xlRnVuY3Rpb24oKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTRcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9MaXN0aW5nLnN2ZydcIj5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncmlkLWl0ZW1cIiBbbmdDbGFzc109XCIhb3B0aW9ucy5ncmlkVmlldy5zaG93R3JpZFZpZXdCeURlZmF1bHQ/ICdsaXN0LWdyaWQtaXRlbS1hY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3B0aW9ucy5ncmlkVmlldy50b2dnbGVGdW5jdGlvbigpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ZnLWljb24gc3ZnLWljb24tNFwiIFtpbmxpbmVTVkddPVwiJy9hc3NldHMvaW1hZ2VzL0dyaWQuc3ZnJ1wiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIm9wdGlvbnMuZXhwb3J0QnV0dG9uLmFjdGl2ZVwiIChjbGljayk9XCJvcHRpb25zLmV4cG9ydEJ1dHRvbi5mdW5jdGlvbigpXCJcclxuICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gc3ViaGVhZGVyLWJ0biBleHBvcnQtYnRuXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTVcIiBbaW5saW5lU1ZHXT1cIicvYXNzZXRzL2ltYWdlcy9leHBvcnQuc3ZnJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgIHt7dHJhbnNsYXRlKG9wdGlvbnMuZXhwb3J0QnV0dG9uLmJ1dHRvblRleHRLZXkpfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuXHJcblxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zLmZpbHRlcnNCdXR0b24uYWN0aXZlXCIgbmdiRHJvcGRvd24gY29udGFpbmVyPVwiYm9keVwiXHJcbiAgICAgICAgICBbcGxhY2VtZW50XT1cIkVOID8gJ2JvdHRvbS1yaWdodCcgOiAnYm90dG9tLWxlZnQnXCIgI2Ryb3Bkb3duPVwibmdiRHJvcGRvd25cIiBjbGFzcz1cInN1YmhlYWRlci1idG5cIj5cclxuICAgICAgICAgIDxidXR0b24gaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJvcHRpb25zLmZpbHRlcnNCdXR0b24uZnVuY3Rpb24oKVwiIG5nYkRyb3Bkb3duVG9nZ2xlXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBidG4tc20gZmlsdGVycy1idG5cIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi01XCIgW2lubGluZVNWR109XCInL2Fzc2V0cy9pbWFnZXMvYXJyb3dkcm9wZG93bi5zdmcnXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLmZpbHRlcnNCdXR0b24uYnV0dG9uVGV4dEtleSl9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBjbGFzcz1cImRyb3Bkb3duLW1lbnUtY3VzdG9tIGZpbHRlcnMtZHJvcGRvd25cIj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgW2hpZGRlbl09XCJvcHRpb25zLmZpbHRlcnMuc2hvd0xvYWRpbmdJbkZpbHRlcnNCb3hcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsdGVyLXNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGNvbnRyb2wgb2Ygb3B0aW9ucy5maWx0ZXJzLmNvbnRyb2xzT3B0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbbmdTd2l0Y2hdPVwiY29udHJvbC5rZXlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLlNpbmdsZVNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZUVudW0uTXVsaXBsZVNlbGVjdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRHJvcGRvd25MaXN0IFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ecm9wZG93bkxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZUVudW0uRGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRGF0ZVRpbWVQaWNrZXIgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLURhdGVUaW1lUGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLkRhdGVUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8QkJTRi1EYXRlVGltZVBpY2tlciBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtRGF0ZVRpbWVQaWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCJEYXRhVHlwZUVudW0uVGltZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJCU0YtRGF0ZVRpbWVQaWNrZXIgW29wdGlvbnNdPVwiY29udHJvbC52YWx1ZVwiIFtncm91cF09XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CQlNGLURhdGVUaW1lUGlja2VyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiRGF0YVR5cGVFbnVtLkJvb2xlYW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRvZ2dsZXNsaWRlIFtvcHRpb25zXT1cImNvbnRyb2wudmFsdWVcIiBbZ3JvdXBdPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQkJTRi1Ub2dnbGVzbGlkZT5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgICAgICAgIDxCQlNGLVRhZ3NJbnB1dCBbb3B0aW9uc109XCJjb250cm9sLnZhbHVlXCIgW2dyb3VwXT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L0JCU0YtVGFnc0lucHV0PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51LWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1saWdodFwiIChjbGljayk9XCJvcHRpb25zLmZpbHRlcnMucmVzdEZ1bmN0aW9uKGRyb3Bkb3duKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e3RyYW5zbGF0ZShcIlJlc2V0XCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tYnJhbmQgYnRuLXNtXCIgKGNsaWNrKT1cIm9wdGlvbnMuZmlsdGVycy5hcHBseUZ1bmN0aW9uKGRyb3Bkb3duKVwiPlxyXG4gICAgICAgICAgICAgICAgICB7e3RyYW5zbGF0ZShcIkFwcGx5XCIpfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxidXR0b24gYXBwUHJldmVudERvdWJsZUNsaWNrIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIm9wdGlvbnMuYWRkQnV0dG9uLmFjdGl2ZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3B0aW9ucy5hZGRCdXR0b24uZnVuY3Rpb24oKVwiIGNsYXNzPVwiYnRuIGJ0bi1icmFuZCBidG4tc20gc3ViaGVhZGVyLWJ0blwiPlxyXG4gICAgICAgICAge3t0cmFuc2xhdGUob3B0aW9ucy5hZGRCdXR0b24uYnV0dG9uVGV4dEtleSl9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gYXBwUHJldmVudERvdWJsZUNsaWNrIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIm9wdGlvbnMuZWRpdEJ1dHRvbi5hY3RpdmVcIlxyXG4gICAgICAgICAgKGNsaWNrKT1cIm9wdGlvbnMuZWRpdEJ1dHRvbi5mdW5jdGlvbigpXCIgY2xhc3M9XCJidG4gYnRuLWJyYW5kIGJ0bi1zbSBzdWJoZWFkZXItYnRuXCI+XHJcbiAgICAgICAgICB7e3RyYW5zbGF0ZShvcHRpb25zLmVkaXRCdXR0b24uYnV0dG9uVGV4dEtleSl9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxidXR0b24gYXBwUHJldmVudERvdWJsZUNsaWNrIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cIm9wdGlvbnMuZGVsZXRlQnV0dG9uLmFjdGl2ZVwiXHJcbiAgICAgICAgICAoY2xpY2spPVwib3B0aW9ucy5kZWxldGVCdXR0b24uZnVuY3Rpb24oKVwiIGNsYXNzPVwiYnRuIGJ0bi1icmFuZCBidG4tc20gc3ViaGVhZGVyLWJ0blwiPlxyXG4gICAgICAgICAge3t0cmFuc2xhdGUob3B0aW9ucy5kZWxldGVCdXR0b24uYnV0dG9uVGV4dEtleSl9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjwhLS1FbmQgdG9vbGJhci0tPiJdfQ==