@flower-city-online/itinerary-lib 0.0.52 → 0.0.55

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 (78) hide show
  1. package/esm2022/lib/itinerary-app/modules/dashboard/components/navbar/navbar.component.mjs +5 -4
  2. package/esm2022/lib/itinerary-app/modules/itineraries/components/app-header-desktop/app-header-desktop.component.mjs +6 -5
  3. package/esm2022/lib/itinerary-app/modules/itineraries/components/comment-filter-menu/comment-filter-menu.component.mjs +5 -5
  4. package/esm2022/lib/itinerary-app/modules/itineraries/components/filter-menu/filter-menu.component.mjs +6 -5
  5. package/esm2022/lib/itinerary-app/modules/itineraries/components/share-popup/share-popup.component.mjs +6 -5
  6. package/esm2022/lib/itinerary-app/modules/itineraries/pages/advanced-filters/advanced-filters.component.mjs +5 -4
  7. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/builder.component.mjs +4 -5
  8. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-destination/create-itinerary-destination.component.mjs +5 -4
  9. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-mode/create-itinerary-draw-mode.component.mjs +7 -6
  10. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-preview/create-itinerary-draw-preview.component.mjs +7 -6
  11. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-header/create-itinerary-header.component.mjs +3 -3
  12. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-member-details/create-itinerary-member-details.component.mjs +6 -5
  13. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-filter/create-itinerary-no-visual-filter.component.mjs +8 -7
  14. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-preview/create-itinerary-no-visual-preview.component.mjs +7 -6
  15. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-start-location/create-itinerary-start-location.component.mjs +6 -5
  16. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-user-search/create-itinerary-user-search.component.mjs +5 -3
  17. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary/created-itinerary.component.mjs +7 -6
  18. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-add-place.component.mjs +6 -5
  19. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/select-itinerary-event/select-itinerary-event.component.mjs +6 -4
  20. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-location/suggested-events-location.component.mjs +7 -6
  21. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-radius/suggested-events-route-radius.component.mjs +6 -5
  22. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-type/suggested-events-route-type.component.mjs +7 -5
  23. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comment-replies/components/comment-single/comment-single.component.mjs +5 -4
  24. package/esm2022/lib/itinerary-app/modules/itineraries/pages/explore/explore.component.mjs +8 -7
  25. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-author-history/itinerary-author-history.component.mjs +7 -6
  26. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/details/details.component.mjs +5 -4
  27. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/itinerary-detail.component.mjs +4 -3
  28. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/existing-friends/existing-friends.component.mjs +5 -3
  29. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/list-friend-users/list-friend-users.component.mjs +5 -4
  30. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/send-friend-request/send-friend-request.component.mjs +5 -4
  31. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/all-people/all-people.component.mjs +5 -4
  32. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/existing-members/existing-members.component.mjs +5 -3
  33. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/send-invite/send-invite.component.mjs +5 -4
  34. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/user-list/user-list.component.mjs +4 -3
  35. package/esm2022/lib/itinerary-app/modules/search/pages/main-search/main-search.component.mjs +4 -4
  36. package/esm2022/lib/itinerary-app/modules/user/profile/profile.component.mjs +4 -4
  37. package/esm2022/lib/itinerary-app/shared/bottom-modal/bottom-modal.component.mjs +65 -0
  38. package/esm2022/lib/itinerary-app/shared/card-component/card-component.component.mjs +5 -4
  39. package/esm2022/lib/itinerary-app/shared/comment/comment.component.mjs +5 -4
  40. package/esm2022/lib/itinerary-app/shared/custom-story-card/custom-story-card.component.mjs +4 -4
  41. package/esm2022/lib/itinerary-app/shared/cutom-card/cutom-card.component.mjs +6 -5
  42. package/esm2022/lib/itinerary-app/shared/footer/footer.component.mjs +6 -6
  43. package/esm2022/lib/itinerary-app/shared/header/header.component.mjs +2 -2
  44. package/esm2022/lib/itinerary-app/shared/icon-button/icon-button.component.mjs +37 -10
  45. package/esm2022/lib/itinerary-app/shared/input-field-select/input-field-select.component.mjs +109 -0
  46. package/esm2022/lib/itinerary-app/shared/notification-tile/notification-tile.component.mjs +4 -4
  47. package/esm2022/lib/itinerary-app/shared/popup-modal/popup-modal.component.mjs +85 -0
  48. package/esm2022/lib/itinerary-app/shared/search-bar/search-bar.component.mjs +30 -0
  49. package/esm2022/lib/itinerary-app/shared/search-popup/search-popup.component.mjs +4 -4
  50. package/esm2022/lib/itinerary-app/shared/selectable/selectable.component.mjs +52 -0
  51. package/esm2022/lib/itinerary-app/shared/shared.module.mjs +34 -6
  52. package/esm2022/lib/itinerary-app/shared/users-stack/users-stack.component.mjs +4 -4
  53. package/fesm2022/flower-city-online-itinerary-lib.mjs +522 -152
  54. package/fesm2022/flower-city-online-itinerary-lib.mjs.map +1 -1
  55. package/lib/itinerary-app/shared/bottom-modal/bottom-modal.component.d.ts +20 -0
  56. package/lib/itinerary-app/shared/icon-button/icon-button.component.d.ts +13 -4
  57. package/lib/itinerary-app/shared/input-field-select/input-field-select.component.d.ts +35 -0
  58. package/lib/itinerary-app/shared/popup-modal/popup-modal.component.d.ts +30 -0
  59. package/lib/itinerary-app/shared/search-bar/search-bar.component.d.ts +12 -0
  60. package/lib/itinerary-app/shared/selectable/selectable.component.d.ts +20 -0
  61. package/lib/itinerary-app/shared/shared.module.d.ts +12 -7
  62. package/package.json +1 -1
  63. package/src/lib/itinerary-app/_styles/modal.scss +2 -2
  64. package/src/lib/itinerary-app/_styles/styles.scss +327 -327
  65. package/src/lib/itinerary-app/styles.scss +237 -289
  66. package/styles.css +1 -1
  67. package/src/lib/itinerary-app/_styles/component-global-styles/bottom-navigation.scss +0 -19
  68. package/src/lib/itinerary-app/_styles/component-global-styles/create-itinerary.scss +0 -16
  69. package/src/lib/itinerary-app/_styles/component-global-styles/custom-button.scss +0 -32
  70. package/src/lib/itinerary-app/_styles/component-global-styles/custom-menu.scss +0 -38
  71. package/src/lib/itinerary-app/_styles/component-global-styles/dashboard.scss +0 -5
  72. package/src/lib/itinerary-app/_styles/component-global-styles/delete-itineraries.scss +0 -7
  73. package/src/lib/itinerary-app/_styles/component-global-styles/filter-menu.scss +0 -36
  74. package/src/lib/itinerary-app/_styles/component-global-styles/header.scss +0 -22
  75. package/src/lib/itinerary-app/_styles/component-global-styles/navbar.scss +0 -47
  76. package/src/lib/itinerary-app/_styles/component-global-styles/search-bar.scss +0 -17
  77. package/src/lib/itinerary-app/_styles/component-global-styles/side-bar.scss +0 -28
  78. package/src/lib/itinerary-app/_styles/component-global-styles/tab-bar.scss +0 -21
@@ -6,7 +6,7 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../../../_services/api.service";
7
7
  import * as i2 from "@angular/common";
8
8
  import * as i3 from "@angular/router";
9
- import * as i4 from "@naniteninja/ionic-lib";
9
+ import * as i4 from "../../../../shared/search-bar/search-bar.component";
10
10
  import * as i5 from "../../components/search-chips/search-chips.component";
11
11
  import * as i6 from "../../components/recent-searches/recent-searches.component";
12
12
  import * as i7 from "../../components/quick-actions/quick-actions.component";
