@ng-nest/ui 14.0.4 → 14.0.7

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 (179) hide show
  1. package/calendar/calendar.component.d.ts +1 -0
  2. package/calendar/calendar.property.d.ts +18 -4
  3. package/calendar/examples/en_US/default/card/README.md +6 -0
  4. package/calendar/examples/en_US/default/header/README.md +6 -0
  5. package/calendar/examples/zh_CN/default/card/README.md +6 -0
  6. package/calendar/examples/zh_CN/default/header/README.md +6 -0
  7. package/collapse/collapse.property.d.ts +6 -1
  8. package/collapse/examples/en_US/default/disabled/README.md +6 -0
  9. package/collapse/examples/zh_CN/default/disabled/README.md +6 -0
  10. package/core/config/config.d.ts +8 -0
  11. package/core/functions/convert.d.ts +1 -1
  12. package/dropdown/dropdown-portal.component.d.ts +3 -0
  13. package/dropdown/dropdown.property.d.ts +16 -1
  14. package/esm2020/badge/badge.component.mjs +3 -3
  15. package/esm2020/calendar/calendar.component.mjs +8 -4
  16. package/esm2020/calendar/calendar.property.mjs +11 -2
  17. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  18. package/esm2020/collapse/collapse.property.mjs +7 -2
  19. package/esm2020/core/config/config.mjs +1 -1
  20. package/esm2020/core/functions/convert.mjs +1 -1
  21. package/esm2020/date-picker/date-picker.component.mjs +5 -1
  22. package/esm2020/dropdown/dropdown-portal.component.mjs +6 -3
  23. package/esm2020/dropdown/dropdown.component.mjs +4 -1
  24. package/esm2020/dropdown/dropdown.property.mjs +8 -2
  25. package/esm2020/i18n/i18n.property.mjs +1 -1
  26. package/esm2020/i18n/languages/en_US.mjs +7 -2
  27. package/esm2020/i18n/languages/zh_CN.mjs +7 -2
  28. package/esm2020/i18n/languages/zh_TW.mjs +7 -2
  29. package/esm2020/image/image-group.component.mjs +18 -0
  30. package/esm2020/image/image-preview.component.mjs +136 -0
  31. package/esm2020/image/image.component.mjs +81 -0
  32. package/esm2020/image/image.module.mjs +26 -0
  33. package/esm2020/image/image.property.mjs +63 -0
  34. package/esm2020/image/ng-nest-ui-image.mjs +5 -0
  35. package/esm2020/image/public-api.mjs +6 -0
  36. package/esm2020/index.mjs +2 -1
  37. package/esm2020/input/input.component.mjs +2 -2
  38. package/esm2020/list/list.component.mjs +99 -13
  39. package/esm2020/list/list.module.mjs +8 -4
  40. package/esm2020/list/list.property.mjs +52 -2
  41. package/esm2020/loading/loading.component.mjs +3 -3
  42. package/esm2020/loading/loading.property.mjs +7 -2
  43. package/esm2020/popover/popover.directive.mjs +20 -3
  44. package/esm2020/popover/popover.property.mjs +1 -1
  45. package/esm2020/select/select.component.mjs +14 -6
  46. package/esm2020/slider/slider.component.mjs +27 -7
  47. package/esm2020/slider/slider.module.mjs +5 -4
  48. package/esm2020/slider/slider.property.mjs +13 -2
  49. package/esm2020/table/table-body.component.mjs +3 -3
  50. package/esm2020/table/table-head.component.mjs +4 -4
  51. package/esm2020/table/table.component.mjs +35 -4
  52. package/esm2020/table/table.property.mjs +8 -4
  53. package/esm2020/tabs/tabs.component.mjs +3 -3
  54. package/esm2020/tabs/tabs.property.mjs +13 -2
  55. package/esm2020/textarea/textarea.component.mjs +2 -2
  56. package/esm2020/timeline/timeline.component.mjs +6 -4
  57. package/fesm2015/ng-nest-ui-badge.mjs +2 -2
  58. package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
  59. package/fesm2015/ng-nest-ui-calendar.mjs +17 -4
  60. package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
  61. package/fesm2015/ng-nest-ui-collapse.mjs +8 -3
  62. package/fesm2015/ng-nest-ui-collapse.mjs.map +1 -1
  63. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  64. package/fesm2015/ng-nest-ui-date-picker.mjs +4 -0
  65. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  66. package/fesm2015/ng-nest-ui-dropdown.mjs +15 -3
  67. package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
  68. package/fesm2015/ng-nest-ui-i18n.mjs +18 -3
  69. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  70. package/fesm2015/ng-nest-ui-image.mjs +312 -0
  71. package/fesm2015/ng-nest-ui-image.mjs.map +1 -0
  72. package/fesm2015/ng-nest-ui-input.mjs +2 -2
  73. package/fesm2015/ng-nest-ui-input.mjs.map +1 -1
  74. package/fesm2015/ng-nest-ui-list.mjs +155 -15
  75. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  76. package/fesm2015/ng-nest-ui-loading.mjs +8 -3
  77. package/fesm2015/ng-nest-ui-loading.mjs.map +1 -1
  78. package/fesm2015/ng-nest-ui-popover.mjs +19 -2
  79. package/fesm2015/ng-nest-ui-popover.mjs.map +1 -1
  80. package/fesm2015/ng-nest-ui-select.mjs +14 -6
  81. package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
  82. package/fesm2015/ng-nest-ui-slider.mjs +43 -11
  83. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  84. package/fesm2015/ng-nest-ui-table.mjs +46 -11
  85. package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
  86. package/fesm2015/ng-nest-ui-tabs.mjs +14 -3
  87. package/fesm2015/ng-nest-ui-tabs.mjs.map +1 -1
  88. package/fesm2015/ng-nest-ui-textarea.mjs +2 -2
  89. package/fesm2015/ng-nest-ui-textarea.mjs.map +1 -1
  90. package/fesm2015/ng-nest-ui-timeline.mjs +5 -3
  91. package/fesm2015/ng-nest-ui-timeline.mjs.map +1 -1
  92. package/fesm2015/ng-nest-ui.mjs +1 -0
  93. package/fesm2015/ng-nest-ui.mjs.map +1 -1
  94. package/fesm2020/ng-nest-ui-badge.mjs +2 -2
  95. package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
  96. package/fesm2020/ng-nest-ui-calendar.mjs +17 -4
  97. package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
  98. package/fesm2020/ng-nest-ui-collapse.mjs +8 -3
  99. package/fesm2020/ng-nest-ui-collapse.mjs.map +1 -1
  100. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  101. package/fesm2020/ng-nest-ui-date-picker.mjs +4 -0
  102. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  103. package/fesm2020/ng-nest-ui-dropdown.mjs +15 -3
  104. package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
  105. package/fesm2020/ng-nest-ui-i18n.mjs +18 -3
  106. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  107. package/fesm2020/ng-nest-ui-image.mjs +308 -0
  108. package/fesm2020/ng-nest-ui-image.mjs.map +1 -0
  109. package/fesm2020/ng-nest-ui-input.mjs +2 -2
  110. package/fesm2020/ng-nest-ui-input.mjs.map +1 -1
  111. package/fesm2020/ng-nest-ui-list.mjs +154 -15
  112. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  113. package/fesm2020/ng-nest-ui-loading.mjs +8 -3
  114. package/fesm2020/ng-nest-ui-loading.mjs.map +1 -1
  115. package/fesm2020/ng-nest-ui-popover.mjs +19 -2
  116. package/fesm2020/ng-nest-ui-popover.mjs.map +1 -1
  117. package/fesm2020/ng-nest-ui-select.mjs +14 -6
  118. package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
  119. package/fesm2020/ng-nest-ui-slider.mjs +43 -11
  120. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  121. package/fesm2020/ng-nest-ui-table.mjs +46 -11
  122. package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
  123. package/fesm2020/ng-nest-ui-tabs.mjs +14 -3
  124. package/fesm2020/ng-nest-ui-tabs.mjs.map +1 -1
  125. package/fesm2020/ng-nest-ui-textarea.mjs +2 -2
  126. package/fesm2020/ng-nest-ui-textarea.mjs.map +1 -1
  127. package/fesm2020/ng-nest-ui-timeline.mjs +5 -3
  128. package/fesm2020/ng-nest-ui-timeline.mjs.map +1 -1
  129. package/fesm2020/ng-nest-ui.mjs +1 -0
  130. package/fesm2020/ng-nest-ui.mjs.map +1 -1
  131. package/i18n/i18n.property.d.ts +6 -0
  132. package/i18n/languages/en_US.d.ts +5 -0
  133. package/i18n/languages/zh_CN.d.ts +5 -0
  134. package/i18n/languages/zh_TW.d.ts +5 -0
  135. package/image/examples/en_US/default/README.md +4 -0
  136. package/image/examples/en_US/default/default/README.md +6 -0
  137. package/image/examples/en_US/default/fallback/README.md +6 -0
  138. package/image/examples/en_US/default/group/README.md +6 -0
  139. package/image/examples/en_US/default/placeholder/README.md +6 -0
  140. package/image/examples/zh_CN/default/README.md +4 -0
  141. package/image/examples/zh_CN/default/default/README.md +6 -0
  142. package/image/examples/zh_CN/default/fallback/README.md +6 -0
  143. package/image/examples/zh_CN/default/group/README.md +6 -0
  144. package/image/examples/zh_CN/default/placeholder/README.md +6 -0
  145. package/image/image-group.component.d.ts +8 -0
  146. package/image/image-preview.component.d.ts +39 -0
  147. package/image/image.component.d.ts +29 -0
  148. package/image/image.module.d.ts +16 -0
  149. package/image/image.property.d.ts +96 -0
  150. package/image/index.d.ts +5 -0
  151. package/image/public-api.d.ts +5 -0
  152. package/index.d.ts +1 -0
  153. package/list/examples/en_US/default/load-more/README.md +8 -0
  154. package/list/examples/en_US/default/scroll/README.md +8 -0
  155. package/list/examples/zh_CN/default/load-more/README.md +8 -0
  156. package/list/examples/zh_CN/default/scroll/README.md +8 -0
  157. package/list/list.component.d.ts +19 -1
  158. package/list/list.module.d.ts +2 -1
  159. package/list/list.property.d.ts +59 -2
  160. package/loading/loading.property.d.ts +7 -2
  161. package/package.json +9 -1
  162. package/popover/popover.directive.d.ts +4 -3
  163. package/popover/popover.property.d.ts +1 -1
  164. package/slider/examples/en_US/default/expand/README.md +7 -0
  165. package/slider/examples/zh_CN/default/expand/README.md +7 -0
  166. package/slider/slider.component.d.ts +2 -0
  167. package/slider/slider.module.d.ts +2 -1
  168. package/slider/slider.property.d.ts +11 -1
  169. package/table/examples/en_US/default/edit/README.md +7 -0
  170. package/table/examples/en_US/default/header/README.md +2 -2
  171. package/table/examples/en_US/default/search/README.md +6 -0
  172. package/table/examples/zh_CN/default/edit/README.md +7 -0
  173. package/table/examples/zh_CN/default/header/README.md +2 -2
  174. package/table/examples/zh_CN/default/search/README.md +6 -0
  175. package/table/table.component.d.ts +5 -0
  176. package/table/table.property.d.ts +13 -3
  177. package/tabs/examples/en_US/default/expand/README.md +6 -0
  178. package/tabs/examples/zh_CN/default/expand/README.md +6 -0
  179. package/tabs/tabs.property.d.ts +11 -1
@@ -7,7 +7,9 @@ import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ng-nest/ui/core";
8
8
  import * as i2 from "@angular/common";
9
9
  import * as i3 from "@ng-nest/ui/link";
