imm-element-ui 2.0.1 → 2.0.2

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 (105) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/crumb-action/crumb-action.component.mjs +3 -3
  3. package/esm2022/lib/form/form/form.component.mjs +3 -3
  4. package/esm2022/lib/form/form-field/context-menu.mjs +35 -35
  5. package/esm2022/lib/form/form-field/field-control.mjs +1 -1
  6. package/esm2022/lib/form/form-field/field-utils.mjs +1 -1
  7. package/esm2022/lib/form/form-field/form-field.mjs +135 -135
  8. package/esm2022/lib/form/form-field/form-type.mjs +85 -85
  9. package/esm2022/lib/form/form-field/index.mjs +1 -1
  10. package/esm2022/lib/form/form-field/label.directive.mjs +1 -1
  11. package/esm2022/lib/form/form-type/autocomplete.type.mjs +151 -151
  12. package/esm2022/lib/form/form-type/codemirror.type.mjs +4 -1
  13. package/esm2022/lib/form/form-type/datepicker.type.mjs +183 -183
  14. package/esm2022/lib/form/form-type/image.type.mjs +219 -219
  15. package/esm2022/lib/form/form-type/index.mjs +1 -1
  16. package/esm2022/lib/form/form-type/inputnumber.type.mjs +91 -91
  17. package/esm2022/lib/form/form-type/inputtext.type.mjs +19 -19
  18. package/esm2022/lib/form/form-type/multiselect.type.mjs +165 -163
  19. package/esm2022/lib/form/form-type/radio.type.mjs +77 -77
  20. package/esm2022/lib/form/form-type/rowselector.type.mjs +25 -25
  21. package/esm2022/lib/form/form-type/select.type.mjs +135 -133
  22. package/esm2022/lib/form/form-type/textarea.type.mjs +25 -25
  23. package/esm2022/lib/form/form-type/treeselect.type.mjs +115 -115
  24. package/esm2022/lib/form/form-type/upload.type.mjs +131 -131
  25. package/esm2022/lib/grid/actions/actions.component.mjs +1 -1
  26. package/esm2022/lib/grid/cell-edit/cell-edit-autoComplete.component.mjs +25 -25
  27. package/esm2022/lib/grid/cell-edit/cell-edit-datePicker.compoent.mjs +139 -139
  28. package/esm2022/lib/grid/cell-edit/cell-edit-inputDate.component.mjs +27 -27
  29. package/esm2022/lib/grid/cell-edit/cell-edit-inputNumber.component.mjs +75 -75
  30. package/esm2022/lib/grid/cell-edit/cell-edit-inputText.compoent.mjs +1 -1
  31. package/esm2022/lib/grid/cell-edit/cell-edit-select.component.mjs +125 -121
  32. package/esm2022/lib/grid/cell-edit/index.mjs +1 -1
  33. package/esm2022/lib/grid/cell-render/async-renderer.mjs +1 -1
  34. package/esm2022/lib/grid/cell-render/chip-render.mjs +21 -21
  35. package/esm2022/lib/grid/cell-render/img-renderer.mjs +25 -25
  36. package/esm2022/lib/grid/cell-render/link-render.mjs +13 -13
  37. package/esm2022/lib/grid/cell-render/row-span.mjs +5 -5
  38. package/esm2022/lib/grid/grid/grid.component.mjs +3 -3
  39. package/esm2022/lib/grid/grid-utils.mjs +1 -1
  40. package/esm2022/lib/grid/mock-data.mjs +1 -1
  41. package/esm2022/lib/grid/pager/pager.component.mjs +3 -3
  42. package/esm2022/lib/head/head.component.mjs +3 -3
  43. package/esm2022/lib/href-btn-list/href-btn-list.component.mjs +1 -1
  44. package/esm2022/lib/import/import.component.mjs +3 -3
  45. package/esm2022/lib/loading/loading.component.mjs +3 -3
  46. package/esm2022/lib/log/log.component.mjs +3 -3
  47. package/esm2022/lib/page-form/page-form.component.mjs +3 -3
  48. package/esm2022/lib/page-form/page-form.interface.mjs +1 -1
  49. package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +3 -3
  50. package/esm2022/lib/row-selector/row-selector.component.mjs +3 -3
  51. package/esm2022/lib/search/mock-data.mjs +1 -1
  52. package/esm2022/lib/search/pop-date/pop-date.component.mjs +3 -3
  53. package/esm2022/lib/search/pop-list/pop-list.component.mjs +3 -3
  54. package/esm2022/lib/search/pop-panel/pop-panel.component.mjs +3 -3
  55. package/esm2022/lib/search/pop-select/pop-select.component.mjs +3 -3
  56. package/esm2022/lib/search/pop-self/pop-self.component.mjs +3 -3
  57. package/esm2022/lib/search/pop-sort/pop-sort.component.mjs +3 -3
  58. package/esm2022/lib/search/pop-tree/pop-tree.component.mjs +3 -3
  59. package/esm2022/lib/search/search/search.component.mjs +3 -3
  60. package/esm2022/lib/search/search-tip/search-tip.component.mjs +3 -3
  61. package/esm2022/lib/search/search-utils.mjs +1 -1
  62. package/esm2022/lib/search/text-panel/text-panel.component.mjs +3 -3
  63. package/esm2022/lib/service/i18n.service.mjs +1 -1
  64. package/esm2022/lib/service/loading.service.mjs +1 -1
  65. package/esm2022/lib/service/themeConfig.service.mjs +1 -1
  66. package/esm2022/lib/share/utils.mjs +11 -1
  67. package/esm2022/lib/steps/steps.component.mjs +1 -1
  68. package/esm2022/lib/theme-config/theme-config-panel.compoent.mjs +39 -39
  69. package/esm2022/lib/theme-config/theme-config.compoent.mjs +29 -29
  70. package/esm2022/public-api.mjs +1 -1
  71. package/fesm2022/imm-element-ui.mjs +3445 -3427
  72. package/fesm2022/imm-element-ui.mjs.map +1 -1
  73. package/lib/crumb-action/crumb-action.component.d.ts +1 -1
  74. package/lib/form/form-type/codemirror.type.d.ts +1 -1
  75. package/lib/form/form-type/multiselect.type.d.ts +1 -0
  76. package/lib/form/form-type/select.type.d.ts +1 -0
  77. package/lib/grid/cell-edit/cell-edit-select.component.d.ts +1 -0
  78. package/lib/grid/grid-utils.d.ts +529 -2
  79. package/lib/share/utils.d.ts +2 -0
  80. package/lib/steps/steps.component.d.ts +1 -1
  81. package/package.json +1 -1
  82. package/src/lib/crumb-action/crumb-action.component.scss +60 -60
  83. package/src/lib/grid/grid/grid.component.scss +45 -45
  84. package/src/lib/grid/pager/pager.component.scss +3 -3
  85. package/src/lib/head/head.component.scss +3 -3
  86. package/src/lib/href-btn-list/href-btn-list.component.scss +51 -51
  87. package/src/lib/import/import.component.scss +10 -10
  88. package/src/lib/loading/loading.component.scss +31 -31
  89. package/src/lib/log/log.component.scss +26 -26
  90. package/src/lib/page-form/page-form.component.scss +31 -31
  91. package/src/lib/page-grid-list/page-grid-list.component.scss +12 -12
  92. package/src/lib/row-selector/row-selector.component.scss +1 -1
  93. package/src/lib/search/dynamic-search/dynamic-search.component.scss +70 -70
  94. package/src/lib/search/pop-date/pop-date.component.scss +67 -67
  95. package/src/lib/search/pop-list/pop-list.component.scss +23 -23
  96. package/src/lib/search/pop-panel/pop-panel.component.scss +32 -32
  97. package/src/lib/search/pop-select/pop-select.component.scss +39 -39
  98. package/src/lib/search/pop-self/pop-self.component.scss +80 -80
  99. package/src/lib/search/pop-sort/pop-sort.component.scss +49 -49
  100. package/src/lib/search/pop-tree/pop-tree.component.scss +37 -37
  101. package/src/lib/search/search/search.component.scss +70 -70
  102. package/src/lib/search/search-tip/search-tip.component.scss +50 -50
  103. package/src/lib/search/text-panel/text-panel.component.scss +24 -24
  104. package/src/lib/steps/steps.component.scss +97 -97
  105. package/src/lib/styles/styles.scss +232 -232
@@ -117,192 +117,192 @@ export class DatePickerComponent {
117
117
  return result;
118
118
  }