@@ -186,11 +186,11 @@ export class MainSearchComponent {
186
186
  navToBack = () => this.location.back();
187
187
  clear() { }
188
188
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MainSearchComponent, deps: [{ token: i1.ApiService }, { token: i2.Location }, { token: i0.ChangeDetectorRef }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
189
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MainSearchComponent, selector: "app-main-search", inputs: { enableSelection: "enableSelection", enableGridFilters: "enableGridFilters", enableCreate: "enableCreate", enableRefresh: "enableRefresh", enableTrash: "enableTrash", isLoading: "isLoading", totalRecords: "totalRecords", rowsPerPage: "rowsPerPage", first: "first", rowsPerPageOptions: "rowsPerPageOptions", actionButtons: "actionButtons", currencyDisplayCode: "currencyDisplayCode", minimumColumnWidth: "minimumColumnWidth", isEditInProgress: "isEditInProgress" }, outputs: { lazyLoad: "lazyLoad", columnsChange: "columnsChange", editComplete: "editComplete", editChange: "editChange", selectAllPages: "selectAllPages", createClicked: "createClicked", refreshData: "refreshData", showTrash: "showTrash", excludeItem: "excludeItem", userFilter: "userFilter" }, ngImport: i0, template: "<div class=\"main-search-screen pt-5 px-4\">\r\n <div class=\"sub-screen\">\r\n <lib-search-bar class=\"search-field\" [placeholderText]=\"'SEARCH_ITINERARIES' | translate\"\r\n (searchStringChange)=\"handleSearchStringChange($event)\" (cleared)=\"clear()\" [searchIcon]=\"ICONS['dashboardSearch']\">\r\n </lib-search-bar>\r\n <app-search-chips [selectedChip]=\"selectedCategory\" (chipItemSelected)=\"categorySelected($event)\"></app-search-chips>\r\n <div class=\"p-4\">\r\n <ng-container *ngIf=\"isSearching\">\r\n <app-search-results [data]=\"filteredData\"></app-search-results>\r\n </ng-container>\r\n <app-recent-searches *ngIf=\"!isSearching\"></app-recent-searches>\r\n <app-serach-clear-history *ngIf=\"!isSearching\"></app-serach-clear-history>\r\n <div class=\"border-t border-gray-700 mt-2\" *ngIf=\"!isSearching\"></div>\r\n <app-quick-actions [hidden]=\"searchString && !selectedCategory\"></app-quick-actions>\r\n <app-serach-bottom-bar></app-serach-bottom-bar>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".main-search-screen{height:100%;overflow-y:auto}\n"], dependencies: [{ kind: "component", type: i4.SearchBarComponent, selector: "lib-search-bar", inputs: ["placeholderText", "inputText", "order", "clearIcon", "searchIcon"], outputs: ["searchStringChange", "cleared", "focused", "unfocused"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.SearchChipsComponent, selector: "app-search-chips", inputs: ["selectedChip"], outputs: ["chipItemSelected"] }, { kind: "component", type: i6.RecentSearchesComponent, selector: "app-recent-searches" }, { kind: "component", type: i7.QuickActionsComponent, selector: "app-quick-actions" }, { kind: "component", type: i8.SerachBottomBarComponent, selector: "app-serach-bottom-bar" }, { kind: "component", type: i9.SerachClearHistoryComponent, selector: "app-serach-clear-history" }, { kind: "component", type: i10.SearchResultsComponent, selector: "app-search-results", inputs: ["data"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
189
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MainSearchComponent, selector: "app-main-search", inputs: { enableSelection: "enableSelection", enableGridFilters: "enableGridFilters", enableCreate: "enableCreate", enableRefresh: "enableRefresh", enableTrash: "enableTrash", isLoading: "isLoading", totalRecords: "totalRecords", rowsPerPage: "rowsPerPage", first: "first", rowsPerPageOptions: "rowsPerPageOptions", actionButtons: "actionButtons", currencyDisplayCode: "currencyDisplayCode", minimumColumnWidth: "minimumColumnWidth", isEditInProgress: "isEditInProgress" }, outputs: { lazyLoad: "lazyLoad", columnsChange: "columnsChange", editComplete: "editComplete", editChange: "editChange", selectAllPages: "selectAllPages", createClicked: "createClicked", refreshData: "refreshData", showTrash: "showTrash", excludeItem: "excludeItem", userFilter: "userFilter" }, ngImport: i0, template: "<div class=\"main-search-screen pt-5 px-4\">\r\n <div class=\"sub-screen\">\r\n <app-search-bar class=\"search-field\" [placeholderText]=\"'SEARCH_ITINERARIES' | translate\"\r\n (searchStringChange)=\"handleSearchStringChange($event)\" (cleared)=\"clear()\" [searchIcon]=\"ICONS['dashboardSearch']\">\r\n </app-search-bar>\r\n <app-search-chips [selectedChip]=\"selectedCategory\" (chipItemSelected)=\"categorySelected($event)\"></app-search-chips>\r\n <div class=\"p-4\">\r\n <ng-container *ngIf=\"isSearching\">\r\n <app-search-results [data]=\"filteredData\"></app-search-results>\r\n </ng-container>\r\n <app-recent-searches *ngIf=\"!isSearching\"></app-recent-searches>\r\n <app-serach-clear-history *ngIf=\"!isSearching\"></app-serach-clear-history>\r\n <div class=\"border-t border-gray-700 mt-2\" *ngIf=\"!isSearching\"></div>\r\n <app-quick-actions [hidden]=\"searchString && !selectedCategory\"></app-quick-actions>\r\n <app-serach-bottom-bar></app-serach-bottom-bar>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".main-search-screen{height:100%;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.SearchBarComponent, selector: "app-search-bar", inputs: ["searchIcon", "placeholderText"], outputs: ["searchStringChange", "cleared"] }, { kind: "component", type: i5.SearchChipsComponent, selector: "app-search-chips", inputs: ["selectedChip"], outputs: ["chipItemSelected"] }, { kind: "component", type: i6.RecentSearchesComponent, selector: "app-recent-searches" }, { kind: "component", type: i7.QuickActionsComponent, selector: "app-quick-actions" }, { kind: "component", type: i8.SerachBottomBarComponent, selector: "app-serach-bottom-bar" }, { kind: "component", type: i9.SerachClearHistoryComponent, selector: "app-serach-clear-history" }, { kind: "component", type: i10.SearchResultsComponent, selector: "app-search-results", inputs: ["data"] }, { kind: "pipe", type: i11.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
190
190
  }
191
191
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MainSearchComponent, decorators: [{
192
192
  type: Component,
193
- args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-main-search', standalone: false, template: "<div class=\"main-search-screen pt-5 px-4\">\r\n <div class=\"sub-screen\">\r\n <lib-search-bar class=\"search-field\" [placeholderText]=\"'SEARCH_ITINERARIES' | translate\"\r\n (searchStringChange)=\"handleSearchStringChange($event)\" (cleared)=\"clear()\" [searchIcon]=\"ICONS['dashboardSearch']\">\r\n </lib-search-bar>\r\n <app-search-chips [selectedChip]=\"selectedCategory\" (chipItemSelected)=\"categorySelected($event)\"></app-search-chips>\r\n <div class=\"p-4\">\r\n <ng-container *ngIf=\"isSearching\">\r\n <app-search-results [data]=\"filteredData\"></app-search-results>\r\n </ng-container>\r\n <app-recent-searches *ngIf=\"!isSearching\"></app-recent-searches>\r\n <app-serach-clear-history *ngIf=\"!isSearching\"></app-serach-clear-history>\r\n <div class=\"border-t border-gray-700 mt-2\" *ngIf=\"!isSearching\"></div>\r\n <app-quick-actions [hidden]=\"searchString && !selectedCategory\"></app-quick-actions>\r\n <app-serach-bottom-bar></app-serach-bottom-bar>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".main-search-screen{height:100%;overflow-y:auto}\n"] }]
193
+ args: [{ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'app-main-search', standalone: false, template: "<div class=\"main-search-screen pt-5 px-4\">\r\n <div class=\"sub-screen\">\r\n <app-search-bar class=\"search-field\" [placeholderText]=\"'SEARCH_ITINERARIES' | translate\"\r\n (searchStringChange)=\"handleSearchStringChange($event)\" (cleared)=\"clear()\" [searchIcon]=\"ICONS['dashboardSearch']\">\r\n </app-search-bar>\r\n <app-search-chips [selectedChip]=\"selectedCategory\" (chipItemSelected)=\"categorySelected($event)\"></app-search-chips>\r\n <div class=\"p-4\">\r\n <ng-container *ngIf=\"isSearching\">\r\n <app-search-results [data]=\"filteredData\"></app-search-results>\r\n </ng-container>\r\n <app-recent-searches *ngIf=\"!isSearching\"></app-recent-searches>\r\n <app-serach-clear-history *ngIf=\"!isSearching\"></app-serach-clear-history>\r\n <div class=\"border-t border-gray-700 mt-2\" *ngIf=\"!isSearching\"></div>\r\n <app-quick-actions [hidden]=\"searchString && !selectedCategory\"></app-quick-actions>\r\n <app-serach-bottom-bar></app-serach-bottom-bar>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".main-search-screen{height:100%;overflow-y:auto}\n"] }]
194
194
  }], ctorParameters: () => [{ type: i1.ApiService }, { type: i2.Location }, { type: i0.ChangeDetectorRef }, { type: i3.Router }], propDecorators: { enableSelection: [{
195
195
  type: Input
196
196
  }], enableGridFilters: [{
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
240
240
  }], userFilter: [{
241
241
  type: Output
242
242
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvbW9kdWxlcy9zZWFyY2gvcGFnZXMvbWFpbi1zZWFyY2gvbWFpbi1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvbW9kdWxlcy9zZWFyY2gvcGFnZXMvbWFpbi1zZWFyY2gvbWFpbi1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkgsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWEvRSxNQUFNLE9BQU8sbUJBQW1CO0lBOERWO0lBQ1Y7SUFDQTtJQUNBO0lBaEVWLEtBQUssR0FBVSxLQUFLLENBQUM7SUFDckIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBRXhCLElBQUksR0FBbUIsRUFBRSxDQUFDO0lBQzFCLFlBQVksR0FBbUIsRUFBRSxDQUFDO0lBQ3pCLGtCQUFrQixHQUFXLEVBQUUsQ0FBQztJQUNoQyx3QkFBd0IsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMx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ZixLQUFLOzJKQWlCVixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWljb24gfSBmcm9tICcuLi8uLi8uLi8uLi9faW50ZXJmYWNlL2ljb24nO1xyXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi9faW50ZXJmYWNlL3NlYXJjaFJlc3VsdHMnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEVkaXRDb21wbGV0ZUV2ZW50LCBHcmlkQ29sdW1uQ2hhbmdlLCBHcmlkRGF0YVJlcXVlc3R9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRmlsdGVyRGF0YVJlcXVlc3QsIFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc2VsZWN0b3I6ICdhcHAtbWFpbi1zZWFyY2gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21haW4tc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9tYWluLXNlYXJjaC5jb21wb25lbnQuc2NzcycsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFpblNlYXJjaENvbXBvbmVudCB7XHJcbiAgSUNPTlM6IElpY29uID0gSUNPTlM7XHJcbiAgaXNTZWFyY2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZGF0YTogU2VhcmNoUmVzdWx0W10gPSBbXTtcclxuICBmaWx0ZXJlZERhdGE6IFNlYXJjaFJlc3VsdFtdID0gW107XHJcbiAgcmVhZG9ubHkgZGVmYXVsdFJvd3NQZXJQYWdlOiBudW1iZXIgPSAxMDtcclxuICByZWFkb25seSBkZWZhdWx0Um93UGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyNSwgNTBdO1xyXG4gIHB1YmxpYyBzZWFyY2hTdHJpbmc6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBzZWxlY3RlZENhdGVnb3J5OiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFN0cmluZ1N1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZVNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZW5hYmxlR3JpZEZpbHRlcnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZUNyZWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbmFibGVUcmFzaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSByb3dzUGVyUGFnZTogbnVtYmVyID0gdGhpcy5kZWZhdWx0Um93c1BlclBhZ2U7XHJcbiAgQElucHV0KCkgZmlyc3Q6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgcm93c1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSA9IHRoaXMuZGVmYXVsdFJvd1BlclBhZ2VPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvbnM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgY3VycmVuY3lEaXNwbGF5Q29kZTogc3RyaW5nID0gJ1VTRCc7XHJcbiAgQElucHV0KCkgbWluaW11bUNvbHVtbldpZHRoOiBudW1iZXIgPSAtMTtcclxuXHJcbiAgQE91dHB1dCgpIGxhenlMb2FkOiBFdmVudEVtaXR0ZXI8R3JpZERhdGFSZXF1ZXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZERhdGFSZXF1ZXN0PigpO1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8R3JpZENvbHVtbkNoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRDb2x1bW5DaGFuZ2U+KCk7XHJcbiAgQE91dHB1dCgpIGVkaXRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEVkaXRDb21wbGV0ZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdENvbXBsZXRlRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGVkaXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0QWxsUGFnZXM6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgY3JlYXRlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSByZWZyZXNoRGF0YTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBzaG93VHJhc2g6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgZXhjbHVkZUl0ZW06IEV2ZW50RW1pdHRlcjwoc3RyaW5nIHwgbnVtYmVyKVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8KHN0cmluZyB8IG51bWJlcilbXT4oKTtcclxuICBASW5wdXQoKSBpc0VkaXRJblByb2dyZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLy8gT3B0aW9uYWw6IGlmIHVzaW5nIHVzZXJGaWx0ZXJcclxuICBAT3V0cHV0KCkgdXNlckZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgcHVibGljRmllbGROYW1lOiBzdHJpbmc7XHJcbiAgICBvcGVyYXRvclR5cGU6IHN0cmluZztcclxuICAgIHZhbHVlczogc3RyaW5nW107XHJcbiAgfT4oKTtcclxuICBmaWx0ZXJzc3M6IFNlbGVjdE9wdGlvbjxudW1iZXI+W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnSGVsbG8nLFxyXG4gICAgICB2YWx1ZTogMixcclxuICAgICAgc2VsZWN0ZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgdmlzaWJsZUNvbW1lbnRzOiBTYWZlSHRtbFtdID0gW107XHJcblxyXG4gIG9uU2VsZWN0QWxsUGFnZXMoZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0QWxsUGFnZXMuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBlbWl0VHJhc2hFdmVudChldmVudDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuc2hvd1RyYXNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHsgfVxyXG4gIHB1YmxpYyBlbWl0Q3JlYXRlRXZlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUNsaWNrZWQuZW1pdCh0cnVlKTtcclxuICB9XHJcbiAgcHVibGljIGVtaXRSZWZyZXNoRXZlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2hEYXRhLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3RyaW5nU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZWFyY2hTdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFN0cmluZyA9IHNlYXJjaFN0cmluZztcclxuICAgICAgICB0aGlzLmZpcnN0ID0gMDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3QgbmF2ID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcclxuICAgIGlmIChuYXY/LmV4dHJhcy5zdGF0ZSAmJiBuYXYuZXh0cmFzLnN0YXRlWydzZWxlY3RlZENhdGVnb3J5J10pIHtcclxuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBuYXYuZXh0cmFzLnN0YXRlWydzZWxlY3RlZENhdGVnb3J5J107XHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZChjYXRlZ29yeSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVzZXJGaWx0ZXJMaXN0OiBGaWx0ZXJEYXRhUmVxdWVzdFtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRmlsdGVyIGJ5IE5hbWUgQXNjZW5kaW5nJyxcclxuICAgICAgcHJvamVjdEdyaWRGaWx0ZXJJZDogJzEyMycsXHJcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiAnRW1wbG95ZWVzJyxcclxuICAgICAgdXNlckZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwdWJsaWNGaWVsZE5hbWU6ICdOYW1lJyxcclxuICAgICAgICAgIG9wZXJhdG9yVHlwZTogJ0NvbnRhaW5zJyxcclxuICAgICAgICAgIHZhbHVlczogWydKb2huJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgc29ydDoge1xyXG4gICAgICAgIGZpZWxkOiAnTmFtZScsXHJcbiAgICAgICAgZGlyZWN0aW9uOiAnQXNjZW5kaW5nJyxcclxuICAgICAgfSxcclxuICAgICAgb3JkZXI6IDEsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRmlsdGVyIGJ5IERlcGFydG1lbnQgYW5kIFNhbGFyeSBEZXNjZW5kaW5nJyxcclxuICAgICAgcHJvamVjdEdyaWRGaWx0ZXJJZDogJzQ1NicsXHJcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiAnRW1wbG95ZWVzJyxcclxuICAgICAgdXNlckZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwdWJsaWNGaWVsZE5hbWU6ICdEZXBhcnRtZW50JyxcclxuICAgICAgICAgIG9wZXJhdG9yVHlwZTogJ0VxdWFscycsXHJcbiAgICAgICAgICB2YWx1ZXM6IFsnSVQnXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHB1YmxpY0ZpZWxkTmFtZTogJ1NhbGFyeScsXHJcbiAgICAgICAgICBvcGVyYXRvclR5cGU6ICdHcmVhdGVyVGhhbicsXHJcbiAgICAgICAgICB2YWx1ZXM6IFs1MDAwMF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgc29ydDoge1xyXG4gICAgICAgIGZpZWxkOiAnU2FsYXJ5JyxcclxuICAgICAgICBkaXJlY3Rpb246ICdEZXNjZW5kaW5nJyxcclxuICAgICAgfSxcclxuICAgICAgb3JkZXI6IDIsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgc2VhcmNoKGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtID0gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2VhcmNoVGVybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIHZhbGlkYXRlQ29uZmlnKCkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXQoJy9hc3NldHMvc2VhcmNoRGF0YS5qc29uJykuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgU2VhcmNoUmVzdWx0W107XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhdGVnb3J5U2VsZWN0ZWQoY2F0ZWdvcnk6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gY2F0ZWdvcnk7XHJcbiAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmZpbHRlcmVkRGF0YS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5zZWN0aW9uID09PSBjYXRlZ29yeTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hTdHJpbmcpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKGl0ZW0gPT5cclxuICAgICAgICBpdGVtLnRleHQudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHRoaXMuc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlYXJjaFN0cmluZ0NoYW5nZSgkZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWFyY2hTdHJpbmcgPSAkZXZlbnQ7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoaXRlbSA9PlxyXG4gICAgICAgIGl0ZW0udGV4dC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJGV2ZW50LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgJiYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA/ICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPT0gaXRlbS5zZWN0aW9uKSA6IHRydWUpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbXTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZWFyY2hzKHF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU3RyaW5nU3ViamVjdC5uZXh0KHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIC8vTkFWSUdBVElPTlNcclxuICBuYXZUb0JhY2sgPSAoKSA9PiB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICBjbGVhcigpOiB2b2lkIHsgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluLXNlYXJjaC1zY3JlZW4gcHQtNSBweC00XCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1Yi1zY3JlZW5cIj5cclxuICAgIDxsaWItc2VhcmNoLWJhciBjbGFzcz1cInNlYXJjaC1maWVsZFwiIFtwbGFjZWhvbGRlclRleHRdPVwiJ1NFQVJDSF9JVElORVJBUklFUycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAoc2VhcmNoU3RyaW5nQ2hhbmdlKT1cImhhbmRsZVNlYXJjaFN0cmluZ0NoYW5nZSgkZXZlbnQpXCIgKGNsZWFyZWQpPVwiY2xlYXIoKVwiIFtzZWFyY2hJY29uXT1cIklDT05TWydkYXNoYm9hcmRTZWFyY2gnXVwiPlxyXG4gICAgPC9saWItc2VhcmNoLWJhcj5cclxuICAgIDxhcHAtc2VhcmNoLWNoaXBzIFtzZWxlY3RlZENoaXBdPVwic2VsZWN0ZWRDYXRlZ29yeVwiIChjaGlwSXRlbVNlbGVjdGVkKT1cImNhdGVnb3J5U2VsZWN0ZWQoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1jaGlwcz5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VhcmNoaW5nXCI+XHJcbiAgICAgICAgPGFwcC1zZWFyY2gtcmVzdWx0cyBbZGF0YV09XCJmaWx0ZXJlZERhdGFcIj48L2FwcC1zZWFyY2gtcmVzdWx0cz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxhcHAtcmVjZW50LXNlYXJjaGVzICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+PC9hcHAtcmVjZW50LXNlYXJjaGVzPlxyXG4gICAgICA8YXBwLXNlcmFjaC1jbGVhci1oaXN0b3J5ICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+PC9hcHAtc2VyYWNoLWNsZWFyLWhpc3Rvcnk+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS03MDAgbXQtMlwiICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+PC9kaXY+XHJcbiAgICAgIDxhcHAtcXVpY2stYWN0aW9ucyBbaGlkZGVuXT1cInNlYXJjaFN0cmluZyAmJiAhc2VsZWN0ZWRDYXRlZ29yeVwiPjwvYXBwLXF1aWNrLWFjdGlvbnM+XHJcbiAgICAgIDxhcHAtc2VyYWNoLWJvdHRvbS1iYXI+PC9hcHAtc2VyYWNoLWJvdHRvbS1iYXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvbW9kdWxlcy9zZWFyY2gvcGFnZXMvbWFpbi1zZWFyY2gvbWFpbi1zZWFyY2guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvbW9kdWxlcy9zZWFyY2gvcGFnZXMvbWFpbi1zZWFyY2gvbWFpbi1zZWFyY2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbkgsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRXpELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWEvRSxNQUFNLE9BQU8sbUJBQW1CO0lBOERWO0lBQ1Y7SUFDQTtJQUNBO0lBaEVWLEtBQUssR0FBVSxLQUFLLENBQUM7SUFDckIsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUM3QixVQUFVLEdBQVcsRUFBRSxDQUFDO0lBRXhCLElBQUksR0FBbUIsRUFBRSxDQUFDO0lBQzFCLFlBQVksR0FBbUIsRUFBRSxDQUFDO0lBQ3pCLGtCQUFrQixHQUFXLEVBQUUsQ0FBQztJQUNoQyx3QkFBd0IsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDcEQsWUFBWSxHQUFXLEVBQUUsQ0FBQztJQUMx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ZixLQUFLOzJKQWlCVixlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFSSxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSWljb24gfSBmcm9tICcuLi8uLi8uLi8uLi9faW50ZXJmYWNlL2ljb24nO1xyXG5pbXBvcnQgeyBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi9faW50ZXJmYWNlL3NlYXJjaFJlc3VsdHMnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vX3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEVkaXRDb21wbGV0ZUV2ZW50LCBHcmlkQ29sdW1uQ2hhbmdlLCBHcmlkRGF0YVJlcXVlc3R9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRmlsdGVyRGF0YVJlcXVlc3QsIFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNhZmVIdG1sIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc2VsZWN0b3I6ICdhcHAtbWFpbi1zZWFyY2gnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL21haW4tc2VhcmNoLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9tYWluLXNlYXJjaC5jb21wb25lbnQuc2NzcycsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWFpblNlYXJjaENvbXBvbmVudCB7XHJcbiAgSUNPTlM6IElpY29uID0gSUNPTlM7XHJcbiAgaXNTZWFyY2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWFyY2hUZXJtOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgZGF0YTogU2VhcmNoUmVzdWx0W10gPSBbXTtcclxuICBmaWx0ZXJlZERhdGE6IFNlYXJjaFJlc3VsdFtdID0gW107XHJcbiAgcmVhZG9ubHkgZGVmYXVsdFJvd3NQZXJQYWdlOiBudW1iZXIgPSAxMDtcclxuICByZWFkb25seSBkZWZhdWx0Um93UGVyUGFnZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyNSwgNTBdO1xyXG4gIHB1YmxpYyBzZWFyY2hTdHJpbmc6IHN0cmluZyA9ICcnO1xyXG4gIHB1YmxpYyBzZWxlY3RlZENhdGVnb3J5OiBzdHJpbmcgPSAnJztcclxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBwcml2YXRlIHNlYXJjaFN0cmluZ1N1YmplY3Q6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIEBJbnB1dCgpIGVuYWJsZVNlbGVjdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZW5hYmxlR3JpZEZpbHRlcnM6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZUNyZWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVuYWJsZVJlZnJlc2g6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBlbmFibGVUcmFzaDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkczogbnVtYmVyID0gMDtcclxuICBASW5wdXQoKSByb3dzUGVyUGFnZTogbnVtYmVyID0gdGhpcy5kZWZhdWx0Um93c1BlclBhZ2U7XHJcbiAgQElucHV0KCkgZmlyc3Q6IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgcm93c1BlclBhZ2VPcHRpb25zOiBudW1iZXJbXSA9IHRoaXMuZGVmYXVsdFJvd1BlclBhZ2VPcHRpb25zO1xyXG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvbnM6IHN0cmluZ1tdID0gW107XHJcbiAgQElucHV0KCkgY3VycmVuY3lEaXNwbGF5Q29kZTogc3RyaW5nID0gJ1VTRCc7XHJcbiAgQElucHV0KCkgbWluaW11bUNvbHVtbldpZHRoOiBudW1iZXIgPSAtMTtcclxuXHJcbiAgQE91dHB1dCgpIGxhenlMb2FkOiBFdmVudEVtaXR0ZXI8R3JpZERhdGFSZXF1ZXN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8R3JpZERhdGFSZXF1ZXN0PigpO1xyXG4gIEBPdXRwdXQoKSBjb2x1bW5zQ2hhbmdlOiBFdmVudEVtaXR0ZXI8R3JpZENvbHVtbkNoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyPEdyaWRDb2x1bW5DaGFuZ2U+KCk7XHJcbiAgQE91dHB1dCgpIGVkaXRDb21wbGV0ZTogRXZlbnRFbWl0dGVyPEVkaXRDb21wbGV0ZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RWRpdENvbXBsZXRlRXZlbnQ+KCk7XHJcbiAgQE91dHB1dCgpIGVkaXRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0QWxsUGFnZXM6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgY3JlYXRlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSByZWZyZXNoRGF0YTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBzaG93VHJhc2g6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuICBAT3V0cHV0KCkgZXhjbHVkZUl0ZW06IEV2ZW50RW1pdHRlcjwoc3RyaW5nIHwgbnVtYmVyKVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8KHN0cmluZyB8IG51bWJlcilbXT4oKTtcclxuICBASW5wdXQoKSBpc0VkaXRJblByb2dyZXNzOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLy8gT3B0aW9uYWw6IGlmIHVzaW5nIHVzZXJGaWx0ZXJcclxuICBAT3V0cHV0KCkgdXNlckZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8e1xyXG4gICAgcHVibGljRmllbGROYW1lOiBzdHJpbmc7XHJcbiAgICBvcGVyYXRvclR5cGU6IHN0cmluZztcclxuICAgIHZhbHVlczogc3RyaW5nW107XHJcbiAgfT4oKTtcclxuICBmaWx0ZXJzc3M6IFNlbGVjdE9wdGlvbjxudW1iZXI+W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIGxhYmVsOiAnSGVsbG8nLFxyXG4gICAgICB2YWx1ZTogMixcclxuICAgICAgc2VsZWN0ZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgdmlzaWJsZUNvbW1lbnRzOiBTYWZlSHRtbFtdID0gW107XHJcblxyXG4gIG9uU2VsZWN0QWxsUGFnZXMoZXZlbnQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0QWxsUGFnZXMuZW1pdChldmVudCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBlbWl0VHJhc2hFdmVudChldmVudDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbXTtcclxuICAgIHRoaXMuc2hvd1RyYXNoLmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHsgfVxyXG4gIHB1YmxpYyBlbWl0Q3JlYXRlRXZlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNyZWF0ZUNsaWNrZWQuZW1pdCh0cnVlKTtcclxuICB9XHJcbiAgcHVibGljIGVtaXRSZWZyZXNoRXZlbnQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlZnJlc2hEYXRhLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG5cclxuICAgIHRoaXMuc2VhcmNoU3RyaW5nU3ViamVjdFxyXG4gICAgICAuYXNPYnNlcnZhYmxlKClcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzZWFyY2hTdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLnNlYXJjaFN0cmluZyA9IHNlYXJjaFN0cmluZztcclxuICAgICAgICB0aGlzLmZpcnN0ID0gMDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgY29uc3QgbmF2ID0gdGhpcy5yb3V0ZXIuZ2V0Q3VycmVudE5hdmlnYXRpb24oKTtcclxuICAgIGlmIChuYXY/LmV4dHJhcy5zdGF0ZSAmJiBuYXYuZXh0cmFzLnN0YXRlWydzZWxlY3RlZENhdGVnb3J5J10pIHtcclxuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBuYXYuZXh0cmFzLnN0YXRlWydzZWxlY3RlZENhdGVnb3J5J107XHJcbiAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZChjYXRlZ29yeSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIHVzZXJGaWx0ZXJMaXN0OiBGaWx0ZXJEYXRhUmVxdWVzdFtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRmlsdGVyIGJ5IE5hbWUgQXNjZW5kaW5nJyxcclxuICAgICAgcHJvamVjdEdyaWRGaWx0ZXJJZDogJzEyMycsXHJcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiAnRW1wbG95ZWVzJyxcclxuICAgICAgdXNlckZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwdWJsaWNGaWVsZE5hbWU6ICdOYW1lJyxcclxuICAgICAgICAgIG9wZXJhdG9yVHlwZTogJ0NvbnRhaW5zJyxcclxuICAgICAgICAgIHZhbHVlczogWydKb2huJ10sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgc29ydDoge1xyXG4gICAgICAgIGZpZWxkOiAnTmFtZScsXHJcbiAgICAgICAgZGlyZWN0aW9uOiAnQXNjZW5kaW5nJyxcclxuICAgICAgfSxcclxuICAgICAgb3JkZXI6IDEsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBuYW1lOiAnRmlsdGVyIGJ5IERlcGFydG1lbnQgYW5kIFNhbGFyeSBEZXNjZW5kaW5nJyxcclxuICAgICAgcHJvamVjdEdyaWRGaWx0ZXJJZDogJzQ1NicsXHJcbiAgICAgIGNvbGxlY3Rpb25OYW1lOiAnRW1wbG95ZWVzJyxcclxuICAgICAgdXNlckZpbHRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwdWJsaWNGaWVsZE5hbWU6ICdEZXBhcnRtZW50JyxcclxuICAgICAgICAgIG9wZXJhdG9yVHlwZTogJ0VxdWFscycsXHJcbiAgICAgICAgICB2YWx1ZXM6IFsnSVQnXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHB1YmxpY0ZpZWxkTmFtZTogJ1NhbGFyeScsXHJcbiAgICAgICAgICBvcGVyYXRvclR5cGU6ICdHcmVhdGVyVGhhbicsXHJcbiAgICAgICAgICB2YWx1ZXM6IFs1MDAwMF0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgICAgc29ydDoge1xyXG4gICAgICAgIGZpZWxkOiAnU2FsYXJ5JyxcclxuICAgICAgICBkaXJlY3Rpb246ICdEZXNjZW5kaW5nJyxcclxuICAgICAgfSxcclxuICAgICAgb3JkZXI6IDIsXHJcbiAgICB9LFxyXG4gIF07XHJcbiAgc2VhcmNoKGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtID0gZS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc2VhcmNoVGVybSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIHZhbGlkYXRlQ29uZmlnKCkge1xyXG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0YSgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS5nZXQoJy9hc3NldHMvc2VhcmNoRGF0YS5qc29uJykuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgU2VhcmNoUmVzdWx0W107XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhdGVnb3J5U2VsZWN0ZWQoY2F0ZWdvcnk6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5ID0gY2F0ZWdvcnk7XHJcbiAgICBpZiAoY2F0ZWdvcnkpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmZpbHRlcmVkRGF0YS5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgICByZXR1cm4gaXRlbS5zZWN0aW9uID09PSBjYXRlZ29yeTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hTdHJpbmcpIHtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLmRhdGEuZmlsdGVyKGl0ZW0gPT5cclxuICAgICAgICBpdGVtLnRleHQudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHRoaXMuc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhhbmRsZVNlYXJjaFN0cmluZ0NoYW5nZSgkZXZlbnQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWFyY2hTdHJpbmcgPSAkZXZlbnQ7XHJcbiAgICBpZiAoJGV2ZW50KSB7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMuZGF0YS5maWx0ZXIoaXRlbSA9PlxyXG4gICAgICAgIGl0ZW0udGV4dC50b0xvd2VyQ2FzZSgpLnN0YXJ0c1dpdGgoJGV2ZW50LnRvTG93ZXJDYXNlKCkpXHJcbiAgICAgICAgJiYgKHRoaXMuc2VsZWN0ZWRDYXRlZ29yeSA/ICh0aGlzLnNlbGVjdGVkQ2F0ZWdvcnkgPT0gaXRlbS5zZWN0aW9uKSA6IHRydWUpXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNTZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSBbXTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZWFyY2hzKHF1ZXJ5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoU3RyaW5nU3ViamVjdC5uZXh0KHF1ZXJ5KTtcclxuICB9XHJcblxyXG4gIC8vTkFWSUdBVElPTlNcclxuICBuYXZUb0JhY2sgPSAoKSA9PiB0aGlzLmxvY2F0aW9uLmJhY2soKTtcclxuICBjbGVhcigpOiB2b2lkIHsgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluLXNlYXJjaC1zY3JlZW4gcHQtNSBweC00XCI+XHJcbiAgPGRpdiBjbGFzcz1cInN1Yi1zY3JlZW5cIj5cclxuICAgIDxhcHAtc2VhcmNoLWJhciBjbGFzcz1cInNlYXJjaC1maWVsZFwiIFtwbGFjZWhvbGRlclRleHRdPVwiJ1NFQVJDSF9JVElORVJBUklFUycgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAoc2VhcmNoU3RyaW5nQ2hhbmdlKT1cImhhbmRsZVNlYXJjaFN0cmluZ0NoYW5nZSgkZXZlbnQpXCIgKGNsZWFyZWQpPVwiY2xlYXIoKVwiIFtzZWFyY2hJY29uXT1cIklDT05TWydkYXNoYm9hcmRTZWFyY2gnXVwiPlxyXG4gICAgPC9hcHAtc2VhcmNoLWJhcj5cclxuICAgIDxhcHAtc2VhcmNoLWNoaXBzIFtzZWxlY3RlZENoaXBdPVwic2VsZWN0ZWRDYXRlZ29yeVwiIChjaGlwSXRlbVNlbGVjdGVkKT1cImNhdGVnb3J5U2VsZWN0ZWQoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1jaGlwcz5cclxuICAgIDxkaXYgY2xhc3M9XCJwLTRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2VhcmNoaW5nXCI+XHJcbiAgICAgICAgPGFwcC1zZWFyY2gtcmVzdWx0cyBbZGF0YV09XCJmaWx0ZXJlZERhdGFcIj48L2FwcC1zZWFyY2gtcmVzdWx0cz5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxhcHAtcmVjZW50LXNlYXJjaGVzICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+PC9hcHAtcmVjZW50LXNlYXJjaGVzPlxyXG4gICAgICA8YXBwLXNlcmFjaC1jbGVhci1oaXN0b3J5ICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+PC9hcHAtc2VyYWNoLWNsZWFyLWhpc3Rvcnk+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXItdCBib3JkZXItZ3JheS03MDAgbXQtMlwiICpuZ0lmPVwiIWlzU2VhcmNoaW5nXCI+PC9kaXY+XHJcbiAgICAgIDxhcHAtcXVpY2stYWN0aW9ucyBbaGlkZGVuXT1cInNlYXJjaFN0cmluZyAmJiAhc2VsZWN0ZWRDYXRlZ29yeVwiPjwvYXBwLXF1aWNrLWFjdGlvbnM+XHJcbiAgICAgIDxhcHAtc2VyYWNoLWJvdHRvbS1iYXI+PC9hcHAtc2VyYWNoLWJvdHRvbS1iYXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -3,7 +3,7 @@ import { ICONS } from '../../../_constants/constants';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  import * as i2 from "../../../shared/header/header.component";
6
- import * as i3 from "@naniteninja/ionic-lib";
6
+ import * as i3 from "../../../shared/selectable/selectable.component";
7
7
  import * as i4 from "@ngx-translate/core";
8
8
  export class ProfileComponent {
9
9
  location;
@@ -45,10 +45,10 @@ export class ProfileComponent {
45
45
  }
46
46
  back = () => this.location.back();
47
47
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProfileComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
48
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ProfileComponent, selector: "app-profile", ngImport: i0, template: "<div class=\"ps-5 pe-5\">\r\n <app-header (firstButton)=\"back()\" [heading]=\"'PROFILE.PROFILE' | translate\">\r\n </app-header>\r\n\r\n <div class=\"mt-3 flex justify-center\">\r\n <img class=\"profile-pic\" [src]=\"ICONS['dummyUserProfile']\" alt=\"profile\" />\r\n </div>\r\n\r\n <h3 class=\"mt-4 text-center\">Jonathan</h3>\r\n\r\n <div class=\"mt-2 flex justify-center items-center\">\r\n <img class=\"icon me-1\" [src]=\"ICONS['calendar']\" alt=\"calender\" />\r\n <span>23 year old</span>\r\n <img class=\"icon ms-2 me-1\" [src]=\"ICONS['locationLight']\" alt=\"location\" />\r\n <span>New York City, NY</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div>\r\n <h4 class=\"mb-5\">{{ \"PROFILE.ABOUT_ME\" | translate }}</h4>\r\n <span>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Laboriosam\r\n minus officia provident in iusto nostrum nesciunt enim? At minima\r\n doloremque, reiciendis suscipit magnam quam quae in vitae soluta? Fugiat,\r\n adipisci!</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"mb-5\">{{ \"PROFILE.PASSION\" | translate }}</h4>\r\n <div class=\"flex flex-wrap gap-4\">\r\n <lib-selectable [options]=\"passions\"></lib-selectable>\r\n </div>\r\n</div>\r\n", styles: [".profile-pic{border-radius:500px;height:79px!important;width:79px!important}h3{font-family:Calistoga;font-weight:400;font-size:19.69px;line-height:25.6px;letter-spacing:0%;text-align:center}h4{font-family:Gilroy;font-weight:600;font-size:13.13px;line-height:21px;letter-spacing:0%}.icon{width:13px!important;height:13px!important;top:232.2px;left:77.13px}hr{width:262.5599975586;height:.8205000162;margin:1.25rem .5rem;opacity:.15;border-radius:6.83px;background:#dcdcdc;box-shadow:1.71px 1.71px 3.41px #00000040 inset;box-shadow:-1.71px -1.71px 3.41px #ffffff40 inset}span{font-family:Gilroy;font-weight:500;font-size:9.85px;line-height:0px;letter-spacing:0%;color:#bbbabc}\n"], dependencies: [{ kind: "component", type: i2.HeaderComponent, selector: "app-header", inputs: ["heading", "headerRightIcon", "titleIcon", "cssClass", "headerSuffixTemplate"], outputs: ["firstButton", "titleIconClick"] }, { kind: "component", type: i3.SelectableComponent, selector: "lib-selectable", inputs: ["options", "singleSelectionOnly", "maxSelectionPossible"], outputs: ["maxSelectionsReached"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ProfileComponent, selector: "app-profile", ngImport: i0, template: "<div class=\"ps-5 pe-5\">\r\n <app-header (firstButton)=\"back()\" [heading]=\"'PROFILE.PROFILE' | translate\">\r\n </app-header>\r\n\r\n <div class=\"mt-3 flex justify-center\">\r\n <img class=\"profile-pic\" [src]=\"ICONS['dummyUserProfile']\" alt=\"profile\" />\r\n </div>\r\n\r\n <h3 class=\"mt-4 text-center\">Jonathan</h3>\r\n\r\n <div class=\"mt-2 flex justify-center items-center\">\r\n <img class=\"icon me-1\" [src]=\"ICONS['calendar']\" alt=\"calender\" />\r\n <span>23 year old</span>\r\n <img class=\"icon ms-2 me-1\" [src]=\"ICONS['locationLight']\" alt=\"location\" />\r\n <span>New York City, NY</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div>\r\n <h4 class=\"mb-5\">{{ \"PROFILE.ABOUT_ME\" | translate }}</h4>\r\n <span>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Laboriosam\r\n minus officia provident in iusto nostrum nesciunt enim? At minima\r\n doloremque, reiciendis suscipit magnam quam quae in vitae soluta? Fugiat,\r\n adipisci!</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"mb-5\">{{ \"PROFILE.PASSION\" | translate }}</h4>\r\n <div class=\"flex flex-wrap gap-4\">\r\n <app-selectable [options]=\"passions\"></app-selectable>\r\n </div>\r\n</div>\r\n", styles: [".profile-pic{border-radius:500px;height:79px!important;width:79px!important}h3{font-family:Calistoga;font-weight:400;font-size:19.69px;line-height:25.6px;letter-spacing:0%;text-align:center}h4{font-family:Gilroy;font-weight:600;font-size:13.13px;line-height:21px;letter-spacing:0%}.icon{width:13px!important;height:13px!important;top:232.2px;left:77.13px}hr{width:262.5599975586;height:.8205000162;margin:1.25rem .5rem;opacity:.15;border-radius:6.83px;background:#dcdcdc;box-shadow:1.71px 1.71px 3.41px #00000040 inset;box-shadow:-1.71px -1.71px 3.41px #ffffff40 inset}span{font-family:Gilroy;font-weight:500;font-size:9.85px;line-height:0px;letter-spacing:0%;color:#bbbabc}\n"], dependencies: [{ kind: "component", type: i2.HeaderComponent, selector: "app-header", inputs: ["heading", "headerRightIcon", "titleIcon", "cssClass", "headerSuffixTemplate"], outputs: ["firstButton", "titleIconClick"] }, { kind: "component", type: i3.SelectableComponent, selector: "app-selectable", inputs: ["options", "formControl", "singleSelectionOnly", "maxSelectionPossible", "customClass"], outputs: ["click", "selectionchange"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ProfileComponent, decorators: [{
51
51
  type: Component,
52
- args: [{ selector: 'app-profile', standalone: false, template: "<div class=\"ps-5 pe-5\">\r\n <app-header (firstButton)=\"back()\" [heading]=\"'PROFILE.PROFILE' | translate\">\r\n </app-header>\r\n\r\n <div class=\"mt-3 flex justify-center\">\r\n <img class=\"profile-pic\" [src]=\"ICONS['dummyUserProfile']\" alt=\"profile\" />\r\n </div>\r\n\r\n <h3 class=\"mt-4 text-center\">Jonathan</h3>\r\n\r\n <div class=\"mt-2 flex justify-center items-center\">\r\n <img class=\"icon me-1\" [src]=\"ICONS['calendar']\" alt=\"calender\" />\r\n <span>23 year old</span>\r\n <img class=\"icon ms-2 me-1\" [src]=\"ICONS['locationLight']\" alt=\"location\" />\r\n <span>New York City, NY</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div>\r\n <h4 class=\"mb-5\">{{ \"PROFILE.ABOUT_ME\" | translate }}</h4>\r\n <span>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Laboriosam\r\n minus officia provident in iusto nostrum nesciunt enim? At minima\r\n doloremque, reiciendis suscipit magnam quam quae in vitae soluta? Fugiat,\r\n adipisci!</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"mb-5\">{{ \"PROFILE.PASSION\" | translate }}</h4>\r\n <div class=\"flex flex-wrap gap-4\">\r\n <lib-selectable [options]=\"passions\"></lib-selectable>\r\n </div>\r\n</div>\r\n", styles: [".profile-pic{border-radius:500px;height:79px!important;width:79px!important}h3{font-family:Calistoga;font-weight:400;font-size:19.69px;line-height:25.6px;letter-spacing:0%;text-align:center}h4{font-family:Gilroy;font-weight:600;font-size:13.13px;line-height:21px;letter-spacing:0%}.icon{width:13px!important;height:13px!important;top:232.2px;left:77.13px}hr{width:262.5599975586;height:.8205000162;margin:1.25rem .5rem;opacity:.15;border-radius:6.83px;background:#dcdcdc;box-shadow:1.71px 1.71px 3.41px #00000040 inset;box-shadow:-1.71px -1.71px 3.41px #ffffff40 inset}span{font-family:Gilroy;font-weight:500;font-size:9.85px;line-height:0px;letter-spacing:0%;color:#bbbabc}\n"] }]
52
+ args: [{ selector: 'app-profile', standalone: false, template: "<div class=\"ps-5 pe-5\">\r\n <app-header (firstButton)=\"back()\" [heading]=\"'PROFILE.PROFILE' | translate\">\r\n </app-header>\r\n\r\n <div class=\"mt-3 flex justify-center\">\r\n <img class=\"profile-pic\" [src]=\"ICONS['dummyUserProfile']\" alt=\"profile\" />\r\n </div>\r\n\r\n <h3 class=\"mt-4 text-center\">Jonathan</h3>\r\n\r\n <div class=\"mt-2 flex justify-center items-center\">\r\n <img class=\"icon me-1\" [src]=\"ICONS['calendar']\" alt=\"calender\" />\r\n <span>23 year old</span>\r\n <img class=\"icon ms-2 me-1\" [src]=\"ICONS['locationLight']\" alt=\"location\" />\r\n <span>New York City, NY</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <div>\r\n <h4 class=\"mb-5\">{{ \"PROFILE.ABOUT_ME\" | translate }}</h4>\r\n <span>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Laboriosam\r\n minus officia provident in iusto nostrum nesciunt enim? At minima\r\n doloremque, reiciendis suscipit magnam quam quae in vitae soluta? Fugiat,\r\n adipisci!</span>\r\n </div>\r\n\r\n <hr />\r\n\r\n <h4 class=\"mb-5\">{{ \"PROFILE.PASSION\" | translate }}</h4>\r\n <div class=\"flex flex-wrap gap-4\">\r\n <app-selectable [options]=\"passions\"></app-selectable>\r\n </div>\r\n</div>\r\n", styles: [".profile-pic{border-radius:500px;height:79px!important;width:79px!important}h3{font-family:Calistoga;font-weight:400;font-size:19.69px;line-height:25.6px;letter-spacing:0%;text-align:center}h4{font-family:Gilroy;font-weight:600;font-size:13.13px;line-height:21px;letter-spacing:0%}.icon{width:13px!important;height:13px!important;top:232.2px;left:77.13px}hr{width:262.5599975586;height:.8205000162;margin:1.25rem .5rem;opacity:.15;border-radius:6.83px;background:#dcdcdc;box-shadow:1.71px 1.71px 3.41px #00000040 inset;box-shadow:-1.71px -1.71px 3.41px #ffffff40 inset}span{font-family:Gilroy;font-weight:500;font-size:9.85px;line-height:0px;letter-spacing:0%;color:#bbbabc}\n"] }]
53
53
  }], ctorParameters: () => [{ type: i1.Location }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdGluZXJhcnktbGliL3NyYy9saWIvaXRpbmVyYXJ5LWFwcC9tb2R1bGVzL3VzZXIvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL21vZHVsZXMvdXNlci9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVF0RCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUNQO0lBbENwQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsUUFBUSxHQUEyQjtRQUNqQztZQUNFLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtLQUNGLENBQUM7SUFFRixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3R0FyQ3ZCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1EQ1g3QixtdUNBa0NBOzs0RkR2QmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNJLGFBQWEsY0FHWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbiBpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInOyBcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXByb2ZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQge1xyXG4gIElDT05TID0gSUNPTlM7XHJcbiAgcGFzc2lvbnM6IFNlbGVjdE9wdGlvbjxzdHJpbmc+W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiAnVml5YXNhJyxcclxuICAgICAgbGFiZWw6ICdWaXlhc2EnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogJ1NraW5jYXJlJyxcclxuICAgICAgbGFiZWw6ICdTa2luY2FyZScsXHJcbiAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiAnQmFraW5nJyxcclxuICAgICAgbGFiZWw6ICdCYWtpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogJ0hpa2luZycsXHJcbiAgICAgIGxhYmVsOiAnSGlraW5nJyxcclxuICAgICAgc2VsZWN0ZWQ6IHRydWUsXHJcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6ICdCaWN5Y2xlIFJhY2luZycsXHJcbiAgICAgIGxhYmVsOiAnQmljeWNsZSBSYWNpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxyXG5cclxuICBiYWNrID0gKCkgPT4gdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBzLTUgcGUtNVwiPlxyXG4gIDxhcHAtaGVhZGVyIChmaXJzdEJ1dHRvbik9XCJiYWNrKClcIiBbaGVhZGluZ109XCInUFJPRklMRS5QUk9GSUxFJyB8IHRyYW5zbGF0ZVwiPlxyXG4gIDwvYXBwLWhlYWRlcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm10LTMgZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgPGltZyBjbGFzcz1cInByb2ZpbGUtcGljXCIgW3NyY109XCJJQ09OU1snZHVtbXlVc2VyUHJvZmlsZSddXCIgYWx0PVwicHJvZmlsZVwiIC8+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxoMyBjbGFzcz1cIm10LTQgdGV4dC1jZW50ZXJcIj5Kb25hdGhhbjwvaDM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJtdC0yIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICA8aW1nIGNsYXNzPVwiaWNvbiBtZS0xXCIgW3NyY109XCJJQ09OU1snY2FsZW5kYXInXVwiIGFsdD1cImNhbGVuZGVyXCIgLz5cclxuICAgIDxzcGFuPjIzIHllYXIgb2xkPC9zcGFuPlxyXG4gICAgPGltZyBjbGFzcz1cImljb24gbXMtMiBtZS0xXCIgW3NyY109XCJJQ09OU1snbG9jYXRpb25MaWdodCddXCIgYWx0PVwibG9jYXRpb25cIiAvPlxyXG4gICAgPHNwYW4+TmV3IFlvcmsgQ2l0eSwgTlk8L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxociAvPlxyXG5cclxuICA8ZGl2PlxyXG4gICAgPGg0IGNsYXNzPVwibWItNVwiPnt7IFwiUFJPRklMRS5BQk9VVF9NRVwiIHwgdHJhbnNsYXRlIH19PC9oND5cclxuICAgIDxzcGFuPkxvcmVtIGlwc3VtIGRvbG9yLCBzaXQgYW1ldCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBMYWJvcmlvc2FtXHJcbiAgICAgIG1pbnVzIG9mZmljaWEgcHJvdmlkZW50IGluIGl1c3RvIG5vc3RydW0gbmVzY2l1bnQgZW5pbT8gQXQgbWluaW1hXHJcbiAgICAgIGRvbG9yZW1xdWUsIHJlaWNpZW5kaXMgc3VzY2lwaXQgbWFnbmFtIHF1YW0gcXVhZSBpbiB2aXRhZSBzb2x1dGE/IEZ1Z2lhdCxcclxuICAgICAgYWRpcGlzY2khPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8aHIgLz5cclxuXHJcbiAgPGg0IGNsYXNzPVwibWItNVwiPnt7IFwiUFJPRklMRS5QQVNTSU9OXCIgfCB0cmFuc2xhdGUgfX08L2g0PlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtNFwiPlxyXG4gICAgPGxpYi1zZWxlY3RhYmxlIFtvcHRpb25zXT1cInBhc3Npb25zXCI+PC9saWItc2VsZWN0YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdGluZXJhcnktbGliL3NyYy9saWIvaXRpbmVyYXJ5LWFwcC9tb2R1bGVzL3VzZXIvcHJvZmlsZS9wcm9maWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL21vZHVsZXMvdXNlci9wcm9maWxlL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7OztBQVF0RCxNQUFNLE9BQU8sZ0JBQWdCO0lBbUNQO0lBbENwQixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ2QsUUFBUSxHQUEyQjtRQUNqQztZQUNFLEtBQUssRUFBRSxRQUFRO1lBQ2YsS0FBSyxFQUFFLFFBQVE7WUFDZixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxJQUFJO1NBQ2Y7UUFDRDtZQUNFLEtBQUssRUFBRSxVQUFVO1lBQ2pCLEtBQUssRUFBRSxVQUFVO1lBQ2pCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFFLFFBQVE7WUFDZixLQUFLLEVBQUUsUUFBUTtZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtRQUNEO1lBQ0UsS0FBSyxFQUFFLGdCQUFnQjtZQUN2QixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJO1lBQ2QsUUFBUSxFQUFFLElBQUk7U0FDZjtLQUNGLENBQUM7SUFFRixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO0lBQUcsQ0FBQztJQUUxQyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQzt3R0FyQ3ZCLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1EQ1g3QixtdUNBa0NBOzs0RkR2QmEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNJLGFBQWEsY0FHWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbiBpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInOyBcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLXByb2ZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3Byb2ZpbGUuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIFByb2ZpbGVDb21wb25lbnQge1xyXG4gIElDT05TID0gSUNPTlM7XHJcbiAgcGFzc2lvbnM6IFNlbGVjdE9wdGlvbjxzdHJpbmc+W10gPSBbXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiAnVml5YXNhJyxcclxuICAgICAgbGFiZWw6ICdWaXlhc2EnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogJ1NraW5jYXJlJyxcclxuICAgICAgbGFiZWw6ICdTa2luY2FyZScsXHJcbiAgICAgIHNlbGVjdGVkOiB0cnVlLFxyXG4gICAgICBkaXNhYmxlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHZhbHVlOiAnQmFraW5nJyxcclxuICAgICAgbGFiZWw6ICdCYWtpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICB2YWx1ZTogJ0hpa2luZycsXHJcbiAgICAgIGxhYmVsOiAnSGlraW5nJyxcclxuICAgICAgc2VsZWN0ZWQ6IHRydWUsXHJcbiAgICAgIGRpc2FibGVkOiB0cnVlLFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgdmFsdWU6ICdCaWN5Y2xlIFJhY2luZycsXHJcbiAgICAgIGxhYmVsOiAnQmljeWNsZSBSYWNpbmcnLFxyXG4gICAgICBzZWxlY3RlZDogdHJ1ZSxcclxuICAgICAgZGlzYWJsZWQ6IHRydWUsXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxyXG5cclxuICBiYWNrID0gKCkgPT4gdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBzLTUgcGUtNVwiPlxyXG4gIDxhcHAtaGVhZGVyIChmaXJzdEJ1dHRvbik9XCJiYWNrKClcIiBbaGVhZGluZ109XCInUFJPRklMRS5QUk9GSUxFJyB8IHRyYW5zbGF0ZVwiPlxyXG4gIDwvYXBwLWhlYWRlcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm10LTMgZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgPGltZyBjbGFzcz1cInByb2ZpbGUtcGljXCIgW3NyY109XCJJQ09OU1snZHVtbXlVc2VyUHJvZmlsZSddXCIgYWx0PVwicHJvZmlsZVwiIC8+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxoMyBjbGFzcz1cIm10LTQgdGV4dC1jZW50ZXJcIj5Kb25hdGhhbjwvaDM+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJtdC0yIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyXCI+XHJcbiAgICA8aW1nIGNsYXNzPVwiaWNvbiBtZS0xXCIgW3NyY109XCJJQ09OU1snY2FsZW5kYXInXVwiIGFsdD1cImNhbGVuZGVyXCIgLz5cclxuICAgIDxzcGFuPjIzIHllYXIgb2xkPC9zcGFuPlxyXG4gICAgPGltZyBjbGFzcz1cImljb24gbXMtMiBtZS0xXCIgW3NyY109XCJJQ09OU1snbG9jYXRpb25MaWdodCddXCIgYWx0PVwibG9jYXRpb25cIiAvPlxyXG4gICAgPHNwYW4+TmV3IFlvcmsgQ2l0eSwgTlk8L3NwYW4+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxociAvPlxyXG5cclxuICA8ZGl2PlxyXG4gICAgPGg0IGNsYXNzPVwibWItNVwiPnt7IFwiUFJPRklMRS5BQk9VVF9NRVwiIHwgdHJhbnNsYXRlIH19PC9oND5cclxuICAgIDxzcGFuPkxvcmVtIGlwc3VtIGRvbG9yLCBzaXQgYW1ldCBjb25zZWN0ZXR1ciBhZGlwaXNpY2luZyBlbGl0LiBMYWJvcmlvc2FtXHJcbiAgICAgIG1pbnVzIG9mZmljaWEgcHJvdmlkZW50IGluIGl1c3RvIG5vc3RydW0gbmVzY2l1bnQgZW5pbT8gQXQgbWluaW1hXHJcbiAgICAgIGRvbG9yZW1xdWUsIHJlaWNpZW5kaXMgc3VzY2lwaXQgbWFnbmFtIHF1YW0gcXVhZSBpbiB2aXRhZSBzb2x1dGE/IEZ1Z2lhdCxcclxuICAgICAgYWRpcGlzY2khPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8aHIgLz5cclxuXHJcbiAgPGg0IGNsYXNzPVwibWItNVwiPnt7IFwiUFJPRklMRS5QQVNTSU9OXCIgfCB0cmFuc2xhdGUgfX08L2g0PlxyXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtNFwiPlxyXG4gICAgPGFwcC1zZWxlY3RhYmxlIFtvcHRpb25zXT1cInBhc3Npb25zXCI+PC9hcHAtc2VsZWN0YWJsZT5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@naniteninja/ionic-lib";
5
+ import * as i3 from "@ionic/angular";
6
+ export class BottomModalComponent {
7
+ isOpen = false;
8
+ submitButtonTitle = '';
9
+ showArrow = false;
10
+ adaptToContentHeight = false;
11
+ customClass = '';
12
+ isOpenChange = new EventEmitter();
13
+ submitModal = new EventEmitter();
14
+ ngOnInit() {
15
+ // lib-bottom-modal handles its own modal state internally
16
+ }
17
+ ngOnChanges() {
18
+ // lib-bottom-modal handles its own modal state internally
19
+ // No need to trigger change detection here as it causes timing issues
20
+ }
21
+ ngAfterContentInit() {
22
+ // Content projection is handled automatically by Angular
23
+ }
24
+ ngOnDestroy() {
25
+ // Cleanup if needed
26
+ }
27
+ onIsOpenChange(isOpen) {
28
+ this.isOpen = isOpen;
29
+ this.isOpenChange.emit(isOpen);
30
+ }
31
+ onSubmit() {
32
+ this.submitModal.emit();
33
+ }
34
+ get modalCssClasses() {
35
+ const classes = ['app-bottom-modal'];
36
+ if (this.adaptToContentHeight) {
37
+ classes.push('adapt-to-content-height');
38
+ }
39
+ if (this.customClass) {
40
+ classes.push(this.customClass);
41
+ }
42
+ return classes.join(' ');
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BottomModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
45
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BottomModalComponent, selector: "app-bottom-modal", inputs: { isOpen: "isOpen", submitButtonTitle: "submitButtonTitle", showArrow: "showArrow", adaptToContentHeight: "adaptToContentHeight", customClass: "customClass" }, outputs: { isOpenChange: "isOpenChange", submitModal: "submitModal" }, usesOnChanges: true, ngImport: i0, template: "<lib-bottom-modal\r\n [isOpen]=\"isOpen\"\r\n (isOpenChange)=\"onIsOpenChange($event)\"\r\n [customClass]=\"modalCssClasses\"\r\n [showArrow]=\"showArrow\"\r\n [adaptToContentHeight]=\"adaptToContentHeight\"\r\n [submitButtonTitle]=\"submitButtonTitle\"\r\n (submitModal)=\"onSubmit()\"\r\n>\r\n <ng-content></ng-content>\r\n <div *ngIf=\"submitButtonTitle\" class=\"modal-actions app-bottom-modal-actions\">\r\n <ion-button (click)=\"onSubmit()\" expand=\"block\" class=\"submit-button\">\r\n {{ submitButtonTitle }}\r\n </ion-button>\r\n </div>\r\n</lib-bottom-modal>\r\n", styles: [".app-bottom-modal{--width: 100%;--max-width: var(--app-bottom-modal-max-width, 500px);--height: auto;--border-radius: 20px 20px 0 0;--box-shadow: none}::ng-deep .app-bottom-modal .modal-wrapper{background:transparent!important;box-shadow:none!important}::ng-deep .app-bottom-modal ion-content{--background: transparent}::ng-deep .app-bottom-modal .modal-wrapper .ion-page{background:transparent}::ng-deep .app-bottom-modal .wrapper{padding:0;margin:0;display:block;width:100%;height:100%}::ng-deep .app-bottom-modal .dynamic-content{padding:0;margin:0;display:block;width:100%;min-height:100px}::ng-deep .app-bottom-modal.adapt-to-content-height .wrapper .dynamic-content{margin-top:30px}::ng-deep .app-bottom-modal .modal-actions,::ng-deep .app-bottom-modal-actions{padding:16px;margin-top:auto;background-color:transparent}::ng-deep .app-bottom-modal .submit-button{--border-radius: 12px;margin:0}::ng-deep .app-bottom-modal .modal-handle{display:block}::ng-deep .app-bottom-modal[style*=\"display: none\"] .modal-handle{display:none}::ng-deep .app-bottom-modal-loader{display:none!important}::ng-deep .app-bottom-modal-header{display:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.BottomModalComponent, selector: "lib-bottom-modal", inputs: ["breakpoints", "initialBreakpoint", "isOpen", "canDismiss", "showArrow", "showBackBtn", "showConfirm", "showCloseBtn", "loading", "showHeaderSeparator", "title", "confirmationTitle", "confirmationMsg", "confirmButton", "confirmCancelButton", "description", "secondaryButtonTitle", "submitButtonTitle", "cancelButtonTitle", "validModal", "adaptToContentHeight", "customClass"], outputs: ["isOpenChange", "breakpointChange", "closeModal", "submitModal", "secondaryButtonClick", "backClick", "showConfirmChange", "confirmEvent"] }, { kind: "component", type: i3.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }] });
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BottomModalComponent, decorators: [{
48
+ type: Component,
49
+ args: [{ selector: 'app-bottom-modal', template: "<lib-bottom-modal\r\n [isOpen]=\"isOpen\"\r\n (isOpenChange)=\"onIsOpenChange($event)\"\r\n [customClass]=\"modalCssClasses\"\r\n [showArrow]=\"showArrow\"\r\n [adaptToContentHeight]=\"adaptToContentHeight\"\r\n [submitButtonTitle]=\"submitButtonTitle\"\r\n (submitModal)=\"onSubmit()\"\r\n>\r\n <ng-content></ng-content>\r\n <div *ngIf=\"submitButtonTitle\" class=\"modal-actions app-bottom-modal-actions\">\r\n <ion-button (click)=\"onSubmit()\" expand=\"block\" class=\"submit-button\">\r\n {{ submitButtonTitle }}\r\n </ion-button>\r\n </div>\r\n</lib-bottom-modal>\r\n", styles: [".app-bottom-modal{--width: 100%;--max-width: var(--app-bottom-modal-max-width, 500px);--height: auto;--border-radius: 20px 20px 0 0;--box-shadow: none}::ng-deep .app-bottom-modal .modal-wrapper{background:transparent!important;box-shadow:none!important}::ng-deep .app-bottom-modal ion-content{--background: transparent}::ng-deep .app-bottom-modal .modal-wrapper .ion-page{background:transparent}::ng-deep .app-bottom-modal .wrapper{padding:0;margin:0;display:block;width:100%;height:100%}::ng-deep .app-bottom-modal .dynamic-content{padding:0;margin:0;display:block;width:100%;min-height:100px}::ng-deep .app-bottom-modal.adapt-to-content-height .wrapper .dynamic-content{margin-top:30px}::ng-deep .app-bottom-modal .modal-actions,::ng-deep .app-bottom-modal-actions{padding:16px;margin-top:auto;background-color:transparent}::ng-deep .app-bottom-modal .submit-button{--border-radius: 12px;margin:0}::ng-deep .app-bottom-modal .modal-handle{display:block}::ng-deep .app-bottom-modal[style*=\"display: none\"] .modal-handle{display:none}::ng-deep .app-bottom-modal-loader{display:none!important}::ng-deep .app-bottom-modal-header{display:none!important}\n"] }]
50
+ }], propDecorators: { isOpen: [{
51
+ type: Input
52
+ }], submitButtonTitle: [{
53
+ type: Input
54
+ }], showArrow: [{
55
+ type: Input
56
+ }], adaptToContentHeight: [{
57
+ type: Input
58
+ }], customClass: [{
59
+ type: Input
60
+ }], isOpenChange: [{
61
+ type: Output
62
+ }], submitModal: [{
63
+ type: Output
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL3NoYXJlZC9ib3R0b20tbW9kYWwvYm90dG9tLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL3NoYXJlZC9ib3R0b20tbW9kYWwvYm90dG9tLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBS2IsTUFBTSxlQUFlLENBQUM7Ozs7O0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFDdEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixpQkFBaUIsR0FBVyxFQUFFLENBQUM7SUFDL0IsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixvQkFBb0IsR0FBWSxLQUFLLENBQUM7SUFDdEMsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUV4QixZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUMzQyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUVqRCxRQUFRO1FBQ04sMERBQTBEO0lBQzVELENBQUM7SUFFRCxXQUFXO1FBQ1QsMERBQTBEO1FBQzFELHNFQUFzRTtJQUN4RSxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLHlEQUF5RDtJQUMzRCxDQUFDO0lBRUQsV0FBVztRQUNULG9CQUFvQjtJQUN0QixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWU7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzdCLE9BQU8sQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNwQixPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNoQztRQUNELE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMzQixDQUFDO3dHQTdDVSxvQkFBb0I7NEZBQXBCLG9CQUFvQiw0VENoQmpDLG9sQkFnQkE7OzRGREFhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7OEJBS25CLE1BQU07c0JBQWQsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBcclxuICBDb21wb25lbnQsIFxyXG4gIElucHV0LCBcclxuICBPdXRwdXQsIFxyXG4gIEV2ZW50RW1pdHRlciwgXHJcbiAgT25Jbml0LCBcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEFmdGVyQ29udGVudEluaXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWJvdHRvbS1tb2RhbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2JvdHRvbS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JvdHRvbS1tb2RhbC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEJvdHRvbU1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWl0QnV0dG9uVGl0bGU6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHNob3dBcnJvdzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGFkYXB0VG9Db250ZW50SGVpZ2h0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3M6IHN0cmluZyA9ICcnO1xyXG5cclxuICBAT3V0cHV0KCkgaXNPcGVuQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gIEBPdXRwdXQoKSBzdWJtaXRNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBsaWItYm90dG9tLW1vZGFsIGhhbmRsZXMgaXRzIG93biBtb2RhbCBzdGF0ZSBpbnRlcm5hbGx5XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIC8vIGxpYi1ib3R0b20tbW9kYWwgaGFuZGxlcyBpdHMgb3duIG1vZGFsIHN0YXRlIGludGVybmFsbHlcclxuICAgIC8vIE5vIG5lZWQgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGhlcmUgYXMgaXQgY2F1c2VzIHRpbWluZyBpc3N1ZXNcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIENvbnRlbnQgcHJvamVjdGlvbiBpcyBoYW5kbGVkIGF1dG9tYXRpY2FsbHkgYnkgQW5ndWxhclxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAvLyBDbGVhbnVwIGlmIG5lZWRlZFxyXG4gIH1cclxuXHJcbiAgb25Jc09wZW5DaGFuZ2UoaXNPcGVuOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IGlzT3BlbjtcclxuICAgIHRoaXMuaXNPcGVuQ2hhbmdlLmVtaXQoaXNPcGVuKTtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdWJtaXRNb2RhbC5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBnZXQgbW9kYWxDc3NDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjbGFzc2VzID0gWydhcHAtYm90dG9tLW1vZGFsJ107XHJcbiAgICBpZiAodGhpcy5hZGFwdFRvQ29udGVudEhlaWdodCkge1xyXG4gICAgICBjbGFzc2VzLnB1c2goJ2FkYXB0LXRvLWNvbnRlbnQtaGVpZ2h0Jyk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5jdXN0b21DbGFzcykge1xyXG4gICAgICBjbGFzc2VzLnB1c2godGhpcy5jdXN0b21DbGFzcyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2xhc3Nlcy5qb2luKCcgJyk7XHJcbiAgfVxyXG59XHJcbiIsIjxsaWItYm90dG9tLW1vZGFsXHJcbiAgW2lzT3Blbl09XCJpc09wZW5cIlxyXG4gIChpc09wZW5DaGFuZ2UpPVwib25Jc09wZW5DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2N1c3RvbUNsYXNzXT1cIm1vZGFsQ3NzQ2xhc3Nlc1wiXHJcbiAgW3Nob3dBcnJvd109XCJzaG93QXJyb3dcIlxyXG4gIFthZGFwdFRvQ29udGVudEhlaWdodF09XCJhZGFwdFRvQ29udGVudEhlaWdodFwiXHJcbiAgW3N1Ym1pdEJ1dHRvblRpdGxlXT1cInN1Ym1pdEJ1dHRvblRpdGxlXCJcclxuICAoc3VibWl0TW9kYWwpPVwib25TdWJtaXQoKVwiXHJcbj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPGRpdiAqbmdJZj1cInN1Ym1pdEJ1dHRvblRpdGxlXCIgY2xhc3M9XCJtb2RhbC1hY3Rpb25zIGFwcC1ib3R0b20tbW9kYWwtYWN0aW9uc1wiPlxyXG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uU3VibWl0KClcIiBleHBhbmQ9XCJibG9ja1wiIGNsYXNzPVwic3VibWl0LWJ1dHRvblwiPlxyXG4gICAgICB7eyBzdWJtaXRCdXR0b25UaXRsZSB9fVxyXG4gICAgPC9pb24tYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2xpYi1ib3R0b20tbW9kYWw+XHJcbiJdfQ==
@@ -4,7 +4,8 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "../../_services/api.service";
5
5
  import * as i2 from "@naniteninja/ionic-lib";
6
6
  import * as i3 from "@angular/common";
7
- import * as i4 from "@ngx-translate/core";
7
+ import * as i4 from "../icon-button/icon-button.component";
8
+ import * as i5 from "@ngx-translate/core";
8
9
  export class CardComponent {
9
10
  apiService;
10
11
  libMenuItem;
@@ -104,11 +105,11 @@ export class CardComponent {
104
105
  this.messageClicked.emit();
105
106
  }
106
107
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardComponent, deps: [{ token: i1.ApiService }], target: i0.ɵɵFactoryTarget.Component });
107
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CardComponent, selector: "app-card-component", inputs: { libMenuItem: "libMenuItem", isDraft: "isDraft", itineraryStarted: "itineraryStarted" }, outputs: { StartItineraryClick: "StartItineraryClick", TitleClicked: "TitleClicked", forkClicked: "forkClicked", messageClicked: "messageClicked" }, ngImport: i0, template: "<lib-base-card\r\n *ngIf=\"processedCardData\"\r\n class=\"card-component px-4 py-4 my-2 rounded-lg outset-downshadow\"\r\n>\r\n <div class=\"flex items-start justify-between mb-2\">\r\n <div class=\"flex gap-5 items-start\">\r\n <div\r\n [class]=\"\r\n !isDraft\r\n ? ' text-primary'\r\n : '' +\r\n ' items-center sm:text-[10px] xs:text-[9px] flex flex-col gap-y-[0px]'\r\n \"\r\n >\r\n <img [src]=\"!isDraft ? ICONS['upvote'] : ICONS['upArrowWhite']\" alt=\"\" />\r\n <span [class]=\"!isDraft ? 'text-primary' : 'drah-voter-header'\">\r\n {{ processedCardData.upVotes }}\r\n </span>\r\n <img [src]=\"ICONS['downvote']\" alt=\"\" />\r\n </div>\r\n <div class=\"\">\r\n <h4 class=\"title medium-14 p-0 m-0\" (click)=\"handleTitleClick()\">\r\n {{ processedCardData.title }}\r\n </h4>\r\n <h5\r\n class=\"text-secondary opacity-80 text-[10px] xs:text-[9px] flex gap-[6px] items-center\"\r\n >\r\n <img [src]=\"ICONS['user']\" alt=\"\" />\r\n <span\r\n >{{ processedCardData.userName }} -\r\n {{ processedCardData.timeAgo }}</span\r\n >\r\n </h5>\r\n </div>\r\n </div>\r\n <div class=\"draft-header\" *ngIf=\"processedCardData.isDraft\">\r\n Draft Saved\r\n </div>\r\n\r\n <div class=\"flex items-center\">\r\n <div\r\n *ngIf=\"itineraryStarted\"\r\n (click)=\"handleStartItineraryClick()\"\r\n class=\"startItinerary\"\r\n >\r\n <img [src]=\"ICONS['startItinerary']\" alt=\"icon\" />\r\n </div>\r\n <lib-menu-btn\r\n (select)=\"handleMenueItemSelect()\"\r\n (click)=\"handleMenuClick()\"\r\n (change)=\"handleMenuItemChange()\"\r\n class=\"lib-menu-custom-class\"\r\n [disableTextShadow]=\"true\"\r\n [menuItems]=\"libMenuItem\"\r\n >\r\n <img [src]=\"ICONS['horizontal']\" alt=\"\" />\r\n </lib-menu-btn>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 mb-1 flex items-start gap-x-5\">\r\n <div class=\"1 mb-0 flex flex-col items-center justify-center\">\r\n <img\r\n [class]=\"isDraft ? 'draf-location-image' : ''\"\r\n [src]=\"processedCardData.imageSrc\"\r\n alt=\"\"\r\n width=\"100\"\r\n />\r\n </div>\r\n <div class=\"2\">\r\n <div\r\n *ngIf=\"!cardData?.isDraft\"\r\n class=\"font-normal text-secondary flex items-center gap-x-4 text-sm\"\r\n >\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn1\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn2\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <p *ngIf=\"processedCardData.isDraft\" class=\"text-xs draft-description\">\r\n {{ \"FINISH_ITINERARY_CREATION\" | translate }}\r\n </p>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 flex items-center justify-between\">\r\n <div\r\n class=\"flex items-center justify-between sm:gap-x-7 xs:gap-x-5 sm:text-sm xs:text-[9px] text-secondary\"\r\n >\r\n <div class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['eye']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.views }}</span>\r\n </div>\r\n <div\r\n (click)=\"handleMessageClicked()\"\r\n class=\"flex items-center gap-x-[6px]\"\r\n >\r\n <img class=\"bottom-icons\" [src]=\"ICONS['comment2']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.comments }}</span>\r\n </div>\r\n <div (click)=\"handleForkClick()\" class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['fork']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.shares }}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center gap-x-2\">\r\n <span class=\"text-xs userIconText\">\r\n {{ processedCardData.users }}\r\n <span class=\"user-icon-text\" *ngIf=\"processedCardData.users > 0\"\r\n >Users</span\r\n >\r\n </span>\r\n <img [src]=\"processedCardData.userimageSrc\" alt=\"\" />\r\n </div>\r\n </div>\r\n</lib-base-card>\r\n", styles: [".card-component{width:200px!important;height:300px!important;background:#27242c}.bottom-tags{font-size:12px}.text-primary{font-size:10px}.draft-header{color:#bdbdbd;font-weight:400!important;font-size:11px!important;margin-top:7px;position:relative;left:36px}.draft-description{color:#fff}.user-icon-text{color:#bdbdbd;margin-top:2px;font-size:13px}.bottom-icons{height:15px;width:16px}.bottom-icons:last-child{height:16px!important;width:17px!important}.draf-location-image{height:5rem;width:9rem}.bottom-bar-loc{background:#413f47!important;width:5rem!important;bottom:1rem!important}.location-item-main{font-size:12px}.location-item-main span{margin-top:2px;font-size:12px}.location-item span{color:#bbbabc!important;font-size:12px;margin-top:2px}.drah-voter-header{font-family:Gilroy-Thin;margin-top:5px!important}.title{font-family:var(--font-gilroy-bold)}.h-1{opacity:.1!important}.startItinerary{position:relative;top:-4px}\n"], dependencies: [{ kind: "component", type: i2.BaseCardComponent, selector: "lib-base-card" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MenuBtnComponent, selector: "lib-menu-btn", inputs: ["menuBtnIcon", "menuBtnTooltip", "menuBtnTooltipPosition", "menuBtnIconName", "menuBtnImgUrl", "menuBtnNotificationIconUrl", "menuDirection", "hasNotification", "menuItems", "disableTranslation", "listItem", "listItemIndex", "selectable", "overlayClass", "isUserMenu", "onlyCloseOnClickOutside", "hoverOutline", "disabled", "type", "form", "label", "showArrowIcon", "disableTextShadow", "loading$"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] });
108
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CardComponent, selector: "app-card-component", inputs: { libMenuItem: "libMenuItem", isDraft: "isDraft", itineraryStarted: "itineraryStarted" }, outputs: { StartItineraryClick: "StartItineraryClick", TitleClicked: "TitleClicked", forkClicked: "forkClicked", messageClicked: "messageClicked" }, ngImport: i0, template: "<lib-base-card\r\n *ngIf=\"processedCardData\"\r\n class=\"card-component px-4 py-4 my-2 rounded-lg outset-downshadow\"\r\n>\r\n <div class=\"flex items-start justify-between mb-2\">\r\n <div class=\"flex gap-5 items-start\">\r\n <div\r\n [class]=\"\r\n !isDraft\r\n ? ' text-primary'\r\n : '' +\r\n ' items-center sm:text-[10px] xs:text-[9px] flex flex-col gap-y-[0px]'\r\n \"\r\n >\r\n <img [src]=\"!isDraft ? ICONS['upvote'] : ICONS['upArrowWhite']\" alt=\"\" />\r\n <span [class]=\"!isDraft ? 'text-primary' : 'drah-voter-header'\">\r\n {{ processedCardData.upVotes }}\r\n </span>\r\n <img [src]=\"ICONS['downvote']\" alt=\"\" />\r\n </div>\r\n <div class=\"\">\r\n <h4 class=\"title medium-14 p-0 m-0\" (click)=\"handleTitleClick()\">\r\n {{ processedCardData.title }}\r\n </h4>\r\n <h5\r\n class=\"text-secondary opacity-80 text-[10px] xs:text-[9px] flex gap-[6px] items-center\"\r\n >\r\n <img [src]=\"ICONS['user']\" alt=\"\" />\r\n <span\r\n >{{ processedCardData.userName }} -\r\n {{ processedCardData.timeAgo }}</span\r\n >\r\n </h5>\r\n </div>\r\n </div>\r\n <div class=\"draft-header\" *ngIf=\"processedCardData.isDraft\">\r\n Draft Saved\r\n </div>\r\n\r\n <div class=\"flex items-center\">\r\n <div\r\n *ngIf=\"itineraryStarted\"\r\n (click)=\"handleStartItineraryClick()\"\r\n class=\"startItinerary\"\r\n >\r\n <img [src]=\"ICONS['startItinerary']\" alt=\"icon\" />\r\n </div>\r\n <app-icon-button\r\n (select)=\"handleMenueItemSelect()\"\r\n (buttonClick)=\"handleMenuClick()\"\r\n (change)=\"handleMenuItemChange()\"\r\n class=\"lib-menu-custom-class\"\r\n [disableTextShadow]=\"true\"\r\n [menuItems]=\"libMenuItem\"\r\n [buttonIcon]=\"ICONS['horizontal']\"\r\n ></app-icon-button>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 mb-1 flex items-start gap-x-5\">\r\n <div class=\"1 mb-0 flex flex-col items-center justify-center\">\r\n <img\r\n [class]=\"isDraft ? 'draf-location-image' : ''\"\r\n [src]=\"processedCardData.imageSrc\"\r\n alt=\"\"\r\n width=\"100\"\r\n />\r\n </div>\r\n <div class=\"2\">\r\n <div\r\n *ngIf=\"!cardData?.isDraft\"\r\n class=\"font-normal text-secondary flex items-center gap-x-4 text-sm\"\r\n >\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn1\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn2\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <p *ngIf=\"processedCardData.isDraft\" class=\"text-xs draft-description\">\r\n {{ \"FINISH_ITINERARY_CREATION\" | translate }}\r\n </p>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 flex items-center justify-between\">\r\n <div\r\n class=\"flex items-center justify-between sm:gap-x-7 xs:gap-x-5 sm:text-sm xs:text-[9px] text-secondary\"\r\n >\r\n <div class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['eye']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.views }}</span>\r\n </div>\r\n <div\r\n (click)=\"handleMessageClicked()\"\r\n class=\"flex items-center gap-x-[6px]\"\r\n >\r\n <img class=\"bottom-icons\" [src]=\"ICONS['comment2']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.comments }}</span>\r\n </div>\r\n <div (click)=\"handleForkClick()\" class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['fork']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.shares }}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center gap-x-2\">\r\n <span class=\"text-xs userIconText\">\r\n {{ processedCardData.users }}\r\n <span class=\"user-icon-text\" *ngIf=\"processedCardData.users > 0\"\r\n >Users</span\r\n >\r\n </span>\r\n <img [src]=\"processedCardData.userimageSrc\" alt=\"\" />\r\n </div>\r\n </div>\r\n</lib-base-card>\r\n", styles: [".card-component{width:200px!important;height:300px!important;background:#27242c}.bottom-tags{font-size:12px}.text-primary{font-size:10px}.draft-header{color:#bdbdbd;font-weight:400!important;font-size:11px!important;margin-top:7px;position:relative;left:36px}.draft-description{color:#fff}.user-icon-text{color:#bdbdbd;margin-top:2px;font-size:13px}.bottom-icons{height:15px;width:16px}.bottom-icons:last-child{height:16px!important;width:17px!important}.draf-location-image{height:5rem;width:9rem}.bottom-bar-loc{background:#413f47!important;width:5rem!important;bottom:1rem!important}.location-item-main{font-size:12px}.location-item-main span{margin-top:2px;font-size:12px}.location-item span{color:#bbbabc!important;font-size:12px;margin-top:2px}.drah-voter-header{font-family:Gilroy-Thin;margin-top:5px!important}.title{font-family:var(--font-gilroy-bold)}.h-1{opacity:.1!important}.startItinerary{position:relative;top:-4px}\n"], dependencies: [{ kind: "component", type: i2.BaseCardComponent, selector: "lib-base-card" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconButtonComponent, selector: "app-icon-button", inputs: ["buttonIcon", "disableTextShadow", "class", "libMenuItems", "buttonText"], outputs: ["buttonClick", "select", "change"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] });
108
109
  }
109
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CardComponent, decorators: [{
110
111
  type: Component,
111
- args: [{ selector: 'app-card-component', standalone: false, template: "<lib-base-card\r\n *ngIf=\"processedCardData\"\r\n class=\"card-component px-4 py-4 my-2 rounded-lg outset-downshadow\"\r\n>\r\n <div class=\"flex items-start justify-between mb-2\">\r\n <div class=\"flex gap-5 items-start\">\r\n <div\r\n [class]=\"\r\n !isDraft\r\n ? ' text-primary'\r\n : '' +\r\n ' items-center sm:text-[10px] xs:text-[9px] flex flex-col gap-y-[0px]'\r\n \"\r\n >\r\n <img [src]=\"!isDraft ? ICONS['upvote'] : ICONS['upArrowWhite']\" alt=\"\" />\r\n <span [class]=\"!isDraft ? 'text-primary' : 'drah-voter-header'\">\r\n {{ processedCardData.upVotes }}\r\n </span>\r\n <img [src]=\"ICONS['downvote']\" alt=\"\" />\r\n </div>\r\n <div class=\"\">\r\n <h4 class=\"title medium-14 p-0 m-0\" (click)=\"handleTitleClick()\">\r\n {{ processedCardData.title }}\r\n </h4>\r\n <h5\r\n class=\"text-secondary opacity-80 text-[10px] xs:text-[9px] flex gap-[6px] items-center\"\r\n >\r\n <img [src]=\"ICONS['user']\" alt=\"\" />\r\n <span\r\n >{{ processedCardData.userName }} -\r\n {{ processedCardData.timeAgo }}</span\r\n >\r\n </h5>\r\n </div>\r\n </div>\r\n <div class=\"draft-header\" *ngIf=\"processedCardData.isDraft\">\r\n Draft Saved\r\n </div>\r\n\r\n <div class=\"flex items-center\">\r\n <div\r\n *ngIf=\"itineraryStarted\"\r\n (click)=\"handleStartItineraryClick()\"\r\n class=\"startItinerary\"\r\n >\r\n <img [src]=\"ICONS['startItinerary']\" alt=\"icon\" />\r\n </div>\r\n <lib-menu-btn\r\n (select)=\"handleMenueItemSelect()\"\r\n (click)=\"handleMenuClick()\"\r\n (change)=\"handleMenuItemChange()\"\r\n class=\"lib-menu-custom-class\"\r\n [disableTextShadow]=\"true\"\r\n [menuItems]=\"libMenuItem\"\r\n >\r\n <img [src]=\"ICONS['horizontal']\" alt=\"\" />\r\n </lib-menu-btn>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 mb-1 flex items-start gap-x-5\">\r\n <div class=\"1 mb-0 flex flex-col items-center justify-center\">\r\n <img\r\n [class]=\"isDraft ? 'draf-location-image' : ''\"\r\n [src]=\"processedCardData.imageSrc\"\r\n alt=\"\"\r\n width=\"100\"\r\n />\r\n </div>\r\n <div class=\"2\">\r\n <div\r\n *ngIf=\"!cardData?.isDraft\"\r\n class=\"font-normal text-secondary flex items-center gap-x-4 text-sm\"\r\n >\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn1\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn2\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <p *ngIf=\"processedCardData.isDraft\" class=\"text-xs draft-description\">\r\n {{ \"FINISH_ITINERARY_CREATION\" | translate }}\r\n </p>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 flex items-center justify-between\">\r\n <div\r\n class=\"flex items-center justify-between sm:gap-x-7 xs:gap-x-5 sm:text-sm xs:text-[9px] text-secondary\"\r\n >\r\n <div class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['eye']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.views }}</span>\r\n </div>\r\n <div\r\n (click)=\"handleMessageClicked()\"\r\n class=\"flex items-center gap-x-[6px]\"\r\n >\r\n <img class=\"bottom-icons\" [src]=\"ICONS['comment2']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.comments }}</span>\r\n </div>\r\n <div (click)=\"handleForkClick()\" class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['fork']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.shares }}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center gap-x-2\">\r\n <span class=\"text-xs userIconText\">\r\n {{ processedCardData.users }}\r\n <span class=\"user-icon-text\" *ngIf=\"processedCardData.users > 0\"\r\n >Users</span\r\n >\r\n </span>\r\n <img [src]=\"processedCardData.userimageSrc\" alt=\"\" />\r\n </div>\r\n </div>\r\n</lib-base-card>\r\n", styles: [".card-component{width:200px!important;height:300px!important;background:#27242c}.bottom-tags{font-size:12px}.text-primary{font-size:10px}.draft-header{color:#bdbdbd;font-weight:400!important;font-size:11px!important;margin-top:7px;position:relative;left:36px}.draft-description{color:#fff}.user-icon-text{color:#bdbdbd;margin-top:2px;font-size:13px}.bottom-icons{height:15px;width:16px}.bottom-icons:last-child{height:16px!important;width:17px!important}.draf-location-image{height:5rem;width:9rem}.bottom-bar-loc{background:#413f47!important;width:5rem!important;bottom:1rem!important}.location-item-main{font-size:12px}.location-item-main span{margin-top:2px;font-size:12px}.location-item span{color:#bbbabc!important;font-size:12px;margin-top:2px}.drah-voter-header{font-family:Gilroy-Thin;margin-top:5px!important}.title{font-family:var(--font-gilroy-bold)}.h-1{opacity:.1!important}.startItinerary{position:relative;top:-4px}\n"] }]
112
+ args: [{ selector: 'app-card-component', standalone: false, template: "<lib-base-card\r\n *ngIf=\"processedCardData\"\r\n class=\"card-component px-4 py-4 my-2 rounded-lg outset-downshadow\"\r\n>\r\n <div class=\"flex items-start justify-between mb-2\">\r\n <div class=\"flex gap-5 items-start\">\r\n <div\r\n [class]=\"\r\n !isDraft\r\n ? ' text-primary'\r\n : '' +\r\n ' items-center sm:text-[10px] xs:text-[9px] flex flex-col gap-y-[0px]'\r\n \"\r\n >\r\n <img [src]=\"!isDraft ? ICONS['upvote'] : ICONS['upArrowWhite']\" alt=\"\" />\r\n <span [class]=\"!isDraft ? 'text-primary' : 'drah-voter-header'\">\r\n {{ processedCardData.upVotes }}\r\n </span>\r\n <img [src]=\"ICONS['downvote']\" alt=\"\" />\r\n </div>\r\n <div class=\"\">\r\n <h4 class=\"title medium-14 p-0 m-0\" (click)=\"handleTitleClick()\">\r\n {{ processedCardData.title }}\r\n </h4>\r\n <h5\r\n class=\"text-secondary opacity-80 text-[10px] xs:text-[9px] flex gap-[6px] items-center\"\r\n >\r\n <img [src]=\"ICONS['user']\" alt=\"\" />\r\n <span\r\n >{{ processedCardData.userName }} -\r\n {{ processedCardData.timeAgo }}</span\r\n >\r\n </h5>\r\n </div>\r\n </div>\r\n <div class=\"draft-header\" *ngIf=\"processedCardData.isDraft\">\r\n Draft Saved\r\n </div>\r\n\r\n <div class=\"flex items-center\">\r\n <div\r\n *ngIf=\"itineraryStarted\"\r\n (click)=\"handleStartItineraryClick()\"\r\n class=\"startItinerary\"\r\n >\r\n <img [src]=\"ICONS['startItinerary']\" alt=\"icon\" />\r\n </div>\r\n <app-icon-button\r\n (select)=\"handleMenueItemSelect()\"\r\n (buttonClick)=\"handleMenuClick()\"\r\n (change)=\"handleMenuItemChange()\"\r\n class=\"lib-menu-custom-class\"\r\n [disableTextShadow]=\"true\"\r\n [menuItems]=\"libMenuItem\"\r\n [buttonIcon]=\"ICONS['horizontal']\"\r\n ></app-icon-button>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 mb-1 flex items-start gap-x-5\">\r\n <div class=\"1 mb-0 flex flex-col items-center justify-center\">\r\n <img\r\n [class]=\"isDraft ? 'draf-location-image' : ''\"\r\n [src]=\"processedCardData.imageSrc\"\r\n alt=\"\"\r\n width=\"100\"\r\n />\r\n </div>\r\n <div class=\"2\">\r\n <div\r\n *ngIf=\"!cardData?.isDraft\"\r\n class=\"font-normal text-secondary flex items-center gap-x-4 text-sm\"\r\n >\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn1\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n <ul class=\"flex flex-col gap-y-[6px] xs:text-[9px] sm:text-[12px]\">\r\n <li\r\n *ngFor=\"let location of cardDataForLocations.locationColumn2\"\r\n class=\"location-item flex items-center gap-1\"\r\n >\r\n <img [src]=\"location.icon\" alt=\"\" />\r\n <span class=\"truncate sm:max-w-10 xs:max-w-11\">{{\r\n location.name\r\n }}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <p *ngIf=\"processedCardData.isDraft\" class=\"text-xs draft-description\">\r\n {{ \"FINISH_ITINERARY_CREATION\" | translate }}\r\n </p>\r\n </div>\r\n </div>\r\n <hr class=\"h-1 text-secondary opacity-25\" />\r\n <div class=\"my-2 flex items-center justify-between\">\r\n <div\r\n class=\"flex items-center justify-between sm:gap-x-7 xs:gap-x-5 sm:text-sm xs:text-[9px] text-secondary\"\r\n >\r\n <div class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['eye']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.views }}</span>\r\n </div>\r\n <div\r\n (click)=\"handleMessageClicked()\"\r\n class=\"flex items-center gap-x-[6px]\"\r\n >\r\n <img class=\"bottom-icons\" [src]=\"ICONS['comment2']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.comments }}</span>\r\n </div>\r\n <div (click)=\"handleForkClick()\" class=\"flex items-center gap-x-[6px]\">\r\n <img class=\"bottom-icons\" [src]=\"ICONS['fork']\" alt=\"\" />\r\n <span class=\"bottom-tags\">{{ processedCardData.shares }}</span>\r\n </div>\r\n </div>\r\n <div class=\"flex items-center gap-x-2\">\r\n <span class=\"text-xs userIconText\">\r\n {{ processedCardData.users }}\r\n <span class=\"user-icon-text\" *ngIf=\"processedCardData.users > 0\"\r\n >Users</span\r\n >\r\n </span>\r\n <img [src]=\"processedCardData.userimageSrc\" alt=\"\" />\r\n </div>\r\n </div>\r\n</lib-base-card>\r\n", styles: [".card-component{width:200px!important;height:300px!important;background:#27242c}.bottom-tags{font-size:12px}.text-primary{font-size:10px}.draft-header{color:#bdbdbd;font-weight:400!important;font-size:11px!important;margin-top:7px;position:relative;left:36px}.draft-description{color:#fff}.user-icon-text{color:#bdbdbd;margin-top:2px;font-size:13px}.bottom-icons{height:15px;width:16px}.bottom-icons:last-child{height:16px!important;width:17px!important}.draf-location-image{height:5rem;width:9rem}.bottom-bar-loc{background:#413f47!important;width:5rem!important;bottom:1rem!important}.location-item-main{font-size:12px}.location-item-main span{margin-top:2px;font-size:12px}.location-item span{color:#bbbabc!important;font-size:12px;margin-top:2px}.drah-voter-header{font-family:Gilroy-Thin;margin-top:5px!important}.title{font-family:var(--font-gilroy-bold)}.h-1{opacity:.1!important}.startItinerary{position:relative;top:-4px}\n"] }]
112
113
  }], ctorParameters: () => [{ type: i1.ApiService }], propDecorators: { libMenuItem: [{
113
114
  type: Input
114
115
  }], isDraft: [{
@@ -124,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
124
125
  }], messageClicked: [{
125
126
  type: Output
126
127
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvc2hhcmVkL2NhcmQtY29tcG9uZW50L2NhcmQtY29tcG9uZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL3NoYXJlZC9jYXJkLWNvbXBvbmVudC9jYXJkLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBV25ELE1BQU0sT0FBTyxhQUFhO0lBMkJKO0lBMUJYLFdBQVcsQ0FBaUI7SUFDNUIsT0FBTyxDQUFXO0lBQzNCLFFBQVEsQ0FBd0I7SUFDaEMsaUJBQWlCLENBQXdCO0lBQ3pDLEtBQUssR0FBVSxLQUFLLENBQUM7SUFDWixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFDakMsbUJBQW1CLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFDbkUsWUFBWSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBQzVELFdBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUMzRCxjQUFjLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFeEUsb0JBQW9CLEdBQUc7UUFDckIsZUFBZSxFQUFFO1lBQ2YsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDdkMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFF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LEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDekQsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ2xELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDM0QsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQ3JELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUMzRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO2dCQUM3QyxDQUFDLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztnQkFDdkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUTtTQUMxRSxDQUFDO0lBQ0osQ0FBQztJQUVELHFCQUFxQixLQUFVLENBQUM7SUFDaEMsb0JBQW9CLEtBQVUsQ0FBQztJQUMvQixlQUFlLEtBQVUsQ0FBQztJQUUxQixlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QseUJBQXlCO1FBQ3ZCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0Qsb0JBQW9CO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQzt3R0F0R1UsYUFBYTs0RkFBYixhQUFhLGlUQ2IxQix1a0tBc0lBOzs0RkR6SGEsYUFBYTtrQkFOekIsU0FBUzsrQkFDSSxvQkFBb0IsY0FHbEIsS0FBSzsrRUFHVixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFJRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksbUJBQW1CO3NCQUE1QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMaWJNZW51SXRlbSB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInOyAgIFxyXG5pbXBvcnQgeyBJQ09OUyB9IGZyb20gJy4uLy4uL19jb25zdGFudHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgSUNhcmREYXRhIH0gZnJvbSAnLi4vLi4vX2ludGVyZmFjZS9jYXJkRGF0YSc7XHJcbmltcG9ydCB7IElpY29uIH0gZnJvbSAnLi4vLi4vX2ludGVyZmFjZS9pY29uJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL19zZXJ2aWNlcy9hcGkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLWNhcmQtY29tcG9uZW50JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jYXJkLWNvbXBvbmVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIGxpYk1lbnVJdGVtITogTGliTWVudUl0ZW1bXTtcclxuICBASW5wdXQoKSBpc0RyYWZ0ITogYm9vbGVhbjtcclxuICBjYXJkRGF0YTogSUNhcmREYXRhIHwgdW5kZWZpbmVkO1xyXG4gIHByb2Nlc3NlZENhcmREYXRhOiBJQ2FyZERhdGEgfCB1bmRlZmluZWQ7XHJcbiAgSUNPTlM6IElpY29uID0gSUNPTlM7XHJcbiAgQElucHV0KCkgaXRpbmVyYXJ5U3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBPdXRwdXQoKSBTdGFydEl0aW5lcmFyeUNsaWNrOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIFRpdGxlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBmb3JrQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBtZXNzYWdlQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBjYXJkRGF0YUZvckxvY2F0aW9ucyA9IHtcclxuICAgIGxvY2F0aW9uQ29sdW1uMTogW1xyXG4gICAgICB7IGljb246IElDT05TWyd0ZW1wJ10sIG5hbWU6ICdQYWxhY2UnIH0sXHJcbiAgICAgIHsgaWNvbjogSUNPTlNbJ3BhbGFjZTInXSwgbmFtZTogJ1RlbXBsYXRlJyB9LFxyXG4gICAgICB7IGljb246IElDT05TWydwYWxhY2UyJ10sIG5hbWU6ICdPcHRpb25hbCcgfSxcclxuICAgICAgeyBpY29uOiBJQ09OU1sncGFsYWNlMiddLCBuYW1lOiAnT3B0aW9uYWwnIH0sXHJcbiAgICBdLFxyXG4gICAgbG9jYXRpb25Db2x1bW4yOiBbXHJcbiAgICAgIHsgaWNvbjogSUNPTlNbJ2NvZmZlZSddLCBuYW1lOiAnQ29mZmVlIHNob3AnIH0sXHJcbiAgICAgIHsgaWNvbjogSUNPTlNbJ3RlbXBsYXRlJ10sIG5hbWU6ICdPcHRpb25hbCcgfSxcclxuICAgICAgeyBpY29uOiBJQ09OU1sndGVtcGxhdGUnXSwgbmFtZTogJ09wdGlvbmFsJyB9LFxyXG4gICAgICB7IGljb246IElDT05TWyd0ZW1wbGF0ZSddLCBuYW1lOiAnT3B0aW9uYWwnIH0sXHJcbiAgICBdLFxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpU2VydmljZTogQXBpU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuaXNEcmFmdCkge1xyXG4gICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0KCcvYXNzZXRzL2RhdGEuanNvbicpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuY2FyZERhdGEgPSBkYXRhIGFzIElDYXJkRGF0YTtcclxuICAgICAgICB0aGlzLnByb2Nlc3NlZENhcmREYXRhID0gdGhpcy5wcm9jZXNzQ2FyZERhdGEodGhpcy5jYXJkRGF0YSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jYXJkRGF0YSA9IHtcclxuICAgICAgICBpZDogJzInLFxyXG4gICAgICAgIHVwVm90ZXM6ICcnLFxyXG4gICAgICAgIGRvd25Wb3RlczogNSxcclxuICAgICAgICB0aXRsZTogJycsXHJcbiAgICAgICAgdXNlck5hbWU6ICcnLFxyXG4gICAgICAgIHRpbWVBZ286ICcnLFxyXG4gICAgICAgIGxvY2F0aW9uOiAnJyxcclxuICAgICAgICB2aWV3czogMCxcclxuICAgICAgICBjb21tZW50czogMCxcclxuICAgICAgICBzaGFyZXM6IDAsXHJcbiAgICAgICAgdXNlcnM6IDAsXHJcbiAgICAgICAgaW1hZ2VTcmM6ICcnLFxyXG4gICAgICAgIHVzZXJpbWFnZVNyYzogJycsXHJcbiAgICAgICAgaXNEcmFmdDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5wcm9jZXNzZWRDYXJkRGF0YSA9IHRoaXMucHJvY2Vzc0NhcmREYXRhKHRoaXMuY2FyZERhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBudWxsQ2hlY2soZGF0YTogc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgZGF0YT8udG9TdHJpbmcoKS5sZW5ndGggPT0gMCB8fFxyXG4gICAgICBkYXRhID09IG51bGwgfHxcclxuICAgICAgZGF0YSA9PSB1bmRlZmluZWQgfHxcclxuICAgICAgZGF0YSA9PSAnMCcgfHxcclxuICAgICAgZGF0YSA9PSAwIHx8XHJcbiAgICAgIGRhdGEgPT0gJy0nXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwcm9jZXNzQ2FyZERhdGEoZGF0YTogSUNhcmREYXRhKTogSUNhcmREYXRhIHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIC4uLmRhdGEsXHJcbiAgICAgIGlkOiBkYXRhLmlkLFxyXG4gICAgICB1cFZvdGVzOiB0aGlzLm51bGxDaGVjayhkYXRhLnVwVm90ZXMpID8gJzAwJyA6IGRhdGEudXBWb3RlcyxcclxuICAgICAgdGl0bGU6IHRoaXMubnVsbENoZWNrKGRhdGEudGl0bGUpID8gJ1VudGl0bGVkIEl0aW5lcmFyeScgOiBkYXRhLnRpdGxlLFxyXG4gICAgICB1c2VyTmFtZTogdGhpcy5udWxsQ2hlY2soZGF0YS51c2VyTmFtZSkgPyAnWW91JyA6IGRhdGEudXNlck5hbWUsXHJcbiAgICAgIHRpbWVBZ286IHRoaXMubnVsbENoZWNrKGRhdGEudGltZUFnbykgPyAnJyA6IGRhdGEudGltZUFnbyxcclxuICAgICAgdXNlcnM6IHRoaXMubnVsbENoZWNrKGRhdGEudXNlcnMpID8gMCA6IGRhdGEudXNlcnMsXHJcbiAgICAgIHZpZXdzOiB0aGlzLm51bGxDaGVjayhkYXRhLnZpZXdzKSA/IDAgOiBkYXRhLnZpZXdzLFxyXG4gICAgICBjb21tZW50czogdGhpcy5udWxsQ2hlY2soZGF0YS5jb21tZW50cykgPyAwIDogZGF0YS5jb21tZW50cyxcclxuICAgICAgc2hhcmVzOiB0aGlzLm51bGxDaGVjayhkYXRhLnNoYXJlcykgPyAwIDogZGF0YS5zaGFyZXMsXHJcbiAgICAgIGltYWdlU3JjOiB0aGlzLm51bGxDaGVjayhkYXRhLmltYWdlU3JjKSA/IElDT05TWyd1bnRpdGxlZCddIDogZGF0YS5pbWFnZVNyYyxcclxuICAgICAgdXNlcmltYWdlU3JjOiB0aGlzLm51bGxDaGVjayhkYXRhLnVzZXJpbWFnZVNyYylcclxuICAgICAgICA/IElDT05TWydub3RTcGVjaWZpZWQnXVxyXG4gICAgICAgIDogZGF0YS51c2VyaW1hZ2VTcmMsXHJcbiAgICAgIGxvY2F0aW9uOiB0aGlzLm51bGxDaGVjayhkYXRhLmxvY2F0aW9uKSA/ICdOb3QgU3BlY2lmaWVkJyA6IGRhdGEubG9jYXRpb24sXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlTWVudWVJdGVtU2VsZWN0KCk6IHZvaWQge31cclxuICBoYW5kbGVNZW51SXRlbUNoYW5nZSgpOiB2b2lkIHt9XHJcbiAgaGFuZGxlTWVudUNsaWNrKCk6IHZvaWQge31cclxuXHJcbiAgaGFuZGxlRm9ya0NsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JrQ2xpY2tlZC5lbWl0KCk7XHJcbiAgfVxyXG4gIGhhbmRsZVN0YXJ0SXRpbmVyYXJ5Q2xpY2soKTogdm9pZCB7XHJcbiAgICB0aGlzLlN0YXJ0SXRpbmVyYXJ5Q2xpY2suZW1pdCgpO1xyXG4gIH1cclxuICBoYW5kbGVUaXRsZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5UaXRsZUNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuICBoYW5kbGVNZXNzYWdlQ2xpY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMubWVzc2FnZUNsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxufVxyXG4iLCI8bGliLWJhc2UtY2FyZFxyXG4gICpuZ0lmPVwicHJvY2Vzc2VkQ2FyZERhdGFcIlxyXG4gIGNsYXNzPVwiY2FyZC1jb21wb25lbnQgcHgtNCBweS00IG15LTIgcm91bmRlZC1sZyBvdXRzZXQtZG93bnNoYWRvd1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWJldHdlZW4gbWItMlwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLTUgaXRlbXMtc3RhcnRcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIFtjbGFzc109XCJcclxuICAgICAgICAgICFpc0RyYWZ0XHJcbiAgICAgICAgICAgID8gJyB0ZXh0LXByaW1hcnknXHJcbiAgICAgICAgICAgIDogJycgK1xyXG4gICAgICAgICAgICAgICcgaXRlbXMtY2VudGVyIHNtOnRleHQtWzEwcHhdIHhzOnRleHQtWzlweF0gZmxleCBmbGV4LWNvbCBnYXAteS1bMHB4XSdcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIiFpc0RyYWZ0ID8gSUNPTlNbJ3Vwdm90ZSddIDogSUNPTlNbJ3VwQXJyb3dXaGl0ZSddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiIWlzRHJhZnQgPyAndGV4dC1wcmltYXJ5JyA6ICdkcmFoLXZvdGVyLWhlYWRlcidcIj5cclxuICAgICAgICAgIHt7IHByb2Nlc3NlZENhcmREYXRhLnVwVm90ZXMgfX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIklDT05TWydkb3dudm90ZSddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICA8aDQgY2xhc3M9XCJ0aXRsZSBtZWRpdW0tMTQgcC0wIG0tMFwiIChjbGljayk9XCJoYW5kbGVUaXRsZUNsaWNrKClcIj5cclxuICAgICAgICAgIHt7IHByb2Nlc3NlZENhcmREYXRhLnRpdGxlIH19XHJcbiAgICAgICAgPC9oND5cclxuICAgICAgICA8aDVcclxuICAgICAgICAgIGNsYXNzPVwidGV4dC1zZWNvbmRhcnkgb3BhY2l0eS04MCB0ZXh0LVsxMHB4XSB4czp0ZXh0LVs5cHhdIGZsZXggZ2FwLVs2cHhdIGl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGltZyBbc3JjXT1cIklDT05TWyd1c2VyJ11cIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgPnt7IHByb2Nlc3NlZENhcmREYXRhLnVzZXJOYW1lIH19IC1cclxuICAgICAgICAgICAge3sgcHJvY2Vzc2VkQ2FyZERhdGEudGltZUFnbyB9fTwvc3BhblxyXG4gICAgICAgICAgPlxyXG4gICAgICAgIDwvaDU+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJhZnQtaGVhZGVyXCIgKm5nSWY9XCJwcm9jZXNzZWRDYXJkRGF0YS5pc0RyYWZ0XCI+XHJcbiAgICAgIERyYWZ0IFNhdmVkXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgICpuZ0lmPVwiaXRpbmVyYXJ5U3RhcnRlZFwiXHJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZVN0YXJ0SXRpbmVyYXJ5Q2xpY2soKVwiXHJcbiAgICAgICAgY2xhc3M9XCJzdGFydEl0aW5lcmFyeVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiSUNPTlNbJ3N0YXJ0SXRpbmVyYXJ5J11cIiBhbHQ9XCJpY29uXCIgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxsaWItbWVudS1idG5cclxuICAgICAgICAoc2VsZWN0KT1cImhhbmRsZU1lbnVlSXRlbVNlbGVjdCgpXCJcclxuICAgICAgICAoY2xpY2spPVwiaGFuZGxlTWVudUNsaWNrKClcIlxyXG4gICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlTWVudUl0ZW1DaGFuZ2UoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJsaWItbWVudS1jdXN0b20tY2xhc3NcIlxyXG4gICAgICAgIFtkaXNhYmxlVGV4dFNoYWRvd109XCJ0cnVlXCJcclxuICAgICAgICBbbWVudUl0ZW1zXT1cImxpYk1lbnVJdGVtXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJJQ09OU1snaG9yaXpvbnRhbCddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgPC9saWItbWVudS1idG4+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8aHIgY2xhc3M9XCJoLTEgdGV4dC1zZWNvbmRhcnkgb3BhY2l0eS0yNVwiIC8+XHJcbiAgPGRpdiBjbGFzcz1cIm15LTIgbWItMSBmbGV4IGl0ZW1zLXN0YXJ0IGdhcC14LTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCIxIG1iLTAgZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgPGltZ1xyXG4gICAgICAgIFtjbGFzc109XCJpc0RyYWZ0ID8gJ2RyYWYtbG9jYXRpb24taW1hZ2UnIDogJydcIlxyXG4gICAgICAgIFtzcmNdPVwicHJvY2Vzc2VkQ2FyZERhdGEuaW1hZ2VTcmNcIlxyXG4gICAgICAgIGFsdD1cIlwiXHJcbiAgICAgICAgd2lkdGg9XCIxMDBcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiMlwiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCIhY2FyZERhdGE/LmlzRHJhZnRcIlxyXG4gICAgICAgIGNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1zZWNvbmRhcnkgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtNCB0ZXh0LXNtXCJcclxuICAgICAgPlxyXG4gICAgICAgIDx1bCBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLXktWzZweF0geHM6dGV4dC1bOXB4XSBzbTp0ZXh0LVsxMnB4XVwiPlxyXG4gICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsb2NhdGlvbiBvZiBjYXJkRGF0YUZvckxvY2F0aW9ucy5sb2NhdGlvbkNvbHVtbjFcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImxvY2F0aW9uLWl0ZW0gZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwibG9jYXRpb24uaWNvblwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgc206bWF4LXctMTAgeHM6bWF4LXctMTFcIj57e1xyXG4gICAgICAgICAgICAgIGxvY2F0aW9uLm5hbWVcclxuICAgICAgICAgICAgfX08L3NwYW4+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIDwvdWw+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteS1bNnB4XSB4czp0ZXh0LVs5cHhdIHNtOnRleHQtWzEycHhdXCI+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGNhcmREYXRhRm9yTG9jYXRpb25zLmxvY2F0aW9uQ29sdW1uMlwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibG9jYXRpb24taXRlbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJsb2NhdGlvbi5pY29uXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSBzbTptYXgtdy0xMCB4czptYXgtdy0xMVwiPnt7XHJcbiAgICAgICAgICAgICAgbG9jYXRpb24ubmFtZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxwICpuZ0lmPVwicHJvY2Vzc2VkQ2FyZERhdGEuaXNEcmFmdFwiIGNsYXNzPVwidGV4dC14cyBkcmFmdC1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgIHt7IFwiRklOSVNIX0lUSU5FUkFSWV9DUkVBVElPTlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvcD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxociBjbGFzcz1cImgtMSB0ZXh0LXNlY29uZGFyeSBvcGFjaXR5LTI1XCIgLz5cclxuICA8ZGl2IGNsYXNzPVwibXktMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gc206Z2FwLXgtNyB4czpnYXAteC01IHNtOnRleHQtc20geHM6dGV4dC1bOXB4XSB0ZXh0LXNlY29uZGFyeVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC1bNnB4XVwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJib3R0b20taWNvbnNcIiBbc3JjXT1cIklDT05TWydleWUnXVwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tdGFnc1wiPnt7IHByb2Nlc3NlZENhcmREYXRhLnZpZXdzIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVNZXNzYWdlQ2xpY2tlZCgpXCJcclxuICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LVs2cHhdXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJib3R0b20taWNvbnNcIiBbc3JjXT1cIklDT05TWydjb21tZW50MiddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJvdHRvbS10YWdzXCI+e3sgcHJvY2Vzc2VkQ2FyZERhdGEuY29tbWVudHMgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IChjbGljayk9XCJoYW5kbGVGb3JrQ2xpY2soKVwiIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtWzZweF1cIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwiYm90dG9tLWljb25zXCIgW3NyY109XCJJQ09OU1snZm9yayddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJvdHRvbS10YWdzXCI+e3sgcHJvY2Vzc2VkQ2FyZERhdGEuc2hhcmVzIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTJcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXhzIHVzZXJJY29uVGV4dFwiPlxyXG4gICAgICAgIHt7IHByb2Nlc3NlZENhcmREYXRhLnVzZXJzIH19XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1c2VyLWljb24tdGV4dFwiICpuZ0lmPVwicHJvY2Vzc2VkQ2FyZERhdGEudXNlcnMgPiAwXCJcclxuICAgICAgICAgID5Vc2Vyczwvc3BhblxyXG4gICAgICAgID5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8aW1nIFtzcmNdPVwicHJvY2Vzc2VkQ2FyZERhdGEudXNlcmltYWdlU3JjXCIgYWx0PVwiXCIgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2xpYi1iYXNlLWNhcmQ+XHJcbiJdfQ==
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1jb21wb25lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvc2hhcmVkL2NhcmQtY29tcG9uZW50L2NhcmQtY29tcG9uZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL3NoYXJlZC9jYXJkLWNvbXBvbmVudC9jYXJkLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7OztBQVduRCxNQUFNLE9BQU8sYUFBYTtJQTJCSjtJQTFCWCxXQUFXLENBQWlCO0lBQzVCLE9BQU8sQ0FBVztJQUMzQixRQUFRLENBQXdCO0lBQ2hDLGlCQUFpQixDQUF3QjtJQUN6QyxLQUFLLEdBQVUsS0FBSyxDQUFDO0lBQ1osZ0JBQWdCLEdBQVksS0FBSyxDQUFDO0lBQ2pDLG1CQUFtQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBQ25FLFlBQVksR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQUM1RCxXQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFDM0QsY0FBYyxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRXhFLG9CQUFvQixHQUFHO1FBQ3JCLGVBQWUsRUFBRTtZQUNmLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFO1lBQ3ZDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFB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TyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ3pELEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSztZQUNsRCxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDbEQsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRO1lBQzNELE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUNyRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFDM0UsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztnQkFDN0MsQ0FBQyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7Z0JBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWTtZQUNyQixRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVE7U0FDMUUsQ0FBQztJQUNKLENBQUM7SUFFRCxxQkFBcUIsS0FBVSxDQUFDO0lBQ2hDLG9CQUFvQixLQUFVLENBQUM7SUFDL0IsZUFBZSxLQUFVLENBQUM7SUFFMUIsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUNELHlCQUF5QjtRQUN2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUNELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzdCLENBQUM7d0dBdEdVLGFBQWE7NEZBQWIsYUFBYSxpVENiMUIsK2pLQXFJQTs7NEZEeEhhLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0ksb0JBQW9CLGNBR2xCLEtBQUs7K0VBR1YsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGliTWVudUl0ZW0gfSBmcm9tICdAbmFuaXRlbmluamEvaW9uaWMtbGliJzsgICBcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IElDYXJkRGF0YSB9IGZyb20gJy4uLy4uL19pbnRlcmZhY2UvY2FyZERhdGEnO1xyXG5pbXBvcnQgeyBJaWNvbiB9IGZyb20gJy4uLy4uL19pbnRlcmZhY2UvaWNvbic7XHJcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi9fc2VydmljZXMvYXBpLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jYXJkLWNvbXBvbmVudCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1jb21wb25lbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY2FyZC1jb21wb25lbnQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBsaWJNZW51SXRlbSE6IExpYk1lbnVJdGVtW107XHJcbiAgQElucHV0KCkgaXNEcmFmdCE6IGJvb2xlYW47XHJcbiAgY2FyZERhdGE6IElDYXJkRGF0YSB8IHVuZGVmaW5lZDtcclxuICBwcm9jZXNzZWRDYXJkRGF0YTogSUNhcmREYXRhIHwgdW5kZWZpbmVkO1xyXG4gIElDT05TOiBJaWNvbiA9IElDT05TO1xyXG4gIEBJbnB1dCgpIGl0aW5lcmFyeVN0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgU3RhcnRJdGluZXJhcnlDbGljazogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBUaXRsZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgZm9ya0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgbWVzc2FnZUNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgY2FyZERhdGFGb3JMb2NhdGlvbnMgPSB7XHJcbiAgICBsb2NhdGlvbkNvbHVtbjE6IFtcclxuICAgICAgeyBpY29uOiBJQ09OU1sndGVtcCddLCBuYW1lOiAnUGFsYWNlJyB9LFxyXG4gICAgICB7IGljb246IElDT05TWydwYWxhY2UyJ10sIG5hbWU6ICdUZW1wbGF0ZScgfSxcclxuICAgICAgeyBpY29uOiBJQ09OU1sncGFsYWNlMiddLCBuYW1lOiAnT3B0aW9uYWwnIH0sXHJcbiAgICAgIHsgaWNvbjogSUNPTlNbJ3BhbGFjZTInXSwgbmFtZTogJ09wdGlvbmFsJyB9LFxyXG4gICAgXSxcclxuICAgIGxvY2F0aW9uQ29sdW1uMjogW1xyXG4gICAgICB7IGljb246IElDT05TWydjb2ZmZWUnXSwgbmFtZTogJ0NvZmZlZSBzaG9wJyB9LFxyXG4gICAgICB7IGljb246IElDT05TWyd0ZW1wbGF0ZSddLCBuYW1lOiAnT3B0aW9uYWwnIH0sXHJcbiAgICAgIHsgaWNvbjogSUNPTlNbJ3RlbXBsYXRlJ10sIG5hbWU6ICdPcHRpb25hbCcgfSxcclxuICAgICAgeyBpY29uOiBJQ09OU1sndGVtcGxhdGUnXSwgbmFtZTogJ09wdGlvbmFsJyB9LFxyXG4gICAgXSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmlzRHJhZnQpIHtcclxuICAgICAgdGhpcy5hcGlTZXJ2aWNlLmdldCgnL2Fzc2V0cy9kYXRhLmpzb24nKS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLmNhcmREYXRhID0gZGF0YSBhcyBJQ2FyZERhdGE7XHJcbiAgICAgICAgdGhpcy5wcm9jZXNzZWRDYXJkRGF0YSA9IHRoaXMucHJvY2Vzc0NhcmREYXRhKHRoaXMuY2FyZERhdGEpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY2FyZERhdGEgPSB7XHJcbiAgICAgICAgaWQ6ICcyJyxcclxuICAgICAgICB1cFZvdGVzOiAnJyxcclxuICAgICAgICBkb3duVm90ZXM6IDUsXHJcbiAgICAgICAgdGl0bGU6ICcnLFxyXG4gICAgICAgIHVzZXJOYW1lOiAnJyxcclxuICAgICAgICB0aW1lQWdvOiAnJyxcclxuICAgICAgICBsb2NhdGlvbjogJycsXHJcbiAgICAgICAgdmlld3M6IDAsXHJcbiAgICAgICAgY29tbWVudHM6IDAsXHJcbiAgICAgICAgc2hhcmVzOiAwLFxyXG4gICAgICAgIHVzZXJzOiAwLFxyXG4gICAgICAgIGltYWdlU3JjOiAnJyxcclxuICAgICAgICB1c2VyaW1hZ2VTcmM6ICcnLFxyXG4gICAgICAgIGlzRHJhZnQ6IHRydWUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMucHJvY2Vzc2VkQ2FyZERhdGEgPSB0aGlzLnByb2Nlc3NDYXJkRGF0YSh0aGlzLmNhcmREYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgbnVsbENoZWNrKGRhdGE6IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIGRhdGE/LnRvU3RyaW5nKCkubGVuZ3RoID09IDAgfHxcclxuICAgICAgZGF0YSA9PSBudWxsIHx8XHJcbiAgICAgIGRhdGEgPT0gdW5kZWZpbmVkIHx8XHJcbiAgICAgIGRhdGEgPT0gJzAnIHx8XHJcbiAgICAgIGRhdGEgPT0gMCB8fFxyXG4gICAgICBkYXRhID09ICctJ1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcHJvY2Vzc0NhcmREYXRhKGRhdGE6IElDYXJkRGF0YSk6IElDYXJkRGF0YSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAuLi5kYXRhLFxyXG4gICAgICBpZDogZGF0YS5pZCxcclxuICAgICAgdXBWb3RlczogdGhpcy5udWxsQ2hlY2soZGF0YS51cFZvdGVzKSA/ICcwMCcgOiBkYXRhLnVwVm90ZXMsXHJcbiAgICAgIHRpdGxlOiB0aGlzLm51bGxDaGVjayhkYXRhLnRpdGxlKSA/ICdVbnRpdGxlZCBJdGluZXJhcnknIDogZGF0YS50aXRsZSxcclxuICAgICAgdXNlck5hbWU6IHRoaXMubnVsbENoZWNrKGRhdGEudXNlck5hbWUpID8gJ1lvdScgOiBkYXRhLnVzZXJOYW1lLFxyXG4gICAgICB0aW1lQWdvOiB0aGlzLm51bGxDaGVjayhkYXRhLnRpbWVBZ28pID8gJycgOiBkYXRhLnRpbWVBZ28sXHJcbiAgICAgIHVzZXJzOiB0aGlzLm51bGxDaGVjayhkYXRhLnVzZXJzKSA/IDAgOiBkYXRhLnVzZXJzLFxyXG4gICAgICB2aWV3czogdGhpcy5udWxsQ2hlY2soZGF0YS52aWV3cykgPyAwIDogZGF0YS52aWV3cyxcclxuICAgICAgY29tbWVudHM6IHRoaXMubnVsbENoZWNrKGRhdGEuY29tbWVudHMpID8gMCA6IGRhdGEuY29tbWVudHMsXHJcbiAgICAgIHNoYXJlczogdGhpcy5udWxsQ2hlY2soZGF0YS5zaGFyZXMpID8gMCA6IGRhdGEuc2hhcmVzLFxyXG4gICAgICBpbWFnZVNyYzogdGhpcy5udWxsQ2hlY2soZGF0YS5pbWFnZVNyYykgPyBJQ09OU1sndW50aXRsZWQnXSA6IGRhdGEuaW1hZ2VTcmMsXHJcbiAgICAgIHVzZXJpbWFnZVNyYzogdGhpcy5udWxsQ2hlY2soZGF0YS51c2VyaW1hZ2VTcmMpXHJcbiAgICAgICAgPyBJQ09OU1snbm90U3BlY2lmaWVkJ11cclxuICAgICAgICA6IGRhdGEudXNlcmltYWdlU3JjLFxyXG4gICAgICBsb2NhdGlvbjogdGhpcy5udWxsQ2hlY2soZGF0YS5sb2NhdGlvbikgPyAnTm90IFNwZWNpZmllZCcgOiBkYXRhLmxvY2F0aW9uLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGhhbmRsZU1lbnVlSXRlbVNlbGVjdCgpOiB2b2lkIHt9XHJcbiAgaGFuZGxlTWVudUl0ZW1DaGFuZ2UoKTogdm9pZCB7fVxyXG4gIGhhbmRsZU1lbnVDbGljaygpOiB2b2lkIHt9XHJcblxyXG4gIGhhbmRsZUZvcmtDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ya0NsaWNrZWQuZW1pdCgpO1xyXG4gIH1cclxuICBoYW5kbGVTdGFydEl0aW5lcmFyeUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5TdGFydEl0aW5lcmFyeUNsaWNrLmVtaXQoKTtcclxuICB9XHJcbiAgaGFuZGxlVGl0bGVDbGljaygpOiB2b2lkIHtcclxuICAgIHRoaXMuVGl0bGVDbGlja2VkLmVtaXQoKTtcclxuICB9XHJcbiAgaGFuZGxlTWVzc2FnZUNsaWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLm1lc3NhZ2VDbGlja2VkLmVtaXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGxpYi1iYXNlLWNhcmRcclxuICAqbmdJZj1cInByb2Nlc3NlZENhcmREYXRhXCJcclxuICBjbGFzcz1cImNhcmQtY29tcG9uZW50IHB4LTQgcHktNCBteS0yIHJvdW5kZWQtbGcgb3V0c2V0LWRvd25zaGFkb3dcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIG1iLTJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC01IGl0ZW1zLXN0YXJ0XCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBbY2xhc3NdPVwiXHJcbiAgICAgICAgICAhaXNEcmFmdFxyXG4gICAgICAgICAgICA/ICcgdGV4dC1wcmltYXJ5J1xyXG4gICAgICAgICAgICA6ICcnICtcclxuICAgICAgICAgICAgICAnIGl0ZW1zLWNlbnRlciBzbTp0ZXh0LVsxMHB4XSB4czp0ZXh0LVs5cHhdIGZsZXggZmxleC1jb2wgZ2FwLXktWzBweF0nXHJcbiAgICAgICAgXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCIhaXNEcmFmdCA/IElDT05TWyd1cHZvdGUnXSA6IElDT05TWyd1cEFycm93V2hpdGUnXVwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIiFpc0RyYWZ0ID8gJ3RleHQtcHJpbWFyeScgOiAnZHJhaC12b3Rlci1oZWFkZXInXCI+XHJcbiAgICAgICAgICB7eyBwcm9jZXNzZWRDYXJkRGF0YS51cFZvdGVzIH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxpbWcgW3NyY109XCJJQ09OU1snZG93bnZvdGUnXVwiIGFsdD1cIlwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgPGg0IGNsYXNzPVwidGl0bGUgbWVkaXVtLTE0IHAtMCBtLTBcIiAoY2xpY2spPVwiaGFuZGxlVGl0bGVDbGljaygpXCI+XHJcbiAgICAgICAgICB7eyBwcm9jZXNzZWRDYXJkRGF0YS50aXRsZSB9fVxyXG4gICAgICAgIDwvaDQ+XHJcbiAgICAgICAgPGg1XHJcbiAgICAgICAgICBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IG9wYWNpdHktODAgdGV4dC1bMTBweF0geHM6dGV4dC1bOXB4XSBmbGV4IGdhcC1bNnB4XSBpdGVtcy1jZW50ZXJcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpbWcgW3NyY109XCJJQ09OU1sndXNlciddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgID57eyBwcm9jZXNzZWRDYXJkRGF0YS51c2VyTmFtZSB9fSAtXHJcbiAgICAgICAgICAgIHt7IHByb2Nlc3NlZENhcmREYXRhLnRpbWVBZ28gfX08L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICA8L2g1PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRyYWZ0LWhlYWRlclwiICpuZ0lmPVwicHJvY2Vzc2VkQ2FyZERhdGEuaXNEcmFmdFwiPlxyXG4gICAgICBEcmFmdCBTYXZlZFxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIml0aW5lcmFyeVN0YXJ0ZWRcIlxyXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVTdGFydEl0aW5lcmFyeUNsaWNrKClcIlxyXG4gICAgICAgIGNsYXNzPVwic3RhcnRJdGluZXJhcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGltZyBbc3JjXT1cIklDT05TWydzdGFydEl0aW5lcmFyeSddXCIgYWx0PVwiaWNvblwiIC8+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8YXBwLWljb24tYnV0dG9uXHJcbiAgICAgICAgKHNlbGVjdCk9XCJoYW5kbGVNZW51ZUl0ZW1TZWxlY3QoKVwiXHJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cImhhbmRsZU1lbnVDbGljaygpXCJcclxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZU1lbnVJdGVtQ2hhbmdlKClcIlxyXG4gICAgICAgIGNsYXNzPVwibGliLW1lbnUtY3VzdG9tLWNsYXNzXCJcclxuICAgICAgICBbZGlzYWJsZVRleHRTaGFkb3ddPVwidHJ1ZVwiXHJcbiAgICAgICAgW21lbnVJdGVtc109XCJsaWJNZW51SXRlbVwiXHJcbiAgICAgICAgW2J1dHRvbkljb25dPVwiSUNPTlNbJ2hvcml6b250YWwnXVwiXHJcbiAgICAgID48L2FwcC1pY29uLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxociBjbGFzcz1cImgtMSB0ZXh0LXNlY29uZGFyeSBvcGFjaXR5LTI1XCIgLz5cclxuICA8ZGl2IGNsYXNzPVwibXktMiBtYi0xIGZsZXggaXRlbXMtc3RhcnQgZ2FwLXgtNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIjEgbWItMCBmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICA8aW1nXHJcbiAgICAgICAgW2NsYXNzXT1cImlzRHJhZnQgPyAnZHJhZi1sb2NhdGlvbi1pbWFnZScgOiAnJ1wiXHJcbiAgICAgICAgW3NyY109XCJwcm9jZXNzZWRDYXJkRGF0YS5pbWFnZVNyY1wiXHJcbiAgICAgICAgYWx0PVwiXCJcclxuICAgICAgICB3aWR0aD1cIjEwMFwiXHJcbiAgICAgIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCIyXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cIiFjYXJkRGF0YT8uaXNEcmFmdFwiXHJcbiAgICAgICAgY2xhc3M9XCJmb250LW5vcm1hbCB0ZXh0LXNlY29uZGFyeSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC00IHRleHQtc21cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHVsIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteS1bNnB4XSB4czp0ZXh0LVs5cHhdIHNtOnRleHQtWzEycHhdXCI+XHJcbiAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxvY2F0aW9uIG9mIGNhcmREYXRhRm9yTG9jYXRpb25zLmxvY2F0aW9uQ29sdW1uMVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwibG9jYXRpb24taXRlbSBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJsb2NhdGlvbi5pY29uXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSBzbTptYXgtdy0xMCB4czptYXgtdy0xMVwiPnt7XHJcbiAgICAgICAgICAgICAgbG9jYXRpb24ubmFtZVxyXG4gICAgICAgICAgICB9fTwvc3Bhbj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgPC91bD5cclxuICAgICAgICA8dWwgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC15LVs2cHhdIHhzOnRleHQtWzlweF0gc206dGV4dC1bMTJweF1cIj5cclxuICAgICAgICAgIDxsaVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgbG9jYXRpb24gb2YgY2FyZERhdGFGb3JMb2NhdGlvbnMubG9jYXRpb25Db2x1bW4yXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJsb2NhdGlvbi1pdGVtIGZsZXggaXRlbXMtY2VudGVyIGdhcC0xXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvY2F0aW9uLmljb25cIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIHNtOm1heC13LTEwIHhzOm1heC13LTExXCI+e3tcclxuICAgICAgICAgICAgICBsb2NhdGlvbi5uYW1lXHJcbiAgICAgICAgICAgIH19PC9zcGFuPlxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICA8L3VsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHAgKm5nSWY9XCJwcm9jZXNzZWRDYXJkRGF0YS5pc0RyYWZ0XCIgY2xhc3M9XCJ0ZXh0LXhzIGRyYWZ0LWRlc2NyaXB0aW9uXCI+XHJcbiAgICAgICAge3sgXCJGSU5JU0hfSVRJTkVSQVJZX0NSRUFUSU9OXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9wPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGhyIGNsYXNzPVwiaC0xIHRleHQtc2Vjb25kYXJ5IG9wYWNpdHktMjVcIiAvPlxyXG4gIDxkaXYgY2xhc3M9XCJteS0yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBzbTpnYXAteC03IHhzOmdhcC14LTUgc206dGV4dC1zbSB4czp0ZXh0LVs5cHhdIHRleHQtc2Vjb25kYXJ5XCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LVs2cHhdXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cImJvdHRvbS1pY29uc1wiIFtzcmNdPVwiSUNPTlNbJ2V5ZSddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJvdHRvbS10YWdzXCI+e3sgcHJvY2Vzc2VkQ2FyZERhdGEudmlld3MgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKGNsaWNrKT1cImhhbmRsZU1lc3NhZ2VDbGlja2VkKClcIlxyXG4gICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtWzZweF1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cImJvdHRvbS1pY29uc1wiIFtzcmNdPVwiSUNPTlNbJ2NvbW1lbnQyJ11cIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYm90dG9tLXRhZ3NcIj57eyBwcm9jZXNzZWRDYXJkRGF0YS5jb21tZW50cyB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgKGNsaWNrKT1cImhhbmRsZUZvcmtDbGljaygpXCIgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC1bNnB4XVwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJib3R0b20taWNvbnNcIiBbc3JjXT1cIklDT05TWydmb3JrJ11cIiBhbHQ9XCJcIiAvPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYm90dG9tLXRhZ3NcIj57eyBwcm9jZXNzZWRDYXJkRGF0YS5zaGFyZXMgfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMlwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRleHQteHMgdXNlckljb25UZXh0XCI+XHJcbiAgICAgICAge3sgcHJvY2Vzc2VkQ2FyZERhdGEudXNlcnMgfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInVzZXItaWNvbi10ZXh0XCIgKm5nSWY9XCJwcm9jZXNzZWRDYXJkRGF0YS51c2VycyA+IDBcIlxyXG4gICAgICAgICAgPlVzZXJzPC9zcGFuXHJcbiAgICAgICAgPlxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxpbWcgW3NyY109XCJwcm9jZXNzZWRDYXJkRGF0YS51c2VyaW1hZ2VTcmNcIiBhbHQ9XCJcIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbGliLWJhc2UtY2FyZD5cclxuIl19