10
- import * as i4 from "@ng-nest/ui/outlet";
10
+ import * as i4 from "@ng-nest/ui/button";
11
+ import * as i5 from "@ng-nest/ui/outlet";
12
+ import * as i6 from "@ng-nest/ui/dropdown";
11
13
  export class XSliderComponent extends XSliderProperty {
12
14
  constructor(renderer, elementRef, cdr, configService) {
13
15
  super();
@@ -19,6 +21,7 @@ export class XSliderComponent extends XSliderProperty {
19
21
  this.scrollClassMap = {};
20
22
  this.nodeClassMap = {};
21
23
  this.showArrow = false;
24
+ this.activatedId = '';
22
25
  this._offset = 0;
23
26
  this.direction = 'right';
24
27
  this.maxOffset = 0;
@@ -92,12 +95,19 @@ export class XSliderComponent extends XSliderProperty {
92
95
  this.setDirection(index, Number(this.activatedIndex));
93
96
  this.activatedIndex = index;
94
97
  this.activated = node;
98
+ this.activatedId = node.id;
95
99
  this.setHighlight();
96
100
  this.setTranslate();
97
101
  this.indexChange.emit(index);
98
102
  this.nodeChange.emit(node);
99
103
  }
104
+ dropdownClick(node) {
105
+ const index = this.nodes.indexOf(node);
106
+ this.nodeClick(node, index);
107
+ }
100
108
  scrollPrev() {
109
+ if (this.offset === 0)
110
+ return;
101
111
  const scrollSize = this.sliderScroll.nativeElement[`offset${this.sizeName}`];
102
112
  const currentOffset = this.offset;
103
113
  if (!currentOffset)
@@ -106,6 +116,8 @@ export class XSliderComponent extends XSliderProperty {
106
116
  this.offset = offset;
107
117
  }
108
118
  scrollNext() {
119
+ if (this.offset === this.maxOffset)
120
+ return;
109
121
  const sliderSize = this.sliderNodes.nativeElement[`offset${this.sizeName}`];
110
122
  const scrollSize = this.sliderScroll.nativeElement[`offset${this.sizeName}`];
111
123
  const currentOffset = this.offset;
@@ -151,9 +163,14 @@ export class XSliderComponent extends XSliderProperty {
151
163
  offset = currentOffset + (moveRect.bottom - sliderRect.bottom);
152
164
  }
153
165
  }
154
- this.maxOffset = Math.floor(maxOffset);
155
- offset = Math.max(offset, 0);
156
- this.offset = Math.min(offset, maxOffset);
166
+ this.maxOffset = Math.ceil(maxOffset);
167
+ offset = Math.max(Math.ceil(offset), 0);
168
+ if ([this.maxOffset + 1, this.maxOffset - 1].includes(offset)) {
169
+ this.offset = this.maxOffset;
170
+ }
171
+ else {
172
+ this.offset = Math.min(offset, this.maxOffset);
173
+ }
157
174
  }
158
175
  sizeChecked() {
159
176
  const size = this.sliderNodes.nativeElement[`offset${this.sizeName}`];
@@ -171,6 +188,9 @@ export class XSliderComponent extends XSliderProperty {
171
188
  setActivated() {
172
189
  if (this.nodes.length > 0) {
173
190
  this.activated = this.nodes[Number(this.activatedIndex)];
191
+ if (this.activated) {
192
+ this.activatedId = this.activated.id;
193
+ }
174
194
  }
175
195
  this.setHighlight();
176
196
  this.setTranslate();
@@ -204,10 +224,10 @@ export class XSliderComponent extends XSliderProperty {
204
224
  }
205
225
  }
206
226
  /** @nocollapse */ XSliderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component });
207
- /** @nocollapse */ XSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XSliderComponent, selector: "x-slider", viewQueries: [{ propertyName: "sliderScroll", first: true, predicate: ["sliderScroll"], descendants: true }, { propertyName: "sliderNodes", first: true, predicate: ["sliderNodes"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap\">\r\n <x-link *ngIf=\"showArrow\" [disabled]=\"offset === 0\" class=\"x-slider-arrow-left\" icon=\"fto-chevron-left\" (click)=\"scrollPrev()\"></x-link>\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap\">\r\n <ul #sliderNodes [style.transform]=\"transform\">\r\n <li *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\" [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link (click)=\"nodeClick(node, i)\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n <ng-container *ngIf=\"!nodeTpl\">\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n </ng-container>\r\n </x-link>\r\n </li>\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated\" [ngStyle]=\"highlightBox\"></li>\r\n </ul>\r\n </div>\r\n <x-link\r\n *ngIf=\"showArrow\"\r\n [disabled]=\"offset === maxOffset\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0;position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-radius);background-color:#0000000d;border:.0625rem solid var(--x-border)}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.XLinkComponent, selector: "x-link" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
227
+ /** @nocollapse */ XSliderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XSliderComponent, selector: "x-slider", viewQueries: [{ propertyName: "sliderScroll", first: true, predicate: ["sliderScroll"], descendants: true }, { propertyName: "sliderNodes", first: true, predicate: ["sliderNodes"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap\">\r\n <x-link *ngIf=\"showArrow\" [disabled]=\"offset === 0\" class=\"x-slider-arrow-left\" icon=\"fto-chevron-left\" (click)=\"scrollPrev()\"></x-link>\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap\">\r\n <ul #sliderNodes [style.transform]=\"transform\">\r\n <li\r\n *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\"\r\n [class.x-slider-activated]=\"getActivated(i)\"\r\n [class.x-slider-disabled]=\"node.disabled\"\r\n [title]=\"node.label\"\r\n >\r\n <x-link (click)=\"nodeClick(node, i)\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n <ng-container *ngIf=\"!nodeTpl\">\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n </ng-container>\r\n </x-link>\r\n </li>\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated\" [ngStyle]=\"highlightBox\"></li>\r\n </ul>\r\n </div>\r\n <x-link\r\n *ngIf=\"showArrow\"\r\n [disabled]=\"offset === maxOffset\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n <x-dropdown\r\n *ngIf=\"showExpand && showArrow && layout === 'row'\"\r\n class=\"x-slider-all\"\r\n [data]=\"nodes\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon [size]=\"size\"> </x-button>\r\n </x-dropdown>\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0;position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-radius);background-color:#0000000d;border:.0625rem solid var(--x-border)}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.XLinkComponent, selector: "x-link" }, { kind: "component", type: i4.XButtonComponent, selector: "x-button" }, { kind: "directive", type: i5.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i6.XDropdownComponent, selector: "x-dropdown" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
208
228
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderComponent, decorators: [{
209
229
  type: Component,
210
- args: [{ selector: `${XSliderPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap\">\r\n <x-link *ngIf=\"showArrow\" [disabled]=\"offset === 0\" class=\"x-slider-arrow-left\" icon=\"fto-chevron-left\" (click)=\"scrollPrev()\"></x-link>\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap\">\r\n <ul #sliderNodes [style.transform]=\"transform\">\r\n <li *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\" [class.x-slider-activated]=\"getActivated(i)\" [class.x-slider-disabled]=\"node.disabled\" [title]=\"node.label\">\r\n <x-link (click)=\"nodeClick(node, i)\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n <ng-container *ngIf=\"!nodeTpl\">\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n </ng-container>\r\n </x-link>\r\n </li>\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated\" [ngStyle]=\"highlightBox\"></li>\r\n </ul>\r\n </div>\r\n <x-link\r\n *ngIf=\"showArrow\"\r\n [disabled]=\"offset === maxOffset\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0;position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-radius);background-color:#0000000d;border:.0625rem solid var(--x-border)}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"] }]
230
+ args: [{ selector: `${XSliderPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div #slider class=\"x-slider\" [ngClass]=\"classMap\">\r\n <x-link *ngIf=\"showArrow\" [disabled]=\"offset === 0\" class=\"x-slider-arrow-left\" icon=\"fto-chevron-left\" (click)=\"scrollPrev()\"></x-link>\r\n <div class=\"x-slider-scroll\" #sliderScroll [ngClass]=\"scrollClassMap\">\r\n <ul #sliderNodes [style.transform]=\"transform\">\r\n <li\r\n *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\"\r\n [class.x-slider-activated]=\"getActivated(i)\"\r\n [class.x-slider-disabled]=\"node.disabled\"\r\n [title]=\"node.label\"\r\n >\r\n <x-link (click)=\"nodeClick(node, i)\" [ngClass]=\"nodeClassMap\">\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n <ng-container *ngIf=\"!nodeTpl\">\r\n <ng-container *xOutlet=\"node.label\">{{ node.label }}</ng-container>\r\n </ng-container>\r\n </x-link>\r\n </li>\r\n <li class=\"x-slider-highlight\" [class.x-slider-highlight-animated]=\"animated\" [ngStyle]=\"highlightBox\"></li>\r\n </ul>\r\n </div>\r\n <x-link\r\n *ngIf=\"showArrow\"\r\n [disabled]=\"offset === maxOffset\"\r\n class=\"x-slider-arrow-right\"\r\n icon=\"fto-chevron-right\"\r\n (click)=\"scrollNext()\"\r\n ></x-link>\r\n <x-dropdown\r\n *ngIf=\"showExpand && showArrow && layout === 'row'\"\r\n class=\"x-slider-all\"\r\n [data]=\"nodes\"\r\n trigger=\"click\"\r\n [(activatedId)]=\"activatedId\"\r\n (nodeClick)=\"dropdownClick($event)\"\r\n [portalMaxHeight]=\"expandMaxHeight\"\r\n >\r\n <x-button icon=\"fto-list\" onlyIcon [size]=\"size\"> </x-button>\r\n </x-dropdown>\r\n</div>\r\n", styles: [".x-slider{margin:0;padding:0;position:relative;display:flex;align-items:center;height:100%}.x-slider-scroll{overflow:hidden;flex:1;display:inline-flex}.x-slider-scroll.x-justify-start{justify-content:flex-start}.x-slider-scroll.x-justify-center{justify-content:center}.x-slider-scroll.x-justify-end{justify-content:flex-end}.x-slider-scroll.x-justify-space-between{justify-content:space-between}.x-slider-scroll.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul{display:inline-flex;align-items:center;position:relative;transition:transform var(--x-animation-duration-base)}.x-slider-scroll>ul>li{display:inline-flex;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:2}.x-slider-scroll>ul>li x-link{flex:1}.x-slider-scroll>ul>li x-link.x-justify-start{justify-content:flex-start}.x-slider-scroll>ul>li x-link.x-justify-center{justify-content:center}.x-slider-scroll>ul>li x-link.x-justify-end{justify-content:flex-end}.x-slider-scroll>ul>li x-link.x-justify-space-between{justify-content:space-between}.x-slider-scroll>ul>li x-link.x-justify-space-around{justify-content:space-around}.x-slider-scroll>ul>li x-link.x-size-big{height:var(--x-height-big);line-height:var(--x-height-big);padding:0 var(--x-padding-big)}.x-slider-scroll>ul>li x-link.x-size-large{height:var(--x-height-large);line-height:var(--x-height-large);padding:0 var(--x-padding-large)}.x-slider-scroll>ul>li x-link.x-size-medium{height:var(--x-height-medium);line-height:var(--x-height-medium);padding:0 var(--x-padding-medium)}.x-slider-scroll>ul>li x-link.x-size-small{height:var(--x-height-small);line-height:var(--x-height-small);padding:0 var(--x-padding-small)}.x-slider-scroll>ul>li x-link.x-size-mini{height:var(--x-height-mini);line-height:var(--x-height-mini);padding:0 var(--x-padding-mini)}.x-slider-scroll>ul>li.x-slider-highlight{position:absolute;left:0;top:0;z-index:1;width:0;height:0;border-radius:var(--x-border-radius);background-color:#0000000d;border:.0625rem solid var(--x-border)}.x-slider-scroll>ul>li.x-slider-highlight-animated{transition:width var(--x-animation-duration-base),left var(--x-animation-duration-base),height var(--x-animation-duration-base),top var(--x-animation-duration-base)}.x-slider-activated{color:var(--x-primary)}.x-slider-disabled{color:var(--x-text-400)!important;cursor:not-allowed!important}.x-slider-disabled .x-link{cursor:not-allowed!important}.x-slider-disabled .x-link:hover{color:var(--x-text-400)!important}.x-slider-arrow-left,.x-slider-arrow-right{height:1.675rem;line-height:1.675rem}.x-slider-arrow-left>x-icon,.x-slider-arrow-right>x-icon{margin-right:0}.x-slider-arrow-left .x-link,.x-slider-arrow-right .x-link{padding:.5rem}.x-slider-show-arrow>.x-slider-scroll{justify-content:start!important}.x-slider-row>.x-slider-scroll>ul{flex-direction:row}.x-slider-column{display:inline-flex;flex-direction:column}.x-slider-column>.x-slider-scroll{display:inline-block}.x-slider-column>.x-slider-scroll>ul{flex-direction:column}.x-slider-column>.x-slider-scroll>ul>li{display:flex;width:100%}.x-slider-column>.x-slider-arrow-left,.x-slider-column>.x-slider-arrow-right{transform:rotate(90deg)}\n"] }]
211
231
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { sliderScroll: [{
212
232
  type: ViewChild,
213
233
  args: ['sliderScroll']
@@ -215,4 +235,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
215
235
  type: ViewChild,
216
236
  args: ['sliderNodes']
217
237
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUlqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFhLFNBQVMsRUFBRSxPQUFPLEVBQWEsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDOUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFTekQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFtQ25ELFlBQ1MsUUFBbUIsRUFDbkIsVUFBc0IsRUFDdEIsR0FBc0IsRUFDdEIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBcEN0QyxVQUFLLEdBQWtCLEVBQUUsQ0FBQztRQUUxQixtQkFBYyxHQUFjLEVBQUUsQ0FBQztRQUMvQixpQkFBWSxHQUFjLEVBQUUsQ0FBQztRQUM3QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1YsWUFBTyxHQUFXLENBQUMsQ0FBQztRQVM1QixjQUFTLEdBQWMsT0FBTyxDQUFDO1FB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Q0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBaUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O2dJQWxOVSxnQkFBZ0I7b0hBQWhCLGdCQUFnQix1U0MzQjdCLDZ2Q0F1QkE7MkZESWEsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0xBR3BCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDQyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFNpbXBsZUNoYW5nZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyUHJlZml4LCBYU2xpZGVyTm9kZSwgWFNsaWRlclByb3BlcnR5IH0gZnJvbSAnLi9zbGlkZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ2xhc3NNYXAsIFhJc0NoYW5nZSwgWFJlc2l6ZSwgWFBvc2l0aW9uLCBYSXNVbmRlZmluZWQsIFhJc0VtcHR5LCBYU2V0RGF0YSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYU2xpZGVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlckNvbXBvbmVudCBleHRlbmRzIFhTbGlkZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3NsaWRlclNjcm9sbCcpIHNsaWRlclNjcm9sbCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2xpZGVyTm9kZXMnKSBzbGlkZXJOb2RlcyE6IEVsZW1lbnRSZWY7XHJcbiAgbm9kZXM6IFhTbGlkZXJOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWQhOiBYU2xpZGVyTm9kZTtcclxuICBzY3JvbGxDbGFzc01hcDogWENsYXNzTWFwID0ge307XHJcbiAgbm9kZUNsYXNzTWFwOiBYQ2xhc3NNYXAgPSB7fTtcclxuICBzaG93QXJyb3cgPSBmYWxzZTtcclxuICBwcml2YXRlIF9vZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgZ2V0IG9mZnNldCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX29mZnNldDtcclxuICB9XHJcbiAgc2V0IG9mZnNldCh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9vZmZzZXQgPSBNYXRoLmZsb29yKHZhbHVlKTtcclxuICAgIHRoaXMudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSR7dGhpcy5kaXJ9KC0ke3RoaXMuX29mZnNldH1weClgO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuICBkaXJlY3Rpb246IFhQb3NpdGlvbiA9ICdyaWdodCc7XHJcbiAgbWF4T2Zmc2V0OiBudW1iZXIgPSAwO1xyXG4gIGdldCBkaXIoKTogJ1gnIHwgJ1knIHtcclxuICAgIHJldHVybiB0aGlzLmxheW91dCA9PT0gJ3JvdycgPyAnWCcgOiAnWSc7XHJcbiAgfVxyXG4gIGdldCBzaXplTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmxheW91dCA9PT0gJ3JvdycgPyAnV2lkdGgnIDogJ0hlaWdodCc7XHJcbiAgfVxyXG4gIHRyYW5zZm9ybT86IHN0cmluZztcclxuICBoaWdobGlnaHRCb3ggPSB7XHJcbiAgICB3aWR0aDogJycsXHJcbiAgICBoZWlnaHQ6ICcnLFxyXG4gICAgbGVmdDogJycsXHJcbiAgICB0b3A6ICcnXHJcbiAgfTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRhdGEsIGxheW91dCwganVzdGlmeSwgbm9kZUp1c3RpZnksIGFjdGl2YXRlZEluZGV4IH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gICAgWElzQ2hhbmdlKGxheW91dCkgJiYgdGhpcy5zZXRDaGFuZ2UodGhpcy5jbGFzc01hcCwgbGF5b3V0KTtcclxuICAgIFhJc0NoYW5nZShqdXN0aWZ5KSAmJiB0aGlzLnNldENoYW5nZSh0aGlzLnNjcm9sbENsYXNzTWFwLCBqdXN0aWZ5LCAneC1qdXN0aWZ5Jyk7XHJcbiAgICBYSXNDaGFuZ2Uobm9kZUp1c3RpZnkpICYmIHRoaXMuc2V0Q2hhbmdlKHRoaXMubm9kZUNsYXNzTWFwLCBub2RlSnVzdGlmeSwgJ3gtanVzdGlmeScpO1xyXG4gICAgWElzQ2hhbmdlKGFjdGl2YXRlZEluZGV4KSAmJiB0aGlzLnNldERpcmVjdGlvbihhY3RpdmF0ZWRJbmRleC5jdXJyZW50VmFsdWUsIGFjdGl2YXRlZEluZGV4LnByZXZpb3VzVmFsdWUpICYmIHRoaXMuc2V0QWN0aXZhdGVkKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuX3Jlc2l6ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5zZXRBY3RpdmF0ZWQoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcFtgJHtYU2xpZGVyUHJlZml4fS0ke3RoaXMubGF5b3V0fWBdID0gIVhJc0VtcHR5KHRoaXMubGF5b3V0KTtcclxuICAgIHRoaXMuc2Nyb2xsQ2xhc3NNYXBbYHgtanVzdGlmeS0ke3RoaXMuanVzdGlmeX1gXSA9ICFYSXNFbXB0eSh0aGlzLmp1c3RpZnkpO1xyXG4gICAgdGhpcy5ub2RlQ2xhc3NNYXAgPSB7XHJcbiAgICAgIFtgeC1qdXN0aWZ5LSR7dGhpcy5ub2RlSnVzdGlmeX1gXTogIVhJc0VtcHR5KHRoaXMubm9kZUp1c3RpZnkpLFxyXG4gICAgICBbYHgtc2l6ZS0ke3RoaXMuc2l6ZX1gXTogIVhJc0VtcHR5KHRoaXMuc2l6ZSlcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXRDaGFuZ2UobWFwOiBYQ2xhc3NNYXAsIGNoYW5nZTogU2ltcGxlQ2hhbmdlLCBwcmVmaXggPSBYU2xpZGVyUHJlZml4KSB7XHJcbiAgICBtYXBbYCR7cHJlZml4fS0ke2NoYW5nZS5wcmV2aW91c1ZhbHVlfWBdID0gZmFsc2U7XHJcbiAgICBtYXBbYCR7cHJlZml4fS0ke2NoYW5nZS5jdXJyZW50VmFsdWV9YF0gPSB0cnVlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3Vic2NyaWJlKCkge1xyXG4gICAgWFJlc2l6ZSh0aGlzLnNsaWRlclNjcm9sbC5uYXRpdmVFbGVtZW50LCB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnQpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSgzMCksIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIgPSB4LnJlc2l6ZU9ic2VydmVyO1xyXG4gICAgICAgIHRoaXMuc2l6ZUNoZWNrZWQoKTtcclxuICAgICAgICB0aGlzLnNldEFjdGl2YXRlZCgpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5vZGVDbGljayhub2RlOiBYU2xpZGVyTm9kZSwgaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKG5vZGUuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuc2V0RGlyZWN0aW9uKGluZGV4LCBOdW1iZXIodGhpcy5hY3RpdmF0ZWRJbmRleCkpO1xyXG4gICAgdGhpcy5hY3RpdmF0ZWRJbmRleCA9IGluZGV4O1xyXG4gICAgdGhpcy5hY3RpdmF0ZWQgPSBub2RlO1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHQoKTtcclxuICAgIHRoaXMuc2V0VHJhbnNsYXRlKCk7XHJcbiAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xyXG4gICAgdGhpcy5ub2RlQ2hhbmdlLmVtaXQobm9kZSk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxQcmV2KCkge1xyXG4gICAgY29uc3Qgc2Nyb2xsU2l6ZSA9IHRoaXMuc2xpZGVyU2Nyb2xsLm5hdGl2ZUVsZW1lbnRbYG9mZnNldCR7dGhpcy5zaXplTmFtZX1gXTtcclxuICAgIGNvbnN0IGN1cnJlbnRPZmZzZXQgPSB0aGlzLm9mZnNldDtcclxuICAgIGlmICghY3VycmVudE9mZnNldCkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb2Zmc2V0ID0gY3VycmVudE9mZnNldCA+IHNjcm9sbFNpemUgPyBjdXJyZW50T2Zmc2V0IC0gc2Nyb2xsU2l6ZSA6IDA7XHJcbiAgICB0aGlzLm9mZnNldCA9IG9mZnNldDtcclxuICB9XHJcblxyXG4gIHNjcm9sbE5leHQoKSB7XHJcbiAgICBjb25zdCBzbGlkZXJTaXplID0gdGhpcy5zbGlkZXJOb2Rlcy5uYXRpdmVFbGVtZW50W2BvZmZzZXQke3RoaXMuc2l6ZU5hbWV9YF07XHJcbiAgICBjb25zdCBzY3JvbGxTaXplID0gdGhpcy5zbGlkZXJTY3JvbGwubmF0aXZlRWxlbWVudFtgb2Zmc2V0JHt0aGlzLnNpemVOYW1lfWBdO1xyXG4gICAgY29uc3QgY3VycmVudE9mZnNldCA9IHRoaXMub2Zmc2V0O1xyXG4gICAgaWYgKHNsaWRlclNpemUgLSBjdXJyZW50T2Zmc2V0IDw9IHNjcm9sbFNpemUpIHJldHVybjtcclxuICAgIGNvbnN0IG9mZnNldCA9IHNsaWRlclNpemUgLSBjdXJyZW50T2Zmc2V0ID4gc2Nyb2xsU2l6ZSAqIDIgPyBjdXJyZW50T2Zmc2V0ICsgc2Nyb2xsU2l6ZSA6IHNsaWRlclNpemUgLSBzY3JvbGxTaXplO1xyXG4gICAgdGhpcy5vZmZzZXQgPSBvZmZzZXQ7XHJcbiAgfVxyXG5cclxuICBzZXREaXJlY3Rpb24oaW5kZXg6IG51bWJlciwgYmVmb3JlOiBudW1iZXIpIHtcclxuICAgIGNvbnN0IGluY3JlYXNlID0gaW5kZXggPiBiZWZvcmU7XHJcbiAgICB0aGlzLmRpcmVjdGlvbiA9IHRoaXMubGF5b3V0ID09PSAncm93JyA/IChpbmNyZWFzZSA/ICdyaWdodCcgOiAnbGVmdCcpIDogaW5jcmVhc2UgPyAnYm90dG9tJyA6ICd0b3AnO1xyXG4gICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgc2V0VHJhbnNsYXRlKCkge1xyXG4gICAgaWYgKFhJc1VuZGVmaW5lZCh0aGlzLnNsaWRlclNjcm9sbCkgfHwgWElzVW5kZWZpbmVkKHRoaXMuc2xpZGVyTm9kZXMpKSByZXR1cm47XHJcbiAgICBjb25zdCBzbGlkZXJSZWN0ID0gdGhpcy5zbGlkZXJTY3JvbGwubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBzbGlkZXJOb2Rlc1JlY3QgPSB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgbGV0IG1vdmVJbmRleCA9IFsnYm90dG9tJywgJ3JpZ2h0J10uaW5kZXhPZih0aGlzLmRpcmVjdGlvbikgIT09IC0xID8gTnVtYmVyKHRoaXMuYWN0aXZhdGVkSW5kZXgpICsgMiA6IE51bWJlcih0aGlzLmFjdGl2YXRlZEluZGV4KTtcclxuICAgIG1vdmVJbmRleCA9IG1vdmVJbmRleCA+IHRoaXMubm9kZXMubGVuZ3RoID8gdGhpcy5ub2Rlcy5sZW5ndGggOiBtb3ZlSW5kZXggPT09IDAgPyAxIDogbW92ZUluZGV4O1xyXG4gICAgbGV0IG1vdmVFbGUgPSB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3IoYGxpOm50aC1jaGlsZCgke21vdmVJbmRleH0pYCk7XHJcbiAgICBsZXQgbWF4T2Zmc2V0ID0gMDtcclxuICAgIGlmIChYSXNFbXB0eShtb3ZlRWxlKSkgcmV0dXJuO1xyXG4gICAgY29uc3QgbW92ZVJlY3QgPSBtb3ZlRWxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgY29uc3QgY3VycmVudE9mZnNldCA9IHRoaXMub2Zmc2V0O1xyXG4gICAgbGV0IG9mZnNldCA9IGN1cnJlbnRPZmZzZXQ7XHJcbiAgICBpZiAodGhpcy5sYXlvdXQgPT09ICdyb3cnKSB7XHJcbiAgICAgIG1heE9mZnNldCA9IHNsaWRlck5vZGVzUmVjdC53aWR0aCAtIHNsaWRlclJlY3Qud2lkdGg7XHJcbiAgICAgIGlmIChtb3ZlUmVjdC5sZWZ0IDwgc2xpZGVyUmVjdC5sZWZ0KSB7XHJcbiAgICAgICAgb2Zmc2V0ID0gY3VycmVudE9mZnNldCAtIChzbGlkZXJSZWN0LmxlZnQgLSBtb3ZlUmVjdC5sZWZ0KTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobW92ZVJlY3QucmlnaHQgPiBzbGlkZXJSZWN0LnJpZ2h0KSB7XHJcbiAgICAgICAgb2Zmc2V0ID0gY3VycmVudE9mZnNldCArIG1vdmVSZWN0LnJpZ2h0IC0gc2xpZGVyUmVjdC5yaWdodDtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbWF4T2Zmc2V0ID0gc2xpZGVyTm9kZXNSZWN0LmhlaWdodCAtIHNsaWRlclJlY3QuaGVpZ2h0O1xyXG4gICAgICBpZiAobW92ZVJlY3QudG9wIDwgc2xpZGVyUmVjdC50b3ApIHtcclxuICAgICAgICBvZmZzZXQgPSBjdXJyZW50T2Zmc2V0IC0gKHNsaWRlclJlY3QudG9wIC0gbW92ZVJlY3QudG9wKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobW92ZVJlY3QuYm90dG9tID4gc2xpZGVyUmVjdC5ib3R0b20pIHtcclxuICAgICAgICBvZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgKG1vdmVSZWN0LmJvdHRvbSAtIHNsaWRlclJlY3QuYm90dG9tKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5tYXhPZmZzZXQgPSBNYXRoLmZsb29yKG1heE9mZnNldCk7XHJcbiAgICBvZmZzZXQgPSBNYXRoLm1heChvZmZzZXQsIDApO1xyXG4gICAgdGhpcy5vZmZzZXQgPSBNYXRoLm1pbihvZmZzZXQsIG1heE9mZnNldCk7XHJcbiAgfVxyXG5cclxuICBzaXplQ2hlY2tlZCgpIHtcclxuICAgIGNvbnN0IHNpemUgPSB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnRbYG9mZnNldCR7dGhpcy5zaXplTmFtZX1gXTtcclxuICAgIGNvbnN0IHNjcm9sbFNpemUgPSB0aGlzLnNsaWRlclNjcm9sbC5uYXRpdmVFbGVtZW50W2BvZmZzZXQke3RoaXMuc2l6ZU5hbWV9YF07XHJcbiAgICBjb25zdCBzaG93QXJyb3cgPSB0aGlzLm5vZGVzLmxlbmd0aCA+IDEgJiYgc2l6ZSA+IHNjcm9sbFNpemU7XHJcbiAgICBpZiAodGhpcy5zaG93QXJyb3cgIT09IHNob3dBcnJvdykge1xyXG4gICAgICB0aGlzLnNob3dBcnJvdyA9IHNob3dBcnJvdztcclxuICAgICAgdGhpcy5jbGFzc01hcFtgJHtYU2xpZGVyUHJlZml4fS1zaG93LWFycm93YF0gPSB0aGlzLnNob3dBcnJvdztcclxuICAgICAgaWYgKCF0aGlzLnNob3dBcnJvdykge1xyXG4gICAgICAgIHRoaXMub2Zmc2V0ID0gMDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmF0ZWQoKSB7XHJcbiAgICBpZiAodGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVkID0gdGhpcy5ub2Rlc1tOdW1iZXIodGhpcy5hY3RpdmF0ZWRJbmRleCldO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRIaWdobGlnaHQoKTtcclxuICAgIHRoaXMuc2V0VHJhbnNsYXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRIaWdobGlnaHQoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuc2xpZGVyTm9kZXMpKSByZXR1cm47XHJcbiAgICBjb25zdCBhY3RpdmVFbGUgPSB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgbGk6bnRoLWNoaWxkKCR7TnVtYmVyKHRoaXMuYWN0aXZhdGVkSW5kZXgpICsgMX0pYCk7XHJcbiAgICBpZiAoIWFjdGl2ZUVsZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5oaWdobGlnaHRCb3ggPSB7XHJcbiAgICAgIHdpZHRoOiBgJHthY3RpdmVFbGUub2Zmc2V0V2lkdGh9cHhgLFxyXG4gICAgICBoZWlnaHQ6IGAke2FjdGl2ZUVsZS5vZmZzZXRIZWlnaHR9cHhgLFxyXG4gICAgICBsZWZ0OiBgJHthY3RpdmVFbGUub2Zmc2V0TGVmdH1weGAsXHJcbiAgICAgIHRvcDogYCR7YWN0aXZlRWxlLm9mZnNldFRvcH1weGBcclxuICAgIH07XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYU2xpZGVyTm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLm5vZGVzID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0QWN0aXZhdGVkKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmFjdGl2YXRlZEluZGV4KSA9PT0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFNsaWRlck5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNzbGlkZXIgY2xhc3M9XCJ4LXNsaWRlclwiIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPHgtbGluayAqbmdJZj1cInNob3dBcnJvd1wiIFtkaXNhYmxlZF09XCJvZmZzZXQgPT09IDBcIiBjbGFzcz1cIngtc2xpZGVyLWFycm93LWxlZnRcIiBpY29uPVwiZnRvLWNoZXZyb24tbGVmdFwiIChjbGljayk9XCJzY3JvbGxQcmV2KClcIj48L3gtbGluaz5cclxuICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2Nyb2xsXCIgI3NsaWRlclNjcm9sbCBbbmdDbGFzc109XCJzY3JvbGxDbGFzc01hcFwiPlxyXG4gICAgPHVsICNzbGlkZXJOb2RlcyBbc3R5bGUudHJhbnNmb3JtXT1cInRyYW5zZm9ybVwiPlxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCIgW2NsYXNzLngtc2xpZGVyLWFjdGl2YXRlZF09XCJnZXRBY3RpdmF0ZWQoaSlcIiBbY2xhc3MueC1zbGlkZXItZGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZFwiIFt0aXRsZV09XCJub2RlLmxhYmVsXCI+XHJcbiAgICAgICAgPHgtbGluayAoY2xpY2spPVwibm9kZUNsaWNrKG5vZGUsIGkpXCIgW25nQ2xhc3NdPVwibm9kZUNsYXNzTWFwXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZVRwbDsgY29udGV4dDogeyAkbm9kZTogbm9kZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGVUcGxcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cIm5vZGUubGFiZWxcIj57eyBub2RlLmxhYmVsIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3gtbGluaz5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpIGNsYXNzPVwieC1zbGlkZXItaGlnaGxpZ2h0XCIgW2NsYXNzLngtc2xpZGVyLWhpZ2hsaWdodC1hbmltYXRlZF09XCJhbmltYXRlZFwiIFtuZ1N0eWxlXT1cImhpZ2hsaWdodEJveFwiPjwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG4gIDx4LWxpbmtcclxuICAgICpuZ0lmPVwic2hvd0Fycm93XCJcclxuICAgIFtkaXNhYmxlZF09XCJvZmZzZXQgPT09IG1heE9mZnNldFwiXHJcbiAgICBjbGFzcz1cIngtc2xpZGVyLWFycm93LXJpZ2h0XCJcclxuICAgIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiXHJcbiAgICAoY2xpY2spPVwic2Nyb2xsTmV4dCgpXCJcclxuICA+PC94LWxpbms+XHJcbjwvZGl2PlxyXG4iXX0=
238
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NsaWRlci9zbGlkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyL3NsaWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixFQUlqQix1QkFBdUIsRUFHdkIsU0FBUyxFQUlWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQWUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEYsT0FBTyxFQUFhLFNBQVMsRUFBRSxPQUFPLEVBQWEsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDOUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVN6RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsZUFBZTtJQW9DbkQsWUFDUyxRQUFtQixFQUNuQixVQUFzQixFQUN0QixHQUFzQixFQUN0QixhQUE2QjtRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUxELGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFyQ3RDLFVBQUssR0FBa0IsRUFBRSxDQUFDO1FBRTFCLG1CQUFjLEdBQWMsRUFBRSxDQUFDO1FBQy9CLGlCQUFZLEdBQWMsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDVCxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBUzVCLGNBQVMsR0FBYyxPQUFPLENBQUM7UUFDL0IsY0FBUyxHQUFXLENBQUMsQ0FBQztRQVF0QixpQkFBWSxHQUFHO1lBQ2IsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1lBQ1IsR0FBRyxFQUFFLEVBQUU7U0FDUixDQUFDO1FBQ00sZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFVekMsQ0FBQztJQWpDRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNELElBQUksTUFBTSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsWUFBWSxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxPQUFPLEtBQUssQ0FBQztRQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFHRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDcEQsQ0FBQztJQW9CRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdkUsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzNELFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ2hGLFNBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3RGLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsY0FBYyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuSSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLFlBQVksR0FBRztZQUNsQixDQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5RCxDQUFDLFVBQVUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUM5QyxDQUFDO0lBQ0osQ0FBQztJQUVELFNBQVMsQ0FBQyxHQUFjLEVBQUUsTUFBb0IsRUFBRSxNQUFNLEdBQUcsYUFBYTtRQUNwRSxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQ2pELEdBQUcsQ0FBQyxHQUFHLE1BQU0sSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQzthQUNyRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbEQsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTLENBQUMsSUFBaUIsRUFBRSxLQUFhO1FBQ3hDLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUM1QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWlCO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7WUFBRSxPQUFPO1FBQzlCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFDM0IsTUFBTSxNQUFNLEdBQUcsYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUMzQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLFVBQVUsR0FBRyxhQUFhLElBQUksVUFBVTtZQUFFLE9BQU87UUFDckQsTUFBTSxNQUFNLEdBQUcsVUFBVSxHQUFHLGFBQWEsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xILElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYSxFQUFFLE1BQWM7UUFDeEMsTUFBTSxRQUFRLEdBQUcsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNyRyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7WUFBRSxPQUFPO1FBQzlFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLHFCQUFxQixFQUFFLENBQUM7UUFDNUUsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUscUJBQXFCLEVBQUUsQ0FBQztRQUNoRixJQUFJLFNBQVMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuSSxTQUFTLEdBQUcsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEcsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLGdCQUFnQixTQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQzFGLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNsQixJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxPQUFPO1FBQzlCLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ2pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDbEMsSUFBSSxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQzNCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxLQUFLLEVBQUU7WUFDekIsU0FBUyxHQUFHLGVBQWUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNyRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDbkMsTUFBTSxHQUFHLGFBQWEsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVEO1lBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3JDLE1BQU0sR0FBRyxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO2FBQzVEO1NBQ0Y7YUFBTTtZQUNMLFNBQVMsR0FBRyxlQUFlLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDdkQsSUFBSSxRQUFRLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxhQUFhLEdBQUcsQ0FBQyxVQUFVLENBQUMsR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMxRDtZQUNELElBQUksUUFBUSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUN2QyxNQUFNLEdBQUcsYUFBYSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDaEU7U0FDRjtRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM3RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDOUI7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2hEO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxTQUFTLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDN0UsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsRUFBRTtZQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsYUFBYSxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzthQUNqQjtZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDekQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2FBQ3RDO1NBQ0Y7UUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUFFLE9BQU87UUFDM0MsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGdCQUFnQixNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkgsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDLFdBQVcsSUFBSTtZQUNuQyxNQUFNLEVBQUUsR0FBRyxTQUFTLENBQUMsWUFBWSxJQUFJO1lBQ3JDLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxVQUFVLElBQUk7WUFDakMsR0FBRyxFQUFFLEdBQUcsU0FBUyxDQUFDLFNBQVMsSUFBSTtTQUNoQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU8sT0FBTztRQUNiLFFBQVEsQ0FBYyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUVELFdBQVcsQ0FBQyxNQUFjLEVBQUUsSUFBaUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O2dJQWxPVSxnQkFBZ0I7b0hBQWhCLGdCQUFnQix1U0MzQjdCLG9yREF1Q0E7MkZEWmEsZ0JBQWdCO2tCQVA1QixTQUFTOytCQUNFLEdBQUcsYUFBYSxFQUFFLGlCQUdiLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07c0xBR3BCLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYztnQkFDQyxXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBPbkNoYW5nZXMsXHJcbiAgVmlld0NoaWxkLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIFNpbXBsZUNoYW5nZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYU2xpZGVyUHJlZml4LCBYU2xpZGVyTm9kZSwgWFNsaWRlclByb3BlcnR5IH0gZnJvbSAnLi9zbGlkZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYQ2xhc3NNYXAsIFhJc0NoYW5nZSwgWFJlc2l6ZSwgWFBvc2l0aW9uLCBYSXNVbmRlZmluZWQsIFhJc0VtcHR5LCBYU2V0RGF0YSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYU2xpZGVyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2xpZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlckNvbXBvbmVudCBleHRlbmRzIFhTbGlkZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ3NsaWRlclNjcm9sbCcpIHNsaWRlclNjcm9sbCE6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZCgnc2xpZGVyTm9kZXMnKSBzbGlkZXJOb2RlcyE6IEVsZW1lbnRSZWY7XHJcbiAgbm9kZXM6IFhTbGlkZXJOb2RlW10gPSBbXTtcclxuICBhY3RpdmF0ZWQhOiBYU2xpZGVyTm9kZTtcclxuICBzY3JvbGxDbGFzc01hcDogWENsYXNzTWFwID0ge307XHJcbiAgbm9kZUNsYXNzTWFwOiBYQ2xhc3NNYXAgPSB7fTtcclxuICBzaG93QXJyb3cgPSBmYWxzZTtcclxuICBhY3RpdmF0ZWRJZCA9ICcnO1xyXG4gIHByaXZhdGUgX29mZnNldDogbnVtYmVyID0gMDtcclxuICBnZXQgb2Zmc2V0KCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fb2Zmc2V0O1xyXG4gIH1cclxuICBzZXQgb2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX29mZnNldCA9IE1hdGguZmxvb3IodmFsdWUpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlJHt0aGlzLmRpcn0oLSR7dGhpcy5fb2Zmc2V0fXB4KWA7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG4gIGRpcmVjdGlvbjogWFBvc2l0aW9uID0gJ3JpZ2h0JztcclxuICBtYXhPZmZzZXQ6IG51bWJlciA9IDA7XHJcbiAgZ2V0IGRpcigpOiAnWCcgfCAnWScge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID09PSAncm93JyA/ICdYJyA6ICdZJztcclxuICB9XHJcbiAgZ2V0IHNpemVOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubGF5b3V0ID09PSAncm93JyA/ICdXaWR0aCcgOiAnSGVpZ2h0JztcclxuICB9XHJcbiAgdHJhbnNmb3JtPzogc3RyaW5nO1xyXG4gIGhpZ2hsaWdodEJveCA9IHtcclxuICAgIHdpZHRoOiAnJyxcclxuICAgIGhlaWdodDogJycsXHJcbiAgICBsZWZ0OiAnJyxcclxuICAgIHRvcDogJydcclxuICB9O1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBfcmVzaXplT2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwdWJsaWMgY29uZmlnU2VydmljZTogWENvbmZpZ1NlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgZGF0YSwgbGF5b3V0LCBqdXN0aWZ5LCBub2RlSnVzdGlmeSwgYWN0aXZhdGVkSW5kZXggfSA9IGNoYW5nZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGF0YSkgJiYgdGhpcy5zZXREYXRhKCk7XHJcbiAgICBYSXNDaGFuZ2UobGF5b3V0KSAmJiB0aGlzLnNldENoYW5nZSh0aGlzLmNsYXNzTWFwLCBsYXlvdXQpO1xyXG4gICAgWElzQ2hhbmdlKGp1c3RpZnkpICYmIHRoaXMuc2V0Q2hhbmdlKHRoaXMuc2Nyb2xsQ2xhc3NNYXAsIGp1c3RpZnksICd4LWp1c3RpZnknKTtcclxuICAgIFhJc0NoYW5nZShub2RlSnVzdGlmeSkgJiYgdGhpcy5zZXRDaGFuZ2UodGhpcy5ub2RlQ2xhc3NNYXAsIG5vZGVKdXN0aWZ5LCAneC1qdXN0aWZ5Jyk7XHJcbiAgICBYSXNDaGFuZ2UoYWN0aXZhdGVkSW5kZXgpICYmIHRoaXMuc2V0RGlyZWN0aW9uKGFjdGl2YXRlZEluZGV4LmN1cnJlbnRWYWx1ZSwgYWN0aXZhdGVkSW5kZXgucHJldmlvdXNWYWx1ZSkgJiYgdGhpcy5zZXRBY3RpdmF0ZWQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0U3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnNldEFjdGl2YXRlZCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLmNsYXNzTWFwW2Ake1hTbGlkZXJQcmVmaXh9LSR7dGhpcy5sYXlvdXR9YF0gPSAhWElzRW1wdHkodGhpcy5sYXlvdXQpO1xyXG4gICAgdGhpcy5zY3JvbGxDbGFzc01hcFtgeC1qdXN0aWZ5LSR7dGhpcy5qdXN0aWZ5fWBdID0gIVhJc0VtcHR5KHRoaXMuanVzdGlmeSk7XHJcbiAgICB0aGlzLm5vZGVDbGFzc01hcCA9IHtcclxuICAgICAgW2B4LWp1c3RpZnktJHt0aGlzLm5vZGVKdXN0aWZ5fWBdOiAhWElzRW1wdHkodGhpcy5ub2RlSnVzdGlmeSksXHJcbiAgICAgIFtgeC1zaXplLSR7dGhpcy5zaXplfWBdOiAhWElzRW1wdHkodGhpcy5zaXplKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldENoYW5nZShtYXA6IFhDbGFzc01hcCwgY2hhbmdlOiBTaW1wbGVDaGFuZ2UsIHByZWZpeCA9IFhTbGlkZXJQcmVmaXgpIHtcclxuICAgIG1hcFtgJHtwcmVmaXh9LSR7Y2hhbmdlLnByZXZpb3VzVmFsdWV9YF0gPSBmYWxzZTtcclxuICAgIG1hcFtgJHtwcmVmaXh9LSR7Y2hhbmdlLmN1cnJlbnRWYWx1ZX1gXSA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJzY3JpYmUoKSB7XHJcbiAgICBYUmVzaXplKHRoaXMuc2xpZGVyU2Nyb2xsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuc2xpZGVyTm9kZXMubmF0aXZlRWxlbWVudClcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDMwKSwgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IHgucmVzaXplT2JzZXJ2ZXI7XHJcbiAgICAgICAgdGhpcy5zaXplQ2hlY2tlZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0QWN0aXZhdGVkKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbm9kZUNsaWNrKG5vZGU6IFhTbGlkZXJOb2RlLCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBpZiAobm9kZS5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5zZXREaXJlY3Rpb24oaW5kZXgsIE51bWJlcih0aGlzLmFjdGl2YXRlZEluZGV4KSk7XHJcbiAgICB0aGlzLmFjdGl2YXRlZEluZGV4ID0gaW5kZXg7XHJcbiAgICB0aGlzLmFjdGl2YXRlZCA9IG5vZGU7XHJcbiAgICB0aGlzLmFjdGl2YXRlZElkID0gbm9kZS5pZDtcclxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0KCk7XHJcbiAgICB0aGlzLnNldFRyYW5zbGF0ZSgpO1xyXG4gICAgdGhpcy5pbmRleENoYW5nZS5lbWl0KGluZGV4KTtcclxuICAgIHRoaXMubm9kZUNoYW5nZS5lbWl0KG5vZGUpO1xyXG4gIH1cclxuXHJcbiAgZHJvcGRvd25DbGljayhub2RlOiBYU2xpZGVyTm9kZSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm5vZGVzLmluZGV4T2Yobm9kZSk7XHJcbiAgICB0aGlzLm5vZGVDbGljayhub2RlLCBpbmRleCk7XHJcbiAgfVxyXG5cclxuICBzY3JvbGxQcmV2KCkge1xyXG4gICAgaWYgKHRoaXMub2Zmc2V0ID09PSAwKSByZXR1cm47XHJcbiAgICBjb25zdCBzY3JvbGxTaXplID0gdGhpcy5zbGlkZXJTY3JvbGwubmF0aXZlRWxlbWVudFtgb2Zmc2V0JHt0aGlzLnNpemVOYW1lfWBdO1xyXG4gICAgY29uc3QgY3VycmVudE9mZnNldCA9IHRoaXMub2Zmc2V0O1xyXG4gICAgaWYgKCFjdXJyZW50T2Zmc2V0KSByZXR1cm47XHJcbiAgICBjb25zdCBvZmZzZXQgPSBjdXJyZW50T2Zmc2V0ID4gc2Nyb2xsU2l6ZSA/IGN1cnJlbnRPZmZzZXQgLSBzY3JvbGxTaXplIDogMDtcclxuICAgIHRoaXMub2Zmc2V0ID0gb2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgc2Nyb2xsTmV4dCgpIHtcclxuICAgIGlmICh0aGlzLm9mZnNldCA9PT0gdGhpcy5tYXhPZmZzZXQpIHJldHVybjtcclxuICAgIGNvbnN0IHNsaWRlclNpemUgPSB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnRbYG9mZnNldCR7dGhpcy5zaXplTmFtZX1gXTtcclxuICAgIGNvbnN0IHNjcm9sbFNpemUgPSB0aGlzLnNsaWRlclNjcm9sbC5uYXRpdmVFbGVtZW50W2BvZmZzZXQke3RoaXMuc2l6ZU5hbWV9YF07XHJcbiAgICBjb25zdCBjdXJyZW50T2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XHJcbiAgICBpZiAoc2xpZGVyU2l6ZSAtIGN1cnJlbnRPZmZzZXQgPD0gc2Nyb2xsU2l6ZSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb2Zmc2V0ID0gc2xpZGVyU2l6ZSAtIGN1cnJlbnRPZmZzZXQgPiBzY3JvbGxTaXplICogMiA/IGN1cnJlbnRPZmZzZXQgKyBzY3JvbGxTaXplIDogc2xpZGVyU2l6ZSAtIHNjcm9sbFNpemU7XHJcbiAgICB0aGlzLm9mZnNldCA9IG9mZnNldDtcclxuICB9XHJcblxyXG4gIHNldERpcmVjdGlvbihpbmRleDogbnVtYmVyLCBiZWZvcmU6IG51bWJlcikge1xyXG4gICAgY29uc3QgaW5jcmVhc2UgPSBpbmRleCA+IGJlZm9yZTtcclxuICAgIHRoaXMuZGlyZWN0aW9uID0gdGhpcy5sYXlvdXQgPT09ICdyb3cnID8gKGluY3JlYXNlID8gJ3JpZ2h0JyA6ICdsZWZ0JykgOiBpbmNyZWFzZSA/ICdib3R0b20nIDogJ3RvcCc7XHJcbiAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb247XHJcbiAgfVxyXG5cclxuICBzZXRUcmFuc2xhdGUoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuc2xpZGVyU2Nyb2xsKSB8fCBYSXNVbmRlZmluZWQodGhpcy5zbGlkZXJOb2RlcykpIHJldHVybjtcclxuICAgIGNvbnN0IHNsaWRlclJlY3QgPSB0aGlzLnNsaWRlclNjcm9sbC5uYXRpdmVFbGVtZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIGNvbnN0IHNsaWRlck5vZGVzUmVjdCA9IHRoaXMuc2xpZGVyTm9kZXMubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBsZXQgbW92ZUluZGV4ID0gWydib3R0b20nLCAncmlnaHQnXS5pbmRleE9mKHRoaXMuZGlyZWN0aW9uKSAhPT0gLTEgPyBOdW1iZXIodGhpcy5hY3RpdmF0ZWRJbmRleCkgKyAyIDogTnVtYmVyKHRoaXMuYWN0aXZhdGVkSW5kZXgpO1xyXG4gICAgbW92ZUluZGV4ID0gbW92ZUluZGV4ID4gdGhpcy5ub2Rlcy5sZW5ndGggPyB0aGlzLm5vZGVzLmxlbmd0aCA6IG1vdmVJbmRleCA9PT0gMCA/IDEgOiBtb3ZlSW5kZXg7XHJcbiAgICBsZXQgbW92ZUVsZSA9IHRoaXMuc2xpZGVyTm9kZXMubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcihgbGk6bnRoLWNoaWxkKCR7bW92ZUluZGV4fSlgKTtcclxuICAgIGxldCBtYXhPZmZzZXQgPSAwO1xyXG4gICAgaWYgKFhJc0VtcHR5KG1vdmVFbGUpKSByZXR1cm47XHJcbiAgICBjb25zdCBtb3ZlUmVjdCA9IG1vdmVFbGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBjdXJyZW50T2Zmc2V0ID0gdGhpcy5vZmZzZXQ7XHJcbiAgICBsZXQgb2Zmc2V0ID0gY3VycmVudE9mZnNldDtcclxuICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ3JvdycpIHtcclxuICAgICAgbWF4T2Zmc2V0ID0gc2xpZGVyTm9kZXNSZWN0LndpZHRoIC0gc2xpZGVyUmVjdC53aWR0aDtcclxuICAgICAgaWYgKG1vdmVSZWN0LmxlZnQgPCBzbGlkZXJSZWN0LmxlZnQpIHtcclxuICAgICAgICBvZmZzZXQgPSBjdXJyZW50T2Zmc2V0IC0gKHNsaWRlclJlY3QubGVmdCAtIG1vdmVSZWN0LmxlZnQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChtb3ZlUmVjdC5yaWdodCA+IHNsaWRlclJlY3QucmlnaHQpIHtcclxuICAgICAgICBvZmZzZXQgPSBjdXJyZW50T2Zmc2V0ICsgbW92ZVJlY3QucmlnaHQgLSBzbGlkZXJSZWN0LnJpZ2h0O1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBtYXhPZmZzZXQgPSBzbGlkZXJOb2Rlc1JlY3QuaGVpZ2h0IC0gc2xpZGVyUmVjdC5oZWlnaHQ7XHJcbiAgICAgIGlmIChtb3ZlUmVjdC50b3AgPCBzbGlkZXJSZWN0LnRvcCkge1xyXG4gICAgICAgIG9mZnNldCA9IGN1cnJlbnRPZmZzZXQgLSAoc2xpZGVyUmVjdC50b3AgLSBtb3ZlUmVjdC50b3ApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChtb3ZlUmVjdC5ib3R0b20gPiBzbGlkZXJSZWN0LmJvdHRvbSkge1xyXG4gICAgICAgIG9mZnNldCA9IGN1cnJlbnRPZmZzZXQgKyAobW92ZVJlY3QuYm90dG9tIC0gc2xpZGVyUmVjdC5ib3R0b20pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLm1heE9mZnNldCA9IE1hdGguY2VpbChtYXhPZmZzZXQpO1xyXG4gICAgb2Zmc2V0ID0gTWF0aC5tYXgoTWF0aC5jZWlsKG9mZnNldCksIDApO1xyXG4gICAgaWYgKFt0aGlzLm1heE9mZnNldCArIDEsIHRoaXMubWF4T2Zmc2V0IC0gMV0uaW5jbHVkZXMob2Zmc2V0KSkge1xyXG4gICAgICB0aGlzLm9mZnNldCA9IHRoaXMubWF4T2Zmc2V0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5vZmZzZXQgPSBNYXRoLm1pbihvZmZzZXQsIHRoaXMubWF4T2Zmc2V0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNpemVDaGVja2VkKCkge1xyXG4gICAgY29uc3Qgc2l6ZSA9IHRoaXMuc2xpZGVyTm9kZXMubmF0aXZlRWxlbWVudFtgb2Zmc2V0JHt0aGlzLnNpemVOYW1lfWBdO1xyXG4gICAgY29uc3Qgc2Nyb2xsU2l6ZSA9IHRoaXMuc2xpZGVyU2Nyb2xsLm5hdGl2ZUVsZW1lbnRbYG9mZnNldCR7dGhpcy5zaXplTmFtZX1gXTtcclxuICAgIGNvbnN0IHNob3dBcnJvdyA9IHRoaXMubm9kZXMubGVuZ3RoID4gMSAmJiBzaXplID4gc2Nyb2xsU2l6ZTtcclxuICAgIGlmICh0aGlzLnNob3dBcnJvdyAhPT0gc2hvd0Fycm93KSB7XHJcbiAgICAgIHRoaXMuc2hvd0Fycm93ID0gc2hvd0Fycm93O1xyXG4gICAgICB0aGlzLmNsYXNzTWFwW2Ake1hTbGlkZXJQcmVmaXh9LXNob3ctYXJyb3dgXSA9IHRoaXMuc2hvd0Fycm93O1xyXG4gICAgICBpZiAoIXRoaXMuc2hvd0Fycm93KSB7XHJcbiAgICAgICAgdGhpcy5vZmZzZXQgPSAwO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEFjdGl2YXRlZCgpIHtcclxuICAgIGlmICh0aGlzLm5vZGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZWQgPSB0aGlzLm5vZGVzW051bWJlcih0aGlzLmFjdGl2YXRlZEluZGV4KV07XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2YXRlZCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZhdGVkSWQgPSB0aGlzLmFjdGl2YXRlZC5pZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRIaWdobGlnaHQoKTtcclxuICAgIHRoaXMuc2V0VHJhbnNsYXRlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRIaWdobGlnaHQoKSB7XHJcbiAgICBpZiAoWElzVW5kZWZpbmVkKHRoaXMuc2xpZGVyTm9kZXMpKSByZXR1cm47XHJcbiAgICBjb25zdCBhY3RpdmVFbGUgPSB0aGlzLnNsaWRlck5vZGVzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihgbGk6bnRoLWNoaWxkKCR7TnVtYmVyKHRoaXMuYWN0aXZhdGVkSW5kZXgpICsgMX0pYCk7XHJcbiAgICBpZiAoIWFjdGl2ZUVsZSkgcmV0dXJuO1xyXG4gICAgdGhpcy5oaWdobGlnaHRCb3ggPSB7XHJcbiAgICAgIHdpZHRoOiBgJHthY3RpdmVFbGUub2Zmc2V0V2lkdGh9cHhgLFxyXG4gICAgICBoZWlnaHQ6IGAke2FjdGl2ZUVsZS5vZmZzZXRIZWlnaHR9cHhgLFxyXG4gICAgICBsZWZ0OiBgJHthY3RpdmVFbGUub2Zmc2V0TGVmdH1weGAsXHJcbiAgICAgIHRvcDogYCR7YWN0aXZlRWxlLm9mZnNldFRvcH1weGBcclxuICAgIH07XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERhdGEoKSB7XHJcbiAgICBYU2V0RGF0YTxYU2xpZGVyTm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLm5vZGVzID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0QWN0aXZhdGVkKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3RpdmF0ZWQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgcmV0dXJuIE51bWJlcih0aGlzLmFjdGl2YXRlZEluZGV4KSA9PT0gaW5kZXg7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5Tm9kZShfaW5kZXg6IG51bWJlciwgaXRlbTogWFNsaWRlck5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNzbGlkZXIgY2xhc3M9XCJ4LXNsaWRlclwiIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCI+XHJcbiAgPHgtbGluayAqbmdJZj1cInNob3dBcnJvd1wiIFtkaXNhYmxlZF09XCJvZmZzZXQgPT09IDBcIiBjbGFzcz1cIngtc2xpZGVyLWFycm93LWxlZnRcIiBpY29uPVwiZnRvLWNoZXZyb24tbGVmdFwiIChjbGljayk9XCJzY3JvbGxQcmV2KClcIj48L3gtbGluaz5cclxuICA8ZGl2IGNsYXNzPVwieC1zbGlkZXItc2Nyb2xsXCIgI3NsaWRlclNjcm9sbCBbbmdDbGFzc109XCJzY3JvbGxDbGFzc01hcFwiPlxyXG4gICAgPHVsICNzbGlkZXJOb2RlcyBbc3R5bGUudHJhbnNmb3JtXT1cInRyYW5zZm9ybVwiPlxyXG4gICAgICA8bGlcclxuICAgICAgICAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIlxyXG4gICAgICAgIFtjbGFzcy54LXNsaWRlci1hY3RpdmF0ZWRdPVwiZ2V0QWN0aXZhdGVkKGkpXCJcclxuICAgICAgICBbY2xhc3MueC1zbGlkZXItZGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZFwiXHJcbiAgICAgICAgW3RpdGxlXT1cIm5vZGUubGFiZWxcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHgtbGluayAoY2xpY2spPVwibm9kZUNsaWNrKG5vZGUsIGkpXCIgW25nQ2xhc3NdPVwibm9kZUNsYXNzTWFwXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZVRwbDsgY29udGV4dDogeyAkbm9kZTogbm9kZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vZGVUcGxcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cIm5vZGUubGFiZWxcIj57eyBub2RlLmxhYmVsIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3gtbGluaz5cclxuICAgICAgPC9saT5cclxuICAgICAgPGxpIGNsYXNzPVwieC1zbGlkZXItaGlnaGxpZ2h0XCIgW2NsYXNzLngtc2xpZGVyLWhpZ2hsaWdodC1hbmltYXRlZF09XCJhbmltYXRlZFwiIFtuZ1N0eWxlXT1cImhpZ2hsaWdodEJveFwiPjwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG4gIDx4LWxpbmtcclxuICAgICpuZ0lmPVwic2hvd0Fycm93XCJcclxuICAgIFtkaXNhYmxlZF09XCJvZmZzZXQgPT09IG1heE9mZnNldFwiXHJcbiAgICBjbGFzcz1cIngtc2xpZGVyLWFycm93LXJpZ2h0XCJcclxuICAgIGljb249XCJmdG8tY2hldnJvbi1yaWdodFwiXHJcbiAgICAoY2xpY2spPVwic2Nyb2xsTmV4dCgpXCJcclxuICA+PC94LWxpbms+XHJcbiAgPHgtZHJvcGRvd25cclxuICAgICpuZ0lmPVwic2hvd0V4cGFuZCAmJiBzaG93QXJyb3cgJiYgbGF5b3V0ID09PSAncm93J1wiXHJcbiAgICBjbGFzcz1cIngtc2xpZGVyLWFsbFwiXHJcbiAgICBbZGF0YV09XCJub2Rlc1wiXHJcbiAgICB0cmlnZ2VyPVwiY2xpY2tcIlxyXG4gICAgWyhhY3RpdmF0ZWRJZCldPVwiYWN0aXZhdGVkSWRcIlxyXG4gICAgKG5vZGVDbGljayk9XCJkcm9wZG93bkNsaWNrKCRldmVudClcIlxyXG4gICAgW3BvcnRhbE1heEhlaWdodF09XCJleHBhbmRNYXhIZWlnaHRcIlxyXG4gID5cclxuICAgIDx4LWJ1dHRvbiBpY29uPVwiZnRvLWxpc3RcIiBvbmx5SWNvbiBbc2l6ZV09XCJzaXplXCI+IDwveC1idXR0b24+XHJcbiAgPC94LWRyb3Bkb3duPlxyXG48L2Rpdj5cclxuIl19
@@ -5,18 +5,19 @@ import { XLinkModule } from '@ng-nest/ui/link';
5
5
  import { XButtonModule } from '@ng-nest/ui/button';
6
6
  import { XOutletModule } from '@ng-nest/ui/outlet';
7
7
  import { XSliderProperty } from './slider.property';
8
+ import { XDropdownModule } from '@ng-nest/ui/dropdown';
8
9
  import * as i0 from "@angular/core";
9
10
  export class XSliderModule {
10
11
  }
11
12
  /** @nocollapse */ XSliderModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- /** @nocollapse */ XSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XSliderModule, declarations: [XSliderComponent, XSliderProperty], imports: [CommonModule, XLinkModule, XButtonModule, XOutletModule], exports: [XSliderComponent] });
13
- /** @nocollapse */ XSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderModule, imports: [CommonModule, XLinkModule, XButtonModule, XOutletModule] });
13
+ /** @nocollapse */ XSliderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XSliderModule, declarations: [XSliderComponent, XSliderProperty], imports: [CommonModule, XLinkModule, XButtonModule, XOutletModule, XDropdownModule], exports: [XSliderComponent] });
14
+ /** @nocollapse */ XSliderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderModule, imports: [CommonModule, XLinkModule, XButtonModule, XOutletModule, XDropdownModule] });
14
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderModule, decorators: [{
15
16
  type: NgModule,
16
17
  args: [{
17
18
  declarations: [XSliderComponent, XSliderProperty],
18
19
  exports: [XSliderComponent],
19
- imports: [CommonModule, XLinkModule, XButtonModule, XOutletModule]
20
+ imports: [CommonModule, XLinkModule, XButtonModule, XOutletModule, XDropdownModule]
20
21
  }]
21
22
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NsaWRlci9zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLGFBQWE7OzZIQUFiLGFBQWE7OEhBQWIsYUFBYSxpQkFKVCxnQkFBZ0IsRUFBRSxlQUFlLGFBRXRDLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsYUFEdkQsZ0JBQWdCOzhIQUdmLGFBQWEsWUFGZCxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhOzJGQUV0RCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQztvQkFDakQsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQztpQkFDbkUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYU2xpZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zbGlkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWExpbmtNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuaW1wb3J0IHsgWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFhPdXRsZXRNb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5pbXBvcnQgeyBYU2xpZGVyUHJvcGVydHkgfSBmcm9tICcuL3NsaWRlci5wcm9wZXJ0eSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1hTbGlkZXJDb21wb25lbnQsIFhTbGlkZXJQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hTbGlkZXJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFhMaW5rTW9kdWxlLCBYQnV0dG9uTW9kdWxlLCBYT3V0bGV0TW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlck1vZHVsZSB7fVxyXG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL3NsaWRlci9zbGlkZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBT3ZELE1BQU0sT0FBTyxhQUFhOzs2SEFBYixhQUFhOzhIQUFiLGFBQWEsaUJBSlQsZ0JBQWdCLEVBQUUsZUFBZSxhQUV0QyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsZUFBZSxhQUR4RSxnQkFBZ0I7OEhBR2YsYUFBYSxZQUZkLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlOzJGQUV2RSxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGdCQUFnQixFQUFFLGVBQWUsQ0FBQztvQkFDakQsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQzNCLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUM7aUJBQ3BGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWFNsaWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2xpZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhMaW5rTW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvbGluayc7XHJcbmltcG9ydCB7IFhCdXR0b25Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9idXR0b24nO1xyXG5pbXBvcnQgeyBYT3V0bGV0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgWFNsaWRlclByb3BlcnR5IH0gZnJvbSAnLi9zbGlkZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYRHJvcGRvd25Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9kcm9wZG93bic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1hTbGlkZXJDb21wb25lbnQsIFhTbGlkZXJQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hTbGlkZXJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFhMaW5rTW9kdWxlLCBYQnV0dG9uTW9kdWxlLCBYT3V0bGV0TW9kdWxlLCBYRHJvcGRvd25Nb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYU2xpZGVyTW9kdWxlIHt9XHJcbiJdfQ==
@@ -53,7 +53,7 @@ export class XSliderProperty extends XProperty {
53
53
  }
54
54
  }
55
55
  /** @nocollapse */ XSliderProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
56
- /** @nocollapse */ XSliderProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XSliderProperty, selector: "ng-component", inputs: { data: "data", animated: "animated", activatedIndex: "activatedIndex", layout: "layout", justify: "justify", nodeJustify: "nodeJustify", nodeTpl: "nodeTpl", size: "size" }, outputs: { indexChange: "indexChange", nodeChange: "nodeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
56
+ /** @nocollapse */ XSliderProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XSliderProperty, selector: "ng-component", inputs: { data: "data", animated: "animated", activatedIndex: "activatedIndex", layout: "layout", justify: "justify", nodeJustify: "nodeJustify", nodeTpl: "nodeTpl", size: "size", showExpand: "showExpand", expandMaxHeight: "expandMaxHeight" }, outputs: { indexChange: "indexChange", nodeChange: "nodeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
57
57
  __decorate([
58
58
  XDataConvert()
59
59
  ], XSliderProperty.prototype, "data", void 0);
@@ -67,6 +67,13 @@ __decorate([
67
67
  __decorate([
68
68
  XWithConfig(X_CONFIG_NAME, 'medium')
69
69
  ], XSliderProperty.prototype, "size", void 0);
70
+ __decorate([
71
+ XWithConfig(X_CONFIG_NAME, false),
72
+ XInputBoolean()
73
+ ], XSliderProperty.prototype, "showExpand", void 0);
74
+ __decorate([
75
+ XWithConfig(X_CONFIG_NAME, '15rem')
76
+ ], XSliderProperty.prototype, "expandMaxHeight", void 0);
70
77
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XSliderProperty, decorators: [{
71
78
  type: Component,
72
79
  args: [{ template: '' }]
@@ -86,9 +93,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
86
93
  type: Input
87
94
  }], size: [{
88
95
  type: Input
96
+ }], showExpand: [{
97
+ type: Input
98
+ }], expandMaxHeight: [{
99
+ type: Input
89
100
  }], indexChange: [{
90
101
  type: Output
91
102
  }], nodeChange: [{
92
103
  type: Output
93
104
  }] } });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyL3NsaWRlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osYUFBYSxFQUNiLFlBQVksRUFLWixXQUFXLEVBQ1osTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQWUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVwRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUN4QyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFFL0I7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBRDlDOztRQUVFOzs7V0FHRztRQUNzQixTQUFJLEdBQXVCLEVBQUUsQ0FBQztRQU12RDs7O1dBR0c7UUFDc0IsbUJBQWMsR0FBWSxDQUFDLENBQUM7UUFDckQ7OztXQUdHO1FBQ00sV0FBTSxHQUFtQixLQUFLLENBQUM7UUFDeEM7OztXQUdHO1FBQ00sWUFBTyxHQUFjLE9BQU8sQ0FBQztRQUN0Qzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFjLFFBQVEsQ0FBQztRQVczQzs7O1dBR0c7UUFDTyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDbkQ7OztXQUdHO1FBQ08sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7S0FDeEQ7OytIQW5EWSxlQUFlO21IQUFmLGVBQWUsb1VBREwsRUFBRTtBQU1FO0lBQWYsWUFBWSxFQUFFOzZDQUErQjtBQUtlO0lBQTVELFdBQVcsQ0FBVyxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQUUsYUFBYSxFQUFFO2lEQUFxQjtBQUtqRTtJQUFmLFlBQVksRUFBRTt1REFBNkI7QUF5QkM7SUFBNUMsV0FBVyxDQUFRLGFBQWEsRUFBRSxRQUFRLENBQUM7NkNBQWM7MkZBeEN4RCxlQUFlO2tCQUQzQixTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRTs4QkFNQSxJQUFJO3NCQUE1QixLQUFLO2dCQUtnRSxRQUFRO3NCQUE3RSxLQUFLO2dCQUttQixjQUFjO3NCQUF0QyxLQUFLO2dCQUtHLE1BQU07c0JBQWQsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS0csV0FBVztzQkFBbkIsS0FBSztnQkFLRyxPQUFPO3NCQUFmLEtBQUs7Z0JBS2dELElBQUk7c0JBQXpELEtBQUs7Z0JBS0ksV0FBVztzQkFBcEIsTUFBTTtnQkFLRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBYRGF0YSxcclxuICBYVGVtcGxhdGUsXHJcbiAgWFByb3BlcnR5LFxyXG4gIFhJZGVudGl0eVByb3BlcnR5LFxyXG4gIFhEYXRhQ29udmVydCxcclxuICBYSW5wdXRCb29sZWFuLFxyXG4gIFhJbnB1dE51bWJlcixcclxuICBYSnVzdGlmeSxcclxuICBYU2l6ZSxcclxuICBYTnVtYmVyLFxyXG4gIFhCb29sZWFuLFxyXG4gIFhXaXRoQ29uZmlnXHJcbn0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFRlbXBsYXRlUmVmLCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFNsaWRlclxyXG4gKiBAc2VsZWN0b3IgeC1zbGlkZXJcclxuICogQGRlY29yYXRvciBjb21wb25lbnRcclxuICovXHJcbmV4cG9ydCBjb25zdCBYU2xpZGVyUHJlZml4ID0gJ3gtc2xpZGVyJztcclxuY29uc3QgWF9DT05GSUdfTkFNRSA9ICdzbGlkZXInO1xyXG5cclxuLyoqXHJcbiAqIFNsaWRlciBQcm9wZXJ0eVxyXG4gKi9cclxuQENvbXBvbmVudCh7IHRlbXBsYXRlOiAnJyB9KVxyXG5leHBvcnQgY2xhc3MgWFNsaWRlclByb3BlcnR5IGV4dGVuZHMgWFByb3BlcnR5IHtcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55pWw5o2uXHJcbiAgICogQGVuX1VTIE5vZGUgZGF0YVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYRGF0YUNvbnZlcnQoKSBkYXRhOiBYRGF0YTxYU2xpZGVyTm9kZT4gPSBbXTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5ruR5Yqo5Yqo55S7XHJcbiAgICogQGVuX1VTIFNsaWRpbmcgYW5pbWF0aW9uXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhCb29sZWFuPihYX0NPTkZJR19OQU1FLCB0cnVlKSBAWElucHV0Qm9vbGVhbigpIGFuaW1hdGVkPzogWEJvb2xlYW47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOW9k+WJjea/gOa0u+eahOe0ouW8lVxyXG4gICAqIEBlbl9VUyBDdXJyZW50bHkgYWN0aXZlIGluZGV4XHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhJbnB1dE51bWJlcigpIGFjdGl2YXRlZEluZGV4OiBYTnVtYmVyID0gMDtcclxuICAvKipcclxuICAgKiBAemhfQ04g5o6S5YiX5pa55byPXHJcbiAgICogQGVuX1VTIEFycmFuZ2VtZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgbGF5b3V0PzogWFNsaWRlckxheW91dCA9ICdyb3cnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlr7npvZDmlrnlvI9cclxuICAgKiBAZW5fVVMgQWxpZ25tZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkganVzdGlmeT86IFhKdXN0aWZ5ID0gJ3N0YXJ0JztcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K55paH5a2X5a+56b2Q5pa55byPXHJcbiAgICogQGVuX1VTIE5vZGUgdGV4dCBhbGlnbm1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBub2RlSnVzdGlmeT86IFhKdXN0aWZ5ID0gJ2NlbnRlcic7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOiKgueCueiHquWumuS5ieaooeadv1xyXG4gICAqIEBlbl9VUyBOb2RlIGN1c3RvbSB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGVUcGwhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDlsLrlr7hcclxuICAgKiBAZW5fVVMgU2l6ZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIEBYV2l0aENvbmZpZzxYU2l6ZT4oWF9DT05GSUdfTkFNRSwgJ21lZGl1bScpIHNpemU/OiBYU2l6ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g5r+A5rS757Si5byV5Y+Y5YyW5LqL5Lu2XHJcbiAgICogQGVuX1VTIEFjdGl2YXRlIGluZGV4IGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmv4DmtLvoioLngrnmlLnlj5jkuovku7ZcclxuICAgKiBAZW5fVVMgQWN0aXZhdGUgbm9kZSBjaGFuZ2UgZXZlbnRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgbm9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8WFNsaWRlck5vZGU+KCk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04gU2xpZGVyIOaVsOaNruWvueixoVxyXG4gKiBAZW5fVVMgU2xpZGVyIGRhdGEgb2JqZWN0XHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFhTbGlkZXJOb2RlIGV4dGVuZHMgWElkZW50aXR5UHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmoIfpopjvvIzmlK/mjIHmqKHmnb9cclxuICAgKiBAZW5fVVMgVGl0bGUsIHN1cHBvcnQgdGVtcGxhdGVcclxuICAgKi9cclxuICBsYWJlbD86IFhUZW1wbGF0ZTtcclxuICAvKipcclxuICAgKiBAemhfQ04g56aB55So6IqC54K5XHJcbiAgICogQGVuX1VTIE5vZGUgZGlzYWJsZWRcclxuICAgKi9cclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAemhfQ04g5biD5bGA5pa55byPXHJcbiAqIEBlbl9VUyBMYXlvdXRcclxuICovXHJcbmV4cG9ydCB0eXBlIFhTbGlkZXJMYXlvdXQgPSAncm93JyB8ICdjb2x1bW4nO1xyXG4iXX0=
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLnByb3BlcnR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvc2xpZGVyL3NsaWRlci5wcm9wZXJ0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osYUFBYSxFQUNiLFlBQVksRUFLWixXQUFXLEVBQ1osTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQWUsS0FBSyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUVwRjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQVUsQ0FBQztBQUN4QyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUM7QUFFL0I7O0dBRUc7QUFFSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxTQUFTO0lBRDlDOztRQUVFOzs7V0FHRztRQUNzQixTQUFJLEdBQXVCLEVBQUUsQ0FBQztRQU12RDs7O1dBR0c7UUFDc0IsbUJBQWMsR0FBWSxDQUFDLENBQUM7UUFDckQ7OztXQUdHO1FBQ00sV0FBTSxHQUFtQixLQUFLLENBQUM7UUFDeEM7OztXQUdHO1FBQ00sWUFBTyxHQUFjLE9BQU8sQ0FBQztRQUN0Qzs7O1dBR0c7UUFDTSxnQkFBVyxHQUFjLFFBQVEsQ0FBQztRQXFCM0M7OztXQUdHO1FBQ08sZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ25EOzs7V0FHRztRQUNPLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0tBQ3hEOzsrSEE3RFksZUFBZTttSEFBZixlQUFlLGtZQURMLEVBQUU7QUFNRTtJQUFmLFlBQVksRUFBRTs2Q0FBK0I7QUFLZTtJQUE1RCxXQUFXLENBQVcsYUFBYSxFQUFFLElBQUksQ0FBQztJQUFFLGFBQWEsRUFBRTtpREFBcUI7QUFLakU7SUFBZixZQUFZLEVBQUU7dURBQTZCO0FBeUJDO0lBQTVDLFdBQVcsQ0FBUSxhQUFhLEVBQUUsUUFBUSxDQUFDOzZDQUFjO0FBS0k7SUFBN0QsV0FBVyxDQUFXLGFBQWEsRUFBRSxLQUFLLENBQUM7SUFBRSxhQUFhLEVBQUU7bURBQXVCO0FBS3ZDO0lBQTVDLFdBQVcsQ0FBUyxhQUFhLEVBQUUsT0FBTyxDQUFDO3dEQUEwQjsyRkFsRHBFLGVBQWU7a0JBRDNCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOzhCQU1BLElBQUk7c0JBQTVCLEtBQUs7Z0JBS2dFLFFBQVE7c0JBQTdFLEtBQUs7Z0JBS21CLGNBQWM7c0JBQXRDLEtBQUs7Z0JBS0csTUFBTTtzQkFBZCxLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLRyxXQUFXO3NCQUFuQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFLZ0QsSUFBSTtzQkFBekQsS0FBSztnQkFLaUUsVUFBVTtzQkFBaEYsS0FBSztnQkFLZ0QsZUFBZTtzQkFBcEUsS0FBSztnQkFLSSxXQUFXO3NCQUFwQixNQUFNO2dCQUtHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIFhEYXRhLFxyXG4gIFhUZW1wbGF0ZSxcclxuICBYUHJvcGVydHksXHJcbiAgWElkZW50aXR5UHJvcGVydHksXHJcbiAgWERhdGFDb252ZXJ0LFxyXG4gIFhJbnB1dEJvb2xlYW4sXHJcbiAgWElucHV0TnVtYmVyLFxyXG4gIFhKdXN0aWZ5LFxyXG4gIFhTaXplLFxyXG4gIFhOdW1iZXIsXHJcbiAgWEJvb2xlYW4sXHJcbiAgWFdpdGhDb25maWdcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgVGVtcGxhdGVSZWYsIElucHV0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogU2xpZGVyXHJcbiAqIEBzZWxlY3RvciB4LXNsaWRlclxyXG4gKiBAZGVjb3JhdG9yIGNvbXBvbmVudFxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IFhTbGlkZXJQcmVmaXggPSAneC1zbGlkZXInO1xyXG5jb25zdCBYX0NPTkZJR19OQU1FID0gJ3NsaWRlcic7XHJcblxyXG4vKipcclxuICogU2xpZGVyIFByb3BlcnR5XHJcbiAqL1xyXG5AQ29tcG9uZW50KHsgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBYU2xpZGVyUHJvcGVydHkgZXh0ZW5kcyBYUHJvcGVydHkge1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmlbDmja5cclxuICAgKiBAZW5fVVMgTm9kZSBkYXRhXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhEYXRhQ29udmVydCgpIGRhdGE6IFhEYXRhPFhTbGlkZXJOb2RlPiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmu5HliqjliqjnlLtcclxuICAgKiBAZW5fVVMgU2xpZGluZyBhbmltYXRpb25cclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIHRydWUpIEBYSW5wdXRCb29sZWFuKCkgYW5pbWF0ZWQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5b2T5YmN5r+A5rS755qE57Si5byVXHJcbiAgICogQGVuX1VTIEN1cnJlbnRseSBhY3RpdmUgaW5kZXhcclxuICAgKi9cclxuICBASW5wdXQoKSBAWElucHV0TnVtYmVyKCkgYWN0aXZhdGVkSW5kZXg6IFhOdW1iZXIgPSAwO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmjpLliJfmlrnlvI9cclxuICAgKiBAZW5fVVMgQXJyYW5nZW1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBsYXlvdXQ/OiBYU2xpZGVyTGF5b3V0ID0gJ3Jvdyc7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWvuem9kOaWueW8j1xyXG4gICAqIEBlbl9VUyBBbGlnbm1lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBqdXN0aWZ5PzogWEp1c3RpZnkgPSAnc3RhcnQnO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmloflrZflr7npvZDmlrnlvI9cclxuICAgKiBAZW5fVVMgTm9kZSB0ZXh0IGFsaWdubWVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIG5vZGVKdXN0aWZ5PzogWEp1c3RpZnkgPSAnY2VudGVyJztcclxuICAvKipcclxuICAgKiBAemhfQ04g6IqC54K56Ieq5a6a5LmJ5qih5p2/XHJcbiAgICogQGVuX1VTIE5vZGUgY3VzdG9tIHRlbXBsYXRlXHJcbiAgICovXHJcbiAgQElucHV0KCkgbm9kZVRwbCE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOWwuuWvuFxyXG4gICAqIEBlbl9VUyBTaXplXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPFhTaXplPihYX0NPTkZJR19OQU1FLCAnbWVkaXVtJykgc2l6ZT86IFhTaXplO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDoioLngrnmmL7npLrkuI3kuIvnmoTml7blgJnmmL7npLrlsZXlvIDmiYDmnInnmoTmjInpkq7vvIzmjpLliJfmlrnlvI/kuLogcm93IOeahOaXtuWAmeeUn+aViFxyXG4gICAqIEBlbl9VUyBXaGVuIHRoZSBub2RlIGlzIG5vdCBkaXNwbGF5ZWQsIGRpc3BsYXkgYWxsIHRoZSBidXR0b25zLCBhbmQgdGhlIGFycmFuZ2VtZW50IGlzIGVmZmVjdGl2ZSB3aGVuIHRoZSBhcnJhbmdlbWVudCBpcyByb3dcclxuICAgKi9cclxuICBASW5wdXQoKSBAWFdpdGhDb25maWc8WEJvb2xlYW4+KFhfQ09ORklHX05BTUUsIGZhbHNlKSBAWElucHV0Qm9vbGVhbigpIHNob3dFeHBhbmQ/OiBYQm9vbGVhbjtcclxuICAvKipcclxuICAgKiBAemhfQ04g5bGV5byA5omA5pyJ5by55qGG55qE5pyA5aSn6auY5bqmXHJcbiAgICogQGVuX1VTIEV4cGFuZCB0aGUgbWF4aW11bSBoZWlnaHQgb2YgYWxsIGJvbWIgZnJhbWVzXHJcbiAgICovXHJcbiAgQElucHV0KCkgQFhXaXRoQ29uZmlnPHN0cmluZz4oWF9DT05GSUdfTkFNRSwgJzE1cmVtJykgZXhwYW5kTWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDmv4DmtLvntKLlvJXlj5jljJbkuovku7ZcclxuICAgKiBAZW5fVVMgQWN0aXZhdGUgaW5kZXggY2hhbmdlIGV2ZW50XHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGluZGV4Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOa/gOa0u+iKgueCueaUueWPmOS6i+S7tlxyXG4gICAqIEBlbl9VUyBBY3RpdmF0ZSBub2RlIGNoYW5nZSBldmVudFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBub2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxYU2xpZGVyTm9kZT4oKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiBTbGlkZXIg5pWw5o2u5a+56LGhXHJcbiAqIEBlbl9VUyBTbGlkZXIgZGF0YSBvYmplY3RcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgWFNsaWRlck5vZGUgZXh0ZW5kcyBYSWRlbnRpdHlQcm9wZXJ0eSB7XHJcbiAgLyoqXHJcbiAgICogQHpoX0NOIOagh+mimO+8jOaUr+aMgeaooeadv1xyXG4gICAqIEBlbl9VUyBUaXRsZSwgc3VwcG9ydCB0ZW1wbGF0ZVxyXG4gICAqL1xyXG4gIGxhYmVsPzogWFRlbXBsYXRlO1xyXG4gIC8qKlxyXG4gICAqIEB6aF9DTiDnpoHnlKjoioLngrlcclxuICAgKiBAZW5fVVMgTm9kZSBkaXNhYmxlZFxyXG4gICAqL1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEB6aF9DTiDluIPlsYDmlrnlvI9cclxuICogQGVuX1VTIExheW91dFxyXG4gKi9cclxuZXhwb3J0IHR5cGUgWFNsaWRlckxheW91dCA9ICdyb3cnIHwgJ2NvbHVtbic7XHJcbiJdfQ==