119
119
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.ActionService }, { token: i0.Renderer2 }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); }
120
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "form-datepicker", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: DatePicker, descendants: true }, { propertyName: "datePickerRef", first: true, predicate: DatePicker, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-datepicker
121
- [id]="field()?.uuid"
122
- [inputId]="field()?.uuid"
123
- [variant]="props.variant ?? 'outlined'"
124
- [fluid]="props.fluid"
125
- [size]="props.size"
126
- [styleClass]="props.styleClass"
127
- [inputStyle]="props.inputStyle"
128
- [inputStyleClass]="props.inputStyleClass"
129
- [name]="props.name"
130
- [placeholder]="props.placeholder"
131
- [ariaLabelledBy]="props.ariaLabelledBy"
132
- [ariaLabel]="props.ariaLabel"
133
- [iconAriaLabel]="props.iconAriaLabel"
134
- [dateFormat]="props.dateFormat ?? 'yy-mm-dd'"
135
- [multipleSeparator]="props.multipleSeparator ?? ','"
136
- [rangeSeparator]="props.rangeSeparator ?? '-'"
137
- [inline]="props.inline"
138
- [showOtherMonths]="props.showOtherMonths ?? true"
139
- [selectOtherMonths]="props.selectOtherMonths"
140
- [showIcon]="props.showIcon"
141
- [fluid]="props.fluid ?? true"
142
- [icon]="props.icon"
143
- [appendTo]="props.appendTo ?? 'body'"
144
- [readonlyInput]="props.readonlyInput"
145
- [shortYearCutoff]="props.shortYearCutoff"
146
- [hourFormat]="props.hourFormat ?? '24'"
147
- [timeOnly]="props.timeOnly"
148
- [stepHour]="props.stepHour ?? 1"
149
- [stepMinute]="props.stepMinute ?? 1"
150
- [stepSecond]="props.stepSecond ?? 1"
151
- [showSeconds]="props.showSeconds ?? !!props.showTime"
152
- [showOnFocus]="props.showOnFocus ?? true"
153
- [showWeek]="props.showWeek"
154
- [startWeekFromFirstDayOfYear]="!!props.startWeekFromFirstDayOfYear"
155
- [showClear]="props.showClear"
156
- [dataType]="props.dataType ?? 'string'"
157
- [selectionMode]="props.selectionMode ?? 'single'"
158
- [maxDateCount]="props.maxDateCount"
159
- [showButtonBar]="props.showButtonBar"
160
- [todayButtonStyleClass]="props.todayButtonStyleClass"
161
- [clearButtonStyleClass]="props.clearButtonStyleClass"
162
- [autofocus]="props.autofocus"
163
- [autoZIndex]="props.autoZIndex ?? true"
164
- [baseZIndex]="props.baseZIndex ?? 0"
165
- [panelStyleClass]="props.panelStyleClass"
166
- [panelStyle]="props.panelStyle"
167
- [keepInvalid]="props.keepInvalid"
168
- [hideOnDateTimeSelect]="props.hideOnDateTimeSelect ?? true"
169
- [touchUI]="props.touchUI"
170
- [timeSeparator]="props.timeSeparator ?? ':'"
171
- [focusTrap]="props.focusTrap ?? true"
172
- [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
173
- [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
174
- [tabindex]="props.tabindex"
175
- [minDate]="props.minDate"
176
- [maxDate]="props.maxDate"
177
- [disabledDates]="props.disabledDates ?? []"
178
- [disabledDays]="props.disabledDays ?? []"
179
- [showTime]="!!props.showTime"
180
- [responsiveOptions]="props.responsiveOptions ?? []"
181
- [numberOfMonths]="props.numberOfMonths ?? 1"
182
- [firstDayOfWeek]="props.firstDayOfWeek ?? 7"
183
- [view]="props.view ?? 'date'"
184
- [defaultDate]="props.defaultDate!"
185
- (onInput)="props.onInput?.(field()!, $event)"
186
- (onFocus)="props.onFocus?.(field()!, $event)"
187
- (onBlur)="props.onBlur?.(field()!, $event)"
188
- (onClose)="props.onClose?.(field()!, $event)"
189
- (onSelect)="props.onSelect?.(field()!, $event)"
190
- (onClear)="props.onClear?.(field()!, $event)"
191
- (onTodayClick)="props.onTodayClick?.(field()!, $event)"
192
- (onClearClick)="props.onClearClick?.(field()!, $event)"
193
- (onMonthChange)="props.onMonthChange?.(field()!, $event)"
194
- (onYearChange)="props.onYearChange?.(field()!, $event)"
195
- (onClickOutside)="props.onClickOutside?.(field()!, $event)"
196
- (onShow)="props.onShow?.(field()!, $event)"
197
- [class]="props.class"
198
- [formControl]="field()!.fieldControl!">
199
- <ng-template #footer>
200
- @if (!!props.showTime && !props.timeOnly) {
201
- <div class="flex flex-row-reverse text-[12px] text-[var(--p-primary-color)] cursor-pointer">
202
- <i
203
- class="pi pi-replay"
204
- (click)="resetTime($event)"></i>
205
- </div>
206
- } @else if (!!props.footerTemplate) {
207
- <!--todo 未来加入自定义区间选项-->
208
- <ng-container *ngTemplateOutlet="props.footerTemplate"></ng-container>
209
- }
210
- </ng-template>
120
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DatePickerComponent, isStandalone: true, selector: "form-datepicker", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, providers: [DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: DatePicker, descendants: true }, { propertyName: "datePickerRef", first: true, predicate: DatePicker, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-datepicker
121
+ [id]="field()?.uuid"
122
+ [inputId]="field()?.uuid"
123
+ [variant]="props.variant ?? 'outlined'"
124
+ [fluid]="props.fluid"
125
+ [size]="props.size"
126
+ [styleClass]="props.styleClass"
127
+ [inputStyle]="props.inputStyle"
128
+ [inputStyleClass]="props.inputStyleClass"
129
+ [name]="props.name"
130
+ [placeholder]="props.placeholder"
131
+ [ariaLabelledBy]="props.ariaLabelledBy"
132
+ [ariaLabel]="props.ariaLabel"
133
+ [iconAriaLabel]="props.iconAriaLabel"
134
+ [dateFormat]="props.dateFormat ?? 'yy-mm-dd'"
135
+ [multipleSeparator]="props.multipleSeparator ?? ','"
136
+ [rangeSeparator]="props.rangeSeparator ?? '-'"
137
+ [inline]="props.inline"
138
+ [showOtherMonths]="props.showOtherMonths ?? true"
139
+ [selectOtherMonths]="props.selectOtherMonths"
140
+ [showIcon]="props.showIcon"
141
+ [fluid]="props.fluid ?? true"
142
+ [icon]="props.icon"
143
+ [appendTo]="props.appendTo ?? 'body'"
144
+ [readonlyInput]="props.readonlyInput"
145
+ [shortYearCutoff]="props.shortYearCutoff"
146
+ [hourFormat]="props.hourFormat ?? '24'"
147
+ [timeOnly]="props.timeOnly"
148
+ [stepHour]="props.stepHour ?? 1"
149
+ [stepMinute]="props.stepMinute ?? 1"
150
+ [stepSecond]="props.stepSecond ?? 1"
151
+ [showSeconds]="props.showSeconds ?? !!props.showTime"
152
+ [showOnFocus]="props.showOnFocus ?? true"
153
+ [showWeek]="props.showWeek"
154
+ [startWeekFromFirstDayOfYear]="!!props.startWeekFromFirstDayOfYear"
155
+ [showClear]="props.showClear"
156
+ [dataType]="props.dataType ?? 'string'"
157
+ [selectionMode]="props.selectionMode ?? 'single'"
158
+ [maxDateCount]="props.maxDateCount"
159
+ [showButtonBar]="props.showButtonBar"
160
+ [todayButtonStyleClass]="props.todayButtonStyleClass"
161
+ [clearButtonStyleClass]="props.clearButtonStyleClass"
162
+ [autofocus]="props.autofocus"
163
+ [autoZIndex]="props.autoZIndex ?? true"
164
+ [baseZIndex]="props.baseZIndex ?? 0"
165
+ [panelStyleClass]="props.panelStyleClass"
166
+ [panelStyle]="props.panelStyle"
167
+ [keepInvalid]="props.keepInvalid"
168
+ [hideOnDateTimeSelect]="props.hideOnDateTimeSelect ?? true"
169
+ [touchUI]="props.touchUI"
170
+ [timeSeparator]="props.timeSeparator ?? ':'"
171
+ [focusTrap]="props.focusTrap ?? true"
172
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
173
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
174
+ [tabindex]="props.tabindex"
175
+ [minDate]="props.minDate"
176
+ [maxDate]="props.maxDate"
177
+ [disabledDates]="props.disabledDates ?? []"
178
+ [disabledDays]="props.disabledDays ?? []"
179
+ [showTime]="!!props.showTime"
180
+ [responsiveOptions]="props.responsiveOptions ?? []"
181
+ [numberOfMonths]="props.numberOfMonths ?? 1"
182
+ [firstDayOfWeek]="props.firstDayOfWeek ?? 7"
183
+ [view]="props.view ?? 'date'"
184
+ [defaultDate]="props.defaultDate!"
185
+ (onInput)="props.onInput?.(field()!, $event)"
186
+ (onFocus)="props.onFocus?.(field()!, $event)"
187
+ (onBlur)="props.onBlur?.(field()!, $event)"
188
+ (onClose)="props.onClose?.(field()!, $event)"
189
+ (onSelect)="props.onSelect?.(field()!, $event)"
190
+ (onClear)="props.onClear?.(field()!, $event)"
191
+ (onTodayClick)="props.onTodayClick?.(field()!, $event)"
192
+ (onClearClick)="props.onClearClick?.(field()!, $event)"
193
+ (onMonthChange)="props.onMonthChange?.(field()!, $event)"
194
+ (onYearChange)="props.onYearChange?.(field()!, $event)"
195
+ (onClickOutside)="props.onClickOutside?.(field()!, $event)"
196
+ (onShow)="props.onShow?.(field()!, $event)"
197
+ [class]="props.class"
198
+ [formControl]="field()!.fieldControl!">
199
+ <ng-template #footer>
200
+ @if (!!props.showTime && !props.timeOnly) {
201
+ <div class="flex flex-row-reverse text-[12px] text-[var(--p-primary-color)] cursor-pointer">
202
+ <i
203
+ class="pi pi-replay"
204
+ (click)="resetTime($event)"></i>
205
+ </div>
206
+ } @else if (!!props.footerTemplate) {
207
+ <!--todo 未来加入自定义区间选项-->
208
+ <ng-container *ngTemplateOutlet="props.footerTemplate"></ng-container>
209
+ }
210
+ </ng-template>
211
211
  </p-datepicker>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "component", type: DatePicker, selector: "p-datePicker, p-datepicker, p-date-picker", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "fluid", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "size", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
212
212
  }
213
213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DatePickerComponent, decorators: [{
214
214
  type: Component,
215
- args: [{ selector: 'form-datepicker', standalone: true, providers: [DatePipe], imports: [DatePicker, ReactiveFormsModule, NgTemplateOutlet], template: `<p-datepicker
216
- [id]="field()?.uuid"
217
- [inputId]="field()?.uuid"
218
- [variant]="props.variant ?? 'outlined'"
219
- [fluid]="props.fluid"
220
- [size]="props.size"
221
- [styleClass]="props.styleClass"
222
- [inputStyle]="props.inputStyle"
223
- [inputStyleClass]="props.inputStyleClass"
224
- [name]="props.name"
225
- [placeholder]="props.placeholder"
226
- [ariaLabelledBy]="props.ariaLabelledBy"
227
- [ariaLabel]="props.ariaLabel"
228
- [iconAriaLabel]="props.iconAriaLabel"
229
- [dateFormat]="props.dateFormat ?? 'yy-mm-dd'"
230
- [multipleSeparator]="props.multipleSeparator ?? ','"
231
- [rangeSeparator]="props.rangeSeparator ?? '-'"
232
- [inline]="props.inline"
233
- [showOtherMonths]="props.showOtherMonths ?? true"
234
- [selectOtherMonths]="props.selectOtherMonths"
235
- [showIcon]="props.showIcon"
236
- [fluid]="props.fluid ?? true"
237
- [icon]="props.icon"
238
- [appendTo]="props.appendTo ?? 'body'"
239
- [readonlyInput]="props.readonlyInput"
240
- [shortYearCutoff]="props.shortYearCutoff"
241
- [hourFormat]="props.hourFormat ?? '24'"
242
- [timeOnly]="props.timeOnly"
243
- [stepHour]="props.stepHour ?? 1"
244
- [stepMinute]="props.stepMinute ?? 1"
245
- [stepSecond]="props.stepSecond ?? 1"
246
- [showSeconds]="props.showSeconds ?? !!props.showTime"
247
- [showOnFocus]="props.showOnFocus ?? true"
248
- [showWeek]="props.showWeek"
249
- [startWeekFromFirstDayOfYear]="!!props.startWeekFromFirstDayOfYear"
250
- [showClear]="props.showClear"
251
- [dataType]="props.dataType ?? 'string'"
252
- [selectionMode]="props.selectionMode ?? 'single'"
253
- [maxDateCount]="props.maxDateCount"
254
- [showButtonBar]="props.showButtonBar"
255
- [todayButtonStyleClass]="props.todayButtonStyleClass"
256
- [clearButtonStyleClass]="props.clearButtonStyleClass"
257
- [autofocus]="props.autofocus"
258
- [autoZIndex]="props.autoZIndex ?? true"
259
- [baseZIndex]="props.baseZIndex ?? 0"
260
- [panelStyleClass]="props.panelStyleClass"
261
- [panelStyle]="props.panelStyle"
262
- [keepInvalid]="props.keepInvalid"
263
- [hideOnDateTimeSelect]="props.hideOnDateTimeSelect ?? true"
264
- [touchUI]="props.touchUI"
265
- [timeSeparator]="props.timeSeparator ?? ':'"
266
- [focusTrap]="props.focusTrap ?? true"
267
- [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
268
- [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
269
- [tabindex]="props.tabindex"
270
- [minDate]="props.minDate"
271
- [maxDate]="props.maxDate"
272
- [disabledDates]="props.disabledDates ?? []"
273
- [disabledDays]="props.disabledDays ?? []"
274
- [showTime]="!!props.showTime"
275
- [responsiveOptions]="props.responsiveOptions ?? []"
276
- [numberOfMonths]="props.numberOfMonths ?? 1"
277
- [firstDayOfWeek]="props.firstDayOfWeek ?? 7"
278
- [view]="props.view ?? 'date'"
279
- [defaultDate]="props.defaultDate!"
280
- (onInput)="props.onInput?.(field()!, $event)"
281
- (onFocus)="props.onFocus?.(field()!, $event)"
282
- (onBlur)="props.onBlur?.(field()!, $event)"
283
- (onClose)="props.onClose?.(field()!, $event)"
284
- (onSelect)="props.onSelect?.(field()!, $event)"
285
- (onClear)="props.onClear?.(field()!, $event)"
286
- (onTodayClick)="props.onTodayClick?.(field()!, $event)"
287
- (onClearClick)="props.onClearClick?.(field()!, $event)"
288
- (onMonthChange)="props.onMonthChange?.(field()!, $event)"
289
- (onYearChange)="props.onYearChange?.(field()!, $event)"
290
- (onClickOutside)="props.onClickOutside?.(field()!, $event)"
291
- (onShow)="props.onShow?.(field()!, $event)"
292
- [class]="props.class"
293
- [formControl]="field()!.fieldControl!">
294
- <ng-template #footer>
295
- @if (!!props.showTime && !props.timeOnly) {
296
- <div class="flex flex-row-reverse text-[12px] text-[var(--p-primary-color)] cursor-pointer">
297
- <i
298
- class="pi pi-replay"
299
- (click)="resetTime($event)"></i>
300
- </div>
301
- } @else if (!!props.footerTemplate) {
302
- <!--todo 未来加入自定义区间选项-->
303
- <ng-container *ngTemplateOutlet="props.footerTemplate"></ng-container>
304
- }
305
- </ng-template>
215
+ args: [{ selector: 'form-datepicker', standalone: true, providers: [DatePipe], imports: [DatePicker, ReactiveFormsModule, NgTemplateOutlet], template: `<p-datepicker
216
+ [id]="field()?.uuid"
217
+ [inputId]="field()?.uuid"
218
+ [variant]="props.variant ?? 'outlined'"
219
+ [fluid]="props.fluid"
220
+ [size]="props.size"
221
+ [styleClass]="props.styleClass"
222
+ [inputStyle]="props.inputStyle"
223
+ [inputStyleClass]="props.inputStyleClass"
224
+ [name]="props.name"
225
+ [placeholder]="props.placeholder"
226
+ [ariaLabelledBy]="props.ariaLabelledBy"
227
+ [ariaLabel]="props.ariaLabel"
228
+ [iconAriaLabel]="props.iconAriaLabel"
229
+ [dateFormat]="props.dateFormat ?? 'yy-mm-dd'"
230
+ [multipleSeparator]="props.multipleSeparator ?? ','"
231
+ [rangeSeparator]="props.rangeSeparator ?? '-'"
232
+ [inline]="props.inline"
233
+ [showOtherMonths]="props.showOtherMonths ?? true"
234
+ [selectOtherMonths]="props.selectOtherMonths"
235
+ [showIcon]="props.showIcon"
236
+ [fluid]="props.fluid ?? true"
237
+ [icon]="props.icon"
238
+ [appendTo]="props.appendTo ?? 'body'"
239
+ [readonlyInput]="props.readonlyInput"
240
+ [shortYearCutoff]="props.shortYearCutoff"
241
+ [hourFormat]="props.hourFormat ?? '24'"
242
+ [timeOnly]="props.timeOnly"
243
+ [stepHour]="props.stepHour ?? 1"
244
+ [stepMinute]="props.stepMinute ?? 1"
245
+ [stepSecond]="props.stepSecond ?? 1"
246
+ [showSeconds]="props.showSeconds ?? !!props.showTime"
247
+ [showOnFocus]="props.showOnFocus ?? true"
248
+ [showWeek]="props.showWeek"
249
+ [startWeekFromFirstDayOfYear]="!!props.startWeekFromFirstDayOfYear"
250
+ [showClear]="props.showClear"
251
+ [dataType]="props.dataType ?? 'string'"
252
+ [selectionMode]="props.selectionMode ?? 'single'"
253
+ [maxDateCount]="props.maxDateCount"
254
+ [showButtonBar]="props.showButtonBar"
255
+ [todayButtonStyleClass]="props.todayButtonStyleClass"
256
+ [clearButtonStyleClass]="props.clearButtonStyleClass"
257
+ [autofocus]="props.autofocus"
258
+ [autoZIndex]="props.autoZIndex ?? true"
259
+ [baseZIndex]="props.baseZIndex ?? 0"
260
+ [panelStyleClass]="props.panelStyleClass"
261
+ [panelStyle]="props.panelStyle"
262
+ [keepInvalid]="props.keepInvalid"
263
+ [hideOnDateTimeSelect]="props.hideOnDateTimeSelect ?? true"
264
+ [touchUI]="props.touchUI"
265
+ [timeSeparator]="props.timeSeparator ?? ':'"
266
+ [focusTrap]="props.focusTrap ?? true"
267
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
268
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
269
+ [tabindex]="props.tabindex"
270
+ [minDate]="props.minDate"
271
+ [maxDate]="props.maxDate"
272
+ [disabledDates]="props.disabledDates ?? []"
273
+ [disabledDays]="props.disabledDays ?? []"
274
+ [showTime]="!!props.showTime"
275
+ [responsiveOptions]="props.responsiveOptions ?? []"
276
+ [numberOfMonths]="props.numberOfMonths ?? 1"
277
+ [firstDayOfWeek]="props.firstDayOfWeek ?? 7"
278
+ [view]="props.view ?? 'date'"
279
+ [defaultDate]="props.defaultDate!"
280
+ (onInput)="props.onInput?.(field()!, $event)"
281
+ (onFocus)="props.onFocus?.(field()!, $event)"
282
+ (onBlur)="props.onBlur?.(field()!, $event)"
283
+ (onClose)="props.onClose?.(field()!, $event)"
284
+ (onSelect)="props.onSelect?.(field()!, $event)"
285
+ (onClear)="props.onClear?.(field()!, $event)"
286
+ (onTodayClick)="props.onTodayClick?.(field()!, $event)"
287
+ (onClearClick)="props.onClearClick?.(field()!, $event)"
288
+ (onMonthChange)="props.onMonthChange?.(field()!, $event)"
289
+ (onYearChange)="props.onYearChange?.(field()!, $event)"
290
+ (onClickOutside)="props.onClickOutside?.(field()!, $event)"
291
+ (onShow)="props.onShow?.(field()!, $event)"
292
+ [class]="props.class"
293
+ [formControl]="field()!.fieldControl!">
294
+ <ng-template #footer>
295
+ @if (!!props.showTime && !props.timeOnly) {
296
+ <div class="flex flex-row-reverse text-[12px] text-[var(--p-primary-color)] cursor-pointer">
297
+ <i
298
+ class="pi pi-replay"
299
+ (click)="resetTime($event)"></i>
300
+ </div>
301
+ } @else if (!!props.footerTemplate) {
302
+ <!--todo 未来加入自定义区间选项-->
303
+ <ng-container *ngTemplateOutlet="props.footerTemplate"></ng-container>
304
+ }
305
+ </ng-template>
306
306
  </p-datepicker>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0 .25rem;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-invalid.ng-dirty>.p-datepicker .p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
307
307
  }], ctorParameters: () => [{ type: i1.ActionService }, { type: i0.Renderer2 }, { type: i2.DatePipe }], propDecorators: { datePicker: [{
308
308
  type: ViewChild,
@@ -311,4 +311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
311
311
  type: ViewChild,
312
312
  args: [DatePicker, { read: ElementRef, static: false }]
313
313
  }] } });
314
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9kYXRlcGlja2VyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBMks3RCxNQUFNLE9BQU8sbUJBQW1CO0lBTS9CLFlBQ1MsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOM0IsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBTzNCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxlQUFnQixDQUFDO2dCQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQ0wsR0FBRyxFQUFFO1lBQ0osTUFB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QUFFLEtBQUssRUFBRTtnQkFDb0IsYUFBYTtzQkFBeEUsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRlUGlja2VyIH0gZnJvbSAncHJpbWVuZy9kYXRlcGlja2VyJztcclxuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XHJcbmltcG9ydCB7IEFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FjdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRlUGlja2VyUHJvcHMgZXh0ZW5kcyBGaWVsZFByb3BzIHtcclxuXHRmbHVpZD86IGJvb2xlYW47XHJcblx0aWNvbkFyaWFMYWJlbD86IHN0cmluZztcclxuXHRkYXRlRm9ybWF0Pzogc3RyaW5nO1xyXG5cdGRhdGVQaXBlRm9ybWF0Pzogc3RyaW5nO1xyXG5cdG11bHRpcGxlU2VwYXJhdG9yPzogc3RyaW5nO1xyXG5cdHJhbmdlU2VwYXJhdG9yPzogc3RyaW5nO1xyXG5cdGlubGluZT86IGJvb2xlYW47XHJcblx0c2hvd090aGVyTW9udGhzPzogYm9vbGVhbjtcclxuXHRzZWxlY3RPdGhlck1vbnRocz86IGJvb2xlYW47XHJcblx0c2hvd0ljb24/OiBib29sZWFuO1xyXG5cdGljb24/OiBzdHJpbmc7XHJcblx0YXBwZW5kVG8/OiBhbnk7XHJcblx0cmVhZG9ubHlJbnB1dD86IGJvb2xlYW47XHJcblx0c2hvcnRZZWFyQ3V0b2ZmPzogYW55O1xyXG5cdGhvdXJGb3JtYXQ/OiBzdHJpbmc7XHJcblx0dGltZU9ubHk/OiBib29sZWFuO1xyXG5cdHN0ZXBIb3VyPzogbnVtYmVyO1xyXG5cdHN0ZXBNaW51dGU/OiBudW1iZXI7XHJcblx0c3RlcFNlY29uZD86IG51bWJlcjtcclxuXHRzaG93T25Gb2N1cz86IGJvb2xlYW47XHJcblx0c2hvd1dlZWs/OiBib29sZWFuO1xyXG5cdHN0YXJ0V2Vla0Zyb21GaXJzdERheU9mWWVhcj86IGJvb2xlYW47XHJcblx0c2hvd0NsZWFyPzogYm9vbGVhbjtcclxuXHRkYXRhVHlwZT86IHN0cmluZztcclxuXHRzZWxlY3Rpb25Nb2RlPzogJ3JhbmdlJyB8ICdzaW5nbGUnIHwgJ211bHRpcGxlJztcclxuXHRtYXhEYXRlQ291bnQ/OiBudW1iZXI7XHJcblx0c2hvd0J1dHRvbkJhcj86IGJvb2xlYW47XHJcblx0dG9kYXlCdXR0b25TdHlsZUNsYXNzPzogc3RyaW5nO1xyXG5cdGNsZWFyQnV0dG9uU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRiYXNlWkluZGV4PzogbnVtYmVyO1xyXG5cdHBhbmVsU3R5bGVDbGFzcz86IHN0cmluZztcclxuXHRwYW5lbFN0eWxlPzogYW55O1xyXG5cdGtlZXBJbnZhbGlkPzogYm9vbGVhbjtcclxuXHRoaWRlT25EYXRlVGltZVNlbGVjdD86IGJvb2xlYW47XHJcblx0dG91Y2hVST86IGJvb2xlYW47XHJcblx0dGltZVNlcGFyYXRvcj86IHN0cmluZztcclxuXHRmb2N1c1RyYXA/OiBib29sZWFuO1xyXG5cdHNob3dUcmFuc2l0aW9uT3B0aW9ucz86IHN0cmluZztcclxuXHRoaWRlVHJhbnNpdGlvbk9wdGlvbnM/OiBzdHJpbmc7XHJcblx0bWluRGF0ZT86IERhdGU7XHJcblx0bWF4RGF0ZT86IERhdGU7XHJcblx0ZGlzYWJsZWREYXRlcz86IERhdGVbXTtcclxuXHRkaXNhYmxlZERheXM/OiBudW1iZXJbXTtcclxuXHRzaG93VGltZT86IGJvb2xlYW47XHJcblx0c2hvd1NlY29uZHM/OiBib29sZWFuO1xyXG5cdHJlc3BvbnNpdmVPcHRpb25zPzogYW55W107XHJcblx0bnVtYmVyT2ZNb250aHM/OiBudW1iZXI7XHJcblx0Zmlyc3REYXlPZldlZWs/OiBudW1iZXI7XHJcblx0dmlldz86IGFueTtcclxuXHRkZWZhdWx0RGF0ZT86IERhdGU7XHJcblx0dGFiaW5kZXg/OiBudW1iZXI7XHJcblx0YXV0b1pJbmRleD86IGJvb2xlYW47XHJcblxyXG5cdG9uSG9va0NoYW5nZT86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uSW5wdXQ/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkZvY3VzPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25CbHVyPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25DbG9zZT86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uVG9kYXlDbGljaz86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uQ2xlYXJDbGljaz86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uTW9udGhDaGFuZ2U/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblllYXJDaGFuZ2U/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkNsaWNrT3V0c2lkZT86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uU2hvdz86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdmb3JtLWRhdGVwaWNrZXInLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0cHJvdmlkZXJzOiBbRGF0ZVBpcGVdLFxyXG5cdGltcG9ydHM6IFtEYXRlUGlja2VyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcclxuXHR0ZW1wbGF0ZTogYDxwLWRhdGVwaWNrZXJcclxuXHRcdFtpZF09XCJmaWVsZCgpPy51dWlkXCJcclxuXHRcdFtpbnB1dElkXT1cImZpZWxkKCk/LnV1aWRcIlxyXG5cdFx0W3ZhcmlhbnRdPVwicHJvcHMudmFyaWFudCA/PyAnb3V0bGluZWQnXCJcclxuXHRcdFtmbHVpZF09XCJwcm9wcy5mbHVpZFwiXHJcblx0XHRbc2l6ZV09XCJwcm9wcy5zaXplXCJcclxuXHRcdFtzdHlsZUNsYXNzXT1cInByb3BzLnN0eWxlQ2xhc3NcIlxyXG5cdFx0W2lucHV0U3R5bGVdPVwicHJvcHMuaW5wdXRTdHlsZVwiXHJcblx0XHRbaW5wdXRTdHlsZUNsYXNzXT1cInByb3BzLmlucHV0U3R5bGVDbGFzc1wiXHJcblx0XHRbbmFtZV09XCJwcm9wcy5uYW1lXCJcclxuXHRcdFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlclwiXHJcblx0XHRbYXJpYUxhYmVsbGVkQnldPVwicHJvcHMuYXJpYUxhYmVsbGVkQnlcIlxyXG5cdFx0W2FyaWFMYWJlbF09XCJwcm9wcy5hcmlhTGFiZWxcIlxyXG5cdFx0W2ljb25BcmlhTGFiZWxdPVwicHJvcHMuaWNvbkFyaWFMYWJlbFwiXHJcblx0XHRbZGF0ZUZvcm1hdF09XCJwcm9wcy5kYXRlRm9ybWF0ID8/ICd5eS1tbS1kZCdcIlxyXG5cdFx0W211bHRpcGxlU2VwYXJhdG9yXT1cInByb3BzLm11bHRpcGxlU2VwYXJhdG9yID8/ICcsJ1wiXHJcblx0XHRbcmFuZ2VTZXBhcmF0b3JdPVwicHJvcHMucmFuZ2VTZXBhcmF0b3IgPz8gJy0nXCJcclxuXHRcdFtpbmxpbmVdPVwicHJvcHMuaW5saW5lXCJcclxuXHRcdFtzaG93T3RoZXJNb250aHNdPVwicHJvcHMuc2hvd090aGVyTW9udGhzID8/IHRydWVcIlxyXG5cdFx0W3NlbGVjdE90aGVyTW9udGhzXT1cInByb3BzLnNlbGVjdE90aGVyTW9udGhzXCJcclxuXHRcdFtzaG93SWNvbl09XCJwcm9wcy5zaG93SWNvblwiXHJcblx0XHRbZmx1aWRdPVwicHJvcHMuZmx1aWQgPz8gdHJ1ZVwiXHJcblx0XHRbaWNvbl09XCJwcm9wcy5pY29uXCJcclxuXHRcdFthcHBlbmRUb109XCJwcm9wcy5hcHBlbmRUbyA/PyAnYm9keSdcIlxyXG5cdFx0W3JlYWRvbmx5SW5wdXRdPVwicHJvcHMucmVhZG9ubHlJbnB1dFwiXHJcblx0XHRbc2hvcnRZZWFyQ3V0b2ZmXT1cInByb3BzLnNob3J0WWVhckN1dG9mZlwiXHJcblx0XHRbaG91ckZvcm1hdF09XCJwcm9wcy5ob3VyRm9ybWF0ID8/ICcyNCdcIlxyXG5cdFx0W3RpbWVPbmx5XT1cInByb3BzLnRpbWVPbmx5XCJcclxuXHRcdFtzdGVwSG91cl09XCJwcm9wcy5zdGVwSG91ciA/PyAxXCJcclxuXHRcdFtzdGVwTWludXRlXT1cInByb3BzLnN0ZXBNaW51dGUgPz8gMVwiXHJcblx0XHRbc3RlcFNlY29uZF09XCJwcm9wcy5zdGVwU2Vjb25kID8/IDFcIlxyXG5cdFx0W3Nob3dTZWNvbmRzXT1cInByb3BzLnNob3dTZWNvbmRzID8/ICEhcHJvcHMuc2hvd1RpbWVcIlxyXG5cdFx0W3Nob3dPbkZvY3VzXT1cInByb3BzLnNob3dPbkZvY3VzID8/IHRydWVcIlxyXG5cdFx0W3Nob3dXZWVrXT1cInByb3BzLnNob3dXZWVrXCJcclxuXHRcdFtzdGFydFdlZWtGcm9tRmlyc3REYXlPZlllYXJdPVwiISFwcm9wcy5zdGFydFdlZWtGcm9tRmlyc3REYXlPZlllYXJcIlxyXG5cdFx0W3Nob3dDbGVhcl09XCJwcm9wcy5zaG93Q2xlYXJcIlxyXG5cdFx0W2RhdGFUeXBlXT1cInByb3BzLmRhdGFUeXBlID8/ICdzdHJpbmcnXCJcclxuXHRcdFtzZWxlY3Rpb25Nb2RlXT1cInByb3BzLnNlbGVjdGlvbk1vZGUgPz8gJ3NpbmdsZSdcIlxyXG5cdFx0W21heERhdGVDb3VudF09XCJwcm9wcy5tYXhEYXRlQ291bnRcIlxyXG5cdFx0W3Nob3dCdXR0b25CYXJdPVwicHJvcHMuc2hvd0J1dHRvbkJhclwiXHJcblx0XHRbdG9kYXlCdXR0b25TdHlsZUNsYXNzXT1cInByb3BzLnRvZGF5QnV0dG9uU3R5bGVDbGFzc1wiXHJcblx0XHRbY2xlYXJCdXR0b25TdHlsZUNsYXNzXT1cInByb3BzLmNsZWFyQnV0dG9uU3R5bGVDbGFzc1wiXHJcblx0XHRbYXV0b2ZvY3VzXT1cInByb3BzLmF1dG9mb2N1c1wiXHJcblx0XHRbYXV0b1pJbmRleF09XCJwcm9wcy5hdXRvWkluZGV4ID8/IHRydWVcIlxyXG5cdFx0W2Jhc2VaSW5kZXhdPVwicHJvcHMuYmFzZVpJbmRleCA/PyAwXCJcclxuXHRcdFtwYW5lbFN0eWxlQ2xhc3NdPVwicHJvcHMucGFuZWxTdHlsZUNsYXNzXCJcclxuXHRcdFtwYW5lbFN0eWxlXT1cInByb3BzLnBhbmVsU3R5bGVcIlxyXG5cdFx0W2tlZXBJbnZhbGlkXT1cInByb3BzLmtlZXBJbnZhbGlkXCJcclxuXHRcdFtoaWRlT25EYXRlVGltZVNlbGVjdF09XCJwcm9wcy5oaWRlT25EYXRlVGltZVNlbGVjdCA/PyB0cnVlXCJcclxuXHRcdFt0b3VjaFVJXT1cInByb3BzLnRvdWNoVUlcIlxyXG5cdFx0W3RpbWVTZXBhcmF0b3JdPVwicHJvcHMudGltZVNlcGFyYXRvciA/PyAnOidcIlxyXG5cdFx0W2ZvY3VzVHJhcF09XCJwcm9wcy5mb2N1c1RyYXAgPz8gdHJ1ZVwiXHJcblx0XHRbc2hvd1RyYW5zaXRpb25PcHRpb25zXT1cInByb3BzLnNob3dUcmFuc2l0aW9uT3B0aW9ucyA/PyAnLjEycyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSdcIlxyXG5cdFx0W2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJwcm9wcy5oaWRlVHJhbnNpdGlvbk9wdGlvbnMgPz8gJy4xcyBsaW5lYXInXCJcclxuXHRcdFt0YWJpbmRleF09XCJwcm9wcy50YWJpbmRleFwiXHJcblx0XHRbbWluRGF0ZV09XCJwcm9wcy5taW5EYXRlXCJcclxuXHRcdFttYXhEYXRlXT1cInByb3BzLm1heERhdGVcIlxyXG5cdFx0W2Rpc2FibGVkRGF0ZXNdPVwicHJvcHMuZGlzYWJsZWREYXRlcyA/PyBbXVwiXHJcblx0XHRbZGlzYWJsZWREYXlzXT1cInByb3BzLmRpc2FibGVkRGF5cyA/PyBbXVwiXHJcblx0XHRbc2hvd1RpbWVdPVwiISFwcm9wcy5zaG93VGltZVwiXHJcblx0XHRbcmVzcG9uc2l2ZU9wdGlvbnNdPVwicHJvcHMucmVzcG9uc2l2ZU9wdGlvbnMgPz8gW11cIlxyXG5cdFx0W251bWJlck9mTW9udGhzXT1cInByb3BzLm51bWJlck9mTW9udGhzID8/IDFcIlxyXG5cdFx0W2ZpcnN0RGF5T2ZXZWVrXT1cInByb3BzLmZpcnN0RGF5T2ZXZWVrID8/IDdcIlxyXG5cdFx0W3ZpZXddPVwicHJvcHMudmlldyA/PyAnZGF0ZSdcIlxyXG5cdFx0W2RlZmF1bHREYXRlXT1cInByb3BzLmRlZmF1bHREYXRlIVwiXHJcblx0XHQob25JbnB1dCk9XCJwcm9wcy5vbklucHV0Py4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uRm9jdXMpPVwicHJvcHMub25Gb2N1cz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkJsdXIpPVwicHJvcHMub25CbHVyPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uQ2xvc2UpPVwicHJvcHMub25DbG9zZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblNlbGVjdCk9XCJwcm9wcy5vblNlbGVjdD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkNsZWFyKT1cInByb3BzLm9uQ2xlYXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25Ub2RheUNsaWNrKT1cInByb3BzLm9uVG9kYXlDbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkNsZWFyQ2xpY2spPVwicHJvcHMub25DbGVhckNsaWNrPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uTW9udGhDaGFuZ2UpPVwicHJvcHMub25Nb250aENoYW5nZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblllYXJDaGFuZ2UpPVwicHJvcHMub25ZZWFyQ2hhbmdlPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uQ2xpY2tPdXRzaWRlKT1cInByb3BzLm9uQ2xpY2tPdXRzaWRlPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2hvdyk9XCJwcm9wcy5vblNob3c/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHRbY2xhc3NdPVwicHJvcHMuY2xhc3NcIlxyXG5cdFx0W2Zvcm1Db250cm9sXT1cImZpZWxkKCkhLmZpZWxkQ29udHJvbCFcIj5cclxuXHRcdDxuZy10ZW1wbGF0ZSAjZm9vdGVyPlxyXG5cdFx0XHRAaWYgKCEhcHJvcHMuc2hvd1RpbWUgJiYgIXByb3BzLnRpbWVPbmx5KSB7XHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3ctcmV2ZXJzZSB0ZXh0LVsxMnB4XSB0ZXh0LVt2YXIoLS1wLXByaW1hcnktY29sb3IpXSBjdXJzb3ItcG9pbnRlclwiPlxyXG5cdFx0XHRcdFx0PGlcclxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1yZXBsYXlcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwicmVzZXRUaW1lKCRldmVudClcIj48L2k+XHJcblx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdH0gQGVsc2UgaWYgKCEhcHJvcHMuZm9vdGVyVGVtcGxhdGUpIHtcclxuXHRcdFx0XHQ8IS0tdG9kbyDmnKrmnaXliqDlhaXoh6rlrprkuYnljLrpl7TpgInpobktLT5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJvcHMuZm9vdGVyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuXHRcdFx0fVxyXG5cdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHQ8L3AtZGF0ZXBpY2tlcj5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoRGF0ZVBpY2tlciwgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyO1xyXG5cdEBWaWV3Q2hpbGQoRGF0ZVBpY2tlciwgeyByZWFkOiBFbGVtZW50UmVmLCBzdGF0aWM6IGZhbHNlIH0pIGRhdGVQaWNrZXJSZWYhOiBFbGVtZW50UmVmO1xyXG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xyXG5cdHByb3BzOiBEYXRlUGlja2VyUHJvcHMgPSB7fTtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHRcdHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG5cdCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmRhdGVQaWNrZXJQcm9wcyE7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVIb29rQ2hhbmdlKCk7XHJcblx0XHRcdFx0dGhpcy5oYW5kbGVEaXNhYmxlZCgpO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlRGF0ZVBpcGVGb3JtYXQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoXHJcblx0XHRcdCgpID0+IHtcclxuXHRcdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xyXG5cdFx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmRhdGVQaWNrZXJSZWYubmF0aXZlRWxlbWVudCwgJ25nLWhvdmVyZWQnKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XHJcblx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZGF0ZVBpY2tlclJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0XHR0aGlzLmRhdGVQaWNrZXIub3ZlcmxheVZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5kYXRlUGlja2VyLm9uU2hvdy5lbWl0KGZhbHNlKTtcclxuXHRcdFx0XHRcdHRoaXMuZGF0ZVBpY2tlci5jZC5tYXJrRm9yQ2hlY2soKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0sXHJcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG5cdGhhbmRsZUhvb2tDaGFuZ2UoKSB7XHJcblx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uaG9va0NoYW5nZS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcblx0XHRcdGlmICghdmFsdWUpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVEaXNhYmxlZCgpIHtcclxuXHRcdHNldFRpbWVvdXQoKCkgPT4ge1xyXG5cdFx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcclxuXHRcdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0cmVzZXRUaW1lKGV2ZW50OiBhbnkpIHtcclxuXHRcdGlmICghdGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLnZhbHVlKSByZXR1cm47XHJcblx0XHRjb25zdCBjdXJyZW50RGF0ZSA9IHRoaXMuZm9ybWF0VG9NaWRuaWdodCh0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEudmFsdWUpO1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKGN1cnJlbnREYXRlLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcclxuXHR9XHJcblxyXG5cdGZvcm1hdFRvTWlkbmlnaHQoZGF0ZVN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuXHRcdGlmICh0aGlzLnByb3BzPy5zaG93U2Vjb25kcyA9PT0gZmFsc2UpIHtcclxuXHRcdFx0aWYgKC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gXFxkezJ9OlxcZHsyfSQvLnRlc3QoZGF0ZVN0cikpIHtcclxuXHRcdFx0XHRyZXR1cm4gZGF0ZVN0ci5zcGxpdCgnICcpWzBdICsgJyAwMDowMCc7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgZm9ybWF0LiBFeHBlY3RlZCB5eXl5LU1NLWRkIGhoOm1tJyk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRpZiAoL15cXGR7NH0tXFxkezJ9LVxcZHsyfSBcXGR7Mn06XFxkezJ9OlxcZHsyfSQvLnRlc3QoZGF0ZVN0cikpIHtcclxuXHRcdFx0XHRyZXR1cm4gZGF0ZVN0ci5zcGxpdCgnICcpWzBdICsgJyAwMDowMDowMCc7XHJcblx0XHRcdH1cclxuXHRcdFx0dGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGUgZm9ybWF0LiBFeHBlY3RlZCB5eXl5LU1NLWRkIGhoOm1tOnNzJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRoYW5kbGVEYXRlUGlwZUZvcm1hdCgpIHtcclxuXHRcdHRoaXMucHJvcHMuZGF0ZVBpcGVGb3JtYXQgPSB0aGlzLmNvbnZlcnRQcmltZU5nVG9EYXRlUGlwZUZvcm1hdCh0aGlzLnByb3BzLmRhdGVGb3JtYXQpO1xyXG5cdFx0aWYgKCF0aGlzLnByb3BzLnNob3dUaW1lKSByZXR1cm47XHJcblx0XHRjb25zdCB0aW1lU2VwYXJhdG9yID0gdGhpcy5wcm9wcy50aW1lU2VwYXJhdG9yID8/ICc6JztcclxuXHRcdGNvbnN0IHRpbWVGb3JtYXQgPSBgSEgke3RpbWVTZXBhcmF0b3J9bW0ke3RpbWVTZXBhcmF0b3J9c3NgO1xyXG5cdFx0dGhpcy5wcm9wcy5kYXRlUGlwZUZvcm1hdCArPSBgICR7dGltZUZvcm1hdH1gO1xyXG5cdH1cclxuXHJcblx0Y29udmVydFByaW1lTmdUb0RhdGVQaXBlRm9ybWF0KHByaW1lTmdGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XHJcblx0XHRpZiAoIXByaW1lTmdGb3JtYXQpIHJldHVybiAneXl5eS1NTS1kZCc7XHJcblx0XHRjb25zdCBmb3JtYXRNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcblx0XHRcdGQ6ICdkJyxcclxuXHRcdFx0ZGQ6ICdkZCcsXHJcblx0XHRcdG06ICdNJyxcclxuXHRcdFx0bW06ICdNTScsXHJcblx0XHRcdE06ICdNTU0nLFxyXG5cdFx0XHRNTTogJ01NTU0nLFxyXG5cdFx0XHR5OiAneXknLFxyXG5cdFx0XHR5eTogJ3l5eXknLFxyXG5cdFx0fTtcclxuXHRcdGNvbnN0IGNvbW1vbkZvcm1hdHM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcblx0XHRcdCdtbS9kZC95eSc6ICdNTS9kZC95eXl5JyxcclxuXHRcdFx0J2RkL21tL3l5JzogJ2RkL01NL3l5eXknLFxyXG5cdFx0XHQneXktbW0tZGQnOiAneXl5eS1NTS1kZCcsXHJcblx0XHRcdCdkZC1tbS15eSc6ICdkZC1NTS15eXl5JyxcclxuXHRcdFx0J21tLWRkLXl5JzogJ01NLWRkLXl5eXknLFxyXG5cdFx0fTtcclxuXHRcdGlmIChjb21tb25Gb3JtYXRzW3ByaW1lTmdGb3JtYXRdKSB7XHJcblx0XHRcdHJldHVybiBjb21tb25Gb3JtYXRzW3ByaW1lTmdGb3JtYXRdO1xyXG5cdFx0fVxyXG5cdFx0Ly8g5pu/5o2i6L2s5LmJ5a2X56ymXHJcblx0XHRsZXQgcmVzdWx0ID0gcHJpbWVOZ0Zvcm1hdC5yZXBsYWNlKC8nKFteJ10qKScvZywgKG1hdGNoLCBwMSkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gYCcke3AxfSdgO1xyXG5cdFx0fSk7XHJcblx0XHQvLyDmm7/mjaLmoLzlvI/moIforrBcclxuXHRcdHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKC9bYS16QS1aXSsvZywgKG1hdGNoKSA9PiB7XHJcblx0XHRcdHJldHVybiBmb3JtYXRNYXBbbWF0Y2hdIHx8IG1hdGNoO1xyXG5cdFx0fSk7XHJcblx0XHRyZXR1cm4gcmVzdWx0O1xyXG5cdH1cclxufVxyXG4iXX0=
314
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLWVsZW1lbnQtdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9kYXRlcGlja2VyLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQTBCLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBMks3RCxNQUFNLE9BQU8sbUJBQW1CO0lBTS9CLFlBQ1MsTUFBcUIsRUFDckIsUUFBbUIsRUFDbkIsUUFBa0I7UUFGbEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOM0IsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBTzNCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxlQUFnQixDQUFDO2dCQUM1QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQ0wsR0FBRyxFQUFFO1lBQ0osTUFB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QUFFLEtBQUssRUFBRTtnQkFDb0IsYUFBYTtzQkFBeEUsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBlZmZlY3QsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVQaWNrZXIgfSBmcm9tICdwcmltZW5nL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgRm9ybUZpZWxkLCBGaWVsZFByb3BzLCBBdHRyaWJ1dGVFdmVudCB9IGZyb20gJy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBEYXRlUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVBpY2tlclByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XG5cdGZsdWlkPzogYm9vbGVhbjtcblx0aWNvbkFyaWFMYWJlbD86IHN0cmluZztcblx0ZGF0ZUZvcm1hdD86IHN0cmluZztcblx0ZGF0ZVBpcGVGb3JtYXQ/OiBzdHJpbmc7XG5cdG11bHRpcGxlU2VwYXJhdG9yPzogc3RyaW5nO1xuXHRyYW5nZVNlcGFyYXRvcj86IHN0cmluZztcblx0aW5saW5lPzogYm9vbGVhbjtcblx0c2hvd090aGVyTW9udGhzPzogYm9vbGVhbjtcblx0c2VsZWN0T3RoZXJNb250aHM/OiBib29sZWFuO1xuXHRzaG93SWNvbj86IGJvb2xlYW47XG5cdGljb24/OiBzdHJpbmc7XG5cdGFwcGVuZFRvPzogYW55O1xuXHRyZWFkb25seUlucHV0PzogYm9vbGVhbjtcblx0c2hvcnRZZWFyQ3V0b2ZmPzogYW55O1xuXHRob3VyRm9ybWF0Pzogc3RyaW5nO1xuXHR0aW1lT25seT86IGJvb2xlYW47XG5cdHN0ZXBIb3VyPzogbnVtYmVyO1xuXHRzdGVwTWludXRlPzogbnVtYmVyO1xuXHRzdGVwU2Vjb25kPzogbnVtYmVyO1xuXHRzaG93T25Gb2N1cz86IGJvb2xlYW47XG5cdHNob3dXZWVrPzogYm9vbGVhbjtcblx0c3RhcnRXZWVrRnJvbUZpcnN0RGF5T2ZZZWFyPzogYm9vbGVhbjtcblx0c2hvd0NsZWFyPzogYm9vbGVhbjtcblx0ZGF0YVR5cGU/OiBzdHJpbmc7XG5cdHNlbGVjdGlvbk1vZGU/OiAncmFuZ2UnIHwgJ3NpbmdsZScgfCAnbXVsdGlwbGUnO1xuXHRtYXhEYXRlQ291bnQ/OiBudW1iZXI7XG5cdHNob3dCdXR0b25CYXI/OiBib29sZWFuO1xuXHR0b2RheUJ1dHRvblN0eWxlQ2xhc3M/OiBzdHJpbmc7XG5cdGNsZWFyQnV0dG9uU3R5bGVDbGFzcz86IHN0cmluZztcblx0YmFzZVpJbmRleD86IG51bWJlcjtcblx0cGFuZWxTdHlsZUNsYXNzPzogc3RyaW5nO1xuXHRwYW5lbFN0eWxlPzogYW55O1xuXHRrZWVwSW52YWxpZD86IGJvb2xlYW47XG5cdGhpZGVPbkRhdGVUaW1lU2VsZWN0PzogYm9vbGVhbjtcblx0dG91Y2hVST86IGJvb2xlYW47XG5cdHRpbWVTZXBhcmF0b3I/OiBzdHJpbmc7XG5cdGZvY3VzVHJhcD86IGJvb2xlYW47XG5cdHNob3dUcmFuc2l0aW9uT3B0aW9ucz86IHN0cmluZztcblx0aGlkZVRyYW5zaXRpb25PcHRpb25zPzogc3RyaW5nO1xuXHRtaW5EYXRlPzogRGF0ZTtcblx0bWF4RGF0ZT86IERhdGU7XG5cdGRpc2FibGVkRGF0ZXM/OiBEYXRlW107XG5cdGRpc2FibGVkRGF5cz86IG51bWJlcltdO1xuXHRzaG93VGltZT86IGJvb2xlYW47XG5cdHNob3dTZWNvbmRzPzogYm9vbGVhbjtcblx0cmVzcG9uc2l2ZU9wdGlvbnM/OiBhbnlbXTtcblx0bnVtYmVyT2ZNb250aHM/OiBudW1iZXI7XG5cdGZpcnN0RGF5T2ZXZWVrPzogbnVtYmVyO1xuXHR2aWV3PzogYW55O1xuXHRkZWZhdWx0RGF0ZT86IERhdGU7XG5cdHRhYmluZGV4PzogbnVtYmVyO1xuXHRhdXRvWkluZGV4PzogYm9vbGVhbjtcblxuXHRvbkhvb2tDaGFuZ2U/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25JbnB1dD86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkZvY3VzPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQmx1cj86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsb3NlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uU2VsZWN0PzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xlYXI/OiBBdHRyaWJ1dGVFdmVudDtcblx0b25Ub2RheUNsaWNrPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uQ2xlYXJDbGljaz86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbk1vbnRoQ2hhbmdlPzogQXR0cmlidXRlRXZlbnQ7XG5cdG9uWWVhckNoYW5nZT86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvbkNsaWNrT3V0c2lkZT86IEF0dHJpYnV0ZUV2ZW50O1xuXHRvblNob3c/OiBBdHRyaWJ1dGVFdmVudDtcblx0Zm9vdGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xufVxuXG5AQ29tcG9uZW50KHtcblx0c2VsZWN0b3I6ICdmb3JtLWRhdGVwaWNrZXInLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRwcm92aWRlcnM6IFtEYXRlUGlwZV0sXG5cdGltcG9ydHM6IFtEYXRlUGlja2VyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0XSxcblx0dGVtcGxhdGU6IGA8cC1kYXRlcGlja2VyXG5cdFx0W2lkXT1cImZpZWxkKCk/LnV1aWRcIlxuXHRcdFtpbnB1dElkXT1cImZpZWxkKCk/LnV1aWRcIlxuXHRcdFt2YXJpYW50XT1cInByb3BzLnZhcmlhbnQgPz8gJ291dGxpbmVkJ1wiXG5cdFx0W2ZsdWlkXT1cInByb3BzLmZsdWlkXCJcblx0XHRbc2l6ZV09XCJwcm9wcy5zaXplXCJcblx0XHRbc3R5bGVDbGFzc109XCJwcm9wcy5zdHlsZUNsYXNzXCJcblx0XHRbaW5wdXRTdHlsZV09XCJwcm9wcy5pbnB1dFN0eWxlXCJcblx0XHRbaW5wdXRTdHlsZUNsYXNzXT1cInByb3BzLmlucHV0U3R5bGVDbGFzc1wiXG5cdFx0W25hbWVdPVwicHJvcHMubmFtZVwiXG5cdFx0W3BsYWNlaG9sZGVyXT1cInByb3BzLnBsYWNlaG9sZGVyXCJcblx0XHRbYXJpYUxhYmVsbGVkQnldPVwicHJvcHMuYXJpYUxhYmVsbGVkQnlcIlxuXHRcdFthcmlhTGFiZWxdPVwicHJvcHMuYXJpYUxhYmVsXCJcblx0XHRbaWNvbkFyaWFMYWJlbF09XCJwcm9wcy5pY29uQXJpYUxhYmVsXCJcblx0XHRbZGF0ZUZvcm1hdF09XCJwcm9wcy5kYXRlRm9ybWF0ID8/ICd5eS1tbS1kZCdcIlxuXHRcdFttdWx0aXBsZVNlcGFyYXRvcl09XCJwcm9wcy5tdWx0aXBsZVNlcGFyYXRvciA/PyAnLCdcIlxuXHRcdFtyYW5nZVNlcGFyYXRvcl09XCJwcm9wcy5yYW5nZVNlcGFyYXRvciA/PyAnLSdcIlxuXHRcdFtpbmxpbmVdPVwicHJvcHMuaW5saW5lXCJcblx0XHRbc2hvd090aGVyTW9udGhzXT1cInByb3BzLnNob3dPdGhlck1vbnRocyA/PyB0cnVlXCJcblx0XHRbc2VsZWN0T3RoZXJNb250aHNdPVwicHJvcHMuc2VsZWN0T3RoZXJNb250aHNcIlxuXHRcdFtzaG93SWNvbl09XCJwcm9wcy5zaG93SWNvblwiXG5cdFx0W2ZsdWlkXT1cInByb3BzLmZsdWlkID8/IHRydWVcIlxuXHRcdFtpY29uXT1cInByb3BzLmljb25cIlxuXHRcdFthcHBlbmRUb109XCJwcm9wcy5hcHBlbmRUbyA/PyAnYm9keSdcIlxuXHRcdFtyZWFkb25seUlucHV0XT1cInByb3BzLnJlYWRvbmx5SW5wdXRcIlxuXHRcdFtzaG9ydFllYXJDdXRvZmZdPVwicHJvcHMuc2hvcnRZZWFyQ3V0b2ZmXCJcblx0XHRbaG91ckZvcm1hdF09XCJwcm9wcy5ob3VyRm9ybWF0ID8/ICcyNCdcIlxuXHRcdFt0aW1lT25seV09XCJwcm9wcy50aW1lT25seVwiXG5cdFx0W3N0ZXBIb3VyXT1cInByb3BzLnN0ZXBIb3VyID8/IDFcIlxuXHRcdFtzdGVwTWludXRlXT1cInByb3BzLnN0ZXBNaW51dGUgPz8gMVwiXG5cdFx0W3N0ZXBTZWNvbmRdPVwicHJvcHMuc3RlcFNlY29uZCA/PyAxXCJcblx0XHRbc2hvd1NlY29uZHNdPVwicHJvcHMuc2hvd1NlY29uZHMgPz8gISFwcm9wcy5zaG93VGltZVwiXG5cdFx0W3Nob3dPbkZvY3VzXT1cInByb3BzLnNob3dPbkZvY3VzID8/IHRydWVcIlxuXHRcdFtzaG93V2Vla109XCJwcm9wcy5zaG93V2Vla1wiXG5cdFx0W3N0YXJ0V2Vla0Zyb21GaXJzdERheU9mWWVhcl09XCIhIXByb3BzLnN0YXJ0V2Vla0Zyb21GaXJzdERheU9mWWVhclwiXG5cdFx0W3Nob3dDbGVhcl09XCJwcm9wcy5zaG93Q2xlYXJcIlxuXHRcdFtkYXRhVHlwZV09XCJwcm9wcy5kYXRhVHlwZSA/PyAnc3RyaW5nJ1wiXG5cdFx0W3NlbGVjdGlvbk1vZGVdPVwicHJvcHMuc2VsZWN0aW9uTW9kZSA/PyAnc2luZ2xlJ1wiXG5cdFx0W21heERhdGVDb3VudF09XCJwcm9wcy5tYXhEYXRlQ291bnRcIlxuXHRcdFtzaG93QnV0dG9uQmFyXT1cInByb3BzLnNob3dCdXR0b25CYXJcIlxuXHRcdFt0b2RheUJ1dHRvblN0eWxlQ2xhc3NdPVwicHJvcHMudG9kYXlCdXR0b25TdHlsZUNsYXNzXCJcblx0XHRbY2xlYXJCdXR0b25TdHlsZUNsYXNzXT1cInByb3BzLmNsZWFyQnV0dG9uU3R5bGVDbGFzc1wiXG5cdFx0W2F1dG9mb2N1c109XCJwcm9wcy5hdXRvZm9jdXNcIlxuXHRcdFthdXRvWkluZGV4XT1cInByb3BzLmF1dG9aSW5kZXggPz8gdHJ1ZVwiXG5cdFx0W2Jhc2VaSW5kZXhdPVwicHJvcHMuYmFzZVpJbmRleCA/PyAwXCJcblx0XHRbcGFuZWxTdHlsZUNsYXNzXT1cInByb3BzLnBhbmVsU3R5bGVDbGFzc1wiXG5cdFx0W3BhbmVsU3R5bGVdPVwicHJvcHMucGFuZWxTdHlsZVwiXG5cdFx0W2tlZXBJbnZhbGlkXT1cInByb3BzLmtlZXBJbnZhbGlkXCJcblx0XHRbaGlkZU9uRGF0ZVRpbWVTZWxlY3RdPVwicHJvcHMuaGlkZU9uRGF0ZVRpbWVTZWxlY3QgPz8gdHJ1ZVwiXG5cdFx0W3RvdWNoVUldPVwicHJvcHMudG91Y2hVSVwiXG5cdFx0W3RpbWVTZXBhcmF0b3JdPVwicHJvcHMudGltZVNlcGFyYXRvciA/PyAnOidcIlxuXHRcdFtmb2N1c1RyYXBdPVwicHJvcHMuZm9jdXNUcmFwID8/IHRydWVcIlxuXHRcdFtzaG93VHJhbnNpdGlvbk9wdGlvbnNdPVwicHJvcHMuc2hvd1RyYW5zaXRpb25PcHRpb25zID8/ICcuMTJzIGN1YmljLWJlemllcigwLCAwLCAwLjIsIDEpJ1wiXG5cdFx0W2hpZGVUcmFuc2l0aW9uT3B0aW9uc109XCJwcm9wcy5oaWRlVHJhbnNpdGlvbk9wdGlvbnMgPz8gJy4xcyBsaW5lYXInXCJcblx0XHRbdGFiaW5kZXhdPVwicHJvcHMudGFiaW5kZXhcIlxuXHRcdFttaW5EYXRlXT1cInByb3BzLm1pbkRhdGVcIlxuXHRcdFttYXhEYXRlXT1cInByb3BzLm1heERhdGVcIlxuXHRcdFtkaXNhYmxlZERhdGVzXT1cInByb3BzLmRpc2FibGVkRGF0ZXMgPz8gW11cIlxuXHRcdFtkaXNhYmxlZERheXNdPVwicHJvcHMuZGlzYWJsZWREYXlzID8/IFtdXCJcblx0XHRbc2hvd1RpbWVdPVwiISFwcm9wcy5zaG93VGltZVwiXG5cdFx0W3Jlc3BvbnNpdmVPcHRpb25zXT1cInByb3BzLnJlc3BvbnNpdmVPcHRpb25zID8/IFtdXCJcblx0XHRbbnVtYmVyT2ZNb250aHNdPVwicHJvcHMubnVtYmVyT2ZNb250aHMgPz8gMVwiXG5cdFx0W2ZpcnN0RGF5T2ZXZWVrXT1cInByb3BzLmZpcnN0RGF5T2ZXZWVrID8/IDdcIlxuXHRcdFt2aWV3XT1cInByb3BzLnZpZXcgPz8gJ2RhdGUnXCJcblx0XHRbZGVmYXVsdERhdGVdPVwicHJvcHMuZGVmYXVsdERhdGUhXCJcblx0XHQob25JbnB1dCk9XCJwcm9wcy5vbklucHV0Py4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkZvY3VzKT1cInByb3BzLm9uRm9jdXM/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQmx1cik9XCJwcm9wcy5vbkJsdXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQ2xvc2UpPVwicHJvcHMub25DbG9zZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TZWxlY3QpPVwicHJvcHMub25TZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXG5cdFx0KG9uQ2xlYXIpPVwicHJvcHMub25DbGVhcj8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Ub2RheUNsaWNrKT1cInByb3BzLm9uVG9kYXlDbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25DbGVhckNsaWNrKT1cInByb3BzLm9uQ2xlYXJDbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25Nb250aENoYW5nZSk9XCJwcm9wcy5vbk1vbnRoQ2hhbmdlPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvblllYXJDaGFuZ2UpPVwicHJvcHMub25ZZWFyQ2hhbmdlPy4oZmllbGQoKSEsICRldmVudClcIlxuXHRcdChvbkNsaWNrT3V0c2lkZSk9XCJwcm9wcy5vbkNsaWNrT3V0c2lkZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHQob25TaG93KT1cInByb3BzLm9uU2hvdz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcblx0XHRbY2xhc3NdPVwicHJvcHMuY2xhc3NcIlxuXHRcdFtmb3JtQ29udHJvbF09XCJmaWVsZCgpIS5maWVsZENvbnRyb2whXCI+XG5cdFx0PG5nLXRlbXBsYXRlICNmb290ZXI+XG5cdFx0XHRAaWYgKCEhcHJvcHMuc2hvd1RpbWUgJiYgIXByb3BzLnRpbWVPbmx5KSB7XG5cdFx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93LXJldmVyc2UgdGV4dC1bMTJweF0gdGV4dC1bdmFyKC0tcC1wcmltYXJ5LWNvbG9yKV0gY3Vyc29yLXBvaW50ZXJcIj5cblx0XHRcdFx0XHQ8aVxuXHRcdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1yZXBsYXlcIlxuXHRcdFx0XHRcdFx0KGNsaWNrKT1cInJlc2V0VGltZSgkZXZlbnQpXCI+PC9pPlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdH0gQGVsc2UgaWYgKCEhcHJvcHMuZm9vdGVyVGVtcGxhdGUpIHtcblx0XHRcdFx0PCEtLXRvZG8g5pyq5p2l5Yqg5YWl6Ieq5a6a5LmJ5Yy66Ze06YCJ6aG5LS0+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcm9wcy5mb290ZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuXHRcdFx0fVxuXHRcdDwvbmctdGVtcGxhdGU+XG5cdDwvcC1kYXRlcGlja2VyPmAsXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCB7XG5cdEBWaWV3Q2hpbGQoRGF0ZVBpY2tlciwgeyBzdGF0aWM6IGZhbHNlIH0pIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyO1xuXHRAVmlld0NoaWxkKERhdGVQaWNrZXIsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiBmYWxzZSB9KSBkYXRlUGlja2VyUmVmITogRWxlbWVudFJlZjtcblx0ZmllbGQgPSBpbnB1dDxGb3JtRmllbGQ+KCk7XG5cdHByb3BzOiBEYXRlUGlja2VyUHJvcHMgPSB7fTtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcblx0XHRwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG5cdFx0cHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG5cdCkge1xuXHRcdGVmZmVjdCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5maWVsZCgpKSB7XG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmRhdGVQaWNrZXJQcm9wcyE7XG5cdFx0XHRcdHRoaXMuaGFuZGxlSG9va0NoYW5nZSgpO1xuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XG5cdFx0XHRcdHRoaXMuaGFuZGxlRGF0ZVBpcGVGb3JtYXQoKTtcblx0XHRcdH1cblx0XHR9KTtcblx0XHRlZmZlY3QoXG5cdFx0XHQoKSA9PiB7XG5cdFx0XHRcdGNvbnN0IGxhYmVsQWN0aW9uID0gdGhpcy5hY3Rpb24uZ2V0RmllbGRMYWJlbEFjdGlvbigpO1xuXHRcdFx0XHRpZiAoIWxhYmVsQWN0aW9uIHx8IGxhYmVsQWN0aW9uPy5rZXkgIT0gdGhpcy5maWVsZCgpPy51dWlkKSB7XG5cdFx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChsYWJlbEFjdGlvbi50eXBlID09ICdtb3VzZWVudGVyJykge1xuXHRcdFx0XHRcdHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kYXRlUGlja2VyUmVmLm5hdGl2ZUVsZW1lbnQsICduZy1ob3ZlcmVkJyk7XG5cdFx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcblx0XHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZGF0ZVBpY2tlclJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xuXHRcdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xuXHRcdFx0XHRcdHRoaXMuZGF0ZVBpY2tlci5vdmVybGF5VmlzaWJsZSA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5kYXRlUGlja2VyLm9uU2hvdy5lbWl0KGZhbHNlKTtcblx0XHRcdFx0XHR0aGlzLmRhdGVQaWNrZXIuY2QubWFya0ZvckNoZWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0sXG5cdFx0XHR7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG5cdFx0KTtcblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge31cblxuXHRoYW5kbGVIb29rQ2hhbmdlKCkge1xuXHRcdHRoaXMuZmllbGQoKT8uZmllbGRDb250cm9sPy5ob29rQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcblx0XHRcdGlmICghdmFsdWUpIHtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5wcm9wcy5vbkhvb2tDaGFuZ2U/Lih0aGlzLmZpZWxkKCkhLCB7IHZhbHVlIH0pO1xuXHRcdH0pO1xuXHR9XG5cblx0aGFuZGxlRGlzYWJsZWQoKSB7XG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRpZiAodGhpcy5wcm9wcz8uZGlzYWJsZWQpIHtcblx0XHRcdFx0dGhpcy5maWVsZCgpIS5maWVsZENvbnRyb2whLmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0cmVzZXRUaW1lKGV2ZW50OiBhbnkpIHtcblx0XHRpZiAoIXRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS52YWx1ZSkgcmV0dXJuO1xuXHRcdGNvbnN0IGN1cnJlbnREYXRlID0gdGhpcy5mb3JtYXRUb01pZG5pZ2h0KHRoaXMuZmllbGQoKSEuZmllbGRDb250cm9sIS52YWx1ZSk7XG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKGN1cnJlbnREYXRlLCB7IGVtaXRFdmVudDogdHJ1ZSB9KTtcblx0fVxuXG5cdGZvcm1hdFRvTWlkbmlnaHQoZGF0ZVN0cjogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5wcm9wcz8uc2hvd1NlY29uZHMgPT09IGZhbHNlKSB7XG5cdFx0XHRpZiAoL15cXGR7NH0tXFxkezJ9LVxcZHsyfSBcXGR7Mn06XFxkezJ9JC8udGVzdChkYXRlU3RyKSkge1xuXHRcdFx0XHRyZXR1cm4gZGF0ZVN0ci5zcGxpdCgnICcpWzBdICsgJyAwMDowMCc7XG5cdFx0XHR9XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGF0ZSBmb3JtYXQuIEV4cGVjdGVkIHl5eXktTU0tZGQgaGg6bW0nKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKC9eXFxkezR9LVxcZHsyfS1cXGR7Mn0gXFxkezJ9OlxcZHsyfTpcXGR7Mn0kLy50ZXN0KGRhdGVTdHIpKSB7XG5cdFx0XHRcdHJldHVybiBkYXRlU3RyLnNwbGl0KCcgJylbMF0gKyAnIDAwOjAwOjAwJztcblx0XHRcdH1cblx0XHRcdHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRlIGZvcm1hdC4gRXhwZWN0ZWQgeXl5eS1NTS1kZCBoaDptbTpzcycpO1xuXHRcdH1cblx0fVxuXG5cdGhhbmRsZURhdGVQaXBlRm9ybWF0KCkge1xuXHRcdHRoaXMucHJvcHMuZGF0ZVBpcGVGb3JtYXQgPSB0aGlzLmNvbnZlcnRQcmltZU5nVG9EYXRlUGlwZUZvcm1hdCh0aGlzLnByb3BzLmRhdGVGb3JtYXQpO1xuXHRcdGlmICghdGhpcy5wcm9wcy5zaG93VGltZSkgcmV0dXJuO1xuXHRcdGNvbnN0IHRpbWVTZXBhcmF0b3IgPSB0aGlzLnByb3BzLnRpbWVTZXBhcmF0b3IgPz8gJzonO1xuXHRcdGNvbnN0IHRpbWVGb3JtYXQgPSBgSEgke3RpbWVTZXBhcmF0b3J9bW0ke3RpbWVTZXBhcmF0b3J9c3NgO1xuXHRcdHRoaXMucHJvcHMuZGF0ZVBpcGVGb3JtYXQgKz0gYCAke3RpbWVGb3JtYXR9YDtcblx0fVxuXG5cdGNvbnZlcnRQcmltZU5nVG9EYXRlUGlwZUZvcm1hdChwcmltZU5nRm9ybWF0OiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuXHRcdGlmICghcHJpbWVOZ0Zvcm1hdCkgcmV0dXJuICd5eXl5LU1NLWRkJztcblx0XHRjb25zdCBmb3JtYXRNYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG5cdFx0XHRkOiAnZCcsXG5cdFx0XHRkZDogJ2RkJyxcblx0XHRcdG06ICdNJyxcblx0XHRcdG1tOiAnTU0nLFxuXHRcdFx0TTogJ01NTScsXG5cdFx0XHRNTTogJ01NTU0nLFxuXHRcdFx0eTogJ3l5Jyxcblx0XHRcdHl5OiAneXl5eScsXG5cdFx0fTtcblx0XHRjb25zdCBjb21tb25Gb3JtYXRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuXHRcdFx0J21tL2RkL3l5JzogJ01NL2RkL3l5eXknLFxuXHRcdFx0J2RkL21tL3l5JzogJ2RkL01NL3l5eXknLFxuXHRcdFx0J3l5LW1tLWRkJzogJ3l5eXktTU0tZGQnLFxuXHRcdFx0J2RkLW1tLXl5JzogJ2RkLU1NLXl5eXknLFxuXHRcdFx0J21tLWRkLXl5JzogJ01NLWRkLXl5eXknLFxuXHRcdH07XG5cdFx0aWYgKGNvbW1vbkZvcm1hdHNbcHJpbWVOZ0Zvcm1hdF0pIHtcblx0XHRcdHJldHVybiBjb21tb25Gb3JtYXRzW3ByaW1lTmdGb3JtYXRdO1xuXHRcdH1cblx0XHQvLyDmm7/mjaLovazkuYnlrZfnrKZcblx0XHRsZXQgcmVzdWx0ID0gcHJpbWVOZ0Zvcm1hdC5yZXBsYWNlKC8nKFteJ10qKScvZywgKG1hdGNoLCBwMSkgPT4ge1xuXHRcdFx0cmV0dXJuIGAnJHtwMX0nYDtcblx0XHR9KTtcblx0XHQvLyDmm7/mjaLmoLzlvI/moIforrBcblx0XHRyZXN1bHQgPSByZXN1bHQucmVwbGFjZSgvW2EtekEtWl0rL2csIChtYXRjaCkgPT4ge1xuXHRcdFx0cmV0dXJuIGZvcm1hdE1hcFttYXRjaF0gfHwgbWF0Y2g7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxufVxuIl19